switchboard-router 0.9.61 → 0.9.62

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 (410) hide show
  1. package/app/.next/static/chunks/1321-5586527eb9770b48.js +1 -0
  2. package/app/.next/static/chunks/4601-44deee06e6597c34.js +1 -0
  3. package/app/.next/static/chunks/app/(dashboard)/dashboard/agent-library/{page-fa24110e606e19b6.js → page-5099a8abbc816db2.js} +1 -1
  4. package/app/{.next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-7b00fb83303d1d11.js → .next/static/chunks/app/(dashboard)/dashboard/basic-chat/page-f19524e912fe1985.js} +1 -1
  5. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-e59f3822e2167ab7.js → page-5ffac5b1a7f569eb.js} +1 -1
  6. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-d994adf3e0ce78c1.js → page-e88926cdf34f51b4.js} +1 -1
  7. package/app/{.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-99d3be5c7da63d57.js → .next/static/chunks/app/(dashboard)/dashboard/combos/page-f18e04dca95f62e1.js} +1 -1
  8. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/routing/{page-650dc0927f999aaf.js → page-0fbb282f4f13b383.js} +1 -1
  9. package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/{page-eefda4a8f32e649e.js → page-a6d96961aa96c6f6.js} +1 -1
  10. package/app/.next/static/chunks/app/(dashboard)/dashboard/endpoint/{page-adba2750c4fbf61e.js → page-57222cb64d90dbc5.js} +1 -1
  11. package/app/{.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-e6fc3a5c25ce1247.js → .next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-b538f94596e78384.js} +1 -1
  12. package/app/{.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-078eb5d8bfc3f4d1.js → .next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-e5f3c1f8be627058.js} +1 -1
  13. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-7dfde081613f35f3.js → page-3b278b46c2e9b047.js} +1 -1
  14. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/{page-1d63cfd88010b65f.js → page-768e0fe3ec5c50cb.js} +1 -1
  15. package/app/.next/static/chunks/app/(dashboard)/dashboard/media-providers/web/{page-281c93713fd1e960.js → page-932db86bb9b65c82.js} +1 -1
  16. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/{page-f44e14a7efc8f81a.js → page-77d678509c4b9807.js} +1 -1
  17. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/{page-0e0047609d5634c9.js → page-be26ebe2eb5fe86f.js} +1 -1
  18. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-7650a3a5ee2467f7.js +10 -0
  19. package/app/{.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-604dae851964c441.js → .next/static/chunks/app/(dashboard)/dashboard/providers/new/page-40b58bbd9ed53384.js} +1 -1
  20. package/app/{.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-e1c9f4ce8466e3ad.js → .next/static/chunks/app/(dashboard)/dashboard/providers/page-62fb355a1fda21fb.js} +1 -1
  21. package/app/.next/static/chunks/app/(dashboard)/dashboard/pxpipe/{page-6ca234b58c5e9feb.js → page-da3416bfce941d67.js} +1 -1
  22. package/app/.next/static/chunks/app/(dashboard)/dashboard/quota/{page-cf70f587dc7ab205.js → page-c9a257b85e05472a.js} +1 -1
  23. package/app/.next/static/chunks/app/(dashboard)/dashboard/skills/[id]/{page-ea262b6192d5a92c.js → page-2141fe25b428c1a8.js} +1 -1
  24. package/app/{.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-36d107b083ad3a43.js → .next/static/chunks/app/(dashboard)/dashboard/skills/page-459447066f6cd1d5.js} +1 -1
  25. package/app/.next/static/chunks/app/(dashboard)/dashboard/token-saver/{page-14e5599c720c645b.js → page-93ce8e180c126dcc.js} +1 -1
  26. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/{page-687e09f904b04cea.js → page-b6c5cc339e7a5ef3.js} +1 -1
  27. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/{page-195bdcbea10136e1.js → page-492962969724f559.js} +1 -1
  28. package/app/.next/static/chunks/app/(dashboard)/{layout-6dfa9d7deb27d461.js → layout-c0725f0b6b7f0bea.js} +1 -1
  29. package/app/.next/static/chunks/app/dashboard/settings/pricing/page-e08a7bfc3255b9c7.js +1 -0
  30. package/app/.next/static/chunks/app/layout-5fa07c6e20da16ba.js +1 -0
  31. package/app/.next/static/chunks/app/login/{page-f326e6c17a8b0e04.js → page-df9fdce0e38e5f58.js} +1 -1
  32. package/app/.next/static/media/catalog.b2c6512a.json +38874 -0
  33. package/app/.next-cli-build/BUILD_ID +1 -1
  34. package/app/.next-cli-build/app-path-routes-manifest.json +13 -13
  35. package/app/.next-cli-build/build-manifest.json +2 -2
  36. package/app/.next-cli-build/prerender-manifest.json +3 -3
  37. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page.js.nft.json +1 -1
  38. package/app/.next-cli-build/server/app/(dashboard)/dashboard/agent-library/page_client-reference-manifest.js +1 -1
  39. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  40. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page.js.nft.json +1 -1
  42. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  43. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  44. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  45. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  46. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  47. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page.js.nft.json +1 -1
  48. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/routing/page_client-reference-manifest.js +1 -1
  49. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  50. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  51. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  52. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  53. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  54. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  55. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  56. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  57. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json +1 -1
  58. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  59. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page.js.nft.json +1 -1
  60. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/page_client-reference-manifest.js +1 -1
  61. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  62. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  63. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  64. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  65. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  66. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  67. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  68. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  69. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js +3 -3
  70. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  71. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  72. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  73. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  74. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  75. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  76. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page.js.nft.json +1 -1
  77. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  78. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  79. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  80. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page.js.nft.json +1 -1
  81. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/[id]/page_client-reference-manifest.js +1 -1
  82. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page.js.nft.json +1 -1
  83. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  84. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page.js.nft.json +1 -1
  85. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  86. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  87. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  88. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  89. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  90. package/app/.next-cli-build/server/app/_global-error/page.js.nft.json +1 -1
  91. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  92. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  93. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  94. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  95. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  96. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  97. package/app/.next-cli-build/server/app/_not-found/page.js.nft.json +1 -1
  98. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  99. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  100. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  101. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  102. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  103. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  104. package/app/.next-cli-build/server/app/api/agent-library/catalog/route.js.nft.json +1 -1
  105. package/app/.next-cli-build/server/app/api/agent-library/doctor/route.js.nft.json +1 -1
  106. package/app/.next-cli-build/server/app/api/agent-library/export/route.js.nft.json +1 -1
  107. package/app/.next-cli-build/server/app/api/agent-library/mcp/route.js.nft.json +1 -1
  108. package/app/.next-cli-build/server/app/api/agent-library/route.js.nft.json +1 -1
  109. package/app/.next-cli-build/server/app/api/agent-library/skills/route.js.nft.json +1 -1
  110. package/app/.next-cli-build/server/app/api/agent-library/sync/route.js.nft.json +1 -1
  111. package/app/.next-cli-build/server/app/api/agent-library/updates/route.js.nft.json +1 -1
  112. package/app/.next-cli-build/server/app/api/auth/login/route.js.nft.json +1 -1
  113. package/app/.next-cli-build/server/app/api/auth/logout/route.js.nft.json +1 -1
  114. package/app/.next-cli-build/server/app/api/auth/status/route.js.nft.json +1 -1
  115. package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js +2 -2
  116. package/app/.next-cli-build/server/app/api/cli-tools/aider-settings/route.js.nft.json +1 -1
  117. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +6 -6
  118. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js.nft.json +1 -1
  119. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  120. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json +1 -1
  121. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json +1 -1
  122. package/app/.next-cli-build/server/app/api/cli-tools/claude-full-catalog/route.js.nft.json +1 -1
  123. package/app/.next-cli-build/server/app/api/cli-tools/claude-picker-labels/route.js.nft.json +1 -1
  124. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  125. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +2 -2
  126. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js.nft.json +1 -1
  127. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js +1 -1
  128. package/app/.next-cli-build/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  129. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +2 -2
  130. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json +1 -1
  131. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  132. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js.nft.json +1 -1
  133. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +2 -2
  134. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js.nft.json +1 -1
  135. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +1 -1
  136. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js.nft.json +1 -1
  137. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +2 -2
  138. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  139. package/app/.next-cli-build/server/app/api/cli-tools/fx-settings/manual-configs/route.js.nft.json +1 -1
  140. package/app/.next-cli-build/server/app/api/cli-tools/fx-settings/route.js +1 -1
  141. package/app/.next-cli-build/server/app/api/cli-tools/fx-settings/route.js.nft.json +1 -1
  142. package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js +3 -3
  143. package/app/.next-cli-build/server/app/api/cli-tools/gemini-cli-settings/route.js.nft.json +1 -1
  144. package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js +2 -2
  145. package/app/.next-cli-build/server/app/api/cli-tools/grok-settings/route.js.nft.json +1 -1
  146. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  147. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  148. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +2 -2
  149. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js.nft.json +1 -1
  150. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  151. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js.nft.json +1 -1
  152. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  153. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  154. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +1 -1
  155. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  156. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/manual-configs/route.js.nft.json +1 -1
  157. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +2 -2
  158. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js.nft.json +1 -1
  159. package/app/.next-cli-build/server/app/api/cli-tools/picker-labels/route.js.nft.json +1 -1
  160. package/app/.next-cli-build/server/app/api/combos/[id]/route.js.nft.json +1 -1
  161. package/app/.next-cli-build/server/app/api/combos/route.js.nft.json +1 -1
  162. package/app/.next-cli-build/server/app/api/headroom/extras/route.js.nft.json +1 -1
  163. package/app/.next-cli-build/server/app/api/headroom/proxy/[...path]/route.js.nft.json +1 -1
  164. package/app/.next-cli-build/server/app/api/headroom/restart/route.js.nft.json +1 -1
  165. package/app/.next-cli-build/server/app/api/headroom/start/route.js.nft.json +1 -1
  166. package/app/.next-cli-build/server/app/api/headroom/status/route.js.nft.json +1 -1
  167. package/app/.next-cli-build/server/app/api/headroom/stop/route.js.nft.json +1 -1
  168. package/app/.next-cli-build/server/app/api/health/live/route.js.nft.json +1 -1
  169. package/app/.next-cli-build/server/app/api/health/route.js.nft.json +1 -1
  170. package/app/.next-cli-build/server/app/api/keys/[id]/route.js.nft.json +1 -1
  171. package/app/.next-cli-build/server/app/api/keys/route.js.nft.json +1 -1
  172. package/app/.next-cli-build/server/app/api/locale/route.js.nft.json +1 -1
  173. package/app/.next-cli-build/server/app/api/mcp/[plugin]/message/route.js.nft.json +1 -1
  174. package/app/.next-cli-build/server/app/api/mcp/[plugin]/sse/route.js.nft.json +1 -1
  175. package/app/.next-cli-build/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json +1 -1
  176. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json +1 -1
  177. package/app/.next-cli-build/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json +1 -1
  178. package/app/.next-cli-build/server/app/api/media-providers/tts/minimax/voices/route.js.nft.json +1 -1
  179. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js.nft.json +1 -1
  180. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/route.js.nft.json +1 -1
  181. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/[id]/strategy/route.js.nft.json +1 -1
  182. package/app/.next-cli-build/server/app/api/mgmt/v1/combos/route.js.nft.json +1 -1
  183. package/app/.next-cli-build/server/app/api/mgmt/v1/health/route.js.nft.json +1 -1
  184. package/app/.next-cli-build/server/app/api/mgmt/v1/metrics/route.js.nft.json +1 -1
  185. package/app/.next-cli-build/server/app/api/mgmt/v1/providers/route.js.nft.json +1 -1
  186. package/app/.next-cli-build/server/app/api/mgmt/v1/routing/route.js.nft.json +1 -1
  187. package/app/.next-cli-build/server/app/api/mgmt/v1/usage/route.js.nft.json +1 -1
  188. package/app/.next-cli-build/server/app/api/mgmt/v1/version/route.js.nft.json +1 -1
  189. package/app/.next-cli-build/server/app/api/models/alias/route.js.nft.json +1 -1
  190. package/app/.next-cli-build/server/app/api/models/availability/route.js.nft.json +1 -1
  191. package/app/.next-cli-build/server/app/api/models/custom/route.js.nft.json +1 -1
  192. package/app/.next-cli-build/server/app/api/models/disabled/route.js.nft.json +1 -1
  193. package/app/.next-cli-build/server/app/api/models/routable/route.js.nft.json +1 -1
  194. package/app/.next-cli-build/server/app/api/models/route.js.nft.json +1 -1
  195. package/app/.next-cli-build/server/app/api/models/test/route.js.nft.json +1 -1
  196. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  197. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  198. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js.nft.json +1 -1
  199. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js.nft.json +1 -1
  200. package/app/.next-cli-build/server/app/api/oauth/cursor/auto-import/route.js.nft.json +1 -1
  201. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js.nft.json +1 -1
  202. package/app/.next-cli-build/server/app/api/oauth/gitlab/pat/route.js.nft.json +1 -1
  203. package/app/.next-cli-build/server/app/api/oauth/iflow/cookie/route.js.nft.json +1 -1
  204. package/app/.next-cli-build/server/app/api/oauth/kiro/api-key/route.js.nft.json +1 -1
  205. package/app/.next-cli-build/server/app/api/oauth/kiro/auto-import/route.js.nft.json +1 -1
  206. package/app/.next-cli-build/server/app/api/oauth/kiro/import/route.js.nft.json +1 -1
  207. package/app/.next-cli-build/server/app/api/oauth/kiro/import-cli-proxy/route.js.nft.json +1 -1
  208. package/app/.next-cli-build/server/app/api/oauth/kiro/social-authorize/route.js.nft.json +1 -1
  209. package/app/.next-cli-build/server/app/api/oauth/kiro/social-exchange/route.js.nft.json +1 -1
  210. package/app/.next-cli-build/server/app/api/pricing/defaults/route.js.nft.json +1 -1
  211. package/app/.next-cli-build/server/app/api/pricing/route.js.nft.json +1 -1
  212. package/app/.next-cli-build/server/app/api/provider-nodes/[id]/route.js.nft.json +1 -1
  213. package/app/.next-cli-build/server/app/api/provider-nodes/route.js.nft.json +1 -1
  214. package/app/.next-cli-build/server/app/api/provider-nodes/validate/route.js.nft.json +1 -1
  215. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/batch/route.js.nft.json +1 -1
  216. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/cache/route.js.nft.json +1 -1
  217. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/prepare/route.js.nft.json +1 -1
  218. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/remove-unavailable/route.js.nft.json +1 -1
  219. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/route.js.nft.json +1 -1
  220. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/cancel/route.js.nft.json +1 -1
  221. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/start/route.js.nft.json +1 -1
  222. package/app/.next-cli-build/server/app/api/providers/[id]/model-probes/verify/status/route.js.nft.json +1 -1
  223. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  224. package/app/.next-cli-build/server/app/api/providers/[id]/route.js.nft.json +1 -1
  225. package/app/.next-cli-build/server/app/api/providers/[id]/test/route.js.nft.json +1 -1
  226. package/app/.next-cli-build/server/app/api/providers/[id]/test-models/route.js.nft.json +1 -1
  227. package/app/.next-cli-build/server/app/api/providers/client/route.js.nft.json +1 -1
  228. package/app/.next-cli-build/server/app/api/providers/kilo/free-models/route.js.nft.json +1 -1
  229. package/app/.next-cli-build/server/app/api/providers/route.js.nft.json +1 -1
  230. package/app/.next-cli-build/server/app/api/providers/suggested-models/route.js.nft.json +1 -1
  231. package/app/.next-cli-build/server/app/api/providers/test-batch/route.js.nft.json +1 -1
  232. package/app/.next-cli-build/server/app/api/providers/validate/route.js.nft.json +1 -1
  233. package/app/.next-cli-build/server/app/api/pxpipe/health/route.js.nft.json +1 -1
  234. package/app/.next-cli-build/server/app/api/pxpipe/install/route.js.nft.json +1 -1
  235. package/app/.next-cli-build/server/app/api/pxpipe/logs/route.js.nft.json +1 -1
  236. package/app/.next-cli-build/server/app/api/pxpipe/restart/route.js.nft.json +1 -1
  237. package/app/.next-cli-build/server/app/api/pxpipe/start/route.js.nft.json +1 -1
  238. package/app/.next-cli-build/server/app/api/pxpipe/stats/route.js.nft.json +1 -1
  239. package/app/.next-cli-build/server/app/api/pxpipe/status/route.js.nft.json +1 -1
  240. package/app/.next-cli-build/server/app/api/pxpipe/stop/route.js.nft.json +1 -1
  241. package/app/.next-cli-build/server/app/api/routing/feedback/route.js.nft.json +1 -1
  242. package/app/.next-cli-build/server/app/api/routing/insights/route.js.nft.json +1 -1
  243. package/app/.next-cli-build/server/app/api/routing/learn/route.js.nft.json +1 -1
  244. package/app/.next-cli-build/server/app/api/routing/stats/route.js.nft.json +1 -1
  245. package/app/.next-cli-build/server/app/api/routing/versions/promote/route.js.nft.json +1 -1
  246. package/app/.next-cli-build/server/app/api/routing/versions/rollback/route.js.nft.json +1 -1
  247. package/app/.next-cli-build/server/app/api/settings/database/route.js.nft.json +1 -1
  248. package/app/.next-cli-build/server/app/api/settings/proxy-test/route.js.nft.json +1 -1
  249. package/app/.next-cli-build/server/app/api/settings/route.js.nft.json +1 -1
  250. package/app/.next-cli-build/server/app/api/shutdown/route.js.nft.json +1 -1
  251. package/app/.next-cli-build/server/app/api/skills/[id]/route.js.nft.json +1 -1
  252. package/app/.next-cli-build/server/app/api/tags/route.js.nft.json +1 -1
  253. package/app/.next-cli-build/server/app/api/token-saver/vault-stats/route.js.nft.json +1 -1
  254. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js.nft.json +1 -1
  255. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js.nft.json +1 -1
  256. package/app/.next-cli-build/server/app/api/translator/load/route.js.nft.json +1 -1
  257. package/app/.next-cli-build/server/app/api/translator/save/route.js.nft.json +1 -1
  258. package/app/.next-cli-build/server/app/api/translator/send/route.js.nft.json +1 -1
  259. package/app/.next-cli-build/server/app/api/translator/translate/route.js.nft.json +1 -1
  260. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js.nft.json +1 -1
  261. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  262. package/app/.next-cli-build/server/app/api/usage/chart/route.js.nft.json +1 -1
  263. package/app/.next-cli-build/server/app/api/usage/history/route.js.nft.json +1 -1
  264. package/app/.next-cli-build/server/app/api/usage/logs/route.js.nft.json +1 -1
  265. package/app/.next-cli-build/server/app/api/usage/providers/route.js.nft.json +1 -1
  266. package/app/.next-cli-build/server/app/api/usage/request-details/[id]/route.js.nft.json +1 -1
  267. package/app/.next-cli-build/server/app/api/usage/request-details/route.js.nft.json +1 -1
  268. package/app/.next-cli-build/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  269. package/app/.next-cli-build/server/app/api/usage/stats/route.js.nft.json +1 -1
  270. package/app/.next-cli-build/server/app/api/usage/stream/route.js.nft.json +1 -1
  271. package/app/.next-cli-build/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  272. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  273. package/app/.next-cli-build/server/app/api/v1/audio/transcriptions/route.js.nft.json +1 -1
  274. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js.nft.json +1 -1
  275. package/app/.next-cli-build/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  276. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  277. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  278. package/app/.next-cli-build/server/app/api/v1/messages/count_tokens/route.js.nft.json +1 -1
  279. package/app/.next-cli-build/server/app/api/v1/messages/route.js.nft.json +1 -1
  280. package/app/.next-cli-build/server/app/api/v1/models/[kind]/route.js.nft.json +1 -1
  281. package/app/.next-cli-build/server/app/api/v1/models/info/route.js.nft.json +1 -1
  282. package/app/.next-cli-build/server/app/api/v1/models/route.js.nft.json +1 -1
  283. package/app/.next-cli-build/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  284. package/app/.next-cli-build/server/app/api/v1/responses/route.js.nft.json +1 -1
  285. package/app/.next-cli-build/server/app/api/v1/route.js.nft.json +1 -1
  286. package/app/.next-cli-build/server/app/api/v1/search/route.js.nft.json +1 -1
  287. package/app/.next-cli-build/server/app/api/v1/videos/[id]/route.js.nft.json +1 -1
  288. package/app/.next-cli-build/server/app/api/v1/videos/edits/route.js.nft.json +1 -1
  289. package/app/.next-cli-build/server/app/api/v1/videos/extensions/route.js.nft.json +1 -1
  290. package/app/.next-cli-build/server/app/api/v1/videos/generations/route.js.nft.json +1 -1
  291. package/app/.next-cli-build/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  292. package/app/.next-cli-build/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  293. package/app/.next-cli-build/server/app/api/v1beta/models/route.js.nft.json +1 -1
  294. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  295. package/app/.next-cli-build/server/app/api/version/route.js.nft.json +1 -1
  296. package/app/.next-cli-build/server/app/api/version/shutdown/route.js.nft.json +1 -1
  297. package/app/.next-cli-build/server/app/api/version/update/route.js.nft.json +1 -1
  298. package/app/.next-cli-build/server/app/callback/page.js.nft.json +1 -1
  299. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  300. package/app/.next-cli-build/server/app/callback.html +1 -1
  301. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  302. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  303. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  304. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
  305. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page.js.nft.json +1 -1
  306. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  307. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  308. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +4 -4
  309. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  310. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  311. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +4 -4
  312. package/app/.next-cli-build/server/app/favicon.ico/route.js.nft.json +1 -1
  313. package/app/.next-cli-build/server/app/index.html +1 -1
  314. package/app/.next-cli-build/server/app/index.rsc +3 -3
  315. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  316. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  317. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  318. package/app/.next-cli-build/server/app/landing/page.js.nft.json +1 -1
  319. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  320. package/app/.next-cli-build/server/app/landing.html +1 -1
  321. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  322. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  323. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  324. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
  325. package/app/.next-cli-build/server/app/login/page.js.nft.json +1 -1
  326. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  327. package/app/.next-cli-build/server/app/login.html +1 -1
  328. package/app/.next-cli-build/server/app/login.rsc +4 -4
  329. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  330. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  331. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
  332. package/app/.next-cli-build/server/app/manifest.webmanifest/route.js.nft.json +1 -1
  333. package/app/.next-cli-build/server/app/page.js.nft.json +1 -1
  334. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  335. package/app/.next-cli-build/server/app-paths-manifest.json +13 -13
  336. package/app/.next-cli-build/server/chunks/1350.js +1 -1
  337. package/app/.next-cli-build/server/chunks/2847.js +1 -1
  338. package/app/.next-cli-build/server/chunks/3464.js +1 -1
  339. package/app/.next-cli-build/server/chunks/3904.js +1 -1
  340. package/app/.next-cli-build/server/chunks/4454.js +1 -1
  341. package/app/.next-cli-build/server/chunks/4646.js +1 -1
  342. package/app/.next-cli-build/server/chunks/5139.js +1 -1
  343. package/app/.next-cli-build/server/chunks/7662.js +1 -1
  344. package/app/.next-cli-build/server/chunks/7757.js +1 -1
  345. package/app/.next-cli-build/server/chunks/869.js +1 -1
  346. package/app/.next-cli-build/server/chunks/8998.js +7 -7
  347. package/app/.next-cli-build/server/chunks/static/media/catalog.b2c6512a.json +38874 -0
  348. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  349. package/app/.next-cli-build/server/pages/404.html +1 -1
  350. package/app/.next-cli-build/server/pages/500.html +1 -1
  351. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  352. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  353. package/app/.next-cli-build/static/chunks/1321-5586527eb9770b48.js +1 -0
  354. package/app/.next-cli-build/static/chunks/4601-44deee06e6597c34.js +1 -0
  355. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/agent-library/{page-fa24110e606e19b6.js → page-5099a8abbc816db2.js} +1 -1
  356. package/app/{.next/static/chunks/app/(dashboard)/dashboard/basic-chat/page-7b00fb83303d1d11.js → .next-cli-build/static/chunks/app/(dashboard)/dashboard/basic-chat/page-f19524e912fe1985.js} +1 -1
  357. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/[toolId]/{page-e59f3822e2167ab7.js → page-5ffac5b1a7f569eb.js} +1 -1
  358. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/cli-tools/{page-d994adf3e0ce78c1.js → page-e88926cdf34f51b4.js} +1 -1
  359. package/app/{.next/static/chunks/app/(dashboard)/dashboard/combos/page-99d3be5c7da63d57.js → .next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/page-f18e04dca95f62e1.js} +1 -1
  360. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/combos/routing/{page-650dc0927f999aaf.js → page-0fbb282f4f13b383.js} +1 -1
  361. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/console-log/{page-eefda4a8f32e649e.js → page-a6d96961aa96c6f6.js} +1 -1
  362. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/endpoint/{page-adba2750c4fbf61e.js → page-57222cb64d90dbc5.js} +1 -1
  363. package/app/{.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-e6fc3a5c25ce1247.js → .next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page-b538f94596e78384.js} +1 -1
  364. package/app/{.next/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-078eb5d8bfc3f4d1.js → .next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/[kind]/page-e5f3c1f8be627058.js} +1 -1
  365. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/combo/[id]/{page-7dfde081613f35f3.js → page-3b278b46c2e9b047.js} +1 -1
  366. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/{page-1d63cfd88010b65f.js → page-768e0fe3ec5c50cb.js} +1 -1
  367. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/media-providers/web/{page-281c93713fd1e960.js → page-932db86bb9b65c82.js} +1 -1
  368. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/mitm/{page-f44e14a7efc8f81a.js → page-77d678509c4b9807.js} +1 -1
  369. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/profile/{page-0e0047609d5634c9.js → page-be26ebe2eb5fe86f.js} +1 -1
  370. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-7650a3a5ee2467f7.js +10 -0
  371. package/app/{.next/static/chunks/app/(dashboard)/dashboard/providers/new/page-604dae851964c441.js → .next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/new/page-40b58bbd9ed53384.js} +1 -1
  372. package/app/{.next/static/chunks/app/(dashboard)/dashboard/providers/page-e1c9f4ce8466e3ad.js → .next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/page-62fb355a1fda21fb.js} +1 -1
  373. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/pxpipe/{page-6ca234b58c5e9feb.js → page-da3416bfce941d67.js} +1 -1
  374. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/{page-cf70f587dc7ab205.js → page-c9a257b85e05472a.js} +1 -1
  375. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/[id]/{page-ea262b6192d5a92c.js → page-2141fe25b428c1a8.js} +1 -1
  376. package/app/{.next/static/chunks/app/(dashboard)/dashboard/skills/page-36d107b083ad3a43.js → .next-cli-build/static/chunks/app/(dashboard)/dashboard/skills/page-459447066f6cd1d5.js} +1 -1
  377. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/token-saver/{page-14e5599c720c645b.js → page-93ce8e180c126dcc.js} +1 -1
  378. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/translator/{page-687e09f904b04cea.js → page-b6c5cc339e7a5ef3.js} +1 -1
  379. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/usage/{page-195bdcbea10136e1.js → page-492962969724f559.js} +1 -1
  380. package/app/.next-cli-build/static/chunks/app/(dashboard)/{layout-6dfa9d7deb27d461.js → layout-c0725f0b6b7f0bea.js} +1 -1
  381. package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-e08a7bfc3255b9c7.js +1 -0
  382. package/app/.next-cli-build/static/chunks/app/layout-5fa07c6e20da16ba.js +1 -0
  383. package/app/.next-cli-build/static/chunks/app/login/{page-f326e6c17a8b0e04.js → page-df9fdce0e38e5f58.js} +1 -1
  384. package/app/.next-cli-build/static/media/catalog.b2c6512a.json +38874 -0
  385. package/app/open-sse/identity/tls/bin/darwin/arm64/switchboard-claude-tls +0 -0
  386. package/app/open-sse/identity/tls/bin/darwin/x64/switchboard-claude-tls +0 -0
  387. package/app/open-sse/identity/tls/bin/linux/arm64/switchboard-claude-tls +0 -0
  388. package/app/open-sse/identity/tls/bin/linux/x64/switchboard-claude-tls +0 -0
  389. package/app/open-sse/identity/tls/bin/win32/arm64/switchboard-claude-tls.exe +0 -0
  390. package/app/open-sse/identity/tls/bin/win32/x64/switchboard-claude-tls.exe +0 -0
  391. package/app/open-sse/providers/generated/catalog.json +37152 -0
  392. package/app/package.json +3 -2
  393. package/package.json +1 -1
  394. package/app/.next/static/chunks/1321-8f2bc21e3e1510f8.js +0 -1
  395. package/app/.next/static/chunks/4707-8ea6ba647d0a40c9.js +0 -1
  396. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-9bc17a08bc8f466c.js +0 -10
  397. package/app/.next/static/chunks/app/dashboard/settings/pricing/page-423a4c1e078872dd.js +0 -1
  398. package/app/.next/static/chunks/app/layout-26e1615874db4cd7.js +0 -1
  399. package/app/.next/static/media/catalog.fb7b1b70.json +0 -1722
  400. package/app/.next-cli-build/server/chunks/static/media/catalog.fb7b1b70.json +0 -1722
  401. package/app/.next-cli-build/static/chunks/1321-8f2bc21e3e1510f8.js +0 -1
  402. package/app/.next-cli-build/static/chunks/4707-8ea6ba647d0a40c9.js +0 -1
  403. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/providers/[id]/page-9bc17a08bc8f466c.js +0 -10
  404. package/app/.next-cli-build/static/chunks/app/dashboard/settings/pricing/page-423a4c1e078872dd.js +0 -1
  405. package/app/.next-cli-build/static/chunks/app/layout-26e1615874db4cd7.js +0 -1
  406. package/app/.next-cli-build/static/media/catalog.fb7b1b70.json +0 -1722
  407. /package/app/.next/static/{buFm6Q9XY8OxLsQzoorjq → cd9DZQ978U7eW2QFBhfwd}/_buildManifest.js +0 -0
  408. /package/app/.next/static/{buFm6Q9XY8OxLsQzoorjq → cd9DZQ978U7eW2QFBhfwd}/_ssgManifest.js +0 -0
  409. /package/app/.next-cli-build/static/{buFm6Q9XY8OxLsQzoorjq → cd9DZQ978U7eW2QFBhfwd}/_buildManifest.js +0 -0
  410. /package/app/.next-cli-build/static/{buFm6Q9XY8OxLsQzoorjq → cd9DZQ978U7eW2QFBhfwd}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2825],{35497:(e,t,a)=>{"use strict";a.d(t,{x0:()=>k.default,Ex:()=>o.default,$n:()=>s.default,nh:()=>R.default,Zp:()=>n.default,Qv:()=>d.CardSkeleton,CK:()=>p.default,uo:()=>i.ConfirmModal,G9:()=>j.default,wI:()=>w.default,vj:()=>N.default,vE:()=>v.default,pd:()=>l.default,Mh:()=>g.default,uR:()=>u.default,Nf:()=>h.default,aF:()=>i.default,rq:()=>m.default,gw:()=>y.default,LF:()=>x.default,Wx:()=>D.default,gM:()=>b.default,Iz:()=>S.default,l6:()=>r.default,lM:()=>c.default,m_:()=>C.default,jK:()=>f.default});var s=a(92542),l=a(11910),r=a(98),n=a(84588),i=a(81127),d=a(25086);a(56319);var o=a(56061),c=a(98542);a(61929),a(21110),a(92622),a(8823),a(92173);var x=a(90882),m=a(72908),u=a(28815),p=a(45455),h=a(28058),f=a(4809);a(21931),a(80752),a(40197);var b=a(23615);a(44736);var g=a(62899);a(94230);var j=a(30815),v=a(23936),N=a(95088),w=a(73579),k=a(96748),y=a(4823),S=a(28067),C=a(97677),D=a(51825),R=a(29366);a(76361),a(91450)},81772:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>C});var s=a(95155),l=a(12115),r=a(73321),n=a(35497),i=a(84588),d=a(92542),o=a(31474),c=a(34131);function x({isOpen:e,onClose:t,title:a,children:r,width:n="md",className:i,"aria-label":d}){let m={sm:"w-[400px]",md:"w-[500px]",lg:"w-[600px]",xl:"w-[800px]",full:"w-full"},u=(0,c.sp)({isOpen:e,onClose:t}),p=(0,l.useId)();return e?(0,s.jsxs)("div",{className:"fixed inset-0 z-50",children:[(0,s.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px] fade-in cursor-pointer",onClick:t,"aria-hidden":"true"}),(0,s.jsxs)("div",{ref:u,role:"dialog","aria-modal":"true","aria-label":d,"aria-labelledby":d?void 0:a?p:void 0,tabIndex:-1,className:(0,o.cn)("absolute right-0 top-0 h-full bg-surface flex flex-col","shadow-[var(--shadow-elev)]","slide-in-right","border-l border-border-subtle","outline-none",m[n]||m.md,i),children:[(0,s.jsxs)("div",{className:"flex items-center justify-between p-6 border-b border-border-subtle flex-shrink-0",children:[(0,s.jsx)("div",{className:"flex items-center gap-3",children:a&&(0,s.jsx)("h2",{id:p,className:"text-lg font-semibold text-text-main",children:a})}),(0,s.jsx)("button",{type:"button",onClick:t,"aria-label":"Close",className:"p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,s.jsx)("div",{className:"flex-1 overflow-y-auto p-6 custom-scrollbar",children:r})]})]}):null}function m({currentPage:e,pageSize:t,totalItems:a,onPageChange:l,onPageSizeChange:r,className:n}){let i=Math.ceil(a/t),c=a>0?(e-1)*t+1:0,x=Math.min(e*t,a),u=(()=>{let t=[],a=Math.max(1,e-2),s=Math.min(i,a+5-1);s-a+1<5&&(a=Math.max(1,s-5+1));for(let e=a;e<=s;e++)t.push(e);return t})();return(0,s.jsxs)("div",{className:(0,o.cn)("flex flex-col sm:flex-row items-center justify-between gap-4 py-4 px-2",n),children:[a>0&&(0,s.jsxs)("div",{className:"text-sm text-text-muted",children:["Showing ",(0,s.jsx)("span",{className:"font-medium text-text-main",children:c})," to"," ",(0,s.jsx)("span",{className:"font-medium text-text-main",children:x})," of"," ",(0,s.jsx)("span",{className:"font-medium text-text-main",children:a})," results"]}),(0,s.jsxs)("nav",{"aria-label":"Pagination",className:"flex flex-wrap items-center justify-center gap-2 sm:gap-4",children:[r&&(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-sm text-text-muted",children:"Rows:"}),(0,s.jsx)("select",{"aria-label":"Rows per page",value:t,onChange:e=>r(Number(e.target.value)),className:(0,o.cn)("h-9 rounded-lg border border-black/10 dark:border-white/10 bg-surface","text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20","cursor-pointer"),style:{colorScheme:"auto"},children:[10,20,50].map(e=>(0,s.jsx)("option",{value:e,children:e},e))})]}),i>1&&(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[(0,s.jsx)(d.default,{variant:"outline","aria-label":"Previous page",onClick:()=>l(e-1),disabled:1===e,className:"w-9 px-0",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"chevron_left"})}),u[0]>1&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(d.default,{variant:"ghost",size:"sm",onClick:()=>l(1),className:"w-9 px-0 hidden sm:inline-flex",children:"1"}),u[0]>2&&(0,s.jsx)("span",{className:"text-text-muted px-1 hidden sm:inline",children:"..."})]}),u.map(t=>(0,s.jsx)(d.default,{variant:e===t?"primary":"ghost",size:"sm","aria-current":e===t?"page":void 0,onClick:()=>l(t),className:(0,o.cn)("w-9 px-0",e===t?"inline-flex":"hidden sm:inline-flex"),children:t},t)),u[u.length-1]<i&&(0,s.jsxs)(s.Fragment,{children:[u[u.length-1]<i-1&&(0,s.jsx)("span",{className:"text-text-muted px-1 hidden sm:inline",children:"..."}),(0,s.jsx)(d.default,{variant:"ghost",size:"sm",onClick:()=>l(i),className:"w-9 px-0 hidden sm:inline-flex",children:i})]}),(0,s.jsx)(d.default,{variant:"outline","aria-label":"Next page",onClick:()=>l(e+1),disabled:e===i,className:"w-9 px-0",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"chevron_right"})})]})]})]})}var u=a(88105),p=a(78559);let h=null,f=null;async function b(){if(h&&f)return{providerNameCache:h,providerNodesCache:f};let e=await fetch("/api/provider-nodes"),t=(await e.json()).nodes||[];for(let e of(f={},t))f[e.id]=e.name;return{providerNameCache:h={...u.Q2,...f},providerNodesCache:f}}function g(e,t){if(!e||!t)return e;let a=t[e];if("string"==typeof a)return a;if(a?.name)return a.name;let s=(0,u.zt)(e)||u.Q2[e];return s?.name||e}function j({title:e,children:t,defaultOpen:a=!1,icon:r=null}){let[n,i]=(0,l.useState)(a),d=(0,l.useId)();return(0,s.jsxs)("div",{className:"border border-black/5 dark:border-white/5 rounded-lg overflow-hidden",children:[(0,s.jsxs)("button",{type:"button",onClick:()=>i(!n),"aria-expanded":n,"aria-controls":d,className:"w-full flex items-center justify-between p-3 bg-black/[0.02] dark:bg-white/[0.02] hover:bg-black/[0.04] dark:hover:bg-white/[0.04] transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 focus-visible:ring-inset",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[r&&(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px] text-text-muted","aria-hidden":"true",children:r}),(0,s.jsx)("span",{className:"font-semibold text-sm text-text-main",children:e})]}),(0,s.jsx)("span",{"aria-hidden":"true",className:(0,o.cn)("material-symbols-outlined text-[20px] text-text-muted transition-transform duration-200",n?"rotate-90":""),children:"chevron_right"})]}),n&&(0,s.jsx)("div",{id:d,className:"p-4 border-t border-black/5 dark:border-white/5",children:t})]})}function v({startDate:e,endDate:t}){if(!e||!t)return!1;let a=new Date(e).getTime(),s=new Date(t).getTime();return!(Number.isNaN(a)||Number.isNaN(s))&&a>s}function N(e){return e?.cached_tokens||e?.cache_read_input_tokens||0}function w(e){return e?.cache_creation_input_tokens||0}function k(e){let t=e?.prompt_tokens||e?.input_tokens||0,a=N(e);return t<a?a:t}function y(){let[e,t]=(0,l.useState)([]),[a,r]=(0,l.useState)({page:1,pageSize:20,totalItems:0,totalPages:0}),[n,c]=(0,l.useState)(!1),[u,h]=(0,l.useState)(null),[f,y]=(0,l.useState)(null),[S,C]=(0,l.useState)(!1),[D,R]=(0,l.useState)(!1),[_,P]=(0,l.useState)(null),L=(0,l.useRef)(0),T=(0,l.useRef)(0),[z,I]=(0,l.useState)([]),[q,F]=(0,l.useState)(null),[E,M]=(0,l.useState)({provider:"",startDate:"",endDate:""}),O=(0,l.useCallback)(async()=>{try{let e=await fetch("/api/usage/providers"),t=await e.json();I(t.providers||[]);let a=await b();F(a.providerNameCache)}catch(e){(0,p.s)("Failed to fetch providers:",e)}},[]),$=(0,l.useCallback)(async()=>{if(v(E))return;let e=L.current+1;L.current=e,c(!0),h(null);try{let s=new URLSearchParams({page:a.page.toString(),pageSize:a.pageSize.toString()});E.provider&&s.append("provider",E.provider),E.startDate&&s.append("startDate",E.startDate),E.endDate&&s.append("endDate",E.endDate);let l=await fetch(`/api/usage/request-details?${s}`);if(e!==L.current)return;if(!l.ok)throw Error(`Request failed with status ${l.status}`);let n=await l.json();if(e!==L.current)return;t(n.details||[]),r(e=>({...e,...n.pagination}))}catch(t){if(e!==L.current)return;(0,p.s)("Failed to fetch request details:",t),h(t?.message||"Network request failed")}finally{e===L.current&&c(!1)}},[a.page,a.pageSize,E]);(0,l.useEffect)(()=>{O()},[O]),(0,l.useEffect)(()=>{$()},[$]);let Q=async e=>{let t=T.current+1;T.current=t,y({...e,_loading:!0}),P(null),R(!0),C(!0);try{let a=await fetch(`/api/usage/request-details/${encodeURIComponent(e.id)}`);if(!a.ok)throw Error(`Request failed with status ${a.status}`);let s=await a.json();if(t!==T.current)return;y(s.detail||e)}catch(a){if(t!==T.current)return;(0,p.s)("Failed to fetch full request payload:",a),y(e),P("Full payload unavailable — showing list metadata.")}finally{t===T.current&&R(!1)}},A=v(E),J=e=>{M(t=>({...t,...e})),r(e=>({...e,page:1}))};return(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-6",children:[(0,s.jsxs)(i.default,{padding:"md",children:[(0,s.jsxs)("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,s.jsx)("label",{htmlFor:"provider-filter",className:"text-sm font-medium text-text-main",children:"Provider"}),(0,s.jsxs)("select",{id:"provider-filter",value:E.provider,onChange:e=>J({provider:e.target.value}),className:(0,o.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20","w-full min-w-0 cursor-pointer"),style:{colorScheme:"auto"},children:[(0,s.jsx)("option",{value:"",children:"All Providers"}),z.map(e=>(0,s.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,s.jsx)("label",{htmlFor:"start-date-filter",className:"text-sm font-medium text-text-main",children:"Start Date"}),(0,s.jsx)("input",{id:"start-date-filter",type:"datetime-local",value:E.startDate,"aria-invalid":A||void 0,"aria-describedby":A?"usage-date-range-error":void 0,onChange:e=>J({startDate:e.target.value}),className:(0,o.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","w-full min-w-0 text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20")})]}),(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,s.jsx)("label",{htmlFor:"end-date-filter",className:"text-sm font-medium text-text-main",children:"End Date"}),(0,s.jsx)("input",{id:"end-date-filter",type:"datetime-local",value:E.endDate,"aria-invalid":A||void 0,"aria-describedby":A?"usage-date-range-error":void 0,onChange:e=>J({endDate:e.target.value}),className:(0,o.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","w-full min-w-0 text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20")})]}),(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-2 sm:col-span-2 lg:col-span-1",children:[(0,s.jsx)("span",{className:"hidden text-sm font-medium text-text-main opacity-0 lg:block","aria-hidden":"true",children:"Clear"}),(0,s.jsx)(d.default,{variant:"ghost",onClick:()=>{M({provider:"",startDate:"",endDate:""}),r(e=>({...e,page:1}))},disabled:!E.provider&&!E.startDate&&!E.endDate,className:"w-full",children:"Clear Filters"})]})]}),A&&(0,s.jsx)("div",{id:"usage-date-range-error",role:"alert",className:"mt-3 text-sm text-danger",children:"Start Date must be on or before End Date."})]}),(0,s.jsxs)(i.default,{padding:"none",children:[(0,s.jsx)("div",{className:"overflow-x-auto",children:(0,s.jsxs)("table",{className:"w-full min-w-[880px]",children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5",children:[(0,s.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Timestamp"}),(0,s.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Model"}),(0,s.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Provider"}),(0,s.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Input Tokens"}),(0,s.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Cached"}),(0,s.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Cache Creation"}),(0,s.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Output Tokens"}),(0,s.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Latency"}),(0,s.jsx)("th",{className:"text-center p-4 text-sm font-semibold text-text-main",children:"Action"})]})}),(0,s.jsx)("tbody",{children:n?(0,s.jsx)("tr",{children:(0,s.jsx)("td",{colSpan:"9",className:"p-8 text-center text-text-muted",children:(0,s.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,s.jsx)("span",{className:"material-symbols-outlined animate-spin text-[20px]","aria-hidden":"true",children:"progress_activity"}),"Loading..."]})})}):u?(0,s.jsx)("tr",{children:(0,s.jsx)("td",{colSpan:"9",className:"p-8 text-center",children:(0,s.jsxs)("div",{role:"alert",className:"flex flex-col items-center justify-center gap-2",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[24px] text-danger","aria-hidden":"true",children:"error"}),(0,s.jsx)("p",{className:"text-sm font-medium text-text-main",children:"Failed to load request details"}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:u}),(0,s.jsx)(d.default,{variant:"outline",size:"sm",onClick:()=>$(),className:"mt-1",children:"Retry"})]})})}):0===e.length?(0,s.jsx)("tr",{children:(0,s.jsx)("td",{colSpan:"9",className:"p-8 text-center text-text-muted",children:"No request details found"})}):e.map((e,t)=>(0,s.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5 last:border-b-0 hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors",children:[(0,s.jsx)("td",{className:"whitespace-nowrap p-4 text-sm text-text-main",children:new Date(e.timestamp).toLocaleString()}),(0,s.jsx)("td",{className:"max-w-[260px] truncate p-4 font-mono text-sm text-text-main",children:e.model}),(0,s.jsx)("td",{className:"max-w-[180px] truncate p-4 text-sm text-text-main",children:(0,s.jsx)("span",{className:"font-medium",children:g(e.provider,q)})}),(0,s.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:k(e.tokens).toLocaleString()}),(0,s.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:N(e.tokens)>0?N(e.tokens).toLocaleString():"—"}),(0,s.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:w(e.tokens)>0?w(e.tokens).toLocaleString():"—"}),(0,s.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:e.tokens?.completion_tokens?.toLocaleString()||0}),(0,s.jsx)("td",{className:"p-4 text-sm text-text-muted",children:(0,s.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,s.jsxs)("div",{children:["TTFT: ",(0,s.jsxs)("span",{className:"font-mono",children:[e.latency?.ttft||0,"ms"]})]}),(0,s.jsxs)("div",{children:["Total: ",(0,s.jsxs)("span",{className:"font-mono",children:[e.latency?.total||0,"ms"]})]})]})}),(0,s.jsx)("td",{className:"p-4 text-center",children:(0,s.jsx)(d.default,{variant:"outline",size:"sm",onClick:()=>Q(e),children:"Detail"})})]},`${e.id}-${t}`))})]})}),!n&&!u&&e.length>0&&(0,s.jsx)("div",{className:"border-t border-black/5 dark:border-white/5",children:(0,s.jsx)(m,{currentPage:a.page,pageSize:a.pageSize,totalItems:a.totalItems,onPageChange:e=>{r(t=>({...t,page:e}))},onPageSizeChange:e=>{r(t=>({...t,pageSize:e,page:1}))}})})]}),(0,s.jsx)(x,{isOpen:S,onClose:()=>{C(!1),P(null)},title:"Request Details",width:"lg",children:f&&(0,s.jsxs)("div",{className:"space-y-6",children:[D&&(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm text-text-muted",role:"status",children:[(0,s.jsx)("span",{className:"material-symbols-outlined animate-spin text-[20px]","aria-hidden":"true",children:"progress_activity"}),"Loading full payload…"]}),_&&(0,s.jsx)("div",{role:"alert",className:"rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-sm text-amber-600 dark:text-amber-300",children:_}),(0,s.jsxs)("div",{className:"grid min-w-0 grid-cols-1 gap-4 text-sm sm:grid-cols-2",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"ID:"})," ",(0,s.jsx)("span",{className:"break-all font-mono text-text-main",children:f.id})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Timestamp:"})," ",(0,s.jsx)("span",{className:"text-text-main",children:new Date(f.timestamp).toLocaleString()})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Provider:"})," ",(0,s.jsx)("span",{className:"text-text-main font-medium",children:g(f.provider,q)})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Model:"})," ",(0,s.jsx)("span",{className:"text-text-main font-mono",children:f.model})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Status:"})," ",(0,s.jsx)("span",{className:(0,o.cn)("font-medium","success"===f.status?"text-green-600":"text-red-600"),children:f.status})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Latency:"})," ",(0,s.jsxs)("span",{className:"text-text-main font-mono",children:["TTFT ",f.latency?.ttft||0,"ms / Total ",f.latency?.total||0,"ms"]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Input Tokens:"})," ",(0,s.jsx)("span",{className:"text-text-main font-mono",children:k(f.tokens).toLocaleString()})]}),N(f.tokens)>0&&(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Cached Tokens:"})," ",(0,s.jsx)("span",{className:"text-text-main font-mono",children:N(f.tokens).toLocaleString()})]}),w(f.tokens)>0&&(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Cache Creation:"})," ",(0,s.jsx)("span",{className:"text-text-main font-mono",children:w(f.tokens).toLocaleString()})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Output Tokens:"})," ",(0,s.jsx)("span",{className:"text-text-main font-mono",children:f.tokens?.completion_tokens?.toLocaleString()||0})]})]}),f.pxpipe&&(0,s.jsxs)("div",{className:"rounded-lg border border-black/5 dark:border-white/5 p-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px] text-text-muted",children:"image"}),(0,s.jsx)("span",{className:"font-semibold text-sm text-text-main",children:"PXPIPE"}),(0,s.jsx)("span",{className:(0,o.cn)("text-xs px-2 py-0.5 rounded",f.pxpipe.applied?"bg-green-500/15 text-green-600":"bg-amber-500/15 text-amber-600"),children:f.pxpipe.applied?"Activated":"Skipped"})]}),f.pxpipe.applied?(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-2 text-sm sm:grid-cols-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted block text-xs",children:"Original (est.)"}),(0,s.jsxs)("span",{className:"font-mono",children:[(f.pxpipe.tokensBeforeEst||0).toLocaleString()," tokens"]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted block text-xs",children:"Compressed (est.)"}),(0,s.jsxs)("span",{className:"font-mono",children:[(f.pxpipe.tokensAfterEst||0).toLocaleString()," tokens"]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted block text-xs",children:"Saved"}),(0,s.jsxs)("span",{className:"font-mono text-green-600",children:[f.pxpipe.savedPct||0,"%"]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted block text-xs",children:"Images"}),(0,s.jsxs)("span",{className:"font-mono",children:[f.pxpipe.imageCount||0," (",f.pxpipe.durationMs||0,"ms)"]})]})]}):(0,s.jsxs)("p",{className:"text-sm text-text-muted",children:["Reason: ",(0,s.jsx)("span",{className:"font-mono",children:f.pxpipe.reason}),f.pxpipe.detail?` — ${f.pxpipe.detail}`:""]})]}),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(j,{title:"1. Client Request (Input)",defaultOpen:!0,icon:"input",children:(0,s.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:JSON.stringify(f.request,null,2)})}),f.providerRequest&&(0,s.jsx)(j,{title:"2. Provider Request (Translated)",icon:"translate",children:(0,s.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:JSON.stringify(f.providerRequest,null,2)})}),f.providerResponse&&(0,s.jsx)(j,{title:"3. Provider Response (Raw)",icon:"data_object",children:(0,s.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:"object"==typeof f.providerResponse?JSON.stringify(f.providerResponse,null,2):f.providerResponse})}),(0,s.jsxs)(j,{title:"4. Client Response (Final)",defaultOpen:!0,icon:"output",children:[f.response?.thinking&&(0,s.jsxs)("div",{className:"mb-4",children:[(0,s.jsxs)("h4",{className:"font-semibold text-text-main mb-2 flex items-center gap-2 text-xs uppercase tracking-wide opacity-70",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"psychology"}),"Thinking Process"]}),(0,s.jsx)("pre",{className:"max-h-[200px] max-w-full overflow-auto rounded-lg border border-amber-200 bg-amber-50 p-3 font-mono text-xs text-amber-900 dark:border-amber-800 dark:bg-amber-950/30 dark:text-amber-100 sm:p-4",children:f.response.thinking})]}),(0,s.jsx)("h4",{className:"font-semibold text-text-main mb-2 text-xs uppercase tracking-wide opacity-70",children:"Content"}),(0,s.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:f.response?.content||"[No content]"})]})]})]})})]})}let S=[{value:"today",label:"Today"},{value:"24h",label:"24h"},{value:"7d",label:"7D"},{value:"30d",label:"30D"},{value:"60d",label:"60D"}];function C(){return(0,s.jsx)(l.Suspense,{fallback:(0,s.jsx)(n.Qv,{}),children:(0,s.jsx)(D,{})})}function D(){let e=(0,r.useSearchParams)(),t=(0,r.useRouter)(),[a,i]=(0,l.useState)("today"),d=e.get("tab"),o=d&&["overview","logs","details"].includes(d)?d:"overview";return(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[(0,s.jsx)(n.Iz,{options:[{value:"overview",label:"Overview"},{value:"logs",label:"Logs"},{value:"details",label:"Details"}],value:o,onChange:a=>{if(a===o)return;let s=new URLSearchParams(e);s.set("tab",a),t.push(`/dashboard/usage?${s.toString()}`,{scroll:!1})},className:"w-full sm:w-auto"}),"overview"===o&&(0,s.jsx)(n.Iz,{options:S,value:a,onChange:i,size:"sm",className:"w-full sm:w-auto"})]}),"overview"===o&&(0,s.jsx)(l.Suspense,{fallback:(0,s.jsx)(n.Qv,{}),children:(0,s.jsx)(n.jK,{period:a,setPeriod:i,hidePeriodSelector:!0})}),"logs"===o&&(0,s.jsx)(n.gM,{}),"details"===o&&(0,s.jsx)(y,{})]})}},87618:(e,t,a)=>{Promise.resolve().then(a.bind(a,81772))}},e=>{e.O(0,[2574,3862,782,8500,594,1321,4707,1330,8441,3794,7358],()=>e(e.s=87618)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2825],{35497:(e,t,a)=>{"use strict";a.d(t,{x0:()=>k.default,Ex:()=>o.default,$n:()=>s.default,nh:()=>R.default,Zp:()=>n.default,Qv:()=>d.CardSkeleton,CK:()=>p.default,uo:()=>i.ConfirmModal,G9:()=>j.default,wI:()=>w.default,vj:()=>N.default,vE:()=>v.default,pd:()=>l.default,Mh:()=>g.default,uR:()=>u.default,Nf:()=>h.default,aF:()=>i.default,rq:()=>m.default,gw:()=>y.default,LF:()=>x.default,Wx:()=>D.default,gM:()=>b.default,Iz:()=>S.default,l6:()=>r.default,lM:()=>c.default,m_:()=>C.default,jK:()=>f.default});var s=a(92542),l=a(11910),r=a(98),n=a(84588),i=a(81127),d=a(25086);a(56319);var o=a(56061),c=a(98542);a(61929),a(21110),a(92622),a(8823),a(92173);var x=a(90882),m=a(72908),u=a(28815),p=a(45455),h=a(28058),f=a(4809);a(21931),a(80752),a(40197);var b=a(23615);a(44736);var g=a(62899);a(94230);var j=a(30815),v=a(23936),N=a(95088),w=a(73579),k=a(96748),y=a(4823),S=a(28067),C=a(97677),D=a(51825),R=a(29366);a(76361),a(91450)},81772:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>C});var s=a(95155),l=a(12115),r=a(73321),n=a(35497),i=a(84588),d=a(92542),o=a(31474),c=a(34131);function x({isOpen:e,onClose:t,title:a,children:r,width:n="md",className:i,"aria-label":d}){let m={sm:"w-[400px]",md:"w-[500px]",lg:"w-[600px]",xl:"w-[800px]",full:"w-full"},u=(0,c.sp)({isOpen:e,onClose:t}),p=(0,l.useId)();return e?(0,s.jsxs)("div",{className:"fixed inset-0 z-50",children:[(0,s.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px] fade-in cursor-pointer",onClick:t,"aria-hidden":"true"}),(0,s.jsxs)("div",{ref:u,role:"dialog","aria-modal":"true","aria-label":d,"aria-labelledby":d?void 0:a?p:void 0,tabIndex:-1,className:(0,o.cn)("absolute right-0 top-0 h-full bg-surface flex flex-col","shadow-[var(--shadow-elev)]","slide-in-right","border-l border-border-subtle","outline-none",m[n]||m.md,i),children:[(0,s.jsxs)("div",{className:"flex items-center justify-between p-6 border-b border-border-subtle flex-shrink-0",children:[(0,s.jsx)("div",{className:"flex items-center gap-3",children:a&&(0,s.jsx)("h2",{id:p,className:"text-lg font-semibold text-text-main",children:a})}),(0,s.jsx)("button",{type:"button",onClick:t,"aria-label":"Close",className:"p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,s.jsx)("div",{className:"flex-1 overflow-y-auto p-6 custom-scrollbar",children:r})]})]}):null}function m({currentPage:e,pageSize:t,totalItems:a,onPageChange:l,onPageSizeChange:r,className:n}){let i=Math.ceil(a/t),c=a>0?(e-1)*t+1:0,x=Math.min(e*t,a),u=(()=>{let t=[],a=Math.max(1,e-2),s=Math.min(i,a+5-1);s-a+1<5&&(a=Math.max(1,s-5+1));for(let e=a;e<=s;e++)t.push(e);return t})();return(0,s.jsxs)("div",{className:(0,o.cn)("flex flex-col sm:flex-row items-center justify-between gap-4 py-4 px-2",n),children:[a>0&&(0,s.jsxs)("div",{className:"text-sm text-text-muted",children:["Showing ",(0,s.jsx)("span",{className:"font-medium text-text-main",children:c})," to"," ",(0,s.jsx)("span",{className:"font-medium text-text-main",children:x})," of"," ",(0,s.jsx)("span",{className:"font-medium text-text-main",children:a})," results"]}),(0,s.jsxs)("nav",{"aria-label":"Pagination",className:"flex flex-wrap items-center justify-center gap-2 sm:gap-4",children:[r&&(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[(0,s.jsx)("span",{className:"text-sm text-text-muted",children:"Rows:"}),(0,s.jsx)("select",{"aria-label":"Rows per page",value:t,onChange:e=>r(Number(e.target.value)),className:(0,o.cn)("h-9 rounded-lg border border-black/10 dark:border-white/10 bg-surface","text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20","cursor-pointer"),style:{colorScheme:"auto"},children:[10,20,50].map(e=>(0,s.jsx)("option",{value:e,children:e},e))})]}),i>1&&(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[(0,s.jsx)(d.default,{variant:"outline","aria-label":"Previous page",onClick:()=>l(e-1),disabled:1===e,className:"w-9 px-0",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"chevron_left"})}),u[0]>1&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(d.default,{variant:"ghost",size:"sm",onClick:()=>l(1),className:"w-9 px-0 hidden sm:inline-flex",children:"1"}),u[0]>2&&(0,s.jsx)("span",{className:"text-text-muted px-1 hidden sm:inline",children:"..."})]}),u.map(t=>(0,s.jsx)(d.default,{variant:e===t?"primary":"ghost",size:"sm","aria-current":e===t?"page":void 0,onClick:()=>l(t),className:(0,o.cn)("w-9 px-0",e===t?"inline-flex":"hidden sm:inline-flex"),children:t},t)),u[u.length-1]<i&&(0,s.jsxs)(s.Fragment,{children:[u[u.length-1]<i-1&&(0,s.jsx)("span",{className:"text-text-muted px-1 hidden sm:inline",children:"..."}),(0,s.jsx)(d.default,{variant:"ghost",size:"sm",onClick:()=>l(i),className:"w-9 px-0 hidden sm:inline-flex",children:i})]}),(0,s.jsx)(d.default,{variant:"outline","aria-label":"Next page",onClick:()=>l(e+1),disabled:e===i,className:"w-9 px-0",children:(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"chevron_right"})})]})]})]})}var u=a(88105),p=a(78559);let h=null,f=null;async function b(){if(h&&f)return{providerNameCache:h,providerNodesCache:f};let e=await fetch("/api/provider-nodes"),t=(await e.json()).nodes||[];for(let e of(f={},t))f[e.id]=e.name;return{providerNameCache:h={...u.Q2,...f},providerNodesCache:f}}function g(e,t){if(!e||!t)return e;let a=t[e];if("string"==typeof a)return a;if(a?.name)return a.name;let s=(0,u.zt)(e)||u.Q2[e];return s?.name||e}function j({title:e,children:t,defaultOpen:a=!1,icon:r=null}){let[n,i]=(0,l.useState)(a),d=(0,l.useId)();return(0,s.jsxs)("div",{className:"border border-black/5 dark:border-white/5 rounded-lg overflow-hidden",children:[(0,s.jsxs)("button",{type:"button",onClick:()=>i(!n),"aria-expanded":n,"aria-controls":d,className:"w-full flex items-center justify-between p-3 bg-black/[0.02] dark:bg-white/[0.02] hover:bg-black/[0.04] dark:hover:bg-white/[0.04] transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-primary/50 focus-visible:ring-inset",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2",children:[r&&(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px] text-text-muted","aria-hidden":"true",children:r}),(0,s.jsx)("span",{className:"font-semibold text-sm text-text-main",children:e})]}),(0,s.jsx)("span",{"aria-hidden":"true",className:(0,o.cn)("material-symbols-outlined text-[20px] text-text-muted transition-transform duration-200",n?"rotate-90":""),children:"chevron_right"})]}),n&&(0,s.jsx)("div",{id:d,className:"p-4 border-t border-black/5 dark:border-white/5",children:t})]})}function v({startDate:e,endDate:t}){if(!e||!t)return!1;let a=new Date(e).getTime(),s=new Date(t).getTime();return!(Number.isNaN(a)||Number.isNaN(s))&&a>s}function N(e){return e?.cached_tokens||e?.cache_read_input_tokens||0}function w(e){return e?.cache_creation_input_tokens||0}function k(e){let t=e?.prompt_tokens||e?.input_tokens||0,a=N(e);return t<a?a:t}function y(){let[e,t]=(0,l.useState)([]),[a,r]=(0,l.useState)({page:1,pageSize:20,totalItems:0,totalPages:0}),[n,c]=(0,l.useState)(!1),[u,h]=(0,l.useState)(null),[f,y]=(0,l.useState)(null),[S,C]=(0,l.useState)(!1),[D,R]=(0,l.useState)(!1),[_,P]=(0,l.useState)(null),L=(0,l.useRef)(0),T=(0,l.useRef)(0),[z,I]=(0,l.useState)([]),[q,F]=(0,l.useState)(null),[E,M]=(0,l.useState)({provider:"",startDate:"",endDate:""}),O=(0,l.useCallback)(async()=>{try{let e=await fetch("/api/usage/providers"),t=await e.json();I(t.providers||[]);let a=await b();F(a.providerNameCache)}catch(e){(0,p.s)("Failed to fetch providers:",e)}},[]),$=(0,l.useCallback)(async()=>{if(v(E))return;let e=L.current+1;L.current=e,c(!0),h(null);try{let s=new URLSearchParams({page:a.page.toString(),pageSize:a.pageSize.toString()});E.provider&&s.append("provider",E.provider),E.startDate&&s.append("startDate",E.startDate),E.endDate&&s.append("endDate",E.endDate);let l=await fetch(`/api/usage/request-details?${s}`);if(e!==L.current)return;if(!l.ok)throw Error(`Request failed with status ${l.status}`);let n=await l.json();if(e!==L.current)return;t(n.details||[]),r(e=>({...e,...n.pagination}))}catch(t){if(e!==L.current)return;(0,p.s)("Failed to fetch request details:",t),h(t?.message||"Network request failed")}finally{e===L.current&&c(!1)}},[a.page,a.pageSize,E]);(0,l.useEffect)(()=>{O()},[O]),(0,l.useEffect)(()=>{$()},[$]);let Q=async e=>{let t=T.current+1;T.current=t,y({...e,_loading:!0}),P(null),R(!0),C(!0);try{let a=await fetch(`/api/usage/request-details/${encodeURIComponent(e.id)}`);if(!a.ok)throw Error(`Request failed with status ${a.status}`);let s=await a.json();if(t!==T.current)return;y(s.detail||e)}catch(a){if(t!==T.current)return;(0,p.s)("Failed to fetch full request payload:",a),y(e),P("Full payload unavailable — showing list metadata.")}finally{t===T.current&&R(!1)}},A=v(E),J=e=>{M(t=>({...t,...e})),r(e=>({...e,page:1}))};return(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-6",children:[(0,s.jsxs)(i.default,{padding:"md",children:[(0,s.jsxs)("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,s.jsx)("label",{htmlFor:"provider-filter",className:"text-sm font-medium text-text-main",children:"Provider"}),(0,s.jsxs)("select",{id:"provider-filter",value:E.provider,onChange:e=>J({provider:e.target.value}),className:(0,o.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20","w-full min-w-0 cursor-pointer"),style:{colorScheme:"auto"},children:[(0,s.jsx)("option",{value:"",children:"All Providers"}),z.map(e=>(0,s.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,s.jsx)("label",{htmlFor:"start-date-filter",className:"text-sm font-medium text-text-main",children:"Start Date"}),(0,s.jsx)("input",{id:"start-date-filter",type:"datetime-local",value:E.startDate,"aria-invalid":A||void 0,"aria-describedby":A?"usage-date-range-error":void 0,onChange:e=>J({startDate:e.target.value}),className:(0,o.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","w-full min-w-0 text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20")})]}),(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,s.jsx)("label",{htmlFor:"end-date-filter",className:"text-sm font-medium text-text-main",children:"End Date"}),(0,s.jsx)("input",{id:"end-date-filter",type:"datetime-local",value:E.endDate,"aria-invalid":A||void 0,"aria-describedby":A?"usage-date-range-error":void 0,onChange:e=>J({endDate:e.target.value}),className:(0,o.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","w-full min-w-0 text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20")})]}),(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-2 sm:col-span-2 lg:col-span-1",children:[(0,s.jsx)("span",{className:"hidden text-sm font-medium text-text-main opacity-0 lg:block","aria-hidden":"true",children:"Clear"}),(0,s.jsx)(d.default,{variant:"ghost",onClick:()=>{M({provider:"",startDate:"",endDate:""}),r(e=>({...e,page:1}))},disabled:!E.provider&&!E.startDate&&!E.endDate,className:"w-full",children:"Clear Filters"})]})]}),A&&(0,s.jsx)("div",{id:"usage-date-range-error",role:"alert",className:"mt-3 text-sm text-danger",children:"Start Date must be on or before End Date."})]}),(0,s.jsxs)(i.default,{padding:"none",children:[(0,s.jsx)("div",{className:"overflow-x-auto",children:(0,s.jsxs)("table",{className:"w-full min-w-[880px]",children:[(0,s.jsx)("thead",{children:(0,s.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5",children:[(0,s.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Timestamp"}),(0,s.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Model"}),(0,s.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Provider"}),(0,s.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Input Tokens"}),(0,s.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Cached"}),(0,s.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Cache Creation"}),(0,s.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Output Tokens"}),(0,s.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Latency"}),(0,s.jsx)("th",{className:"text-center p-4 text-sm font-semibold text-text-main",children:"Action"})]})}),(0,s.jsx)("tbody",{children:n?(0,s.jsx)("tr",{children:(0,s.jsx)("td",{colSpan:"9",className:"p-8 text-center text-text-muted",children:(0,s.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,s.jsx)("span",{className:"material-symbols-outlined animate-spin text-[20px]","aria-hidden":"true",children:"progress_activity"}),"Loading..."]})})}):u?(0,s.jsx)("tr",{children:(0,s.jsx)("td",{colSpan:"9",className:"p-8 text-center",children:(0,s.jsxs)("div",{role:"alert",className:"flex flex-col items-center justify-center gap-2",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[24px] text-danger","aria-hidden":"true",children:"error"}),(0,s.jsx)("p",{className:"text-sm font-medium text-text-main",children:"Failed to load request details"}),(0,s.jsx)("p",{className:"text-xs text-text-muted",children:u}),(0,s.jsx)(d.default,{variant:"outline",size:"sm",onClick:()=>$(),className:"mt-1",children:"Retry"})]})})}):0===e.length?(0,s.jsx)("tr",{children:(0,s.jsx)("td",{colSpan:"9",className:"p-8 text-center text-text-muted",children:"No request details found"})}):e.map((e,t)=>(0,s.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5 last:border-b-0 hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors",children:[(0,s.jsx)("td",{className:"whitespace-nowrap p-4 text-sm text-text-main",children:new Date(e.timestamp).toLocaleString()}),(0,s.jsx)("td",{className:"max-w-[260px] truncate p-4 font-mono text-sm text-text-main",children:e.model}),(0,s.jsx)("td",{className:"max-w-[180px] truncate p-4 text-sm text-text-main",children:(0,s.jsx)("span",{className:"font-medium",children:g(e.provider,q)})}),(0,s.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:k(e.tokens).toLocaleString()}),(0,s.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:N(e.tokens)>0?N(e.tokens).toLocaleString():"—"}),(0,s.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:w(e.tokens)>0?w(e.tokens).toLocaleString():"—"}),(0,s.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:e.tokens?.completion_tokens?.toLocaleString()||0}),(0,s.jsx)("td",{className:"p-4 text-sm text-text-muted",children:(0,s.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,s.jsxs)("div",{children:["TTFT: ",(0,s.jsxs)("span",{className:"font-mono",children:[e.latency?.ttft||0,"ms"]})]}),(0,s.jsxs)("div",{children:["Total: ",(0,s.jsxs)("span",{className:"font-mono",children:[e.latency?.total||0,"ms"]})]})]})}),(0,s.jsx)("td",{className:"p-4 text-center",children:(0,s.jsx)(d.default,{variant:"outline",size:"sm",onClick:()=>Q(e),children:"Detail"})})]},`${e.id}-${t}`))})]})}),!n&&!u&&e.length>0&&(0,s.jsx)("div",{className:"border-t border-black/5 dark:border-white/5",children:(0,s.jsx)(m,{currentPage:a.page,pageSize:a.pageSize,totalItems:a.totalItems,onPageChange:e=>{r(t=>({...t,page:e}))},onPageSizeChange:e=>{r(t=>({...t,pageSize:e,page:1}))}})})]}),(0,s.jsx)(x,{isOpen:S,onClose:()=>{C(!1),P(null)},title:"Request Details",width:"lg",children:f&&(0,s.jsxs)("div",{className:"space-y-6",children:[D&&(0,s.jsxs)("div",{className:"flex items-center gap-2 text-sm text-text-muted",role:"status",children:[(0,s.jsx)("span",{className:"material-symbols-outlined animate-spin text-[20px]","aria-hidden":"true",children:"progress_activity"}),"Loading full payload…"]}),_&&(0,s.jsx)("div",{role:"alert",className:"rounded-lg border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-sm text-amber-600 dark:text-amber-300",children:_}),(0,s.jsxs)("div",{className:"grid min-w-0 grid-cols-1 gap-4 text-sm sm:grid-cols-2",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"ID:"})," ",(0,s.jsx)("span",{className:"break-all font-mono text-text-main",children:f.id})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Timestamp:"})," ",(0,s.jsx)("span",{className:"text-text-main",children:new Date(f.timestamp).toLocaleString()})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Provider:"})," ",(0,s.jsx)("span",{className:"text-text-main font-medium",children:g(f.provider,q)})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Model:"})," ",(0,s.jsx)("span",{className:"text-text-main font-mono",children:f.model})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Status:"})," ",(0,s.jsx)("span",{className:(0,o.cn)("font-medium","success"===f.status?"text-green-600":"text-red-600"),children:f.status})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Latency:"})," ",(0,s.jsxs)("span",{className:"text-text-main font-mono",children:["TTFT ",f.latency?.ttft||0,"ms / Total ",f.latency?.total||0,"ms"]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Input Tokens:"})," ",(0,s.jsx)("span",{className:"text-text-main font-mono",children:k(f.tokens).toLocaleString()})]}),N(f.tokens)>0&&(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Cached Tokens:"})," ",(0,s.jsx)("span",{className:"text-text-main font-mono",children:N(f.tokens).toLocaleString()})]}),w(f.tokens)>0&&(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Cache Creation:"})," ",(0,s.jsx)("span",{className:"text-text-main font-mono",children:w(f.tokens).toLocaleString()})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted",children:"Output Tokens:"})," ",(0,s.jsx)("span",{className:"text-text-main font-mono",children:f.tokens?.completion_tokens?.toLocaleString()||0})]})]}),f.pxpipe&&(0,s.jsxs)("div",{className:"rounded-lg border border-black/5 dark:border-white/5 p-4",children:[(0,s.jsxs)("div",{className:"flex items-center gap-2 mb-2",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[18px] text-text-muted",children:"image"}),(0,s.jsx)("span",{className:"font-semibold text-sm text-text-main",children:"PXPIPE"}),(0,s.jsx)("span",{className:(0,o.cn)("text-xs px-2 py-0.5 rounded",f.pxpipe.applied?"bg-green-500/15 text-green-600":"bg-amber-500/15 text-amber-600"),children:f.pxpipe.applied?"Activated":"Skipped"})]}),f.pxpipe.applied?(0,s.jsxs)("div",{className:"grid grid-cols-2 gap-2 text-sm sm:grid-cols-4",children:[(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted block text-xs",children:"Original (est.)"}),(0,s.jsxs)("span",{className:"font-mono",children:[(f.pxpipe.tokensBeforeEst||0).toLocaleString()," tokens"]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted block text-xs",children:"Compressed (est.)"}),(0,s.jsxs)("span",{className:"font-mono",children:[(f.pxpipe.tokensAfterEst||0).toLocaleString()," tokens"]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted block text-xs",children:"Saved"}),(0,s.jsxs)("span",{className:"font-mono text-green-600",children:[f.pxpipe.savedPct||0,"%"]})]}),(0,s.jsxs)("div",{children:[(0,s.jsx)("span",{className:"text-text-muted block text-xs",children:"Images"}),(0,s.jsxs)("span",{className:"font-mono",children:[f.pxpipe.imageCount||0," (",f.pxpipe.durationMs||0,"ms)"]})]})]}):(0,s.jsxs)("p",{className:"text-sm text-text-muted",children:["Reason: ",(0,s.jsx)("span",{className:"font-mono",children:f.pxpipe.reason}),f.pxpipe.detail?` — ${f.pxpipe.detail}`:""]})]}),(0,s.jsxs)("div",{className:"space-y-4",children:[(0,s.jsx)(j,{title:"1. Client Request (Input)",defaultOpen:!0,icon:"input",children:(0,s.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:JSON.stringify(f.request,null,2)})}),f.providerRequest&&(0,s.jsx)(j,{title:"2. Provider Request (Translated)",icon:"translate",children:(0,s.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:JSON.stringify(f.providerRequest,null,2)})}),f.providerResponse&&(0,s.jsx)(j,{title:"3. Provider Response (Raw)",icon:"data_object",children:(0,s.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:"object"==typeof f.providerResponse?JSON.stringify(f.providerResponse,null,2):f.providerResponse})}),(0,s.jsxs)(j,{title:"4. Client Response (Final)",defaultOpen:!0,icon:"output",children:[f.response?.thinking&&(0,s.jsxs)("div",{className:"mb-4",children:[(0,s.jsxs)("h4",{className:"font-semibold text-text-main mb-2 flex items-center gap-2 text-xs uppercase tracking-wide opacity-70",children:[(0,s.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"psychology"}),"Thinking Process"]}),(0,s.jsx)("pre",{className:"max-h-[200px] max-w-full overflow-auto rounded-lg border border-amber-200 bg-amber-50 p-3 font-mono text-xs text-amber-900 dark:border-amber-800 dark:bg-amber-950/30 dark:text-amber-100 sm:p-4",children:f.response.thinking})]}),(0,s.jsx)("h4",{className:"font-semibold text-text-main mb-2 text-xs uppercase tracking-wide opacity-70",children:"Content"}),(0,s.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:f.response?.content||"[No content]"})]})]})]})})]})}let S=[{value:"today",label:"Today"},{value:"24h",label:"24h"},{value:"7d",label:"7D"},{value:"30d",label:"30D"},{value:"60d",label:"60D"}];function C(){return(0,s.jsx)(l.Suspense,{fallback:(0,s.jsx)(n.Qv,{}),children:(0,s.jsx)(D,{})})}function D(){let e=(0,r.useSearchParams)(),t=(0,r.useRouter)(),[a,i]=(0,l.useState)("today"),d=e.get("tab"),o=d&&["overview","logs","details"].includes(d)?d:"overview";return(0,s.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[(0,s.jsx)(n.Iz,{options:[{value:"overview",label:"Overview"},{value:"logs",label:"Logs"},{value:"details",label:"Details"}],value:o,onChange:a=>{if(a===o)return;let s=new URLSearchParams(e);s.set("tab",a),t.push(`/dashboard/usage?${s.toString()}`,{scroll:!1})},className:"w-full sm:w-auto"}),"overview"===o&&(0,s.jsx)(n.Iz,{options:S,value:a,onChange:i,size:"sm",className:"w-full sm:w-auto"})]}),"overview"===o&&(0,s.jsx)(l.Suspense,{fallback:(0,s.jsx)(n.Qv,{}),children:(0,s.jsx)(n.jK,{period:a,setPeriod:i,hidePeriodSelector:!0})}),"logs"===o&&(0,s.jsx)(n.gM,{}),"details"===o&&(0,s.jsx)(y,{})]})}},87618:(e,t,a)=>{Promise.resolve().then(a.bind(a,81772))}},e=>{e.O(0,[2574,3862,782,8500,594,4601,1321,1330,8441,3794,7358],()=>e(e.s=87618)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9305],{19216:(e,s,n)=>{Promise.resolve().then(n.bind(n,96748)),Promise.resolve().then(n.bind(n,56319)),Promise.resolve().then(n.bind(n,56061)),Promise.resolve().then(n.bind(n,92542)),Promise.resolve().then(n.bind(n,29366)),Promise.resolve().then(n.bind(n,84588)),Promise.resolve().then(n.bind(n,40197)),Promise.resolve().then(n.bind(n,45455)),Promise.resolve().then(n.bind(n,30815)),Promise.resolve().then(n.bind(n,73579)),Promise.resolve().then(n.bind(n,92173)),Promise.resolve().then(n.bind(n,95088)),Promise.resolve().then(n.bind(n,8823)),Promise.resolve().then(n.bind(n,80752)),Promise.resolve().then(n.bind(n,23936)),Promise.resolve().then(n.bind(n,11910)),Promise.resolve().then(n.bind(n,44736)),Promise.resolve().then(n.bind(n,62899)),Promise.resolve().then(n.bind(n,94230)),Promise.resolve().then(n.bind(n,21931)),Promise.resolve().then(n.bind(n,91450)),Promise.resolve().then(n.bind(n,76361)),Promise.resolve().then(n.bind(n,25086)),Promise.resolve().then(n.bind(n,28815)),Promise.resolve().then(n.bind(n,28058)),Promise.resolve().then(n.bind(n,81127)),Promise.resolve().then(n.bind(n,72908)),Promise.resolve().then(n.bind(n,4823)),Promise.resolve().then(n.bind(n,90882)),Promise.resolve().then(n.bind(n,51825)),Promise.resolve().then(n.bind(n,23615)),Promise.resolve().then(n.bind(n,28067)),Promise.resolve().then(n.bind(n,98)),Promise.resolve().then(n.bind(n,92622)),Promise.resolve().then(n.bind(n,21110)),Promise.resolve().then(n.bind(n,61929)),Promise.resolve().then(n.bind(n,98542)),Promise.resolve().then(n.bind(n,97677)),Promise.resolve().then(n.bind(n,4809)),Promise.resolve().then(n.bind(n,28469))},28469:(e,s,n)=>{"use strict";n.d(s,{default:()=>l});var r=n(95155),i=n(12115),o=n(26430),t=n(35625);function l({children:e}){let[s]=(0,i.useState)(()=>new o.E({defaultOptions:{queries:{staleTime:3e4,refetchOnWindowFocus:!1,retry:1}}}));return(0,r.jsx)(t.Ht,{client:s,children:e})}}},e=>{e.O(0,[2574,3862,782,8500,594,6430,1321,4707,1330,8441,3794,7358],()=>e(e.s=19216)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9305],{19216:(e,s,n)=>{Promise.resolve().then(n.bind(n,96748)),Promise.resolve().then(n.bind(n,56319)),Promise.resolve().then(n.bind(n,56061)),Promise.resolve().then(n.bind(n,92542)),Promise.resolve().then(n.bind(n,29366)),Promise.resolve().then(n.bind(n,84588)),Promise.resolve().then(n.bind(n,40197)),Promise.resolve().then(n.bind(n,45455)),Promise.resolve().then(n.bind(n,30815)),Promise.resolve().then(n.bind(n,73579)),Promise.resolve().then(n.bind(n,92173)),Promise.resolve().then(n.bind(n,95088)),Promise.resolve().then(n.bind(n,8823)),Promise.resolve().then(n.bind(n,80752)),Promise.resolve().then(n.bind(n,23936)),Promise.resolve().then(n.bind(n,11910)),Promise.resolve().then(n.bind(n,44736)),Promise.resolve().then(n.bind(n,62899)),Promise.resolve().then(n.bind(n,94230)),Promise.resolve().then(n.bind(n,21931)),Promise.resolve().then(n.bind(n,91450)),Promise.resolve().then(n.bind(n,76361)),Promise.resolve().then(n.bind(n,25086)),Promise.resolve().then(n.bind(n,28815)),Promise.resolve().then(n.bind(n,28058)),Promise.resolve().then(n.bind(n,81127)),Promise.resolve().then(n.bind(n,72908)),Promise.resolve().then(n.bind(n,4823)),Promise.resolve().then(n.bind(n,90882)),Promise.resolve().then(n.bind(n,51825)),Promise.resolve().then(n.bind(n,23615)),Promise.resolve().then(n.bind(n,28067)),Promise.resolve().then(n.bind(n,98)),Promise.resolve().then(n.bind(n,92622)),Promise.resolve().then(n.bind(n,21110)),Promise.resolve().then(n.bind(n,61929)),Promise.resolve().then(n.bind(n,98542)),Promise.resolve().then(n.bind(n,97677)),Promise.resolve().then(n.bind(n,4809)),Promise.resolve().then(n.bind(n,28469))},28469:(e,s,n)=>{"use strict";n.d(s,{default:()=>l});var r=n(95155),i=n(12115),o=n(26430),t=n(35625);function l({children:e}){let[s]=(0,i.useState)(()=>new o.E({defaultOptions:{queries:{staleTime:3e4,refetchOnWindowFocus:!1,retry:1}}}));return(0,r.jsx)(t.Ht,{client:s,children:e})}}},e=>{e.O(0,[2574,3862,782,8500,594,6430,4601,1321,1330,8441,3794,7358],()=>e(e.s=19216)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7370],{1934:(e,t,s)=>{"use strict";s.d(t,{v:()=>n});var r=s(12115);let a=e=>{let t,s=new Set,r=(e,r)=>{let a="function"==typeof e?e(t):e;if(!Object.is(a,t)){let e=t;t=(null!=r?r:"object"!=typeof a||null===a)?a:Object.assign({},t,a),s.forEach(s=>s(t,e))}},a=()=>t,i={setState:r,getState:a,getInitialState:()=>n,subscribe:e=>(s.add(e),()=>s.delete(e))},n=t=e(r,a,i);return i},i=e=>{let t=e?a(e):a,s=e=>(function(e,t=e=>e){let s=r.useSyncExternalStore(e.subscribe,r.useCallback(()=>t(e.getState()),[e,t]),r.useCallback(()=>t(e.getInitialState()),[e,t]));return r.useDebugValue(s),s})(t,e);return Object.assign(s,t),s},n=e=>e?i(e):i},64533:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>u});var r=s(95155),a=s(12115),i=s(73321),n=s(84588),l=s(34131),c=s(47224),d=s(78559),o=s(77251);function x({isOpen:e,onClose:t,onSave:s}){let[i,n]=(0,a.useState)({}),[u,m]=(0,a.useState)(!0),[h,p]=(0,a.useState)(!1),b=(0,l.sp)({isOpen:e,onClose:t});(0,a.useEffect)(()=>{e&&j()},[e]);let j=async()=>{m(!0);try{let e=await fetch("/api/pricing");if(e.ok){let t=await e.json();n(t)}else{let e=(0,c.ad)();n(e)}}catch(e){(0,d.s)("Failed to load pricing:",e),n((0,c.ad)())}finally{m(!1)}},g=async()=>{p(!0);try{let e=await fetch("/api/pricing",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(e.ok)s?.(),t();else{let t=await e.json();(0,d.s)(`Failed to save pricing: ${t.error}`)}}catch(e){(0,d.s)("Failed to save pricing:",e),(0,d.s)("Failed to save pricing")}finally{p(!1)}},f=async()=>{if(await (0,o.l)({message:"Reset all pricing to defaults? This cannot be undone.",confirmText:"Continue"}))try{if((await fetch("/api/pricing",{method:"DELETE"})).ok){let e=(0,c.ad)();n(e)}}catch(e){(0,d.s)("Failed to reset pricing:",e),(0,d.s)("Failed to reset pricing")}};if(!e)return null;let N=Object.keys(i).sort(),y=["input","output","cached","reasoning","cache_creation"];return(0,r.jsx)("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:(0,r.jsxs)("div",{className:"bg-bg-base border border-border rounded-lg shadow-xl max-w-6xl w-full max-h-[90vh] overflow-hidden flex flex-col",role:"dialog","aria-modal":"true","aria-label":"Pricing Configuration",ref:b,tabIndex:-1,children:[(0,r.jsxs)("div",{className:"p-4 border-b border-border flex items-center justify-between",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold",children:"Pricing Configuration"}),(0,r.jsx)("button",{onClick:t,className:"text-text-muted hover:text-text text-2xl leading-none","aria-label":"Close",children:"\xd7"})]}),(0,r.jsx)("div",{className:"flex-1 overflow-auto p-4",children:u?(0,r.jsx)("div",{className:"text-center py-8 text-text-muted",children:"Loading pricing data..."}):(0,r.jsxs)("div",{className:"space-y-6",children:[(0,r.jsxs)("div",{className:"bg-bg-subtle border border-border rounded-lg p-3 text-sm",children:[(0,r.jsx)("p",{className:"font-medium mb-1",children:"Pricing Rates Format"}),(0,r.jsxs)("p",{className:"text-text-muted",children:["All rates are in ",(0,r.jsx)("strong",{children:"dollars per million tokens"})," ($/1M tokens). Example: Input rate of 2.50 means $2.50 per 1,000,000 input tokens."]})]}),N.map(e=>{let t=Object.keys(i[e]).sort();return(0,r.jsxs)("div",{className:"border border-border rounded-lg overflow-hidden",children:[(0,r.jsx)("div",{className:"bg-bg-subtle px-4 py-2 font-semibold text-sm",children:e.toUpperCase()}),(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full text-sm",children:[(0,r.jsx)("thead",{className:"bg-bg-hover text-text-muted uppercase text-xs",children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{className:"px-3 py-2 text-left",children:"Model"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Input"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Output"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Cached"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Reasoning"}),(0,r.jsx)("th",{className:"px-3 py-2 text-right",children:"Cache Creation"})]})}),(0,r.jsx)("tbody",{className:"divide-y divide-border",children:t.map(t=>(0,r.jsxs)("tr",{className:"hover:bg-bg-subtle/50",children:[(0,r.jsx)("td",{className:"px-3 py-2 font-medium",children:t}),y.map(s=>(0,r.jsx)("td",{className:"px-3 py-2",children:(0,r.jsx)("input",{type:"number",step:"0.01",min:"0",value:i[e][t][s]||0,onChange:r=>{let a;!isNaN(a=parseFloat(r.target.value))&&!(a<0)&&n(r=>{let i={...r};return i[e]||(i[e]={}),i[e][t]||(i[e][t]={}),i[e][t][s]=a,i})},className:"w-20 px-2 py-1 text-right bg-bg-base border border-border rounded focus:outline-none focus:border-primary"})},s))]},t))})]})})]},e)}),0===N.length&&(0,r.jsx)("div",{className:"text-center py-8 text-text-muted",children:"No pricing data available"})]})}),(0,r.jsxs)("div",{className:"p-4 border-t border-border flex items-center justify-between gap-2",children:[(0,r.jsx)("button",{onClick:f,className:"px-4 py-2 text-sm text-red-500 hover:bg-red-500/10 rounded border border-red-500/20 transition-colors",disabled:h,children:"Reset to Defaults"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("button",{onClick:t,className:"px-4 py-2 text-sm text-text-muted hover:text-text border border-border rounded transition-colors",disabled:h,children:"Cancel"}),(0,r.jsx)("button",{onClick:g,className:"px-4 py-2 text-sm bg-primary text-on-primary rounded hover:bg-primary/90 transition-colors disabled:opacity-50",disabled:h,children:h?"Saving...":"Save Changes"})]})]})]})})}function u(){(0,i.useRouter)();let[e,t]=(0,a.useState)(!1),[s,l]=(0,a.useState)(null),[c,o]=(0,a.useState)(!0);(0,a.useEffect)(()=>{u()},[]);let u=async()=>{o(!0);try{let e=await fetch("/api/pricing");if(e.ok){let t=await e.json();l(t)}}catch(e){(0,d.s)("Failed to load pricing:",e)}finally{o(!1)}};return(0,r.jsxs)("div",{className:"max-w-6xl mx-auto p-6 space-y-6",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h1",{className:"text-3xl font-bold",children:"Pricing Settings"}),(0,r.jsx)("p",{className:"text-text-muted mt-1",children:"Configure pricing rates for cost tracking and calculations"})]}),(0,r.jsx)("button",{onClick:()=>t(!0),className:"px-4 py-2 bg-primary text-on-primary rounded hover:bg-primary/90 transition-colors",children:"Edit Pricing"})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[(0,r.jsxs)(n.default,{className:"p-4",children:[(0,r.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Total Models"}),(0,r.jsx)("div",{className:"text-2xl font-bold mt-1",children:c?"...":(()=>{if(!s)return 0;let e=0;for(let t in s)e+=Object.keys(s[t]).length;return e})()})]}),(0,r.jsxs)(n.default,{className:"p-4",children:[(0,r.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Providers"}),(0,r.jsx)("div",{className:"text-2xl font-bold mt-1",children:c?"...":(!s?[]:Object.keys(s).sort()).length})]}),(0,r.jsxs)(n.default,{className:"p-4",children:[(0,r.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Status"}),(0,r.jsx)("div",{className:"text-2xl font-bold mt-1 text-success",children:c?"...":"Active"})]})]}),(0,r.jsxs)(n.default,{className:"p-6",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold mb-4",children:"How Pricing Works"}),(0,r.jsxs)("div",{className:"space-y-3 text-sm text-text-muted",children:[(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Cost Calculation:"})," Costs are calculated based on token usage and pricing rates. Each request's cost is determined by: (input_tokens \xd7 input_rate) + (output_tokens \xd7 output_rate) + (cached_tokens \xd7 cached_rate)"]}),(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Pricing Format:"})," All rates are in ",(0,r.jsx)("strong",{children:"dollars per million tokens"})," ($/1M tokens). Example: An input rate of 2.50 means $2.50 per 1,000,000 input tokens."]}),(0,r.jsx)("p",{children:(0,r.jsx)("strong",{children:"Token Types:"})}),(0,r.jsxs)("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Input:"})," Standard prompt tokens"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Output:"})," Completion/response tokens"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Cached:"})," Cached input tokens (typically 50% of input rate)"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Reasoning:"})," Special reasoning/thinking tokens (fallback to output rate)"]}),(0,r.jsxs)("li",{children:[(0,r.jsx)("strong",{children:"Cache Creation:"})," Tokens used to create cache entries (fallback to input rate)"]})]}),(0,r.jsxs)("p",{children:[(0,r.jsx)("strong",{children:"Custom Pricing:"})," You can override default pricing for specific models. Reset to defaults anytime to restore standard rates."]})]})]}),(0,r.jsxs)(n.default,{className:"p-6",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold",children:"Current Pricing Overview"}),(0,r.jsx)("button",{onClick:()=>t(!0),className:"text-primary hover:underline text-sm",children:"View Full Details"})]}),c?(0,r.jsx)("div",{className:"text-center py-4 text-text-muted",children:"Loading pricing data..."}):s?(0,r.jsxs)("div",{className:"space-y-3",children:[Object.keys(s).slice(0,5).map(e=>(0,r.jsxs)("div",{className:"text-sm",children:[(0,r.jsxs)("span",{className:"font-semibold",children:[e.toUpperCase(),":"]})," ",(0,r.jsxs)("span",{className:"text-text-muted",children:[Object.keys(s[e]).length," models"]})]},e)),Object.keys(s).length>5&&(0,r.jsxs)("div",{className:"text-sm text-text-muted",children:["+ ",Object.keys(s).length-5," more providers"]})]}):(0,r.jsx)("div",{className:"text-text-muted",children:"No pricing data available"})]}),e&&(0,r.jsx)(x,{isOpen:e,onClose:()=>t(!1),onSave:()=>{u()}})]})}},73321:(e,t,s)=>{"use strict";var r=s(74645);s.o(r,"notFound")&&s.d(t,{notFound:function(){return r.notFound}}),s.o(r,"useParams")&&s.d(t,{useParams:function(){return r.useParams}}),s.o(r,"usePathname")&&s.d(t,{usePathname:function(){return r.usePathname}}),s.o(r,"useRouter")&&s.d(t,{useRouter:function(){return r.useRouter}}),s.o(r,"useSearchParams")&&s.d(t,{useSearchParams:function(){return r.useSearchParams}})},93147:(e,t,s)=>{Promise.resolve().then(s.bind(s,64533))}},e=>{e.O(0,[4601,8441,3794,7358],()=>e(e.s=93147)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{1934:(e,t,r)=>{"use strict";r.d(t,{v:()=>o});var n=r(12115);let i=e=>{let t,r=new Set,n=(e,n)=>{let i="function"==typeof e?e(t):e;if(!Object.is(i,t)){let e=t;t=(null!=n?n:"object"!=typeof i||null===i)?i:Object.assign({},t,i),r.forEach(r=>r(t,e))}},i=()=>t,a={setState:n,getState:i,getInitialState:()=>o,subscribe:e=>(r.add(e),()=>r.delete(e))},o=t=e(n,i,a);return a},a=e=>{let t=e?i(e):i,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},o=e=>e?a(e):a},5887:()=>{},17658:(e,t,r)=>{Promise.resolve().then(r.t.bind(r,89008,23)),Promise.resolve().then(r.t.bind(r,26816,23)),Promise.resolve().then(r.t.bind(r,5887,23)),Promise.resolve().then(r.t.bind(r,51743,23)),Promise.resolve().then(r.bind(r,94635)),Promise.resolve().then(r.bind(r,21110))},26816:e=>{e.exports={style:{fontFamily:"'mono', 'mono Fallback'"},className:"__className_409bfd",variable:"__variable_409bfd"}},31692:(e,t,r)=>{"use strict";r.d(t,{Zr:()=>i});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)}}},i=(e,t)=>(r,i,a)=>{let o,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),i=null!=(r=t.getItem(e))?r:null;return i instanceof Promise?i.then(n):n(i)},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},u=!1,l=0,c=new Set,f=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)},i,a);let m=()=>{let e=s.partialize({...i()});return d.setItem(s.name,{state:e,version:s.version})},v=a.setState;a.setState=(e,t)=>(v(e,t),m());let h=e((...e)=>(r(...e),m()),i,a);a.getInitialState=()=>h;let p=()=>{var e,t;if(!d)return;let a=++l;u=!1,c.forEach(e=>{var t;return e(null!=(t=i())?t:h)});let v=(null==(t=s.onRehydrateStorage)?void 0:t.call(s,null!=(e=i())?e:h))||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(a!==l)return;let[n,u]=e;if(r(o=s.merge(u,null!=(t=i())?t:h),!0),n)return m()}).then(()=>{a===l&&(null==v||v(i(),void 0),o=i(),u=!0,f.forEach(e=>e(o)))}).catch(e=>{a===l&&(null==v||v(void 0,e))})};return a.persist={setOptions:e=>{s={...s,...e},e.storage&&(d=e.storage)},clearStorage:()=>{null==d||d.removeItem(s.name)},getOptions:()=>s,rehydrate:()=>p(),hasHydrated:()=>u,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(f.add(e),()=>{f.delete(e)})},s.skipHydration||p(),o||h}},51743:()=>{},54642:e=>{var t;"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab="//"),(t={}).endianness=function(){return"LE"},t.hostname=function(){return"u">typeof location?location.hostname:""},t.loadavg=function(){return[]},t.uptime=function(){return 0},t.freemem=function(){return Number.MAX_VALUE},t.totalmem=function(){return Number.MAX_VALUE},t.cpus=function(){return[]},t.type=function(){return"Browser"},t.release=function(){return"u">typeof navigator?navigator.appVersion:""},t.networkInterfaces=t.getNetworkInterfaces=function(){return{}},t.arch=function(){return"javascript"},t.platform=function(){return"browser"},t.tmpdir=t.tmpDir=function(){return"/tmp"},t.EOL="\n",t.homedir=function(){return"/"},e.exports=t},65921:(e,t,r)=>{"use strict";r.d(t,{i:()=>a});var n=r(1934);let i=0,a=(0,n.v)((e,t)=>({notifications:[],addNotification:r=>{let n=++i,a={id:n,type:r.type||"info",message:r.message,title:r.title||null,duration:r.duration??5e3,dismissible:r.dismissible??!0,createdAt:Date.now()};return e(e=>({notifications:[...e.notifications,a]})),a.duration>0&&setTimeout(()=>t().removeNotification(n),a.duration),n},removeNotification:t=>{e(e=>({notifications:e.notifications.filter(e=>e.id!==t)}))},clearAll:()=>e({notifications:[]}),success:(e,r)=>t().addNotification({type:"success",message:e,title:r}),error:(e,r)=>t().addNotification({type:"error",message:e,title:r,duration:8e3}),warning:(e,r)=>t().addNotification({type:"warning",message:e,title:r}),info:(e,r)=>t().addNotification({type:"info",message:e,title:r})}))},73321:(e,t,r)=>{"use strict";var n=r(74645);r.o(n,"notFound")&&r.d(t,{notFound:function(){return n.notFound}}),r.o(n,"useParams")&&r.d(t,{useParams:function(){return n.useParams}}),r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}}),r.o(n,"useSearchParams")&&r.d(t,{useSearchParams:function(){return n.useSearchParams}})},78559:(e,t,r)=>{"use strict";r.d(t,{s:()=>o});var n=r(65921);let i=new Map;function a(e){if(e instanceof Error)return e.message;if("string"==typeof e)return e;if(null==e)return"";try{return JSON.stringify(e)}catch{return String(e)}}function o(...e){let t=e.map(a).filter(Boolean).join(" ").trim()||"The operation failed",r=Date.now();if(!(r-(i.get(t)||0)<5e3)){for(let[e,n]of(i.set(t,r),i))r-n>5e3&&i.delete(e);n.i.getState().error(t)}}},89008:e=>{e.exports={style:{fontFamily:"'sans', 'sans Fallback'"},className:"__className_939b73",variable:"__variable_939b73"}},94635:(e,t,r)=>{"use strict";r.d(t,{RuntimeI18nProvider:()=>s});var n=r(95155),i=r(12115),a=r(73321),o=r(73006);function s({children:e}){let t=(0,a.usePathname)();return(0,i.useEffect)(()=>{(0,o.FE)()},[]),(0,i.useEffect)(()=>{t&&requestAnimationFrame(()=>{requestAnimationFrame(()=>{(0,o.wn)()})})},[t]),(0,n.jsx)(n.Fragment,{children:e})}}},e=>{e.O(0,[8748,3334,1321,8441,3794,7358],()=>e(e.s=17658)),_N_E=e.O()}]);
