omniroute 1.4.2 → 1.4.3

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 (453) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +26 -26
  3. package/app/.next/build-manifest.json +2 -2
  4. package/app/.next/prerender-manifest.json +3 -3
  5. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  6. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/audit-log/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/_global-error.html +2 -2
  27. package/app/.next/server/app/_global-error.rsc +1 -1
  28. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  29. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  30. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  31. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  32. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  33. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  34. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/_not-found.html +1 -1
  36. package/app/.next/server/app/_not-found.rsc +2 -2
  37. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  38. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  39. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  40. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  41. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  42. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  43. package/app/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
  45. package/app/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/api/cache/route_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/api/cache/stats/route_client-reference-manifest.js +1 -1
  48. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  49. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +2 -2
  51. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js +1 -1
  52. package/app/.next/server/app/api/cli-tools/backups/route.js +1 -1
  53. package/app/.next/server/app/api/cli-tools/backups/route_client-reference-manifest.js +1 -1
  54. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  55. package/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +1 -1
  57. package/app/.next/server/app/api/cli-tools/cline-settings/route_client-reference-manifest.js +1 -1
  58. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +1 -1
  59. package/app/.next/server/app/api/cli-tools/codex-profiles/route_client-reference-manifest.js +1 -1
  60. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
  61. package/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  63. package/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js +1 -1
  64. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  66. package/app/.next/server/app/api/cli-tools/kilo-settings/route_client-reference-manifest.js +1 -1
  67. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  68. package/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js +1 -1
  69. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +1 -1
  70. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/api/cli-tools/status/route.js +1 -1
  72. package/app/.next/server/app/api/cli-tools/status/route_client-reference-manifest.js +1 -1
  73. package/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js +1 -1
  74. package/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js +1 -1
  75. package/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js +1 -1
  77. package/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js +1 -1
  78. package/app/.next/server/app/api/combos/metrics/route_client-reference-manifest.js +1 -1
  79. package/app/.next/server/app/api/combos/route_client-reference-manifest.js +1 -1
  80. package/app/.next/server/app/api/combos/test/route_client-reference-manifest.js +1 -1
  81. package/app/.next/server/app/api/compliance/audit-log/route_client-reference-manifest.js +1 -1
  82. package/app/.next/server/app/api/db-backups/export/route_client-reference-manifest.js +1 -1
  83. package/app/.next/server/app/api/db-backups/exportAll/route_client-reference-manifest.js +1 -1
  84. package/app/.next/server/app/api/db-backups/import/route_client-reference-manifest.js +1 -1
  85. package/app/.next/server/app/api/db-backups/route_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/api/evals/[suiteId]/route_client-reference-manifest.js +1 -1
  87. package/app/.next/server/app/api/evals/route_client-reference-manifest.js +1 -1
  88. package/app/.next/server/app/api/fallback/chains/route_client-reference-manifest.js +1 -1
  89. package/app/.next/server/app/api/init/route_client-reference-manifest.js +1 -1
  90. package/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js +1 -1
  91. package/app/.next/server/app/api/keys/route_client-reference-manifest.js +1 -1
  92. package/app/.next/server/app/api/logs/console/route_client-reference-manifest.js +1 -1
  93. package/app/.next/server/app/api/models/alias/route_client-reference-manifest.js +1 -1
  94. package/app/.next/server/app/api/models/availability/route_client-reference-manifest.js +1 -1
  95. package/app/.next/server/app/api/models/catalog/route_client-reference-manifest.js +1 -1
  96. package/app/.next/server/app/api/models/route.js +1 -1
  97. package/app/.next/server/app/api/models/route_client-reference-manifest.js +1 -1
  98. package/app/.next/server/app/api/monitoring/health/route.js +1 -1
  99. package/app/.next/server/app/api/monitoring/health/route_client-reference-manifest.js +1 -1
  100. package/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js +1 -1
  101. package/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js +1 -1
  102. package/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js +1 -1
  103. package/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js +1 -1
  104. package/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js +1 -1
  105. package/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js +1 -1
  106. package/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js +1 -1
  107. package/app/.next/server/app/api/policies/route_client-reference-manifest.js +1 -1
  108. package/app/.next/server/app/api/pricing/defaults/route_client-reference-manifest.js +1 -1
  109. package/app/.next/server/app/api/pricing/models/route_client-reference-manifest.js +1 -1
  110. package/app/.next/server/app/api/pricing/route_client-reference-manifest.js +1 -1
  111. package/app/.next/server/app/api/provider-metrics/route_client-reference-manifest.js +1 -1
  112. package/app/.next/server/app/api/provider-models/route_client-reference-manifest.js +1 -1
  113. package/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js +1 -1
  114. package/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js +1 -1
  115. package/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js +1 -1
  116. package/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js +1 -1
  117. package/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -1
  118. package/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js +1 -1
  119. package/app/.next/server/app/api/providers/client/route_client-reference-manifest.js +1 -1
  120. package/app/.next/server/app/api/providers/route.js +1 -1
  121. package/app/.next/server/app/api/providers/route_client-reference-manifest.js +1 -1
  122. package/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js +1 -1
  123. package/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js +1 -1
  124. package/app/.next/server/app/api/rate-limit/route_client-reference-manifest.js +1 -1
  125. package/app/.next/server/app/api/rate-limits/route_client-reference-manifest.js +1 -1
  126. package/app/.next/server/app/api/resilience/reset/route_client-reference-manifest.js +1 -1
  127. package/app/.next/server/app/api/resilience/route_client-reference-manifest.js +1 -1
  128. package/app/.next/server/app/api/restart/route_client-reference-manifest.js +1 -1
  129. package/app/.next/server/app/api/sessions/route_client-reference-manifest.js +1 -1
  130. package/app/.next/server/app/api/settings/combo-defaults/route_client-reference-manifest.js +1 -1
  131. package/app/.next/server/app/api/settings/ip-filter/route_client-reference-manifest.js +1 -1
  132. package/app/.next/server/app/api/settings/proxy/route_client-reference-manifest.js +1 -1
  133. package/app/.next/server/app/api/settings/proxy/test/route_client-reference-manifest.js +1 -1
  134. package/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js +1 -1
  135. package/app/.next/server/app/api/settings/route_client-reference-manifest.js +1 -1
  136. package/app/.next/server/app/api/settings/system-prompt/route_client-reference-manifest.js +1 -1
  137. package/app/.next/server/app/api/settings/thinking-budget/route_client-reference-manifest.js +1 -1
  138. package/app/.next/server/app/api/shutdown/route_client-reference-manifest.js +1 -1
  139. package/app/.next/server/app/api/storage/health/route_client-reference-manifest.js +1 -1
  140. package/app/.next/server/app/api/sync/cloud/route_client-reference-manifest.js +1 -1
  141. package/app/.next/server/app/api/sync/initialize/route_client-reference-manifest.js +1 -1
  142. package/app/.next/server/app/api/tags/route_client-reference-manifest.js +1 -1
  143. package/app/.next/server/app/api/telemetry/summary/route_client-reference-manifest.js +1 -1
  144. package/app/.next/server/app/api/token-health/route_client-reference-manifest.js +1 -1
  145. package/app/.next/server/app/api/translator/detect/route_client-reference-manifest.js +1 -1
  146. package/app/.next/server/app/api/translator/history/route_client-reference-manifest.js +1 -1
  147. package/app/.next/server/app/api/translator/load/route_client-reference-manifest.js +1 -1
  148. package/app/.next/server/app/api/translator/save/route_client-reference-manifest.js +1 -1
  149. package/app/.next/server/app/api/translator/send/route_client-reference-manifest.js +1 -1
  150. package/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js +1 -1
  151. package/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js +1 -1
  152. package/app/.next/server/app/api/usage/analytics/route_client-reference-manifest.js +1 -1
  153. package/app/.next/server/app/api/usage/budget/route_client-reference-manifest.js +1 -1
  154. package/app/.next/server/app/api/usage/call-logs/[id]/route_client-reference-manifest.js +1 -1
  155. package/app/.next/server/app/api/usage/call-logs/route_client-reference-manifest.js +1 -1
  156. package/app/.next/server/app/api/usage/history/route_client-reference-manifest.js +1 -1
  157. package/app/.next/server/app/api/usage/logs/route_client-reference-manifest.js +1 -1
  158. package/app/.next/server/app/api/usage/proxy-logs/route_client-reference-manifest.js +1 -1
  159. package/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js +1 -1
  160. package/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js +1 -1
  161. package/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js +1 -1
  162. package/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js +1 -1
  163. package/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js +1 -1
  164. package/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js +1 -1
  165. package/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js +1 -1
  166. package/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js +1 -1
  167. package/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js +1 -1
  168. package/app/.next/server/app/api/v1/models/route_client-reference-manifest.js +1 -1
  169. package/app/.next/server/app/api/v1/moderations/route_client-reference-manifest.js +1 -1
  170. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route_client-reference-manifest.js +1 -1
  171. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route_client-reference-manifest.js +1 -1
  172. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route_client-reference-manifest.js +1 -1
  173. package/app/.next/server/app/api/v1/rerank/route_client-reference-manifest.js +1 -1
  174. package/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js +1 -1
  175. package/app/.next/server/app/api/v1/route_client-reference-manifest.js +1 -1
  176. package/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js +1 -1
  177. package/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js +1 -1
  178. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  179. package/app/.next/server/app/callback.html +1 -1
  180. package/app/.next/server/app/callback.rsc +2 -2
  181. package/app/.next/server/app/callback.segments/_full.segment.rsc +2 -2
  182. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  183. package/app/.next/server/app/callback.segments/_index.segment.rsc +2 -2
  184. package/app/.next/server/app/callback.segments/_tree.segment.rsc +1 -1
  185. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  186. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  187. package/app/.next/server/app/dashboard/analytics.html +2 -2
  188. package/app/.next/server/app/dashboard/analytics.rsc +4 -4
  189. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics/__PAGE__.segment.rsc +2 -2
  190. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard/analytics.segment.rsc +1 -1
  191. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  192. package/app/.next/server/app/dashboard/analytics.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  193. package/app/.next/server/app/dashboard/analytics.segments/_full.segment.rsc +4 -4
  194. package/app/.next/server/app/dashboard/analytics.segments/_head.segment.rsc +1 -1
  195. package/app/.next/server/app/dashboard/analytics.segments/_index.segment.rsc +2 -2
  196. package/app/.next/server/app/dashboard/analytics.segments/_tree.segment.rsc +1 -1
  197. package/app/.next/server/app/dashboard/api-manager.html +1 -1
  198. package/app/.next/server/app/dashboard/api-manager.rsc +4 -4
  199. package/app/.next/server/app/dashboard/api-manager.segments/!KGRhc2hib2FyZCk/dashboard/api-manager/__PAGE__.segment.rsc +2 -2
  200. package/app/.next/server/app/dashboard/api-manager.segments/!KGRhc2hib2FyZCk/dashboard/api-manager.segment.rsc +1 -1
  201. package/app/.next/server/app/dashboard/api-manager.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  202. package/app/.next/server/app/dashboard/api-manager.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  203. package/app/.next/server/app/dashboard/api-manager.segments/_full.segment.rsc +4 -4
  204. package/app/.next/server/app/dashboard/api-manager.segments/_head.segment.rsc +1 -1
  205. package/app/.next/server/app/dashboard/api-manager.segments/_index.segment.rsc +2 -2
  206. package/app/.next/server/app/dashboard/api-manager.segments/_tree.segment.rsc +1 -1
  207. package/app/.next/server/app/dashboard/audit-log.html +1 -1
  208. package/app/.next/server/app/dashboard/audit-log.rsc +3 -3
  209. package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard/audit-log/__PAGE__.segment.rsc +1 -1
  210. package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard/audit-log.segment.rsc +1 -1
  211. package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  212. package/app/.next/server/app/dashboard/audit-log.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  213. package/app/.next/server/app/dashboard/audit-log.segments/_full.segment.rsc +3 -3
  214. package/app/.next/server/app/dashboard/audit-log.segments/_head.segment.rsc +1 -1
  215. package/app/.next/server/app/dashboard/audit-log.segments/_index.segment.rsc +2 -2
  216. package/app/.next/server/app/dashboard/audit-log.segments/_tree.segment.rsc +1 -1
  217. package/app/.next/server/app/dashboard/cli-tools.html +1 -1
  218. package/app/.next/server/app/dashboard/cli-tools.rsc +4 -4
  219. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  220. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  221. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  222. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  223. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +4 -4
  224. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  225. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +2 -2
  226. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  227. package/app/.next/server/app/dashboard/combos.html +1 -1
  228. package/app/.next/server/app/dashboard/combos.rsc +4 -4
  229. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  230. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  231. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  232. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  233. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +4 -4
  234. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  235. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +2 -2
  236. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  237. package/app/.next/server/app/dashboard/costs.html +1 -1
  238. package/app/.next/server/app/dashboard/costs.rsc +4 -4
  239. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs/__PAGE__.segment.rsc +2 -2
  240. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard/costs.segment.rsc +1 -1
  241. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  242. package/app/.next/server/app/dashboard/costs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  243. package/app/.next/server/app/dashboard/costs.segments/_full.segment.rsc +4 -4
  244. package/app/.next/server/app/dashboard/costs.segments/_head.segment.rsc +1 -1
  245. package/app/.next/server/app/dashboard/costs.segments/_index.segment.rsc +2 -2
  246. package/app/.next/server/app/dashboard/costs.segments/_tree.segment.rsc +1 -1
  247. package/app/.next/server/app/dashboard/endpoint.html +1 -1
  248. package/app/.next/server/app/dashboard/endpoint.rsc +4 -4
  249. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  250. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  251. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  252. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  253. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +4 -4
  254. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  255. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +2 -2
  256. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  257. package/app/.next/server/app/dashboard/health.html +1 -1
  258. package/app/.next/server/app/dashboard/health.rsc +4 -4
  259. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health/__PAGE__.segment.rsc +2 -2
  260. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard/health.segment.rsc +1 -1
  261. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  262. package/app/.next/server/app/dashboard/health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  263. package/app/.next/server/app/dashboard/health.segments/_full.segment.rsc +4 -4
  264. package/app/.next/server/app/dashboard/health.segments/_head.segment.rsc +1 -1
  265. package/app/.next/server/app/dashboard/health.segments/_index.segment.rsc +2 -2
  266. package/app/.next/server/app/dashboard/health.segments/_tree.segment.rsc +1 -1
  267. package/app/.next/server/app/dashboard/limits.html +2 -2
  268. package/app/.next/server/app/dashboard/limits.rsc +4 -4
  269. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits/__PAGE__.segment.rsc +2 -2
  270. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard/limits.segment.rsc +1 -1
  271. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  272. package/app/.next/server/app/dashboard/limits.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  273. package/app/.next/server/app/dashboard/limits.segments/_full.segment.rsc +4 -4
  274. package/app/.next/server/app/dashboard/limits.segments/_head.segment.rsc +1 -1
  275. package/app/.next/server/app/dashboard/limits.segments/_index.segment.rsc +2 -2
  276. package/app/.next/server/app/dashboard/limits.segments/_tree.segment.rsc +1 -1
  277. package/app/.next/server/app/dashboard/logs.html +1 -1
  278. package/app/.next/server/app/dashboard/logs.rsc +4 -4
  279. package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs/__PAGE__.segment.rsc +2 -2
  280. package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard/logs.segment.rsc +1 -1
  281. package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  282. package/app/.next/server/app/dashboard/logs.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  283. package/app/.next/server/app/dashboard/logs.segments/_full.segment.rsc +4 -4
  284. package/app/.next/server/app/dashboard/logs.segments/_head.segment.rsc +1 -1
  285. package/app/.next/server/app/dashboard/logs.segments/_index.segment.rsc +2 -2
  286. package/app/.next/server/app/dashboard/logs.segments/_tree.segment.rsc +1 -1
  287. package/app/.next/server/app/dashboard/onboarding.html +1 -1
  288. package/app/.next/server/app/dashboard/onboarding.rsc +3 -3
  289. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding/__PAGE__.segment.rsc +1 -1
  290. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard/onboarding.segment.rsc +1 -1
  291. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  292. package/app/.next/server/app/dashboard/onboarding.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  293. package/app/.next/server/app/dashboard/onboarding.segments/_full.segment.rsc +3 -3
  294. package/app/.next/server/app/dashboard/onboarding.segments/_head.segment.rsc +1 -1
  295. package/app/.next/server/app/dashboard/onboarding.segments/_index.segment.rsc +2 -2
  296. package/app/.next/server/app/dashboard/onboarding.segments/_tree.segment.rsc +1 -1
  297. package/app/.next/server/app/dashboard/profile.html +1 -1
  298. package/app/.next/server/app/dashboard/profile.rsc +3 -3
  299. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +1 -1
  300. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  301. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  302. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  303. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +3 -3
  304. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  305. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +2 -2
  306. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  307. package/app/.next/server/app/dashboard/providers/new.html +2 -2
  308. package/app/.next/server/app/dashboard/providers/new.rsc +4 -4
  309. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  310. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  311. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  312. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  313. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  314. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +4 -4
  315. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  316. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +2 -2
  317. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  318. package/app/.next/server/app/dashboard/providers.html +2 -2
  319. package/app/.next/server/app/dashboard/providers.rsc +4 -4
  320. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  321. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  322. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  323. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  324. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +4 -4
  325. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  326. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +2 -2
  327. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  328. package/app/.next/server/app/dashboard/settings/pricing.html +2 -2
  329. package/app/.next/server/app/dashboard/settings/pricing.rsc +3 -3
  330. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  331. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings/pricing.segment.rsc +1 -1
  332. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  333. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  334. package/app/.next/server/app/dashboard/settings/pricing.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  335. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  336. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  337. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +2 -2
  338. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  339. package/app/.next/server/app/dashboard/settings.html +1 -1
  340. package/app/.next/server/app/dashboard/settings.rsc +4 -4
  341. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings/__PAGE__.segment.rsc +2 -2
  342. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard/settings.segment.rsc +1 -1
  343. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  344. package/app/.next/server/app/dashboard/settings.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  345. package/app/.next/server/app/dashboard/settings.segments/_full.segment.rsc +4 -4
  346. package/app/.next/server/app/dashboard/settings.segments/_head.segment.rsc +1 -1
  347. package/app/.next/server/app/dashboard/settings.segments/_index.segment.rsc +2 -2
  348. package/app/.next/server/app/dashboard/settings.segments/_tree.segment.rsc +1 -1
  349. package/app/.next/server/app/dashboard/translator.html +2 -2
  350. package/app/.next/server/app/dashboard/translator.rsc +4 -4
  351. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  352. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  353. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  354. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  355. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +4 -4
  356. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  357. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +2 -2
  358. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  359. package/app/.next/server/app/dashboard/usage.html +1 -1
  360. package/app/.next/server/app/dashboard/usage.rsc +4 -4
  361. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  362. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  363. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  364. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  365. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +4 -4
  366. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  367. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +2 -2
  368. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  369. package/app/.next/server/app/docs/page.js +1 -1
  370. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  371. package/app/.next/server/app/docs.html +1 -1
  372. package/app/.next/server/app/docs.rsc +2 -2
  373. package/app/.next/server/app/docs.segments/_full.segment.rsc +2 -2
  374. package/app/.next/server/app/docs.segments/_head.segment.rsc +1 -1
  375. package/app/.next/server/app/docs.segments/_index.segment.rsc +2 -2
  376. package/app/.next/server/app/docs.segments/_tree.segment.rsc +1 -1
  377. package/app/.next/server/app/docs.segments/docs/__PAGE__.segment.rsc +1 -1
  378. package/app/.next/server/app/docs.segments/docs.segment.rsc +1 -1
  379. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  380. package/app/.next/server/app/forbidden.html +1 -1
  381. package/app/.next/server/app/forbidden.rsc +2 -2
  382. package/app/.next/server/app/forbidden.segments/_full.segment.rsc +2 -2
  383. package/app/.next/server/app/forbidden.segments/_head.segment.rsc +1 -1
  384. package/app/.next/server/app/forbidden.segments/_index.segment.rsc +2 -2
  385. package/app/.next/server/app/forbidden.segments/_tree.segment.rsc +1 -1
  386. package/app/.next/server/app/forbidden.segments/forbidden/__PAGE__.segment.rsc +1 -1
  387. package/app/.next/server/app/forbidden.segments/forbidden.segment.rsc +1 -1
  388. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  389. package/app/.next/server/app/forgot-password.html +1 -1
  390. package/app/.next/server/app/forgot-password.rsc +3 -3
  391. package/app/.next/server/app/forgot-password.segments/_full.segment.rsc +3 -3
  392. package/app/.next/server/app/forgot-password.segments/_head.segment.rsc +1 -1
  393. package/app/.next/server/app/forgot-password.segments/_index.segment.rsc +2 -2
  394. package/app/.next/server/app/forgot-password.segments/_tree.segment.rsc +1 -1
  395. package/app/.next/server/app/forgot-password.segments/forgot-password/__PAGE__.segment.rsc +2 -2
  396. package/app/.next/server/app/forgot-password.segments/forgot-password.segment.rsc +1 -1
  397. package/app/.next/server/app/index.html +1 -1
  398. package/app/.next/server/app/index.rsc +2 -2
  399. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  400. package/app/.next/server/app/index.segments/_full.segment.rsc +2 -2
  401. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  402. package/app/.next/server/app/index.segments/_index.segment.rsc +2 -2
  403. package/app/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  404. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  405. package/app/.next/server/app/landing.html +1 -1
  406. package/app/.next/server/app/landing.rsc +2 -2
  407. package/app/.next/server/app/landing.segments/_full.segment.rsc +2 -2
  408. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  409. package/app/.next/server/app/landing.segments/_index.segment.rsc +2 -2
  410. package/app/.next/server/app/landing.segments/_tree.segment.rsc +1 -1
  411. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  412. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  413. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  414. package/app/.next/server/app/login.html +1 -1
  415. package/app/.next/server/app/login.rsc +3 -3
  416. package/app/.next/server/app/login.segments/_full.segment.rsc +3 -3
  417. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  418. package/app/.next/server/app/login.segments/_index.segment.rsc +2 -2
  419. package/app/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  420. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  421. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  422. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  423. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  424. package/app/.next/server/app/privacy.html +1 -1
  425. package/app/.next/server/app/privacy.rsc +2 -2
  426. package/app/.next/server/app/privacy.segments/_full.segment.rsc +2 -2
  427. package/app/.next/server/app/privacy.segments/_head.segment.rsc +1 -1
  428. package/app/.next/server/app/privacy.segments/_index.segment.rsc +2 -2
  429. package/app/.next/server/app/privacy.segments/_tree.segment.rsc +1 -1
  430. package/app/.next/server/app/privacy.segments/privacy/__PAGE__.segment.rsc +1 -1
  431. package/app/.next/server/app/privacy.segments/privacy.segment.rsc +1 -1
  432. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  433. package/app/.next/server/app/terms.html +1 -1
  434. package/app/.next/server/app/terms.rsc +2 -2
  435. package/app/.next/server/app/terms.segments/_full.segment.rsc +2 -2
  436. package/app/.next/server/app/terms.segments/_head.segment.rsc +1 -1
  437. package/app/.next/server/app/terms.segments/_index.segment.rsc +2 -2
  438. package/app/.next/server/app/terms.segments/_tree.segment.rsc +1 -1
  439. package/app/.next/server/app/terms.segments/terms/__PAGE__.segment.rsc +1 -1
  440. package/app/.next/server/app/terms.segments/terms.segment.rsc +1 -1
  441. package/app/.next/server/app-paths-manifest.json +26 -26
  442. package/app/.next/server/chunks/9824.js +1 -1
  443. package/app/.next/server/chunks/9979.js +1 -1
  444. package/app/.next/server/pages/404.html +1 -1
  445. package/app/.next/server/pages/500.html +2 -2
  446. package/app/.next/server/server-reference-manifest.js +1 -1
  447. package/app/.next/server/server-reference-manifest.json +1 -1
  448. package/app/.next/static/chunks/{5846-0dd696b0ace9c63d.js → 5846-b953f52d4e731508.js} +1 -1
  449. package/app/.next/static/chunks/{993-0fb5100db47366c5.js → 993-6ad4d290b0607f35.js} +1 -1
  450. package/app/package.json +1 -1
  451. package/package.json +1 -1
  452. /package/app/.next/static/{MWIZItneSj8laKrHFH9vx → l-GshM5WMuY6y9qZqO1xc}/_buildManifest.js +0 -0
  453. /package/app/.next/static/{MWIZItneSj8laKrHFH9vx → l-GshM5WMuY6y9qZqO1xc}/_ssgManifest.js +0 -0
