@jheavenknows/bluerouter 3.0.25 → 4.0.2

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 (423) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +7 -7
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/api-keys/page_client-reference-manifest.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/prompt-logs/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/provider-health/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  33. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  34. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  35. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  36. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  37. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  38. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  39. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  40. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  41. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  42. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  44. package/app/.next-cli-build/server/app/_not-found.rsc +4 -4
  45. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +4 -4
  46. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  47. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +4 -4
  48. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  49. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  50. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  51. package/app/.next-cli-build/server/app/api/auth/ldap/test/route.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/api/auth/ldap/users/route.js.nft.json +1 -1
  53. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  54. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  55. package/app/.next-cli-build/server/app/api/auth/oidc/callback/route.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/api/auth/oidc/start/route.js.nft.json +1 -1
  57. package/app/.next-cli-build/server/app/api/auth/oidc/test/route.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  59. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  61. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/autostart/route.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/prompt-log-db/route.js.nft.json +1 -1
  63. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/root-ca/route.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  65. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  67. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  69. package/app/.next-cli-build/server/app/api/dashboard/analytics/route.js.nft.json +1 -1
  70. package/app/.next-cli-build/server/app/api/dashboard/combos/route.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/api/dashboard/endpoint/route.js.nft.json +1 -1
  72. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/[id]/route.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/options/route.js.nft.json +1 -1
  74. package/app/.next-cli-build/server/app/api/dashboard/prompt-logs/route.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/api/keys/[id]/rotate/route.js.nft.json +1 -1
  76. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  78. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  80. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  82. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  84. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  86. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  88. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  89. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  90. package/app/.next-cli-build/server/app/api/models/test/route.js +1 -1
  91. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  92. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  93. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  94. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  95. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  96. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  97. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  99. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  100. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  101. package/app/.next-cli-build/server/app/api/provider-health/route.js.nft.json +1 -1
  102. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  103. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  104. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js +1 -1
  108. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  111. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/proxy-pools/[id]/test/route.js.nft.json +1 -1
  116. package/app/.next-cli-build/server/app/api/proxy-pools/cloudflare-deploy/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/proxy-pools/deno-deploy/route.js.nft.json +1 -1
  118. package/app/.next-cli-build/server/app/api/proxy-pools/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json +1 -1
  120. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/settings/require-login/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  124. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  125. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  126. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/tunnel/disable/route.js.nft.json +1 -1
  128. package/app/.next-cli-build/server/app/api/tunnel/enable/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/tunnel/status/route.js.nft.json +1 -1
  130. package/app/.next-cli-build/server/app/api/tunnel/tailscale-check/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/tunnel/tailscale-disable/route.js.nft.json +1 -1
  132. package/app/.next-cli-build/server/app/api/tunnel/tailscale-enable/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js.nft.json +1 -1
  134. package/app/.next-cli-build/server/app/api/tunnel/tailscale-login/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json +1 -1
  136. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  138. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  141. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  143. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  145. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  147. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  149. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  151. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  153. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  155. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  158. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  161. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  162. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/version/update/route.js +1 -1
  164. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  166. package/app/.next-cli-build/server/app/callback.html +1 -1
  167. package/app/.next-cli-build/server/app/callback.rsc +4 -4
  168. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +4 -4
  169. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  170. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +4 -4
  171. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +2 -2
  172. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  173. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  174. package/app/.next-cli-build/server/app/dashboard/analytics.html +1 -1
  175. package/app/.next-cli-build/server/app/dashboard/analytics.rsc +5 -5
  176. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +1 -1
  177. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
  178. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  179. package/app/.next-cli-build/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  180. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_full.segment.rsc +5 -5
  181. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
  182. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_index.segment.rsc +4 -4
  183. package/app/.next-cli-build/server/app/dashboard/analytics.segments/_tree.segment.rsc +2 -2
  184. package/app/.next-cli-build/server/app/dashboard/api-keys.html +1 -1
  185. package/app/.next-cli-build/server/app/dashboard/api-keys.rsc +6 -6
  186. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys/__PAGE__.segment.rsc +2 -2
  187. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard/api-keys.segment.rsc +1 -1
  188. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  189. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  190. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_full.segment.rsc +6 -6
  191. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_head.segment.rsc +1 -1
  192. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_index.segment.rsc +4 -4
  193. package/app/.next-cli-build/server/app/dashboard/api-keys.segments/_tree.segment.rsc +2 -2
  194. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  195. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +6 -6
  196. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  197. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  198. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  199. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  200. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +6 -6
  201. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  202. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +4 -4
  203. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +2 -2
  204. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  205. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +6 -6
  206. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  207. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  208. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  209. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  210. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +6 -6
  211. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  212. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +4 -4
  213. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +2 -2
  214. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  215. package/app/.next-cli-build/server/app/dashboard/combos.rsc +6 -6
  216. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  217. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  218. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  219. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  220. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +6 -6
  221. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  222. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +4 -4
  223. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +2 -2
  224. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  225. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +6 -6
  226. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  227. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  228. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  229. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  230. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +6 -6
  231. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  232. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +4 -4
  233. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +2 -2
  234. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  235. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +6 -6
  236. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  237. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  238. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  239. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  240. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  241. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +6 -6
  242. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  243. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +4 -4
  244. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +2 -2
  245. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  246. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +6 -6
  247. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  248. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  249. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  250. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  251. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +6 -6
  252. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  253. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +4 -4
  254. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +2 -2
  255. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  256. package/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  257. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  258. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  259. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  260. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  261. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  262. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  263. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +4 -4
  264. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +2 -2
  265. package/app/.next-cli-build/server/app/dashboard/prompt-logs.html +1 -1
  266. package/app/.next-cli-build/server/app/dashboard/prompt-logs.rsc +5 -5
  267. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs/__PAGE__.segment.rsc +1 -1
  268. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard/prompt-logs.segment.rsc +1 -1
  269. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  270. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  271. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_full.segment.rsc +5 -5
  272. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_head.segment.rsc +1 -1
  273. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_index.segment.rsc +4 -4
  274. package/app/.next-cli-build/server/app/dashboard/prompt-logs.segments/_tree.segment.rsc +2 -2
  275. package/app/.next-cli-build/server/app/dashboard/provider-health.html +1 -1
  276. package/app/.next-cli-build/server/app/dashboard/provider-health.rsc +5 -5
  277. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health/__PAGE__.segment.rsc +1 -1
  278. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard/provider-health.segment.rsc +1 -1
  279. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  280. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  281. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_full.segment.rsc +5 -5
  282. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_head.segment.rsc +1 -1
  283. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_index.segment.rsc +4 -4
  284. package/app/.next-cli-build/server/app/dashboard/provider-health.segments/_tree.segment.rsc +2 -2
  285. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  286. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +6 -6
  287. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  288. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  289. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  290. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  291. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  292. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +6 -6
  293. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  294. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +4 -4
  295. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +2 -2
  296. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  297. package/app/.next-cli-build/server/app/dashboard/providers.rsc +6 -6
  298. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  299. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  300. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  301. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  302. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +6 -6
  303. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  304. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +4 -4
  305. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +2 -2
  306. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  307. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +6 -6
  308. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  309. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  310. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  311. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  312. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +6 -6
  313. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  314. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +4 -4
  315. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +2 -2
  316. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  317. package/app/.next-cli-build/server/app/dashboard/quota.rsc +7 -7
  318. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  319. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  320. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  321. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  322. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +7 -7
  323. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  324. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +4 -4
  325. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +2 -2
  326. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  327. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  328. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  329. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  330. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  331. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  332. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  333. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  334. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  335. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  336. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  337. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  338. package/app/.next-cli-build/server/app/dashboard/skills.rsc +6 -6
  339. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  340. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  341. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  342. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  343. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +6 -6
  344. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  345. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +4 -4
  346. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +2 -2
  347. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  348. package/app/.next-cli-build/server/app/dashboard/translator.rsc +6 -6
  349. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  350. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  351. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  352. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  353. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +6 -6
  354. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  355. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +4 -4
  356. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +2 -2
  357. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  358. package/app/.next-cli-build/server/app/dashboard/usage.rsc +6 -6
  359. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  360. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  361. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  362. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  363. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +6 -6
  364. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  365. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +4 -4
  366. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +2 -2
  367. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  368. package/app/.next-cli-build/server/app/dashboard.rsc +6 -6
  369. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  370. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  371. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  372. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +6 -6
  373. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  374. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +4 -4
  375. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +2 -2
  376. package/app/.next-cli-build/server/app/index.html +1 -1
  377. package/app/.next-cli-build/server/app/index.rsc +4 -4
  378. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  379. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +4 -4
  380. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  381. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +4 -4
  382. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +2 -2
  383. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  384. package/app/.next-cli-build/server/app/landing.html +1 -1
  385. package/app/.next-cli-build/server/app/landing.rsc +4 -4
  386. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +4 -4
  387. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  388. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +4 -4
  389. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +2 -2
  390. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  391. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  392. package/app/.next-cli-build/server/app/login/page.js +1 -1
  393. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  394. package/app/.next-cli-build/server/app/login.html +1 -1
  395. package/app/.next-cli-build/server/app/login.rsc +5 -5
  396. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +5 -5
  397. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  398. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +4 -4
  399. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +2 -2
  400. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  401. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  402. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  403. package/app/.next-cli-build/server/app-paths-manifest.json +7 -7
  404. package/app/.next-cli-build/server/chunks/2338.js +1 -1
  405. package/app/.next-cli-build/server/chunks/3110.js +1 -1
  406. package/app/.next-cli-build/server/chunks/4746.js +1 -1
  407. package/app/.next-cli-build/server/chunks/7130.js +1 -1
  408. package/app/.next-cli-build/server/chunks/7153.js +1 -1
  409. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  410. package/app/.next-cli-build/server/pages/404.html +1 -1
  411. package/app/.next-cli-build/server/pages/500.html +1 -1
  412. package/app/.next-cli-build/static/chunks/{620-0da2d3ddb59472c3.js → 620-2c14fcde041d3cee.js} +1 -1
  413. package/app/.next-cli-build/static/chunks/app/login/page-af32310bf4ef76c4.js +1 -0
  414. package/app/.next-cli-build/static/css/48ae41ccbc2d49a7.css +1 -0
  415. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-shm +0 -0
  416. package/app/cli/.build-home/AppData/Roaming/bluerouter/db/data.sqlite-wal +0 -0
  417. package/app/package.json +1 -1
  418. package/package.json +1 -1
  419. package/app/.next-cli-build/static/chunks/app/login/page-beeb9f7cb47ad3fc.js +0 -1
  420. package/app/.next-cli-build/static/css/093f9a5124234621.css +0 -1
  421. /package/app/.next-cli-build/static/{nxfjuhFM_8WLGDl2aSVXS → dwx34Ceo6Jf1OF2L7VmZa}/_buildManifest.js +0 -0
  422. /package/app/.next-cli-build/static/{nxfjuhFM_8WLGDl2aSVXS → dwx34Ceo6Jf1OF2L7VmZa}/_ssgManifest.js +0 -0
  423. /package/app/cli/.build-home/AppData/Roaming/bluerouter/db/backups/{upgrade-3.0.20-to-3.0.21-3.0.21-20260618-153413 → upgrade-3.0.25-to-4.0.2-4.0.2-20260618-164820}/data.sqlite +0 -0