@@ -1 +1 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4520],{35497:(e,t,a)=>{"use strict";a.d(t,{x0:()=>N.default,Ex:()=>u.default,$n:()=>l.default,nh:()=>E.default,Zp:()=>r.default,Qv:()=>i.CardSkeleton,CK:()=>x.default,uo:()=>n.ConfirmModal,G9:()=>w.default,wI:()=>b.default,vj:()=>j.default,vE:()=>y.default,pd:()=>s.default,Mh:()=>v.default,uR:()=>h.default,Nf:()=>m.default,aF:()=>n.default,rq:()=>c.default,gw:()=>k.default,LF:()=>o.default,Wx:()=>_.default,gM:()=>g.default,Iz:()=>S.default,l6:()=>d.default,lM:()=>f.default,m_:()=>C.default,jK:()=>p.default});var l=a(92542),s=a(11910),d=a(98),r=a(84588),n=a(81127),i=a(25086);a(56319);var u=a(56061),f=a(98542);a(61929),a(21110),a(92622),a(8823),a(92173);var o=a(90882),c=a(72908),h=a(28815),x=a(45455),m=a(28058),p=a(4809);a(21931),a(80752),a(40197);var g=a(23615);a(44736);var v=a(62899);a(94230);var w=a(30815),y=a(23936),j=a(95088),b=a(73579),N=a(96748),k=a(4823),S=a(28067),C=a(97677),_=a(51825),E=a(29366);a(76361),a(91450)},35759:(e,t,a)=>{Promise.resolve().then(a.bind(a,83016))},83016:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>n});var l=a(95155),s=a(12115),d=a(35497),r=a(73006);function n(){let[e,t]=(0,s.useState)(""),[a,n]=(0,s.useState)(""),[i,u]=(0,s.useState)(!1),f=async t=>{if(t.preventDefault(),!i){u(!0),n("");try{let t=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:e.trim()})}),a=await t.json().catch(()=>({}));if(t.ok&&a.ok){window.location.href="/dashboard";return}n(a.error||(0,r.Tl)("Login failed"))}catch{n((0,r.Tl)("Network error"))}finally{u(!1)}}};return(0,l.jsx)("div",{className:"flex min-h-screen items-center justify-center bg-surface-1 px-4",children:(0,l.jsx)(d.Zp,{className:"w-full max-w-sm",children:(0,l.jsxs)("form",{onSubmit:f,className:"flex flex-col gap-4",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:"Switchboard"}),(0,l.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"You're accessing the dashboard from another device. Sign in with a gateway API key to continue."})]}),(0,l.jsx)(d.pd,{type:"password",value:e,onChange:e=>t(e.target.value),placeholder:"Gateway API key",autoComplete:"current-password",autoFocus:!0}),a&&(0,l.jsx)("p",{className:"text-xs text-red-500",children:a}),(0,l.jsx)(d.$n,{type:"submit",disabled:i||!e.trim(),children:i?"Signing in…":"Sign in"}),(0,l.jsx)("p",{className:"text-xs text-text-muted",children:"Keys are listed on the dashboard's Endpoint page. The session lasts 7 days."})]})})})}}},e=>{e.O(0,[2574,3862,782,8500,594,1321,4707,1330,8441,3794,7358],()=>e(e.s=35759)),_N_E=e.O()}]);
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4520],{35497:(e,t,a)=>{"use strict";a.d(t,{x0:()=>N.default,Ex:()=>u.default,$n:()=>l.default,nh:()=>E.default,Zp:()=>r.default,Qv:()=>i.CardSkeleton,CK:()=>x.default,uo:()=>n.ConfirmModal,G9:()=>w.default,wI:()=>b.default,vj:()=>j.default,vE:()=>y.default,pd:()=>s.default,Mh:()=>v.default,uR:()=>h.default,Nf:()=>m.default,aF:()=>n.default,rq:()=>c.default,gw:()=>k.default,LF:()=>o.default,Wx:()=>_.default,gM:()=>g.default,Iz:()=>S.default,l6:()=>d.default,lM:()=>f.default,m_:()=>C.default,jK:()=>p.default});var l=a(92542),s=a(11910),d=a(98),r=a(84588),n=a(81127),i=a(25086);a(56319);var u=a(56061),f=a(98542);a(61929),a(21110),a(92622),a(8823),a(92173);var o=a(90882),c=a(72908),h=a(28815),x=a(45455),m=a(28058),p=a(4809);a(21931),a(80752),a(40197);var g=a(23615);a(44736);var v=a(62899);a(94230);var w=a(30815),y=a(23936),j=a(95088),b=a(73579),N=a(96748),k=a(4823),S=a(28067),C=a(97677),_=a(51825),E=a(29366);a(76361),a(91450)},35759:(e,t,a)=>{Promise.resolve().then(a.bind(a,83016))},83016:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>n});var l=a(95155),s=a(12115),d=a(35497),r=a(73006);function n(){let[e,t]=(0,s.useState)(""),[a,n]=(0,s.useState)(""),[i,u]=(0,s.useState)(!1),f=async t=>{if(t.preventDefault(),!i){u(!0),n("");try{let t=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:e.trim()})}),a=await t.json().catch(()=>({}));if(t.ok&&a.ok){window.location.href="/dashboard";return}n(a.error||(0,r.Tl)("Login failed"))}catch{n((0,r.Tl)("Network error"))}finally{u(!1)}}};return(0,l.jsx)("div",{className:"flex min-h-screen items-center justify-center bg-surface-1 px-4",children:(0,l.jsx)(d.Zp,{className:"w-full max-w-sm",children:(0,l.jsxs)("form",{onSubmit:f,className:"flex flex-col gap-4",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("h1",{className:"text-xl font-semibold tracking-tight",children:"Switchboard"}),(0,l.jsx)("p",{className:"mt-1 text-sm text-text-muted",children:"You're accessing the dashboard from another device. Sign in with a gateway API key to continue."})]}),(0,l.jsx)(d.pd,{type:"password",value:e,onChange:e=>t(e.target.value),placeholder:"Gateway API key",autoComplete:"current-password",autoFocus:!0}),a&&(0,l.jsx)("p",{className:"text-xs text-red-500",children:a}),(0,l.jsx)(d.$n,{type:"submit",disabled:i||!e.trim(),children:i?"Signing in…":"Sign in"}),(0,l.jsx)("p",{className:"text-xs text-text-muted",children:"Keys are listed on the dashboard's Endpoint page. The session lasts 7 days."})]})})})}}},e=>{e.O(0,[2574,3862,782,8500,594,4601,1321,1330,8441,3794,7358],()=>e(e.s=35759)),_N_E=e.O()}]);