omniroute 3.7.2 → 3.7.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 (362) hide show
  1. package/app/.next/BUILD_ID +1 -1
  2. package/app/.next/app-path-routes-manifest.json +15 -15
  3. package/app/.next/build-manifest.json +3 -3
  4. package/app/.next/prerender-manifest.json +3 -3
  5. package/app/.next/react-loadable-manifest.json +3 -3
  6. package/app/.next/server/app/(dashboard)/dashboard/agents/page_client-reference-manifest.js +1 -1
  7. package/app/.next/server/app/(dashboard)/dashboard/analytics/page_client-reference-manifest.js +1 -1
  8. package/app/.next/server/app/(dashboard)/dashboard/api-manager/page_client-reference-manifest.js +1 -1
  9. package/app/.next/server/app/(dashboard)/dashboard/audit/page_client-reference-manifest.js +1 -1
  10. package/app/.next/server/app/(dashboard)/dashboard/auto-combo/page_client-reference-manifest.js +1 -1
  11. package/app/.next/server/app/(dashboard)/dashboard/batch/page_client-reference-manifest.js +1 -1
  12. package/app/.next/server/app/(dashboard)/dashboard/cache/media/page.js +1 -1
  13. package/app/.next/server/app/(dashboard)/dashboard/cache/media/page_client-reference-manifest.js +1 -1
  14. package/app/.next/server/app/(dashboard)/dashboard/cache/page_client-reference-manifest.js +1 -1
  15. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/costs/page_client-reference-manifest.js +1 -1
  18. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/health/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/limits/page_client-reference-manifest.js +1 -1
  21. package/app/.next/server/app/(dashboard)/dashboard/logs/page.js +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/logs/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/memory/page_client-reference-manifest.js +1 -1
  24. package/app/.next/server/app/(dashboard)/dashboard/onboarding/page_client-reference-manifest.js +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  27. package/app/.next/server/app/(dashboard)/dashboard/playground/page_client-reference-manifest.js +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  30. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/search-tools/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/settings/page_client-reference-manifest.js +1 -1
  33. package/app/.next/server/app/(dashboard)/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  36. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  37. package/app/.next/server/app/400/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/401/page_client-reference-manifest.js +1 -1
  39. package/app/.next/server/app/403/page_client-reference-manifest.js +1 -1
  40. package/app/.next/server/app/408/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/429/page_client-reference-manifest.js +1 -1
  42. package/app/.next/server/app/500/page_client-reference-manifest.js +1 -1
  43. package/app/.next/server/app/502/page_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/503/page_client-reference-manifest.js +1 -1
  45. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  46. package/app/.next/server/app/_global-error.html +1 -1
  47. package/app/.next/server/app/_global-error.rsc +1 -1
  48. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  49. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  50. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  51. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  52. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  53. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  54. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  55. package/app/.next/server/app/api/acp/agents/route.js.nft.json +1 -1
  56. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  57. package/app/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
  58. package/app/.next/server/app/api/batches/route.js.nft.json +1 -1
  59. package/app/.next/server/app/api/cache/entries/route.js.nft.json +1 -1
  60. package/app/.next/server/app/api/cache/reasoning/route.js.nft.json +1 -1
  61. package/app/.next/server/app/api/cache/route.js.nft.json +1 -1
  62. package/app/.next/server/app/api/cache/stats/route.js.nft.json +1 -1
  63. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  64. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  65. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  66. package/app/.next/server/app/api/cli-tools/backups/route.js +2 -2
  67. package/app/.next/server/app/api/cli-tools/backups/route.js.nft.json +1 -1
  68. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  69. package/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  70. package/app/.next/server/app/api/cli-tools/cline-settings/route.js +1 -1
  71. package/app/.next/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  72. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js +1 -1
  73. package/app/.next/server/app/api/cli-tools/codex-profiles/route.js.nft.json +1 -1
  74. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +2 -2
  75. package/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  76. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +1 -1
  77. package/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  78. package/app/.next/server/app/api/cli-tools/guide-settings/[toolId]/route.js.nft.json +1 -1
  79. package/app/.next/server/app/api/cli-tools/keys/route.js.nft.json +1 -1
  80. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  81. package/app/.next/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  82. package/app/.next/server/app/api/cli-tools/openclaw/auto-order/route.js.nft.json +1 -1
  83. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +1 -1
  84. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  85. package/app/.next/server/app/api/cli-tools/qwen-settings/route.js +1 -1
  86. package/app/.next/server/app/api/cli-tools/qwen-settings/route.js.nft.json +1 -1
  87. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js +2 -2
  88. package/app/.next/server/app/api/cli-tools/runtime/[toolId]/route.js.nft.json +1 -1
  89. package/app/.next/server/app/api/cli-tools/status/route.js +1 -1
  90. package/app/.next/server/app/api/cli-tools/status/route.js.nft.json +1 -1
  91. package/app/.next/server/app/api/cloud/auth/route.js.nft.json +1 -1
  92. package/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json +1 -1
  93. package/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json +1 -1
  94. package/app/.next/server/app/api/cloud/models/alias/route.js.nft.json +1 -1
  95. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  96. package/app/.next/server/app/api/combos/[id]/route.js.nft.json +1 -1
  97. package/app/.next/server/app/api/combos/builder/options/route.js.nft.json +1 -1
  98. package/app/.next/server/app/api/combos/metrics/route.js.nft.json +1 -1
  99. package/app/.next/server/app/api/combos/reorder/route.js.nft.json +1 -1
  100. package/app/.next/server/app/api/combos/route.js +1 -1
  101. package/app/.next/server/app/api/combos/route.js.nft.json +1 -1
  102. package/app/.next/server/app/api/combos/test/route.js +1 -1
  103. package/app/.next/server/app/api/combos/test/route.js.nft.json +1 -1
  104. package/app/.next/server/app/api/compliance/audit-log/route.js.nft.json +1 -1
  105. package/app/.next/server/app/api/db-backups/export/route.js.nft.json +1 -1
  106. package/app/.next/server/app/api/db-backups/exportAll/route.js.nft.json +1 -1
  107. package/app/.next/server/app/api/db-backups/import/route.js.nft.json +1 -1
  108. package/app/.next/server/app/api/db-backups/route.js.nft.json +1 -1
  109. package/app/.next/server/app/api/evals/[suiteId]/route.js.nft.json +1 -1
  110. package/app/.next/server/app/api/evals/route.js.nft.json +1 -1
  111. package/app/.next/server/app/api/evals/scorecard/route.js.nft.json +1 -1
  112. package/app/.next/server/app/api/evals/suites/[suiteId]/route.js.nft.json +1 -1
  113. package/app/.next/server/app/api/evals/suites/route.js.nft.json +1 -1
  114. package/app/.next/server/app/api/fallback/chains/route.js.nft.json +1 -1
  115. package/app/.next/server/app/api/files/[id]/content/route.js.nft.json +1 -1
  116. package/app/.next/server/app/api/files/route.js.nft.json +1 -1
  117. package/app/.next/server/app/api/init/route.js.nft.json +1 -1
  118. package/app/.next/server/app/api/internal/codex-responses-ws/route.js.nft.json +1 -1
  119. package/app/.next/server/app/api/keys/[id]/reveal/route.js.nft.json +1 -1
  120. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  121. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  122. package/app/.next/server/app/api/logs/active/route.js.nft.json +1 -1
  123. package/app/.next/server/app/api/logs/console/route.js.nft.json +1 -1
  124. package/app/.next/server/app/api/logs/detail/route.js.nft.json +1 -1
  125. package/app/.next/server/app/api/logs/export/route.js.nft.json +1 -1
  126. package/app/.next/server/app/api/mcp/sse/route.js.nft.json +1 -1
  127. package/app/.next/server/app/api/mcp/status/route.js.nft.json +1 -1
  128. package/app/.next/server/app/api/mcp/stream/route.js.nft.json +1 -1
  129. package/app/.next/server/app/api/memory/[id]/route.js.nft.json +1 -1
  130. package/app/.next/server/app/api/memory/health/route.js.nft.json +1 -1
  131. package/app/.next/server/app/api/memory/route.js.nft.json +1 -1
  132. package/app/.next/server/app/api/model-combo-mappings/[id]/route.js.nft.json +1 -1
  133. package/app/.next/server/app/api/model-combo-mappings/route.js.nft.json +1 -1
  134. package/app/.next/server/app/api/models/alias/route.js.nft.json +1 -1
  135. package/app/.next/server/app/api/models/catalog/route.js.nft.json +1 -1
  136. package/app/.next/server/app/api/models/openrouter-catalog/route.js.nft.json +1 -1
  137. package/app/.next/server/app/api/models/route.js.nft.json +1 -1
  138. package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
  139. package/app/.next/server/app/api/monitoring/health/route.js +1 -1
  140. package/app/.next/server/app/api/monitoring/health/route.js.nft.json +1 -1
  141. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  142. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  143. package/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  144. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  145. package/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  146. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  147. package/app/.next/server/app/api/openapi/try/route.js.nft.json +1 -1
  148. package/app/.next/server/app/api/policies/route.js.nft.json +1 -1
  149. package/app/.next/server/app/api/pricing/models/route.js.nft.json +1 -1
  150. package/app/.next/server/app/api/pricing/route.js.nft.json +1 -1
  151. package/app/.next/server/app/api/pricing/sync/route.js.nft.json +1 -1
  152. package/app/.next/server/app/api/provider-metrics/route.js.nft.json +1 -1
  153. package/app/.next/server/app/api/provider-models/route.js.nft.json +1 -1
  154. package/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  155. package/app/.next/server/app/api/provider-nodes/route.js.nft.json +1 -1
  156. package/app/.next/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  157. package/app/.next/server/app/api/providers/[id]/codex-auth/apply-local/route.js.nft.json +1 -1
  158. package/app/.next/server/app/api/providers/[id]/codex-auth/export/route.js.nft.json +1 -1
  159. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  160. package/app/.next/server/app/api/providers/[id]/refresh/route.js.nft.json +1 -1
  161. package/app/.next/server/app/api/providers/[id]/route.js.nft.json +1 -1
  162. package/app/.next/server/app/api/providers/[id]/sync-models/route.js.nft.json +1 -1
  163. package/app/.next/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  164. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  165. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  166. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  167. package/app/.next/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  168. package/app/.next/server/app/api/providers/validate/route.js.nft.json +1 -1
  169. package/app/.next/server/app/api/providers/zed/import/route.js.nft.json +1 -1
  170. package/app/.next/server/app/api/rate-limits/route.js.nft.json +1 -1
  171. package/app/.next/server/app/api/resilience/reset/route.js.nft.json +1 -1
  172. package/app/.next/server/app/api/resilience/route.js.nft.json +1 -1
  173. package/app/.next/server/app/api/restart/route.js.nft.json +1 -1
  174. package/app/.next/server/app/api/search/providers/route.js.nft.json +1 -1
  175. package/app/.next/server/app/api/search/stats/route.js.nft.json +1 -1
  176. package/app/.next/server/app/api/settings/auto-disable-accounts/route.js.nft.json +1 -1
  177. package/app/.next/server/app/api/settings/background-degradation/route.js.nft.json +1 -1
  178. package/app/.next/server/app/api/settings/cache-config/route.js.nft.json +1 -1
  179. package/app/.next/server/app/api/settings/cache-metrics/route.js.nft.json +1 -1
  180. package/app/.next/server/app/api/settings/combo-defaults/route.js.nft.json +1 -1
  181. package/app/.next/server/app/api/settings/export-json/route.js.nft.json +1 -1
  182. package/app/.next/server/app/api/settings/favicon/route.js.nft.json +1 -1
  183. package/app/.next/server/app/api/settings/import-json/route.js.nft.json +1 -1
  184. package/app/.next/server/app/api/settings/ip-filter/route.js.nft.json +1 -1
  185. package/app/.next/server/app/api/settings/lkgp-cache/route.js.nft.json +1 -1
  186. package/app/.next/server/app/api/settings/memory/route.js.nft.json +1 -1
  187. package/app/.next/server/app/api/settings/model-aliases/route.js.nft.json +1 -1
  188. package/app/.next/server/app/api/settings/models-dev/route.js.nft.json +1 -1
  189. package/app/.next/server/app/api/settings/payload-rules/route.js.nft.json +1 -1
  190. package/app/.next/server/app/api/settings/proxies/assignments/route.js.nft.json +1 -1
  191. package/app/.next/server/app/api/settings/proxies/bulk-assign/route.js.nft.json +1 -1
  192. package/app/.next/server/app/api/settings/proxies/health/route.js.nft.json +1 -1
  193. package/app/.next/server/app/api/settings/proxies/migrate/route.js.nft.json +1 -1
  194. package/app/.next/server/app/api/settings/proxies/route.js.nft.json +1 -1
  195. package/app/.next/server/app/api/settings/proxy/route.js.nft.json +1 -1
  196. package/app/.next/server/app/api/settings/proxy/test/route.js.nft.json +1 -1
  197. package/app/.next/server/app/api/settings/purge-logs/route.js.nft.json +1 -1
  198. package/app/.next/server/app/api/settings/require-login/route.js.nft.json +1 -1
  199. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  200. package/app/.next/server/app/api/settings/system-prompt/route.js.nft.json +1 -1
  201. package/app/.next/server/app/api/settings/task-routing/route.js.nft.json +1 -1
  202. package/app/.next/server/app/api/settings/thinking-budget/route.js.nft.json +1 -1
  203. package/app/.next/server/app/api/shutdown/route.js.nft.json +1 -1
  204. package/app/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
  205. package/app/.next/server/app/api/skills/executions/route.js.nft.json +1 -1
  206. package/app/.next/server/app/api/skills/install/route.js.nft.json +1 -1
  207. package/app/.next/server/app/api/skills/marketplace/install/route.js.nft.json +1 -1
  208. package/app/.next/server/app/api/skills/marketplace/route.js.nft.json +1 -1
  209. package/app/.next/server/app/api/skills/route.js.nft.json +1 -1
  210. package/app/.next/server/app/api/skills/skillssh/install/route.js.nft.json +1 -1
  211. package/app/.next/server/app/api/skills/skillssh/route.js.nft.json +1 -1
  212. package/app/.next/server/app/api/storage/health/route.js.nft.json +1 -1
  213. package/app/.next/server/app/api/sync/bundle/route.js.nft.json +1 -1
  214. package/app/.next/server/app/api/sync/cloud/route.js.nft.json +1 -1
  215. package/app/.next/server/app/api/sync/initialize/route.js.nft.json +1 -1
  216. package/app/.next/server/app/api/sync/tokens/[id]/route.js.nft.json +1 -1
  217. package/app/.next/server/app/api/sync/tokens/route.js.nft.json +1 -1
  218. package/app/.next/server/app/api/synced-available-models/route.js.nft.json +1 -1
  219. package/app/.next/server/app/api/system/env/repair/route.js.nft.json +1 -1
  220. package/app/.next/server/app/api/system/version/route.js +1 -1
  221. package/app/.next/server/app/api/system/version/route.js.nft.json +1 -1
  222. package/app/.next/server/app/api/token-health/route.js.nft.json +1 -1
  223. package/app/.next/server/app/api/translator/save/route.js.nft.json +1 -1
  224. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  225. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  226. package/app/.next/server/app/api/tunnels/cloudflared/route.js.nft.json +1 -1
  227. package/app/.next/server/app/api/tunnels/tailscale/check/route.js.nft.json +1 -1
  228. package/app/.next/server/app/api/tunnels/tailscale/disable/route.js.nft.json +1 -1
  229. package/app/.next/server/app/api/tunnels/tailscale/enable/route.js.nft.json +1 -1
  230. package/app/.next/server/app/api/tunnels/tailscale/install/route.js.nft.json +1 -1
  231. package/app/.next/server/app/api/tunnels/tailscale/login/route.js.nft.json +1 -1
  232. package/app/.next/server/app/api/tunnels/tailscale/route.js.nft.json +1 -1
  233. package/app/.next/server/app/api/tunnels/tailscale/start-daemon/route.js.nft.json +1 -1
  234. package/app/.next/server/app/api/upstream-proxy/[providerId]/route.js.nft.json +1 -1
  235. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  236. package/app/.next/server/app/api/usage/analytics/route.js.nft.json +1 -1
  237. package/app/.next/server/app/api/usage/budget/route.js.nft.json +1 -1
  238. package/app/.next/server/app/api/usage/call-logs/[id]/route.js.nft.json +1 -1
  239. package/app/.next/server/app/api/usage/call-logs/route.js.nft.json +1 -1
  240. package/app/.next/server/app/api/usage/combo-health/route.js +1 -1
  241. package/app/.next/server/app/api/usage/combo-health/route.js.nft.json +1 -1
  242. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  243. package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  244. package/app/.next/server/app/api/usage/provider-limits/route.js.nft.json +1 -1
  245. package/app/.next/server/app/api/usage/proxy-logs/route.js.nft.json +1 -1
  246. package/app/.next/server/app/api/usage/quota/route.js.nft.json +1 -1
  247. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  248. package/app/.next/server/app/api/usage/utilization/route.js.nft.json +1 -1
  249. package/app/.next/server/app/api/v1/accounts/[id]/limits/route.js.nft.json +1 -1
  250. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  251. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  252. package/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  253. package/app/.next/server/app/api/v1/batches/[id]/cancel/route.js.nft.json +1 -1
  254. package/app/.next/server/app/api/v1/batches/[id]/route.js.nft.json +1 -1
  255. package/app/.next/server/app/api/v1/batches/route.js.nft.json +1 -1
  256. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  257. package/app/.next/server/app/api/v1/completions/route.js.nft.json +1 -1
  258. package/app/.next/server/app/api/v1/db/health/route.js.nft.json +1 -1
  259. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  260. package/app/.next/server/app/api/v1/files/[id]/content/route.js.nft.json +1 -1
  261. package/app/.next/server/app/api/v1/files/[id]/route.js.nft.json +1 -1
  262. package/app/.next/server/app/api/v1/files/route.js.nft.json +1 -1
  263. package/app/.next/server/app/api/v1/images/edits/route.js.nft.json +1 -1
  264. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  265. package/app/.next/server/app/api/v1/issues/report/route.js.nft.json +1 -1
  266. package/app/.next/server/app/api/v1/management/proxies/assignments/route.js.nft.json +1 -1
  267. package/app/.next/server/app/api/v1/management/proxies/bulk-assign/route.js.nft.json +1 -1
  268. package/app/.next/server/app/api/v1/management/proxies/health/route.js.nft.json +1 -1
  269. package/app/.next/server/app/api/v1/management/proxies/route.js.nft.json +1 -1
  270. package/app/.next/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  271. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  272. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  273. package/app/.next/server/app/api/v1/moderations/route.js.nft.json +1 -1
  274. package/app/.next/server/app/api/v1/music/generations/route.js.nft.json +1 -1
  275. package/app/.next/server/app/api/v1/providers/[provider]/chat/completions/route.js.nft.json +1 -1
  276. package/app/.next/server/app/api/v1/providers/[provider]/embeddings/route.js.nft.json +1 -1
  277. package/app/.next/server/app/api/v1/providers/[provider]/images/generations/route.js.nft.json +1 -1
  278. package/app/.next/server/app/api/v1/providers/[provider]/limits/route.js.nft.json +1 -1
  279. package/app/.next/server/app/api/v1/quotas/check/route.js.nft.json +1 -1
  280. package/app/.next/server/app/api/v1/registered-keys/[id]/revoke/route.js.nft.json +1 -1
  281. package/app/.next/server/app/api/v1/registered-keys/[id]/route.js.nft.json +1 -1
  282. package/app/.next/server/app/api/v1/registered-keys/route.js.nft.json +1 -1
  283. package/app/.next/server/app/api/v1/rerank/route.js.nft.json +1 -1
  284. package/app/.next/server/app/api/v1/responses/[...path]/route.js.nft.json +1 -1
  285. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  286. package/app/.next/server/app/api/v1/route.js.nft.json +1 -1
  287. package/app/.next/server/app/api/v1/search/analytics/route.js.nft.json +1 -1
  288. package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -1
  289. package/app/.next/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  290. package/app/.next/server/app/api/v1/ws/route.js.nft.json +1 -1
  291. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  292. package/app/.next/server/app/api/v1beta/models/route.js.nft.json +1 -1
  293. package/app/.next/server/app/api/version-manager/check-update/route.js +1 -1
  294. package/app/.next/server/app/api/version-manager/check-update/route.js.nft.json +1 -1
  295. package/app/.next/server/app/api/version-manager/install/route.js +1 -1
  296. package/app/.next/server/app/api/version-manager/install/route.js.nft.json +1 -1
  297. package/app/.next/server/app/api/version-manager/restart/route.js +1 -1
  298. package/app/.next/server/app/api/version-manager/restart/route.js.nft.json +1 -1
  299. package/app/.next/server/app/api/version-manager/start/route.js +1 -1
  300. package/app/.next/server/app/api/version-manager/start/route.js.nft.json +1 -1
  301. package/app/.next/server/app/api/version-manager/status/route.js +1 -1
  302. package/app/.next/server/app/api/version-manager/status/route.js.nft.json +1 -1
  303. package/app/.next/server/app/api/version-manager/stop/route.js +1 -1
  304. package/app/.next/server/app/api/version-manager/stop/route.js.nft.json +1 -1
  305. package/app/.next/server/app/api/webhooks/[id]/route.js.nft.json +1 -1
  306. package/app/.next/server/app/api/webhooks/[id]/test/route.js.nft.json +1 -1
  307. package/app/.next/server/app/api/webhooks/route.js.nft.json +1 -1
  308. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  309. package/app/.next/server/app/docs/page.js +1 -1
  310. package/app/.next/server/app/docs/page_client-reference-manifest.js +1 -1
  311. package/app/.next/server/app/forbidden/page_client-reference-manifest.js +1 -1
  312. package/app/.next/server/app/forgot-password/page_client-reference-manifest.js +1 -1
  313. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  314. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  315. package/app/.next/server/app/maintenance/page_client-reference-manifest.js +1 -1
  316. package/app/.next/server/app/offline/page_client-reference-manifest.js +1 -1
  317. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  318. package/app/.next/server/app/privacy/page_client-reference-manifest.js +1 -1
  319. package/app/.next/server/app/status/page_client-reference-manifest.js +1 -1
  320. package/app/.next/server/app/terms/page_client-reference-manifest.js +1 -1
  321. package/app/.next/server/app-paths-manifest.json +15 -15
  322. package/app/.next/server/chunks/12767.js +1 -1
  323. package/app/.next/server/chunks/19849.js +1 -1
  324. package/app/.next/server/chunks/20236.js +1 -1
  325. package/app/.next/server/chunks/36040.js +4 -4
  326. package/app/.next/server/chunks/3832.js +1 -1
  327. package/app/.next/server/chunks/39548.js +1 -1
  328. package/app/.next/server/chunks/39859.js +1 -1
  329. package/app/.next/server/chunks/44088.js +1 -1
  330. package/app/.next/server/chunks/45415.js +1 -1
  331. package/app/.next/server/chunks/55672.js +1 -0
  332. package/app/.next/server/chunks/59092.js +2 -2
  333. package/app/.next/server/chunks/66094.js +1 -1
  334. package/app/.next/server/chunks/69105.js +1 -1
  335. package/app/.next/server/chunks/75225.js +1 -1
  336. package/app/.next/server/chunks/77044.js +1 -1
  337. package/app/.next/server/chunks/83648.js +1 -1
  338. package/app/.next/server/chunks/93831.js +4 -4
  339. package/app/.next/server/chunks/9679.js +3 -3
  340. package/app/.next/server/chunks/99168.js +2 -2
  341. package/app/.next/server/middleware-build-manifest.js +1 -1
  342. package/app/.next/server/middleware-react-loadable-manifest.js +1 -1
  343. package/app/.next/server/middleware.js +2 -2
  344. package/app/.next/server/pages/500.html +1 -1
  345. package/app/.next/server/server-reference-manifest.js +1 -1
  346. package/app/.next/server/server-reference-manifest.json +1 -1
  347. package/app/.next/static/chunks/{1999-fefe90c60eaa3b23.js → 1999-8cf58c233346f980.js} +1 -1
  348. package/app/.next/static/chunks/app/(dashboard)/dashboard/cache/media/page-ad8091c5b7536b7a.js +1 -0
  349. package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/page-ccc65d29bbb19d51.js +1 -0
  350. package/app/.next/static/chunks/app/{layout-3e3b043f9b52bb80.js → layout-fbebdd84c4996160.js} +1 -1
  351. package/app/.next/static/chunks/{webpack-117eac5998a94c69.js → webpack-ea5983ad4b51e934.js} +1 -1
  352. package/app/.next/static/css/7caa8a6802c65def.css +1 -0
  353. package/app/docs/openapi.yaml +1 -1
  354. package/app/open-sse/mcp-server/server.js +15 -1
  355. package/app/package.json +1 -1
  356. package/package.json +1 -1
  357. package/app/.next/server/chunks/80812.js +0 -1
  358. package/app/.next/static/chunks/app/(dashboard)/dashboard/cache/media/page-f0289617f824bbf2.js +0 -1
  359. package/app/.next/static/chunks/app/(dashboard)/dashboard/logs/page-f24fde8a3f731108.js +0 -1
  360. package/app/.next/static/css/8d36e4e21725013b.css +0 -1
  361. /package/app/.next/static/{yvJ6rPtn4eb7sOBUCBGrF → qmeYzerLcoUXZ06JXgit3}/_buildManifest.js +0 -0
  362. /package/app/.next/static/{yvJ6rPtn4eb7sOBUCBGrF → qmeYzerLcoUXZ06JXgit3}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[387],{31308:(e,a,t)=>{Promise.resolve().then(t.bind(t,92333))},50910:(e,a,t)=>{"use strict";t.d(a,{c:()=>r});var i=t(55510);function n(e,a){return(...e)=>{try{return a(...e)}catch{throw Error(void 0)}}}let r=n(0,i.c3);n(0,i.kc)},92333:(e,a,t)=>{"use strict";t.d(a,{default:()=>v});var i=t(95155),n=t(12115),r=t(50910),s=t(98500),l=t.n(s);let o={openai:{id:"openai",baseUrl:"https://api.openai.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"gpt-image-2",name:"GPT Image 2"},{id:"gpt-image-1.5",name:"GPT Image 1.5"},{id:"gpt-image-1-mini",name:"GPT Image 1 Mini"}],supportedSizes:["1024x1024","1024x1792","1792x1024"]},codex:{id:"codex",alias:"cx",baseUrl:"https://chatgpt.com/backend-api/codex/responses",authType:"oauth",authHeader:"bearer",format:"codex-responses",models:[{id:"gpt-5.5",name:"GPT 5.5 (Codex Image)"},{id:"gpt-5.4",name:"GPT 5.4 (Codex Image)"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex (Image)"}],supportedSizes:["1024x1024","1024x1536","1536x1024"]},"chatgpt-web":{id:"chatgpt-web",alias:"cgpt-web",baseUrl:"https://chatgpt.com/backend-api/f/conversation",authType:"apikey",authHeader:"cookie",format:"chatgpt-web",models:[{id:"gpt-5.3-instant",name:"GPT-5.3 Instant (ChatGPT Web Image)"}],supportedSizes:["1024x1024","1024x1536","1536x1024"]},xai:{id:"xai",baseUrl:"https://api.x.ai/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"grok-imagine-image",name:"Grok Imagine Image"}],supportedSizes:["1024x1024"]},together:{id:"together",baseUrl:"https://api.together.xyz/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/FLUX.2-max",name:"FLUX.2 Max",inputModalities:["text","image"]},{id:"black-forest-labs/FLUX.2-pro",name:"FLUX.2 Pro",inputModalities:["text","image"]},{id:"black-forest-labs/FLUX.2-flex",name:"FLUX.2 Flex",inputModalities:["text","image"]},{id:"black-forest-labs/FLUX.2-dev",name:"FLUX.2 Dev",inputModalities:["text","image"]},{id:"openai/gpt-image-1.5",name:"GPT Image 1.5",inputModalities:["text","image"]},{id:"Wan-AI/Wan2.6-image",name:"Wan 2.6 Image",inputModalities:["text","image"]},{id:"Qwen/Qwen-Image-2.0-Pro",name:"Qwen Image 2.0 Pro",inputModalities:["text","image"]},{id:"Qwen/Qwen-Image-2.0",name:"Qwen Image 2.0",inputModalities:["text","image"]},{id:"google/flash-image-3.1",name:"NanoBanana 2",inputModalities:["text","image"]},{id:"google/gemini-3-pro-image",name:"NanoBanana Pro",inputModalities:["text","image"]}],supportedSizes:["1024x1024","512x512"]},fireworks:{id:"fireworks",baseUrl:"https://api.fireworks.ai/inference/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"accounts/fireworks/flux-kontext-max",name:"FLUX Kontext Max"},{id:"accounts/fireworks/flux-kontext-pro",name:"FLUX Kontext Pro"},{id:"accounts/fireworks/flux-1-schnell-fp8",name:"FLUX.1 schnell"},{id:"accounts/fireworks/models/flux-1-dev-fp8",name:"FLUX 1 Dev FP8"},{id:"accounts/fireworks/models/stable-diffusion-xl-1024-v1-0",name:"SDXL 1024 v1.0"}],supportedSizes:["1024x1024","512x512"]},antigravity:{id:"antigravity",baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"oauth",authHeader:"bearer",format:"gemini-image",models:[],supportedSizes:["1024x1024"]},nebius:{id:"nebius",baseUrl:"https://api.tokenfactory.nebius.com/v1/images/generations",fallbackUrl:"https://api.studio.nebius.com/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"black-forest-labs/flux-schnell",name:"No Model yet"}],supportedSizes:["1024x1024"]},hyperbolic:{id:"hyperbolic",baseUrl:"https://api.hyperbolic.xyz/v1/image/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"SDXL1.0-base",name:"No Model yet"}],supportedSizes:["1024x1024"]},nanobanana:{id:"nanobanana",baseUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",proUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/generate-pro",statusUrl:"https://api.nanobananaapi.ai/api/v1/nanobanana/record-info",authType:"apikey",authHeader:"bearer",format:"nanobanana",models:[{id:"nanobanana-flash",name:"NanoBanana Flash (Gemini 2.5 Flash)"},{id:"nanobanana-pro",name:"NanoBanana Pro (Gemini 3 Pro)"}],supportedSizes:["1024x1024","1024x1280","1024x1536","1536x1024","1280x1024"]},sdwebui:{id:"sdwebui",baseUrl:"http://localhost:7860/sdapi/v1/txt2img",authType:"none",authHeader:"none",format:"sdwebui",models:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5"},{id:"sdxl-base-1.0",name:"SDXL Base 1.0"}],supportedSizes:["512x512","768x768","1024x1024"]},comfyui:{id:"comfyui",baseUrl:"http://localhost:8188",authType:"none",authHeader:"none",format:"comfyui",models:[{id:"flux-dev",name:"FLUX Dev"},{id:"sdxl",name:"SDXL"}],supportedSizes:["512x512","768x768","1024x1024"]},openrouter:{id:"openrouter",baseUrl:"https://openrouter.ai/api/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"openai/gpt-5.4-image-2",name:"GPT Image 2 (via OpenRouter)"},{id:"openai/gpt-5-image-mini",name:"GPT Image 1 Mini (via OpenRouter)"},{id:"google/gemini-3.1-flash-image-preview",name:"Nano Banana 2 (via OpenRouter)"},{id:"google/gemini-3-pro-image-preview",name:"Nano Banana Pro (via OpenRouter)"},{id:"black-forest-labs/flux.2-max",name:"FLUX.2 Max (via OpenRouter)"},{id:"black-forest-labs/flux.2-pro",name:"FLUX.2 Pro (via OpenRouter)"},{id:"black-forest-labs/flux.2-flex",name:"FLUX.2 Flex (via OpenRouter)"}],supportedSizes:["1024x1024","1024x1792","1792x1024"]},pollinations:{id:"pollinations",alias:"pol",baseUrl:"https://gen.pollinations.ai/v1/images/generations",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"klein",name:"FLUX.2 Klein 4B"},{id:"flux",name:"Flux Schnell"},{id:"zimage",name:"Z-Image Turbo"},{id:"qwen-image",name:"Qwen Image Plus"},{id:"wan-image",name:"Wan 2.7 Image"},{id:"gpt-image-2",name:"GPT Image 2"},{id:"gptimage-large",name:"GPT Image 1.5"},{id:"gptimage",name:"GPT Image 1 Mini"}],supportedSizes:["1024x1024","512x512"]},"fal-ai":{id:"fal-ai",baseUrl:"https://fal.run",authType:"apikey",authHeader:"key",format:"fal-ai",models:[{id:"fal-ai/flux-2-max",name:"FLUX.2 Max"},{id:"fal-ai/flux-2-pro",name:"FLUX.2 Pro"},{id:"fal-ai/flux-2-flex",name:"FLUX.2 Flex"},{id:"bria/text-to-image/3.2",name:"Bria 3.2"},{id:"fal-ai/bytedance/seedream/v4.5/text-to-image",name:"SeeDream V4.5"},{id:"fal-ai/bytedance/dreamina/v3.1/text-to-image",name:"Dreamina V3.1"},{id:"fal-ai/ideogram/v3",name:"Ideogram V3"},{id:"fal-ai/nano-banana-pro",name:"Nano Banana Pro"},{id:"fal-ai/nano-banana-2",name:"Nano Banana 2"},{id:"fal-ai/recraft/v4/pro/text-to-image",name:"Recraft V4 Pro via Fal"},{id:"fal-ai/recraft/v4/text-to-image",name:"Recraft V4 via Fal"},{id:"fal-ai/stable-diffusion-v35-medium",name:"Stable Diffusion v3.5 Medium"}],supportedSizes:["1024x1024","1024x1280","1280x1024"]},"stability-ai":{id:"stability-ai",baseUrl:"https://api.stability.ai",authType:"apikey",authHeader:"bearer",format:"stability-ai",models:[{id:"stable-image-ultra",name:"Stable Image Ultra"},{id:"stable-image-core",name:"Stable Image Core"},{id:"sd3.5-large-turbo",name:"sd3.5-large-turbo"},{id:"sd3.5-large",name:"sd3.5-large"},{id:"sd3.5-medium",name:"sd3.5-medium"},{id:"sd3.5-flash",name:"sd3.5-flash"},{id:"erase",name:"Erase",inputModalities:["image"]},{id:"inpaint",name:"Inpaint",inputModalities:["text","image"]},{id:"outpaint",name:"Outpaint",inputModalities:["text","image"]},{id:"remove-background",name:"Remove Background",inputModalities:["image"]},{id:"search-and-replace",name:"Search and Replace",inputModalities:["text","image"]},{id:"search-and-recolor",name:"Search and Recolor",inputModalities:["text","image"]},{id:"replace-background-and-relight",name:"Replace Background and Relight",inputModalities:["text","image"]},{id:"creative",name:"Creative Upscale",inputModalities:["text","image"]},{id:"fast",name:"Fast Upscale",inputModalities:["image"]},{id:"conservative",name:"Conservative Upscale",inputModalities:["image"]},{id:"sketch",name:"Sketch Control",inputModalities:["text","image"]},{id:"structure",name:"Structure Control",inputModalities:["text","image"]},{id:"style",name:"Style Control",inputModalities:["text","image"]},{id:"style-transfer",name:"Style Transfer",inputModalities:["text","image"]}],supportedSizes:["1024x1024","1024x1280","1280x1024"]},"black-forest-labs":{id:"black-forest-labs",baseUrl:"https://api.bfl.ai",authType:"apikey",authHeader:"x-key",format:"black-forest-labs",models:[{id:"flux-2-max",name:"FLUX.2 Max"},{id:"flux-2-pro",name:"FLUX.2 Pro"},{id:"flux-2-flex",name:"FLUX.2 Flex"},{id:"flux-pro-1.1-ultra",name:"flux-pro-1.1-ultra"},{id:"flux-pro-1.1",name:"flux-pro-1.1"},{id:"flux-2-klein-9b",name:"flux 2 Klein 9B"},{id:"flux-2-klein-4b",name:"flux 2 Klein 4B"},{id:"flux-kontext-max",name:"flux-kontext-max",inputModalities:["text","image"]},{id:"flux-kontext-pro",name:"flux-kontext-pro",inputModalities:["text","image"]},{id:"flux-dev",name:"flux-dev"},{id:"flux-pro",name:"flux-pro"}],supportedSizes:["1024x1024","1024x1280","1280x1024"]},recraft:{id:"recraft",baseUrl:"https://external.api.recraft.ai",authType:"apikey",authHeader:"bearer",format:"recraft",models:[{id:"recraftv4_pro",name:"Recraft V4 Pro"},{id:"recraftv4",name:"Recraft V4"},{id:"recraftv3",name:"Recraft V3"},{id:"recraftv2",name:"Recraft V2"}],supportedSizes:["1024x1024","1024x1280","1280x1024"]},topaz:{id:"topaz",baseUrl:"https://api.topazlabs.com",authType:"apikey",authHeader:"x-api-key",format:"topaz",models:[{id:"topaz-enhance",name:"topaz-enhance",inputModalities:["image"]}],supportedSizes:["1024x1024"]}},d=t(20909).Q2,m=Object.entries(o).map(([e,a])=>({id:e,name:d[e]?.name||e,models:a.models.map(a=>({id:`${e}/${a.id}`,name:a.name}))})),p={image:{icon:"image",endpoint:"/api/v1/images/generations",label:"Image Generation",placeholder:"A serene landscape with mountains at sunset...",color:"from-purple-500 to-pink-500",needsCredentials:Object.entries(o).filter(([,e])=>"none"!==e.authType).map(([e])=>e)},video:{icon:"videocam",endpoint:"/api/v1/videos/generations",label:"Video Generation",placeholder:"A timelapse of a flower blooming...",color:"from-blue-500 to-cyan-500",needsCredentials:[]},music:{icon:"music_note",endpoint:"/api/v1/music/generations",label:"Music Generation",placeholder:"Upbeat electronic music with synth pads...",color:"from-orange-500 to-yellow-500",needsCredentials:[]},speech:{icon:"record_voice_over",endpoint:"/api/v1/audio/speech",label:"Text to Speech",placeholder:"Hello! Welcome to OmniRoute, your intelligent AI gateway...",color:"from-green-500 to-teal-500",textLabel:"Text",needsCredentials:["openai","elevenlabs","deepgram"]},transcription:{icon:"mic",endpoint:"/api/v1/audio/transcriptions",label:"Transcription",placeholder:"Upload an audio file to transcribe...",color:"from-indigo-500 to-blue-500",needsCredentials:["deepgram","groq","openai"]}},c={image:m,video:[{id:"comfyui",name:"ComfyUI",models:[{id:"comfyui/animatediff",name:"AnimateDiff"},{id:"comfyui/svd",name:"Stable Video Diffusion"}]},{id:"sdwebui",name:"SD WebUI",models:[{id:"sdwebui/animatediff",name:"AnimateDiff (Local)"}]}],music:[{id:"comfyui",name:"ComfyUI",models:[{id:"comfyui/stable-audio",name:"Stable Audio Open"},{id:"comfyui/musicgen",name:"MusicGen"}]}],speech:[{id:"openai",name:"OpenAI",models:[{id:"openai/tts-1",name:"TTS-1"},{id:"openai/tts-1-hd",name:"TTS-1 HD"},{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS"}]},{id:"elevenlabs",name:"ElevenLabs",models:[{id:"elevenlabs/eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"elevenlabs/eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]},{id:"deepgram",name:"Deepgram",models:[{id:"deepgram/aura-asteria-en",name:"Aura Asteria (EN)"},{id:"deepgram/aura-luna-en",name:"Aura Luna (EN)"},{id:"deepgram/aura-stella-en",name:"Aura Stella (EN)"}]},{id:"hyperbolic",name:"Hyperbolic",models:[{id:"hyperbolic/melo-tts",name:"Melo TTS"}]},{id:"nvidia",name:"NVIDIA NIM",models:[{id:"nvidia/fastpitch",name:"FastPitch"},{id:"nvidia/tacotron2",name:"Tacotron2"}]},{id:"inworld",name:"Inworld",models:[{id:"inworld/inworld-tts-1.5-max",name:"Inworld TTS Max"},{id:"inworld/inworld-tts-1.5-mini",name:"Inworld TTS Mini"}]},{id:"cartesia",name:"Cartesia",models:[{id:"cartesia/sonic-2",name:"Sonic 2"},{id:"cartesia/sonic-3",name:"Sonic 3"}]},{id:"playht",name:"PlayHT",models:[{id:"playht/PlayDialog",name:"PlayDialog"},{id:"playht/Play3.0-mini",name:"Play3.0 Mini"}]},{id:"huggingface",name:"HuggingFace",models:[{id:"huggingface/espnet/kan-bayashi_ljspeech_vits",name:"VITS LJSpeech"}]},{id:"qwen",name:"Qwen",models:[{id:"qwen/qwen3-tts",name:"Qwen3 TTS"}]}],transcription:[{id:"deepgram",name:"Deepgram ($200 free)",models:[{id:"deepgram/nova-3",name:"Nova 3 (Best)"},{id:"deepgram/nova-2",name:"Nova 2"},{id:"deepgram/enhanced",name:"Enhanced"},{id:"deepgram/base",name:"Base"}]},{id:"assemblyai",name:"AssemblyAI ($50 free)",models:[{id:"assemblyai/universal-3-pro",name:"Universal 3 Pro (Best)"},{id:"assemblyai/universal-2",name:"Universal 2"},{id:"assemblyai/nano",name:"Nano (Fast)"}]},{id:"groq",name:"Groq (Free — Whisper)",models:[{id:"groq/whisper-large-v3",name:"Whisper Large v3 (Free)"},{id:"groq/whisper-large-v3-turbo",name:"Whisper Turbo (Free)"}]},{id:"openai",name:"OpenAI",models:[{id:"openai/whisper-1",name:"Whisper 1"},{id:"openai/gpt-4o-transcription",name:"GPT-4o Transcription"}]},{id:"nvidia",name:"NVIDIA NIM",models:[{id:"nvidia/nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B"}]},{id:"huggingface",name:"HuggingFace",models:[{id:"huggingface/openai/whisper-large-v3",name:"Whisper Large v3 (HF)"}]},{id:"qwen",name:"Qwen",models:[{id:"qwen/qwen3-asr",name:"Qwen3 ASR"}]}]},u={default:[{id:"alloy",label:"Alloy"},{id:"echo",label:"Echo"},{id:"fable",label:"Fable"},{id:"onyx",label:"Onyx"},{id:"nova",label:"Nova"},{id:"shimmer",label:"Shimmer"}],elevenlabs:[{id:"21m00Tcm4TlvDq8ikWAM",label:"Rachel (EN)"},{id:"AZnzlk1XvdvUeBnXmlld",label:"Domi (EN)"},{id:"EXAVITQu4vr4xnSDxMaL",label:"Bella (EN)"},{id:"ErXwobaYiN019PkySvjV",label:"Antoni (EN)"},{id:"MF3mGyEYCl7XYWbV9V6O",label:"Elli (EN)"},{id:"TxGEqnHWrfWFTfGW9XjX",label:"Josh (EN)"},{id:"VR6AewLTigWG4xSOukaG",label:"Arnold (EN)"},{id:"pNInz6obpgDQGcFmaJgB",label:"Adam (EN)"},{id:"yoZ06aMxZJJ28mfd3POQ",label:"Sam (EN)"}],cartesia:[{id:"a0e99841-438c-4a64-b679-ae501e7d6091",label:"Barbershop Man"},{id:"694f9389-aac1-45b6-b726-9d9369183238",label:"Friendly Reading Man"},{id:"b7d50908-b17c-442d-ad8d-810c63997ed9",label:"California Girl"}],deepgram:[{id:"aura-asteria-en",label:"Asteria (EN)"},{id:"aura-luna-en",label:"Luna (EN)"},{id:"aura-stella-en",label:"Stella (EN)"},{id:"aura-zeus-en",label:"Zeus (EN)"},{id:"aura-orion-en",label:"Orion (EN)"}],inworld:[{id:"Eva",label:"Eva (EN)"},{id:"Marcus",label:"Marcus (EN)"}]},x=["mp3","wav","opus","flac","pcm"];function g(e){return u[e]??u.default}function f(e,a){let t=e?.error?.message||e?.err_msg||e?.error||e?.message||e?.detail||("string"==typeof e?e:null)||`Request failed (${a})`,i="string"==typeof t&&(t.toLowerCase().includes("no credentials")||t.toLowerCase().includes("invalid api key")||t.toLowerCase().includes("unauthorized")||t.toLowerCase().includes("authentication")||t.toLowerCase().includes("api key")||401===a||403===a);return{message:String(t),isCredentials:i}}function b(e){return e<1024?`${e} B`:e<1048576?`${(e/1024).toFixed(0)} KB`:e<0x40000000?`${(e/1048576).toFixed(1)} MB`:`${(e/0x40000000).toFixed(2)} GB`}function h(e){return new Promise((a,t)=>{let i=new FileReader;i.onload=()=>{"string"==typeof i.result?a(i.result):t(Error("Failed to read file"))},i.onerror=()=>t(i.error||Error("Failed to read file")),i.readAsDataURL(e)})}function y({data:e}){let a=e?.data||[];return 0===a.length?(0,i.jsx)("p",{className:"text-sm text-text-muted italic",children:"No images returned. The provider might have accepted the request but returned empty data."}):(0,i.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:a.map((e,a)=>{let t=e.url||(e.b64_json?`data:image/png;base64,${e.b64_json}`:null);return t?(0,i.jsxs)("div",{className:"relative group rounded-lg overflow-hidden border border-black/10 dark:border-white/10",children:[(0,i.jsx)("img",{src:t,alt:e.revised_prompt||`Generated image ${a+1}`,className:"w-full"}),(0,i.jsxs)("a",{href:t,download:`image-${a+1}.png`,className:"absolute bottom-2 right-2 bg-black/60 text-white text-xs px-2 py-1 rounded opacity-0 group-hover:opacity-100 transition-opacity flex items-center gap-1",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"download"}),"Save"]}),e.revised_prompt&&(0,i.jsx)("p",{className:"text-[11px] text-text-muted px-2 py-1 bg-surface/80 truncate",title:e.revised_prompt,children:e.revised_prompt})]},a):null})})}function v(){let e=(0,r.c)("media"),[a,t]=(0,n.useState)("image"),[s,o]=(0,n.useState)(""),[d,m]=(0,n.useState)(""),[u,v]=(0,n.useState)(""),[w,k]=(0,n.useState)(!1),[N,j]=(0,n.useState)(null),[S,T]=(0,n.useState)(null),[U,P]=(0,n.useState)(!1),[F,M]=(0,n.useState)("alloy"),[I,z]=(0,n.useState)("mp3"),[L,C]=(0,n.useState)(null),[E,A]=(0,n.useState)(null),[G,D]=(0,n.useState)(null),[O,X]=(0,n.useState)(null),_=["sdwebui","comfyui"],[R,B]=(0,n.useState)(new Set(_));(0,n.useEffect)(()=>{fetch("/api/providers").then(e=>e.json()).then(e=>{let a=Array.isArray(e)?e:e?.connections??e?.providers??[],t=new Set;for(let e of a){let a=e?.provider;a&&_.includes(a)&&t.add(a)}t.size>0?B(t):B(new Set)}).catch(()=>{})},[]);let H=(c[a]??[]).filter(e=>!_.includes(e.id)||R.has(e.id)),$=H.find(e=>e.id===d)?.models??[],V=(0,n.useRef)(!1);if(!V.current){V.current=!0;let e=(c.image??[])[0];m(e?.id??""),v(e?.models[0]?.id??"")}let q=async()=>{k(!0),T(null),P(!1),j(null);try{let e=p[a],t=s.trim();if("speech"===a){if(!t){T("Please enter text to synthesize."),k(!1);return}let a=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:u,input:t,voice:F,response_format:I})});if(!a.ok){let e=await a.json().catch(()=>({})),{message:t,isCredentials:i}=f(e,a.status);throw P(i),Error(t)}let i=await a.blob(),n=URL.createObjectURL(i);j({type:"speech",data:{format:I},timestamp:Date.now(),audioUrl:n}),k(!1);return}if("transcription"===a){if(!L){T("Please select an audio file to transcribe."),k(!1);return}let a=new FormData;a.append("file",L),a.append("model",u);let t=await fetch(e.endpoint,{method:"POST",body:a});if(!t.ok){let e=await t.json().catch(()=>({})),{message:a,isCredentials:i}=f(e,t.status);throw P(i),Error(a)}let i=await t.json();if(i?.noSpeechDetected){T(`No speech detected in the audio file. If you uploaded music or a silent file, try an audio file with spoken words. Provider: "${d}".`),P(!1),k(!1);return}if(i&&"string"==typeof i.text&&""===i.text.trim()){T(`Transcription returned empty text. The audio may contain no recognizable speech, or the "${d}" API key may be invalid. Check Dashboard → Logs → Proxy for details.`),P(!1),k(!1);return}j({type:"transcription",data:i,timestamp:Date.now()}),k(!1);return}if("image"===a&&"topaz"===d&&!G){T("Topaz requires an input image."),k(!1);return}if(!s.trim()&&("image"!==a||"topaz"!==d)){T("Please enter a prompt."),k(!1);return}let i={model:u,prompt:t||("image"===a&&"topaz"===d?"Enhance this image":""),..."image"===a?{size:"1024x1024",n:1}:{}};if("image"===a&&G){let e=await h(G);i.image_url=e,i.imageUrls=[e]}if("image"===a&&O){let e=await h(O);i.mask=e,i.mask_url=e}let n=await fetch(e.endpoint,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(!n.ok){let e=await n.json().catch(()=>({})),{message:a,isCredentials:t}=f(e,n.status);throw P(t),Error(a)}let r=await n.json();j({type:a,data:r,timestamp:Date.now()})}catch(e){T(e.message||"Generation failed")}k(!1)},W=p[a],Q=g(d),J="image"===a&&"topaz"===d,K=w||("transcription"===a?!L:"image"===a&&J?!G:!s.trim());return(0,i.jsxs)("div",{className:"space-y-6",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("h1",{className:"text-2xl font-bold text-text-main",children:e("title")}),(0,i.jsx)("p",{className:"text-text-muted text-sm mt-1",children:e("subtitle")})]}),(0,i.jsx)("div",{className:"flex flex-wrap gap-2 p-1 bg-surface/50 rounded-xl border border-black/5 dark:border-white/5",children:Object.keys(p).map(e=>{let n=p[e],r=e===a;return(0,i.jsxs)("button",{onClick:()=>{let a;return t(e),o(""),j(null),T(null),P(!1),C(null),D(null),X(null),a=(c[e]??[])[0],void(m(a?.id??""),v(a?.models[0]?.id??""),"speech"===e&&M(g(a?.id??"")[0]?.id??"alloy"))},className:`flex-1 min-w-[110px] flex items-center justify-center gap-2 px-4 py-2.5 rounded-lg text-sm font-medium transition-all ${r?"bg-primary/10 text-primary shadow-sm border border-primary/20":"text-text-muted hover:text-text-main hover:bg-surface/80"}`,children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:n.icon}),n.label]},e)})}),(0,i.jsxs)("div",{className:"bg-surface/30 rounded-xl border border-black/5 dark:border-white/5 p-6 space-y-4",children:[(0,i.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{className:"block text-sm font-medium text-text-main mb-2",children:"Provider"}),(0,i.jsx)("select",{value:d,onChange:e=>{var t;let i;return m(t=e.target.value),i=c[a]?.find(e=>e.id===t)?.models??[],void(v(i[0]?.id??""),"speech"===a&&M(g(t)[0]?.id??"alloy"))},className:"w-full px-3 py-2 rounded-lg bg-surface border border-black/10 dark:border-white/10 text-text-main text-sm focus:outline-none focus:ring-2 focus:ring-primary/30",children:H.map(e=>(0,i.jsx)("option",{value:e.id,children:e.name},e.id))})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{className:"block text-sm font-medium text-text-main mb-2",children:e("model")}),(0,i.jsx)("select",{value:u,onChange:e=>v(e.target.value),className:"w-full px-3 py-2 rounded-lg bg-surface border border-black/10 dark:border-white/10 text-text-main text-sm focus:outline-none focus:ring-2 focus:ring-primary/30",children:$.map(e=>(0,i.jsx)("option",{value:e.id,children:e.name},e.id))})]})]}),d&&!["sdwebui","comfyui","qwen"].includes(d)&&(0,i.jsxs)("p",{className:"text-xs text-text-muted flex items-center gap-1.5",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[14px] text-amber-500",children:"info"}),"Requires ",(0,i.jsx)("strong",{className:"capitalize",children:d})," API key in"," ",(0,i.jsx)(l(),{href:"/dashboard/providers",className:"text-primary underline underline-offset-2 hover:text-primary/80",children:"Providers"})]}),"speech"===a&&(0,i.jsxs)("div",{className:"grid grid-cols-2 gap-4",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{className:"block text-sm font-medium text-text-main mb-2",children:"Voice"}),(0,i.jsx)("select",{value:F,onChange:e=>M(e.target.value),className:"w-full px-3 py-2 rounded-lg bg-surface border border-black/10 dark:border-white/10 text-text-main text-sm focus:outline-none focus:ring-2 focus:ring-primary/30",children:Q.map(e=>(0,i.jsx)("option",{value:e.id,children:e.label},e.id))})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{className:"block text-sm font-medium text-text-main mb-2",children:"Format"}),(0,i.jsx)("select",{value:I,onChange:e=>z(e.target.value),className:"w-full px-3 py-2 rounded-lg bg-surface border border-black/10 dark:border-white/10 text-text-main text-sm focus:outline-none focus:ring-2 focus:ring-primary/30",children:x.map(e=>(0,i.jsx)("option",{value:e,children:e},e))})]})]}),"transcription"===a?(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{className:"block text-sm font-medium text-text-main mb-2",children:"Audio / Video File"}),(0,i.jsx)("input",{type:"file",accept:"audio/*,video/*",onChange:e=>{let a=e.target.files?.[0]??null;if(A(null),a&&a.size>0x100000000){A(`File too large (${b(a.size)}). Maximum allowed: 4 GB.`),C(null),e.target.value="";return}C(a)},className:"w-full px-3 py-2 rounded-lg bg-surface border border-black/10 dark:border-white/10 text-text-main text-sm focus:outline-none focus:ring-2 focus:ring-primary/30 file:mr-3 file:py-1 file:px-3 file:rounded file:border-0 file:bg-primary/10 file:text-primary file:text-sm"}),E&&(0,i.jsxs)("p",{className:"text-xs text-red-400 mt-1 flex items-center gap-1",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"error"}),E]}),L&&!E&&(0,i.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:[L.name," (",b(L.size),")"]}),(0,i.jsx)("p",{className:"text-[10px] text-text-muted/60 mt-1",children:"Supports audio and video files up to 4 GB"})]}):(0,i.jsxs)(i.Fragment,{children:["image"===a&&(0,i.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{className:"block text-sm font-medium text-text-main mb-2",children:"Source Image"}),(0,i.jsx)("input",{type:"file",accept:"image/*",onChange:e=>D(e.target.files?.[0]??null),className:"w-full px-3 py-2 rounded-lg bg-surface border border-black/10 dark:border-white/10 text-text-main text-sm focus:outline-none focus:ring-2 focus:ring-primary/30 file:mr-3 file:py-1 file:px-3 file:rounded file:border-0 file:bg-primary/10 file:text-primary file:text-sm"}),G&&(0,i.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:[G.name," (",b(G.size),")"]}),(0,i.jsx)("p",{className:"text-[10px] text-text-muted/60 mt-1",children:"Optional for image-to-image, editing and upscale workflows."})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{className:"block text-sm font-medium text-text-main mb-2",children:"Mask Image"}),(0,i.jsx)("input",{type:"file",accept:"image/*",onChange:e=>X(e.target.files?.[0]??null),className:"w-full px-3 py-2 rounded-lg bg-surface border border-black/10 dark:border-white/10 text-text-main text-sm focus:outline-none focus:ring-2 focus:ring-primary/30 file:mr-3 file:py-1 file:px-3 file:rounded file:border-0 file:bg-primary/10 file:text-primary file:text-sm"}),O&&(0,i.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:[O.name," (",b(O.size),")"]}),(0,i.jsx)("p",{className:"text-[10px] text-text-muted/60 mt-1",children:"Optional. Used by inpaint-style models that support masks."})]})]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("label",{className:"block text-sm font-medium text-text-main mb-2",children:"speech"===a?"Text":"image"===a&&"topaz"===d?"Prompt (optional)":e("prompt")}),(0,i.jsx)("textarea",{rows:3,value:s,onChange:e=>o(e.target.value),placeholder:"image"===a&&"topaz"===d?"Optional enhancement instructions...":W.placeholder,className:"w-full px-3 py-2 rounded-lg bg-surface border border-black/10 dark:border-white/10 text-text-main text-sm placeholder:text-text-muted/50 focus:outline-none focus:ring-2 focus:ring-primary/30 resize-none"})]})]}),(0,i.jsx)("button",{onClick:q,disabled:K,className:`w-full flex items-center justify-center gap-2 px-4 py-3 rounded-lg text-white font-medium transition-all bg-gradient-to-r ${W.color} ${K?"opacity-50 cursor-not-allowed":"hover:opacity-90 hover:shadow-lg"}`,children:w?(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:"material-symbols-outlined animate-spin text-[18px]",children:"progress_activity"}),"speech"===a?"Synthesizing...":"transcription"===a?"Transcribing...":e("generating")]}):(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"speech"===a?"volume_up":"transcription"===a?"mic":"auto_awesome"}),"speech"===a?"Synthesize Speech":"transcription"===a?"Transcribe Audio":`${e("generate")} ${W.label}`]})})]}),S&&(0,i.jsxs)("div",{className:`rounded-xl p-4 flex items-start gap-3 ${U?"bg-amber-500/10 border border-amber-500/20":"bg-red-500/10 border border-red-500/20"}`,children:[(0,i.jsx)("span",{className:`material-symbols-outlined text-[20px] mt-0.5 ${U?"text-amber-500":"text-red-500"}`,children:U?"key":"error"}),(0,i.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,i.jsx)("p",{className:`text-sm font-medium ${U?"text-amber-500":"text-red-500"}`,children:U?"API Key Required":e("error")}),(0,i.jsx)("p",{className:"text-sm text-text-muted mt-1 break-words",children:S}),U&&(0,i.jsxs)(l(),{href:"/dashboard/providers",className:"inline-flex items-center gap-1 mt-2 text-xs text-primary hover:underline",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"open_in_new"}),"Configure API keys in Providers →"]})]})]}),N&&(0,i.jsxs)("div",{className:"bg-surface/30 rounded-xl border border-black/5 dark:border-white/5 p-6",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 mb-4",children:[(0,i.jsx)("span",{className:`material-symbols-outlined text-[20px] bg-gradient-to-r ${W.color} bg-clip-text text-transparent`,children:W.icon}),(0,i.jsx)("h3",{className:"text-sm font-medium text-text-main",children:e("result")}),(0,i.jsx)("span",{className:"text-xs text-text-muted ml-auto",children:new Date(N.timestamp).toLocaleTimeString()})]}),"speech"===N.type&&N.audioUrl?(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsx)("audio",{controls:!0,src:N.audioUrl,className:"w-full rounded-lg",autoPlay:!0}),(0,i.jsxs)("a",{href:N.audioUrl,download:`speech.${N.data?.format||"mp3"}`,className:"inline-flex items-center gap-2 text-sm text-primary hover:underline",children:[(0,i.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"download"}),"Download ",N.data?.format?.toUpperCase()||"MP3"]})]}):"image"===N.type?(0,i.jsx)(y,{data:N.data}):"transcription"===N.type?(0,i.jsxs)("div",{className:"space-y-3",children:[(0,i.jsx)("div",{className:"bg-surface rounded-lg p-4 text-sm text-text-main leading-relaxed whitespace-pre-wrap",children:N.data?.text||(0,i.jsx)("span",{className:"text-text-muted italic",children:"No text returned"})}),N.data?.words&&(0,i.jsxs)("details",{className:"mt-2",children:[(0,i.jsxs)("summary",{className:"text-xs text-text-muted cursor-pointer hover:text-text-main",children:["Word-level timestamps (",N.data.words.length," words)"]}),(0,i.jsx)("pre",{className:"bg-surface rounded mt-2 p-3 text-xs text-text-muted overflow-auto max-h-48 custom-scrollbar",children:JSON.stringify(N.data.words,null,2)})]})]}):(0,i.jsx)("pre",{className:"bg-surface rounded-lg p-4 text-xs text-text-muted overflow-auto max-h-96 custom-scrollbar",children:JSON.stringify(N.data,null,2)})]}),(0,i.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-5 gap-4",children:Object.keys(p).map(e=>{let a=p[e],t=c[e]?.length??0;return(0,i.jsxs)("div",{className:"bg-surface/30 rounded-xl border border-black/5 dark:border-white/5 p-4",children:[(0,i.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,i.jsx)("div",{className:`flex items-center justify-center size-8 rounded-lg bg-gradient-to-r ${a.color}`,children:(0,i.jsx)("span",{className:"material-symbols-outlined text-white text-[16px]",children:a.icon})}),(0,i.jsx)("span",{className:"text-sm font-medium text-text-main",children:a.label})]}),(0,i.jsxs)("p",{className:"text-xs text-text-muted",children:[t," providers"]}),(0,i.jsxs)("code",{className:"block mt-2 text-xs text-primary/70 bg-primary/5 rounded px-2 py-1",children:["POST ",a.endpoint]})]},e)})})]})}}},e=>{e.O(0,[5510,8500,7173,909,8441,3794,7358],()=>e(e.s=31308)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8013],{27071:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>v});var a=r(95155),l=r(12115),s=r(73321),o=r(40993),d=r(50910),n=r(32661);let c={debug:"text-gray-400",trace:"text-gray-500",info:"text-cyan-400",warn:"text-yellow-400",error:"text-red-400",fatal:"text-fuchsia-400"},i={debug:"bg-gray-500/10 border-gray-500/20",trace:"bg-gray-500/10 border-gray-500/20",info:"bg-cyan-500/10 border-cyan-500/20",warn:"bg-yellow-500/10 border-yellow-500/20",error:"bg-red-500/10 border-red-500/20",fatal:"bg-fuchsia-500/10 border-fuchsia-500/20"};function x(){let e=(0,d.c)("loggers"),[t,r]=(0,l.useState)([]),[s,o]=(0,l.useState)(!0),[x,m]=(0,l.useState)(null),[u,b]=(0,l.useState)("all"),[p,h]=(0,l.useState)(""),[v,g]=(0,l.useState)(!0),[f,j]=(0,l.useState)(null),[y,N]=(0,l.useState)(null),w=(0,l.useRef)(null),k=(0,l.useCallback)(async()=>{try{let e=new URLSearchParams;"all"!==u&&e.set("level",u),e.set("limit","500");let t=await fetch(`/api/logs/console?${e.toString()}`);if(!t.ok)throw Error(`HTTP ${t.status}`);let a=await t.json();r(a),j(new Date),m(null)}catch(e){m(e.message||"Failed to fetch logs")}finally{o(!1)}},[u]);(0,l.useEffect)(()=>{k();let e=setInterval(k,5e3);return()=>clearInterval(e)},[k]),(0,l.useEffect)(()=>{v&&w.current&&(w.current.scrollTop=w.current.scrollHeight)},[t,v]);let S=async(e,t)=>{let r=JSON.stringify(e,null,2);await (0,n.l)(r)?(m(null),N(t),setTimeout(()=>N(null),2e3)):m("Failed to copy log entry")},L=p?t.filter(e=>JSON.stringify(e).toLowerCase().includes(p.toLowerCase())):t;return(0,a.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,a.jsxs)("div",{className:"flex flex-wrap items-center gap-3 p-4 rounded-xl bg-[var(--color-surface)] border border-[var(--color-border)]",children:[(0,a.jsxs)("select",{value:u,onChange:e=>b(e.target.value),"aria-label":"Filter by log level",className:"px-3 py-2 rounded-lg text-sm bg-[var(--color-bg)] border border-[var(--color-border)] text-[var(--color-text-main)] focus:outline-2 focus:outline-[var(--color-accent)]",children:[(0,a.jsx)("option",{value:"all",children:e("allLevels")}),(0,a.jsx)("option",{value:"debug",children:"Debug+"}),(0,a.jsx)("option",{value:"info",children:"Info+"}),(0,a.jsx)("option",{value:"warn",children:"Warn+"}),(0,a.jsx)("option",{value:"error",children:"Error+"})]}),(0,a.jsx)("input",{type:"text",placeholder:"Search logs...",value:p,onChange:e=>h(e.target.value),"aria-label":"Search log entries",className:"flex-1 min-w-[200px] px-3 py-2 rounded-lg text-sm bg-[var(--color-bg)] border border-[var(--color-border)] text-[var(--color-text-main)] placeholder:text-[var(--color-text-muted)] focus:outline-2 focus:outline-[var(--color-accent)]"}),(0,a.jsxs)("button",{onClick:()=>g(!v),title:v?"Disable auto-scroll":"Enable auto-scroll",className:`px-3 py-2 rounded-lg text-sm font-medium border transition-colors ${v?"bg-cyan-500/15 text-cyan-400 border-cyan-500/30":"bg-[var(--color-bg)] text-[var(--color-text-muted)] border-[var(--color-border)]"}`,children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] align-middle mr-1",children:v?"vertical_align_bottom":"lock"}),"Auto-scroll"]}),(0,a.jsx)("button",{onClick:k,disabled:s,className:"px-3 py-2 rounded-lg text-sm font-medium bg-[var(--color-bg)] border border-[var(--color-border)] text-[var(--color-text-main)] hover:bg-[var(--color-bg-alt)] disabled:opacity-50 transition-colors",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] align-middle",children:"refresh"})}),(0,a.jsxs)("div",{className:"flex items-center gap-2 ml-auto text-xs text-[var(--color-text-muted)]",children:[(0,a.jsx)("span",{className:"inline-block w-2 h-2 rounded-full bg-green-500 animate-pulse"}),(0,a.jsxs)("span",{children:[L.length," entries"]}),(0,a.jsx)("span",{className:"text-[var(--color-text-muted)]/50",children:"•"}),(0,a.jsx)("span",{children:"Last 1h"}),f&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"text-[var(--color-text-muted)]/50",children:"•"}),(0,a.jsxs)("span",{children:["Updated ",f.toLocaleTimeString()]})]})]})]}),x&&(0,a.jsxs)("div",{className:"p-4 rounded-lg bg-red-500/10 border border-red-500/30 text-red-400 text-sm",role:"alert",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[16px] align-middle mr-2",children:"error"}),x,(0,a.jsx)("span",{className:"text-xs ml-2 opacity-70",children:"— Make sure the application is writing logs to file (APP_LOG_TO_FILE=true)"})]}),(0,a.jsxs)("div",{ref:w,className:"rounded-xl border border-[var(--color-border)] bg-[#0d1117] overflow-auto font-mono text-xs leading-relaxed",style:{maxHeight:"calc(100vh - 340px)",minHeight:"400px"},role:"log","aria-label":"Application console logs","aria-live":"polite",children:[(0,a.jsxs)("div",{className:"sticky top-0 z-10 px-4 py-2 bg-[#161b22] border-b border-[#30363d] flex items-center gap-2",children:[(0,a.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FF5F56]"}),(0,a.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FFBD2E]"}),(0,a.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#27C93F]"}),(0,a.jsx)("span",{className:"ml-3 text-[#8b949e] text-[11px]",children:"OmniRoute — Application Console"})]}),(0,a.jsxs)("div",{className:"p-3 space-y-px",children:[0!==L.length||s?L.map((e,t)=>{let r=(e.level||"info").toLowerCase(),l=c[r]||c.info,s=i[r]||"",o=e.component||e.module||"",d=e.msg||e.message||"";return(0,a.jsxs)("div",{className:`group flex items-start gap-2 px-2 py-1 rounded hover:bg-white/5 transition-colors ${"error"===r||"fatal"===r?"bg-red-500/5":""}`,children:[(0,a.jsx)("span",{className:"text-[#484f58] whitespace-nowrap shrink-0 select-none",children:(e=>{try{return new Date(e).toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3})}catch{return e}})(e.timestamp)}),(0,a.jsx)("span",{className:`inline-block px-1.5 py-0 rounded text-[10px] font-semibold uppercase border shrink-0 ${l} ${s}`,children:r.padEnd(5)}),o&&(0,a.jsxs)("span",{className:"text-purple-400/80 shrink-0",children:["[",o,"]"]}),(0,a.jsxs)("span",{className:"text-[#c9d1d9] flex-1 break-all",children:[d,e.correlationId&&(0,a.jsxs)("span",{className:"text-[#484f58] ml-2",children:["cid:",e.correlationId.slice(0,8)]})]}),(0,a.jsx)("button",{onClick:()=>S(e,t),title:"Copy log entry",className:"opacity-0 group-hover:opacity-100 transition-opacity shrink-0 text-[#8b949e] hover:text-white",children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:y===t?"check":"content_copy"})})]},t)}):(0,a.jsxs)("div",{className:"text-[#8b949e] text-center py-12",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[40px] block mb-2 opacity-30",children:"terminal"}),(0,a.jsx)("p",{children:e("noLogEntries")}),(0,a.jsx)("p",{className:"text-[10px] mt-1 opacity-60",children:"Ensure APP_LOG_TO_FILE=true is set in your .env file"})]}),s&&0===L.length&&(0,a.jsxs)("div",{className:"text-[#8b949e] text-center py-12",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[24px] animate-spin block mb-2",children:"progress_activity"}),"Loading logs..."]})]})]})]})}function m(e){let t=Math.max(0,Math.floor(e/1e3)),r=Math.floor(t/60),a=t%60;if(r<=0)return`${a}s`;if(r<60)return`${r}m ${a}s`;let l=Math.floor(r/60);return`${l}h ${r%60}m`}function u(){let e=(0,d.c)("logs"),[t,r]=(0,l.useState)([]),[s,o]=(0,l.useState)(!0),[n,c]=(0,l.useState)(null);return((0,l.useEffect)(()=>{let e=!1,t=async()=>{try{let t=await fetch("/api/logs/active",{cache:"no-store"});if(!t.ok)return;let a=await t.json();e||r(Array.isArray(a.activeRequests)?a.activeRequests:[])}catch(t){e||console.error("Failed to load active requests:",t)}finally{e||o(!1)}};t();let a=setInterval(t,3e3);return()=>{e=!0,clearInterval(a)}},[]),s||0!==t.length)?(0,a.jsxs)("div",{className:"rounded-xl border border-border bg-surface",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-4 border-b border-border px-4 py-3",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-sm font-semibold uppercase tracking-wide text-text-main",children:e("runningRequests")}),(0,a.jsx)("p",{className:"text-xs text-text-muted",children:e("runningRequestsDesc")})]}),(0,a.jsxs)("div",{className:"inline-flex items-center gap-2 rounded-full border border-emerald-500/30 bg-emerald-500/10 px-3 py-1 text-xs font-medium text-emerald-300",children:[(0,a.jsx)("span",{className:"h-2 w-2 rounded-full bg-emerald-400 animate-pulse"}),s?e("loading"):e("activeCount",{count:t.length})]})]}),(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:"min-w-full text-sm",children:[(0,a.jsx)("thead",{className:"bg-sidebar/40 text-left text-xs uppercase tracking-wide text-text-muted",children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:"px-4 py-3 font-medium",children:e("model")}),(0,a.jsx)("th",{className:"px-4 py-3 font-medium",children:e("provider")}),(0,a.jsx)("th",{className:"px-4 py-3 font-medium",children:e("account")}),(0,a.jsx)("th",{className:"px-4 py-3 font-medium",children:e("elapsed")}),(0,a.jsx)("th",{className:"px-4 py-3 font-medium",children:e("count")}),(0,a.jsx)("th",{className:"px-4 py-3 font-medium",children:e("payloads")})]})}),(0,a.jsx)("tbody",{children:t.map(t=>(0,a.jsxs)("tr",{className:"border-t border-border/60",children:[(0,a.jsx)("td",{className:"px-4 py-3 font-medium text-text-main",children:t.model}),(0,a.jsx)("td",{className:"px-4 py-3 text-text-muted",children:t.provider}),(0,a.jsx)("td",{className:"px-4 py-3 text-text-muted",children:t.account}),(0,a.jsx)("td",{className:"px-4 py-3 text-text-main",children:m(t.runningTimeMs)}),(0,a.jsx)("td",{className:"px-4 py-3 text-text-main",children:t.count}),(0,a.jsx)("td",{className:"px-4 py-3",children:(0,a.jsx)("button",{type:"button",onClick:()=>c(t),className:"rounded-md border border-border px-3 py-1.5 text-xs font-medium text-text-main transition-colors hover:bg-sidebar/40",children:e("viewPayloads")})})]},`${t.account}:${t.provider}:${t.model}:${t.startedAt}`))})]})}),n&&(0,a.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/55 px-4 py-6 backdrop-blur-sm",children:(0,a.jsxs)("div",{className:"flex max-h-[85vh] w-full max-w-5xl flex-col overflow-hidden rounded-2xl border border-border bg-surface shadow-2xl",children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-border px-5 py-4",children:[(0,a.jsxs)("div",{children:[(0,a.jsxs)("h4",{className:"text-lg font-semibold text-text-main",children:[n.provider," / ",n.model]}),(0,a.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:e("runningRequestDetailMeta",{account:n.account,elapsed:m(n.runningTimeMs)})})]}),(0,a.jsx)("button",{type:"button",onClick:()=>c(null),className:"rounded-full border border-border p-2 text-text-muted transition-colors hover:bg-sidebar/40 hover:text-text-main","aria-label":e("close"),children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"close"})})]}),(0,a.jsxs)("div",{className:"grid gap-4 overflow-y-auto px-5 py-5 md:grid-cols-2",children:[(0,a.jsxs)("section",{className:"rounded-xl border border-border bg-bg-subtle p-4",children:[(0,a.jsxs)("div",{className:"mb-3",children:[(0,a.jsx)("h5",{className:"text-sm font-semibold text-text-main",children:e("clientPayload")}),(0,a.jsx)("p",{className:"mt-1 text-xs text-text-muted",children:n.clientEndpoint||e("notAvailable")})]}),(0,a.jsx)("pre",{className:"overflow-x-auto rounded-lg border border-border/70 bg-bg p-3 text-xs text-text-muted",children:JSON.stringify(n.clientRequest||{},null,2)})]}),(0,a.jsxs)("section",{className:"rounded-xl border border-border bg-bg-subtle p-4",children:[(0,a.jsxs)("div",{className:"mb-3",children:[(0,a.jsx)("h5",{className:"text-sm font-semibold text-text-main",children:e("upstreamPayload")}),(0,a.jsx)("p",{className:"mt-1 break-all text-xs text-text-muted",children:n.providerUrl||e("upstreamNotSentYet")})]}),(0,a.jsx)("pre",{className:"overflow-x-auto rounded-lg border border-border/70 bg-bg p-3 text-xs text-text-muted",children:JSON.stringify(n.providerRequest||{},null,2)})]})]})]})})]}):null}function b(){let[e,t]=(0,l.useState)([]),[r,s]=(0,l.useState)(!0),[o,n]=(0,l.useState)(null),[c,i]=(0,l.useState)(""),[x,m]=(0,l.useState)(""),[u,b]=(0,l.useState)(0),[p,h]=(0,l.useState)(!1),[v,g]=(0,l.useState)(0),[f,j]=(0,l.useState)(null),y=(0,d.c)("logs"),N=(0,l.useCallback)(async()=>{s(!0),n(null);try{let e=new URLSearchParams;c&&e.set("action",c),x&&e.set("actor",x),e.set("limit",String(26)),e.set("offset",String(u));let r=await fetch(`/api/compliance/audit-log?${e.toString()}`);if(!r.ok)throw Error(y("failedFetchAuditLog"));let a=await r.json(),l=Number(r.headers.get("x-total-count")||"0");h(a.length>25),t(a.slice(0,25)),g(Number.isFinite(l)?l:0)}catch(e){n(e.message||y("failedFetchAuditLog"))}finally{s(!1)}},[c,x,u,y]);(0,l.useEffect)(()=>{N()},[N]);let w=()=>{0===u?N():b(0)},k=e=>{try{return new Date(e).toLocaleString()}catch{return e}};return(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h2",{className:"text-xl font-bold text-[var(--color-text-main)]",children:y("auditLog")}),(0,a.jsx)("p",{className:"text-sm text-[var(--color-text-muted)] mt-1",children:y("auditLogDesc")}),(0,a.jsx)("p",{className:"mt-2 text-xs text-[var(--color-text-muted)]",children:y("totalEntries",{count:v})})]}),(0,a.jsx)("button",{onClick:N,disabled:r,"aria-label":y("refreshAuditLogAria"),className:"px-4 py-2 rounded-lg text-sm font-medium bg-[var(--color-surface)] border border-[var(--color-border)] text-[var(--color-text-main)] hover:bg-[var(--color-bg-alt)] transition-colors disabled:opacity-50",children:r?y("loading"):y("refresh")})]}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-3 p-4 rounded-xl bg-[var(--color-surface)] border border-[var(--color-border)]",role:"search","aria-label":y("filterEntriesAria"),children:[(0,a.jsx)("input",{type:"text",placeholder:y("filterByAction"),value:c,onChange:e=>i(e.target.value),onKeyDown:e=>"Enter"===e.key&&w(),"aria-label":y("filterByActionTypeAria"),className:"flex-1 min-w-[180px] px-3 py-2 rounded-lg text-sm bg-[var(--color-bg)] border border-[var(--color-border)] text-[var(--color-text-main)] placeholder:text-[var(--color-text-muted)] focus:outline-2 focus:outline-[var(--color-accent)]"}),(0,a.jsx)("input",{type:"text",placeholder:y("filterByActor"),value:x,onChange:e=>m(e.target.value),onKeyDown:e=>"Enter"===e.key&&w(),"aria-label":y("filterByActorAria"),className:"flex-1 min-w-[180px] px-3 py-2 rounded-lg text-sm bg-[var(--color-bg)] border border-[var(--color-border)] text-[var(--color-text-main)] placeholder:text-[var(--color-text-muted)] focus:outline-2 focus:outline-[var(--color-accent)]"}),(0,a.jsx)("button",{onClick:w,className:"px-4 py-2 rounded-lg text-sm font-medium bg-[var(--color-accent)] text-white hover:bg-[var(--color-accent-hover)] transition-colors focus:outline-2 focus:outline-offset-2 focus:outline-[var(--color-accent)]",children:y("search")})]}),o&&(0,a.jsx)("div",{className:"p-4 rounded-lg bg-red-500/10 border border-red-500/30 text-red-400 text-sm",role:"alert",children:o}),(0,a.jsx)("div",{className:"overflow-x-auto rounded-xl border border-[var(--color-border)]",children:(0,a.jsxs)("table",{className:"w-full text-sm",role:"table","aria-label":y("tableAria"),children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{className:"bg-[var(--color-bg-alt)] border-b border-[var(--color-border)]",children:[(0,a.jsx)("th",{className:"text-left px-4 py-3 font-medium text-[var(--color-text-muted)]",children:y("timestamp")}),(0,a.jsx)("th",{className:"text-left px-4 py-3 font-medium text-[var(--color-text-muted)]",children:y("action")}),(0,a.jsx)("th",{className:"text-left px-4 py-3 font-medium text-[var(--color-text-muted)]",children:y("status")}),(0,a.jsx)("th",{className:"text-left px-4 py-3 font-medium text-[var(--color-text-muted)]",children:y("actor")}),(0,a.jsx)("th",{className:"text-left px-4 py-3 font-medium text-[var(--color-text-muted)]",children:y("target")}),(0,a.jsx)("th",{className:"text-left px-4 py-3 font-medium text-[var(--color-text-muted)]",children:y("resourceType")}),(0,a.jsx)("th",{className:"text-left px-4 py-3 font-medium text-[var(--color-text-muted)]",children:y("ipAddress")}),(0,a.jsx)("th",{className:"text-left px-4 py-3 font-medium text-[var(--color-text-muted)]",children:y("requestId")}),(0,a.jsx)("th",{className:"text-left px-4 py-3 font-medium text-[var(--color-text-muted)]",children:y("details")})]})}),(0,a.jsx)("tbody",{children:0!==e.length||r?e.map(e=>{var t,r;return(0,a.jsxs)("tr",{className:"border-b border-[var(--color-border)] hover:bg-[var(--color-bg-alt)] transition-colors",children:[(0,a.jsx)("td",{className:"px-4 py-3 whitespace-nowrap text-[var(--color-text-muted)] font-mono text-xs",children:k(e.timestamp)}),(0,a.jsx)("td",{className:"px-4 py-3",children:(0,a.jsx)("span",{className:`inline-block px-2 py-0.5 rounded-md text-xs font-medium border ${"provider.warning"===(t=e.action)?"bg-amber-500/15 text-amber-300 border-amber-500/20":t.includes("delete")||t.includes("remove")?"bg-red-500/15 text-red-400 border-red-500/20":t.includes("create")||t.includes("add")?"bg-green-500/15 text-green-400 border-green-500/20":t.includes("update")||t.includes("change")?"bg-blue-500/15 text-blue-400 border-blue-500/20":t.includes("login")||t.includes("auth")?"bg-purple-500/15 text-purple-400 border-purple-500/20":"bg-gray-500/15 text-gray-400 border-gray-500/20"}`,children:(0,a.jsxs)("span",{className:"inline-flex items-center gap-1",children:["provider.warning"===e.action&&(0,a.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"warning"}),e.action]})})}),(0,a.jsx)("td",{className:"px-4 py-3",children:(0,a.jsx)("span",{className:`inline-block px-2 py-0.5 rounded-md text-xs font-medium border ${!(r=e.status)?"bg-gray-500/15 text-gray-400 border-gray-500/20":"success"===r?"bg-green-500/15 text-green-400 border-green-500/20":"warning"===r||"blocked"===r?"bg-amber-500/15 text-amber-300 border-amber-500/20":"error"===r||"failed"===r?"bg-red-500/15 text-red-400 border-red-500/20":"bg-blue-500/15 text-blue-400 border-blue-500/20"}`,children:e.status||y("notAvailable")})}),(0,a.jsx)("td",{className:"px-4 py-3 text-[var(--color-text-main)]",children:e.actor}),(0,a.jsx)("td",{className:"px-4 py-3 text-[var(--color-text-muted)] max-w-[200px] truncate",children:e.target||y("notAvailable")}),(0,a.jsx)("td",{className:"px-4 py-3 text-[var(--color-text-muted)] whitespace-nowrap",children:e.resourceType||y("notAvailable")}),(0,a.jsx)("td",{className:"px-4 py-3 text-[var(--color-text-muted)] font-mono text-xs whitespace-nowrap",children:e.ip_address||y("notAvailable")}),(0,a.jsx)("td",{className:"px-4 py-3 text-[var(--color-text-muted)] font-mono text-xs whitespace-nowrap",children:e.requestId||y("notAvailable")}),(0,a.jsx)("td",{className:"px-4 py-3",children:(0,a.jsx)("button",{type:"button",onClick:()=>j(e),className:"rounded-md border border-[var(--color-border)] px-3 py-1.5 text-xs font-medium text-[var(--color-text-main)] transition-colors hover:bg-[var(--color-bg-alt)]",children:y("viewDetails")})})]},e.id)}):(0,a.jsx)("tr",{children:(0,a.jsx)("td",{colSpan:9,className:"px-4 py-8 text-center text-[var(--color-text-muted)]",children:y("noEntries")})})})]})}),(0,a.jsxs)("div",{className:"flex items-center justify-between",children:[(0,a.jsx)("p",{className:"text-xs text-[var(--color-text-muted)]",children:y("showing",{count:e.length,offset:u})}),(0,a.jsxs)("div",{className:"flex gap-2",children:[(0,a.jsxs)("button",{onClick:()=>b(Math.max(0,u-25)),disabled:0===u,className:"px-3 py-1.5 rounded-lg text-xs font-medium bg-[var(--color-surface)] border border-[var(--color-border)] text-[var(--color-text-main)] hover:bg-[var(--color-bg-alt)] disabled:opacity-30 transition-colors",children:["← ",y("previous")]}),(0,a.jsxs)("button",{onClick:()=>b(u+25),disabled:!p,className:"px-3 py-1.5 rounded-lg text-xs font-medium bg-[var(--color-surface)] border border-[var(--color-border)] text-[var(--color-text-main)] hover:bg-[var(--color-bg-alt)] disabled:opacity-30 transition-colors",children:[y("next")," →"]})]})]}),f&&(0,a.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 px-4 py-6",children:(0,a.jsxs)("div",{className:"flex max-h-[85vh] w-full max-w-5xl flex-col overflow-hidden rounded-2xl border border-[var(--color-border)] bg-[var(--color-surface)] shadow-2xl",children:[(0,a.jsxs)("div",{className:"flex items-start justify-between gap-4 border-b border-[var(--color-border)] px-6 py-5",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-lg font-semibold text-[var(--color-text-main)]",children:f.action}),(0,a.jsx)("p",{className:"mt-1 text-sm text-[var(--color-text-muted)]",children:y("auditModalSubtitle",{actor:f.actor||y("notAvailable"),target:f.target||y("notAvailable")})})]}),(0,a.jsx)("button",{type:"button",onClick:()=>j(null),className:"rounded-full border border-[var(--color-border)] p-2 text-[var(--color-text-muted)] transition-colors hover:bg-[var(--color-bg-alt)] hover:text-[var(--color-text-main)]","aria-label":y("close"),children:(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"close"})})]}),(0,a.jsxs)("div",{className:"overflow-y-auto px-6 py-5",children:["provider.warning"===f.action&&(0,a.jsx)("div",{className:"mb-5 rounded-xl border border-amber-500/30 bg-amber-500/10 px-4 py-3 text-sm text-amber-100",children:(0,a.jsxs)("div",{className:"flex items-start gap-2",children:[(0,a.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"warning"}),(0,a.jsxs)("div",{children:[(0,a.jsx)("p",{className:"font-medium",children:y("providerWarningTitle")}),(0,a.jsx)("p",{className:"mt-1 text-amber-200",children:y("providerWarningDesc")})]})]})}),(0,a.jsxs)("div",{className:"grid gap-4 md:grid-cols-2",children:[(0,a.jsxs)("div",{className:"rounded-xl border border-[var(--color-border)] bg-[var(--color-bg)] p-4",children:[(0,a.jsx)("h4",{className:"mb-3 text-sm font-semibold text-[var(--color-text-main)]",children:y("eventMetadata")}),(0,a.jsxs)("dl",{className:"space-y-2 text-sm",children:[(0,a.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,a.jsx)("dt",{className:"text-[var(--color-text-muted)]",children:y("timestamp")}),(0,a.jsx)("dd",{className:"text-[var(--color-text-main)]",children:k(f.timestamp)})]}),(0,a.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,a.jsx)("dt",{className:"text-[var(--color-text-muted)]",children:y("status")}),(0,a.jsx)("dd",{className:"text-[var(--color-text-main)]",children:f.status||y("notAvailable")})]}),(0,a.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,a.jsx)("dt",{className:"text-[var(--color-text-muted)]",children:y("resourceType")}),(0,a.jsx)("dd",{className:"text-[var(--color-text-main)]",children:f.resourceType||y("notAvailable")})]}),(0,a.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,a.jsx)("dt",{className:"text-[var(--color-text-muted)]",children:y("requestId")}),(0,a.jsx)("dd",{className:"font-mono text-[var(--color-text-main)]",children:f.requestId||y("notAvailable")})]}),(0,a.jsxs)("div",{className:"flex justify-between gap-3",children:[(0,a.jsx)("dt",{className:"text-[var(--color-text-muted)]",children:y("ipAddress")}),(0,a.jsx)("dd",{className:"font-mono text-[var(--color-text-main)]",children:f.ip_address||y("notAvailable")})]})]})]}),(0,a.jsxs)("div",{className:"rounded-xl border border-[var(--color-border)] bg-[var(--color-bg)] p-4",children:[(0,a.jsx)("h4",{className:"mb-3 text-sm font-semibold text-[var(--color-text-main)]",children:y("eventPayload")}),(0,a.jsx)("pre",{className:"overflow-x-auto rounded-lg border border-[var(--color-border)] bg-[var(--color-surface)] p-3 text-xs text-[var(--color-text-muted)]",children:JSON.stringify(f.metadata||f.details||{},null,2)})]})]})]})]})})]})}let p=[{label:"1h",hours:1},{label:"6h",hours:6},{label:"12h",hours:12},{label:"24h",hours:24}],h={"request-logs":"request-logs","proxy-logs":"proxy-logs","audit-logs":"call-logs",console:"call-logs"};function v(){let e=(0,s.useSearchParams)().get("tab"),[t,r]=(0,l.useState)(e&&h[e]?e:"request-logs"),[n,c]=(0,l.useState)(!1),[i,m]=(0,l.useState)(!1),v=(0,l.useRef)(null),g=(0,d.c)("logs");async function f(e){m(!0),c(!1);try{let r=h[t]||"call-logs",a=await fetch(`/api/logs/export?hours=${e}&type=${r}`);if(!a.ok)throw Error("Export failed");let l=await a.blob(),s=URL.createObjectURL(l),o=document.createElement("a");o.href=s,o.download=`omniroute-${r}-${e}h-${new Date().toISOString().slice(0,10)}.json`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(s)}catch(e){console.error("Export failed:",e)}finally{m(!1)}}return(0,l.useEffect)(()=>{e&&h[e]&&e!==t&&r(e)},[t,e]),(0,l.useEffect)(()=>{function e(e){v.current&&!v.current.contains(e.target)&&c(!1)}return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,a.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,a.jsxs)("div",{className:"flex items-center justify-between gap-4 flex-wrap",children:[(0,a.jsx)(o.Iz,{options:[{value:"request-logs",label:g("requestLogs")},{value:"proxy-logs",label:g("proxyLogs")},{value:"audit-logs",label:g("auditLog")},{value:"console",label:g("console")}],value:t,onChange:r}),(0,a.jsxs)("div",{className:"relative",ref:v,children:[(0,a.jsxs)("button",{id:"export-logs-btn",onClick:()=>c(!n),disabled:i,className:"flex items-center gap-2 px-4 py-2 text-sm font-medium rounded-lg bg-[var(--card-bg,#1e1e2e)] border border-[var(--border,#333)] text-[var(--text-secondary,#aaa)] hover:text-[var(--text-primary,#fff)] hover:border-[var(--accent,#7c3aed)] transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed",children:[(0,a.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:(0,a.jsx)("path",{d:"M8 2v8m0 0l-3-3m3 3l3-3M3 12h10",strokeLinecap:"round",strokeLinejoin:"round"})}),i?"Exporting...":"Export"]}),n&&(0,a.jsxs)("div",{className:"absolute right-0 top-full mt-1 z-50 min-w-[140px] rounded-lg bg-[var(--card-bg,#1e1e2e)] border border-[var(--border,#333)] shadow-xl overflow-hidden animate-in fade-in",children:[(0,a.jsx)("div",{className:"px-3 py-2 text-xs text-[var(--text-muted,#666)] border-b border-[var(--border,#333)] font-medium",children:"Time Range"}),p.map(e=>(0,a.jsxs)("button",{id:`export-${e.hours}h-btn`,onClick:()=>f(e.hours),className:"w-full px-3 py-2 text-sm text-left hover:bg-[var(--hover-bg,#2a2a3e)] text-[var(--text-secondary,#aaa)] hover:text-[var(--text-primary,#fff)] transition-colors flex items-center justify-between",children:[(0,a.jsxs)("span",{children:["Last ",e.label]}),(0,a.jsx)("span",{className:"text-xs text-[var(--text-muted,#666)]",children:24===e.hours?"default":""})]},e.hours))]})]})]}),"request-logs"===t&&(0,a.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,a.jsx)(u,{}),(0,a.jsx)(o.y7,{})]}),"proxy-logs"===t&&(0,a.jsx)(o.Lo,{}),"audit-logs"===t&&(0,a.jsx)(b,{}),"console"===t&&(0,a.jsx)(x,{})]})}},40993:(e,t,r)=>{"use strict";r.d(t,{Ex:()=>c.default,$n:()=>a.default,Zp:()=>o.default,Qv:()=>n.CardSkeleton,G9:()=>f.default,bQ:()=>w.default,pp:()=>y.default,Qn:()=>N.default,pd:()=>l.default,Mh:()=>g.default,uR:()=>u.default,aF:()=>d.default,rq:()=>m.default,LF:()=>x.default,KN:()=>h.default,Lo:()=>v.default,y7:()=>p.default,Iz:()=>j.default,l6:()=>s.default,lM:()=>i.default,cn:()=>b.default});var a=r(35806),l=r(34422),s=r(42994),o=r(81060),d=r(71361),n=r(92542);r(17705);var c=r(80927),i=r(19790);r(6261),r(55846),r(42912),r(87806),r(99023);var x=r(80178),m=r(85444),u=r(91961);r(25112);var b=r(45624),p=r(37415),h=r(48643),v=r(8287);r(1652);var g=r(92701);r(18150);var f=r(71689),j=r(33709);r(76332);var y=r(66200);r(61580);var N=r(51503);r(54128);var w=r(44638);r(21720),r(97050)},50910:(e,t,r)=>{"use strict";r.d(t,{c:()=>s});var a=r(55510);function l(e,t){return(...e)=>{try{return t(...e)}catch{throw Error(void 0)}}}let s=l(0,a.c3);l(0,a.kc)},53586:(e,t,r)=>{Promise.resolve().then(r.bind(r,27071))}},e=>{e.O(0,[5510,8500,7173,782,5831,909,5444,8643,1366,1999,8441,3794,7358],()=>e(e.s=53586)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{1934:(e,t,r)=>{"use strict";r.d(t,{v:()=>l});var n=r(12115);let a=e=>{let t,r=new Set,n=(e,n)=>{let a="function"==typeof e?e(t):e;if(!Object.is(a,t)){let e=t;t=(null!=n?n:"object"!=typeof a||null===a)?a:Object.assign({},t,a),r.forEach(r=>r(t,e))}},a=()=>t,o={setState:n,getState:a,getInitialState:()=>l,subscribe:e=>(r.add(e),()=>r.delete(e))},l=t=e(n,a,o);return o},o=e=>{let t=e?a(e):a,r=e=>(function(e,t=e=>e){let r=n.useSyncExternalStore(e.subscribe,n.useCallback(()=>t(e.getState()),[e,t]),n.useCallback(()=>t(e.getInitialState()),[e,t]));return n.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},l=e=>e?o(e):o},11025:(e,t,r)=>{Promise.resolve().then(r.bind(r,91930)),Promise.resolve().then(r.t.bind(r,95642,23)),Promise.resolve().then(r.t.bind(r,51743,23)),Promise.resolve().then(r.bind(r,55846))},31692:(e,t,r)=>{"use strict";r.d(t,{Zr:()=>a});let n=e=>t=>{try{let r=e(t);if(r instanceof Promise)return r;return{then:e=>n(e)(r),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>n(t)(e)}}},a=(e,t)=>(r,a,o)=>{let l,s={storage:function(e){let t;try{t=e()}catch(e){return}return{getItem:e=>{var r;let n=e=>null===e?null:JSON.parse(e,void 0),a=null!=(r=t.getItem(e))?r:null;return a instanceof Promise?a.then(n):n(a)},setItem:(e,r)=>t.setItem(e,JSON.stringify(r,void 0)),removeItem:e=>t.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},i=!1,u=0,c=new Set,m=new Set,d=s.storage;if(!d)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),r(...e)},a,o);let h=()=>{let e=s.partialize({...a()});return d.setItem(s.name,{state:e,version:s.version})},f=o.setState;o.setState=(e,t)=>(f(e,t),h());let v=e((...e)=>(r(...e),h()),a,o);o.getInitialState=()=>v;let g=()=>{var e,t;if(!d)return;let o=++u;i=!1,c.forEach(e=>{var t;return e(null!=(t=a())?t:v)});let f=(null==(t=s.onRehydrateStorage)?void 0:t.call(s,null!=(e=a())?e:v))||void 0;return n(d.getItem.bind(d))(s.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===s.version)return[!1,e.state];else{if(s.migrate){let t=s.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(e=>{var t;if(o!==u)return;let[n,i]=e;if(r(l=s.merge(i,null!=(t=a())?t:v),!0),n)return h()}).then(()=>{o===u&&(null==f||f(a(),void 0),l=a(),i=!0,m.forEach(e=>e(l)))}).catch(e=>{o===u&&(null==f||f(void 0,e))})};return o.persist={setOptions:e=>{s={...s,...e},e.storage&&(d=e.storage)},clearStorage:()=>{null==d||d.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>g(),hasHydrated:()=>i,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(m.add(e),()=>{m.delete(e)})},s.skipHydration||g(),l||v}},49007:(e,t,r)=>{"use strict";r.d(t,{v:()=>n,B:()=>a});let n={name:"OmniRoute",description:"AI Gateway for Multi-Provider LLMs",version:"3.7.2"},a={storageKey:"theme",defaultTheme:"system"}},51743:()=>{},55846:(e,t,r)=>{"use strict";r.d(t,{ThemeProvider:()=>l});var n=r(95155),a=r(12115),o=r(76851);function l({children:e}){let{initTheme:t}=(0,o.A)();return(0,a.useEffect)(()=>{t()},[t]),(0,n.jsx)(n.Fragment,{children:e})}},76851:(e,t,r)=>{"use strict";r.d(t,{A:()=>m,F:()=>s});var n=r(1934),a=r(31692),o=r(49007);let l=(0,n.v)()((0,a.Zr)((e,t)=>({theme:o.B.defaultTheme,colorTheme:"coral",customColor:"#3b82f6",setTheme:t=>{e({theme:t}),i(t)},setColorTheme:r=>{e({colorTheme:r}),u(r,t().customColor)},setCustomColorTheme:t=>{let r=c(t);e({colorTheme:"custom",customColor:r}),u("custom",r)},toggleTheme:()=>{let r="dark"===t().theme?"light":"dark";e({theme:r}),i(r)},initTheme:()=>{let{theme:e,colorTheme:r,customColor:n}=t();i(e),u(r,n)}}),{name:o.B.storageKey})),s={coral:"#e54d5e",blue:"#3b82f6",red:"#ef4444",green:"#22c55e",violet:"#8b5cf6",orange:"#f97316",cyan:"#06b6d4"};function i(e){let t=document.documentElement,r=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===e?r:e)?t.classList.add("dark"):t.classList.remove("dark")}function u(e,t){let r,n,a,o,l,i,u=document.documentElement,m="custom"===e?c(t):s[e]||s.coral,d=(n=parseInt((r=c(m).slice(1)).slice(0,2),16),a=parseInt(r.slice(2,4),16),o=parseInt(r.slice(4,6),16),l=e=>{let t=Math.round((0-e)*Math.abs(-.14));return Math.max(0,Math.min(255,e-t))},i=e=>e.toString(16).padStart(2,"0"),`#${i(l(n))}${i(l(a))}${i(l(o))}`);u.style.setProperty("--color-primary",m),u.style.setProperty("--color-primary-hover",d)}function c(e){let t=(e||"").trim(),r=t.startsWith("#")?t:`#${t}`;return/^#([0-9a-fA-F]{6})$/.test(r)?r.toLowerCase():"#3b82f6"}let m=l},91930:(e,t,r)=>{"use strict";r.d(t,{default:()=>o});var n=r(55510),a=r(95155);function o({locale:e,...t}){if(!e)throw Error(void 0);return(0,a.jsx)(n.Dk,{locale:e,...t})}},95642:e=>{e.exports={style:{fontFamily:"'Inter', 'Inter Fallback'",fontStyle:"normal"},className:"__className_f367f3",variable:"__variable_f367f3"}}},e=>{e.O(0,[4781,3334,5510,8441,3794,7358],()=>e(e.s=11025)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{1934:(e,t,r)=>{"use strict";r.d(t,{v:()=>l});var n=r(12115);let a=e=>{let t,r=new Set,n=(e,n)=>{let a="function"==typeof e?e(t):e;if(!Object.is(a,t)){let e=t;t=(null!=n?n:"object"!=typeof a||null===a)?a:Object.assign({},t,a),r.forEach(r=>r(t,e))}},a=()=>t,o={setState:n,getState:a,getInitialState:()=>l,subscribe:e=>(r.add(e),()=>r.delete(e))},l=t=e(n,a,o);return o},o=e=>{let t=e?a(e):a,r=e=>(function(e,t=e=>e){let r=n.useSyncExternalStore(e.subscribe,n.useCallback(()=>t(e.getState()),[e,t]),n.useCallback(()=>t(e.getInitialState()),[e,t]));return n.useDebugValue(r),r})(t,e);return Object.assign(r,t),r},l=e=>e?o(e):o},11025:(e,t,r)=>{Promise.resolve().then(r.bind(r,91930)),Promise.resolve().then(r.t.bind(r,95642,23)),Promise.resolve().then(r.t.bind(r,51743,23)),Promise.resolve().then(r.bind(r,55846))},31692:(e,t,r)=>{"use strict";r.d(t,{Zr:()=>a});let n=e=>t=>{try{let r=e(t);if(r instanceof Promise)return r;return{then:e=>n(e)(r),catch(e){return this}}}catch(e){return{then(e){return this},catch:t=>n(t)(e)}}},a=(e,t)=>(r,a,o)=>{let l,s={storage:function(e){let t;try{t=e()}catch(e){return}return{getItem:e=>{var r;let n=e=>null===e?null:JSON.parse(e,void 0),a=null!=(r=t.getItem(e))?r:null;return a instanceof Promise?a.then(n):n(a)},setItem:(e,r)=>t.setItem(e,JSON.stringify(r,void 0)),removeItem:e=>t.removeItem(e)}}(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},i=!1,u=0,c=new Set,m=new Set,d=s.storage;if(!d)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${s.name}', the given storage is currently unavailable.`),r(...e)},a,o);let h=()=>{let e=s.partialize({...a()});return d.setItem(s.name,{state:e,version:s.version})},f=o.setState;o.setState=(e,t)=>(f(e,t),h());let v=e((...e)=>(r(...e),h()),a,o);o.getInitialState=()=>v;let g=()=>{var e,t;if(!d)return;let o=++u;i=!1,c.forEach(e=>{var t;return e(null!=(t=a())?t:v)});let f=(null==(t=s.onRehydrateStorage)?void 0:t.call(s,null!=(e=a())?e:v))||void 0;return n(d.getItem.bind(d))(s.name).then(e=>{if(e)if("number"!=typeof e.version||e.version===s.version)return[!1,e.state];else{if(s.migrate){let t=s.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(e=>{var t;if(o!==u)return;let[n,i]=e;if(r(l=s.merge(i,null!=(t=a())?t:v),!0),n)return h()}).then(()=>{o===u&&(null==f||f(a(),void 0),l=a(),i=!0,m.forEach(e=>e(l)))}).catch(e=>{o===u&&(null==f||f(void 0,e))})};return o.persist={setOptions:e=>{s={...s,...e},e.storage&&(d=e.storage)},clearStorage:()=>{null==d||d.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>g(),hasHydrated:()=>i,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(m.add(e),()=>{m.delete(e)})},s.skipHydration||g(),l||v}},49007:(e,t,r)=>{"use strict";r.d(t,{v:()=>n,B:()=>a});let n={name:"OmniRoute",description:"AI Gateway for Multi-Provider LLMs",version:"3.7.3"},a={storageKey:"theme",defaultTheme:"system"}},51743:()=>{},55846:(e,t,r)=>{"use strict";r.d(t,{ThemeProvider:()=>l});var n=r(95155),a=r(12115),o=r(76851);function l({children:e}){let{initTheme:t}=(0,o.A)();return(0,a.useEffect)(()=>{t()},[t]),(0,n.jsx)(n.Fragment,{children:e})}},76851:(e,t,r)=>{"use strict";r.d(t,{A:()=>m,F:()=>s});var n=r(1934),a=r(31692),o=r(49007);let l=(0,n.v)()((0,a.Zr)((e,t)=>({theme:o.B.defaultTheme,colorTheme:"coral",customColor:"#3b82f6",setTheme:t=>{e({theme:t}),i(t)},setColorTheme:r=>{e({colorTheme:r}),u(r,t().customColor)},setCustomColorTheme:t=>{let r=c(t);e({colorTheme:"custom",customColor:r}),u("custom",r)},toggleTheme:()=>{let r="dark"===t().theme?"light":"dark";e({theme:r}),i(r)},initTheme:()=>{let{theme:e,colorTheme:r,customColor:n}=t();i(e),u(r,n)}}),{name:o.B.storageKey})),s={coral:"#e54d5e",blue:"#3b82f6",red:"#ef4444",green:"#22c55e",violet:"#8b5cf6",orange:"#f97316",cyan:"#06b6d4"};function i(e){let t=document.documentElement,r=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===e?r:e)?t.classList.add("dark"):t.classList.remove("dark")}function u(e,t){let r,n,a,o,l,i,u=document.documentElement,m="custom"===e?c(t):s[e]||s.coral,d=(n=parseInt((r=c(m).slice(1)).slice(0,2),16),a=parseInt(r.slice(2,4),16),o=parseInt(r.slice(4,6),16),l=e=>{let t=Math.round((0-e)*Math.abs(-.14));return Math.max(0,Math.min(255,e-t))},i=e=>e.toString(16).padStart(2,"0"),`#${i(l(n))}${i(l(a))}${i(l(o))}`);u.style.setProperty("--color-primary",m),u.style.setProperty("--color-primary-hover",d)}function c(e){let t=(e||"").trim(),r=t.startsWith("#")?t:`#${t}`;return/^#([0-9a-fA-F]{6})$/.test(r)?r.toLowerCase():"#3b82f6"}let m=l},91930:(e,t,r)=>{"use strict";r.d(t,{default:()=>o});var n=r(55510),a=r(95155);function o({locale:e,...t}){if(!e)throw Error(void 0);return(0,a.jsx)(n.Dk,{locale:e,...t})}},95642:e=>{e.exports={style:{fontFamily:"'Inter', 'Inter Fallback'",fontStyle:"normal"},className:"__className_f367f3",variable:"__variable_f367f3"}}},e=>{e.O(0,[4781,3334,5510,8441,3794,7358],()=>e(e.s=11025)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (()=>{"use strict";var e,t,r,o,a,n,c,i,s={},u={};function d(e){var t=u[e];if(void 0!==t)return t.exports;var r=u[e]={exports:{}},o=!0;try{s[e].call(r.exports,r,r.exports,d),o=!1}finally{o&&delete u[e]}return r.exports}d.m=s,e=[],d.O=(t,r,o,a)=>{if(r){a=a||0;for(var n=e.length;n>0&&e[n-1][2]>a;n--)e[n]=e[n-1];e[n]=[r,o,a];return}for(var c=1/0,n=0;n<e.length;n++){for(var[r,o,a]=e[n],i=!0,s=0;s<r.length;s++)(!1&a||c>=a)&&Object.keys(d.O).every(e=>d.O[e](r[s]))?r.splice(s--,1):(i=!1,a<c&&(c=a));if(i){e.splice(n--,1);var u=o();void 0!==u&&(t=u)}}return t},d.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return d.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,o){if(1&o&&(e=this(e)),8&o||"object"==typeof e&&e&&(4&o&&e.__esModule||16&o&&"function"==typeof e.then))return e;var a=Object.create(null);d.r(a);var n={};t=t||[null,r({}),r([]),r(r)];for(var c=2&o&&e;"object"==typeof c&&!~t.indexOf(c);c=r(c))Object.getOwnPropertyNames(c).forEach(t=>n[t]=()=>e[t]);return n.default=()=>e,d.d(a,n),a},d.d=(e,t)=>{for(var r in t)d.o(t,r)&&!d.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce((t,r)=>(d.f[r](e,t),t),[])),d.u=e=>8500===e?"static/chunks/8500-330f262eb4bb79e9.js":7173===e?"static/chunks/7173-3f906911ed8eae20.js":782===e?"static/chunks/782-59fdcfc1dc4fc3c9.js":5831===e?"static/chunks/5831-70e09f6b227769a6.js":909===e?"static/chunks/909-c35eff14d34c95a3.js":5444===e?"static/chunks/5444-4e411f30d88d90e9.js":8643===e?"static/chunks/8643-3823518cb3fab466.js":1366===e?"static/chunks/1366-81b93332276643a0.js":1999===e?"static/chunks/1999-fefe90c60eaa3b23.js":"static/chunks/"+e+"."+({1579:"e8b4c039ebdf04f0",3476:"0545ef6193c2e16e",4051:"6116d5a46e4ba5b4",4301:"99c15d2923f8bb1f",6056:"7929fbc566421a62",7142:"3adf4d9c3a535d95",8004:"79a2690b436f8f66",8202:"1ffc6ce531e066ce",9581:"c503409b4a21bcf8",9716:"face4f7bcec44d69"})[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},d.l=(e,t,r,a)=>{if(o[e])return void o[e].push(t);if(void 0!==r)for(var n,c,i=document.getElementsByTagName("script"),s=0;s<i.length;s++){var u=i[s];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")=="_N_E:"+r){n=u;break}}n||(c=!0,(n=document.createElement("script")).charset="utf-8",n.timeout=120,d.nc&&n.setAttribute("nonce",d.nc),n.setAttribute("data-webpack","_N_E:"+r),n.src=d.tu(e)),o[e]=[t];var f=(t,r)=>{n.onerror=n.onload=null,clearTimeout(l);var a=o[e];if(delete o[e],n.parentNode&&n.parentNode.removeChild(n),a&&a.forEach(e=>e(r)),t)return t(r)},l=setTimeout(f.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=f.bind(null,n.onerror),n.onload=f.bind(null,n.onload),c&&document.head.appendChild(n)},d.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.tt=()=>(void 0===a&&(a={createScriptURL:e=>e},"u">typeof trustedTypes&&trustedTypes.createPolicy&&(a=trustedTypes.createPolicy("nextjs#bundler",a))),a),d.tu=e=>d.tt().createScriptURL(e),d.p="/_next/",n={8068:0,4781:0,3334:0},d.f.j=(e,t)=>{var r=d.o(n,e)?n[e]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(3334|4781|8068)$/.test(e))n[e]=0;else{var o=new Promise((t,o)=>r=n[e]=[t,o]);t.push(r[2]=o);var a=d.p+d.u(e),c=Error();d.l(a,t=>{if(d.o(n,e)&&(0!==(r=n[e])&&(n[e]=void 0),r)){var o=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;c.message="Loading chunk "+e+" failed.\n("+o+": "+a+")",c.name="ChunkLoadError",c.type=o,c.request=a,r[1](c)}},"chunk-"+e,e)}},d.O.j=e=>0===n[e],c=(e,t)=>{var r,o,[a,c,i]=t,s=0;if(a.some(e=>0!==n[e])){for(r in c)d.o(c,r)&&(d.m[r]=c[r]);if(i)var u=i(d)}for(e&&e(t);s<a.length;s++)o=a[s],d.o(n,o)&&n[o]&&n[o][0](),n[o]=0;return d.O(u)},(i=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(c.bind(null,0)),i.push=c.bind(null,i.push.bind(i))})();
1
+ (()=>{"use strict";var e,t,r,o,a,n,c,i,s={},u={};function d(e){var t=u[e];if(void 0!==t)return t.exports;var r=u[e]={exports:{}},o=!0;try{s[e].call(r.exports,r,r.exports,d),o=!1}finally{o&&delete u[e]}return r.exports}d.m=s,e=[],d.O=(t,r,o,a)=>{if(r){a=a||0;for(var n=e.length;n>0&&e[n-1][2]>a;n--)e[n]=e[n-1];e[n]=[r,o,a];return}for(var c=1/0,n=0;n<e.length;n++){for(var[r,o,a]=e[n],i=!0,s=0;s<r.length;s++)(!1&a||c>=a)&&Object.keys(d.O).every(e=>d.O[e](r[s]))?r.splice(s--,1):(i=!1,a<c&&(c=a));if(i){e.splice(n--,1);var u=o();void 0!==u&&(t=u)}}return t},d.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return d.d(t,{a:t}),t},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,d.t=function(e,o){if(1&o&&(e=this(e)),8&o||"object"==typeof e&&e&&(4&o&&e.__esModule||16&o&&"function"==typeof e.then))return e;var a=Object.create(null);d.r(a);var n={};t=t||[null,r({}),r([]),r(r)];for(var c=2&o&&e;"object"==typeof c&&!~t.indexOf(c);c=r(c))Object.getOwnPropertyNames(c).forEach(t=>n[t]=()=>e[t]);return n.default=()=>e,d.d(a,n),a},d.d=(e,t)=>{for(var r in t)d.o(t,r)&&!d.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},d.f={},d.e=e=>Promise.all(Object.keys(d.f).reduce((t,r)=>(d.f[r](e,t),t),[])),d.u=e=>8500===e?"static/chunks/8500-330f262eb4bb79e9.js":7173===e?"static/chunks/7173-3f906911ed8eae20.js":782===e?"static/chunks/782-59fdcfc1dc4fc3c9.js":5831===e?"static/chunks/5831-70e09f6b227769a6.js":909===e?"static/chunks/909-c35eff14d34c95a3.js":5444===e?"static/chunks/5444-4e411f30d88d90e9.js":8643===e?"static/chunks/8643-3823518cb3fab466.js":1366===e?"static/chunks/1366-81b93332276643a0.js":1999===e?"static/chunks/1999-8cf58c233346f980.js":"static/chunks/"+e+"."+({1579:"e8b4c039ebdf04f0",3476:"0545ef6193c2e16e",4051:"6116d5a46e4ba5b4",4301:"99c15d2923f8bb1f",6056:"7929fbc566421a62",7142:"3adf4d9c3a535d95",8004:"79a2690b436f8f66",8202:"1ffc6ce531e066ce",9581:"c503409b4a21bcf8",9716:"face4f7bcec44d69"})[e]+".js",d.miniCssF=e=>{},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),o={},d.l=(e,t,r,a)=>{if(o[e])return void o[e].push(t);if(void 0!==r)for(var n,c,i=document.getElementsByTagName("script"),s=0;s<i.length;s++){var u=i[s];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")=="_N_E:"+r){n=u;break}}n||(c=!0,(n=document.createElement("script")).charset="utf-8",n.timeout=120,d.nc&&n.setAttribute("nonce",d.nc),n.setAttribute("data-webpack","_N_E:"+r),n.src=d.tu(e)),o[e]=[t];var f=(t,r)=>{n.onerror=n.onload=null,clearTimeout(l);var a=o[e];if(delete o[e],n.parentNode&&n.parentNode.removeChild(n),a&&a.forEach(e=>e(r)),t)return t(r)},l=setTimeout(f.bind(null,void 0,{type:"timeout",target:n}),12e4);n.onerror=f.bind(null,n.onerror),n.onload=f.bind(null,n.onload),c&&document.head.appendChild(n)},d.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.tt=()=>(void 0===a&&(a={createScriptURL:e=>e},"u">typeof trustedTypes&&trustedTypes.createPolicy&&(a=trustedTypes.createPolicy("nextjs#bundler",a))),a),d.tu=e=>d.tt().createScriptURL(e),d.p="/_next/",n={8068:0,4781:0,3334:0},d.f.j=(e,t)=>{var r=d.o(n,e)?n[e]:void 0;if(0!==r)if(r)t.push(r[2]);else if(/^(3334|4781|8068)$/.test(e))n[e]=0;else{var o=new Promise((t,o)=>r=n[e]=[t,o]);t.push(r[2]=o);var a=d.p+d.u(e),c=Error();d.l(a,t=>{if(d.o(n,e)&&(0!==(r=n[e])&&(n[e]=void 0),r)){var o=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;c.message="Loading chunk "+e+" failed.\n("+o+": "+a+")",c.name="ChunkLoadError",c.type=o,c.request=a,r[1](c)}},"chunk-"+e,e)}},d.O.j=e=>0===n[e],c=(e,t)=>{var r,o,[a,c,i]=t,s=0;if(a.some(e=>0!==n[e])){for(r in c)d.o(c,r)&&(d.m[r]=c[r]);if(i)var u=i(d)}for(e&&e(t);s<a.length;s++)o=a[s],d.o(n,o)&&n[o]&&n[o][0](),n[o]=0;return d.O(u)},(i=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(c.bind(null,0)),i.push=c.bind(null,i.push.bind(i))})();