@@ -3,4 +3,4 @@
3
3
  3:I[90484,[],"MetadataBoundary"]
4
4
  4:"$Sreact.suspense"
5
5
  5:I[86869,[],"IconMark"]
6
- 0:{"buildId":"MWIZItneSj8laKrHFH9vx","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Terms of Service | OmniRoute"}],["$","meta","1",{"name":"description","content":"Terms of service for the OmniRoute AI API proxy router."}],["$","link","2",{"rel":"icon","href":"/favicon.svg"}],["$","link","3",{"rel":"apple-touch-icon","href":"/apple-touch-icon.svg"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false}
6
+ 0:{"buildId":"l-GshM5WMuY6y9qZqO1xc","rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Terms of Service | OmniRoute"}],["$","meta","1",{"name":"description","content":"Terms of service for the OmniRoute AI API proxy router."}],["$","link","2",{"rel":"icon","href":"/favicon.svg"}],["$","link","3",{"rel":"apple-touch-icon","href":"/apple-touch-icon.svg"}],["$","$L5","4",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"loading":null,"isPartial":false}
@@ -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-0dd696b0ace9c63d.js","993","static/chunks/993-0fb5100db47366c5.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-b953f52d4e731508.js","993","static/chunks/993-6ad4d290b0607f35.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/a0c29bb208bb9dfe.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":"MWIZItneSj8laKrHFH9vx","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/a0c29bb208bb9dfe.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":"l-GshM5WMuY6y9qZqO1xc","rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/a0c29bb208bb9dfe.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/a0c29bb208bb9dfe.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":"MWIZItneSj8laKrHFH9vx","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":"l-GshM5WMuY6y9qZqO1xc","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":"MWIZItneSj8laKrHFH9vx","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":"l-GshM5WMuY6y9qZqO1xc","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":"MWIZItneSj8laKrHFH9vx","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}
4
+ 0:{"buildId":"l-GshM5WMuY6y9qZqO1xc","rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"loading":null,"isPartial":false}
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "/_not-found/page": "app/_not-found/page.js",
3
3
  "/_global-error/page": "app/_global-error/page.js",
4
- "/api/auth/login/route": "app/api/auth/login/route.js",
5
4
  "/api/auth/logout/route": "app/api/auth/logout/route.js",
6
5
  "/api/auth/status/route": "app/api/auth/status/route.js",
6
+ "/api/auth/login/route": "app/api/auth/login/route.js",
7
7
  "/api/cache/route": "app/api/cache/route.js",
8
8
  "/api/cache/stats/route": "app/api/cache/stats/route.js",
9
9
  "/api/cli-tools/antigravity-mitm/alias/route": "app/api/cli-tools/antigravity-mitm/alias/route.js",
@@ -28,17 +28,17 @@
28
28
  "/api/init/route": "app/api/init/route.js",
29
29
  "/api/keys/[id]/route": "app/api/keys/[id]/route.js",
30
30
  "/api/keys/route": "app/api/keys/route.js",
31
- "/api/logs/console/route": "app/api/logs/console/route.js",
32
31
  "/api/models/alias/route": "app/api/models/alias/route.js",
32
+ "/api/logs/console/route": "app/api/logs/console/route.js",
33
33
  "/api/models/availability/route": "app/api/models/availability/route.js",
34
34
  "/api/models/catalog/route": "app/api/models/catalog/route.js",
35
- "/api/models/route": "app/api/models/route.js",
36
35
  "/api/monitoring/health/route": "app/api/monitoring/health/route.js",
36
+ "/api/models/route": "app/api/models/route.js",
37
37
  "/api/oauth/[provider]/[action]/route": "app/api/oauth/[provider]/[action]/route.js",
38
38
  "/api/oauth/cursor/auto-import/route": "app/api/oauth/cursor/auto-import/route.js",
39
- "/api/oauth/cursor/import/route": "app/api/oauth/cursor/import/route.js",
40
- "/api/oauth/kiro/import/route": "app/api/oauth/kiro/import/route.js",
41
39
  "/api/oauth/kiro/auto-import/route": "app/api/oauth/kiro/auto-import/route.js",
40
+ "/api/oauth/kiro/import/route": "app/api/oauth/kiro/import/route.js",
41
+ "/api/oauth/cursor/import/route": "app/api/oauth/cursor/import/route.js",
42
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",
@@ -56,44 +56,44 @@
56
56
  "/api/providers/test-batch/route": "app/api/providers/test-batch/route.js",
57
57
  "/api/providers/validate/route": "app/api/providers/validate/route.js",
58
58
  "/api/rate-limit/route": "app/api/rate-limit/route.js",
59
+ "/api/rate-limits/route": "app/api/rate-limits/route.js",
59
60
  "/api/resilience/reset/route": "app/api/resilience/reset/route.js",
60
61
  "/api/resilience/route": "app/api/resilience/route.js",
61
- "/api/rate-limits/route": "app/api/rate-limits/route.js",
62
- "/api/restart/route": "app/api/restart/route.js",
63
62
  "/api/sessions/route": "app/api/sessions/route.js",
63
+ "/api/restart/route": "app/api/restart/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
66
  "/api/settings/require-login/route": "app/api/settings/require-login/route.js",
67
- "/api/settings/route": "app/api/settings/route.js",
68
67
  "/api/settings/system-prompt/route": "app/api/settings/system-prompt/route.js",
68
+ "/api/settings/route": "app/api/settings/route.js",
69
69
  "/api/shutdown/route": "app/api/shutdown/route.js",
70
70
  "/api/settings/thinking-budget/route": "app/api/settings/thinking-budget/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",
73
73
  "/api/sync/initialize/route": "app/api/sync/initialize/route.js",
74
- "/api/telemetry/summary/route": "app/api/telemetry/summary/route.js",
75
74
  "/api/tags/route": "app/api/tags/route.js",
75
+ "/api/telemetry/summary/route": "app/api/telemetry/summary/route.js",
76
76
  "/api/token-health/route": "app/api/token-health/route.js",
77
+ "/api/translator/detect/route": "app/api/translator/detect/route.js",
77
78
  "/api/translator/history/route": "app/api/translator/history/route.js",
78
79
  "/api/translator/load/route": "app/api/translator/load/route.js",
79
80
  "/api/translator/save/route": "app/api/translator/save/route.js",
80
- "/api/translator/detect/route": "app/api/translator/detect/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
+ "/api/usage/analytics/route": "app/api/usage/analytics/route.js",
84
85
  "/api/usage/budget/route": "app/api/usage/budget/route.js",
85
86
  "/api/usage/call-logs/[id]/route": "app/api/usage/call-logs/[id]/route.js",
86
- "/api/usage/analytics/route": "app/api/usage/analytics/route.js",
87
87
  "/api/usage/call-logs/route": "app/api/usage/call-logs/route.js",
88
88
  "/api/usage/logs/route": "app/api/usage/logs/route.js",
89
89
  "/api/usage/history/route": "app/api/usage/history/route.js",
90
90
  "/api/usage/request-logs/route": "app/api/usage/request-logs/route.js",
91
91
  "/api/v1/api/chat/route": "app/api/v1/api/chat/route.js",
92
- "/api/v1/audio/speech/route": "app/api/v1/audio/speech/route.js",
93
92
  "/api/v1/audio/transcriptions/route": "app/api/v1/audio/transcriptions/route.js",
93
+ "/api/v1/audio/speech/route": "app/api/v1/audio/speech/route.js",
94
94
  "/api/v1/embeddings/route": "app/api/v1/embeddings/route.js",
95
- "/api/v1/messages/count_tokens/route": "app/api/v1/messages/count_tokens/route.js",
96
95
  "/api/v1/images/generations/route": "app/api/v1/images/generations/route.js",
96
+ "/api/v1/messages/count_tokens/route": "app/api/v1/messages/count_tokens/route.js",
97
97
  "/api/v1/messages/route": "app/api/v1/messages/route.js",
98
98
  "/api/v1/models/route": "app/api/v1/models/route.js",
99
99
  "/api/v1/moderations/route": "app/api/v1/moderations/route.js",
@@ -103,51 +103,51 @@
103
103
  "/api/v1/rerank/route": "app/api/v1/rerank/route.js",
104
104
  "/api/v1/responses/route": "app/api/v1/responses/route.js",
105
105
  "/api/v1/route": "app/api/v1/route.js",
106
- "/api/v1beta/models/route": "app/api/v1beta/models/route.js",
107
106
  "/api/v1beta/models/[...path]/route": "app/api/v1beta/models/[...path]/route.js",
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",
109
109
  "/api/cli-tools/claude-settings/route": "app/api/cli-tools/claude-settings/route.js",
110
110
  "/api/cli-tools/cline-settings/route": "app/api/cli-tools/cline-settings/route.js",
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/kilo-settings/route": "app/api/cli-tools/kilo-settings/route.js",
114
- "/api/cli-tools/openclaw-settings/route": "app/api/cli-tools/openclaw-settings/route.js",
115
114
  "/api/cli-tools/runtime/[toolId]/route": "app/api/cli-tools/runtime/[toolId]/route.js",
116
- "/api/cli-tools/status/route": "app/api/cli-tools/status/route.js",
117
- "/api/provider-nodes/route": "app/api/provider-nodes/route.js",
118
115
  "/api/combos/test/route": "app/api/combos/test/route.js",
116
+ "/api/provider-nodes/route": "app/api/provider-nodes/route.js",
117
+ "/api/cli-tools/openclaw-settings/route": "app/api/cli-tools/openclaw-settings/route.js",
119
118
  "/api/providers/[id]/test/route": "app/api/providers/[id]/test/route.js",
119
+ "/api/settings/proxy/test/route": "app/api/settings/proxy/test/route.js",
120
+ "/api/cli-tools/status/route": "app/api/cli-tools/status/route.js",
120
121
  "/api/settings/proxy/route": "app/api/settings/proxy/route.js",
121
122
  "/api/usage/proxy-logs/route": "app/api/usage/proxy-logs/route.js",
122
- "/api/settings/proxy/test/route": "app/api/settings/proxy/test/route.js",
123
123
  "/api/v1/chat/completions/route": "app/api/v1/chat/completions/route.js",
124
124
  "/callback/page": "app/callback/page.js",
125
- "/docs/page": "app/docs/page.js",
126
125
  "/forbidden/page": "app/forbidden/page.js",
127
- "/forgot-password/page": "app/forgot-password/page.js",
128
126
  "/landing/page": "app/landing/page.js",
127
+ "/forgot-password/page": "app/forgot-password/page.js",
128
+ "/docs/page": "app/docs/page.js",
129
129
  "/login/page": "app/login/page.js",
130
130
  "/page": "app/page.js",
131
131
  "/terms/page": "app/terms/page.js",
132
132
  "/privacy/page": "app/privacy/page.js",
133
- "/(dashboard)/dashboard/api-manager/page": "app/(dashboard)/dashboard/api-manager/page.js",
134
133
  "/(dashboard)/dashboard/audit-log/page": "app/(dashboard)/dashboard/audit-log/page.js",
135
- "/(dashboard)/dashboard/cli-tools/page": "app/(dashboard)/dashboard/cli-tools/page.js",
136
134
  "/(dashboard)/dashboard/analytics/page": "app/(dashboard)/dashboard/analytics/page.js",
135
+ "/(dashboard)/dashboard/api-manager/page": "app/(dashboard)/dashboard/api-manager/page.js",
136
+ "/(dashboard)/dashboard/cli-tools/page": "app/(dashboard)/dashboard/cli-tools/page.js",
137
137
  "/(dashboard)/dashboard/costs/page": "app/(dashboard)/dashboard/costs/page.js",
138
138
  "/(dashboard)/dashboard/endpoint/page": "app/(dashboard)/dashboard/endpoint/page.js",
139
- "/(dashboard)/dashboard/health/page": "app/(dashboard)/dashboard/health/page.js",
140
139
  "/(dashboard)/dashboard/limits/page": "app/(dashboard)/dashboard/limits/page.js",
140
+ "/(dashboard)/dashboard/health/page": "app/(dashboard)/dashboard/health/page.js",
141
141
  "/(dashboard)/dashboard/profile/page": "app/(dashboard)/dashboard/profile/page.js",
142
- "/(dashboard)/dashboard/settings/page": "app/(dashboard)/dashboard/settings/page.js",
143
142
  "/(dashboard)/dashboard/providers/new/page": "app/(dashboard)/dashboard/providers/new/page.js",
143
+ "/(dashboard)/dashboard/settings/page": "app/(dashboard)/dashboard/settings/page.js",
144
144
  "/(dashboard)/dashboard/settings/pricing/page": "app/(dashboard)/dashboard/settings/pricing/page.js",
145
145
  "/(dashboard)/dashboard/logs/page": "app/(dashboard)/dashboard/logs/page.js",
146
146
  "/(dashboard)/dashboard/page": "app/(dashboard)/dashboard/page.js",
147
- "/(dashboard)/dashboard/onboarding/page": "app/(dashboard)/dashboard/onboarding/page.js",
148
147
  "/(dashboard)/dashboard/translator/page": "app/(dashboard)/dashboard/translator/page.js",
149
- "/(dashboard)/dashboard/usage/page": "app/(dashboard)/dashboard/usage/page.js",
148
+ "/(dashboard)/dashboard/onboarding/page": "app/(dashboard)/dashboard/onboarding/page.js",
150
149
  "/(dashboard)/dashboard/combos/page": "app/(dashboard)/dashboard/combos/page.js",
150
+ "/(dashboard)/dashboard/usage/page": "app/(dashboard)/dashboard/usage/page.js",
151
151
  "/(dashboard)/dashboard/providers/page": "app/(dashboard)/dashboard/providers/page.js",
152
152
  "/(dashboard)/dashboard/providers/[id]/page": "app/(dashboard)/dashboard/providers/[id]/page.js"
153
153
  }
