@yina-npm/openrouterx 0.4.10 → 0.4.11

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 (788) hide show
  1. package/README.md +250 -1124
  2. package/app/.next/BUILD_ID +1 -1
  3. package/app/.next/app-path-routes-manifest.json +9 -2
  4. package/app/.next/build-manifest.json +3 -3
  5. package/app/.next/prerender-manifest.json +3 -339
  6. package/app/.next/react-loadable-manifest.json +1 -8
  7. package/app/.next/routes-manifest.json +44 -0
  8. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page.js +2 -0
  9. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page.js.nft.json +1 -0
  10. package/app/.next/server/app/(dashboard)/dashboard/admin/keys/page_client-reference-manifest.js +1 -0
  11. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page.js +2 -0
  12. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page.js.nft.json +1 -0
  13. package/app/.next/server/app/(dashboard)/dashboard/admin/users/page_client-reference-manifest.js +1 -0
  14. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js +2 -2
  15. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json +1 -1
  16. package/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  17. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js +2 -2
  18. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json +1 -1
  19. package/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  20. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js +2 -2
  21. package/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json +1 -1
  22. package/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  23. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js +2 -2
  24. package/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json +1 -1
  25. package/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  26. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js +2 -2
  27. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json +1 -1
  28. package/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  29. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js +2 -2
  30. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json +1 -1
  31. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  32. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js +2 -2
  33. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json +1 -1
  34. package/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  35. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/combo/[id]/page.js +3 -3
  36. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/combo/[id]/page.js.nft.json +1 -1
  37. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/combo/[id]/page_client-reference-manifest.js +1 -1
  38. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js +2 -2
  39. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json +1 -1
  40. package/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  41. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js +2 -2
  42. package/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json +1 -1
  43. package/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  44. package/app/.next/server/app/(dashboard)/dashboard/page.js +2 -2
  45. package/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json +1 -1
  46. package/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  47. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js +2 -2
  48. package/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json +1 -1
  49. package/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  50. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js +2 -2
  51. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json +1 -1
  52. package/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  53. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js +2 -2
  54. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json +1 -1
  55. package/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  56. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js +2 -2
  57. package/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json +1 -1
  58. package/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  59. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js +2 -2
  60. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json +1 -1
  61. package/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  62. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js +2 -2
  63. package/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json +1 -1
  64. package/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  65. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js +2 -2
  66. package/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json +1 -1
  67. package/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  68. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js +2 -2
  69. package/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json +1 -1
  70. package/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  71. package/app/.next/server/app/(dashboard)/dashboard/user/page.js +5 -0
  72. package/app/.next/server/app/(dashboard)/dashboard/user/page.js.nft.json +1 -0
  73. package/app/.next/server/app/(dashboard)/dashboard/user/page_client-reference-manifest.js +1 -0
  74. package/app/.next/server/app/_global-error/page.js +2 -2
  75. package/app/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  76. package/app/.next/server/app/_global-error.html +1 -1
  77. package/app/.next/server/app/_global-error.rsc +1 -1
  78. package/app/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  79. package/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  80. package/app/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  81. package/app/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  82. package/app/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  83. package/app/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  84. package/app/.next/server/app/_not-found/page.js +2 -2
  85. package/app/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  86. package/app/.next/server/app/_not-found.html +1 -1
  87. package/app/.next/server/app/_not-found.rsc +4 -4
  88. package/app/.next/server/app/_not-found.segments/_full.segment.rsc +4 -4
  89. package/app/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  90. package/app/.next/server/app/_not-found.segments/_index.segment.rsc +4 -4
  91. package/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  92. package/app/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  93. package/app/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  94. package/app/.next/server/app/api/auth/login/route.js +1 -1
  95. package/app/.next/server/app/api/auth/login/route.js.nft.json +1 -1
  96. package/app/.next/server/app/api/auth/logout/route.js +1 -1
  97. package/app/.next/server/app/api/auth/me/route.js +1 -0
  98. package/app/.next/server/app/api/auth/me/route.js.nft.json +1 -0
  99. package/app/.next/server/app/api/auth/me/route_client-reference-manifest.js +1 -0
  100. package/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  101. package/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js +1 -1
  102. package/app/.next/server/app/api/cli-tools/claude-settings/route.js +2 -2
  103. package/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json +1 -1
  104. package/app/.next/server/app/api/cli-tools/codex-settings/route.js +3 -3
  105. package/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json +1 -1
  106. package/app/.next/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  107. package/app/.next/server/app/api/cli-tools/droid-settings/route.js +2 -2
  108. package/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json +1 -1
  109. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js +7 -7
  110. package/app/.next/server/app/api/cli-tools/hermes-settings/route.js.nft.json +1 -1
  111. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  112. package/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json +1 -1
  113. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  114. package/app/.next/server/app/api/cli-tools/opencode-settings/route.js.nft.json +1 -1
  115. package/app/.next/server/app/api/cloud/auth/route.js +1 -1
  116. package/app/.next/server/app/api/cloud/credentials/update/route.js +1 -1
  117. package/app/.next/server/app/api/cloud/model/resolve/route.js +1 -1
  118. package/app/.next/server/app/api/cloud/models/alias/route.js +1 -1
  119. package/app/.next/server/app/api/combos/[id]/route.js +1 -1
  120. package/app/.next/server/app/api/combos/route.js +1 -1
  121. package/app/.next/server/app/api/health/route.js +1 -1
  122. package/app/.next/server/app/api/init/route.js +1 -1
  123. package/app/.next/server/app/api/keys/[id]/route.js +1 -1
  124. package/app/.next/server/app/api/keys/[id]/route.js.nft.json +1 -1
  125. package/app/.next/server/app/api/keys/route.js +1 -1
  126. package/app/.next/server/app/api/keys/route.js.nft.json +1 -1
  127. package/app/.next/server/app/api/locale/route.js +1 -1
  128. package/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js +1 -1
  129. package/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  130. package/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js +1 -1
  131. package/app/.next/server/app/api/media-providers/tts/voices/route.js +1 -1
  132. package/app/.next/server/app/api/models/alias/route.js +1 -1
  133. package/app/.next/server/app/api/models/availability/route.js +1 -1
  134. package/app/.next/server/app/api/models/custom/route.js +1 -1
  135. package/app/.next/server/app/api/models/route.js +1 -1
  136. package/app/.next/server/app/api/models/test/route.js +1 -1
  137. package/app/.next/server/app/api/models/test/route.js.nft.json +1 -1
  138. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  139. package/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json +1 -1
  140. package/app/.next/server/app/api/oauth/cursor/auto-import/route.js +2 -2
  141. package/app/.next/server/app/api/oauth/cursor/import/route.js +1 -1
  142. package/app/.next/server/app/api/oauth/gitlab/pat/route.js +1 -1
  143. package/app/.next/server/app/api/oauth/iflow/cookie/route.js +1 -1
  144. package/app/.next/server/app/api/oauth/kiro/auto-import/route.js +1 -1
  145. package/app/.next/server/app/api/oauth/kiro/import/route.js +1 -1
  146. package/app/.next/server/app/api/oauth/kiro/social-authorize/route.js +1 -1
  147. package/app/.next/server/app/api/oauth/kiro/social-exchange/route.js +1 -1
  148. package/app/.next/server/app/api/pricing/route.js +1 -1
  149. package/app/.next/server/app/api/provider-nodes/[id]/route.js +1 -1
  150. package/app/.next/server/app/api/provider-nodes/route.js +1 -1
  151. package/app/.next/server/app/api/provider-nodes/validate/route.js +1 -1
  152. package/app/.next/server/app/api/providers/[id]/models/route.js +1 -1
  153. package/app/.next/server/app/api/providers/[id]/models/route.js.nft.json +1 -1
  154. package/app/.next/server/app/api/providers/[id]/route.js +1 -1
  155. package/app/.next/server/app/api/providers/[id]/test/route.js +1 -1
  156. package/app/.next/server/app/api/providers/[id]/test-models/route.js +1 -1
  157. package/app/.next/server/app/api/providers/client/route.js +1 -1
  158. package/app/.next/server/app/api/providers/client/route.js.nft.json +1 -1
  159. package/app/.next/server/app/api/providers/kilo/free-models/route.js +1 -1
  160. package/app/.next/server/app/api/providers/route.js +1 -1
  161. package/app/.next/server/app/api/providers/route.js.nft.json +1 -1
  162. package/app/.next/server/app/api/providers/suggested-models/route.js +1 -1
  163. package/app/.next/server/app/api/providers/test-batch/route.js +1 -1
  164. package/app/.next/server/app/api/providers/validate/route.js +1 -1
  165. package/app/.next/server/app/api/proxy-pools/[id]/route.js +1 -1
  166. package/app/.next/server/app/api/proxy-pools/[id]/test/route.js +1 -1
  167. package/app/.next/server/app/api/proxy-pools/route.js +1 -1
  168. package/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js +2 -2
  169. package/app/.next/server/app/api/settings/database/route.js +1 -1
  170. package/app/.next/server/app/api/settings/proxy-test/route.js +1 -1
  171. package/app/.next/server/app/api/settings/require-login/route.js +1 -1
  172. package/app/.next/server/app/api/settings/route.js +1 -1
  173. package/app/.next/server/app/api/settings/route.js.nft.json +1 -1
  174. package/app/.next/server/app/api/shutdown/route.js +1 -1
  175. package/app/.next/server/app/api/tags/route.js +1 -1
  176. package/app/.next/server/app/api/translator/console-logs/route.js +1 -1
  177. package/app/.next/server/app/api/translator/console-logs/stream/route.js +2 -2
  178. package/app/.next/server/app/api/translator/load/route.js +1 -1
  179. package/app/.next/server/app/api/translator/save/route.js +1 -1
  180. package/app/.next/server/app/api/translator/send/route.js +1 -1
  181. package/app/.next/server/app/api/translator/send/route.js.nft.json +1 -1
  182. package/app/.next/server/app/api/translator/translate/route.js +1 -1
  183. package/app/.next/server/app/api/translator/translate/route.js.nft.json +1 -1
  184. package/app/.next/server/app/api/tunnel/disable/route.js +1 -1
  185. package/app/.next/server/app/api/tunnel/enable/route.js +1 -1
  186. package/app/.next/server/app/api/tunnel/status/route.js +1 -1
  187. package/app/.next/server/app/api/tunnel/tailscale-check/route.js +2 -2
  188. package/app/.next/server/app/api/tunnel/tailscale-disable/route.js +1 -1
  189. package/app/.next/server/app/api/tunnel/tailscale-enable/route.js +1 -1
  190. package/app/.next/server/app/api/tunnel/tailscale-install/route.js +2 -2
  191. package/app/.next/server/app/api/tunnel/tailscale-login/route.js +3 -3
  192. package/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js +2 -2
  193. package/app/.next/server/app/api/usage/[connectionId]/route.js +1 -1
  194. package/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json +1 -1
  195. package/app/.next/server/app/api/usage/api-keys/route.js +1 -0
  196. package/app/.next/server/app/api/usage/api-keys/route.js.nft.json +1 -0
  197. package/app/.next/server/app/api/usage/api-keys/route_client-reference-manifest.js +1 -0
  198. package/app/.next/server/app/api/usage/chart/route.js +1 -1
  199. package/app/.next/server/app/api/usage/chart/route.js.nft.json +1 -1
  200. package/app/.next/server/app/api/usage/history/route.js +1 -1
  201. package/app/.next/server/app/api/usage/history/route.js.nft.json +1 -1
  202. package/app/.next/server/app/api/usage/logs/route.js +1 -1
  203. package/app/.next/server/app/api/usage/logs/route.js.nft.json +1 -1
  204. package/app/.next/server/app/api/usage/providers/route.js +1 -1
  205. package/app/.next/server/app/api/usage/providers/route.js.nft.json +1 -1
  206. package/app/.next/server/app/api/usage/request-details/route.js +1 -1
  207. package/app/.next/server/app/api/usage/request-details/route.js.nft.json +1 -1
  208. package/app/.next/server/app/api/usage/request-logs/route.js +1 -1
  209. package/app/.next/server/app/api/usage/request-logs/route.js.nft.json +1 -1
  210. package/app/.next/server/app/api/usage/stats/route.js +1 -1
  211. package/app/.next/server/app/api/usage/stats/route.js.nft.json +1 -1
  212. package/app/.next/server/app/api/usage/stream/route.js +4 -4
  213. package/app/.next/server/app/api/usage/stream/route.js.nft.json +1 -1
  214. package/app/.next/server/app/api/users/[id]/route.js +1 -0
  215. package/app/.next/server/app/api/users/[id]/route.js.nft.json +1 -0
  216. package/app/.next/server/app/api/users/[id]/route_client-reference-manifest.js +1 -0
  217. package/app/.next/server/app/api/users/route.js +1 -0
  218. package/app/.next/server/app/api/users/route.js.nft.json +1 -0
  219. package/app/.next/server/app/api/users/route_client-reference-manifest.js +1 -0
  220. package/app/.next/server/app/api/v1/api/chat/route.js +1 -1
  221. package/app/.next/server/app/api/v1/api/chat/route.js.nft.json +1 -1
  222. package/app/.next/server/app/api/v1/audio/speech/route.js +1 -1
  223. package/app/.next/server/app/api/v1/audio/speech/route.js.nft.json +1 -1
  224. package/app/.next/server/app/api/v1/chat/completions/route.js +1 -1
  225. package/app/.next/server/app/api/v1/chat/completions/route.js.nft.json +1 -1
  226. package/app/.next/server/app/api/v1/embeddings/route.js +1 -1
  227. package/app/.next/server/app/api/v1/embeddings/route.js.nft.json +1 -1
  228. package/app/.next/server/app/api/v1/images/generations/route.js +2 -2
  229. package/app/.next/server/app/api/v1/images/generations/route.js.nft.json +1 -1
  230. package/app/.next/server/app/api/v1/messages/count_tokens/route.js +1 -1
  231. package/app/.next/server/app/api/v1/messages/route.js +1 -1
  232. package/app/.next/server/app/api/v1/messages/route.js.nft.json +1 -1
  233. package/app/.next/server/app/api/v1/models/route.js +1 -1
  234. package/app/.next/server/app/api/v1/models/route.js.nft.json +1 -1
  235. package/app/.next/server/app/api/v1/responses/compact/route.js +1 -1
  236. package/app/.next/server/app/api/v1/responses/compact/route.js.nft.json +1 -1
  237. package/app/.next/server/app/api/v1/responses/route.js +1 -1
  238. package/app/.next/server/app/api/v1/responses/route.js.nft.json +1 -1
  239. package/app/.next/server/app/api/v1/route.js +1 -1
  240. package/app/.next/server/app/api/v1/search/route.js +1 -1
  241. package/app/.next/server/app/api/v1/search/route.js.nft.json +1 -1
  242. package/app/.next/server/app/api/v1/web/fetch/route.js +1 -1
  243. package/app/.next/server/app/api/v1/web/fetch/route.js.nft.json +1 -1
  244. package/app/.next/server/app/api/v1beta/models/[...path]/route.js +1 -1
  245. package/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json +1 -1
  246. package/app/.next/server/app/api/v1beta/models/route.js +1 -1
  247. package/app/.next/server/app/api/version/route.js +1 -1
  248. package/app/.next/server/app/api/version/update/route.js +1 -1
  249. package/app/.next/server/app/callback/page.js +2 -2
  250. package/app/.next/server/app/callback/page_client-reference-manifest.js +1 -1
  251. package/app/.next/server/app/callback.html +1 -1
  252. package/app/.next/server/app/callback.rsc +4 -4
  253. package/app/.next/server/app/callback.segments/_full.segment.rsc +4 -4
  254. package/app/.next/server/app/callback.segments/_head.segment.rsc +1 -1
  255. package/app/.next/server/app/callback.segments/_index.segment.rsc +4 -4
  256. package/app/.next/server/app/callback.segments/_tree.segment.rsc +2 -2
  257. package/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  258. package/app/.next/server/app/callback.segments/callback.segment.rsc +1 -1
  259. package/app/.next/server/app/dashboard/settings/pricing/page.js +2 -2
  260. package/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  261. package/app/.next/server/app/dashboard/settings/pricing.html +1 -1
  262. package/app/.next/server/app/dashboard/settings/pricing.rsc +4 -4
  263. package/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +4 -4
  264. package/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  265. package/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +4 -4
  266. package/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +2 -2
  267. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  268. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  269. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  270. package/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  271. package/app/.next/server/app/favicon.ico/route.js +1 -1
  272. package/app/.next/server/app/index.html +1 -1
  273. package/app/.next/server/app/index.rsc +4 -4
  274. package/app/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  275. package/app/.next/server/app/index.segments/_full.segment.rsc +4 -4
  276. package/app/.next/server/app/index.segments/_head.segment.rsc +1 -1
  277. package/app/.next/server/app/index.segments/_index.segment.rsc +4 -4
  278. package/app/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  279. package/app/.next/server/app/landing/page.js +2 -2
  280. package/app/.next/server/app/landing/page_client-reference-manifest.js +1 -1
  281. package/app/.next/server/app/landing.html +1 -1
  282. package/app/.next/server/app/landing.rsc +4 -4
  283. package/app/.next/server/app/landing.segments/_full.segment.rsc +4 -4
  284. package/app/.next/server/app/landing.segments/_head.segment.rsc +1 -1
  285. package/app/.next/server/app/landing.segments/_index.segment.rsc +4 -4
  286. package/app/.next/server/app/landing.segments/_tree.segment.rsc +2 -2
  287. package/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  288. package/app/.next/server/app/landing.segments/landing.segment.rsc +1 -1
  289. package/app/.next/server/app/login/page.js +2 -2
  290. package/app/.next/server/app/login/page_client-reference-manifest.js +1 -1
  291. package/app/.next/server/app/login.html +1 -1
  292. package/app/.next/server/app/login.rsc +5 -5
  293. package/app/.next/server/app/login.segments/_full.segment.rsc +5 -5
  294. package/app/.next/server/app/login.segments/_head.segment.rsc +1 -1
  295. package/app/.next/server/app/login.segments/_index.segment.rsc +4 -4
  296. package/app/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  297. package/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  298. package/app/.next/server/app/login.segments/login.segment.rsc +1 -1
  299. package/app/.next/server/app/manifest.webmanifest/route.js +2 -2
  300. package/app/.next/server/app/page.js +2 -2
  301. package/app/.next/server/app/page_client-reference-manifest.js +1 -1
  302. package/app/.next/server/app-paths-manifest.json +9 -2
  303. package/app/.next/server/chunks/1256.js +1 -0
  304. package/app/.next/server/chunks/{1202.js → 1263.js} +2 -2
  305. package/app/.next/server/chunks/2417.js +1 -1
  306. package/app/.next/server/chunks/3913.js +2 -2
  307. package/app/.next/server/chunks/4013.js +1 -0
  308. package/app/.next/server/chunks/412.js +2 -2
  309. package/app/.next/server/chunks/4122.js +1 -1
  310. package/app/.next/server/chunks/4664.js +1 -0
  311. package/app/.next/server/chunks/4989.js +2 -2
  312. package/app/.next/server/chunks/5573.js +1 -1
  313. package/app/.next/server/chunks/5599.js +12 -12
  314. package/app/.next/server/chunks/6184.js +1 -0
  315. package/app/.next/server/chunks/7595.js +1 -1
  316. package/app/.next/server/chunks/{318.js → 7937.js} +2 -2
  317. package/app/.next/server/chunks/8590.js +1 -1
  318. package/app/.next/server/chunks/8895.js +2 -2
  319. package/app/.next/server/chunks/9489.js +1 -1
  320. package/app/.next/server/chunks/{1220.js → 9641.js} +2 -2
  321. package/app/.next/server/chunks/9718.js +1 -1
  322. package/app/.next/server/middleware-build-manifest.js +1 -1
  323. package/app/.next/server/middleware-react-loadable-manifest.js +1 -1
  324. package/app/.next/server/middleware.js +2 -2
  325. package/app/.next/server/pages/404.html +1 -1
  326. package/app/.next/server/pages/500.html +1 -1
  327. package/app/.next/server/server-reference-manifest.js +1 -1
  328. package/app/.next/server/server-reference-manifest.json +1 -1
  329. package/app/.next/static/chunks/{1321-4ac1e9664ca05f67.js → 1321-e040e8704e8038e6.js} +1 -1
  330. package/app/.next/static/chunks/5497-4da88480a15dec4c.js +7 -0
  331. package/app/.next/static/chunks/{5555-c4cf1b2b38d07337.js → 5555-91932fc7b159e521.js} +2 -2
  332. package/app/.next/static/chunks/698-64c9bb7a1ba1f521.js +23 -0
  333. package/app/.next/static/chunks/app/(dashboard)/dashboard/admin/keys/page-e7d9455fb9021069.js +1 -0
  334. package/app/.next/static/chunks/app/(dashboard)/dashboard/admin/users/page-c8e5a4b31bc18425.js +1 -0
  335. package/app/.next/static/chunks/app/(dashboard)/dashboard/basic-chat/{page-ece69a38800356c3.js → page-a4b2b832a4892e6d.js} +1 -1
  336. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-4a745b1296f08667.js +1 -0
  337. package/app/.next/static/chunks/app/(dashboard)/dashboard/combos/{page-0d9325464cd6e849.js → page-842b00e6db9de7ae.js} +1 -1
  338. package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/page-fbdc1506f7259342.js +1 -0
  339. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-f8681cfb4c894f96.js +1 -0
  340. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-f0bbe6b3b1bfb85e.js +1 -0
  341. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-d6d08994d9d6d690.js +1 -0
  342. package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-b2443c6d810b0207.js +2 -0
  343. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-24023a32c248257e.js +1 -0
  344. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-48fc1f090d936818.js +1 -0
  345. package/app/.next/static/chunks/app/(dashboard)/dashboard/user/page-e9ab0043e9b15204.js +4 -0
  346. package/app/.next/static/chunks/app/(dashboard)/{layout-91efa9c70d2328e0.js → layout-d368218e0e87c124.js} +1 -1
  347. package/app/.next/static/chunks/app/_global-error/page-24023a32c248257e.js +1 -0
  348. package/app/.next/static/chunks/app/api/auth/login/route-24023a32c248257e.js +1 -0
  349. package/app/.next/static/chunks/app/api/auth/logout/route-24023a32c248257e.js +1 -0
  350. package/app/.next/static/chunks/app/api/auth/me/route-24023a32c248257e.js +1 -0
  351. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-24023a32c248257e.js +1 -0
  352. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-24023a32c248257e.js +1 -0
  353. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-24023a32c248257e.js +1 -0
  354. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-24023a32c248257e.js +1 -0
  355. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-24023a32c248257e.js +1 -0
  356. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-24023a32c248257e.js +1 -0
  357. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-24023a32c248257e.js +1 -0
  358. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-24023a32c248257e.js +1 -0
  359. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-24023a32c248257e.js +1 -0
  360. package/app/.next/static/chunks/app/api/cloud/auth/route-24023a32c248257e.js +1 -0
  361. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-24023a32c248257e.js +1 -0
  362. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-24023a32c248257e.js +1 -0
  363. package/app/.next/static/chunks/app/api/cloud/models/alias/route-24023a32c248257e.js +1 -0
  364. package/app/.next/static/chunks/app/api/combos/[id]/route-24023a32c248257e.js +1 -0
  365. package/app/.next/static/chunks/app/api/combos/route-24023a32c248257e.js +1 -0
  366. package/app/.next/static/chunks/app/api/health/route-24023a32c248257e.js +1 -0
  367. package/app/.next/static/chunks/app/api/init/route-24023a32c248257e.js +1 -0
  368. package/app/.next/static/chunks/app/api/keys/[id]/route-24023a32c248257e.js +1 -0
  369. package/app/.next/static/chunks/app/api/keys/route-24023a32c248257e.js +1 -0
  370. package/app/.next/static/chunks/app/api/locale/route-24023a32c248257e.js +1 -0
  371. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-24023a32c248257e.js +1 -0
  372. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-24023a32c248257e.js +1 -0
  373. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-24023a32c248257e.js +1 -0
  374. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-24023a32c248257e.js +1 -0
  375. package/app/.next/static/chunks/app/api/models/alias/route-24023a32c248257e.js +1 -0
  376. package/app/.next/static/chunks/app/api/models/availability/route-24023a32c248257e.js +1 -0
  377. package/app/.next/static/chunks/app/api/models/custom/route-24023a32c248257e.js +1 -0
  378. package/app/.next/static/chunks/app/api/models/route-24023a32c248257e.js +1 -0
  379. package/app/.next/static/chunks/app/api/models/test/route-24023a32c248257e.js +1 -0
  380. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-24023a32c248257e.js +1 -0
  381. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-24023a32c248257e.js +1 -0
  382. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-24023a32c248257e.js +1 -0
  383. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-24023a32c248257e.js +1 -0
  384. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-24023a32c248257e.js +1 -0
  385. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-24023a32c248257e.js +1 -0
  386. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-24023a32c248257e.js +1 -0
  387. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-24023a32c248257e.js +1 -0
  388. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-24023a32c248257e.js +1 -0
  389. package/app/.next/static/chunks/app/api/pricing/route-24023a32c248257e.js +1 -0
  390. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-24023a32c248257e.js +1 -0
  391. package/app/.next/static/chunks/app/api/provider-nodes/route-24023a32c248257e.js +1 -0
  392. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-24023a32c248257e.js +1 -0
  393. package/app/.next/static/chunks/app/api/providers/[id]/models/route-24023a32c248257e.js +1 -0
  394. package/app/.next/static/chunks/app/api/providers/[id]/route-24023a32c248257e.js +1 -0
  395. package/app/.next/static/chunks/app/api/providers/[id]/test/route-24023a32c248257e.js +1 -0
  396. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-24023a32c248257e.js +1 -0
  397. package/app/.next/static/chunks/app/api/providers/client/route-24023a32c248257e.js +1 -0
  398. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-24023a32c248257e.js +1 -0
  399. package/app/.next/static/chunks/app/api/providers/route-24023a32c248257e.js +1 -0
  400. package/app/.next/static/chunks/app/api/providers/suggested-models/route-24023a32c248257e.js +1 -0
  401. package/app/.next/static/chunks/app/api/providers/test-batch/route-24023a32c248257e.js +1 -0
  402. package/app/.next/static/chunks/app/api/providers/validate/route-24023a32c248257e.js +1 -0
  403. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-24023a32c248257e.js +1 -0
  404. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-24023a32c248257e.js +1 -0
  405. package/app/.next/static/chunks/app/api/proxy-pools/route-24023a32c248257e.js +1 -0
  406. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-24023a32c248257e.js +1 -0
  407. package/app/.next/static/chunks/app/api/settings/database/route-24023a32c248257e.js +1 -0
  408. package/app/.next/static/chunks/app/api/settings/proxy-test/route-24023a32c248257e.js +1 -0
  409. package/app/.next/static/chunks/app/api/settings/require-login/route-24023a32c248257e.js +1 -0
  410. package/app/.next/static/chunks/app/api/settings/route-24023a32c248257e.js +1 -0
  411. package/app/.next/static/chunks/app/api/shutdown/route-24023a32c248257e.js +1 -0
  412. package/app/.next/static/chunks/app/api/tags/route-24023a32c248257e.js +1 -0
  413. package/app/.next/static/chunks/app/api/translator/console-logs/route-24023a32c248257e.js +1 -0
  414. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-24023a32c248257e.js +1 -0
  415. package/app/.next/static/chunks/app/api/translator/load/route-24023a32c248257e.js +1 -0
  416. package/app/.next/static/chunks/app/api/translator/save/route-24023a32c248257e.js +1 -0
  417. package/app/.next/static/chunks/app/api/translator/send/route-24023a32c248257e.js +1 -0
  418. package/app/.next/static/chunks/app/api/translator/translate/route-24023a32c248257e.js +1 -0
  419. package/app/.next/static/chunks/app/api/tunnel/disable/route-24023a32c248257e.js +1 -0
  420. package/app/.next/static/chunks/app/api/tunnel/enable/route-24023a32c248257e.js +1 -0
  421. package/app/.next/static/chunks/app/api/tunnel/status/route-24023a32c248257e.js +1 -0
  422. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-24023a32c248257e.js +1 -0
  423. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-24023a32c248257e.js +1 -0
  424. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-24023a32c248257e.js +1 -0
  425. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-24023a32c248257e.js +1 -0
  426. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-24023a32c248257e.js +1 -0
  427. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-24023a32c248257e.js +1 -0
  428. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-24023a32c248257e.js +1 -0
  429. package/app/.next/static/chunks/app/api/usage/api-keys/route-24023a32c248257e.js +1 -0
  430. package/app/.next/static/chunks/app/api/usage/chart/route-24023a32c248257e.js +1 -0
  431. package/app/.next/static/chunks/app/api/usage/history/route-24023a32c248257e.js +1 -0
  432. package/app/.next/static/chunks/app/api/usage/logs/route-24023a32c248257e.js +1 -0
  433. package/app/.next/static/chunks/app/api/usage/providers/route-24023a32c248257e.js +1 -0
  434. package/app/.next/static/chunks/app/api/usage/request-details/route-24023a32c248257e.js +1 -0
  435. package/app/.next/static/chunks/app/api/usage/request-logs/route-24023a32c248257e.js +1 -0
  436. package/app/.next/static/chunks/app/api/usage/stats/route-24023a32c248257e.js +1 -0
  437. package/app/.next/static/chunks/app/api/usage/stream/route-24023a32c248257e.js +1 -0
  438. package/app/.next/static/chunks/app/api/users/[id]/route-24023a32c248257e.js +1 -0
  439. package/app/.next/static/chunks/app/api/users/route-24023a32c248257e.js +1 -0
  440. package/app/.next/static/chunks/app/api/v1/api/chat/route-24023a32c248257e.js +1 -0
  441. package/app/.next/static/chunks/app/api/v1/audio/speech/route-24023a32c248257e.js +1 -0
  442. package/app/.next/static/chunks/app/api/v1/chat/completions/route-24023a32c248257e.js +1 -0
  443. package/app/.next/static/chunks/app/api/v1/embeddings/route-24023a32c248257e.js +1 -0
  444. package/app/.next/static/chunks/app/api/v1/images/generations/route-24023a32c248257e.js +1 -0
  445. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-24023a32c248257e.js +1 -0
  446. package/app/.next/static/chunks/app/api/v1/messages/route-24023a32c248257e.js +1 -0
  447. package/app/.next/static/chunks/app/api/v1/models/route-24023a32c248257e.js +1 -0
  448. package/app/.next/static/chunks/app/api/v1/responses/compact/route-24023a32c248257e.js +1 -0
  449. package/app/.next/static/chunks/app/api/v1/responses/route-24023a32c248257e.js +1 -0
  450. package/app/.next/static/chunks/app/api/v1/route-24023a32c248257e.js +1 -0
  451. package/app/.next/static/chunks/app/api/v1/search/route-24023a32c248257e.js +1 -0
  452. package/app/.next/static/chunks/app/api/v1/web/fetch/route-24023a32c248257e.js +1 -0
  453. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-24023a32c248257e.js +1 -0
  454. package/app/.next/static/chunks/app/api/v1beta/models/route-24023a32c248257e.js +1 -0
  455. package/app/.next/static/chunks/app/api/version/route-24023a32c248257e.js +1 -0
  456. package/app/.next/static/chunks/app/api/version/update/route-24023a32c248257e.js +1 -0
  457. package/app/.next/static/chunks/app/login/page-f8fd97681568bf8f.js +1 -0
  458. package/app/.next/static/chunks/app/manifest.webmanifest/route-24023a32c248257e.js +1 -0
  459. package/app/.next/static/chunks/app/page-24023a32c248257e.js +1 -0
  460. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-24023a32c248257e.js +1 -0
  461. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-24023a32c248257e.js +1 -0
  462. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-24023a32c248257e.js +1 -0
  463. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-24023a32c248257e.js +1 -0
  464. package/app/.next/static/chunks/webpack-d1740476c6ab968a.js +1 -0
  465. package/app/.next/static/css/733bbed45c0f373c.css +1 -0
  466. package/app/.next/static/kSw7ik2y0Lphlofn8QbuF/_buildManifest.js +1 -0
  467. package/app/package.json +1 -1
  468. package/app/public/i18n/literals/ar.json +4 -4
  469. package/app/public/i18n/literals/bn.json +4 -4
  470. package/app/public/i18n/literals/cs.json +4 -4
  471. package/app/public/i18n/literals/da.json +4 -4
  472. package/app/public/i18n/literals/de.json +4 -4
  473. package/app/public/i18n/literals/el.json +4 -4
  474. package/app/public/i18n/literals/es.json +4 -4
  475. package/app/public/i18n/literals/fi.json +4 -4
  476. package/app/public/i18n/literals/fr.json +4 -4
  477. package/app/public/i18n/literals/he.json +4 -4
  478. package/app/public/i18n/literals/hi.json +4 -4
  479. package/app/public/i18n/literals/hu.json +4 -4
  480. package/app/public/i18n/literals/id.json +4 -4
  481. package/app/public/i18n/literals/it.json +4 -4
  482. package/app/public/i18n/literals/ja.json +4 -4
  483. package/app/public/i18n/literals/ko.json +4 -4
  484. package/app/public/i18n/literals/nl.json +4 -4
  485. package/app/public/i18n/literals/no.json +4 -4
  486. package/app/public/i18n/literals/pl.json +4 -4
  487. package/app/public/i18n/literals/pt-BR.json +4 -4
  488. package/app/public/i18n/literals/pt-PT.json +4 -4
  489. package/app/public/i18n/literals/ro.json +4 -4
  490. package/app/public/i18n/literals/ru.json +4 -4
  491. package/app/public/i18n/literals/sv.json +4 -4
  492. package/app/public/i18n/literals/th.json +4 -4
  493. package/app/public/i18n/literals/tl.json +4 -4
  494. package/app/public/i18n/literals/tr.json +4 -4
  495. package/app/public/i18n/literals/uk.json +4 -4
  496. package/app/public/i18n/literals/ur.json +4 -4
  497. package/app/public/i18n/literals/vi.json +4 -4
  498. package/app/public/i18n/literals/zh-CN.json +7 -7
  499. package/app/public/i18n/literals/zh-TW.json +4 -4
  500. package/app/src/shared/constants/mitmToolHosts.js +12 -0
  501. package/package.json +1 -1
  502. package/app/.next/server/app/dashboard/basic-chat.html +0 -1
  503. package/app/.next/server/app/dashboard/basic-chat.meta +0 -17
  504. package/app/.next/server/app/dashboard/basic-chat.rsc +0 -24
  505. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +0 -6
  506. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +0 -5
  507. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  508. package/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -6
  509. package/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc +0 -24
  510. package/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc +0 -6
  511. package/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc +0 -9
  512. package/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +0 -6
  513. package/app/.next/server/app/dashboard/cli-tools.html +0 -1
  514. package/app/.next/server/app/dashboard/cli-tools.meta +0 -17
  515. package/app/.next/server/app/dashboard/cli-tools.rsc +0 -25
  516. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +0 -6
  517. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +0 -5
  518. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  519. package/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -6
  520. package/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc +0 -25
  521. package/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc +0 -6
  522. package/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc +0 -9
  523. package/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +0 -6
  524. package/app/.next/server/app/dashboard/combos.html +0 -1
  525. package/app/.next/server/app/dashboard/combos.meta +0 -17
  526. package/app/.next/server/app/dashboard/combos.rsc +0 -27
  527. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +0 -9
  528. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +0 -5
  529. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  530. package/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -6
  531. package/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc +0 -27
  532. package/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc +0 -6
  533. package/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc +0 -9
  534. package/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc +0 -6
  535. package/app/.next/server/app/dashboard/endpoint.html +0 -1
  536. package/app/.next/server/app/dashboard/endpoint.meta +0 -17
  537. package/app/.next/server/app/dashboard/endpoint.rsc +0 -25
  538. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +0 -6
  539. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +0 -5
  540. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  541. package/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -6
  542. package/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc +0 -25
  543. package/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc +0 -6
  544. package/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc +0 -9
  545. package/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc +0 -6
  546. package/app/.next/server/app/dashboard/media-providers/web.html +0 -1
  547. package/app/.next/server/app/dashboard/media-providers/web.meta +0 -18
  548. package/app/.next/server/app/dashboard/media-providers/web.rsc +0 -27
  549. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +0 -9
  550. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +0 -5
  551. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +0 -5
  552. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  553. package/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -6
  554. package/app/.next/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +0 -27
  555. package/app/.next/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +0 -6
  556. package/app/.next/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +0 -9
  557. package/app/.next/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +0 -6
  558. package/app/.next/server/app/dashboard/mitm.html +0 -1
  559. package/app/.next/server/app/dashboard/mitm.meta +0 -17
  560. package/app/.next/server/app/dashboard/mitm.rsc +0 -24
  561. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +0 -6
  562. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +0 -5
  563. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  564. package/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -6
  565. package/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc +0 -24
  566. package/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc +0 -6
  567. package/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc +0 -9
  568. package/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc +0 -6
  569. package/app/.next/server/app/dashboard/profile.html +0 -1
  570. package/app/.next/server/app/dashboard/profile.meta +0 -17
  571. package/app/.next/server/app/dashboard/profile.rsc +0 -27
  572. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +0 -9
  573. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +0 -5
  574. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  575. package/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -6
  576. package/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc +0 -27
  577. package/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc +0 -6
  578. package/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc +0 -9
  579. package/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc +0 -6
  580. package/app/.next/server/app/dashboard/providers/new.html +0 -1
  581. package/app/.next/server/app/dashboard/providers/new.meta +0 -18
  582. package/app/.next/server/app/dashboard/providers/new.rsc +0 -27
  583. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +0 -9
  584. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +0 -5
  585. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +0 -5
  586. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  587. package/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -6
  588. package/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc +0 -27
  589. package/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc +0 -6
  590. package/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc +0 -9
  591. package/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc +0 -6
  592. package/app/.next/server/app/dashboard/providers.html +0 -1
  593. package/app/.next/server/app/dashboard/providers.meta +0 -17
  594. package/app/.next/server/app/dashboard/providers.rsc +0 -27
  595. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +0 -9
  596. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +0 -5
  597. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  598. package/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -6
  599. package/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc +0 -27
  600. package/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc +0 -6
  601. package/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc +0 -9
  602. package/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc +0 -6
  603. package/app/.next/server/app/dashboard/proxy-pools.html +0 -1
  604. package/app/.next/server/app/dashboard/proxy-pools.meta +0 -17
  605. package/app/.next/server/app/dashboard/proxy-pools.rsc +0 -27
  606. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +0 -9
  607. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +0 -5
  608. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  609. package/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -6
  610. package/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +0 -27
  611. package/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +0 -6
  612. package/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +0 -9
  613. package/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +0 -6
  614. package/app/.next/server/app/dashboard/quota.html +0 -2
  615. package/app/.next/server/app/dashboard/quota.meta +0 -17
  616. package/app/.next/server/app/dashboard/quota.rsc +0 -25
  617. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +0 -7
  618. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +0 -5
  619. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  620. package/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -6
  621. package/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc +0 -25
  622. package/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc +0 -6
  623. package/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc +0 -9
  624. package/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc +0 -6
  625. package/app/.next/server/app/dashboard/translator.html +0 -1
  626. package/app/.next/server/app/dashboard/translator.meta +0 -17
  627. package/app/.next/server/app/dashboard/translator.rsc +0 -27
  628. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +0 -9
  629. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +0 -5
  630. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  631. package/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -6
  632. package/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc +0 -27
  633. package/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc +0 -6
  634. package/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc +0 -9
  635. package/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc +0 -6
  636. package/app/.next/server/app/dashboard/usage.html +0 -1
  637. package/app/.next/server/app/dashboard/usage.meta +0 -17
  638. package/app/.next/server/app/dashboard/usage.rsc +0 -27
  639. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +0 -9
  640. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +0 -5
  641. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  642. package/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -6
  643. package/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc +0 -27
  644. package/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc +0 -6
  645. package/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc +0 -9
  646. package/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc +0 -6
  647. package/app/.next/server/app/dashboard.html +0 -1
  648. package/app/.next/server/app/dashboard.meta +0 -16
  649. package/app/.next/server/app/dashboard.rsc +0 -25
  650. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +0 -6
  651. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +0 -5
  652. package/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +0 -6
  653. package/app/.next/server/app/dashboard.segments/_full.segment.rsc +0 -25
  654. package/app/.next/server/app/dashboard.segments/_head.segment.rsc +0 -6
  655. package/app/.next/server/app/dashboard.segments/_index.segment.rsc +0 -9
  656. package/app/.next/server/app/dashboard.segments/_tree.segment.rsc +0 -6
  657. package/app/.next/server/chunks/2020.js +0 -1
  658. package/app/.next/server/chunks/6114.js +0 -1
  659. package/app/.next/server/chunks/7924.js +0 -1
  660. package/app/.next/server/chunks/8491.js +0 -1
  661. package/app/.next/static/ahyS0wV6v2JdXWYSEruR6/_buildManifest.js +0 -1
  662. package/app/.next/static/chunks/5497-9056ce5497a8e830.js +0 -7
  663. package/app/.next/static/chunks/698-438ce154948ce831.js +0 -23
  664. package/app/.next/static/chunks/8202.1ffc6ce531e066ce.js +0 -1
  665. package/app/.next/static/chunks/app/(dashboard)/dashboard/cli-tools/page-2f4bb06a89cb1e96.js +0 -1
  666. package/app/.next/static/chunks/app/(dashboard)/dashboard/console-log/page-d690c6133fec8d11.js +0 -1
  667. package/app/.next/static/chunks/app/(dashboard)/dashboard/mitm/page-ed08f60a5fb7f3eb.js +0 -1
  668. package/app/.next/static/chunks/app/(dashboard)/dashboard/profile/page-478d456890cb93f8.js +0 -1
  669. package/app/.next/static/chunks/app/(dashboard)/dashboard/providers/page-9fb9fc4557dbea57.js +0 -1
  670. package/app/.next/static/chunks/app/(dashboard)/dashboard/proxy-pools/page-4d43dabc1455a54b.js +0 -2
  671. package/app/.next/static/chunks/app/(dashboard)/dashboard/translator/page-4fc78ec3c912ea4c.js +0 -1
  672. package/app/.next/static/chunks/app/(dashboard)/dashboard/usage/page-6204a1c1bfe6aee1.js +0 -1
  673. package/app/.next/static/chunks/app/_global-error/page-a95908d3fe52339a.js +0 -1
  674. package/app/.next/static/chunks/app/api/auth/login/route-a95908d3fe52339a.js +0 -1
  675. package/app/.next/static/chunks/app/api/auth/logout/route-a95908d3fe52339a.js +0 -1
  676. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/alias/route-a95908d3fe52339a.js +0 -1
  677. package/app/.next/static/chunks/app/api/cli-tools/antigravity-mitm/route-a95908d3fe52339a.js +0 -1
  678. package/app/.next/static/chunks/app/api/cli-tools/claude-settings/route-a95908d3fe52339a.js +0 -1
  679. package/app/.next/static/chunks/app/api/cli-tools/codex-settings/route-a95908d3fe52339a.js +0 -1
  680. package/app/.next/static/chunks/app/api/cli-tools/copilot-settings/route-a95908d3fe52339a.js +0 -1
  681. package/app/.next/static/chunks/app/api/cli-tools/droid-settings/route-a95908d3fe52339a.js +0 -1
  682. package/app/.next/static/chunks/app/api/cli-tools/hermes-settings/route-a95908d3fe52339a.js +0 -1
  683. package/app/.next/static/chunks/app/api/cli-tools/openclaw-settings/route-a95908d3fe52339a.js +0 -1
  684. package/app/.next/static/chunks/app/api/cli-tools/opencode-settings/route-a95908d3fe52339a.js +0 -1
  685. package/app/.next/static/chunks/app/api/cloud/auth/route-a95908d3fe52339a.js +0 -1
  686. package/app/.next/static/chunks/app/api/cloud/credentials/update/route-a95908d3fe52339a.js +0 -1
  687. package/app/.next/static/chunks/app/api/cloud/model/resolve/route-a95908d3fe52339a.js +0 -1
  688. package/app/.next/static/chunks/app/api/cloud/models/alias/route-a95908d3fe52339a.js +0 -1
  689. package/app/.next/static/chunks/app/api/combos/[id]/route-a95908d3fe52339a.js +0 -1
  690. package/app/.next/static/chunks/app/api/combos/route-a95908d3fe52339a.js +0 -1
  691. package/app/.next/static/chunks/app/api/health/route-a95908d3fe52339a.js +0 -1
  692. package/app/.next/static/chunks/app/api/init/route-a95908d3fe52339a.js +0 -1
  693. package/app/.next/static/chunks/app/api/keys/[id]/route-a95908d3fe52339a.js +0 -1
  694. package/app/.next/static/chunks/app/api/keys/route-a95908d3fe52339a.js +0 -1
  695. package/app/.next/static/chunks/app/api/locale/route-a95908d3fe52339a.js +0 -1
  696. package/app/.next/static/chunks/app/api/media-providers/tts/deepgram/voices/route-a95908d3fe52339a.js +0 -1
  697. package/app/.next/static/chunks/app/api/media-providers/tts/elevenlabs/voices/route-a95908d3fe52339a.js +0 -1
  698. package/app/.next/static/chunks/app/api/media-providers/tts/inworld/voices/route-a95908d3fe52339a.js +0 -1
  699. package/app/.next/static/chunks/app/api/media-providers/tts/voices/route-a95908d3fe52339a.js +0 -1
  700. package/app/.next/static/chunks/app/api/models/alias/route-a95908d3fe52339a.js +0 -1
  701. package/app/.next/static/chunks/app/api/models/availability/route-a95908d3fe52339a.js +0 -1
  702. package/app/.next/static/chunks/app/api/models/custom/route-a95908d3fe52339a.js +0 -1
  703. package/app/.next/static/chunks/app/api/models/route-a95908d3fe52339a.js +0 -1
  704. package/app/.next/static/chunks/app/api/models/test/route-a95908d3fe52339a.js +0 -1
  705. package/app/.next/static/chunks/app/api/oauth/[provider]/[action]/route-a95908d3fe52339a.js +0 -1
  706. package/app/.next/static/chunks/app/api/oauth/cursor/auto-import/route-a95908d3fe52339a.js +0 -1
  707. package/app/.next/static/chunks/app/api/oauth/cursor/import/route-a95908d3fe52339a.js +0 -1
  708. package/app/.next/static/chunks/app/api/oauth/gitlab/pat/route-a95908d3fe52339a.js +0 -1
  709. package/app/.next/static/chunks/app/api/oauth/iflow/cookie/route-a95908d3fe52339a.js +0 -1
  710. package/app/.next/static/chunks/app/api/oauth/kiro/auto-import/route-a95908d3fe52339a.js +0 -1
  711. package/app/.next/static/chunks/app/api/oauth/kiro/import/route-a95908d3fe52339a.js +0 -1
  712. package/app/.next/static/chunks/app/api/oauth/kiro/social-authorize/route-a95908d3fe52339a.js +0 -1
  713. package/app/.next/static/chunks/app/api/oauth/kiro/social-exchange/route-a95908d3fe52339a.js +0 -1
  714. package/app/.next/static/chunks/app/api/pricing/route-a95908d3fe52339a.js +0 -1
  715. package/app/.next/static/chunks/app/api/provider-nodes/[id]/route-a95908d3fe52339a.js +0 -1
  716. package/app/.next/static/chunks/app/api/provider-nodes/route-a95908d3fe52339a.js +0 -1
  717. package/app/.next/static/chunks/app/api/provider-nodes/validate/route-a95908d3fe52339a.js +0 -1
  718. package/app/.next/static/chunks/app/api/providers/[id]/models/route-a95908d3fe52339a.js +0 -1
  719. package/app/.next/static/chunks/app/api/providers/[id]/route-a95908d3fe52339a.js +0 -1
  720. package/app/.next/static/chunks/app/api/providers/[id]/test/route-a95908d3fe52339a.js +0 -1
  721. package/app/.next/static/chunks/app/api/providers/[id]/test-models/route-a95908d3fe52339a.js +0 -1
  722. package/app/.next/static/chunks/app/api/providers/client/route-a95908d3fe52339a.js +0 -1
  723. package/app/.next/static/chunks/app/api/providers/kilo/free-models/route-a95908d3fe52339a.js +0 -1
  724. package/app/.next/static/chunks/app/api/providers/route-a95908d3fe52339a.js +0 -1
  725. package/app/.next/static/chunks/app/api/providers/suggested-models/route-a95908d3fe52339a.js +0 -1
  726. package/app/.next/static/chunks/app/api/providers/test-batch/route-a95908d3fe52339a.js +0 -1
  727. package/app/.next/static/chunks/app/api/providers/validate/route-a95908d3fe52339a.js +0 -1
  728. package/app/.next/static/chunks/app/api/proxy-pools/[id]/route-a95908d3fe52339a.js +0 -1
  729. package/app/.next/static/chunks/app/api/proxy-pools/[id]/test/route-a95908d3fe52339a.js +0 -1
  730. package/app/.next/static/chunks/app/api/proxy-pools/route-a95908d3fe52339a.js +0 -1
  731. package/app/.next/static/chunks/app/api/proxy-pools/vercel-deploy/route-a95908d3fe52339a.js +0 -1
  732. package/app/.next/static/chunks/app/api/settings/database/route-a95908d3fe52339a.js +0 -1
  733. package/app/.next/static/chunks/app/api/settings/proxy-test/route-a95908d3fe52339a.js +0 -1
  734. package/app/.next/static/chunks/app/api/settings/require-login/route-a95908d3fe52339a.js +0 -1
  735. package/app/.next/static/chunks/app/api/settings/route-a95908d3fe52339a.js +0 -1
  736. package/app/.next/static/chunks/app/api/shutdown/route-a95908d3fe52339a.js +0 -1
  737. package/app/.next/static/chunks/app/api/tags/route-a95908d3fe52339a.js +0 -1
  738. package/app/.next/static/chunks/app/api/translator/console-logs/route-a95908d3fe52339a.js +0 -1
  739. package/app/.next/static/chunks/app/api/translator/console-logs/stream/route-a95908d3fe52339a.js +0 -1
  740. package/app/.next/static/chunks/app/api/translator/load/route-a95908d3fe52339a.js +0 -1
  741. package/app/.next/static/chunks/app/api/translator/save/route-a95908d3fe52339a.js +0 -1
  742. package/app/.next/static/chunks/app/api/translator/send/route-a95908d3fe52339a.js +0 -1
  743. package/app/.next/static/chunks/app/api/translator/translate/route-a95908d3fe52339a.js +0 -1
  744. package/app/.next/static/chunks/app/api/tunnel/disable/route-a95908d3fe52339a.js +0 -1
  745. package/app/.next/static/chunks/app/api/tunnel/enable/route-a95908d3fe52339a.js +0 -1
  746. package/app/.next/static/chunks/app/api/tunnel/status/route-a95908d3fe52339a.js +0 -1
  747. package/app/.next/static/chunks/app/api/tunnel/tailscale-check/route-a95908d3fe52339a.js +0 -1
  748. package/app/.next/static/chunks/app/api/tunnel/tailscale-disable/route-a95908d3fe52339a.js +0 -1
  749. package/app/.next/static/chunks/app/api/tunnel/tailscale-enable/route-a95908d3fe52339a.js +0 -1
  750. package/app/.next/static/chunks/app/api/tunnel/tailscale-install/route-a95908d3fe52339a.js +0 -1
  751. package/app/.next/static/chunks/app/api/tunnel/tailscale-login/route-a95908d3fe52339a.js +0 -1
  752. package/app/.next/static/chunks/app/api/tunnel/tailscale-start-daemon/route-a95908d3fe52339a.js +0 -1
  753. package/app/.next/static/chunks/app/api/usage/[connectionId]/route-a95908d3fe52339a.js +0 -1
  754. package/app/.next/static/chunks/app/api/usage/chart/route-a95908d3fe52339a.js +0 -1
  755. package/app/.next/static/chunks/app/api/usage/history/route-a95908d3fe52339a.js +0 -1
  756. package/app/.next/static/chunks/app/api/usage/logs/route-a95908d3fe52339a.js +0 -1
  757. package/app/.next/static/chunks/app/api/usage/providers/route-a95908d3fe52339a.js +0 -1
  758. package/app/.next/static/chunks/app/api/usage/request-details/route-a95908d3fe52339a.js +0 -1
  759. package/app/.next/static/chunks/app/api/usage/request-logs/route-a95908d3fe52339a.js +0 -1
  760. package/app/.next/static/chunks/app/api/usage/stats/route-a95908d3fe52339a.js +0 -1
  761. package/app/.next/static/chunks/app/api/usage/stream/route-a95908d3fe52339a.js +0 -1
  762. package/app/.next/static/chunks/app/api/v1/api/chat/route-a95908d3fe52339a.js +0 -1
  763. package/app/.next/static/chunks/app/api/v1/audio/speech/route-a95908d3fe52339a.js +0 -1
  764. package/app/.next/static/chunks/app/api/v1/chat/completions/route-a95908d3fe52339a.js +0 -1
  765. package/app/.next/static/chunks/app/api/v1/embeddings/route-a95908d3fe52339a.js +0 -1
  766. package/app/.next/static/chunks/app/api/v1/images/generations/route-a95908d3fe52339a.js +0 -1
  767. package/app/.next/static/chunks/app/api/v1/messages/count_tokens/route-a95908d3fe52339a.js +0 -1
  768. package/app/.next/static/chunks/app/api/v1/messages/route-a95908d3fe52339a.js +0 -1
  769. package/app/.next/static/chunks/app/api/v1/models/route-a95908d3fe52339a.js +0 -1
  770. package/app/.next/static/chunks/app/api/v1/responses/compact/route-a95908d3fe52339a.js +0 -1
  771. package/app/.next/static/chunks/app/api/v1/responses/route-a95908d3fe52339a.js +0 -1
  772. package/app/.next/static/chunks/app/api/v1/route-a95908d3fe52339a.js +0 -1
  773. package/app/.next/static/chunks/app/api/v1/search/route-a95908d3fe52339a.js +0 -1
  774. package/app/.next/static/chunks/app/api/v1/web/fetch/route-a95908d3fe52339a.js +0 -1
  775. package/app/.next/static/chunks/app/api/v1beta/models/[...path]/route-a95908d3fe52339a.js +0 -1
  776. package/app/.next/static/chunks/app/api/v1beta/models/route-a95908d3fe52339a.js +0 -1
  777. package/app/.next/static/chunks/app/api/version/route-a95908d3fe52339a.js +0 -1
  778. package/app/.next/static/chunks/app/api/version/update/route-a95908d3fe52339a.js +0 -1
  779. package/app/.next/static/chunks/app/login/page-4cbcd0b23f8d9304.js +0 -1
  780. package/app/.next/static/chunks/app/manifest.webmanifest/route-a95908d3fe52339a.js +0 -1
  781. package/app/.next/static/chunks/app/page-a95908d3fe52339a.js +0 -1
  782. package/app/.next/static/chunks/next/dist/client/components/builtin/app-error-a95908d3fe52339a.js +0 -1
  783. package/app/.next/static/chunks/next/dist/client/components/builtin/forbidden-a95908d3fe52339a.js +0 -1
  784. package/app/.next/static/chunks/next/dist/client/components/builtin/not-found-a95908d3fe52339a.js +0 -1
  785. package/app/.next/static/chunks/next/dist/client/components/builtin/unauthorized-a95908d3fe52339a.js +0 -1
  786. package/app/.next/static/chunks/webpack-7fe9f68a976b08ff.js +0 -1
  787. package/app/.next/static/css/1ef6107a5d5fd71c.css +0 -1
  788. /package/app/.next/static/{ahyS0wV6v2JdXWYSEruR6 → kSw7ik2y0Lphlofn8QbuF}/_ssgManifest.js +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";exports.id=4989,exports.ids=[4989],exports.modules={47370:(a,b,c)=>{c.d(b,{BY:()=>E,E5:()=>B,SL:()=>l.SL,Zx:()=>C,_V:()=>v,j$:()=>F,ox:()=>l.ox,rg:()=>y,sZ:()=>A,uw:()=>x});var d=c(82996),e=c(11259),f=c(94735),g=c(33873),h=c.n(g),i=c(29021),j=c.n(i),k=c(49120),l=c(90336);let m="u">typeof caches||"object"==typeof caches,n=m?null:h().join(k.n,"usage.json"),o=m?null:h().join(k.n,"log.txt");if(!m&&j()&&"function"==typeof j().existsSync)try{j().existsSync(k.n)||(j().mkdirSync(k.n,{recursive:!0}),console.log(`[usageDb] Created data directory: ${k.n}`))}catch(a){console.error("[usageDb] Failed to create data directory:",a.message)}let p={history:[],totalRequestsLifetime:0,dailySummary:{}};function q(a,b,c){a[b]||(a[b]={requests:0,promptTokens:0,completionTokens:0,cost:0}),a[b].requests+=c.requests||1,a[b].promptTokens+=c.promptTokens||0,a[b].completionTokens+=c.completionTokens||0,a[b].cost+=c.cost||0,c.meta&&Object.assign(a[b],c.meta)}function r(a,b){var c;let d,e=(d=(c=b.timestamp)?new Date(c):new Date,`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,"0")}-${String(d.getDate()).padStart(2,"0")}`);a[e]||(a[e]={requests:0,promptTokens:0,completionTokens:0,cost:0,byProvider:{},byModel:{},byAccount:{},byApiKey:{},byEndpoint:{}});let f=a[e],g=b.tokens?.prompt_tokens||b.tokens?.input_tokens||0,h=b.tokens?.completion_tokens||b.tokens?.output_tokens||0,i=b.cost||0,j={promptTokens:g,completionTokens:h,cost:i};f.requests+=1,f.promptTokens+=g,f.completionTokens+=h,f.cost+=i,b.provider&&q(f.byProvider,b.provider,j);let k=b.provider?`${b.model}|${b.provider}`:b.model;q(f.byModel,k,{...j,meta:{rawModel:b.model,provider:b.provider}}),b.connectionId&&q(f.byAccount,b.connectionId,{...j,meta:{rawModel:b.model,provider:b.provider}});let l=b.apiKey&&"string"==typeof b.apiKey?b.apiKey:"local-no-key",m=`${l}|${b.model}|${b.provider||"unknown"}`;q(f.byApiKey,m,{...j,meta:{rawModel:b.model,provider:b.provider,apiKey:b.apiKey||null}});let n=b.endpoint||"Unknown",o=`${n}|${b.model}|${b.provider||"unknown"}`;q(f.byEndpoint,o,{...j,meta:{endpoint:n,rawModel:b.model,provider:b.provider}})}let s=null;global._pendingRequests||(global._pendingRequests={byModel:{},byAccount:{}});let t=global._pendingRequests;global._lastErrorProvider||(global._lastErrorProvider={provider:"",ts:0});let u=global._lastErrorProvider;global._statsEmitter||(global._statsEmitter=new f.EventEmitter,global._statsEmitter.setMaxListeners(50));let v=global._statsEmitter;global._pendingTimers||(global._pendingTimers={});let w=global._pendingTimers;function x(a,b,c,d,e=!1){let f=b?`${a} (${b})`:a,g=`${c}|${f}`;t.byModel[f]||(t.byModel[f]=0),t.byModel[f]=Math.max(0,t.byModel[f]+(d?1:-1)),c&&(t.byAccount[c]||(t.byAccount[c]={}),t.byAccount[c][f]||(t.byAccount[c][f]=0),t.byAccount[c][f]=Math.max(0,t.byAccount[c][f]+(d?1:-1))),d?(clearTimeout(w[g]),w[g]=setTimeout(()=>{delete w[g],t.byModel[f]>0&&(t.byModel[f]=0),c&&t.byAccount[c]?.[f]>0&&(t.byAccount[c][f]=0),v.emit("pending")},6e4)):(clearTimeout(w[g]),delete w[g]),!d&&e&&b&&(u.provider=b.toLowerCase(),u.ts=Date.now());let h=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"});console.log(`[${h}] [PENDING] ${d?"START":"END"}${e?" (ERROR)":""} | provider=${b} | model=${a}`),v.emit("pending")}async function y(){let a=[],b={};try{let{getProviderConnections:a}=await Promise.all([c.e(7502),c.e(9718)]).then(c.bind(c,89718));for(let c of(await a()))b[c.id]=c.name||c.email||c.id}catch{}for(let[c,d]of Object.entries(t.byAccount))for(let[e,f]of Object.entries(d))if(f>0){let d=b[c]||`Account ${c.slice(0,8)}...`,g=e.match(/^(.*) \((.*)\)$/),h=g?g[1]:e,i=g?g[2]:"unknown";a.push({model:h,provider:i,account:d,count:f})}let d=await z();await d.read();let e=d.data.history||[],f=new Set;return{activeRequests:a,recentRequests:[...e].sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)).map(a=>{let b=a.tokens||{},c=b.prompt_tokens||b.input_tokens||0,d=b.completion_tokens||b.output_tokens||0;return{timestamp:a.timestamp,model:a.model,provider:a.provider||"",promptTokens:c,completionTokens:d,status:a.status||"ok"}}).filter(a=>{if(0===a.promptTokens&&0===a.completionTokens)return!1;let b=a.timestamp?a.timestamp.slice(0,16):"",c=`${a.model}|${a.provider}|${a.promptTokens}|${a.completionTokens}|${b}`;return!f.has(c)&&(f.add(c),!0)}).slice(0,20),errorProvider:Date.now()-u.ts<1e4?u.provider:""}}async function z(){if(m)return s||((s=new d.t({read:async()=>{},write:async()=>{}},p)).data=p),s;if(!s){let a=new e.Pv(n);s=new d.t(a,p);try{await s.read()}catch(a){if(a instanceof SyntaxError)console.warn("[DB] Corrupt Usage JSON detected, resetting to defaults..."),s.data=p,await s.write();else throw a}s.data||(s.data={...p},await s.write()),s.data.dailySummary||(function(a){let b=a.data.history||[];if(!b.length)return!1;for(let c of(a.data.dailySummary={},b))r(a.data.dailySummary,c);return console.log(`[usageDb] Migrated ${b.length} history entries to dailySummary (${Object.keys(a.data.dailySummary).length} days)`),!0}(s)?await s.write():s.data.dailySummary={})}return s}async function A(a){if(!m)try{let b=await z();a.timestamp||(a.timestamp=new Date().toISOString()),Array.isArray(b.data.history)||(b.data.history=[]),"number"!=typeof b.data.totalRequestsLifetime&&(b.data.totalRequestsLifetime=b.data.history.length);let c=await D(a.provider,a.model,a.tokens);a.cost=c,b.data.history.push(a),b.data.totalRequestsLifetime+=1,b.data.dailySummary||(b.data.dailySummary={}),r(b.data.dailySummary,a),b.data.history.length>1e4&&b.data.history.splice(0,b.data.history.length-1e4),await b.write(),v.emit("update")}catch(a){console.error("Failed to save usage stats:",a)}}async function B({model:a,provider:b,connectionId:d,tokens:e,status:f}){if(!m)try{let g=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=b(a.getDate()),d=b(a.getMonth()+1),e=a.getFullYear(),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds());return`${c}-${d}-${e} ${f}:${g}:${h}`}(),h=b?.toUpperCase()||"-",i=d?d.slice(0,8):"-";try{let{getProviderConnections:a}=await Promise.all([c.e(7502),c.e(9718)]).then(c.bind(c,89718)),b=(await a()).find(a=>a.id===d);b&&(i=b.name||b.email||i)}catch{}let k=e?.prompt_tokens!==void 0?e.prompt_tokens:"-",l=e?.completion_tokens!==void 0?e.completion_tokens:"-",m=`${g} | ${a||"-"} | ${h} | ${i} | ${k} | ${l} | ${f}
2
- `;j().appendFileSync(o,m);let n=j().readFileSync(o,"utf-8").trim().split("\n");n.length>200&&j().writeFileSync(o,n.slice(-200).join("\n")+"\n")}catch(a){console.error("Failed to append to log.txt:",a.message)}}async function C(a=200){if(m)return[];if(!j()||"function"!=typeof j().existsSync)return console.error("[usageDb] fs module not available in this environment"),[];if(!o)return console.error("[usageDb] LOG_FILE path not defined"),[];if(!j().existsSync(o))return console.log(`[usageDb] Log file does not exist: ${o}`),[];try{return j().readFileSync(o,"utf-8").trim().split("\n").slice(-a).reverse()}catch(a){return console.error("[usageDb] Failed to read log.txt:",a.message),console.error("[usageDb] LOG_FILE path:",o),[]}}async function D(a,b,d){if(!d||!a||!b)return 0;try{let{getPricingForModel:e}=await Promise.all([c.e(7502),c.e(9718)]).then(c.bind(c,89718)),f=await e(a,b);if(!f)return 0;let g=0,h=d.prompt_tokens||d.input_tokens||0,i=d.cached_tokens||d.cache_read_input_tokens||0,j=Math.max(0,h-i);if(g+=j*(f.input/1e6),i>0){let a=f.cached||f.input;g+=a/1e6*i}let k=d.completion_tokens||d.output_tokens||0;g+=k*(f.output/1e6);let l=d.reasoning_tokens||0;if(l>0){let a=f.reasoning||f.output;g+=a/1e6*l}let m=d.cache_creation_input_tokens||0;if(m>0){let a=f.cache_creation||f.input;g+=a/1e6*m}return g}catch(a){return console.error("Error calculating cost:",a),0}}async function E(a="all"){let b=await z(),d=b.data.history||[],e=b.data.dailySummary||{},{getProviderConnections:f,getApiKeys:g,getProviderNodes:h}=await Promise.all([c.e(7502),c.e(9718)]).then(c.bind(c,89718)),i=[];try{i=await f()}catch{}let j={};for(let a of i)j[a.id]=a.name||a.email||a.id;let k={};try{for(let a of(await h()))a.id&&a.name&&(k[a.id]=a.name)}catch{}let l=[];try{l=await g()}catch{}let m={};for(let a of l)m[a.key]={name:a.name,id:a.id,createdAt:a.createdAt};let n=new Set,o=[...d].sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)).map(a=>{let b=a.tokens||{};return{timestamp:a.timestamp,model:a.model,provider:a.provider||"",promptTokens:b.prompt_tokens||b.input_tokens||0,completionTokens:b.completion_tokens||b.output_tokens||0,status:a.status||"ok"}}).filter(a=>{if(0===a.promptTokens&&0===a.completionTokens)return!1;let b=a.timestamp?a.timestamp.slice(0,16):"",c=`${a.model}|${a.provider}|${a.promptTokens}|${a.completionTokens}|${b}`;return!n.has(c)&&(n.add(c),!0)}).slice(0,20),p={totalRequests:"number"==typeof b.data.totalRequestsLifetime?b.data.totalRequestsLifetime:d.length,totalPromptTokens:0,totalCompletionTokens:0,totalCost:0,byProvider:{},byModel:{},byAccount:{},byApiKey:{},byEndpoint:{},last10Minutes:[],pending:t,activeRequests:[],recentRequests:o,errorProvider:Date.now()-u.ts<1e4?u.provider:""};for(let[a,b]of Object.entries(t.byAccount))for(let[c,d]of Object.entries(b))if(d>0){let b=j[a]||`Account ${a.slice(0,8)}...`,e=c.match(/^(.*) \((.*)\)$/);p.activeRequests.push({model:e?e[1]:c,provider:e?e[2]:"unknown",account:b,count:d})}let q=new Date,r=new Date(6e4*Math.floor(q.getTime()/6e4)),s=new Date(r.getTime()-54e4),v={};for(let a=0;a<10;a++){let b=r.getTime()-(9-a)*6e4;v[b]={requests:0,promptTokens:0,completionTokens:0,cost:0},p.last10Minutes.push(v[b])}for(let a of d){let b=new Date(a.timestamp);if(b>=s&&b<=q){let c=6e4*Math.floor(b.getTime()/6e4);if(v[c]){let b=a.tokens?.prompt_tokens||0,d=a.tokens?.completion_tokens||0;v[c].requests++,v[c].promptTokens+=b,v[c].completionTokens+=d,v[c].cost+=a.cost||0}}}if("24h"!==a){let b={"7d":7,"30d":30,"60d":60}[a]||null,c=new Date;for(let a of Object.keys(e).filter(a=>{if(!b)return!0;let d=a.split("-"),e=new Date(Number(d[0]),Number(d[1])-1,Number(d[2]));return Math.floor((c.getTime()-e.getTime())/864e5)<b})){let b=e[a];for(let[a,c]of(p.totalPromptTokens+=b.promptTokens||0,p.totalCompletionTokens+=b.completionTokens||0,p.totalCost+=b.cost||0,Object.entries(b.byProvider||{})))p.byProvider[a]||(p.byProvider[a]={requests:0,promptTokens:0,completionTokens:0,cost:0}),p.byProvider[a].requests+=c.requests||0,p.byProvider[a].promptTokens+=c.promptTokens||0,p.byProvider[a].completionTokens+=c.completionTokens||0,p.byProvider[a].cost+=c.cost||0;for(let[c,d]of Object.entries(b.byModel||{})){let b=d.rawModel||c.split("|")[0],e=d.provider||c.split("|")[1]||"",f=e?`${b} (${e})`:b,g=k[e]||e;p.byModel[f]||(p.byModel[f]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:b,provider:g,lastUsed:a}),p.byModel[f].requests+=d.requests||0,p.byModel[f].promptTokens+=d.promptTokens||0,p.byModel[f].completionTokens+=d.completionTokens||0,p.byModel[f].cost+=d.cost||0,a>(p.byModel[f].lastUsed||"")&&(p.byModel[f].lastUsed=a)}for(let[c,d]of Object.entries(b.byAccount||{})){let b=j[c]||`Account ${c.slice(0,8)}...`,e=d.rawModel||"",f=d.provider||"",g=k[f]||f,h=`${e} (${f} - ${b})`;p.byAccount[h]||(p.byAccount[h]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:e,provider:g,connectionId:c,accountName:b,lastUsed:a}),p.byAccount[h].requests+=d.requests||0,p.byAccount[h].promptTokens+=d.promptTokens||0,p.byAccount[h].completionTokens+=d.completionTokens||0,p.byAccount[h].cost+=d.cost||0,a>(p.byAccount[h].lastUsed||"")&&(p.byAccount[h].lastUsed=a)}for(let[c,d]of Object.entries(b.byApiKey||{})){let b=d.rawModel||"",e=d.provider||"",f=k[e]||e,g=d.apiKey,h=g?m[g]:null,i=h?.name||(g?g.slice(0,8)+"...":"Local (No API Key)"),j=g||"local-no-key";p.byApiKey[c]||(p.byApiKey[c]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:b,provider:f,apiKey:g,keyName:i,apiKeyKey:j,lastUsed:a}),p.byApiKey[c].requests+=d.requests||0,p.byApiKey[c].promptTokens+=d.promptTokens||0,p.byApiKey[c].completionTokens+=d.completionTokens||0,p.byApiKey[c].cost+=d.cost||0,a>(p.byApiKey[c].lastUsed||"")&&(p.byApiKey[c].lastUsed=a)}for(let[c,d]of Object.entries(b.byEndpoint||{})){let b=d.endpoint||c.split("|")[0]||"Unknown",e=d.rawModel||"",f=d.provider||"",g=k[f]||f;p.byEndpoint[c]||(p.byEndpoint[c]={requests:0,promptTokens:0,completionTokens:0,cost:0,endpoint:b,rawModel:e,provider:g,lastUsed:a}),p.byEndpoint[c].requests+=d.requests||0,p.byEndpoint[c].promptTokens+=d.promptTokens||0,p.byEndpoint[c].completionTokens+=d.completionTokens||0,p.byEndpoint[c].cost+=d.cost||0,a>(p.byEndpoint[c].lastUsed||"")&&(p.byEndpoint[c].lastUsed=a)}}let f=b?Date.now()-864e5*b:0;for(let a of d){let b=a.timestamp;if(!b||new Date(b).getTime()<f)continue;let c=a.provider?`${a.model} (${a.provider})`:a.model;if(p.byModel[c]&&new Date(b)>new Date(p.byModel[c].lastUsed)&&(p.byModel[c].lastUsed=b),a.connectionId){let c=j[a.connectionId]||`Account ${a.connectionId.slice(0,8)}...`,d=`${a.model} (${a.provider} - ${c})`;p.byAccount[d]&&new Date(b)>new Date(p.byAccount[d].lastUsed)&&(p.byAccount[d].lastUsed=b)}let d=a.apiKey&&"string"==typeof a.apiKey?`${a.apiKey}|${a.model}|${a.provider||"unknown"}`:"local-no-key";p.byApiKey[d]&&new Date(b)>new Date(p.byApiKey[d].lastUsed)&&(p.byApiKey[d].lastUsed=b);let e=a.endpoint||"Unknown",g=`${e}|${a.model}|${a.provider||"unknown"}`;p.byEndpoint[g]&&new Date(b)>new Date(p.byEndpoint[g].lastUsed)&&(p.byEndpoint[g].lastUsed=b)}}else{let a=Date.now()-864e5;for(let b of d.filter(b=>new Date(b.timestamp).getTime()>=a)){let a=b.tokens?.prompt_tokens||0,c=b.tokens?.completion_tokens||0,d=b.cost||0,e=k[b.provider]||b.provider;p.totalPromptTokens+=a,p.totalCompletionTokens+=c,p.totalCost+=d,p.byProvider[b.provider]||(p.byProvider[b.provider]={requests:0,promptTokens:0,completionTokens:0,cost:0}),p.byProvider[b.provider].requests++,p.byProvider[b.provider].promptTokens+=a,p.byProvider[b.provider].completionTokens+=c,p.byProvider[b.provider].cost+=d;let f=b.provider?`${b.model} (${b.provider})`:b.model;if(p.byModel[f]||(p.byModel[f]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:b.model,provider:e,lastUsed:b.timestamp}),p.byModel[f].requests++,p.byModel[f].promptTokens+=a,p.byModel[f].completionTokens+=c,p.byModel[f].cost+=d,new Date(b.timestamp)>new Date(p.byModel[f].lastUsed)&&(p.byModel[f].lastUsed=b.timestamp),b.connectionId){let f=j[b.connectionId]||`Account ${b.connectionId.slice(0,8)}...`,g=`${b.model} (${b.provider} - ${f})`;p.byAccount[g]||(p.byAccount[g]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:b.model,provider:e,connectionId:b.connectionId,accountName:f,lastUsed:b.timestamp}),p.byAccount[g].requests++,p.byAccount[g].promptTokens+=a,p.byAccount[g].completionTokens+=c,p.byAccount[g].cost+=d,new Date(b.timestamp)>new Date(p.byAccount[g].lastUsed)&&(p.byAccount[g].lastUsed=b.timestamp)}if(b.apiKey&&"string"==typeof b.apiKey){let f=m[b.apiKey],g=f?.name||b.apiKey.slice(0,8)+"...",h=`${b.apiKey}|${b.model}|${b.provider||"unknown"}`;p.byApiKey[h]||(p.byApiKey[h]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:b.model,provider:e,apiKey:b.apiKey,keyName:g,apiKeyKey:b.apiKey,lastUsed:b.timestamp});let i=p.byApiKey[h];i.requests++,i.promptTokens+=a,i.completionTokens+=c,i.cost+=d,new Date(b.timestamp)>new Date(i.lastUsed)&&(i.lastUsed=b.timestamp)}else{p.byApiKey["local-no-key"]||(p.byApiKey["local-no-key"]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:b.model,provider:e,apiKey:null,keyName:"Local (No API Key)",apiKeyKey:"local-no-key",lastUsed:b.timestamp});let f=p.byApiKey["local-no-key"];f.requests++,f.promptTokens+=a,f.completionTokens+=c,f.cost+=d,new Date(b.timestamp)>new Date(f.lastUsed)&&(f.lastUsed=b.timestamp)}let g=b.endpoint||"Unknown",h=`${g}|${b.model}|${b.provider||"unknown"}`;p.byEndpoint[h]||(p.byEndpoint[h]={requests:0,promptTokens:0,completionTokens:0,cost:0,endpoint:g,rawModel:b.model,provider:e,lastUsed:b.timestamp});let i=p.byEndpoint[h];i.requests++,i.promptTokens+=a,i.completionTokens+=c,i.cost+=d,new Date(b.timestamp)>new Date(i.lastUsed)&&(i.lastUsed=b.timestamp)}}return p}async function F(a="7d"){let b=await z(),c=b.data.history||[],d=b.data.dailySummary||{},e=Date.now();if("24h"===a){let a=e-864e5,b=Array.from({length:24},(b,c)=>({label:new Date(a+36e5*c).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}),tokens:0,cost:0}));for(let d of c){let c=new Date(d.timestamp).getTime();if(c<a||c>e)continue;let f=Math.min(Math.floor((c-a)/36e5),23);b[f].tokens+=(d.tokens?.prompt_tokens||0)+(d.tokens?.completion_tokens||0),b[f].cost+=d.cost||0}return b}let f="7d"===a?7:"30d"===a?30:60,g=new Date;return Array.from({length:f},(a,b)=>{let c=new Date(g);c.setDate(c.getDate()-(f-1-b));let e=d[`${c.getFullYear()}-${String(c.getMonth()+1).padStart(2,"0")}-${String(c.getDate()).padStart(2,"0")}`];return{label:c.toLocaleDateString("en-US",{month:"short",day:"numeric"}),tokens:e?(e.promptTokens||0)+(e.completionTokens||0):0,cost:e&&e.cost||0}})}},49120:(a,b,c)=>{c.d(b,{n:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);function j(a){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),a):g().join(i().homedir(),`.${a}`)}let k=function(){if(process.env.DATA_DIR)return process.env.DATA_DIR;let a=j("openrouterx"),b=j("9router");return!e().existsSync(a)&&e().existsSync(b)?b:a}()},90336:(a,b,c)=>{c.d(b,{SL:()=>w,ox:()=>v});var d=c(82996),e=c(11259),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(49120);let k="u">typeof caches&&"object"==typeof caches,l=k?null:g().join(j.n,"request-details.json");k||i().existsSync(j.n)||i().mkdirSync(j.n,{recursive:!0});let m=null;async function n(){if(k)return null;if(!m){let a=new e.Pv(l),b=new d.t(a,{records:[]});await b.read(),b.data?.records||(b.data={records:[]}),m=b}return m}let o=null,p=0;async function q(){if(o&&Date.now()-p<5e3)return o;try{let{getSettings:a}=await Promise.all([c.e(7502),c.e(9718)]).then(c.bind(c,89718)),b=await a(),d="false"!==process.env.OBSERVABILITY_ENABLED;o={enabled:"boolean"==typeof b.enableObservability?b.enableObservability:d,maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{o={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return p=Date.now(),o}let r=[],s=null,t=!1;async function u(){if(!k&&!t&&0!==r.length){t=!0;try{let a=[...r];r=[];let b=await n(),c=await q();for(let d of a){d.id||(d.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(d.model)),d.timestamp||(d.timestamp=new Date().toISOString()),d.request?.headers&&(d.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(d.request.headers));let a={id:d.id,provider:d.provider||null,model:d.model||null,connectionId:d.connectionId||null,timestamp:d.timestamp,status:d.status||null,latency:d.latency||{},tokens:d.tokens||{},request:d.request||{},providerRequest:d.providerRequest||{},providerResponse:d.providerResponse||{},response:d.response||{}},e=c.maxJsonSize;for(let b of["request","providerRequest","providerResponse","response"]){let c=JSON.stringify(a[b]);c.length>e&&(a[b]={_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)})}let f=b.data.records.findIndex(b=>b.id===a.id);-1!==f?b.data.records[f]=a:b.data.records.push(a)}for(b.data.records.sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)),b.data.records.length>c.maxRecords&&(b.data.records=b.data.records.slice(0,c.maxRecords));b.data.records.length>1&&!(0x3200000>=Buffer.byteLength(JSON.stringify(b.data),"utf8"));)b.data.records=b.data.records.slice(0,Math.floor(b.data.records.length/2));await b.write()}catch(a){console.error("[requestDetailsDb] Batch write failed:",a)}finally{t=!1}}}async function v(a){if(k)return;let b=await q();b.enabled&&(r.push(a),r.length>=b.batchSize?(await u(),s&&(clearTimeout(s),s=null)):s||(s=setTimeout(()=>{u().catch(()=>{}),s=null},b.flushIntervalMs)))}async function w(a={}){if(k)return{details:[],pagination:{page:1,pageSize:50,totalItems:0,totalPages:0,hasNext:!1,hasPrev:!1}};let b=[...(await n()).data.records];a.provider&&(b=b.filter(b=>b.provider===a.provider)),a.model&&(b=b.filter(b=>b.model===a.model)),a.connectionId&&(b=b.filter(b=>b.connectionId===a.connectionId)),a.status&&(b=b.filter(b=>b.status===a.status)),a.startDate&&(b=b.filter(b=>new Date(b.timestamp)>=new Date(a.startDate))),a.endDate&&(b=b.filter(b=>new Date(b.timestamp)<=new Date(a.endDate))),b.sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp));let c=b.length,d=a.page||1,e=a.pageSize||50,f=Math.ceil(c/e);return{details:b.slice((d-1)*e,d*e),pagination:{page:d,pageSize:e,totalItems:c,totalPages:f,hasNext:d<f,hasPrev:d>1}}}let x=async()=>{s&&(clearTimeout(s),s=null),r.length>0&&await u()};k||(process.off("beforeExit",x),process.off("SIGINT",x),process.off("SIGTERM",x),process.off("exit",x),process.on("beforeExit",x),process.on("SIGINT",x),process.on("SIGTERM",x),process.on("exit",x))}};
1
+ "use strict";exports.id=4989,exports.ids=[4989],exports.modules={47370:(a,b,c)=>{c.d(b,{BY:()=>I,E5:()=>E,M2:()=>D,SL:()=>l.SL,Zx:()=>F,_V:()=>v,j$:()=>J,ox:()=>l.ox,rg:()=>A,sZ:()=>C,uw:()=>z});var d=c(82996),e=c(11259),f=c(94735),g=c(33873),h=c.n(g),i=c(29021),j=c.n(i),k=c(49120),l=c(90336);let m="u">typeof caches||"object"==typeof caches,n=m?null:h().join(k.n,"usage.json"),o=m?null:h().join(k.n,"log.txt");if(!m&&j()&&"function"==typeof j().existsSync)try{j().existsSync(k.n)||(j().mkdirSync(k.n,{recursive:!0}),console.log(`[usageDb] Created data directory: ${k.n}`))}catch(a){console.error("[usageDb] Failed to create data directory:",a.message)}let p={history:[],totalRequestsLifetime:0,dailySummary:{}};function q(a,b,c){a[b]||(a[b]={requests:0,promptTokens:0,completionTokens:0,cost:0}),a[b].requests+=c.requests||1,a[b].promptTokens+=c.promptTokens||0,a[b].completionTokens+=c.completionTokens||0,a[b].cost+=c.cost||0,c.meta&&Object.assign(a[b],c.meta)}function r(a,b){var c;let d,e=(d=(c=b.timestamp)?new Date(c):new Date,`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,"0")}-${String(d.getDate()).padStart(2,"0")}`);a[e]||(a[e]={requests:0,promptTokens:0,completionTokens:0,cost:0,byProvider:{},byModel:{},byAccount:{},byApiKey:{},byEndpoint:{}});let f=a[e],g=b.tokens?.prompt_tokens||b.tokens?.input_tokens||0,h=b.tokens?.completion_tokens||b.tokens?.output_tokens||0,i=b.cost||0,j={promptTokens:g,completionTokens:h,cost:i};f.requests+=1,f.promptTokens+=g,f.completionTokens+=h,f.cost+=i,b.provider&&q(f.byProvider,b.provider,j);let k=b.provider?`${b.model}|${b.provider}`:b.model;q(f.byModel,k,{...j,meta:{rawModel:b.model,provider:b.provider}}),b.connectionId&&q(f.byAccount,b.connectionId,{...j,meta:{rawModel:b.model,provider:b.provider}});let l=b.apiKey&&"string"==typeof b.apiKey?b.apiKey:"local-no-key",m=`${l}|${b.model}|${b.provider||"unknown"}`;q(f.byApiKey,m,{...j,meta:{rawModel:b.model,provider:b.provider,apiKey:b.apiKey||null}});let n=b.endpoint||"Unknown",o=`${n}|${b.model}|${b.provider||"unknown"}`;q(f.byEndpoint,o,{...j,meta:{endpoint:n,rawModel:b.model,provider:b.provider}})}let s=null;global._pendingRequests||(global._pendingRequests={byModel:{},byAccount:{}});let t=global._pendingRequests;global._lastErrorProvider||(global._lastErrorProvider={provider:"",ts:0});let u=global._lastErrorProvider;global._statsEmitter||(global._statsEmitter=new f.EventEmitter,global._statsEmitter.setMaxListeners(50));let v=global._statsEmitter;global._pendingTimers||(global._pendingTimers={});let w=global._pendingTimers;async function x(a){if(!a)return{keys:[],keySet:new Set};try{let{getApiKeys:b}=await Promise.all([c.e(7502),c.e(9718)]).then(c.bind(c,89718)),d=await b({userId:a});return{keys:d,keySet:new Set(d.map(a=>a.key).filter(Boolean))}}catch{return{keys:[],keySet:new Set}}}async function y(a,b){if(!b)return a;let{keySet:c}=await x(b);return 0===c.size?[]:a.filter(a=>a.apiKey&&c.has(a.apiKey))}function z(a,b,c,d,e=!1){let f=b?`${a} (${b})`:a,g=`${c}|${f}`;t.byModel[f]||(t.byModel[f]=0),t.byModel[f]=Math.max(0,t.byModel[f]+(d?1:-1)),c&&(t.byAccount[c]||(t.byAccount[c]={}),t.byAccount[c][f]||(t.byAccount[c][f]=0),t.byAccount[c][f]=Math.max(0,t.byAccount[c][f]+(d?1:-1))),d?(clearTimeout(w[g]),w[g]=setTimeout(()=>{delete w[g],t.byModel[f]>0&&(t.byModel[f]=0),c&&t.byAccount[c]?.[f]>0&&(t.byAccount[c][f]=0),v.emit("pending")},6e4)):(clearTimeout(w[g]),delete w[g]),!d&&e&&b&&(u.provider=b.toLowerCase(),u.ts=Date.now());let h=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"});console.log(`[${h}] [PENDING] ${d?"START":"END"}${e?" (ERROR)":""} | provider=${b} | model=${a}`),v.emit("pending")}async function A(a={}){let b=[],d=a.userId;if(!d){let a={};try{let{getProviderConnections:b}=await Promise.all([c.e(7502),c.e(9718)]).then(c.bind(c,89718));for(let c of(await b()))a[c.id]=c.name||c.email||c.id}catch{}for(let[c,d]of Object.entries(t.byAccount))for(let[e,f]of Object.entries(d))if(f>0){let d=a[c]||`Account ${c.slice(0,8)}...`,g=e.match(/^(.*) \((.*)\)$/),h=g?g[1]:e,i=g?g[2]:"unknown";b.push({model:h,provider:i,account:d,count:f})}}let e=await B();await e.read();let f=await y(e.data.history||[],d),g=new Set;return{activeRequests:b,recentRequests:[...f].sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)).map(a=>{let b=a.tokens||{},c=b.prompt_tokens||b.input_tokens||0,d=b.completion_tokens||b.output_tokens||0;return{timestamp:a.timestamp,model:a.model,provider:a.provider||"",promptTokens:c,completionTokens:d,status:a.status||"ok"}}).filter(a=>{if(0===a.promptTokens&&0===a.completionTokens)return!1;let b=a.timestamp?a.timestamp.slice(0,16):"",c=`${a.model}|${a.provider}|${a.promptTokens}|${a.completionTokens}|${b}`;return!g.has(c)&&(g.add(c),!0)}).slice(0,20),errorProvider:Date.now()-u.ts<1e4?u.provider:""}}async function B(){if(m)return s||((s=new d.t({read:async()=>{},write:async()=>{}},p)).data=p),s;if(!s){let a=new e.Pv(n);s=new d.t(a,p);try{await s.read()}catch(a){if(a instanceof SyntaxError)console.warn("[DB] Corrupt Usage JSON detected, resetting to defaults..."),s.data=p,await s.write();else throw a}s.data||(s.data={...p},await s.write()),s.data.dailySummary||(function(a){let b=a.data.history||[];if(!b.length)return!1;for(let c of(a.data.dailySummary={},b))r(a.data.dailySummary,c);return console.log(`[usageDb] Migrated ${b.length} history entries to dailySummary (${Object.keys(a.data.dailySummary).length} days)`),!0}(s)?await s.write():s.data.dailySummary={})}return s}async function C(a){if(!m)try{let b=await B();a.timestamp||(a.timestamp=new Date().toISOString()),Array.isArray(b.data.history)||(b.data.history=[]),"number"!=typeof b.data.totalRequestsLifetime&&(b.data.totalRequestsLifetime=b.data.history.length);let c=await G(a.provider,a.model,a.tokens);a.cost=c,b.data.history.push(a),b.data.totalRequestsLifetime+=1,b.data.dailySummary||(b.data.dailySummary={}),r(b.data.dailySummary,a),b.data.history.length>1e4&&b.data.history.splice(0,b.data.history.length-1e4),await b.write(),v.emit("update")}catch(a){console.error("Failed to save usage stats:",a)}}async function D(a={}){let b=(await B()).data.history||[];if(a.provider&&(b=b.filter(b=>b.provider===a.provider)),a.model&&(b=b.filter(b=>b.model===a.model)),a.startDate){let c=new Date(a.startDate).getTime();b=b.filter(a=>new Date(a.timestamp).getTime()>=c)}if(a.endDate){let c=new Date(a.endDate).getTime();b=b.filter(a=>new Date(a.timestamp).getTime()<=c)}if(a.userId)try{let{getApiKeys:d}=await Promise.all([c.e(7502),c.e(9718)]).then(c.bind(c,89718)),e=await d({userId:a.userId}),f=new Set(e.map(a=>a.key));b=b.filter(a=>a.apiKey&&f.has(a.apiKey))}catch{b=[]}return b}async function E({model:a,provider:b,connectionId:d,tokens:e,status:f}){if(!m)try{let g=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=b(a.getDate()),d=b(a.getMonth()+1),e=a.getFullYear(),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds());return`${c}-${d}-${e} ${f}:${g}:${h}`}(),h=b?.toUpperCase()||"-",i=d?d.slice(0,8):"-";try{let{getProviderConnections:a}=await Promise.all([c.e(7502),c.e(9718)]).then(c.bind(c,89718)),b=(await a()).find(a=>a.id===d);b&&(i=b.name||b.email||i)}catch{}let k=e?.prompt_tokens!==void 0?e.prompt_tokens:"-",l=e?.completion_tokens!==void 0?e.completion_tokens:"-",m=`${g} | ${a||"-"} | ${h} | ${i} | ${k} | ${l} | ${f}
2
+ `;j().appendFileSync(o,m);let n=j().readFileSync(o,"utf-8").trim().split("\n");n.length>200&&j().writeFileSync(o,n.slice(-200).join("\n")+"\n")}catch(a){console.error("Failed to append to log.txt:",a.message)}}async function F(a=200,b={}){if(m)return[];if(!j()||"function"!=typeof j().existsSync)return console.error("[usageDb] fs module not available in this environment"),[];if(!o)return console.error("[usageDb] LOG_FILE path not defined"),[];if(!j().existsSync(o))return console.log(`[usageDb] Log file does not exist: ${o}`),[];try{let d=j().readFileSync(o,"utf-8").trim().split("\n");if(b.userId)try{let{getApiKeys:a}=await Promise.all([c.e(7502),c.e(9718)]).then(c.bind(c,89718)),e=(await a({userId:b.userId})).map(a=>a.key.slice(0,8));d=d.filter(a=>e.some(b=>a.includes(b)))}catch{return[]}return d.slice(-a).reverse()}catch(a){return console.error("[usageDb] Failed to read log.txt:",a.message),console.error("[usageDb] LOG_FILE path:",o),[]}}async function G(a,b,d){if(!d||!a||!b)return 0;try{let{getPricingForModel:e}=await Promise.all([c.e(7502),c.e(9718)]).then(c.bind(c,89718)),f=await e(a,b);if(!f)return 0;let g=0,h=d.prompt_tokens||d.input_tokens||0,i=d.cached_tokens||d.cache_read_input_tokens||0,j=Math.max(0,h-i);if(g+=j*(f.input/1e6),i>0){let a=f.cached||f.input;g+=a/1e6*i}let k=d.completion_tokens||d.output_tokens||0;g+=k*(f.output/1e6);let l=d.reasoning_tokens||0;if(l>0){let a=f.reasoning||f.output;g+=a/1e6*l}let m=d.cache_creation_input_tokens||0;if(m>0){let a=f.cache_creation||f.input;g+=a/1e6*m}return g}catch(a){return console.error("Error calculating cost:",a),0}}let H={"24h":864e5,"7d":6048e5,"30d":2592e6,"60d":5184e6};async function I(a="all",b={}){let d=await B(),e=await y(d.data.history||[],b.userId),f=d.data.dailySummary||{},{getProviderConnections:g,getApiKeys:h,getProviderNodes:i}=await Promise.all([c.e(7502),c.e(9718)]).then(c.bind(c,89718)),j=[];try{j=await g()}catch{}let k={};for(let a of j)k[a.id]=a.name||a.email||a.id;let l={};try{for(let a of(await i()))a.id&&a.name&&(l[a.id]=a.name)}catch{}let m=[];try{m=await h()}catch{}let n={};for(let a of m)n[a.key]={name:a.name,id:a.id,createdAt:a.createdAt};let o=new Set,p=[...e].sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)).map(a=>{let b=a.tokens||{};return{timestamp:a.timestamp,model:a.model,provider:a.provider||"",promptTokens:b.prompt_tokens||b.input_tokens||0,completionTokens:b.completion_tokens||b.output_tokens||0,status:a.status||"ok"}}).filter(a=>{if(0===a.promptTokens&&0===a.completionTokens)return!1;let b=a.timestamp?a.timestamp.slice(0,16):"",c=`${a.model}|${a.provider}|${a.promptTokens}|${a.completionTokens}|${b}`;return!o.has(c)&&(o.add(c),!0)}).slice(0,20),q={totalRequests:b.userId?e.length:"number"==typeof d.data.totalRequestsLifetime?d.data.totalRequestsLifetime:e.length,totalPromptTokens:0,totalCompletionTokens:0,totalCost:0,byProvider:{},byModel:{},byAccount:{},byApiKey:{},byEndpoint:{},last10Minutes:[],pending:b.userId?{byModel:{},byAccount:{}}:t,activeRequests:[],recentRequests:p,errorProvider:Date.now()-u.ts<1e4?u.provider:""};if(!b.userId){for(let[a,b]of Object.entries(t.byAccount))for(let[c,d]of Object.entries(b))if(d>0){let b=k[a]||`Account ${a.slice(0,8)}...`,e=c.match(/^(.*) \((.*)\)$/);q.activeRequests.push({model:e?e[1]:c,provider:e?e[2]:"unknown",account:b,count:d})}}let r=new Date,s=new Date(6e4*Math.floor(r.getTime()/6e4)),v=new Date(s.getTime()-54e4),w={};for(let a=0;a<10;a++){let b=s.getTime()-(9-a)*6e4;w[b]={requests:0,promptTokens:0,completionTokens:0,cost:0},q.last10Minutes.push(w[b])}for(let a of e){let b=new Date(a.timestamp);if(b>=v&&b<=r){let c=6e4*Math.floor(b.getTime()/6e4);if(w[c]){let b=a.tokens?.prompt_tokens||0,d=a.tokens?.completion_tokens||0;w[c].requests++,w[c].promptTokens+=b,w[c].completionTokens+=d,w[c].cost+=a.cost||0}}}if("24h"===a||b.userId){let c="all"===a?0:Date.now()-(H[a]||H["24h"]),d=c>0?e.filter(a=>new Date(a.timestamp).getTime()>=c):e;for(let a of(b.userId&&(q.totalRequests=d.length),d)){let c=a.tokens?.prompt_tokens||0,d=a.tokens?.completion_tokens||0,e=b.userId?await G(a.provider,a.model,a.tokens):a.cost||0,f=l[a.provider]||a.provider;q.totalPromptTokens+=c,q.totalCompletionTokens+=d,q.totalCost+=e,q.byProvider[a.provider]||(q.byProvider[a.provider]={requests:0,promptTokens:0,completionTokens:0,cost:0}),q.byProvider[a.provider].requests++,q.byProvider[a.provider].promptTokens+=c,q.byProvider[a.provider].completionTokens+=d,q.byProvider[a.provider].cost+=e;let g=a.provider?`${a.model} (${a.provider})`:a.model;if(q.byModel[g]||(q.byModel[g]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:a.model,provider:f,lastUsed:a.timestamp}),q.byModel[g].requests++,q.byModel[g].promptTokens+=c,q.byModel[g].completionTokens+=d,q.byModel[g].cost+=e,new Date(a.timestamp)>new Date(q.byModel[g].lastUsed)&&(q.byModel[g].lastUsed=a.timestamp),a.connectionId){let b=k[a.connectionId]||`Account ${a.connectionId.slice(0,8)}...`,g=`${a.model} (${a.provider} - ${b})`;q.byAccount[g]||(q.byAccount[g]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:a.model,provider:f,connectionId:a.connectionId,accountName:b,lastUsed:a.timestamp}),q.byAccount[g].requests++,q.byAccount[g].promptTokens+=c,q.byAccount[g].completionTokens+=d,q.byAccount[g].cost+=e,new Date(a.timestamp)>new Date(q.byAccount[g].lastUsed)&&(q.byAccount[g].lastUsed=a.timestamp)}if(a.apiKey&&"string"==typeof a.apiKey){let b=n[a.apiKey],g=b?.name||a.apiKey.slice(0,8)+"...",h=`${a.apiKey}|${a.model}|${a.provider||"unknown"}`;q.byApiKey[h]||(q.byApiKey[h]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:a.model,provider:f,apiKey:a.apiKey,keyName:g,apiKeyKey:a.apiKey,lastUsed:a.timestamp});let i=q.byApiKey[h];i.requests++,i.promptTokens+=c,i.completionTokens+=d,i.cost+=e,new Date(a.timestamp)>new Date(i.lastUsed)&&(i.lastUsed=a.timestamp)}else{q.byApiKey["local-no-key"]||(q.byApiKey["local-no-key"]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:a.model,provider:f,apiKey:null,keyName:"Local (No API Key)",apiKeyKey:"local-no-key",lastUsed:a.timestamp});let b=q.byApiKey["local-no-key"];b.requests++,b.promptTokens+=c,b.completionTokens+=d,b.cost+=e,new Date(a.timestamp)>new Date(b.lastUsed)&&(b.lastUsed=a.timestamp)}let h=a.endpoint||"Unknown",i=`${h}|${a.model}|${a.provider||"unknown"}`;q.byEndpoint[i]||(q.byEndpoint[i]={requests:0,promptTokens:0,completionTokens:0,cost:0,endpoint:h,rawModel:a.model,provider:f,lastUsed:a.timestamp});let j=q.byEndpoint[i];j.requests++,j.promptTokens+=c,j.completionTokens+=d,j.cost+=e,new Date(a.timestamp)>new Date(j.lastUsed)&&(j.lastUsed=a.timestamp)}}else{let b={"7d":7,"30d":30,"60d":60}[a]||null,c=new Date;for(let a of Object.keys(f).filter(a=>{if(!b)return!0;let d=a.split("-"),e=new Date(Number(d[0]),Number(d[1])-1,Number(d[2]));return Math.floor((c.getTime()-e.getTime())/864e5)<b})){let b=f[a];for(let[a,c]of(q.totalPromptTokens+=b.promptTokens||0,q.totalCompletionTokens+=b.completionTokens||0,q.totalCost+=b.cost||0,Object.entries(b.byProvider||{})))q.byProvider[a]||(q.byProvider[a]={requests:0,promptTokens:0,completionTokens:0,cost:0}),q.byProvider[a].requests+=c.requests||0,q.byProvider[a].promptTokens+=c.promptTokens||0,q.byProvider[a].completionTokens+=c.completionTokens||0,q.byProvider[a].cost+=c.cost||0;for(let[c,d]of Object.entries(b.byModel||{})){let b=d.rawModel||c.split("|")[0],e=d.provider||c.split("|")[1]||"",f=e?`${b} (${e})`:b,g=l[e]||e;q.byModel[f]||(q.byModel[f]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:b,provider:g,lastUsed:a}),q.byModel[f].requests+=d.requests||0,q.byModel[f].promptTokens+=d.promptTokens||0,q.byModel[f].completionTokens+=d.completionTokens||0,q.byModel[f].cost+=d.cost||0,a>(q.byModel[f].lastUsed||"")&&(q.byModel[f].lastUsed=a)}for(let[c,d]of Object.entries(b.byAccount||{})){let b=k[c]||`Account ${c.slice(0,8)}...`,e=d.rawModel||"",f=d.provider||"",g=l[f]||f,h=`${e} (${f} - ${b})`;q.byAccount[h]||(q.byAccount[h]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:e,provider:g,connectionId:c,accountName:b,lastUsed:a}),q.byAccount[h].requests+=d.requests||0,q.byAccount[h].promptTokens+=d.promptTokens||0,q.byAccount[h].completionTokens+=d.completionTokens||0,q.byAccount[h].cost+=d.cost||0,a>(q.byAccount[h].lastUsed||"")&&(q.byAccount[h].lastUsed=a)}for(let[c,d]of Object.entries(b.byApiKey||{})){let b=d.rawModel||"",e=d.provider||"",f=l[e]||e,g=d.apiKey,h=g?n[g]:null,i=h?.name||(g?g.slice(0,8)+"...":"Local (No API Key)"),j=g||"local-no-key";q.byApiKey[c]||(q.byApiKey[c]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:b,provider:f,apiKey:g,keyName:i,apiKeyKey:j,lastUsed:a}),q.byApiKey[c].requests+=d.requests||0,q.byApiKey[c].promptTokens+=d.promptTokens||0,q.byApiKey[c].completionTokens+=d.completionTokens||0,q.byApiKey[c].cost+=d.cost||0,a>(q.byApiKey[c].lastUsed||"")&&(q.byApiKey[c].lastUsed=a)}for(let[c,d]of Object.entries(b.byEndpoint||{})){let b=d.endpoint||c.split("|")[0]||"Unknown",e=d.rawModel||"",f=d.provider||"",g=l[f]||f;q.byEndpoint[c]||(q.byEndpoint[c]={requests:0,promptTokens:0,completionTokens:0,cost:0,endpoint:b,rawModel:e,provider:g,lastUsed:a}),q.byEndpoint[c].requests+=d.requests||0,q.byEndpoint[c].promptTokens+=d.promptTokens||0,q.byEndpoint[c].completionTokens+=d.completionTokens||0,q.byEndpoint[c].cost+=d.cost||0,a>(q.byEndpoint[c].lastUsed||"")&&(q.byEndpoint[c].lastUsed=a)}}let d=b?Date.now()-864e5*b:0;for(let a of e){let b=a.timestamp;if(!b||new Date(b).getTime()<d)continue;let c=a.provider?`${a.model} (${a.provider})`:a.model;if(q.byModel[c]&&new Date(b)>new Date(q.byModel[c].lastUsed)&&(q.byModel[c].lastUsed=b),a.connectionId){let c=k[a.connectionId]||`Account ${a.connectionId.slice(0,8)}...`,d=`${a.model} (${a.provider} - ${c})`;q.byAccount[d]&&new Date(b)>new Date(q.byAccount[d].lastUsed)&&(q.byAccount[d].lastUsed=b)}let e=a.apiKey&&"string"==typeof a.apiKey?`${a.apiKey}|${a.model}|${a.provider||"unknown"}`:"local-no-key";q.byApiKey[e]&&new Date(b)>new Date(q.byApiKey[e].lastUsed)&&(q.byApiKey[e].lastUsed=b);let f=a.endpoint||"Unknown",g=`${f}|${a.model}|${a.provider||"unknown"}`;q.byEndpoint[g]&&new Date(b)>new Date(q.byEndpoint[g].lastUsed)&&(q.byEndpoint[g].lastUsed=b)}}return q}async function J(a="7d",b={}){let c=await B(),d=await y(c.data.history||[],b.userId),e=c.data.dailySummary||{},f=Date.now();if("24h"===a||b.userId){let c="24h"===a,e=c?36e5:864e5,g="7d"===a?7:"30d"===a?30:"60d"===a?60:24,h=f-g*e,i=Array.from({length:g},(a,b)=>{let d;return{label:(d=h+b*e,c?new Date(d).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}):new Date(d).toLocaleDateString("en-US",{month:"short",day:"numeric"})),tokens:0,cost:0}});for(let a of d){let c=new Date(a.timestamp).getTime();if(c<h||c>f)continue;let d=Math.min(Math.floor((c-h)/e),g-1);i[d].tokens+=(a.tokens?.prompt_tokens||0)+(a.tokens?.completion_tokens||0),i[d].cost+=b.userId?await G(a.provider,a.model,a.tokens):a.cost||0}return i}let g="7d"===a?7:"30d"===a?30:60,h=new Date;return Array.from({length:g},(a,b)=>{let c=new Date(h);c.setDate(c.getDate()-(g-1-b));let d=e[`${c.getFullYear()}-${String(c.getMonth()+1).padStart(2,"0")}-${String(c.getDate()).padStart(2,"0")}`];return{label:c.toLocaleDateString("en-US",{month:"short",day:"numeric"}),tokens:d?(d.promptTokens||0)+(d.completionTokens||0):0,cost:d&&d.cost||0}})}},49120:(a,b,c)=>{c.d(b,{n:()=>k});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(21820),i=c.n(h);function j(a){return"win32"===process.platform?g().join(process.env.APPDATA||g().join(i().homedir(),"AppData","Roaming"),a):g().join(i().homedir(),`.${a}`)}let k=function(){if(process.env.DATA_DIR)return process.env.DATA_DIR;let a=j("openrouterx"),b=j("9router");return!e().existsSync(a)&&e().existsSync(b)?b:a}()},90336:(a,b,c)=>{c.d(b,{SL:()=>z,ox:()=>y});var d=c(82996),e=c(11259),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(49120);let k="u">typeof caches&&"object"==typeof caches,l=k?null:g().join(j.n,"request-details.json");k||i().existsSync(j.n)||i().mkdirSync(j.n,{recursive:!0});let m=null;async function n(){if(k)return null;if(!m){let a=new e.Pv(l),b=new d.t(a,{records:[]});await b.read(),b.data?.records||(b.data={records:[]}),m=b}return m}let o=null,p=0,q=null,r=0;async function s(a){if(!a)return{apiKeyId:null,apiKeyName:null,userId:null};try{let b=Date.now();if(!q||b-r>5e3){let{getApiKeys:a}=await Promise.all([c.e(7502),c.e(9718)]).then(c.bind(c,89718));q=await a(),r=b}let d=q?.find(b=>b.key===a);return{apiKeyId:d?.id||null,apiKeyName:d?.name||null,userId:d?.userId||null}}catch{return{apiKeyId:null,apiKeyName:null,userId:null}}}async function t(){if(o&&Date.now()-p<5e3)return o;try{let{getSettings:a}=await Promise.all([c.e(7502),c.e(9718)]).then(c.bind(c,89718)),b=await a(),d="false"!==process.env.OBSERVABILITY_ENABLED;o={enabled:"boolean"==typeof b.enableObservability?b.enableObservability:d,maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{o={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return p=Date.now(),o}let u=[],v=null,w=!1;async function x(){if(!k&&!w&&0!==u.length){w=!0;try{let a=[...u];u=[];let b=await n(),c=await t();for(let d of a){d.id||(d.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(d.model)),d.timestamp||(d.timestamp=new Date().toISOString()),d.request?.headers&&(d.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(d.request.headers));let a={id:d.id,userId:d.userId||null,apiKeyId:d.apiKeyId||null,apiKeyName:d.apiKeyName||null,provider:d.provider||null,model:d.model||null,connectionId:d.connectionId||null,timestamp:d.timestamp,status:d.status||null,latency:d.latency||{},tokens:d.tokens||{},request:d.request||{},providerRequest:d.providerRequest||{},providerResponse:d.providerResponse||{},response:d.response||{}},e=c.maxJsonSize;for(let b of["request","providerRequest","providerResponse","response"]){let c=JSON.stringify(a[b]);c.length>e&&(a[b]={_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)})}let f=b.data.records.findIndex(b=>b.id===a.id);-1!==f?b.data.records[f]=a:b.data.records.push(a)}for(b.data.records.sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)),b.data.records.length>c.maxRecords&&(b.data.records=b.data.records.slice(0,c.maxRecords));b.data.records.length>1&&!(0x3200000>=Buffer.byteLength(JSON.stringify(b.data),"utf8"));)b.data.records=b.data.records.slice(0,Math.floor(b.data.records.length/2));await b.write()}catch(a){console.error("[requestDetailsDb] Batch write failed:",a)}finally{w=!1}}}async function y(a){if(k)return;let b=await t();if(!b.enabled)return;let c=await s(a?.apiKey),d={...a,apiKeyId:a?.apiKeyId||c.apiKeyId,apiKeyName:a?.apiKeyName||c.apiKeyName,userId:a?.userId||c.userId};delete d.apiKey,u.push(d),u.length>=b.batchSize?(await x(),v&&(clearTimeout(v),v=null)):v||(v=setTimeout(()=>{x().catch(()=>{}),v=null},b.flushIntervalMs))}async function z(a={}){if(k)return{details:[],pagination:{page:1,pageSize:50,totalItems:0,totalPages:0,hasNext:!1,hasPrev:!1}};let b=[...(await n()).data.records];a.userId&&(b=b.filter(b=>b.userId===a.userId)),a.apiKeyId&&(b=b.filter(b=>b.apiKeyId===a.apiKeyId)),a.apiKeyName&&(b=b.filter(b=>b.apiKeyName===a.apiKeyName)),a.provider&&(b=b.filter(b=>b.provider===a.provider)),a.model&&(b=b.filter(b=>b.model===a.model)),a.connectionId&&(b=b.filter(b=>b.connectionId===a.connectionId)),a.status&&(b=b.filter(b=>b.status===a.status)),a.startDate&&(b=b.filter(b=>new Date(b.timestamp)>=new Date(a.startDate))),a.endDate&&(b=b.filter(b=>new Date(b.timestamp)<=new Date(a.endDate))),b.sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp));let c=b.length,d=a.page||1,e=a.pageSize||50,f=Math.ceil(c/e);return{details:b.slice((d-1)*e,d*e),pagination:{page:d,pageSize:e,totalItems:c,totalPages:f,hasNext:d<f,hasPrev:d>1}}}let A=async()=>{v&&(clearTimeout(v),v=null),u.length>0&&await x()};k||(process.off("beforeExit",A),process.off("SIGINT",A),process.off("SIGTERM",A),process.off("exit",A),process.on("beforeExit",A),process.on("SIGINT",A),process.on("SIGTERM",A),process.on("exit",A))}};
@@ -1 +1 @@
1
- "use strict";exports.id=5573,exports.ids=[5573],exports.modules={20503:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(91488),g=c(20445),h=c(29294),i=c(43014);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},34655:(a,b,c)=>{let d=c(63033),e=c(29294),f=c(23445),g=c(89768),h=c(15693),i=c(43449),j=c(72339),k=c(48894);c(20445);new WeakMap;(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E835",enumerable:!1,configurable:!0})})},43014:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0});var c={ActionDidNotRevalidate:function(){return e},ActionDidRevalidateDynamicOnly:function(){return g},ActionDidRevalidateStaticAndDynamic:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=1,g=2},56022:(a,b,c)=>{Object.defineProperty(b,"b",{enumerable:!0,get:function(){return m}});let d=c(41398),e=c(29294),f=c(63033),g=c(23445),h=c(15693),i=c(48894),j=c(89768),k=c(92305),l=c(72339);function m(){let a="headers",b=e.workAsyncStorage.getStore(),c=f.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,k.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`headers()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E839",enumerable:!1,configurable:!0});if(b.forceStatic)return o(d.HeadersAdapter.seal(new Headers({})));if(c)switch(c.type){case"cache":{let a=Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E833",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),b.invalidDynamicUsageError??=a,a}case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E838",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1134",enumerable:!1,configurable:!0})}if(b.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E828",enumerable:!1,configurable:!0});if(c)switch(c.type){case"prerender":var j=b,p=c;let e=n.get(p);if(e)return e;let q=(0,i.makeHangingPromise)(p.renderSignal,j.route,"`headers()`");return n.set(p,q),q;case"prerender-client":case"validation-client":let r="`headers`";throw Object.defineProperty(new l.InvariantError(`${r} must not be used within a client component. Next.js should be preventing ${r} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1017",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,g.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,g.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,i.delayUntilRuntimeStage)(c,o(c.headers));case"private-cache":return o(c.headers);case"request":if((0,g.trackDynamicDataInDynamicRender)(c),c.asyncApiPromises)return(0,f.isInEarlyRenderStage)(c)?c.asyncApiPromises.earlyHeaders:c.asyncApiPromises.headers;return o(c.headers)}}(0,f.throwForMissingRequestStore)(a)}c(65934);let n=new WeakMap;function o(a){let b=n.get(a);if(b)return b;let c=Promise.resolve(a);return n.set(a,c),c}(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E836",enumerable:!1,configurable:!0})})},65573:(a,b,c)=>{c.d(b,{UL:()=>d.U,b3:()=>e.b});var d=c(69015),e=c(56022);c(34655)},69015:(a,b,c)=>{Object.defineProperty(b,"U",{enumerable:!0,get:function(){return n}});let d=c(20503),e=c(91488),f=c(29294),g=c(63033),h=c(23445),i=c(15693),j=c(48894),k=c(89768),l=c(92305),m=c(72339);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,l.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E843",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E849",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E831",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E846",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1123",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let r=o.get(q);if(r)return r;let s=(0,j.makeHangingPromise)(q.renderSignal,k.route,"`cookies()`");return o.set(q,s),s;case"prerender-client":case"validation-client":let t="`cookies`";throw Object.defineProperty(new m.InvariantError(`${t} must not be used within a Client Component. Next.js should be preventing ${t} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1037",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,j.delayUntilRuntimeStage)(c,p(c.cookies));case"private-cache":return p(c.cookies);case"request":let u;if((0,h.trackDynamicDataInDynamicRender)(c),u=(0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies,!c.asyncApiPromises)return p(u);{let a=(0,g.isInEarlyRenderStage)(c);if(u===c.mutableCookies)return a?c.asyncApiPromises.earlyMutableCookies:c.asyncApiPromises.mutableCookies;return a?c.asyncApiPromises.earlyCookies:c.asyncApiPromises.cookies}}}(0,g.throwForMissingRequestStore)(a)}c(65934);let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E830",enumerable:!1,configurable:!0})})},89768:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(c(91986));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})}};
1
+ "use strict";exports.id=5573,exports.ids=[5573],exports.modules={34655:(a,b,c)=>{let d=c(63033),e=c(29294),f=c(23445),g=c(89768),h=c(15693),i=c(43449),j=c(72339),k=c(48894);c(20445);new WeakMap;(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E835",enumerable:!1,configurable:!0})})},56022:(a,b,c)=>{Object.defineProperty(b,"b",{enumerable:!0,get:function(){return m}});let d=c(41398),e=c(29294),f=c(63033),g=c(23445),h=c(15693),i=c(48894),j=c(89768),k=c(92305),l=c(72339);function m(){let a="headers",b=e.workAsyncStorage.getStore(),c=f.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,k.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`headers()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E839",enumerable:!1,configurable:!0});if(b.forceStatic)return o(d.HeadersAdapter.seal(new Headers({})));if(c)switch(c.type){case"cache":{let a=Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E833",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),b.invalidDynamicUsageError??=a,a}case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E838",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1134",enumerable:!1,configurable:!0})}if(b.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E828",enumerable:!1,configurable:!0});if(c)switch(c.type){case"prerender":var j=b,p=c;let e=n.get(p);if(e)return e;let q=(0,i.makeHangingPromise)(p.renderSignal,j.route,"`headers()`");return n.set(p,q),q;case"prerender-client":case"validation-client":let r="`headers`";throw Object.defineProperty(new l.InvariantError(`${r} must not be used within a client component. Next.js should be preventing ${r} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1017",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,g.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,g.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,i.delayUntilRuntimeStage)(c,o(c.headers));case"private-cache":return o(c.headers);case"request":if((0,g.trackDynamicDataInDynamicRender)(c),c.asyncApiPromises)return(0,f.isInEarlyRenderStage)(c)?c.asyncApiPromises.earlyHeaders:c.asyncApiPromises.headers;return o(c.headers)}}(0,f.throwForMissingRequestStore)(a)}c(65934);let n=new WeakMap;function o(a){let b=n.get(a);if(b)return b;let c=Promise.resolve(a);return n.set(a,c),c}(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E836",enumerable:!1,configurable:!0})})},65573:(a,b,c)=>{c.d(b,{UL:()=>d.U,b3:()=>e.b});var d=c(69015),e=c(56022);c(34655)},69015:(a,b,c)=>{Object.defineProperty(b,"U",{enumerable:!0,get:function(){return n}});let d=c(20503),e=c(91488),f=c(29294),g=c(63033),h=c(23445),i=c(15693),j=c(48894),k=c(89768),l=c(92305),m=c(72339);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,l.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E843",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E849",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E831",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E846",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1123",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let r=o.get(q);if(r)return r;let s=(0,j.makeHangingPromise)(q.renderSignal,k.route,"`cookies()`");return o.set(q,s),s;case"prerender-client":case"validation-client":let t="`cookies`";throw Object.defineProperty(new m.InvariantError(`${t} must not be used within a Client Component. Next.js should be preventing ${t} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1037",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,j.delayUntilRuntimeStage)(c,p(c.cookies));case"private-cache":return p(c.cookies);case"request":let u;if((0,h.trackDynamicDataInDynamicRender)(c),u=(0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies,!c.asyncApiPromises)return p(u);{let a=(0,g.isInEarlyRenderStage)(c);if(u===c.mutableCookies)return a?c.asyncApiPromises.earlyMutableCookies:c.asyncApiPromises.mutableCookies;return a?c.asyncApiPromises.earlyCookies:c.asyncApiPromises.cookies}}}(0,g.throwForMissingRequestStore)(a)}c(65934);let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E830",enumerable:!1,configurable:!0})})}};