@@ -1 +1 @@
1
- <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/fjslogo.svg"/><link rel="stylesheet" href="/_next/static/css/7a3e1568f247f3d0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/093f9a5124234621.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a990cabb6976f421.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-e569667691edc8f7.js" async=""></script><script src="/_next/static/chunks/main-app-0a27584eea53a4b0.js" async=""></script><script src="/_next/static/chunks/1a258343-bc0b514c079d8898.js" async=""></script><script src="/_next/static/chunks/1051-eec0f271123ef82f.js" async=""></script><script src="/_next/static/chunks/620-0da2d3ddb59472c3.js" async=""></script><script src="/_next/static/chunks/5497-870b5871cedc0773.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-872e9f4deabd99c8.js" async=""></script><script src="/_next/static/chunks/app/layout-09e41d62a11130d0.js" async=""></script><script src="/_next/static/chunks/app/login/page-beeb9f7cb47ad3fc.js" async=""></script><meta name="theme-color" content="#0a0a0a"/><title>AI Router Gateway - AI Infrastructure Management</title><meta name="description" content="One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?d69b7278ea27dcf7" type="image/x-icon" sizes="32x32"/><link rel="icon" href="/favicon.svg"/><script>if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><main class="relative min-h-screen overflow-hidden bg-slate-50 text-slate-800"><div class="pointer-events-none absolute inset-x-0 top-0 h-72" style="background:linear-gradient(135deg, rgba(139,92,246,0.12) 0%, rgba(99,102,241,0.10) 40%, rgba(56,189,248,0.06) 100%)"></div><div class="pointer-events-none absolute inset-0 opacity-[0.36]" style="background-image:linear-gradient(to right, rgba(99,102,241,0.08) 1px, transparent 1px), linear-gradient(to bottom, rgba(99,102,241,0.08) 1px, transparent 1px);background-size:48px 48px"></div><div class="relative mx-auto max-w-6xl px-6 py-12 lg:px-8"><header class="mb-10"><div class="mb-5 flex items-center gap-4"><img src="/fjslogo.svg" alt="Fujinet Systems JSC" class="h-10 w-auto"/><div class="leading-none"><p class="text-[11px] font-bold uppercase tracking-[0.2em] text-indigo-600">Internal Portal</p><p class="text-[11px] font-semibold uppercase tracking-[0.15em] text-slate-400">Cổng nội bộ Fujinet</p></div></div><h1 class="text-4xl font-extrabold tracking-tight text-slate-900 sm:text-5xl">AI Router Gateway</h1><p class="mt-4 max-w-2xl text-base leading-relaxed text-slate-500">Đăng nhập AI Router Gateway hoặc truy cập nhanh các hệ thống nội bộ của Fujinet Systems.</p></header><section class="grid items-stretch gap-4 sm:grid-cols-2 lg:grid-cols-3"><div class="relative flex min-h-[260px] flex-col rounded-2xl border border-indigo-200/80 bg-white/90 p-6 shadow-sm backdrop-blur transition-all duration-200 hover:-translate-y-0.5 hover:border-indigo-300 hover:shadow-lg"><div class="pointer-events-none absolute inset-0 rounded-2xl bg-gradient-to-br from-indigo-500/10 to-indigo-500/5"></div><div class="relative flex h-full flex-col"><div class="mb-4 flex items-center justify-between gap-3"><span class="inline-flex rounded-lg bg-indigo-500 px-2.5 py-1 text-[11px] font-bold tracking-widest text-white shadow-sm">LOGIN</span></div><h2 class="text-lg font-bold text-slate-800">AI Router Gateway</h2><p class="mt-2 text-sm leading-relaxed text-slate-500">Đăng nhập để quản trị API key, provider, routing, prompt logs và dashboard usage.</p><div class="mt-5 rounded-xl border border-slate-200 bg-slate-50 px-4 py-3 text-sm text-slate-500">Loading...</div></div></div><a href="/dashboard" target="_blank" rel="noopener noreferrer" class="group relative flex min-h-[260px] flex-col rounded-2xl border border-slate-200/80 bg-white/80 p-6 shadow-sm backdrop-blur transition-all duration-200 hover:border-indigo-300 hover:-translate-y-0.5 hover:shadow-lg"><div class="pointer-events-none absolute inset-0 rounded-2xl bg-gradient-to-br from-indigo-500/10 to-indigo-500/5 opacity-0 transition-opacity group-hover:opacity-100"></div><div class="relative flex h-full flex-col"><span class="inline-flex w-fit rounded-lg bg-indigo-500 px-2.5 py-1 text-[11px] font-bold tracking-widest text-white shadow-sm">API</span><h2 class="mt-4 text-lg font-bold text-slate-800">AI API Gateway</h2><p class="mt-2 flex-1 text-sm leading-relaxed text-slate-500">Quản lý endpoint AI nội bộ. Theo dõi trạng thái model, cấu hình routing và giám sát lưu lượng API theo thời gian thực.</p><span class="mt-5 inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-indigo-500 opacity-0 transition-opacity group-hover:opacity-100">Truy cập<svg class="h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"></path></svg></span></div></a><a href="https://ai.fujinet.vn/" target="_blank" rel="noopener noreferrer" class="group relative flex min-h-[260px] flex-col rounded-2xl border border-slate-200/80 bg-white/80 p-6 shadow-sm backdrop-blur transition-all duration-200 hover:border-violet-300 hover:-translate-y-0.5 hover:shadow-lg"><div class="pointer-events-none absolute inset-0 rounded-2xl bg-gradient-to-br from-violet-500/10 to-violet-500/5 opacity-0 transition-opacity group-hover:opacity-100"></div><div class="relative flex h-full flex-col"><span class="inline-flex w-fit rounded-lg bg-violet-500 px-2.5 py-1 text-[11px] font-bold tracking-widest text-white shadow-sm">CHAT</span><h2 class="mt-4 text-lg font-bold text-slate-800">AI Web Chat</h2><p class="mt-2 flex-1 text-sm leading-relaxed text-slate-500">Trò chuyện với AI nội bộ. Hỗ trợ viết code, phân tích tài liệu, brainstorm ý tưởng và trả lời câu hỏi kỹ thuật.</p><span class="mt-5 inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-indigo-500 opacity-0 transition-opacity group-hover:opacity-100">Truy cập<svg class="h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"></path></svg></span></div></a><a href="https://translate-workspace.fujinet.vn" target="_blank" rel="noopener noreferrer" class="group relative flex min-h-[260px] flex-col rounded-2xl border border-slate-200/80 bg-white/80 p-6 shadow-sm backdrop-blur transition-all duration-200 hover:border-purple-300 hover:-translate-y-0.5 hover:shadow-lg"><div class="pointer-events-none absolute inset-0 rounded-2xl bg-gradient-to-br from-purple-500/10 to-purple-500/5 opacity-0 transition-opacity group-hover:opacity-100"></div><div class="relative flex h-full flex-col"><span class="inline-flex w-fit rounded-lg bg-purple-500 px-2.5 py-1 text-[11px] font-bold tracking-widest text-white shadow-sm">DỊCH</span><h2 class="mt-4 text-lg font-bold text-slate-800">AI Translator</h2><p class="mt-2 flex-1 text-sm leading-relaxed text-slate-500">Dịch tài liệu hỗ trợ 201 ngôn ngữ. Hỗ trợ Word, Excel, PowerPoint, IMAGE và PDF với khả năng giữ nguyên định dạng gốc.</p><span class="mt-5 inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-indigo-500 opacity-0 transition-opacity group-hover:opacity-100">Truy cập<svg class="h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"></path></svg></span></div></a><a href="https://itsupport.fujinet.vn" target="_blank" rel="noopener noreferrer" class="group relative flex min-h-[260px] flex-col rounded-2xl border border-slate-200/80 bg-white/80 p-6 shadow-sm backdrop-blur transition-all duration-200 hover:border-blue-300 hover:-translate-y-0.5 hover:shadow-lg"><div class="pointer-events-none absolute inset-0 rounded-2xl bg-gradient-to-br from-blue-500/10 to-blue-500/5 opacity-0 transition-opacity group-hover:opacity-100"></div><div class="relative flex h-full flex-col"><span class="inline-flex w-fit rounded-lg bg-blue-500 px-2.5 py-1 text-[11px] font-bold tracking-widest text-white shadow-sm">TICKET</span><h2 class="mt-4 text-lg font-bold text-slate-800">IT Support</h2><p class="mt-2 flex-1 text-sm leading-relaxed text-slate-500">Gửi yêu cầu hỗ trợ kỹ thuật. Theo dõi tiến độ xử lý ticket, trao đổi trực tiếp với đội IT và xem lịch sử sự cố.</p><span class="mt-5 inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-indigo-500 opacity-0 transition-opacity group-hover:opacity-100">Truy cập<svg class="h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"></path></svg></span></div></a><a href="https://itresource.fujinet.net/" target="_blank" rel="noopener noreferrer" class="group relative flex min-h-[260px] flex-col rounded-2xl border border-slate-200/80 bg-white/80 p-6 shadow-sm backdrop-blur transition-all duration-200 hover:border-sky-300 hover:-translate-y-0.5 hover:shadow-lg"><div class="pointer-events-none absolute inset-0 rounded-2xl bg-gradient-to-br from-sky-500/10 to-sky-500/5 opacity-0 transition-opacity group-hover:opacity-100"></div><div class="relative flex h-full flex-col"><span class="inline-flex w-fit rounded-lg bg-sky-500 px-2.5 py-1 text-[11px] font-bold tracking-widest text-white shadow-sm">ASSET</span><h2 class="mt-4 text-lg font-bold text-slate-800">IT Resource</h2><p class="mt-2 flex-1 text-sm leading-relaxed text-slate-500">Quản lý tài nguyên CNTT nội bộ. Đăng ký cấp phát thiết bị, tài khoản, quyền truy cập VPN và các dịch vụ hạ tầng.</p><span class="mt-5 inline-flex items-center gap-1.5 text-xs font-semibold uppercase tracking-wide text-indigo-500 opacity-0 transition-opacity group-hover:opacity-100">Truy cập<svg class="h-3.5 w-3.5 transition-transform group-hover:translate-x-0.5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5"><path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3"></path></svg></span></div></a></section><footer class="mt-14 flex flex-col items-center justify-between gap-4 border-t border-slate-200 pt-6 sm:flex-row"><div class="flex items-center gap-3"><img src="/fjslogo.svg" alt="Fujinet Systems JSC" class="h-7 w-auto"/><div class="leading-tight"><p class="text-xs text-slate-400">Internal Portal · v1.0.0</p></div></div><div class="text-xs text-slate-400">© 2026 Fujinet Systems. All rights reserved.<!-- --> <a href="mailto:itadmin@fujinet.net" target="_blank" rel="noopener noreferrer" class="font-medium text-indigo-500 hover:underline">Contact: itadmin@fujinet.net</a></div></footer></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-a990cabb6976f421.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[21110,[\"3862\",\"static/chunks/1a258343-bc0b514c079d8898.js\",\"1051\",\"static/chunks/1051-eec0f271123ef82f.js\",\"620\",\"static/chunks/620-0da2d3ddb59472c3.js\",\"5497\",\"static/chunks/5497-870b5871cedc0773.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-872e9f4deabd99c8.js\"],\"ThemeProvider\"]\n3:I[94635,[\"620\",\"static/chunks/620-0da2d3ddb59472c3.js\",\"7177\",\"static/chunks/app/layout-09e41d62a11130d0.js\"],\"RuntimeI18nProvider\"]\n4:I[57121,[],\"\"]\n5:I[74581,[],\"\"]\n6:I[61304,[],\"ClientPageRoot\"]\n7:I[83016,[\"620\",\"static/chunks/620-0da2d3ddb59472c3.js\",\"4520\",\"static/chunks/app/login/page-beeb9f7cb47ad3fc.js\"],\"default\"]\na:I[90484,[],\"OutletBoundary\"]\nb:\"$Sreact.suspense\"\ne:I[90484,[],\"ViewportBoundary\"]\n10:I[90484,[],\"MetadataBoundary\"]\n12:I[27123,[],\"default\",1]\n:HL[\"/_next/static/css/7a3e1568f247f3d0.css\",\"style\"]\n:HL[\"/_next/static/css/093f9a5124234621.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"login\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"login\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7a3e1568f247f3d0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/093f9a5124234621.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"if(document.fonts\u0026\u0026document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}\"}}]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{\"Component\":\"$7\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@8\",\"$@9\"]}}],null,[\"$\",\"$La\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@c\"}]}]]}],{},null,false,null]},null,false,\"$@d\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Le\",null,{\"children\":\"$Lf\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L10\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L11\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$12\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"nxfjuhFM_8WLGDl2aSVXS\"}\n"])</script><script>self.__next_f.push([1,"13:[]\nd:\"$W13\"\n8:{}\n9:\"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"f:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}]]\n"])</script><script>self.__next_f.push([1,"14:I[86869,[],\"IconMark\"]\nc:null\n11:[[\"$\",\"title\",\"0\",{\"children\":\"AI Router Gateway - AI Infrastructure Management\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?d69b7278ea27dcf7\",\"type\":\"image/x-icon\",\"sizes\":\"32x32\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L14\",\"5\",{}]]\n"])</script></body></html>
1
+ <!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" as="image" href="/fjslogo.svg"/><link rel="stylesheet" href="/_next/static/css/7a3e1568f247f3d0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/48ae41ccbc2d49a7.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-a990cabb6976f421.js"/><script src="/_next/static/chunks/4bd1b696-e356ca5ba0218e27.js" async=""></script><script src="/_next/static/chunks/3794-e569667691edc8f7.js" async=""></script><script src="/_next/static/chunks/main-app-0a27584eea53a4b0.js" async=""></script><script src="/_next/static/chunks/1a258343-bc0b514c079d8898.js" async=""></script><script src="/_next/static/chunks/1051-eec0f271123ef82f.js" async=""></script><script src="/_next/static/chunks/620-2c14fcde041d3cee.js" async=""></script><script src="/_next/static/chunks/5497-870b5871cedc0773.js" async=""></script><script src="/_next/static/chunks/app/(dashboard)/layout-872e9f4deabd99c8.js" async=""></script><script src="/_next/static/chunks/app/layout-09e41d62a11130d0.js" async=""></script><script src="/_next/static/chunks/app/login/page-af32310bf4ef76c4.js" async=""></script><meta name="theme-color" content="#0a0a0a"/><title>AI Router Gateway - AI Infrastructure Management</title><meta name="description" content="One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."/><link rel="manifest" href="/manifest.webmanifest"/><link rel="icon" href="/favicon.ico?d69b7278ea27dcf7" type="image/x-icon" sizes="32x32"/><link rel="icon" href="/favicon.svg"/><script>if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}</script><script src="/_next/static/chunks/polyfills-42372ed130431b0a.js" noModule=""></script></head><body class="__variable_f367f3 font-sans antialiased"><div hidden=""><!--$--><!--/$--></div><main class="relative min-h-screen overflow-hidden bg-slate-50 text-slate-800"><div class="pointer-events-none absolute inset-0" style="background:radial-gradient(circle at top left, rgba(99,102,241,0.16), transparent 34%), radial-gradient(circle at top right, rgba(56,189,248,0.13), transparent 30%), linear-gradient(180deg, #f8fafc 0%, #eef4ff 46%, #f8fafc 100%)"></div><div class="pointer-events-none absolute inset-0 opacity-[0.28]" style="background-image:linear-gradient(to right, rgba(99,102,241,0.09) 1px, transparent 1px), linear-gradient(to bottom, rgba(99,102,241,0.09) 1px, transparent 1px);background-size:48px 48px"></div><div class="pointer-events-none absolute left-1/2 top-0 h-72 w-[52rem] -translate-x-1/2 rounded-full bg-indigo-200/30 blur-3xl"></div><div class="relative mx-auto max-w-6xl px-6 py-10 lg:px-8"><header class="mb-9 rounded-[32px] border border-white/70 bg-white/55 p-6 shadow-xl shadow-slate-900/5 backdrop-blur md:p-8"><div class="flex flex-col justify-between gap-6 lg:flex-row lg:items-end"><div><div class="mb-5 flex items-center gap-4"><img src="/fjslogo.svg" alt="Fujinet Systems JSC" class="h-10 w-auto"/><div class="leading-none"><p class="text-[11px] font-black uppercase tracking-[0.22em] text-indigo-600">Internal Portal</p><p class="text-[11px] font-semibold uppercase tracking-[0.16em] text-slate-400">Cổng nội bộ Fujinet</p></div></div><h1 class="max-w-3xl text-4xl font-black tracking-tight text-slate-950 sm:text-5xl">AI Router Gateway</h1><p class="mt-4 max-w-2xl text-base leading-relaxed text-slate-500">Đăng nhập AI Router Gateway hoặc truy cập nhanh các hệ thống nội bộ của Fujinet Systems.</p></div><div class="grid grid-cols-3 gap-3 rounded-3xl border border-white/70 bg-white/70 p-3 shadow-inner shadow-white/70"><div class="rounded-2xl bg-slate-50 px-4 py-3 text-center"><p class="text-lg font-black text-slate-900">6</p><p class="text-[11px] font-semibold uppercase tracking-wide text-slate-400">Services</p></div><div class="rounded-2xl bg-slate-50 px-4 py-3 text-center"><p class="text-lg font-black text-slate-900">AI</p><p class="text-[11px] font-semibold uppercase tracking-wide text-slate-400">Workspace</p></div><div class="rounded-2xl bg-slate-50 px-4 py-3 text-center"><p class="text-lg font-black text-slate-900">SSO</p><p class="text-[11px] font-semibold uppercase tracking-wide text-slate-400">Ready</p></div></div></div></header><section class="grid items-stretch gap-5 sm:grid-cols-2 lg:grid-cols-3"><div class="group relative flex min-h-[380px] flex-col overflow-hidden rounded-[28px] border border-indigo-200/80 bg-white/95 p-6 shadow-xl shadow-indigo-950/5 backdrop-blur transition-all duration-300 hover:-translate-y-1 hover:border-indigo-300 hover:shadow-2xl hover:shadow-indigo-950/10"><div class="pointer-events-none absolute inset-0 bg-gradient-to-br from-indigo-50 via-white to-violet-50"></div><div class="pointer-events-none absolute -right-16 -top-16 h-48 w-48 rounded-full bg-gradient-to-br from-indigo-600 to-violet-500 opacity-15 blur-2xl"></div><div class="pointer-events-none absolute -bottom-20 -left-16 h-44 w-44 rounded-full bg-gradient-to-br from-sky-400 to-indigo-400 opacity-10 blur-2xl"></div><div class="relative flex h-full flex-col"><div class="flex items-start justify-between gap-3"><span class="inline-flex w-fit rounded-full bg-indigo-600 px-3 py-1.5 text-[11px] font-black tracking-[0.18em] text-white shadow-lg shadow-indigo-900/15">LOGIN</span><div class="flex h-14 w-14 items-center justify-center rounded-3xl bg-gradient-to-br from-indigo-600 to-violet-500 p-3 text-white shadow-xl shadow-indigo-900/15 transition-transform duration-300 group-hover:scale-105 group-hover:rotate-3"><svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M15.75 9V6.75A3.75 3.75 0 0 0 12 3a3.75 3.75 0 0 0-3.75 3.75V9"></path><path d="M6.75 9h10.5A1.75 1.75 0 0 1 19 10.75v7.5A1.75 1.75 0 0 1 17.25 20H6.75A1.75 1.75 0 0 1 5 18.25v-7.5A1.75 1.75 0 0 1 6.75 9Z"></path><path d="M12 13v3"></path></svg></div></div><h2 class="mt-5 text-xl font-extrabold tracking-tight text-slate-900">AI Router Gateway</h2><p class="mt-3 text-sm leading-relaxed text-slate-500">Đăng nhập để quản trị API key, provider, routing, prompt logs và dashboard usage.</p><div class="mt-5 grid grid-cols-3 gap-2"><div class="rounded-2xl border border-indigo-100 bg-white/70 px-3 py-2 shadow-sm"><p class="text-xs font-bold text-slate-800">Keys</p><p class="text-[11px] text-slate-400">API</p></div><div class="rounded-2xl border border-indigo-100 bg-white/70 px-3 py-2 shadow-sm"><p class="text-xs font-bold text-slate-800">Logs</p><p class="text-[11px] text-slate-400">Prompt</p></div><div class="rounded-2xl border border-indigo-100 bg-white/70 px-3 py-2 shadow-sm"><p class="text-xs font-bold text-slate-800">Usage</p><p class="text-[11px] text-slate-400">Realtime</p></div></div><div class="mt-5 rounded-2xl border border-slate-200 bg-white/80 px-4 py-3 text-sm text-slate-500 shadow-sm">Loading...</div></div></div><a href="/dashboard" target="_blank" rel="noopener noreferrer" class="group relative flex min-h-[380px] flex-col overflow-hidden rounded-[28px] border border-slate-200/80 bg-white/90 p-6 shadow-sm shadow-slate-900/5 backdrop-blur transition-all duration-300 hover:border-indigo-300 hover:-translate-y-1 hover:shadow-2xl hover:shadow-slate-900/10"><div class="pointer-events-none absolute inset-0 bg-gradient-to-br from-indigo-50 via-white to-blue-50 opacity-0 transition-opacity duration-300 group-hover:opacity-100"></div><div class="pointer-events-none absolute -right-12 -top-12 h-40 w-40 rounded-full bg-gradient-to-br from-indigo-600 to-blue-500 opacity-10 blur-2xl transition-opacity group-hover:opacity-20"></div><div class="pointer-events-none absolute bottom-0 left-0 right-0 h-24 bg-gradient-to-t from-slate-50/70 to-transparent"></div><div class="relative flex h-full flex-col"><div class="flex items-start justify-between gap-3"><span class="inline-flex w-fit rounded-full bg-indigo-600 px-3 py-1.5 text-[11px] font-black tracking-[0.18em] text-white shadow-lg shadow-slate-900/10">API</span><div class="flex h-14 w-14 items-center justify-center rounded-3xl bg-gradient-to-br from-indigo-600 to-blue-500 p-3 text-white shadow-xl shadow-slate-900/10 transition-transform duration-300 group-hover:scale-105 group-hover:rotate-3"><svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M8 7H6.5A2.5 2.5 0 0 0 4 9.5v5A2.5 2.5 0 0 0 6.5 17H8"></path><path d="M16 7h1.5A2.5 2.5 0 0 1 20 9.5v5a2.5 2.5 0 0 1-2.5 2.5H16"></path><path d="M9.5 12h5"></path><path d="m11.5 8-2 8"></path><path d="m14.5 8-2 8"></path></svg></div></div><h2 class="mt-5 text-xl font-extrabold tracking-tight text-slate-900">AI API Gateway</h2><p class="mt-3 text-sm leading-relaxed text-slate-500">Quản lý endpoint AI nội bộ, provider, model, routing policy và giám sát lưu lượng API theo thời gian thực.</p><div class="mt-5 flex flex-wrap gap-2"><span class="rounded-full border border-slate-200 bg-white/80 px-3 py-1 text-xs font-semibold text-slate-500 shadow-sm">Provider</span><span class="rounded-full border border-slate-200 bg-white/80 px-3 py-1 text-xs font-semibold text-slate-500 shadow-sm">Routing</span><span class="rounded-full border border-slate-200 bg-white/80 px-3 py-1 text-xs font-semibold text-slate-500 shadow-sm">Usage</span></div><div class="mt-5 rounded-2xl border border-white/80 bg-gradient-to-br from-indigo-50 via-white to-blue-50 p-4 shadow-inner shadow-white/70"><div class="flex items-center gap-3"><div class="flex h-10 w-10 items-center justify-center rounded-2xl bg-gradient-to-br from-indigo-600 to-blue-500 text-white shadow-lg shadow-slate-900/10"><svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M8 7H6.5A2.5 2.5 0 0 0 4 9.5v5A2.5 2.5 0 0 0 6.5 17H8"></path><path d="M16 7h1.5A2.5 2.5 0 0 1 20 9.5v5a2.5 2.5 0 0 1-2.5 2.5H16"></path><path d="M9.5 12h5"></path><path d="m11.5 8-2 8"></path><path d="m14.5 8-2 8"></path></svg></div><div class="min-w-0"><p class="truncate text-sm font-bold text-slate-800">Gateway Console</p><p class="text-xs text-slate-500">Ready for internal use</p></div></div><div class="mt-4 space-y-2"><div class="flex items-center gap-2 text-xs text-slate-500"><span class="h-1.5 w-1.5 rounded-full bg-gradient-to-r from-indigo-600 to-blue-500"></span><span>Live model status</span></div><div class="flex items-center gap-2 text-xs text-slate-500"><span class="h-1.5 w-1.5 rounded-full bg-gradient-to-r from-indigo-600 to-blue-500"></span><span>Prompt logs &amp; analytics</span></div></div></div><span class="mt-auto inline-flex items-center gap-2 pt-5 text-xs font-black uppercase tracking-[0.16em] text-indigo-600">Mở dashboard<svg class="h-4 w-4 transition-transform group-hover:translate-x-1" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M13.5 4.5 21 12l-7.5 7.5"></path><path d="M21 12H3"></path></svg></span></div></a><a href="https://ai.fujinet.vn/" target="_blank" rel="noopener noreferrer" class="group relative flex min-h-[380px] flex-col overflow-hidden rounded-[28px] border border-slate-200/80 bg-white/90 p-6 shadow-sm shadow-slate-900/5 backdrop-blur transition-all duration-300 hover:border-violet-300 hover:-translate-y-1 hover:shadow-2xl hover:shadow-slate-900/10"><div class="pointer-events-none absolute inset-0 bg-gradient-to-br from-violet-50 via-white to-fuchsia-50 opacity-0 transition-opacity duration-300 group-hover:opacity-100"></div><div class="pointer-events-none absolute -right-12 -top-12 h-40 w-40 rounded-full bg-gradient-to-br from-violet-600 to-fuchsia-500 opacity-10 blur-2xl transition-opacity group-hover:opacity-20"></div><div class="pointer-events-none absolute bottom-0 left-0 right-0 h-24 bg-gradient-to-t from-slate-50/70 to-transparent"></div><div class="relative flex h-full flex-col"><div class="flex items-start justify-between gap-3"><span class="inline-flex w-fit rounded-full bg-violet-600 px-3 py-1.5 text-[11px] font-black tracking-[0.18em] text-white shadow-lg shadow-slate-900/10">CHAT</span><div class="flex h-14 w-14 items-center justify-center rounded-3xl bg-gradient-to-br from-violet-600 to-fuchsia-500 p-3 text-white shadow-xl shadow-slate-900/10 transition-transform duration-300 group-hover:scale-105 group-hover:rotate-3"><svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M5.5 6.5A4.5 4.5 0 0 1 10 2h4a4.5 4.5 0 0 1 4.5 4.5v3A4.5 4.5 0 0 1 14 14h-3.5L6 18v-4.4A4.5 4.5 0 0 1 5.5 9.5v-3Z"></path><path d="M8.5 7.5h7"></path><path d="M8.5 10.5h4.5"></path><path d="M12.5 17.5h3L20 21v-3.7a3.5 3.5 0 0 0 1-2.4V12"></path></svg></div></div><h2 class="mt-5 text-xl font-extrabold tracking-tight text-slate-900">AI Web Chat</h2><p class="mt-3 text-sm leading-relaxed text-slate-500">Trò chuyện với AI nội bộ, hỗ trợ viết code, phân tích tài liệu, brainstorm ý tưởng và hỏi đáp kỹ thuật.</p><div class="mt-5 flex flex-wrap gap-2"><span class="rounded-full border border-slate-200 bg-white/80 px-3 py-1 text-xs font-semibold text-slate-500 shadow-sm">Coding</span><span class="rounded-full border border-slate-200 bg-white/80 px-3 py-1 text-xs font-semibold text-slate-500 shadow-sm">Docs</span><span class="rounded-full border border-slate-200 bg-white/80 px-3 py-1 text-xs font-semibold text-slate-500 shadow-sm">Agent</span></div><div class="mt-5 rounded-2xl border border-white/80 bg-gradient-to-br from-violet-50 via-white to-fuchsia-50 p-4 shadow-inner shadow-white/70"><div class="flex items-center gap-3"><div class="flex h-10 w-10 items-center justify-center rounded-2xl bg-gradient-to-br from-violet-600 to-fuchsia-500 text-white shadow-lg shadow-slate-900/10"><svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M5.5 6.5A4.5 4.5 0 0 1 10 2h4a4.5 4.5 0 0 1 4.5 4.5v3A4.5 4.5 0 0 1 14 14h-3.5L6 18v-4.4A4.5 4.5 0 0 1 5.5 9.5v-3Z"></path><path d="M8.5 7.5h7"></path><path d="M8.5 10.5h4.5"></path><path d="M12.5 17.5h3L20 21v-3.7a3.5 3.5 0 0 0 1-2.4V12"></path></svg></div><div class="min-w-0"><p class="truncate text-sm font-bold text-slate-800">AI Assistant</p><p class="text-xs text-slate-500">Ready for internal use</p></div></div><div class="mt-4 space-y-2"><div class="flex items-center gap-2 text-xs text-slate-500"><span class="h-1.5 w-1.5 rounded-full bg-gradient-to-r from-violet-600 to-fuchsia-500"></span><span>Code review nhanh</span></div><div class="flex items-center gap-2 text-xs text-slate-500"><span class="h-1.5 w-1.5 rounded-full bg-gradient-to-r from-violet-600 to-fuchsia-500"></span><span>Hỏi đáp tài liệu nội bộ</span></div></div></div><span class="mt-auto inline-flex items-center gap-2 pt-5 text-xs font-black uppercase tracking-[0.16em] text-violet-600">Mở AI Chat<svg class="h-4 w-4 transition-transform group-hover:translate-x-1" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M13.5 4.5 21 12l-7.5 7.5"></path><path d="M21 12H3"></path></svg></span></div></a><a href="https://translate-workspace.fujinet.vn" target="_blank" rel="noopener noreferrer" class="group relative flex min-h-[380px] flex-col overflow-hidden rounded-[28px] border border-slate-200/80 bg-white/90 p-6 shadow-sm shadow-slate-900/5 backdrop-blur transition-all duration-300 hover:border-purple-300 hover:-translate-y-1 hover:shadow-2xl hover:shadow-slate-900/10"><div class="pointer-events-none absolute inset-0 bg-gradient-to-br from-purple-50 via-white to-pink-50 opacity-0 transition-opacity duration-300 group-hover:opacity-100"></div><div class="pointer-events-none absolute -right-12 -top-12 h-40 w-40 rounded-full bg-gradient-to-br from-purple-600 to-pink-500 opacity-10 blur-2xl transition-opacity group-hover:opacity-20"></div><div class="pointer-events-none absolute bottom-0 left-0 right-0 h-24 bg-gradient-to-t from-slate-50/70 to-transparent"></div><div class="relative flex h-full flex-col"><div class="flex items-start justify-between gap-3"><span class="inline-flex w-fit rounded-full bg-purple-600 px-3 py-1.5 text-[11px] font-black tracking-[0.18em] text-white shadow-lg shadow-slate-900/10">DỊCH</span><div class="flex h-14 w-14 items-center justify-center rounded-3xl bg-gradient-to-br from-purple-600 to-pink-500 p-3 text-white shadow-xl shadow-slate-900/10 transition-transform duration-300 group-hover:scale-105 group-hover:rotate-3"><svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h9"></path><path d="M8.5 3v2"></path><path d="M11.5 5c-.8 4.4-3 7-6.5 9"></path><path d="M5.5 8.5c1.1 2 2.8 3.6 5 4.7"></path><path d="M13.5 21 18 11l4.5 10"></path><path d="M15 17.5h6"></path></svg></div></div><h2 class="mt-5 text-xl font-extrabold tracking-tight text-slate-900">AI Translator</h2><p class="mt-3 text-sm leading-relaxed text-slate-500">Dịch tài liệu hỗ trợ 201 ngôn ngữ. Hỗ trợ Word, Excel, PowerPoint, IMAGE và PDF, ưu tiên giữ nguyên định dạng gốc.</p><div class="mt-5 flex flex-wrap gap-2"><span class="rounded-full border border-slate-200 bg-white/80 px-3 py-1 text-xs font-semibold text-slate-500 shadow-sm">Office</span><span class="rounded-full border border-slate-200 bg-white/80 px-3 py-1 text-xs font-semibold text-slate-500 shadow-sm">PDF</span><span class="rounded-full border border-slate-200 bg-white/80 px-3 py-1 text-xs font-semibold text-slate-500 shadow-sm">Image</span></div><div class="mt-5 rounded-2xl border border-white/80 bg-gradient-to-br from-purple-50 via-white to-pink-50 p-4 shadow-inner shadow-white/70"><div class="flex items-center gap-3"><div class="flex h-10 w-10 items-center justify-center rounded-2xl bg-gradient-to-br from-purple-600 to-pink-500 text-white shadow-lg shadow-slate-900/10"><svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M4 5h9"></path><path d="M8.5 3v2"></path><path d="M11.5 5c-.8 4.4-3 7-6.5 9"></path><path d="M5.5 8.5c1.1 2 2.8 3.6 5 4.7"></path><path d="M13.5 21 18 11l4.5 10"></path><path d="M15 17.5h6"></path></svg></div><div class="min-w-0"><p class="truncate text-sm font-bold text-slate-800">Document Translator</p><p class="text-xs text-slate-500">Ready for internal use</p></div></div><div class="mt-4 space-y-2"><div class="flex items-center gap-2 text-xs text-slate-500"><span class="h-1.5 w-1.5 rounded-full bg-gradient-to-r from-purple-600 to-pink-500"></span><span>Giữ layout gốc</span></div><div class="flex items-center gap-2 text-xs text-slate-500"><span class="h-1.5 w-1.5 rounded-full bg-gradient-to-r from-purple-600 to-pink-500"></span><span>Business JA/VN style</span></div></div></div><span class="mt-auto inline-flex items-center gap-2 pt-5 text-xs font-black uppercase tracking-[0.16em] text-purple-600">Mở Translator<svg class="h-4 w-4 transition-transform group-hover:translate-x-1" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M13.5 4.5 21 12l-7.5 7.5"></path><path d="M21 12H3"></path></svg></span></div></a><a href="https://itsupport.fujinet.vn" target="_blank" rel="noopener noreferrer" class="group relative flex min-h-[380px] flex-col overflow-hidden rounded-[28px] border border-slate-200/80 bg-white/90 p-6 shadow-sm shadow-slate-900/5 backdrop-blur transition-all duration-300 hover:border-blue-300 hover:-translate-y-1 hover:shadow-2xl hover:shadow-slate-900/10"><div class="pointer-events-none absolute inset-0 bg-gradient-to-br from-blue-50 via-white to-cyan-50 opacity-0 transition-opacity duration-300 group-hover:opacity-100"></div><div class="pointer-events-none absolute -right-12 -top-12 h-40 w-40 rounded-full bg-gradient-to-br from-blue-600 to-cyan-500 opacity-10 blur-2xl transition-opacity group-hover:opacity-20"></div><div class="pointer-events-none absolute bottom-0 left-0 right-0 h-24 bg-gradient-to-t from-slate-50/70 to-transparent"></div><div class="relative flex h-full flex-col"><div class="flex items-start justify-between gap-3"><span class="inline-flex w-fit rounded-full bg-blue-600 px-3 py-1.5 text-[11px] font-black tracking-[0.18em] text-white shadow-lg shadow-slate-900/10">TICKET</span><div class="flex h-14 w-14 items-center justify-center rounded-3xl bg-gradient-to-br from-blue-600 to-cyan-500 p-3 text-white shadow-xl shadow-slate-900/10 transition-transform duration-300 group-hover:scale-105 group-hover:rotate-3"><svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M4.5 12a7.5 7.5 0 0 1 15 0"></path><path d="M4.5 12v3.5A1.5 1.5 0 0 0 6 17h1.5v-5H4.5Z"></path><path d="M19.5 12v3.5A1.5 1.5 0 0 1 18 17h-1.5v-5h3Z"></path><path d="M16.5 17.5c-.5 1.5-1.8 2.5-3.5 2.5h-1.5"></path><path d="M10 20h2"></path></svg></div></div><h2 class="mt-5 text-xl font-extrabold tracking-tight text-slate-900">IT Support</h2><p class="mt-3 text-sm leading-relaxed text-slate-500">Gửi yêu cầu hỗ trợ kỹ thuật, theo dõi tiến độ xử lý ticket, trao đổi trực tiếp với đội IT và xem lịch sử sự cố.</p><div class="mt-5 flex flex-wrap gap-2"><span class="rounded-full border border-slate-200 bg-white/80 px-3 py-1 text-xs font-semibold text-slate-500 shadow-sm">Ticket</span><span class="rounded-full border border-slate-200 bg-white/80 px-3 py-1 text-xs font-semibold text-slate-500 shadow-sm">SLA</span><span class="rounded-full border border-slate-200 bg-white/80 px-3 py-1 text-xs font-semibold text-slate-500 shadow-sm">History</span></div><div class="mt-5 rounded-2xl border border-white/80 bg-gradient-to-br from-blue-50 via-white to-cyan-50 p-4 shadow-inner shadow-white/70"><div class="flex items-center gap-3"><div class="flex h-10 w-10 items-center justify-center rounded-2xl bg-gradient-to-br from-blue-600 to-cyan-500 text-white shadow-lg shadow-slate-900/10"><svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M4.5 12a7.5 7.5 0 0 1 15 0"></path><path d="M4.5 12v3.5A1.5 1.5 0 0 0 6 17h1.5v-5H4.5Z"></path><path d="M19.5 12v3.5A1.5 1.5 0 0 1 18 17h-1.5v-5h3Z"></path><path d="M16.5 17.5c-.5 1.5-1.8 2.5-3.5 2.5h-1.5"></path><path d="M10 20h2"></path></svg></div><div class="min-w-0"><p class="truncate text-sm font-bold text-slate-800">Support Desk</p><p class="text-xs text-slate-500">Ready for internal use</p></div></div><div class="mt-4 space-y-2"><div class="flex items-center gap-2 text-xs text-slate-500"><span class="h-1.5 w-1.5 rounded-full bg-gradient-to-r from-blue-600 to-cyan-500"></span><span>Tạo ticket nhanh</span></div><div class="flex items-center gap-2 text-xs text-slate-500"><span class="h-1.5 w-1.5 rounded-full bg-gradient-to-r from-blue-600 to-cyan-500"></span><span>Theo dõi xử lý sự cố</span></div></div></div><span class="mt-auto inline-flex items-center gap-2 pt-5 text-xs font-black uppercase tracking-[0.16em] text-blue-600">Gửi ticket<svg class="h-4 w-4 transition-transform group-hover:translate-x-1" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M13.5 4.5 21 12l-7.5 7.5"></path><path d="M21 12H3"></path></svg></span></div></a><a href="https://itresource.fujinet.net/" target="_blank" rel="noopener noreferrer" class="group relative flex min-h-[380px] flex-col overflow-hidden rounded-[28px] border border-slate-200/80 bg-white/90 p-6 shadow-sm shadow-slate-900/5 backdrop-blur transition-all duration-300 hover:border-sky-300 hover:-translate-y-1 hover:shadow-2xl hover:shadow-slate-900/10"><div class="pointer-events-none absolute inset-0 bg-gradient-to-br from-sky-50 via-white to-teal-50 opacity-0 transition-opacity duration-300 group-hover:opacity-100"></div><div class="pointer-events-none absolute -right-12 -top-12 h-40 w-40 rounded-full bg-gradient-to-br from-sky-600 to-teal-500 opacity-10 blur-2xl transition-opacity group-hover:opacity-20"></div><div class="pointer-events-none absolute bottom-0 left-0 right-0 h-24 bg-gradient-to-t from-slate-50/70 to-transparent"></div><div class="relative flex h-full flex-col"><div class="flex items-start justify-between gap-3"><span class="inline-flex w-fit rounded-full bg-sky-600 px-3 py-1.5 text-[11px] font-black tracking-[0.18em] text-white shadow-lg shadow-slate-900/10">ASSET</span><div class="flex h-14 w-14 items-center justify-center rounded-3xl bg-gradient-to-br from-sky-600 to-teal-500 p-3 text-white shadow-xl shadow-slate-900/10 transition-transform duration-300 group-hover:scale-105 group-hover:rotate-3"><svg class="h-6 w-6" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6.5A2.5 2.5 0 0 1 6.5 4h11A2.5 2.5 0 0 1 20 6.5v7A2.5 2.5 0 0 1 17.5 16h-11A2.5 2.5 0 0 1 4 13.5v-7Z"></path><path d="M8 20h8"></path><path d="M12 16v4"></path><path d="M7.5 8.5h3"></path><path d="M13.5 8.5h3"></path><path d="M7.5 12h9"></path></svg></div></div><h2 class="mt-5 text-xl font-extrabold tracking-tight text-slate-900">IT Resource</h2><p class="mt-3 text-sm leading-relaxed text-slate-500">Quản lý tài nguyên CNTT nội bộ. Đăng ký cấp phát thiết bị, tài khoản, quyền truy cập VPN và dịch vụ hạ tầng.</p><div class="mt-5 flex flex-wrap gap-2"><span class="rounded-full border border-slate-200 bg-white/80 px-3 py-1 text-xs font-semibold text-slate-500 shadow-sm">Asset</span><span class="rounded-full border border-slate-200 bg-white/80 px-3 py-1 text-xs font-semibold text-slate-500 shadow-sm">Account</span><span class="rounded-full border border-slate-200 bg-white/80 px-3 py-1 text-xs font-semibold text-slate-500 shadow-sm">VPN</span></div><div class="mt-5 rounded-2xl border border-white/80 bg-gradient-to-br from-sky-50 via-white to-teal-50 p-4 shadow-inner shadow-white/70"><div class="flex items-center gap-3"><div class="flex h-10 w-10 items-center justify-center rounded-2xl bg-gradient-to-br from-sky-600 to-teal-500 text-white shadow-lg shadow-slate-900/10"><svg class="h-5 w-5" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round"><path d="M4 6.5A2.5 2.5 0 0 1 6.5 4h11A2.5 2.5 0 0 1 20 6.5v7A2.5 2.5 0 0 1 17.5 16h-11A2.5 2.5 0 0 1 4 13.5v-7Z"></path><path d="M8 20h8"></path><path d="M12 16v4"></path><path d="M7.5 8.5h3"></path><path d="M13.5 8.5h3"></path><path d="M7.5 12h9"></path></svg></div><div class="min-w-0"><p class="truncate text-sm font-bold text-slate-800">IT Resource Hub</p><p class="text-xs text-slate-500">Ready for internal use</p></div></div><div class="mt-4 space-y-2"><div class="flex items-center gap-2 text-xs text-slate-500"><span class="h-1.5 w-1.5 rounded-full bg-gradient-to-r from-sky-600 to-teal-500"></span><span>Cấp phát thiết bị</span></div><div class="flex items-center gap-2 text-xs text-slate-500"><span class="h-1.5 w-1.5 rounded-full bg-gradient-to-r from-sky-600 to-teal-500"></span><span>Quản lý quyền truy cập</span></div></div></div><span class="mt-auto inline-flex items-center gap-2 pt-5 text-xs font-black uppercase tracking-[0.16em] text-sky-600">Mở resource<svg class="h-4 w-4 transition-transform group-hover:translate-x-1" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M13.5 4.5 21 12l-7.5 7.5"></path><path d="M21 12H3"></path></svg></span></div></a></section><footer class="mt-12 flex flex-col items-center justify-between gap-4 rounded-[28px] border border-white/70 bg-white/60 px-5 py-4 shadow-sm backdrop-blur sm:flex-row"><div class="flex items-center gap-3"><img src="/fjslogo.svg" alt="Fujinet Systems JSC" class="h-7 w-auto"/><div class="leading-tight"><p class="text-xs text-slate-400">Internal Portal · v1.0.0</p></div></div><div class="text-xs text-slate-400">© 2026 Fujinet Systems. All rights reserved.<!-- --> <a href="mailto:itadmin@fujinet.net" target="_blank" rel="noopener noreferrer" class="font-bold text-indigo-500 hover:underline">Contact: itadmin@fujinet.net</a></div></footer></div></main><!--$--><!--/$--><script src="/_next/static/chunks/webpack-a990cabb6976f421.js" id="_R_" async=""></script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[21110,[\"3862\",\"static/chunks/1a258343-bc0b514c079d8898.js\",\"1051\",\"static/chunks/1051-eec0f271123ef82f.js\",\"620\",\"static/chunks/620-2c14fcde041d3cee.js\",\"5497\",\"static/chunks/5497-870b5871cedc0773.js\",\"9305\",\"static/chunks/app/(dashboard)/layout-872e9f4deabd99c8.js\"],\"ThemeProvider\"]\n3:I[94635,[\"620\",\"static/chunks/620-2c14fcde041d3cee.js\",\"7177\",\"static/chunks/app/layout-09e41d62a11130d0.js\"],\"RuntimeI18nProvider\"]\n4:I[57121,[],\"\"]\n5:I[74581,[],\"\"]\n6:I[61304,[],\"ClientPageRoot\"]\n7:I[83016,[\"620\",\"static/chunks/620-2c14fcde041d3cee.js\",\"4520\",\"static/chunks/app/login/page-af32310bf4ef76c4.js\"],\"default\"]\na:I[90484,[],\"OutletBoundary\"]\nb:\"$Sreact.suspense\"\ne:I[90484,[],\"ViewportBoundary\"]\n10:I[90484,[],\"MetadataBoundary\"]\n12:I[27123,[],\"default\",1]\n:HL[\"/_next/static/css/7a3e1568f247f3d0.css\",\"style\"]\n:HL[\"/_next/static/css/48ae41ccbc2d49a7.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"login\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"login\",{\"children\":[\"__PAGE__\",{}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/7a3e1568f247f3d0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/48ae41ccbc2d49a7.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"if(document.fonts\u0026\u0026document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}\"}}]}],[\"$\",\"body\",null,{\"className\":\"__variable_f367f3 font-sans antialiased\",\"children\":[\"$\",\"$L2\",null,{\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"$L6\",null,{\"Component\":\"$7\",\"serverProvidedParams\":{\"searchParams\":{},\"params\":{},\"promises\":[\"$@8\",\"$@9\"]}}],null,[\"$\",\"$La\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@c\"}]}]]}],{},null,false,null]},null,false,\"$@d\"]},null,false,null],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Le\",null,{\"children\":\"$Lf\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L10\",null,{\"children\":[\"$\",\"$b\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L11\"}]}]}],null]}],false]],\"m\":\"$undefined\",\"G\":[\"$12\",[]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"dwx34Ceo6Jf1OF2L7VmZa\"}\n"])</script><script>self.__next_f.push([1,"13:[]\nd:\"$W13\"\n8:{}\n9:\"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params\"\n"])</script><script>self.__next_f.push([1,"f:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"content\":\"#0a0a0a\"}]]\n"])</script><script>self.__next_f.push([1,"14:I[86869,[],\"IconMark\"]\nc:null\n11:[[\"$\",\"title\",\"0\",{\"children\":\"AI Router Gateway - AI Infrastructure Management\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"3\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?d69b7278ea27dcf7\",\"type\":\"image/x-icon\",\"sizes\":\"32x32\"}],[\"$\",\"link\",\"4\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"$L14\",\"5\",{}]]\n"])</script></body></html>
@@ -1,18 +1,18 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[21110,["3862","static/chunks/1a258343-bc0b514c079d8898.js","1051","static/chunks/1051-eec0f271123ef82f.js","620","static/chunks/620-0da2d3ddb59472c3.js","5497","static/chunks/5497-870b5871cedc0773.js","9305","static/chunks/app/(dashboard)/layout-872e9f4deabd99c8.js"],"ThemeProvider"]
3
- 3:I[94635,["620","static/chunks/620-0da2d3ddb59472c3.js","7177","static/chunks/app/layout-09e41d62a11130d0.js"],"RuntimeI18nProvider"]
2
+ 2:I[21110,["3862","static/chunks/1a258343-bc0b514c079d8898.js","1051","static/chunks/1051-eec0f271123ef82f.js","620","static/chunks/620-2c14fcde041d3cee.js","5497","static/chunks/5497-870b5871cedc0773.js","9305","static/chunks/app/(dashboard)/layout-872e9f4deabd99c8.js"],"ThemeProvider"]
3
+ 3:I[94635,["620","static/chunks/620-2c14fcde041d3cee.js","7177","static/chunks/app/layout-09e41d62a11130d0.js"],"RuntimeI18nProvider"]
4
4
  4:I[57121,[],""]