@@ -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=["antigravity","gemini-cli"],G=(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){a.message?.toLowerCase().includes("redirect_uri_mismatch")&&F.includes(b)?r("redirect_uri_mismatch: As credenciais padr\xe3o do Google OAuth s\xf3 funcionam em localhost. Para uso remoto, configure suas pr\xf3prias credenciais OAuth nas vari\xe1veis de ambiente: "+("antigravity"===b?"ANTIGRAVITY_OAUTH_CLIENT_ID e ANTIGRAVITY_OAUTH_CLIENT_SECRET":"GEMINI_OAUTH_CLIENT_ID e GEMINI_OAUTH_CLIENT_SECRET")+". Veja o README, se\xe7\xe3o 'OAuth em Servidor Remoto'."):r(a.message),l("error")}},[m,b,f]),H=(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]),I=(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;H(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(F.includes(b)){let b=window.location.port||"20128";a=`http://localhost:${b}/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,H,f]),J=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 G(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&&F.includes(b)&&(0,d.jsxs)("div",{className:"rounded-lg border border-amber-500/30 bg-amber-500/10 p-3 text-xs text-amber-200",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm align-middle mr-1",children:"warning"}),(0,d.jsx)("strong",{children:"Acesso remoto + Google OAuth:"})," As credenciais padr\xe3o s\xf3 aceitam redirect para ",(0,d.jsx)("code",{children:"localhost"}),". Ap\xf3s autorizar, o browser tentar\xe1 abrir",(0,d.jsx)("code",{children:"localhost"})," — copie essa URL completa e cole abaixo. Para uso totalmente remoto sem esse passo manual,"," ",(0,d.jsx)("a",{href:"https://github.com/diegosouzapw/OmniRoute#oauth-em-servidor-remoto",target:"_blank",rel:"noreferrer",className:"underline",children:"configure suas pr\xf3prias credenciais OAuth"}),"."]}),!B&&!F.includes(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:J,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:I,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,G]=(0,e.useState)(!1),H=["antigravity","gemini-cli"],I=(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){a.message?.toLowerCase().includes("redirect_uri_mismatch")&&H.includes(b)?r("redirect_uri_mismatch: As credenciais padr\xe3o do Google OAuth s\xf3 funcionam em localhost. Para uso remoto, configure suas pr\xf3prias credenciais OAuth nas vari\xe1veis de ambiente: "+("antigravity"===b?"ANTIGRAVITY_OAUTH_CLIENT_ID e ANTIGRAVITY_OAUTH_CLIENT_SECRET":"GEMINI_OAUTH_CLIENT_ID e GEMINI_OAUTH_CLIENT_SECRET")+". Veja o README, se\xe7\xe3o 'OAuth em Servidor Remoto'."):r(a.message),l("error")}},[m,b,f]),J=(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]),K=(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;J(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(H.includes(b)){let b=window.location.port||"20128";a=`http://localhost:${b}/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}),F?(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,F,J,f]),L=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 I(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:[!F&&H.includes(b)&&(0,d.jsxs)("div",{className:"rounded-lg border border-amber-500/30 bg-amber-500/10 p-3 text-xs text-amber-200",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm align-middle mr-1",children:"warning"}),(0,d.jsx)("strong",{children:"Acesso remoto + Google OAuth:"})," As credenciais padr\xe3o s\xf3 aceitam redirect para ",(0,d.jsx)("code",{children:"localhost"}),". Ap\xf3s autorizar, o browser tentar\xe1 abrir",(0,d.jsx)("code",{children:"localhost"})," — copie essa URL completa e cole abaixo. Para uso totalmente remoto sem esse passo manual,"," ",(0,d.jsx)("a",{href:"https://github.com/diegosouzapw/OmniRoute#oauth-em-servidor-remoto",target:"_blank",rel:"noreferrer",className:"underline",children:"configure suas pr\xf3prias credenciais OAuth"}),"."]}),!F&&!H.includes(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:L,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:K,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); }