omniroute 1.0.3 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (454) hide show
  1. package/README.de.md +9 -4
  2. package/README.es.md +8 -4
  3. package/README.fr.md +8 -4
  4. package/README.it.md +9 -4
  5. package/README.md +8 -4
  6. package/README.pt-BR.md +8 -4
  7. package/README.ru.md +8 -4
  8. package/README.zh-CN.md +8 -4
  9. package/app/.next/BUILD_ID +1 -1
  10. package/app/.next/app-path-routes-manifest.json +23 -23
  11. package/app/.next/build-manifest.json +2 -2
  12. package/app/.next/prerender-manifest.json +3 -3
  13. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/_global-error.html +2 -2
  35. package/app/.next/server/app/_global-error.rsc +1 -1
  36. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  37. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  38. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  39. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  40. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  41. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  42. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  43. package/app/.next/server/app/_not-found.html +1 -1
  44. package/app/.next/server/app/_not-found.rsc +2 -2
  45. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  46. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  47. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  48. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  49. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  50. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  51. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +1 -1
  57. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  59. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/api/cli-tools/backups/route.js +1 -1
  61. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  63. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  64. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +1 -1
  65. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  66. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +1 -1
  67. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +1 -1
  69. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  70. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
  71. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  72. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  74. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  76. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
  78. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/api/cli-tools/status/route.js +2 -2
  80. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
  93. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  97. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  98. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  99. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  102. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/api/models/route.js +2 -2
  105. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/monitoring/health/route.js +1 -1
  107. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  108. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  110. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  111. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  113. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  115. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  116. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  118. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  119. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  120. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  121. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  127. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/providers/route.js +1 -1
  129. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  130. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  131. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  137. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  143. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  146. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  151. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  154. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  156. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  157. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  159. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  160. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  163. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  165. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  170. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  173. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  174. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/api/v1/models/route.js +1 -1
  177. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  178. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  180. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  181. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  182. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  183. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  184. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  185. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  186. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  187. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  188. package/app/.next/server/app/callback.html +1 -1
  189. package/app/.next/server/app/callback.rsc +2 -2
  190. package/app/.next/server/app/callback.segments/_full.segment.rsc +2 -2
  191. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  192. package/app/.next/server/app/callback.segments/_index.segment.rsc +2 -2
  193. package/app/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
  194. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  195. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  196. package/app/.next/server/app/dashboard/analytics.html +2 -2
  197. package/app/.next/server/app/dashboard/analytics.rsc +4 -4
  198. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +2 -2
  199. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
  200. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  201. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  202. package/app/.next/server/app/dashboard/analytics.segments/_full.segment.rsc +4 -4
  203. package/app/.next/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
  204. package/app/.next/server/app/dashboard/analytics.segments/_index.segment.rsc +2 -2
  205. package/app/.next/server/app/dashboard/analytics.segments/_tree.segment.rsc +1 -1
  206. package/app/.next/server/app/dashboard/audit-log.html +1 -1
  207. package/app/.next/server/app/dashboard/audit-log.rsc +3 -3
  208. package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard/audit-log/__PAGE__.segment.rsc +1 -1
  209. package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard/audit-log.segment.rsc +1 -1
  210. package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  211. package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  212. package/app/.next/server/app/dashboard/audit-log.segments/_full.segment.rsc +3 -3
  213. package/app/.next/server/app/dashboard/audit-log.segments/_head.segment.rsc +1 -1
  214. package/app/.next/server/app/dashboard/audit-log.segments/_index.segment.rsc +2 -2
  215. package/app/.next/server/app/dashboard/audit-log.segments/_tree.segment.rsc +1 -1
  216. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  217. package/app/.next/server/app/dashboard/cli-tools.rsc +5 -5
  218. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  219. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  220. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  221. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  222. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  223. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  224. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +2 -2
  225. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  226. package/app/.next/server/app/dashboard/combos.html +1 -1
  227. package/app/.next/server/app/dashboard/combos.rsc +4 -4
  228. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  229. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  230. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  231. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  232. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +4 -4
  233. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  234. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +2 -2
  235. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  236. package/app/.next/server/app/dashboard/costs.html +1 -1
  237. package/app/.next/server/app/dashboard/costs.rsc +4 -4
  238. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs/__PAGE__.segment.rsc +2 -2
  239. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs.segment.rsc +1 -1
  240. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  241. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  242. package/app/.next/server/app/dashboard/costs.segments/_full.segment.rsc +4 -4
  243. package/app/.next/server/app/dashboard/costs.segments/_head.segment.rsc +1 -1
  244. package/app/.next/server/app/dashboard/costs.segments/_index.segment.rsc +2 -2
  245. package/app/.next/server/app/dashboard/costs.segments/_tree.segment.rsc +1 -1
  246. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  247. package/app/.next/server/app/dashboard/endpoint.rsc +5 -5
  248. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  249. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  250. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  251. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  252. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  253. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  254. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +2 -2
  255. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  256. package/app/.next/server/app/dashboard/health.html +1 -1
  257. package/app/.next/server/app/dashboard/health.rsc +4 -4
  258. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health/__PAGE__.segment.rsc +2 -2
  259. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health.segment.rsc +1 -1
  260. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  261. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  262. package/app/.next/server/app/dashboard/health.segments/_full.segment.rsc +4 -4
  263. package/app/.next/server/app/dashboard/health.segments/_head.segment.rsc +1 -1
  264. package/app/.next/server/app/dashboard/health.segments/_index.segment.rsc +2 -2
  265. package/app/.next/server/app/dashboard/health.segments/_tree.segment.rsc +1 -1
  266. package/app/.next/server/app/dashboard/limits.html +2 -2
  267. package/app/.next/server/app/dashboard/limits.rsc +4 -4
  268. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits/__PAGE__.segment.rsc +2 -2
  269. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits.segment.rsc +1 -1
  270. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  271. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  272. package/app/.next/server/app/dashboard/limits.segments/_full.segment.rsc +4 -4
  273. package/app/.next/server/app/dashboard/limits.segments/_head.segment.rsc +1 -1
  274. package/app/.next/server/app/dashboard/limits.segments/_index.segment.rsc +2 -2
  275. package/app/.next/server/app/dashboard/limits.segments/_tree.segment.rsc +1 -1
  276. package/app/.next/server/app/dashboard/logs.html +1 -1
  277. package/app/.next/server/app/dashboard/logs.rsc +4 -4
  278. package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs/__PAGE__.segment.rsc +2 -2
  279. package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs.segment.rsc +1 -1
  280. package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  281. package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  282. package/app/.next/server/app/dashboard/logs.segments/_full.segment.rsc +4 -4
  283. package/app/.next/server/app/dashboard/logs.segments/_head.segment.rsc +1 -1
  284. package/app/.next/server/app/dashboard/logs.segments/_index.segment.rsc +2 -2
  285. package/app/.next/server/app/dashboard/logs.segments/_tree.segment.rsc +1 -1
  286. package/app/.next/server/app/dashboard/onboarding.html +1 -1
  287. package/app/.next/server/app/dashboard/onboarding.rsc +3 -3
  288. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding/__PAGE__.segment.rsc +1 -1
  289. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding.segment.rsc +1 -1
  290. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  291. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  292. package/app/.next/server/app/dashboard/onboarding.segments/_full.segment.rsc +3 -3
  293. package/app/.next/server/app/dashboard/onboarding.segments/_head.segment.rsc +1 -1
  294. package/app/.next/server/app/dashboard/onboarding.segments/_index.segment.rsc +2 -2
  295. package/app/.next/server/app/dashboard/onboarding.segments/_tree.segment.rsc +1 -1
  296. package/app/.next/server/app/dashboard/profile.html +1 -1
  297. package/app/.next/server/app/dashboard/profile.rsc +3 -3
  298. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  299. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  300. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  301. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  302. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +3 -3
  303. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  304. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +2 -2
  305. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  306. package/app/.next/server/app/dashboard/providers/new.html +2 -2
  307. package/app/.next/server/app/dashboard/providers/new.rsc +4 -4
  308. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  309. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  310. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  311. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  312. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  313. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +4 -4
  314. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  315. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +2 -2
  316. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  317. package/app/.next/server/app/dashboard/providers.html +2 -2
  318. package/app/.next/server/app/dashboard/providers.rsc +4 -4
  319. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  320. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  321. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  322. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  323. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +4 -4
  324. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  325. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +2 -2
  326. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  327. package/app/.next/server/app/dashboard/settings/pricing.html +2 -2
  328. package/app/.next/server/app/dashboard/settings/pricing.rsc +3 -3
  329. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  330. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +1 -1
  331. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  332. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  333. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  334. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  335. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  336. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +2 -2
  337. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  338. package/app/.next/server/app/dashboard/settings.html +2 -2
  339. package/app/.next/server/app/dashboard/settings.rsc +4 -4
  340. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +2 -2
  341. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  342. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  343. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  344. package/app/.next/server/app/dashboard/settings.segments/_full.segment.rsc +4 -4
  345. package/app/.next/server/app/dashboard/settings.segments/_head.segment.rsc +1 -1
  346. package/app/.next/server/app/dashboard/settings.segments/_index.segment.rsc +2 -2
  347. package/app/.next/server/app/dashboard/settings.segments/_tree.segment.rsc +1 -1
  348. package/app/.next/server/app/dashboard/translator.html +2 -2
  349. package/app/.next/server/app/dashboard/translator.rsc +4 -4
  350. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  351. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  352. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  353. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  354. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +4 -4
  355. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  356. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +2 -2
  357. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  358. package/app/.next/server/app/dashboard/usage.html +1 -1
  359. package/app/.next/server/app/dashboard/usage.rsc +4 -4
  360. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  361. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  362. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  363. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  364. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +4 -4
  365. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  366. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +2 -2
  367. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  368. package/app/.next/server/app/docs/page.js +1 -1
  369. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  370. package/app/.next/server/app/docs.html +1 -1
  371. package/app/.next/server/app/docs.rsc +2 -2
  372. package/app/.next/server/app/docs.segments/_full.segment.rsc +2 -2
  373. package/app/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  374. package/app/.next/server/app/docs.segments/_index.segment.rsc +2 -2
  375. package/app/.next/server/app/docs.segments/_tree.segment.rsc +1 -1
  376. package/app/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  377. package/app/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  378. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  379. package/app/.next/server/app/forbidden.html +1 -1
  380. package/app/.next/server/app/forbidden.rsc +2 -2
  381. package/app/.next/server/app/forbidden.segments/_full.segment.rsc +2 -2
  382. package/app/.next/server/app/forbidden.segments/_head.segment.rsc +1 -1
  383. package/app/.next/server/app/forbidden.segments/_index.segment.rsc +2 -2
  384. package/app/.next/server/app/forbidden.segments/_tree.segment.rsc +1 -1
  385. package/app/.next/server/app/forbidden.segments/forbidden/__PAGE__.segment.rsc +1 -1
  386. package/app/.next/server/app/forbidden.segments/forbidden.segment.rsc +1 -1
  387. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  388. package/app/.next/server/app/forgot-password.html +1 -1
  389. package/app/.next/server/app/forgot-password.rsc +3 -3
  390. package/app/.next/server/app/forgot-password.segments/_full.segment.rsc +3 -3
  391. package/app/.next/server/app/forgot-password.segments/_head.segment.rsc +1 -1
  392. package/app/.next/server/app/forgot-password.segments/_index.segment.rsc +2 -2
  393. package/app/.next/server/app/forgot-password.segments/_tree.segment.rsc +1 -1
  394. package/app/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +2 -2
  395. package/app/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +1 -1
  396. package/app/.next/server/app/index.html +1 -1
  397. package/app/.next/server/app/index.rsc +2 -2
  398. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  399. package/app/.next/server/app/index.segments/_full.segment.rsc +2 -2
  400. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  401. package/app/.next/server/app/index.segments/_index.segment.rsc +2 -2
  402. package/app/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  403. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  404. package/app/.next/server/app/landing.html +1 -1
  405. package/app/.next/server/app/landing.rsc +2 -2
  406. package/app/.next/server/app/landing.segments/_full.segment.rsc +2 -2
  407. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  408. package/app/.next/server/app/landing.segments/_index.segment.rsc +2 -2
  409. package/app/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
  410. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  411. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  412. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  413. package/app/.next/server/app/login.html +1 -1
  414. package/app/.next/server/app/login.rsc +3 -3
  415. package/app/.next/server/app/login.segments/_full.segment.rsc +3 -3
  416. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  417. package/app/.next/server/app/login.segments/_index.segment.rsc +2 -2
  418. package/app/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  419. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  420. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  421. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  422. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  423. package/app/.next/server/app/privacy.html +1 -1
  424. package/app/.next/server/app/privacy.rsc +2 -2
  425. package/app/.next/server/app/privacy.segments/_full.segment.rsc +2 -2
  426. package/app/.next/server/app/privacy.segments/_head.segment.rsc +1 -1
  427. package/app/.next/server/app/privacy.segments/_index.segment.rsc +2 -2
  428. package/app/.next/server/app/privacy.segments/_tree.segment.rsc +1 -1
  429. package/app/.next/server/app/privacy.segments/privacy/__PAGE__.segment.rsc +1 -1
  430. package/app/.next/server/app/privacy.segments/privacy.segment.rsc +1 -1
  431. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  432. package/app/.next/server/app/terms.html +1 -1
  433. package/app/.next/server/app/terms.rsc +2 -2
  434. package/app/.next/server/app/terms.segments/_full.segment.rsc +2 -2
  435. package/app/.next/server/app/terms.segments/_head.segment.rsc +1 -1
  436. package/app/.next/server/app/terms.segments/_index.segment.rsc +2 -2
  437. package/app/.next/server/app/terms.segments/_tree.segment.rsc +1 -1
  438. package/app/.next/server/app/terms.segments/terms/__PAGE__.segment.rsc +1 -1
  439. package/app/.next/server/app/terms.segments/terms.segment.rsc +1 -1
  440. package/app/.next/server/app-paths-manifest.json +23 -23
  441. package/app/.next/server/chunks/9824.js +1 -1
  442. package/app/.next/server/chunks/9979.js +1 -1
  443. package/app/.next/server/pages/404.html +1 -1
  444. package/app/.next/server/pages/500.html +2 -2
  445. package/app/.next/server/server-reference-manifest.js +1 -1
  446. package/app/.next/server/server-reference-manifest.json +1 -1
  447. package/app/.next/static/chunks/{5846-cd6a545a34f64728.js → 5846-6ee969e4169630ac.js} +1 -1
  448. package/app/.next/static/chunks/{993-7146218952a45b4b.js → 993-aedc5e4fb7d4a28b.js} +2 -2
  449. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-e6c8321031b5bbef.js +1 -0
  450. package/app/package.json +1 -1
  451. package/package.json +1 -1
  452. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-98c6b97d0c195a2c.js +0 -1
  453. /package/app/.next/static/{PyPKu8KUmFFVZNhlykJuq → vrKP3aNhDgvlVMXKKwmRg}/_buildManifest.js +0 -0
  454. /package/app/.next/static/{PyPKu8KUmFFVZNhlykJuq → vrKP3aNhDgvlVMXKKwmRg}/_ssgManifest.js +0 -0