5
5
  5:I[74581,[],""]
6
6
  6:I[61304,[],"ClientPageRoot"]
7
- 7:I[83016,["620","static/chunks/620-0da2d3ddb59472c3.js","4520","static/chunks/app/login/page-beeb9f7cb47ad3fc.js"],"default"]
7
+ 7:I[83016,["620","static/chunks/620-2c14fcde041d3cee.js","4520","static/chunks/app/login/page-af32310bf4ef76c4.js"],"default"]
8
8
  a:I[90484,[],"OutletBoundary"]
9
9
  b:"$Sreact.suspense"
10
10
  e:I[90484,[],"ViewportBoundary"]
11
11
  10:I[90484,[],"MetadataBoundary"]
12
12
  12:I[27123,[],"default",1]
13
13
  :HL["/_next/static/css/7a3e1568f247f3d0.css","style"]
14
- :HL["/_next/static/css/093f9a5124234621.css","style"]
15
- 0:{"P":null,"c":["","login"],"q":"","i":false,"f":[[["",{"children":["login",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/093f9a5124234621.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}"}}]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],null,["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,"$@d"]},null,false,null],["$","$1","h",{"children":[null,["$","$Le",null,{"children":"$Lf"}],["$","div",null,{"hidden":true,"children":["$","$L10",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L11"}]}]}],null]}],false]],"m":"$undefined","G":["$12",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"nxfjuhFM_8WLGDl2aSVXS"}
14
+ :HL["/_next/static/css/48ae41ccbc2d49a7.css","style"]
15
+ 0:{"P":null,"c":["","login"],"q":"","i":false,"f":[[["",{"children":["login",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/48ae41ccbc2d49a7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}"}}]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],null,["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,"$@d"]},null,false,null],["$","$1","h",{"children":[null,["$","$Le",null,{"children":"$Lf"}],["$","div",null,{"hidden":true,"children":["$","$L10",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L11"}]}]}],null]}],false]],"m":"$undefined","G":["$12",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"dwx34Ceo6Jf1OF2L7VmZa"}
16
16
  13:[]
17
17
  d:"$W13"
18
18
  8:{}
@@ -1,18 +1,18 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[21110,["3862","static/chunks/1a258343-bc0b514c079d8898.js","1051","static/chunks/1051-eec0f271123ef82f.js","620","static/chunks/620-0da2d3ddb59472c3.js","5497","static/chunks/5497-870b5871cedc0773.js","9305","static/chunks/app/(dashboard)/layout-872e9f4deabd99c8.js"],"ThemeProvider"]
3
- 3:I[94635,["620","static/chunks/620-0da2d3ddb59472c3.js","7177","static/chunks/app/layout-09e41d62a11130d0.js"],"RuntimeI18nProvider"]
2
+ 2:I[21110,["3862","static/chunks/1a258343-bc0b514c079d8898.js","1051","static/chunks/1051-eec0f271123ef82f.js","620","static/chunks/620-2c14fcde041d3cee.js","5497","static/chunks/5497-870b5871cedc0773.js","9305","static/chunks/app/(dashboard)/layout-872e9f4deabd99c8.js"],"ThemeProvider"]
3
+ 3:I[94635,["620","static/chunks/620-2c14fcde041d3cee.js","7177","static/chunks/app/layout-09e41d62a11130d0.js"],"RuntimeI18nProvider"]
4
4
  4:I[57121,[],""]
5
5
  5:I[74581,[],""]
6
6
  6:I[61304,[],"ClientPageRoot"]
7
- 7:I[83016,["620","static/chunks/620-0da2d3ddb59472c3.js","4520","static/chunks/app/login/page-beeb9f7cb47ad3fc.js"],"default"]
7
+ 7:I[83016,["620","static/chunks/620-2c14fcde041d3cee.js","4520","static/chunks/app/login/page-af32310bf4ef76c4.js"],"default"]
8
8
  a:I[90484,[],"OutletBoundary"]
9
9
  b:"$Sreact.suspense"
10
10
  e:I[90484,[],"ViewportBoundary"]
11
11
  10:I[90484,[],"MetadataBoundary"]
12
12
  12:I[27123,[],"default",1]
13
13
  :HL["/_next/static/css/7a3e1568f247f3d0.css","style"]
14
- :HL["/_next/static/css/093f9a5124234621.css","style"]
15
- 0:{"P":null,"c":["","login"],"q":"","i":false,"f":[[["",{"children":["login",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/093f9a5124234621.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}"}}]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],null,["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,"$@d"]},null,false,null],["$","$1","h",{"children":[null,["$","$Le",null,{"children":"$Lf"}],["$","div",null,{"hidden":true,"children":["$","$L10",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L11"}]}]}],null]}],false]],"m":"$undefined","G":["$12",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"nxfjuhFM_8WLGDl2aSVXS"}
14
+ :HL["/_next/static/css/48ae41ccbc2d49a7.css","style"]
15
+ 0:{"P":null,"c":["","login"],"q":"","i":false,"f":[[["",{"children":["login",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/48ae41ccbc2d49a7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}"}}]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],null,["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,"$@d"]},null,false,null],["$","$1","h",{"children":[null,["$","$Le",null,{"children":"$Lf"}],["$","div",null,{"hidden":true,"children":["$","$L10",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L11"}]}]}],null]}],false]],"m":"$undefined","G":["$12",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"dwx34Ceo6Jf1OF2L7VmZa"}
16
16
  13:[]
17
17
  d:"$W13"
18
18
  8:{}
@@ -3,4 +3,4 @@
3
3
  3:I[90484,[],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
5
  5:I[86869,[],"IconMark"]
6
- 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"AI Router Gateway - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?d69b7278ea27dcf7","type":"image/x-icon","sizes":"32x32"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"nxfjuhFM_8WLGDl2aSVXS"}
6
+ 0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"AI Router Gateway - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?d69b7278ea27dcf7","type":"image/x-icon","sizes":"32x32"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],null]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"dwx34Ceo6Jf1OF2L7VmZa"}
@@ -1,8 +1,8 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[21110,["3862","static/chunks/1a258343-bc0b514c079d8898.js","1051","static/chunks/1051-eec0f271123ef82f.js","620","static/chunks/620-0da2d3ddb59472c3.js","5497","static/chunks/5497-870b5871cedc0773.js","9305","static/chunks/app/(dashboard)/layout-872e9f4deabd99c8.js"],"ThemeProvider"]
3
- 3:I[94635,["620","static/chunks/620-0da2d3ddb59472c3.js","7177","static/chunks/app/layout-09e41d62a11130d0.js"],"RuntimeI18nProvider"]
2
+ 2:I[21110,["3862","static/chunks/1a258343-bc0b514c079d8898.js","1051","static/chunks/1051-eec0f271123ef82f.js","620","static/chunks/620-2c14fcde041d3cee.js","5497","static/chunks/5497-870b5871cedc0773.js","9305","static/chunks/app/(dashboard)/layout-872e9f4deabd99c8.js"],"ThemeProvider"]
3
+ 3:I[94635,["620","static/chunks/620-2c14fcde041d3cee.js","7177","static/chunks/app/layout-09e41d62a11130d0.js"],"RuntimeI18nProvider"]
4
4
  4:I[57121,[],""]
5
5
  5:I[74581,[],""]
6
6
  :HL["/_next/static/css/7a3e1568f247f3d0.css","style"]
7
- :HL["/_next/static/css/093f9a5124234621.css","style"]
8
- 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/093f9a5124234621.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}"}}]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"nxfjuhFM_8WLGDl2aSVXS"}
7
+ :HL["/_next/static/css/48ae41ccbc2d49a7.css","style"]
8
+ 0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/7a3e1568f247f3d0.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/48ae41ccbc2d49a7.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":["$","script",null,{"dangerouslySetInnerHTML":{"__html":"if(document.fonts&&document.fonts.ready){document.fonts.ready.then(function(){document.documentElement.classList.add('fonts-loaded')})}else{document.documentElement.classList.add('fonts-loaded')}"}}]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"dwx34Ceo6Jf1OF2L7VmZa"}
@@ -1,3 +1,3 @@
1
1
  :HL["/_next/static/css/7a3e1568f247f3d0.css","style"]
2
- :HL["/_next/static/css/093f9a5124234621.css","style"]
3
- 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"login","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"nxfjuhFM_8WLGDl2aSVXS"}
2
+ :HL["/_next/static/css/48ae41ccbc2d49a7.css","style"]
3
+ 0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"login","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"dwx34Ceo6Jf1OF2L7VmZa"}
@@ -1,9 +1,9 @@
1
1
  1:"$Sreact.fragment"
2
2
  2:I[61304,[],"ClientPageRoot"]
3
- 3:I[83016,["620","static/chunks/620-0da2d3ddb59472c3.js","4520","static/chunks/app/login/page-beeb9f7cb47ad3fc.js"],"default"]
3
+ 3:I[83016,["620","static/chunks/620-2c14fcde041d3cee.js","4520","static/chunks/app/login/page-af32310bf4ef76c4.js"],"default"]
4
4
  6:I[90484,[],"OutletBoundary"]
5
5
  7:"$Sreact.suspense"
6
- 0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"nxfjuhFM_8WLGDl2aSVXS"}
6
+ 0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"dwx34Ceo6Jf1OF2L7VmZa"}
7
7
  4:{}
8
8
  5:"$0:rsc:props:children:0:props:serverProvidedParams:params"
9
9
  8:null
@@ -2,4 +2,4 @@
2
2
  2:I[57121,[],""]
3
3
  3:I[74581,[],""]
4
4
  4:[]
5
- 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"nxfjuhFM_8WLGDl2aSVXS"}
5
+ 0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"dwx34Ceo6Jf1OF2L7VmZa"}