@@ -1,5 +1,5 @@
1
1
  1:"$Sreact.fragment"
2
- 2:I[55846,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9751","static/chunks/9751-3a35163d337d54ea.js","782","static/chunks/782-5e138760b7f7bf48.js","1149","static/chunks/1149-fefe7f95f0e9842f.js","5846","static/chunks/5846-cd6a545a34f64728.js","993","static/chunks/993-7146218952a45b4b.js","9305","static/chunks/app/(dashboard)/layout-cf710bbfb7c3ba11.js"],"ThemeProvider"]
2
+ 2:I[55846,["8500","static/chunks/8500-98e13bcce54aa7a0.js","9751","static/chunks/9751-3a35163d337d54ea.js","782","static/chunks/782-5e138760b7f7bf48.js","1149","static/chunks/1149-fefe7f95f0e9842f.js","5846","static/chunks/5846-6ee969e4169630ac.js","993","static/chunks/993-aedc5e4fb7d4a28b.js","9305","static/chunks/app/(dashboard)/layout-cf710bbfb7c3ba11.js"],"ThemeProvider"]
3
3
  3:I[57121,[],""]
4
4
  4:I[17267,["8039","static/chunks/app/error-0d59fc4efafbc38c.js"],"default"]
5
5
  5:I[74581,[],""]
@@ -7,4 +7,4 @@
7
7
  :HL["/_next/static/css/081a0afca5a9bd20.css","style"]
8
8
  :HL["/_next/static/css/c5b80d2d58d2e417.css","style"]
9
9
  :HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"]
10
- 0:{"buildId":"PyPKu8KUmFFVZNhlykJuq","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/c5b80d2d58d2e417.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","suppressHydrationWarning":true,"children":[["$","a",null,{"href":"#main-content","className":"sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-50 focus:px-4 focus:py-2 focus:bg-[#6366f1] focus:text-white focus:rounded-lg focus:text-sm focus:font-semibold focus:shadow-lg","children":"Skip to content"}],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$4","errorStyles":[],"errorScripts":[],"template":["$","$L5",null,{}],"notFound":[["$","$L6",null,{}],[]]}]}]]}]]}]]}],"loading":null,"isPartial":false}
10
+ 0:{"buildId":"vrKP3aNhDgvlVMXKKwmRg","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/c5b80d2d58d2e417.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","suppressHydrationWarning":true,"children":[["$","a",null,{"href":"#main-content","className":"sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-50 focus:px-4 focus:py-2 focus:bg-[#6366f1] focus:text-white focus:rounded-lg focus:text-sm focus:font-semibold focus:shadow-lg","children":"Skip to content"}],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","error":"$4","errorStyles":[],"errorScripts":[],"template":["$","$L5",null,{}],"notFound":[["$","$L6",null,{}],[]]}]}]]}]]}]]}],"loading":null,"isPartial":false}
@@ -2,4 +2,4 @@
2
2
  :HL["/_next/static/css/081a0afca5a9bd20.css","style"]
3
3
  :HL["/_next/static/css/c5b80d2d58d2e417.css","style"]
4
4
  :HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"]
5
- 0:{"buildId":"PyPKu8KUmFFVZNhlykJuq","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"terms","paramType":null,"paramKey":"terms","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
5
+ 0:{"buildId":"vrKP3aNhDgvlVMXKKwmRg","tree":{"name":"","paramType":null,"paramKey":"","hasRuntimePrefetch":false,"slots":{"children":{"name":"terms","paramType":null,"paramKey":"terms","hasRuntimePrefetch":false,"slots":{"children":{"name":"__PAGE__","paramType":null,"paramKey":"__PAGE__","hasRuntimePrefetch":false,"slots":null,"isRootLayout":false}},"isRootLayout":false}},"isRootLayout":true},"staleTime":300}
@@ -2,6 +2,6 @@
2
2
  2:I[98500,["8500","static/chunks/8500-98e13bcce54aa7a0.js","7066","static/chunks/app/terms/page-8f74097544a61b9d.js"],""]
3
3
  3:I[90484,[],"OutletBoundary"]
4
4
  5:"$Sreact.suspense"
5
- 0:{"buildId":"PyPKu8KUmFFVZNhlykJuq","rsc":["$","$1","c",{"children":[["$","main",null,{"className":"min-h-screen bg-bg text-text-main","children":["$","div",null,{"className":"max-w-3xl mx-auto px-6 py-16","children":[["$","$L2",null,{"href":"/","className":"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8","children":[["$","span",null,{"className":"material-symbols-outlined text-[18px]","children":"arrow_back"}],"Back to home"]}],["$","h1",null,{"className":"text-3xl font-bold mb-2","children":"Terms of Service"}],["$","p",null,{"className":"text-sm text-text-muted mb-10","children":"Last updated: February 13, 2026"}],["$","div",null,{"className":"space-y-8 text-text-muted leading-relaxed","children":[["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"1. Overview"}],["$","p",null,{"children":["OmniRoute is a ",["$","strong",null,{"className":"text-text-main","children":"local-first"}]," AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking."]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"2. User Responsibilities"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":[["$","li",null,{"children":"You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.)."}],["$","li",null,{"children":"You must comply with the terms of service of each AI provider whose API you access through OmniRoute."}],["$","li",null,{"children":"You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access."}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"3. How It Works"}],["$","p",null,{"children":"OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation."}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"4. Data Handling"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":[["$","li",null,{"children":["All data is stored ",["$","strong",null,{"className":"text-text-main","children":"locally"}]," on your machine in a SQLite database."]}],["$","li",null,{"children":"OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features."}],["$","li",null,{"children":["Usage logs, API keys, and configuration are stored in"," ",["$","code",null,{"className":"text-primary text-sm","children":"~/.omniroute/"}],"."]}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"5. Disclaimer"}],["$","p",null,{"children":"OmniRoute is provided “as is” without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration."}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"6. Open Source"}],["$","p",null,{"children":"OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license."}]]}]]}],["$","div",null,{"className":"mt-12 pt-8 border-t border-white/[0.06] text-sm text-text-muted","children":["$","p",null,{"children":["Questions? Visit our"," ",["$","a",null,{"href":"https://github.com/diegosouzapw/OmniRoute","className":"text-primary hover:underline","target":"_blank","rel":"noopener noreferrer","children":"GitHub repository"}],"."]}]}]]}]}],null,["$","$L3",null,{"children":"$L4"}]]}],"loading":null,"isPartial":false}
5
+ 0:{"buildId":"vrKP3aNhDgvlVMXKKwmRg","rsc":["$","$1","c",{"children":[["$","main",null,{"className":"min-h-screen bg-bg text-text-main","children":["$","div",null,{"className":"max-w-3xl mx-auto px-6 py-16","children":[["$","$L2",null,{"href":"/","className":"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-8","children":[["$","span",null,{"className":"material-symbols-outlined text-[18px]","children":"arrow_back"}],"Back to home"]}],["$","h1",null,{"className":"text-3xl font-bold mb-2","children":"Terms of Service"}],["$","p",null,{"className":"text-sm text-text-muted mb-10","children":"Last updated: February 13, 2026"}],["$","div",null,{"className":"space-y-8 text-text-muted leading-relaxed","children":[["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"1. Overview"}],["$","p",null,{"children":["OmniRoute is a ",["$","strong",null,{"className":"text-text-main","children":"local-first"}]," AI API proxy router that operates entirely on your machine. It routes requests to multiple AI providers with load balancing, failover, and usage tracking."]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"2. User Responsibilities"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":[["$","li",null,{"children":"You are solely responsible for managing your own API keys and credentials for third-party AI providers (OpenAI, Anthropic, Google, etc.)."}],["$","li",null,{"children":"You must comply with the terms of service of each AI provider whose API you access through OmniRoute."}],["$","li",null,{"children":"You are responsible for the security of your local OmniRoute installation, including setting a password and restricting network access."}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"3. How It Works"}],["$","p",null,{"children":"OmniRoute acts as an intermediary proxy. API calls sent to OmniRoute are translated and forwarded to your configured AI providers. OmniRoute does not modify the content of your requests or responses beyond the necessary protocol translation."}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"4. Data Handling"}],["$","ul",null,{"className":"list-disc pl-6 space-y-2","children":[["$","li",null,{"children":["All data is stored ",["$","strong",null,{"className":"text-text-main","children":"locally"}]," on your machine in a SQLite database."]}],["$","li",null,{"children":"OmniRoute does not transmit any data to external servers unless you explicitly enable cloud sync features."}],["$","li",null,{"children":["Usage logs, API keys, and configuration are stored in"," ",["$","code",null,{"className":"text-primary text-sm","children":"~/.omniroute/"}],"."]}]]}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"5. Disclaimer"}],["$","p",null,{"children":"OmniRoute is provided “as is” without warranty of any kind. We are not responsible for any costs incurred through API usage, service disruptions, or data loss. Always maintain backups of your configuration."}]]}],["$","section",null,{"children":[["$","h2",null,{"className":"text-lg font-semibold text-text-main mb-3","children":"6. Open Source"}],["$","p",null,{"children":"OmniRoute is open-source software. You are free to inspect, modify, and distribute it under the terms of its license."}]]}]]}],["$","div",null,{"className":"mt-12 pt-8 border-t border-white/[0.06] text-sm text-text-muted","children":["$","p",null,{"children":["Questions? Visit our"," ",["$","a",null,{"href":"https://github.com/diegosouzapw/OmniRoute","className":"text-primary hover:underline","target":"_blank","rel":"noopener noreferrer","children":"GitHub repository"}],"."]}]}]]}]}],null,["$","$L3",null,{"children":"$L4"}]]}],"loading":null,"isPartial":false}
6
6
  4:["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]
7
7
  6:null
@@ -1,4 +1,4 @@
1
1
  1:"$Sreact.fragment"
2
2
  2:I[57121,[],""]
3
3
  3:I[74581,[],""]
4
- 0:{"buildId":"PyPKu8KUmFFVZNhlykJuq","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}
4
+ 0:{"buildId":"vrKP3aNhDgvlVMXKKwmRg","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}
@@ -11,8 +11,8 @@
11
11
  "/api/cli-tools/codex-profiles/route": "app/api/cli-tools/codex-profiles/route.js",
12
12
  "/api/cli-tools/guide-settings/[toolId]/route": "app/api/cli-tools/guide-settings/[toolId]/route.js",
13
13
  "/api/cloud/auth/route": "app/api/cloud/auth/route.js",
14
- "/api/cloud/model/resolve/route": "app/api/cloud/model/resolve/route.js",
15
14
  "/api/cloud/credentials/update/route": "app/api/cloud/credentials/update/route.js",
15
+ "/api/cloud/model/resolve/route": "app/api/cloud/model/resolve/route.js",
16
16
  "/api/cloud/models/alias/route": "app/api/cloud/models/alias/route.js",
17
17
  "/api/combos/[id]/route": "app/api/combos/[id]/route.js",
18
18
  "/api/combos/route": "app/api/combos/route.js",
@@ -24,22 +24,22 @@
24
24
  "/api/db-backups/route": "app/api/db-backups/route.js",
25
25
  "/api/evals/[suiteId]/route": "app/api/evals/[suiteId]/route.js",
26
26
  "/api/evals/route": "app/api/evals/route.js",
27
- "/api/init/route": "app/api/init/route.js",
28
27
  "/api/fallback/chains/route": "app/api/fallback/chains/route.js",
29
28
  "/api/keys/[id]/route": "app/api/keys/[id]/route.js",
29
+ "/api/init/route": "app/api/init/route.js",
30
30
  "/api/keys/route": "app/api/keys/route.js",
31
31
  "/api/logs/console/route": "app/api/logs/console/route.js",
32
- "/api/models/availability/route": "app/api/models/availability/route.js",
33
32
  "/api/models/alias/route": "app/api/models/alias/route.js",
33
+ "/api/models/availability/route": "app/api/models/availability/route.js",
34
34
  "/api/models/catalog/route": "app/api/models/catalog/route.js",
35
35
  "/api/models/route": "app/api/models/route.js",
36
36
  "/api/monitoring/health/route": "app/api/monitoring/health/route.js",
37
- "/api/oauth/cursor/auto-import/route": "app/api/oauth/cursor/auto-import/route.js",
38
37
  "/api/oauth/[provider]/[action]/route": "app/api/oauth/[provider]/[action]/route.js",
39
- "/api/oauth/kiro/auto-import/route": "app/api/oauth/kiro/auto-import/route.js",
38
+ "/api/oauth/cursor/auto-import/route": "app/api/oauth/cursor/auto-import/route.js",
40
39
  "/api/oauth/cursor/import/route": "app/api/oauth/cursor/import/route.js",
41
- "/api/oauth/kiro/social-authorize/route": "app/api/oauth/kiro/social-authorize/route.js",
40
+ "/api/oauth/kiro/auto-import/route": "app/api/oauth/kiro/auto-import/route.js",
42
41
  "/api/oauth/kiro/import/route": "app/api/oauth/kiro/import/route.js",
42
+ "/api/oauth/kiro/social-authorize/route": "app/api/oauth/kiro/social-authorize/route.js",
43
43
  "/api/oauth/kiro/social-exchange/route": "app/api/oauth/kiro/social-exchange/route.js",
44
44
  "/api/policies/route": "app/api/policies/route.js",
45
45
  "/api/pricing/defaults/route": "app/api/pricing/defaults/route.js",
@@ -51,22 +51,22 @@
51
51
  "/api/provider-nodes/validate/route": "app/api/provider-nodes/validate/route.js",
52
52
  "/api/providers/[id]/models/route": "app/api/providers/[id]/models/route.js",
53
53
  "/api/providers/[id]/route": "app/api/providers/[id]/route.js",
54
- "/api/providers/route": "app/api/providers/route.js",
55
54
  "/api/providers/client/route": "app/api/providers/client/route.js",
55
+ "/api/providers/route": "app/api/providers/route.js",
56
56
  "/api/providers/test-batch/route": "app/api/providers/test-batch/route.js",
57
- "/api/rate-limits/route": "app/api/rate-limits/route.js",
58
57
  "/api/providers/validate/route": "app/api/providers/validate/route.js",
59
58
  "/api/rate-limit/route": "app/api/rate-limit/route.js",
59
+ "/api/rate-limits/route": "app/api/rate-limits/route.js",
60
60
  "/api/resilience/reset/route": "app/api/resilience/reset/route.js",
61
61
  "/api/resilience/route": "app/api/resilience/route.js",
62
62
  "/api/restart/route": "app/api/restart/route.js",
63
63
  "/api/sessions/route": "app/api/sessions/route.js",
64
64
  "/api/settings/combo-defaults/route": "app/api/settings/combo-defaults/route.js",
65
65
  "/api/settings/ip-filter/route": "app/api/settings/ip-filter/route.js",
66
- "/api/settings/require-login/route": "app/api/settings/require-login/route.js",
67
66
  "/api/settings/route": "app/api/settings/route.js",
68
- "/api/settings/system-prompt/route": "app/api/settings/system-prompt/route.js",
67
+ "/api/settings/require-login/route": "app/api/settings/require-login/route.js",
69
68
  "/api/settings/thinking-budget/route": "app/api/settings/thinking-budget/route.js",
69
+ "/api/settings/system-prompt/route": "app/api/settings/system-prompt/route.js",
70
70
  "/api/shutdown/route": "app/api/shutdown/route.js",
71
71
  "/api/storage/health/route": "app/api/storage/health/route.js",
72
72
  "/api/sync/cloud/route": "app/api/sync/cloud/route.js",
@@ -75,16 +75,16 @@
75
75
  "/api/telemetry/summary/route": "app/api/telemetry/summary/route.js",
76
76
  "/api/token-health/route": "app/api/token-health/route.js",
77
77
  "/api/translator/detect/route": "app/api/translator/detect/route.js",
78
+ "/api/translator/load/route": "app/api/translator/load/route.js",
78
79
  "/api/translator/history/route": "app/api/translator/history/route.js",
79
80
  "/api/translator/save/route": "app/api/translator/save/route.js",
80
- "/api/translator/load/route": "app/api/translator/load/route.js",
81
81
  "/api/translator/send/route": "app/api/translator/send/route.js",
82
82
  "/api/translator/translate/route": "app/api/translator/translate/route.js",
83
83
  "/api/usage/[connectionId]/route": "app/api/usage/[connectionId]/route.js",
84
84
  "/api/usage/analytics/route": "app/api/usage/analytics/route.js",
85
85
  "/api/usage/budget/route": "app/api/usage/budget/route.js",
86
- "/api/usage/call-logs/[id]/route": "app/api/usage/call-logs/[id]/route.js",
87
86
  "/api/usage/call-logs/route": "app/api/usage/call-logs/route.js",
87
+ "/api/usage/call-logs/[id]/route": "app/api/usage/call-logs/[id]/route.js",
88
88
  "/api/usage/history/route": "app/api/usage/history/route.js",
89
89
  "/api/usage/logs/route": "app/api/usage/logs/route.js",
90
90
  "/api/usage/request-logs/route": "app/api/usage/request-logs/route.js",
@@ -101,8 +101,8 @@
101
101
  "/api/v1/providers/[provider]/embeddings/route": "app/api/v1/providers/[provider]/embeddings/route.js",
102
102
  "/api/v1/providers/[provider]/images/generations/route": "app/api/v1/providers/[provider]/images/generations/route.js",
103
103
  "/api/v1/rerank/route": "app/api/v1/rerank/route.js",
104
- "/api/v1/route": "app/api/v1/route.js",
105
104
  "/api/v1/responses/route": "app/api/v1/responses/route.js",
105
+ "/api/v1/route": "app/api/v1/route.js",
106
106
  "/api/v1beta/models/[...path]/route": "app/api/v1beta/models/[...path]/route.js",
107
107
  "/api/v1beta/models/route": "app/api/v1beta/models/route.js",
108
108
  "/api/cli-tools/antigravity-mitm/route": "app/api/cli-tools/antigravity-mitm/route.js",
@@ -111,23 +111,23 @@
111
111
  "/api/cli-tools/codex-settings/route": "app/api/cli-tools/codex-settings/route.js",
112
112
  "/api/cli-tools/droid-settings/route": "app/api/cli-tools/droid-settings/route.js",
113
113
  "/api/cli-tools/openclaw-settings/route": "app/api/cli-tools/openclaw-settings/route.js",
114
- "/api/cli-tools/kilo-settings/route": "app/api/cli-tools/kilo-settings/route.js",
115
114
  "/api/cli-tools/runtime/[toolId]/route": "app/api/cli-tools/runtime/[toolId]/route.js",
115
+ "/api/cli-tools/status/route": "app/api/cli-tools/status/route.js",
116
116
  "/api/combos/test/route": "app/api/combos/test/route.js",
117
117
  "/api/provider-nodes/route": "app/api/provider-nodes/route.js",
118
- "/api/settings/proxy/route": "app/api/settings/proxy/route.js",
118
+ "/api/cli-tools/kilo-settings/route": "app/api/cli-tools/kilo-settings/route.js",
119
119
  "/api/providers/[id]/test/route": "app/api/providers/[id]/test/route.js",
120
- "/api/usage/proxy-logs/route": "app/api/usage/proxy-logs/route.js",
120
+ "/api/settings/proxy/route": "app/api/settings/proxy/route.js",
121
121
  "/api/settings/proxy/test/route": "app/api/settings/proxy/test/route.js",
122
+ "/api/usage/proxy-logs/route": "app/api/usage/proxy-logs/route.js",
122
123
  "/api/v1/chat/completions/route": "app/api/v1/chat/completions/route.js",
123
- "/api/cli-tools/status/route": "app/api/cli-tools/status/route.js",
124
124
  "/callback/page": "app/callback/page.js",
125
125
  "/docs/page": "app/docs/page.js",
126
126
  "/forbidden/page": "app/forbidden/page.js",
127
- "/forgot-password/page": "app/forgot-password/page.js",
128
- "/page": "app/page.js",
129
127
  "/landing/page": "app/landing/page.js",
128
+ "/forgot-password/page": "app/forgot-password/page.js",
130
129
  "/login/page": "app/login/page.js",
130
+ "/page": "app/page.js",
131
131
  "/terms/page": "app/terms/page.js",
132
132
  "/privacy/page": "app/privacy/page.js",
133
133
  "/(dashboard)/dashboard/analytics/page": "app/(dashboard)/dashboard/analytics/page.js",
@@ -137,16 +137,16 @@
137
137
  "/(dashboard)/dashboard/endpoint/page": "app/(dashboard)/dashboard/endpoint/page.js",
138
138
  "/(dashboard)/dashboard/limits/page": "app/(dashboard)/dashboard/limits/page.js",
139
139
  "/(dashboard)/dashboard/health/page": "app/(dashboard)/dashboard/health/page.js",
140
- "/(dashboard)/dashboard/profile/page": "app/(dashboard)/dashboard/profile/page.js",
141
140
  "/(dashboard)/dashboard/providers/new/page": "app/(dashboard)/dashboard/providers/new/page.js",
141
+ "/(dashboard)/dashboard/profile/page": "app/(dashboard)/dashboard/profile/page.js",
142
142
  "/(dashboard)/dashboard/settings/page": "app/(dashboard)/dashboard/settings/page.js",
143
143
  "/(dashboard)/dashboard/settings/pricing/page": "app/(dashboard)/dashboard/settings/pricing/page.js",
144
- "/(dashboard)/dashboard/logs/page": "app/(dashboard)/dashboard/logs/page.js",
145
144
  "/(dashboard)/dashboard/page": "app/(dashboard)/dashboard/page.js",
145
+ "/(dashboard)/dashboard/logs/page": "app/(dashboard)/dashboard/logs/page.js",
146
146
  "/(dashboard)/dashboard/onboarding/page": "app/(dashboard)/dashboard/onboarding/page.js",
147
- "/(dashboard)/dashboard/usage/page": "app/(dashboard)/dashboard/usage/page.js",
148
147
  "/(dashboard)/dashboard/translator/page": "app/(dashboard)/dashboard/translator/page.js",
149
- "/(dashboard)/dashboard/combos/page": "app/(dashboard)/dashboard/combos/page.js",
148
+ "/(dashboard)/dashboard/usage/page": "app/(dashboard)/dashboard/usage/page.js",
150
149
  "/(dashboard)/dashboard/providers/page": "app/(dashboard)/dashboard/providers/page.js",
150
+ "/(dashboard)/dashboard/combos/page": "app/(dashboard)/dashboard/combos/page.js",
151
151
  "/(dashboard)/dashboard/providers/[id]/page": "app/(dashboard)/dashboard/providers/[id]/page.js"
152
152
  }
@@ -1,4 +1,4 @@
1
- "use strict";exports.id=9824,exports.ids=[9824],exports.modules={1237:(a,b,c)=>{c.d(b,{default:()=>h});var d=c(48249),e=c(67484),f=c(65953),g=c(53156);function h({isOpen:a,onClose:b,title:c="Manual Configuration",configs:h=[]}){let[i,j]=(0,e.useState)(null),k=async(a,b)=>{try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(a);else{let b=document.createElement("textarea");b.value=a,b.style.position="fixed",b.style.left="-9999px",b.style.top="-9999px",b.style.opacity="0",document.body.appendChild(b),b.focus(),b.select(),document.execCommand("copy"),document.body.removeChild(b)}j(b),setTimeout(()=>j(null),2e3)}catch(a){console.log("Failed to copy:",a)}};return(0,d.jsx)(f.default,{isOpen:a,onClose:b,title:c,size:"xl",children:(0,d.jsx)("div",{className:"flex flex-col gap-4",children:h.map((a,b)=>(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-text-main",children:a.filename}),(0,d.jsxs)(g.default,{variant:"ghost",size:"sm",onClick:()=>k(a.content,b),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:i===b?"check":"content_copy"}),i===b?"Copied!":"Copy"]})]}),(0,d.jsx)("pre",{className:"px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs overflow-x-auto whitespace-pre-wrap break-all max-h-60 overflow-y-auto border border-border",children:a.content})]},b))})})}},2490:(a,b,c)=>{c.d(b,{default:()=>f});var d=c(48249),e=c(31846);function f({children:a,title:b,subtitle:c,icon:f,action:g,padding:h="md",hover:i=!1,className:j,...k}){return(0,d.jsxs)("div",{className:(0,e.cn)("bg-surface","border border-black/5 dark:border-white/5","rounded-lg shadow-sm",i&&"hover:shadow-md hover:border-primary/30 transition-all cursor-pointer",{none:"",xs:"p-3",sm:"p-4",md:"p-6",lg:"p-8"}[h],j),...k,children:[(b||g)&&(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[f&&(0,d.jsx)("div",{className:"p-2 rounded-lg bg-bg text-text-muted",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:f})}),(0,d.jsxs)("div",{children:[b&&(0,d.jsx)("h3",{className:"text-text-main font-semibold",children:b}),c&&(0,d.jsx)("p",{className:"text-sm text-text-muted",children:c})]})]}),g]}),a]})}f.Section=function({children:a,className:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("p-4 rounded-lg","bg-black/[0.02] dark:bg-white/[0.02]","border border-black/5 dark:border-white/5",b),...c,children:a})},f.Row=function({children:a,className:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("p-3 -mx-3 px-3 transition-colors","border-b border-black/5 dark:border-white/5 last:border-b-0","hover:bg-black/[0.02] dark:hover:bg-white/[0.02]",b),...c,children:a})},f.ListItem=function({children:a,actions:b,className:c,...f}){return(0,d.jsxs)("div",{className:(0,e.cn)("group flex items-center justify-between p-3 -mx-3 px-3","border-b border-black/[0.03] dark:border-white/[0.03] last:border-b-0","hover:bg-black/[0.02] dark:hover:bg-white/[0.02]","transition-colors",c),...f,children:[(0,d.jsx)("div",{className:"flex-1 min-w-0",children:a}),b&&(0,d.jsx)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 focus-within:opacity-100 transition-opacity",children:b})]})}},4355:(a,b,c)=>{c.d(b,{default:()=>h});var d=c(48249),e=c(31846);let f={default:"bg-black/5 dark:bg-white/10 text-text-muted",primary:"bg-primary/10 text-primary",success:"bg-green-500/10 text-green-600 dark:text-green-400",warning:"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400",error:"bg-red-500/10 text-red-600 dark:text-red-400",info:"bg-blue-500/10 text-blue-600 dark:text-blue-400"},g={sm:"px-2 py-0.5 text-[10px]",md:"px-2.5 py-1 text-xs",lg:"px-3 py-1.5 text-sm"};function h({children:a,variant:b="default",size:c="md",dot:h=!1,icon:i,className:j}){return(0,d.jsxs)("span",{className:(0,e.cn)("inline-flex items-center gap-1.5 rounded-full font-semibold",f[b],g[c],j),children:[h&&(0,d.jsx)("span",{"aria-hidden":"true",className:(0,e.cn)("size-1.5 rounded-full","success"===b&&"bg-green-500","warning"===b&&"bg-yellow-500","error"===b&&"bg-red-500","info"===b&&"bg-blue-500","primary"===b&&"bg-primary","default"===b&&"bg-gray-500")}),i&&(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:i}),a]})}},8744:(a,b,c)=>{c.d(b,{default:()=>j});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(29824),i=c(73295);function j({isOpen:a,provider:b,providerInfo:c,onSuccess:f,onClose:g,idcConfig:j}){let[k,l]=(0,e.useState)("waiting"),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(""),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(!1),y=(0,e.useRef)(null),{copied:z,copy:A}=(0,i.C)(),[B,C]=(0,e.useState)(!1),[D,E]=(0,e.useState)("/callback?code=...");(0,e.useRef)(!1),(0,e.useRef)(!1);let F=(0,e.useCallback)(async(a,c)=>{if(m)try{let d=await fetch(`/api/oauth/${b}/exchange`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,redirectUri:m.redirectUri,codeVerifier:m.codeVerifier,state:c})}),e=await d.json();if(!d.ok)throw Error(e.error);l("success"),f?.()}catch(a){r(a.message),l("error")}},[m,b,f]),G=(0,e.useCallback)(async(a,c,d,e)=>{x(!0);for(let g=0;g<60;g++){await new Promise(a=>setTimeout(a,1e3*d));try{let g=await fetch(`/api/oauth/${b}/poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceCode:a,codeVerifier:c,extraData:e})}),h=await g.json();if(h.success){l("success"),x(!1),f?.();return}if("expired_token"===h.error||"access_denied"===h.error)throw Error(h.errorDescription||h.error);"slow_down"===h.error&&(d=Math.min(d+5,30))}catch(a){r(a.message),l("error"),x(!1);return}}r("Authorization timeout"),l("error"),x(!1)},[b,f]),H=(0,e.useCallback)(async()=>{if(b)try{let a;if(r(null),"github"===b||"qwen"===b||"kiro"===b||"kimi-coding"===b||"kilocode"===b){t(!0),l("waiting");let a=await fetch(`/api/oauth/${b}/device-code`),c=await a.json();if(!a.ok)throw Error(c.error);v(c);let d=c.verification_uri_complete||c.verification_uri;d&&window.open(d,"oauth_verify");let e="kiro"===b?{_clientId:c._clientId,_clientSecret:c._clientSecret}:null;G(c.device_code,c.codeVerifier,c.interval||5,e);return}if("codex"===b&&B){try{let a=await fetch("/api/oauth/codex/start-callback-server"),b=await a.json();if(!a.ok)throw Error(b.error);n({...b,redirectUri:b.redirectUri}),l("waiting"),window.open(b.authUrl,"oauth_auth"),x(!0);for(let a=0;a<150;a++){await new Promise(a=>setTimeout(a,2e3));let a=await fetch("/api/oauth/codex/poll-callback",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})}),b=await a.json();if(b.success){l("success"),x(!1),f?.();return}if(b.error&&!b.pending)throw Error(b.errorDescription||b.error)}throw x(!1),Error("Authorization timeout")}catch(a){x(!1),l("input"),r(a.message+" — You can paste the callback URL manually below.")}return}if("codex"===b||"openai"===b)a="http://localhost:1455/auth/callback";else{let b=window.location.port||("https:"===window.location.protocol?"443":"80");a=`http://localhost:${b}/callback`}let c=await fetch(`/api/oauth/${b}/authorize?redirect_uri=${encodeURIComponent(a)}`),d=await c.json();if(!c.ok)throw Error(d.error);n({...d,redirectUri:a}),B?(l("waiting"),y.current=window.open(d.authUrl,"oauth_popup","width=600,height=700"),y.current||l("input")):(l("input"),window.open(d.authUrl,"oauth_auth"))}catch(a){r(a.message),l("error")}},[b,B,G,f]),I=async()=>{try{r(null);let a=new URL(o),b=a.searchParams.get("code"),c=a.searchParams.get("state"),d=a.searchParams.get("error");if(d)throw Error(a.searchParams.get("error_description")||d);if(!b)throw Error("No authorization code found in URL");await F(b,c)}catch(a){r(a.message),l("error")}};return b&&c?(0,d.jsx)(h.aF,{isOpen:a,title:`Connect ${c.name}`,onClose:g,size:"lg",children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:["waiting"===k&&!s&&(0,d.jsxs)("div",{className:"text-center py-6",children:[(0,d.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,d.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Waiting for Authorization"}),(0,d.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Complete the authorization in the popup window."}),(0,d.jsx)(h.$n,{variant:"ghost",onClick:()=>l("input"),children:"Popup blocked? Enter URL manually"})]}),"waiting"===k&&s&&u&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"text-center py-4",children:[(0,d.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Visit the URL below and enter the code:"}),(0,d.jsxs)("div",{className:"bg-sidebar p-4 rounded-lg mb-4",children:[(0,d.jsx)("p",{className:"text-xs text-text-muted mb-1",children:"Verification URL"}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("code",{className:"flex-1 text-sm break-all",children:u.verification_uri}),(0,d.jsx)(h.$n,{size:"sm",variant:"ghost",icon:"verify_url"===z?"check":"content_copy",onClick:()=>A(u.verification_uri,"verify_url")})]})]}),(0,d.jsxs)("div",{className:"bg-primary/10 p-4 rounded-lg",children:[(0,d.jsx)("p",{className:"text-xs text-text-muted mb-1",children:"Your Code"}),(0,d.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,d.jsx)("p",{className:"text-2xl font-mono font-bold text-primary",children:u.user_code}),(0,d.jsx)(h.$n,{size:"sm",variant:"ghost",icon:"user_code"===z?"check":"content_copy",onClick:()=>A(u.user_code,"user_code")})]})]})]}),w&&(0,d.jsxs)("div",{className:"flex items-center justify-center gap-2 text-sm text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),"Waiting for authorization..."]})]}),"input"===k&&!s&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"space-y-4",children:[!B&&(0,d.jsxs)("div",{className:"rounded-lg border border-blue-500/30 bg-blue-500/10 p-3 text-xs text-blue-200",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm align-middle mr-1",children:"info"}),(0,d.jsx)("strong",{children:"Remote access:"})," Since you're accessing OmniRoute remotely, after authorizing you'll see an error page (localhost not found). That's expected — just copy the full URL from your browser's address bar and paste it below."]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 1: Open this URL in your browser"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.pd,{value:m?.authUrl||"",readOnly:!0,className:"flex-1 font-mono text-xs"}),(0,d.jsx)(h.$n,{variant:"secondary",icon:"auth_url"===z?"check":"content_copy",onClick:()=>A(m?.authUrl,"auth_url"),children:"Copy"})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 2: Paste the callback URL here"}),(0,d.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"After authorization, copy the full URL from your browser."}),(0,d.jsx)(h.pd,{value:o,onChange:a=>p(a.target.value),placeholder:D,className:"font-mono text-xs"})]})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:I,fullWidth:!0,disabled:!o,children:"Connect"}),(0,d.jsx)(h.$n,{onClick:g,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),"success"===k&&(0,d.jsxs)("div",{className:"text-center py-6",children:[(0,d.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-3xl text-green-600",children:"check_circle"})}),(0,d.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connected Successfully!"}),(0,d.jsxs)("p",{className:"text-sm text-text-muted mb-4",children:["Your ",c.name," account has been connected."]}),(0,d.jsx)(h.$n,{onClick:g,fullWidth:!0,children:"Done"})]}),"error"===k&&(0,d.jsxs)("div",{className:"text-center py-6",children:[(0,d.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-3xl text-red-600",children:"error"})}),(0,d.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connection Failed"}),(0,d.jsx)("p",{className:"text-sm text-red-600 mb-4",children:q}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:H,variant:"secondary",fullWidth:!0,children:"Try Again"}),(0,d.jsx)(h.$n,{onClick:g,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})}):null}j.propTypes={isOpen:g().bool.isRequired,provider:g().string,providerInfo:g().shape({name:g().string}),onSuccess:g().func,onClose:g().func.isRequired}},14797:(a,b,c)=>{c.d(b,{default:()=>p});var d=c(48249),e=c(19099),f=c(2116),g=c.n(f),h=c(81220),i=c(49885),j=c.n(i),k=c(29824),l=c(67484);let m={healthy:{icon:"check_circle",color:"#22c55e",tooltip:"All tokens healthy"},warning:{icon:"warning",color:"#f59e0b",tooltip:"Some tokens need attention"},error:{icon:"error",color:"#ef4444",tooltip:"Token refresh failures detected"},unknown:{icon:"help",color:"#6b7280",tooltip:"Health status unknown"}};function n(){let[a,b]=(0,l.useState)(null),[c,e]=(0,l.useState)(!1);if(!a||0===a.total)return null;let f=m[a.status]||m.unknown;return(0,d.jsxs)("div",{className:"relative",onMouseEnter:()=>e(!0),onMouseLeave:()=>e(!1),children:[(0,d.jsxs)("button",{className:"flex items-center gap-1 px-2 py-1.5 rounded-lg hover:bg-surface/30 transition-colors",title:f.tooltip,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",style:{color:f.color},children:f.icon}),a.errored>0&&(0,d.jsx)("span",{className:"text-xs font-medium",style:{color:f.color},children:a.errored})]}),c&&(0,d.jsxs)("div",{className:"absolute top-full right-0 mt-1 z-50 min-w-[200px] p-3 rounded-lg shadow-lg",style:{background:"rgba(15, 15, 25, 0.95)",border:"1px solid rgba(255,255,255,0.1)",backdropFilter:"blur(12px)"},children:[(0,d.jsx)("p",{className:"text-xs font-medium text-text-main mb-2",children:"Token Health"}),(0,d.jsxs)("div",{className:"flex flex-col gap-1 text-xs",children:[(0,d.jsxs)("div",{className:"flex justify-between",children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Total OAuth"}),(0,d.jsx)("span",{className:"text-text-main",children:a.total})]}),(0,d.jsxs)("div",{className:"flex justify-between",children:[(0,d.jsx)("span",{className:"text-emerald-400",children:"Healthy"}),(0,d.jsx)("span",{className:"text-text-main",children:a.healthy})]}),a.errored>0&&(0,d.jsxs)("div",{className:"flex justify-between",children:[(0,d.jsx)("span",{className:"text-red-400",children:"Errored"}),(0,d.jsx)("span",{className:"text-text-main",children:a.errored})]}),a.warning>0&&(0,d.jsxs)("div",{className:"flex justify-between",children:[(0,d.jsx)("span",{className:"text-amber-400",children:"Warning"}),(0,d.jsx)("span",{className:"text-text-main",children:a.warning})]}),a.lastCheckAt&&(0,d.jsxs)("div",{className:"flex justify-between mt-1 pt-1 border-t border-white/5",children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Last check"}),(0,d.jsx)("span",{className:"text-text-muted",children:new Date(a.lastCheckAt).toLocaleTimeString()})]})]})]})]})}var o=c(17084);function p({onMenuClick:a,showMenuButton:b=!0}){let c=(0,e.usePathname)(),f=(0,e.useRouter)(),{title:i,description:j,breadcrumbs:l}=(a=>{if(!a)return{title:"",description:"",breadcrumbs:[]};let b=a.match(/\/providers\/([^/]+)$/);if(b){let a=b[1],c=o.zN[a]||o.IS[a]||o.fg[a];if(c)return{title:c.name,description:"",breadcrumbs:[{label:"Providers",href:"/dashboard/providers"},{label:c.name,image:`/providers/${c.id}.png`}]};if(a.startsWith(o.JH))return{title:"OpenAI Compatible",description:"",breadcrumbs:[{label:"Providers",href:"/dashboard/providers"},{label:"OpenAI Compatible",image:"/providers/oai-cc.png"}]};if(a.startsWith(o.DI))return{title:"Anthropic Compatible",description:"",breadcrumbs:[{label:"Providers",href:"/dashboard/providers"},{label:"Anthropic Compatible",image:"/providers/anthropic-m.png"}]}}return a.includes("/providers")?{title:"Providers",description:"Manage your AI provider connections",breadcrumbs:[]}:a.includes("/combos")?{title:"Combos",description:"Model combos with fallback",breadcrumbs:[]}:a.includes("/usage")?{title:"Usage & Analytics",description:"Monitor your API usage, token consumption, and request logs",breadcrumbs:[]}:a.includes("/analytics")?{title:"Analytics",description:"Charts, trends, and evaluation insights",breadcrumbs:[]}:a.includes("/cli-tools")?{title:"CLI Tools",description:"Configure CLI tools",breadcrumbs:[]}:"/dashboard"===a?{title:"Home",description:"Welcome to OmniRoute",breadcrumbs:[]}:a.includes("/endpoint")?{title:"Endpoint",description:"API endpoint configuration",breadcrumbs:[]}:a.includes("/profile")?{title:"Settings",description:"Manage your preferences",breadcrumbs:[]}:{title:"",description:"",breadcrumbs:[]}})(c),m=async()=>{try{(await fetch("/api/auth/logout",{method:"POST"})).ok&&(f.push("/login"),f.refresh())}catch(a){console.error("Failed to logout:",a)}};return(0,d.jsxs)("header",{className:"flex items-center justify-between px-8 py-5 border-b border-black/5 dark:border-white/5 bg-bg/80 backdrop-blur-xl z-10 sticky top-0",children:[(0,d.jsx)("div",{className:"flex items-center gap-3 lg:hidden",children:b&&(0,d.jsx)("button",{onClick:a,className:"text-text-main hover:text-primary transition-colors",children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:"menu"})})}),(0,d.jsx)("div",{className:"hidden lg:flex flex-col",children:l.length>0?(0,d.jsx)("div",{className:"flex items-center gap-2",children:l.map((a,b)=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[b>0&&(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-base",children:"chevron_right"}),a.href?(0,d.jsx)(g(),{href:a.href,className:"text-text-muted hover:text-primary transition-colors",children:a.label}):(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[a.image&&(0,d.jsx)(h.default,{src:a.image,alt:a.label,width:28,height:28,className:"object-contain rounded max-w-[28px] max-h-[28px]",sizes:"28px",onError:a=>{a.currentTarget.style.display="none"}}),(0,d.jsx)("h1",{className:"text-2xl font-semibold text-text-main tracking-tight",children:a.label})]})]},`${a.label}-${a.href||"current"}`))}):i?(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-2xl font-semibold text-text-main tracking-tight",children:i}),j&&(0,d.jsx)("p",{className:"text-sm text-text-muted",children:j})]}):null}),(0,d.jsxs)("div",{className:"flex items-center gap-3 ml-auto",children:[(0,d.jsx)(k.UW,{}),(0,d.jsx)(n,{}),(0,d.jsx)("button",{onClick:m,className:"flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-red-500 hover:bg-red-500/10 transition-all",title:"Logout",children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:"logout"})})]})]})}p.propTypes={onMenuClick:j().func,showMenuButton:j().bool}},16116:(a,b,c)=>{c.d(b,{default:()=>h});var d=c(48249),e=c(49885),f=c.n(e),g=c(59869);function h({children:a}){return(0,d.jsxs)("div",{className:"min-h-screen flex flex-col relative bg-bg transition-colors duration-500 overflow-x-hidden selection:bg-primary/20 selection:text-primary",children:[(0,d.jsx)("div",{className:"fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-primary/5 dark:bg-primary/5 rounded-full blur-[100px] pointer-events-none z-0"}),(0,d.jsx)("div",{className:"fixed bottom-0 right-0 w-[600px] h-[600px] bg-orange-200/20 dark:bg-orange-900/10 rounded-full blur-[120px] pointer-events-none z-0 translate-y-1/3 translate-x-1/3"}),(0,d.jsx)("div",{className:"absolute top-6 right-6 z-20",children:(0,d.jsx)(g.default,{variant:"card"})}),(0,d.jsx)("main",{className:"flex-1 flex flex-col items-center justify-center p-4 sm:p-6 z-10 w-full h-full",children:a})]})}h.propTypes={children:f().node.isRequired}},17908:(a,b,c)=>{function d(a){try{return new Date(a).toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return"-"}}function e(a){return a?a<1e3?`${a}ms`:`${(a/1e3).toFixed(1)}s`:"-"}function f(a,b=2,c=2){return a?a.length<=b+c?`${a.slice(0,1)}***`:`${a.slice(0,b)}***${a.slice(-c)}`:""}function g(a){if(!a||"-"===a)return"-";let b=a.indexOf("@");return b>3?a.slice(0,3)+"***"+a.slice(b):a.length>8?a.slice(0,5)+"***":a}function h(a,b){if(!a&&!b)return"—";let c=a?f(a,2,1):"key";return b?`${c} (${f(b,4,4)})`:c}function i(a){return a>=1e9?`${(a/1e9).toFixed(1)}B`:a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(1)}K`:new Intl.NumberFormat().format(a||0)}function j(a){return new Intl.NumberFormat().format(a||0)}function k(a){return`$${(a||0).toFixed(2)}`}function l(a,b=50){if(!a)return"-";try{let c=new URL(a),d=c.hostname+c.pathname;return d.length>b?d.slice(0,b)+"…":d}catch{return a.length>b?a.slice(0,b)+"…":a}}c.d(b,{F0:()=>k,Ib:()=>g,VK:()=>i,VO:()=>h,Y1:()=>l,a3:()=>e,fU:()=>d,xW:()=>j})},18732:(a,b,c)=>{c.d(b,{default:()=>j});var d=c(48249),e=c(35005),f=c(67484);let g={success:"✓",error:"✕",warning:"⚠",info:"ℹ"},h={success:{bg:"rgba(16, 185, 129, 0.15)",border:"rgba(16, 185, 129, 0.4)",icon:"#10b981"},error:{bg:"rgba(239, 68, 68, 0.15)",border:"rgba(239, 68, 68, 0.4)",icon:"#ef4444"},warning:{bg:"rgba(245, 158, 11, 0.15)",border:"rgba(245, 158, 11, 0.4)",icon:"#f59e0b"},info:{bg:"rgba(59, 130, 246, 0.15)",border:"rgba(59, 130, 246, 0.4)",icon:"#3b82f6"}};function i({notification:a,onDismiss:b}){let[c,e]=(0,f.useState)(!1),i=h[a.type]||h.info;return(0,d.jsxs)("div",{role:"alert","aria-live":"polite",style:{display:"flex",alignItems:"flex-start",gap:"12px",padding:"14px 16px",borderRadius:"10px",backgroundColor:i.bg,border:`1px solid ${i.border}`,backdropFilter:"blur(12px)",boxShadow:"0 8px 32px rgba(0,0,0,0.2)",minWidth:"320px",maxWidth:"420px",animation:c?"toastOut 0.2s ease-in forwards":"toastIn 0.3s ease-out forwards",transition:"all 0.2s ease"},children:[(0,d.jsx)("span",{style:{fontSize:"18px",color:i.icon,fontWeight:"bold",lineHeight:1,marginTop:"2px"},children:g[a.type]}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[a.title&&(0,d.jsx)("div",{style:{fontWeight:600,fontSize:"14px",color:"var(--text-primary, #fff)",marginBottom:"2px"},children:a.title}),(0,d.jsx)("div",{style:{fontSize:"13px",color:"var(--text-secondary, #ccc)",lineHeight:1.4},children:a.message})]}),a.dismissible&&(0,d.jsx)("button",{onClick:()=>{e(!0),setTimeout(()=>b(a.id),200)},"aria-label":"Dismiss notification",style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-secondary, #999)",fontSize:"16px",padding:"0 2px",lineHeight:1,opacity:.6,transition:"opacity 0.15s"},onMouseEnter:a=>a.currentTarget.style.opacity="1",onMouseLeave:a=>a.currentTarget.style.opacity="0.6",children:"\xd7"})]})}function j(){let{notifications:a,removeNotification:b}=(0,e.i)();return 0===a.length?null:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("style",{children:`
1
+ "use strict";exports.id=9824,exports.ids=[9824],exports.modules={1237:(a,b,c)=>{c.d(b,{default:()=>h});var d=c(48249),e=c(67484),f=c(65953),g=c(53156);function h({isOpen:a,onClose:b,title:c="Manual Configuration",configs:h=[]}){let[i,j]=(0,e.useState)(null),k=async(a,b)=>{try{if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(a);else{let b=document.createElement("textarea");b.value=a,b.style.position="fixed",b.style.left="-9999px",b.style.top="-9999px",b.style.opacity="0",document.body.appendChild(b),b.focus(),b.select(),document.execCommand("copy"),document.body.removeChild(b)}j(b),setTimeout(()=>j(null),2e3)}catch(a){console.log("Failed to copy:",a)}};return(0,d.jsx)(f.default,{isOpen:a,onClose:b,title:c,size:"xl",children:(0,d.jsx)("div",{className:"flex flex-col gap-4",children:h.map((a,b)=>(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-text-main",children:a.filename}),(0,d.jsxs)(g.default,{variant:"ghost",size:"sm",onClick:()=>k(a.content,b),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:i===b?"check":"content_copy"}),i===b?"Copied!":"Copy"]})]}),(0,d.jsx)("pre",{className:"px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs overflow-x-auto whitespace-pre-wrap break-all max-h-60 overflow-y-auto border border-border",children:a.content})]},b))})})}},2490:(a,b,c)=>{c.d(b,{default:()=>f});var d=c(48249),e=c(31846);function f({children:a,title:b,subtitle:c,icon:f,action:g,padding:h="md",hover:i=!1,className:j,...k}){return(0,d.jsxs)("div",{className:(0,e.cn)("bg-surface","border border-black/5 dark:border-white/5","rounded-lg shadow-sm",i&&"hover:shadow-md hover:border-primary/30 transition-all cursor-pointer",{none:"",xs:"p-3",sm:"p-4",md:"p-6",lg:"p-8"}[h],j),...k,children:[(b||g)&&(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[f&&(0,d.jsx)("div",{className:"p-2 rounded-lg bg-bg text-text-muted",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:f})}),(0,d.jsxs)("div",{children:[b&&(0,d.jsx)("h3",{className:"text-text-main font-semibold",children:b}),c&&(0,d.jsx)("p",{className:"text-sm text-text-muted",children:c})]})]}),g]}),a]})}f.Section=function({children:a,className:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("p-4 rounded-lg","bg-black/[0.02] dark:bg-white/[0.02]","border border-black/5 dark:border-white/5",b),...c,children:a})},f.Row=function({children:a,className:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("p-3 -mx-3 px-3 transition-colors","border-b border-black/5 dark:border-white/5 last:border-b-0","hover:bg-black/[0.02] dark:hover:bg-white/[0.02]",b),...c,children:a})},f.ListItem=function({children:a,actions:b,className:c,...f}){return(0,d.jsxs)("div",{className:(0,e.cn)("group flex items-center justify-between p-3 -mx-3 px-3","border-b border-black/[0.03] dark:border-white/[0.03] last:border-b-0","hover:bg-black/[0.02] dark:hover:bg-white/[0.02]","transition-colors",c),...f,children:[(0,d.jsx)("div",{className:"flex-1 min-w-0",children:a}),b&&(0,d.jsx)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 focus-within:opacity-100 transition-opacity",children:b})]})}},4355:(a,b,c)=>{c.d(b,{default:()=>h});var d=c(48249),e=c(31846);let f={default:"bg-black/5 dark:bg-white/10 text-text-muted",primary:"bg-primary/10 text-primary",success:"bg-green-500/10 text-green-600 dark:text-green-400",warning:"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400",error:"bg-red-500/10 text-red-600 dark:text-red-400",info:"bg-blue-500/10 text-blue-600 dark:text-blue-400"},g={sm:"px-2 py-0.5 text-[10px]",md:"px-2.5 py-1 text-xs",lg:"px-3 py-1.5 text-sm"};function h({children:a,variant:b="default",size:c="md",dot:h=!1,icon:i,className:j}){return(0,d.jsxs)("span",{className:(0,e.cn)("inline-flex items-center gap-1.5 rounded-full font-semibold",f[b],g[c],j),children:[h&&(0,d.jsx)("span",{"aria-hidden":"true",className:(0,e.cn)("size-1.5 rounded-full","success"===b&&"bg-green-500","warning"===b&&"bg-yellow-500","error"===b&&"bg-red-500","info"===b&&"bg-blue-500","primary"===b&&"bg-primary","default"===b&&"bg-gray-500")}),i&&(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]","aria-hidden":"true",children:i}),a]})}},8744:(a,b,c)=>{c.d(b,{default:()=>j});var d=c(48249),e=c(67484),f=c(49885),g=c.n(f),h=c(29824),i=c(73295);function j({isOpen:a,provider:b,providerInfo:c,onSuccess:f,onClose:g,idcConfig:j}){let[k,l]=(0,e.useState)("waiting"),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(""),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(!1),y=(0,e.useRef)(null),{copied:z,copy:A}=(0,i.C)(),[B,C]=(0,e.useState)(!1),[D,E]=(0,e.useState)("/callback?code=...");(0,e.useRef)(!1),(0,e.useRef)(!1);let F=(0,e.useCallback)(async(a,c)=>{if(m)try{let d=await fetch(`/api/oauth/${b}/exchange`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,redirectUri:m.redirectUri,codeVerifier:m.codeVerifier,state:c})}),e=await d.json();if(!d.ok)throw Error(e.error);l("success"),f?.()}catch(a){r(a.message),l("error")}},[m,b,f]),G=(0,e.useCallback)(async(a,c,d,e)=>{x(!0);for(let g=0;g<60;g++){await new Promise(a=>setTimeout(a,1e3*d));try{let g=await fetch(`/api/oauth/${b}/poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceCode:a,codeVerifier:c,extraData:e})}),h=await g.json();if(h.success){l("success"),x(!1),f?.();return}if("expired_token"===h.error||"access_denied"===h.error)throw Error(h.errorDescription||h.error);"slow_down"===h.error&&(d=Math.min(d+5,30))}catch(a){r(a.message),l("error"),x(!1);return}}r("Authorization timeout"),l("error"),x(!1)},[b,f]),H=(0,e.useCallback)(async()=>{if(b)try{let a;if(r(null),"github"===b||"qwen"===b||"kiro"===b||"kimi-coding"===b||"kilocode"===b){t(!0),l("waiting");let a=await fetch(`/api/oauth/${b}/device-code`),c=await a.json();if(!a.ok)throw Error(c.error);v(c);let d=c.verification_uri_complete||c.verification_uri;d&&window.open(d,"oauth_verify");let e="kiro"===b?{_clientId:c._clientId,_clientSecret:c._clientSecret}:null;G(c.device_code,c.codeVerifier,c.interval||5,e);return}if("codex"===b&&B){try{let a=await fetch("/api/oauth/codex/start-callback-server"),b=await a.json();if(!a.ok)throw Error(b.error);n({...b,redirectUri:b.redirectUri}),l("waiting"),window.open(b.authUrl,"oauth_auth"),x(!0);for(let a=0;a<150;a++){await new Promise(a=>setTimeout(a,2e3));let a=await fetch("/api/oauth/codex/poll-callback",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({})}),b=await a.json();if(b.success){l("success"),x(!1),f?.();return}if(b.error&&!b.pending)throw Error(b.errorDescription||b.error)}throw x(!1),Error("Authorization timeout")}catch(a){x(!1),l("input"),r(a.message+" — You can paste the callback URL manually below.")}return}if("codex"===b||"openai"===b)a="http://localhost:1455/auth/callback";else if(B){let b=window.location.port||("https:"===window.location.protocol?"443":"80");a=`http://localhost:${b}/callback`}else{let b=process.env.NEXT_PUBLIC_BASE_URL,c=b&&"http://localhost:20128"!==b?b.replace(/\/$/,""):window.location.origin;a=`${c}/callback`}let c=await fetch(`/api/oauth/${b}/authorize?redirect_uri=${encodeURIComponent(a)}`),d=await c.json();if(!c.ok)throw Error(d.error);n({...d,redirectUri:a}),B?(l("waiting"),y.current=window.open(d.authUrl,"oauth_popup","width=600,height=700"),y.current||l("input")):(l("input"),window.open(d.authUrl,"oauth_auth"))}catch(a){r(a.message),l("error")}},[b,B,G,f]),I=async()=>{try{r(null);let a=new URL(o),b=a.searchParams.get("code"),c=a.searchParams.get("state"),d=a.searchParams.get("error");if(d)throw Error(a.searchParams.get("error_description")||d);if(!b)throw Error("No authorization code found in URL");await F(b,c)}catch(a){r(a.message),l("error")}};return b&&c?(0,d.jsx)(h.aF,{isOpen:a,title:`Connect ${c.name}`,onClose:g,size:"lg",children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:["waiting"===k&&!s&&(0,d.jsxs)("div",{className:"text-center py-6",children:[(0,d.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,d.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Waiting for Authorization"}),(0,d.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Complete the authorization in the popup window."}),(0,d.jsx)(h.$n,{variant:"ghost",onClick:()=>l("input"),children:"Popup blocked? Enter URL manually"})]}),"waiting"===k&&s&&u&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"text-center py-4",children:[(0,d.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Visit the URL below and enter the code:"}),(0,d.jsxs)("div",{className:"bg-sidebar p-4 rounded-lg mb-4",children:[(0,d.jsx)("p",{className:"text-xs text-text-muted mb-1",children:"Verification URL"}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("code",{className:"flex-1 text-sm break-all",children:u.verification_uri}),(0,d.jsx)(h.$n,{size:"sm",variant:"ghost",icon:"verify_url"===z?"check":"content_copy",onClick:()=>A(u.verification_uri,"verify_url")})]})]}),(0,d.jsxs)("div",{className:"bg-primary/10 p-4 rounded-lg",children:[(0,d.jsx)("p",{className:"text-xs text-text-muted mb-1",children:"Your Code"}),(0,d.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,d.jsx)("p",{className:"text-2xl font-mono font-bold text-primary",children:u.user_code}),(0,d.jsx)(h.$n,{size:"sm",variant:"ghost",icon:"user_code"===z?"check":"content_copy",onClick:()=>A(u.user_code,"user_code")})]})]})]}),w&&(0,d.jsxs)("div",{className:"flex items-center justify-center gap-2 text-sm text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),"Waiting for authorization..."]})]}),"input"===k&&!s&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"space-y-4",children:[!B&&(0,d.jsxs)("div",{className:"rounded-lg border border-blue-500/30 bg-blue-500/10 p-3 text-xs text-blue-200",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm align-middle mr-1",children:"info"}),(0,d.jsx)("strong",{children:"Remote access:"})," Since you're accessing OmniRoute remotely, after authorizing you'll see an error page (localhost not found). That's expected — just copy the full URL from your browser's address bar and paste it below."]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 1: Open this URL in your browser"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.pd,{value:m?.authUrl||"",readOnly:!0,className:"flex-1 font-mono text-xs"}),(0,d.jsx)(h.$n,{variant:"secondary",icon:"auth_url"===z?"check":"content_copy",onClick:()=>A(m?.authUrl,"auth_url"),children:"Copy"})]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 2: Paste the callback URL here"}),(0,d.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"After authorization, copy the full URL from your browser."}),(0,d.jsx)(h.pd,{value:o,onChange:a=>p(a.target.value),placeholder:D,className:"font-mono text-xs"})]})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:I,fullWidth:!0,disabled:!o,children:"Connect"}),(0,d.jsx)(h.$n,{onClick:g,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),"success"===k&&(0,d.jsxs)("div",{className:"text-center py-6",children:[(0,d.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-3xl text-green-600",children:"check_circle"})}),(0,d.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connected Successfully!"}),(0,d.jsxs)("p",{className:"text-sm text-text-muted mb-4",children:["Your ",c.name," account has been connected."]}),(0,d.jsx)(h.$n,{onClick:g,fullWidth:!0,children:"Done"})]}),"error"===k&&(0,d.jsxs)("div",{className:"text-center py-6",children:[(0,d.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-3xl text-red-600",children:"error"})}),(0,d.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connection Failed"}),(0,d.jsx)("p",{className:"text-sm text-red-600 mb-4",children:q}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:H,variant:"secondary",fullWidth:!0,children:"Try Again"}),(0,d.jsx)(h.$n,{onClick:g,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})}):null}j.propTypes={isOpen:g().bool.isRequired,provider:g().string,providerInfo:g().shape({name:g().string}),onSuccess:g().func,onClose:g().func.isRequired}},14797:(a,b,c)=>{c.d(b,{default:()=>p});var d=c(48249),e=c(19099),f=c(2116),g=c.n(f),h=c(81220),i=c(49885),j=c.n(i),k=c(29824),l=c(67484);let m={healthy:{icon:"check_circle",color:"#22c55e",tooltip:"All tokens healthy"},warning:{icon:"warning",color:"#f59e0b",tooltip:"Some tokens need attention"},error:{icon:"error",color:"#ef4444",tooltip:"Token refresh failures detected"},unknown:{icon:"help",color:"#6b7280",tooltip:"Health status unknown"}};function n(){let[a,b]=(0,l.useState)(null),[c,e]=(0,l.useState)(!1);if(!a||0===a.total)return null;let f=m[a.status]||m.unknown;return(0,d.jsxs)("div",{className:"relative",onMouseEnter:()=>e(!0),onMouseLeave:()=>e(!1),children:[(0,d.jsxs)("button",{className:"flex items-center gap-1 px-2 py-1.5 rounded-lg hover:bg-surface/30 transition-colors",title:f.tooltip,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",style:{color:f.color},children:f.icon}),a.errored>0&&(0,d.jsx)("span",{className:"text-xs font-medium",style:{color:f.color},children:a.errored})]}),c&&(0,d.jsxs)("div",{className:"absolute top-full right-0 mt-1 z-50 min-w-[200px] p-3 rounded-lg shadow-lg",style:{background:"rgba(15, 15, 25, 0.95)",border:"1px solid rgba(255,255,255,0.1)",backdropFilter:"blur(12px)"},children:[(0,d.jsx)("p",{className:"text-xs font-medium text-text-main mb-2",children:"Token Health"}),(0,d.jsxs)("div",{className:"flex flex-col gap-1 text-xs",children:[(0,d.jsxs)("div",{className:"flex justify-between",children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Total OAuth"}),(0,d.jsx)("span",{className:"text-text-main",children:a.total})]}),(0,d.jsxs)("div",{className:"flex justify-between",children:[(0,d.jsx)("span",{className:"text-emerald-400",children:"Healthy"}),(0,d.jsx)("span",{className:"text-text-main",children:a.healthy})]}),a.errored>0&&(0,d.jsxs)("div",{className:"flex justify-between",children:[(0,d.jsx)("span",{className:"text-red-400",children:"Errored"}),(0,d.jsx)("span",{className:"text-text-main",children:a.errored})]}),a.warning>0&&(0,d.jsxs)("div",{className:"flex justify-between",children:[(0,d.jsx)("span",{className:"text-amber-400",children:"Warning"}),(0,d.jsx)("span",{className:"text-text-main",children:a.warning})]}),a.lastCheckAt&&(0,d.jsxs)("div",{className:"flex justify-between mt-1 pt-1 border-t border-white/5",children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Last check"}),(0,d.jsx)("span",{className:"text-text-muted",children:new Date(a.lastCheckAt).toLocaleTimeString()})]})]})]})]})}var o=c(17084);function p({onMenuClick:a,showMenuButton:b=!0}){let c=(0,e.usePathname)(),f=(0,e.useRouter)(),{title:i,description:j,breadcrumbs:l}=(a=>{if(!a)return{title:"",description:"",breadcrumbs:[]};let b=a.match(/\/providers\/([^/]+)$/);if(b){let a=b[1],c=o.zN[a]||o.IS[a]||o.fg[a];if(c)return{title:c.name,description:"",breadcrumbs:[{label:"Providers",href:"/dashboard/providers"},{label:c.name,image:`/providers/${c.id}.png`}]};if(a.startsWith(o.JH))return{title:"OpenAI Compatible",description:"",breadcrumbs:[{label:"Providers",href:"/dashboard/providers"},{label:"OpenAI Compatible",image:"/providers/oai-cc.png"}]};if(a.startsWith(o.DI))return{title:"Anthropic Compatible",description:"",breadcrumbs:[{label:"Providers",href:"/dashboard/providers"},{label:"Anthropic Compatible",image:"/providers/anthropic-m.png"}]}}return a.includes("/providers")?{title:"Providers",description:"Manage your AI provider connections",breadcrumbs:[]}:a.includes("/combos")?{title:"Combos",description:"Model combos with fallback",breadcrumbs:[]}:a.includes("/usage")?{title:"Usage & Analytics",description:"Monitor your API usage, token consumption, and request logs",breadcrumbs:[]}:a.includes("/analytics")?{title:"Analytics",description:"Charts, trends, and evaluation insights",breadcrumbs:[]}:a.includes("/cli-tools")?{title:"CLI Tools",description:"Configure CLI tools",breadcrumbs:[]}:"/dashboard"===a?{title:"Home",description:"Welcome to OmniRoute",breadcrumbs:[]}:a.includes("/endpoint")?{title:"Endpoint",description:"API endpoint configuration",breadcrumbs:[]}:a.includes("/profile")?{title:"Settings",description:"Manage your preferences",breadcrumbs:[]}:{title:"",description:"",breadcrumbs:[]}})(c),m=async()=>{try{(await fetch("/api/auth/logout",{method:"POST"})).ok&&(f.push("/login"),f.refresh())}catch(a){console.error("Failed to logout:",a)}};return(0,d.jsxs)("header",{className:"flex items-center justify-between px-8 py-5 border-b border-black/5 dark:border-white/5 bg-bg/80 backdrop-blur-xl z-10 sticky top-0",children:[(0,d.jsx)("div",{className:"flex items-center gap-3 lg:hidden",children:b&&(0,d.jsx)("button",{onClick:a,className:"text-text-main hover:text-primary transition-colors",children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:"menu"})})}),(0,d.jsx)("div",{className:"hidden lg:flex flex-col",children:l.length>0?(0,d.jsx)("div",{className:"flex items-center gap-2",children:l.map((a,b)=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[b>0&&(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-base",children:"chevron_right"}),a.href?(0,d.jsx)(g(),{href:a.href,className:"text-text-muted hover:text-primary transition-colors",children:a.label}):(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[a.image&&(0,d.jsx)(h.default,{src:a.image,alt:a.label,width:28,height:28,className:"object-contain rounded max-w-[28px] max-h-[28px]",sizes:"28px",onError:a=>{a.currentTarget.style.display="none"}}),(0,d.jsx)("h1",{className:"text-2xl font-semibold text-text-main tracking-tight",children:a.label})]})]},`${a.label}-${a.href||"current"}`))}):i?(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-2xl font-semibold text-text-main tracking-tight",children:i}),j&&(0,d.jsx)("p",{className:"text-sm text-text-muted",children:j})]}):null}),(0,d.jsxs)("div",{className:"flex items-center gap-3 ml-auto",children:[(0,d.jsx)(k.UW,{}),(0,d.jsx)(n,{}),(0,d.jsx)("button",{onClick:m,className:"flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-red-500 hover:bg-red-500/10 transition-all",title:"Logout",children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:"logout"})})]})]})}p.propTypes={onMenuClick:j().func,showMenuButton:j().bool}},16116:(a,b,c)=>{c.d(b,{default:()=>h});var d=c(48249),e=c(49885),f=c.n(e),g=c(59869);function h({children:a}){return(0,d.jsxs)("div",{className:"min-h-screen flex flex-col relative bg-bg transition-colors duration-500 overflow-x-hidden selection:bg-primary/20 selection:text-primary",children:[(0,d.jsx)("div",{className:"fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-primary/5 dark:bg-primary/5 rounded-full blur-[100px] pointer-events-none z-0"}),(0,d.jsx)("div",{className:"fixed bottom-0 right-0 w-[600px] h-[600px] bg-orange-200/20 dark:bg-orange-900/10 rounded-full blur-[120px] pointer-events-none z-0 translate-y-1/3 translate-x-1/3"}),(0,d.jsx)("div",{className:"absolute top-6 right-6 z-20",children:(0,d.jsx)(g.default,{variant:"card"})}),(0,d.jsx)("main",{className:"flex-1 flex flex-col items-center justify-center p-4 sm:p-6 z-10 w-full h-full",children:a})]})}h.propTypes={children:f().node.isRequired}},17908:(a,b,c)=>{function d(a){try{return new Date(a).toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}catch{return"-"}}function e(a){return a?a<1e3?`${a}ms`:`${(a/1e3).toFixed(1)}s`:"-"}function f(a,b=2,c=2){return a?a.length<=b+c?`${a.slice(0,1)}***`:`${a.slice(0,b)}***${a.slice(-c)}`:""}function g(a){if(!a||"-"===a)return"-";let b=a.indexOf("@");return b>3?a.slice(0,3)+"***"+a.slice(b):a.length>8?a.slice(0,5)+"***":a}function h(a,b){if(!a&&!b)return"—";let c=a?f(a,2,1):"key";return b?`${c} (${f(b,4,4)})`:c}function i(a){return a>=1e9?`${(a/1e9).toFixed(1)}B`:a>=1e6?`${(a/1e6).toFixed(1)}M`:a>=1e3?`${(a/1e3).toFixed(1)}K`:new Intl.NumberFormat().format(a||0)}function j(a){return new Intl.NumberFormat().format(a||0)}function k(a){return`$${(a||0).toFixed(2)}`}function l(a,b=50){if(!a)return"-";try{let c=new URL(a),d=c.hostname+c.pathname;return d.length>b?d.slice(0,b)+"…":d}catch{return a.length>b?a.slice(0,b)+"…":a}}c.d(b,{F0:()=>k,Ib:()=>g,VK:()=>i,VO:()=>h,Y1:()=>l,a3:()=>e,fU:()=>d,xW:()=>j})},18732:(a,b,c)=>{c.d(b,{default:()=>j});var d=c(48249),e=c(35005),f=c(67484);let g={success:"✓",error:"✕",warning:"⚠",info:"ℹ"},h={success:{bg:"rgba(16, 185, 129, 0.15)",border:"rgba(16, 185, 129, 0.4)",icon:"#10b981"},error:{bg:"rgba(239, 68, 68, 0.15)",border:"rgba(239, 68, 68, 0.4)",icon:"#ef4444"},warning:{bg:"rgba(245, 158, 11, 0.15)",border:"rgba(245, 158, 11, 0.4)",icon:"#f59e0b"},info:{bg:"rgba(59, 130, 246, 0.15)",border:"rgba(59, 130, 246, 0.4)",icon:"#3b82f6"}};function i({notification:a,onDismiss:b}){let[c,e]=(0,f.useState)(!1),i=h[a.type]||h.info;return(0,d.jsxs)("div",{role:"alert","aria-live":"polite",style:{display:"flex",alignItems:"flex-start",gap:"12px",padding:"14px 16px",borderRadius:"10px",backgroundColor:i.bg,border:`1px solid ${i.border}`,backdropFilter:"blur(12px)",boxShadow:"0 8px 32px rgba(0,0,0,0.2)",minWidth:"320px",maxWidth:"420px",animation:c?"toastOut 0.2s ease-in forwards":"toastIn 0.3s ease-out forwards",transition:"all 0.2s ease"},children:[(0,d.jsx)("span",{style:{fontSize:"18px",color:i.icon,fontWeight:"bold",lineHeight:1,marginTop:"2px"},children:g[a.type]}),(0,d.jsxs)("div",{style:{flex:1,minWidth:0},children:[a.title&&(0,d.jsx)("div",{style:{fontWeight:600,fontSize:"14px",color:"var(--text-primary, #fff)",marginBottom:"2px"},children:a.title}),(0,d.jsx)("div",{style:{fontSize:"13px",color:"var(--text-secondary, #ccc)",lineHeight:1.4},children:a.message})]}),a.dismissible&&(0,d.jsx)("button",{onClick:()=>{e(!0),setTimeout(()=>b(a.id),200)},"aria-label":"Dismiss notification",style:{background:"none",border:"none",cursor:"pointer",color:"var(--text-secondary, #999)",fontSize:"16px",padding:"0 2px",lineHeight:1,opacity:.6,transition:"opacity 0.15s"},onMouseEnter:a=>a.currentTarget.style.opacity="1",onMouseLeave:a=>a.currentTarget.style.opacity="0.6",children:"\xd7"})]})}function j(){let{notifications:a,removeNotification:b}=(0,e.i)();return 0===a.length?null:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("style",{children:`
2
2
  @keyframes toastIn {
3
3
  from { opacity: 0; transform: translateX(100%) scale(0.95); }
4
4
  to { opacity: 1; transform: translateX(0) scale(1); }