@rabbi696/ezrouter 0.5.72 → 0.5.73

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 (348) hide show
  1. package/app/.next-cli-build/BUILD_ID +1 -1
  2. package/app/.next-cli-build/app-path-routes-manifest.json +15 -15
  3. package/app/.next-cli-build/build-manifest.json +2 -2
  4. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/convoy/page_client-reference-manifest.js +1 -1
  10. package/app/.next-cli-build/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js +1 -1
  11. package/app/.next-cli-build/server/app/(dashboard)/dashboard/error-log/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/routing-health/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  30. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  31. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  32. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  33. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  34. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  35. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  36. package/app/.next-cli-build/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  37. package/app/.next-cli-build/server/app/_global-error.segments/_head.segment.rsc +1 -1
  38. package/app/.next-cli-build/server/app/_global-error.segments/_index.segment.rsc +1 -1
  39. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  40. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  41. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  42. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  43. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  44. package/app/.next-cli-build/server/app/_not-found.segments/_head.segment.rsc +1 -1
  45. package/app/.next-cli-build/server/app/_not-found.segments/_index.segment.rsc +3 -3
  46. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  47. package/app/.next-cli-build/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  48. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  49. package/app/.next-cli-build/server/app/api/cli/providers/codex/route.js +1 -1
  50. package/app/.next-cli-build/server/app/api/combos/[id]/route.js +1 -1
  51. package/app/.next-cli-build/server/app/api/media-providers/tts/elevenlabs/voices/route.js +1 -1
  52. package/app/.next-cli-build/server/app/api/media-providers/tts/voices/route.js +1 -1
  53. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  54. package/app/.next-cli-build/server/app/api/oauth/[provider]/[action]/route.js +1 -1
  55. package/app/.next-cli-build/server/app/api/oauth/codex/bulk-import/route.js +1 -1
  56. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  57. package/app/.next-cli-build/server/app/api/oauth/cursor/import/route.js +1 -1
  58. package/app/.next-cli-build/server/app/api/provider-nodes/route.js +1 -1
  59. package/app/.next-cli-build/server/app/api/providers/[id]/models/route.js +1 -1
  60. package/app/.next-cli-build/server/app/api/providers/client/route.js +1 -1
  61. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  62. package/app/.next-cli-build/server/app/api/providers/validate/route.js +1 -1
  63. package/app/.next-cli-build/server/app/api/settings/route.js +1 -1
  64. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  65. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  66. package/app/.next-cli-build/server/app/api/translator/send/route.js +1 -1
  67. package/app/.next-cli-build/server/app/api/translator/translate/route.js +1 -1
  68. package/app/.next-cli-build/server/app/api/usage/[connectionId]/codex-reset-credits/route.js +1 -1
  69. package/app/.next-cli-build/server/app/api/usage/[connectionId]/route.js +1 -1
  70. package/app/.next-cli-build/server/app/api/usage/providers/route.js +1 -1
  71. package/app/.next-cli-build/server/app/api/v1/audio/voices/route.js +1 -1
  72. package/app/.next-cli-build/server/app/api/v1/models/info/route.js +1 -1
  73. package/app/.next-cli-build/server/app/api/v1beta/models/route.js +1 -1
  74. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  75. package/app/.next-cli-build/server/app/callback/page_client-reference-manifest.js +1 -1
  76. package/app/.next-cli-build/server/app/callback.html +1 -1
  77. package/app/.next-cli-build/server/app/callback.rsc +3 -3
  78. package/app/.next-cli-build/server/app/callback.segments/_full.segment.rsc +3 -3
  79. package/app/.next-cli-build/server/app/callback.segments/_head.segment.rsc +1 -1
  80. package/app/.next-cli-build/server/app/callback.segments/_index.segment.rsc +3 -3
  81. package/app/.next-cli-build/server/app/callback.segments/_tree.segment.rsc +1 -1
  82. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +1 -1
  83. package/app/.next-cli-build/server/app/callback.segments/callback.segment.rsc +1 -1
  84. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  85. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +5 -5
  86. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +2 -2
  87. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc +1 -1
  88. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  89. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  90. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +5 -5
  91. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_head.segment.rsc +1 -1
  92. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_index.segment.rsc +3 -3
  93. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  94. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  95. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +5 -5
  96. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +2 -2
  97. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc +1 -1
  98. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  99. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  100. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +5 -5
  101. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_head.segment.rsc +1 -1
  102. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_index.segment.rsc +3 -3
  103. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  104. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  105. package/app/.next-cli-build/server/app/dashboard/combos.rsc +5 -5
  106. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +2 -2
  107. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc +1 -1
  108. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  109. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  110. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +5 -5
  111. package/app/.next-cli-build/server/app/dashboard/combos.segments/_head.segment.rsc +1 -1
  112. package/app/.next-cli-build/server/app/dashboard/combos.segments/_index.segment.rsc +3 -3
  113. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  114. package/app/.next-cli-build/server/app/dashboard/convoy.html +1 -1
  115. package/app/.next-cli-build/server/app/dashboard/convoy.rsc +5 -5
  116. package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard/convoy/__PAGE__.segment.rsc +2 -2
  117. package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard/convoy.segment.rsc +1 -1
  118. package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  119. package/app/.next-cli-build/server/app/dashboard/convoy.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  120. package/app/.next-cli-build/server/app/dashboard/convoy.segments/_full.segment.rsc +5 -5
  121. package/app/.next-cli-build/server/app/dashboard/convoy.segments/_head.segment.rsc +1 -1
  122. package/app/.next-cli-build/server/app/dashboard/convoy.segments/_index.segment.rsc +3 -3
  123. package/app/.next-cli-build/server/app/dashboard/convoy.segments/_tree.segment.rsc +1 -1
  124. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  125. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +5 -5
  126. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +2 -2
  127. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc +1 -1
  128. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  129. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  130. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +5 -5
  131. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_head.segment.rsc +1 -1
  132. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_index.segment.rsc +3 -3
  133. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  134. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  135. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +5 -5
  136. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +2 -2
  137. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc +1 -1
  138. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc +1 -1
  139. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  140. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  141. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +5 -5
  142. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_head.segment.rsc +1 -1
  143. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_index.segment.rsc +3 -3
  144. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  145. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  146. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +5 -5
  147. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +2 -2
  148. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc +1 -1
  149. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  150. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  151. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +5 -5
  152. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_head.segment.rsc +1 -1
  153. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_index.segment.rsc +3 -3
  154. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  155. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  156. package/app/.next-cli-build/server/app/dashboard/profile.rsc +5 -5
  157. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +2 -2
  158. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc +1 -1
  159. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  160. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  161. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +5 -5
  162. package/app/.next-cli-build/server/app/dashboard/profile.segments/_head.segment.rsc +1 -1
  163. package/app/.next-cli-build/server/app/dashboard/profile.segments/_index.segment.rsc +3 -3
  164. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  165. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  166. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +5 -5
  167. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +2 -2
  168. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc +1 -1
  169. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  170. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  171. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  172. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +5 -5
  173. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_head.segment.rsc +1 -1
  174. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_index.segment.rsc +3 -3
  175. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  176. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  177. package/app/.next-cli-build/server/app/dashboard/providers.rsc +5 -5
  178. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +2 -2
  179. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc +1 -1
  180. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  181. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  182. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +5 -5
  183. package/app/.next-cli-build/server/app/dashboard/providers.segments/_head.segment.rsc +1 -1
  184. package/app/.next-cli-build/server/app/dashboard/providers.segments/_index.segment.rsc +3 -3
  185. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  186. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  187. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +5 -5
  188. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +2 -2
  189. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc +1 -1
  190. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  191. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  192. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +5 -5
  193. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_head.segment.rsc +1 -1
  194. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_index.segment.rsc +3 -3
  195. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  196. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  197. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +5 -5
  198. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +2 -2
  199. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe.segment.rsc +1 -1
  200. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  201. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  202. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +5 -5
  203. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_head.segment.rsc +1 -1
  204. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_index.segment.rsc +3 -3
  205. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  206. package/app/.next-cli-build/server/app/dashboard/quota.html +2 -2
  207. package/app/.next-cli-build/server/app/dashboard/quota.rsc +6 -6
  208. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  209. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc +1 -1
  210. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  211. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  212. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +6 -6
  213. package/app/.next-cli-build/server/app/dashboard/quota.segments/_head.segment.rsc +1 -1
  214. package/app/.next-cli-build/server/app/dashboard/quota.segments/_index.segment.rsc +3 -3
  215. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  216. package/app/.next-cli-build/server/app/dashboard/routing-health.html +1 -1
  217. package/app/.next-cli-build/server/app/dashboard/routing-health.rsc +5 -5
  218. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard/routing-health/__PAGE__.segment.rsc +2 -2
  219. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard/routing-health.segment.rsc +1 -1
  220. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  221. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  222. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_full.segment.rsc +5 -5
  223. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_head.segment.rsc +1 -1
  224. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_index.segment.rsc +3 -3
  225. package/app/.next-cli-build/server/app/dashboard/routing-health.segments/_tree.segment.rsc +1 -1
  226. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  227. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  228. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  229. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  230. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_head.segment.rsc +1 -1
  231. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_index.segment.rsc +3 -3
  232. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  233. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +1 -1
  234. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc +1 -1
  235. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc +1 -1
  236. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc +1 -1
  237. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  238. package/app/.next-cli-build/server/app/dashboard/skills.rsc +5 -5
  239. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +2 -2
  240. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc +1 -1
  241. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  242. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  243. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +5 -5
  244. package/app/.next-cli-build/server/app/dashboard/skills.segments/_head.segment.rsc +1 -1
  245. package/app/.next-cli-build/server/app/dashboard/skills.segments/_index.segment.rsc +3 -3
  246. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  247. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  248. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +5 -5
  249. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +2 -2
  250. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver.segment.rsc +1 -1
  251. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  252. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  253. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +5 -5
  254. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_head.segment.rsc +1 -1
  255. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_index.segment.rsc +3 -3
  256. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  257. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  258. package/app/.next-cli-build/server/app/dashboard/translator.rsc +5 -5
  259. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +2 -2
  260. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc +1 -1
  261. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  262. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  263. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +5 -5
  264. package/app/.next-cli-build/server/app/dashboard/translator.segments/_head.segment.rsc +1 -1
  265. package/app/.next-cli-build/server/app/dashboard/translator.segments/_index.segment.rsc +3 -3
  266. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  267. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  268. package/app/.next-cli-build/server/app/dashboard/usage.rsc +5 -5
  269. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +2 -2
  270. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc +1 -1
  271. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  272. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  273. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +5 -5
  274. package/app/.next-cli-build/server/app/dashboard/usage.segments/_head.segment.rsc +1 -1
  275. package/app/.next-cli-build/server/app/dashboard/usage.segments/_index.segment.rsc +3 -3
  276. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  277. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  278. package/app/.next-cli-build/server/app/dashboard.rsc +5 -5
  279. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +2 -2
  280. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc +1 -1
  281. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc +2 -2
  282. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +5 -5
  283. package/app/.next-cli-build/server/app/dashboard.segments/_head.segment.rsc +1 -1
  284. package/app/.next-cli-build/server/app/dashboard.segments/_index.segment.rsc +3 -3
  285. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  286. package/app/.next-cli-build/server/app/index.html +1 -1
  287. package/app/.next-cli-build/server/app/index.rsc +3 -3
  288. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +1 -1
  289. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  290. package/app/.next-cli-build/server/app/index.segments/_head.segment.rsc +1 -1
  291. package/app/.next-cli-build/server/app/index.segments/_index.segment.rsc +3 -3
  292. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  293. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  294. package/app/.next-cli-build/server/app/landing.html +1 -1
  295. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  296. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  297. package/app/.next-cli-build/server/app/landing.segments/_head.segment.rsc +1 -1
  298. package/app/.next-cli-build/server/app/landing.segments/_index.segment.rsc +3 -3
  299. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  300. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +1 -1
  301. package/app/.next-cli-build/server/app/landing.segments/landing.segment.rsc +1 -1
  302. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  303. package/app/.next-cli-build/server/app/login.html +1 -1
  304. package/app/.next-cli-build/server/app/login.rsc +4 -4
  305. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +4 -4
  306. package/app/.next-cli-build/server/app/login.segments/_head.segment.rsc +1 -1
  307. package/app/.next-cli-build/server/app/login.segments/_index.segment.rsc +3 -3
  308. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  309. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  310. package/app/.next-cli-build/server/app/login.segments/login.segment.rsc +1 -1
  311. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  312. package/app/.next-cli-build/server/app-paths-manifest.json +15 -15
  313. package/app/.next-cli-build/server/chunks/1531.js +1 -1
  314. package/app/.next-cli-build/server/chunks/1770.js +1 -1
  315. package/app/.next-cli-build/server/chunks/2547.js +3 -3
  316. package/app/.next-cli-build/server/chunks/3352.js +1 -1
  317. package/app/.next-cli-build/server/chunks/369.js +16 -16
  318. package/app/.next-cli-build/server/chunks/4843.js +1 -1
  319. package/app/.next-cli-build/server/chunks/5502.js +1 -1
  320. package/app/.next-cli-build/server/chunks/5767.js +1 -1
  321. package/app/.next-cli-build/server/chunks/6982.js +1 -1
  322. package/app/.next-cli-build/server/chunks/7079.js +1 -1
  323. package/app/.next-cli-build/server/chunks/7591.js +1 -1
  324. package/app/.next-cli-build/server/chunks/7775.js +1 -1
  325. package/app/.next-cli-build/server/chunks/7889.js +1 -1
  326. package/app/.next-cli-build/server/chunks/8002.js +1 -1
  327. package/app/.next-cli-build/server/chunks/8034.js +1 -1
  328. package/app/.next-cli-build/server/chunks/8327.js +5 -5
  329. package/app/.next-cli-build/server/chunks/8421.js +1 -1
  330. package/app/.next-cli-build/server/chunks/921.js +1 -1
  331. package/app/.next-cli-build/server/chunks/9212.js +1 -1
  332. package/app/.next-cli-build/server/chunks/9356.js +1 -1
  333. package/app/.next-cli-build/server/chunks/9489.js +1 -1
  334. package/app/.next-cli-build/server/chunks/9573.js +1 -1
  335. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  336. package/app/.next-cli-build/server/pages/404.html +1 -1
  337. package/app/.next-cli-build/server/pages/500.html +1 -1
  338. package/app/.next-cli-build/static/chunks/{1321-d960790950cf69e9.js → 1321-0b5b745194dd8287.js} +1 -1
  339. package/app/.next-cli-build/static/chunks/8105-b31a40db8aab725b.js +1 -0
  340. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-40b649726913b166.js +1 -0
  341. package/app/CHANGELOG.md +25 -1
  342. package/app/package.json +1 -1
  343. package/app/public/CHANGELOG.md +25 -1
  344. package/package.json +1 -1
  345. package/app/.next-cli-build/static/chunks/8105-74ce2cd62f81a87d.js +0 -1
  346. package/app/.next-cli-build/static/chunks/app/(dashboard)/dashboard/quota/page-0c64fbc888c74b51.js +0 -1
  347. /package/app/.next-cli-build/static/{VPp5UAgAM1eEBzLPINnic → Z40GVayXuBZ9gdYf-v3w6}/_buildManifest.js +0 -0
  348. /package/app/.next-cli-build/static/{VPp5UAgAM1eEBzLPINnic → Z40GVayXuBZ9gdYf-v3w6}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=3352,exports.ids=[1998,3352],exports.modules={9155:(a,b,c)=>{c.d(b,{EV:()=>d.EV,_M:()=>e});var d=c(18851);async function e(a,b=null,c=null){let d=a?.apiKey||a?.accessToken;return{...a,accessToken:d,apiKey:d}}},39326:(a,b,c)=>{c.d(b,{B:()=>h,p:()=>g});var d=c(71998);function e(a){return null==a?"":String(a).trim()}let f=new Map;function g(a,b,c){if(!a||0===a.length)return null;if(1===a.length)return a[0];if("round-robin"===b){let b=f.get(c)||{index:-1};return b.index=(b.index+1)%a.length,f.set(c,b),a[b.index]}return"random"===b?a[Math.floor(Math.random()*a.length)]:a[0]}async function h(a={}){try{let b=e(a?.proxyPoolId),c="__none__"===b?"":b,f=function(a={}){let b=a?.connectionProxyEnabled===!0,c=e(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:e(a?.connectionNoProxy)}}(a);if(c){let a=await (0,d.hr)(c),b=e(a?.proxyUrl),f=e(a?.noProxy);if(a&&!0===a.isActive&&b){if("vercel"===a.type||"cloudflare"===a.type||"deno"===a.type)return{source:a.type,proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:f,strictProxy:!0===a.strictProxy,vercelRelayUrl:b};return{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:f,strictProxy:!0===a.strictProxy}}}if(f.connectionProxyEnabled&&f.connectionProxyUrl)return{source:"legacy",proxyPoolId:c||null,proxyPool:null,...f};return{source:"none",proxyPoolId:c||null,proxyPool:null,...f}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1}}}},49485:(a,b,c)=>{c.d(b,{RO:()=>o,Tl:()=>m,Yt:()=>n,oH:()=>p});var d=c(89843),e=c(81358),f=c(88705);let g={usageUrl:(0,f.U)("codex").url,resetCreditsUrl:(0,f.U)("codex").resetCreditsUrl,resetCreditsConsumeUrl:(0,f.U)("codex").resetCreditsConsumeUrl};function h(a){if(!a)return null;let b=a instanceof Date?a:new Date("number"==typeof a&&a<1e12?1e3*a:a);return Number.isFinite(b.getTime())?b.toISOString():null}function i(a,b={},c={},d=null){let f={Authorization:`Bearer ${a}`,Accept:"application/json",originator:"codex_cli_rs",...c},g=(0,e.a)(b,d);return g&&(f["ChatGPT-Account-ID"]=g),f}function j(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a.rate_limit&&"object"==typeof a.rate_limit?a.rate_limit:a}function k(a){let b=Math.max(0,Math.min(100,(0,f.IQ)(a?.used_percent??a?.percent_used,0)));return{used:b,total:100,remaining:Math.max(0,100-b),resetAt:(0,f.eZ)(a?.reset_at??a?.resets_at??a?.resetAt??null),unlimited:!1}}function l(a,b,c){let d=j(c);if(!d)return!1;let e=d.primary_window||d.primary||c.primary_window||c.primary,f=d.secondary_window||d.secondary||c.secondary_window||c.secondary,g=!1;return e&&(a[b?`${b}_session`:"session"]=k(e),g=!0),f&&(a[b?`${b}_weekly`:"weekly"]=k(f),g=!0),g}async function m(a,b={},c=null,h=null){var k,n,o;[b,c]=(k=b,!(n=c)&&(o=k)&&"object"==typeof o&&("connectionProxyEnabled"in o||"connectionProxyUrl"in o||"connectionNoProxy"in o||"vercelRelayUrl"in o||"strictProxy"in o)?(0,e.a)(k,h)?[k,k]:[{},k]:[k||{},n]);try{let e=await (0,d.proxyAwareFetch)(g.usageUrl,{method:"GET",headers:i(a,b,{},h)},c);if(!e.ok)return{message:`Codex connected. Usage API temporarily unavailable (${e.status}).`};let k=await e.json(),m=k.rate_limit||k.rate_limits||k.rate_limits_by_limit_id?.codex||{},n=function(a){if(a.code_review_rate_limit||a.review_rate_limit)return a.code_review_rate_limit||a.review_rate_limit;let b=a.rate_limits_by_limit_id;return b&&"object"==typeof b&&!Array.isArray(b)?b.code_review||b.codex_review||b.review||null:(Array.isArray(a.additional_rate_limits)?a.additional_rate_limits:[]).find(a=>{let b=String(a?.limit_name||a?.metered_feature||a?.id||"").toLowerCase();return"code_review"===b||"codex_review"===b||"review"===b||b.includes("review")})||null}(k),o=Math.max(0,(0,f.IQ)(k.rate_limit_reset_credits?.available_count,0)),p={};return l(p,"",m),l(p,"review",n),{plan:k.plan_type||k.summary?.plan||"unknown",limitReached:j(m)?.limit_reached||!1,reviewLimitReached:j(n)?.limit_reached||!1,resetCredits:{availableCount:o},quotas:p}}catch(a){throw Error(`Failed to fetch Codex usage: ${a.message}`)}}async function n(a,b=null,c=null,e=null){if(!a)throw Error("No Codex access token available. Please re-authorize the connection.");let j=i(a,c,{"OpenAI-Beta":"codex-1"},e),k=await (0,d.proxyAwareFetch)(g.resetCreditsUrl,{method:"GET",headers:j},b),l=null;try{l=await k.json()}catch{l=null}if(!k.ok)throw Error(l?.message||l?.error||l?.detail||`Codex reset credits API unavailable (${k.status}).`);let m=Array.isArray(l?.credits)?l.credits:[];return{availableCount:Math.max(0,(0,f.IQ)(l?.available_count??l?.availableCount,0)),credits:m.map(a=>({status:String(a?.status||"unknown"),grantedAt:h(a?.granted_at??a?.grantedAt),expiresAt:h(a?.expires_at??a?.expiresAt)}))}}async function o(a,b,c=null,h=null,j=null){let k;if(!a)throw Error("No Codex access token available. Please re-authorize the connection.");if(!b||"string"!=typeof b)throw Error("A redeem request id is required to consume a Codex reset credit.");if(!(0,e.a)(h,j))throw Error("A ChatGPT account ID is required to consume a Codex reset credit. Please re-authorize the connection.");let l=null;try{k=await (0,d.proxyAwareFetch)(g.resetCreditsConsumeUrl,{method:"POST",headers:i(a,h,{"Content-Type":"application/json"},j),body:JSON.stringify({redeem_request_id:b})},c);let e=await k.text();l=e?JSON.parse(e):null}catch(a){throw Error(`Failed to consume Codex reset credit: ${a.message}`)}let m=l?.code||null,n=(0,f.IQ)(l?.windows_reset,0);return{ok:k.ok&&("reset"===m||n>0),noCredit:k.ok&&"no_credit"===m,status:k.status,code:m,windowsReset:n,message:l?.message||null,raw:l}}async function p(a,b=null,c=null,e=null){let g=new URL((0,f.U)("codex").modelsUrl||"https://chatgpt.com/backend-api/codex/models");(0,f.U)("codex").clientVersion&&g.searchParams.set("client_version",(0,f.U)("codex").clientVersion);let h=i(a,c,{},e),j=await (0,d.proxyAwareFetch)(g,{method:"GET",headers:h},b);if(!j.ok)return[];let k=await j.json();return(Array.isArray(k?.models)?k.models:[]).filter(a=>a?.supported_in_api!==!1&&"string"==typeof a?.slug&&a.slug).sort((a,b)=>Number(a.priority||0)-Number(b.priority||0))}},60827:(a,b,c)=>{c.d(b,{RO:()=>r.RO,Yt:()=>r.Yt,my:()=>ak});var d=c(89843),e=c(39141),f=c(88705);let g={apiVersion:e.sr.github?.apiVersion,userAgent:e.sr.github?.userAgent};async function h(a,b,c=null){try{if(!a)throw Error("No GitHub access token available. Please re-authorize the connection.");let b=await (0,d.proxyAwareFetch)((0,f.U)("github").url,{headers:{Authorization:`token ${a}`,Accept:"application/json","X-GitHub-Api-Version":g.apiVersion,"User-Agent":g.userAgent,"Editor-Version":"vscode/1.100.0","Editor-Plugin-Version":"copilot-chat/0.26.7"}},c);if(!b.ok){let a=await b.text();throw Error(`GitHub API error: ${a}`)}let e=await b.json();if(e.quota_snapshots){let a=e.quota_snapshots,b=(0,f.eZ)(e.quota_reset_date);return{plan:e.copilot_plan,resetDate:e.quota_reset_date,quotas:{chat:{...i(a.chat),resetAt:b},completions:{...i(a.completions),resetAt:b},premium_interactions:{...i(a.premium_interactions),resetAt:b}}}}if(e.monthly_quotas||e.limited_user_quotas){let a=e.monthly_quotas||{},b=e.limited_user_quotas||{},c=(0,f.eZ)(e.limited_user_reset_date);return{plan:e.copilot_plan||e.access_type_sku,resetDate:e.limited_user_reset_date,quotas:{chat:{used:b.chat||0,total:a.chat||0,unlimited:!1,resetAt:c},completions:{used:b.completions||0,total:a.completions||0,unlimited:!1,resetAt:c}}}}return{message:"GitHub Copilot connected. Unable to parse quota data."}}catch(a){throw Error(`Failed to fetch GitHub usage: ${a.message}`)}}function i(a){return a?{used:a.entitlement-a.remaining,total:a.entitlement,remaining:a.remaining,unlimited:a.unlimited||!1}:{used:0,total:0,unlimited:!0}}var j=c(28730),k=c(92675);let l={...(0,f.U)("antigravity"),...k.XP,userAgent:k.Of};async function m(a,b,c=null){if(!a)return{plan:"Free",message:"Gemini CLI access token not available."};try{let d=(0,f.gD)(b?.projectId),e="Free";if(!d){let b=await n(a,c);d=(0,f.gD)(b?.cloudaicompanionProject),e=b?.currentTier?.name||e}if(!d)return{plan:e,message:"Gemini CLI project ID not available. Reconnect Gemini CLI, or configure a Google Cloud project with Gemini Code Assist access before checking quota."};let g=await (0,f.u9)((0,f.U)("gemini-cli").quotaUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({project:d})},1e4,c);if(!g.ok)return{plan:e,message:`Gemini CLI quota error (${g.status}).`};let h=await g.json(),i={};if(Array.isArray(h.buckets))for(let a of h.buckets){if(!a.modelId||null==a.remainingFraction)continue;let b=Number(a.remainingFraction)||0,c=Math.round(1e3*b),d=Math.max(0,1e3-c);i[a.modelId]={used:d,total:1e3,resetAt:(0,f.eZ)(a.resetTime),remainingPercentage:100*b,unlimited:!1}}return{plan:e,quotas:i}}catch(a){return{message:`Gemini CLI error: ${a.message}`}}}async function n(a,b=null){try{let c=await (0,f.u9)((0,f.U)("gemini-cli").loadCodeAssistUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:j.Cn})},1e4,b);if(!c.ok)return null;return await c.json()}catch{return null}}async function o(a,b,c=null){try{let d=await p(a,c),e=(0,f.gD)(b?.projectId)||(0,f.gD)(d?.cloudaicompanionProject),g={Authorization:`Bearer ${a}`,"User-Agent":l.userAgent,"Content-Type":"application/json","X-Client-Name":"antigravity","X-Client-Version":k.Tr},h=JSON.stringify({...e?{project:e}:{}}),i=await (0,f.u9)(l.quotaApiUrl,{method:"POST",headers:g,body:h},1e4,c);if(403===i.status)return{message:"Antigravity quota API access forbidden. Chat may still work.",quotas:{}};if(401===i.status)return{message:"Antigravity quota API authentication expired. Chat may still work.",quotas:{}};if(!i.ok)throw Error(`Antigravity API error: ${i.status}`);let j=await i.json(),m={};if(j.models){let a=["gemini-3.7-flash-high","gemini-3.7-flash-medium","gemini-3.7-flash-low","gemini-3.6-flash-high","gemini-3.6-flash-medium","gemini-3.6-flash-low","gemini-3.5-flash-low","gemini-3.5-flash-extra-low","gemini-pro-agent","gemini-3.1-pro-low","claude-sonnet-4-6","claude-opus-4-6-thinking","gpt-oss-120b-medium","gemini-3.1-flash-image"];for(let[b,c]of Object.entries(j.models)){if(!c.quotaInfo||c.isInternal||!a.includes(b))continue;let d=c.quotaInfo.remainingFraction||0,e=100*d,g=Math.round(1e3*d),h=1e3-g;m[b]={used:h,total:1e3,resetAt:(0,f.eZ)(c.quotaInfo.resetTime),remainingPercentage:e,percentageOnly:!0,quotaNote:"gemini-3.1-flash-image"===b?"Google does not expose the exact remaining image-generation count.":"Google exposes this quota as a percentage, not an absolute request count.",unlimited:!1,displayName:c.displayName||b}}}return{plan:d?.currentTier?.name||"Unknown",quotas:m,subscriptionInfo:d}}catch(a){return console.error("[Antigravity Usage] Error:",a.message,a.cause),{message:`Antigravity error: ${a.message}`}}}async function p(a,b=null){try{let c=await (0,f.u9)(l.loadProjectApiUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"User-Agent":l.userAgent,"Content-Type":"application/json"},body:JSON.stringify({metadata:j.Cn,mode:1})},1e4,b);if(!c.ok)return null;return await c.json()}catch(a){return console.error("[Antigravity Subscription] Error:",a.message),null}}var q=c(98594),r=c(49485),s=c(3148);async function t(a,b,c=null){let e=b?.authMethod||"builder-id",g="api_key"===e,h=g?{tokentype:"API_KEY"}:{},i="external_idp"===e?{TokenType:"EXTERNAL_IDP"}:{},j=g?b?.profileArn||"":b?.profileArn||(0,s.We)(e),k=new URLSearchParams({isEmailRequired:"true",origin:"AI_EDITOR",resourceType:"AGENTIC_REQUEST"}),l=!1,m=[];for(let b of[{name:"codewhisperer-get",run:async()=>(0,d.proxyAwareFetch)(`${(0,f.U)("kiro").cwHost}${(0,f.U)("kiro").limitsPath}?${k.toString()}`,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","x-amz-user-agent":"aws-sdk-js/1.0.0 KiroIDE","user-agent":"aws-sdk-js/1.0.0 KiroIDE",...h,...i}},c)},{name:"codewhisperer-post",run:async()=>(0,d.proxyAwareFetch)((0,f.U)("kiro").cwHost,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/x-amz-json-1.0","x-amz-target":"AmazonCodeWhispererService.GetUsageLimits",Accept:"application/json",...h,...i},body:JSON.stringify({origin:"AI_EDITOR",...j?{profileArn:j}:{},resourceType:"AGENTIC_REQUEST"})},c)},{name:"q-get",run:async()=>{let b=new URLSearchParams({origin:"AI_EDITOR",...j?{profileArn:j}:{},resourceType:"AGENTIC_REQUEST"});return(0,d.proxyAwareFetch)(`${(0,f.U)("kiro").qHost}${(0,f.U)("kiro").limitsPath}?${b}`,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json",...h,...i}},c)}}])try{let a=await b.run();if(!a.ok){let c=await a.text().catch(()=>"");(401===a.status||403===a.status)&&(l=!0),m.push(`${b.name}:${a.status}${c?`:${c}`:""}`);continue}let c=await a.json();return function(a){let b=a.usageBreakdownList||[],c={},d=(0,f.eZ)(a.nextDateReset||a.resetDate);return b.forEach(a=>{let b=a.resourceType?.toLowerCase()||"unknown",e=a.currentUsageWithPrecision||0,g=a.usageLimitWithPrecision||0;if(c[b]={used:e,total:g,remaining:g-e,resetAt:d,unlimited:!1},a.freeTrialInfo){let e=a.freeTrialInfo.currentUsageWithPrecision||0,g=a.freeTrialInfo.usageLimitWithPrecision||0;c[`${b}_freetrial`]={used:e,total:g,remaining:g-e,resetAt:(0,f.eZ)(a.freeTrialInfo.freeTrialExpiry||d),unlimited:!1}}}),{plan:a.subscriptionInfo?.subscriptionTitle||"Kiro",quotas:c}}(c)}catch(a){m.push(`${b.name}:${a.message}`)}return l&&"idc"===e?{message:"Kiro quota API is unavailable for the current AWS IAM Identity Center session. Chat may still work. If this persists after renewing your session, reconnect Kiro.",quotas:{}}:l&&("google"===e||"github"===e)?{message:"Kiro quota API authentication expired. Chat may still work.",quotas:{}}:l?{message:"Kiro quota API rejected the current token. Chat may still work.",quotas:{}}:{message:m.length>0?`Unable to fetch Kiro usage right now. (${m[m.length-1]})`:"Unable to fetch Kiro usage right now.",quotas:{}}}let u={minimax:(0,f.U)("minimax").urls,"minimax-cn":(0,f.U)("minimax-cn").urls};function v(a,b,c){return a&&"object"==typeof a?a[b]??a[c]??null:null}function w(a,b,c){if(!a||"object"!=typeof a)return null;let d=a[b]??a[c];if(null==d)return null;let e=Number(d);return Number.isFinite(e)?Math.max(0,Math.min(100,e)):null}function x(a){return Math.max(0,Number(v(a,"current_interval_total_count","currentIntervalTotalCount"))||0)}function y(a){return Math.max(0,Number(v(a,"current_weekly_total_count","currentWeeklyTotalCount"))||0)}function z(a){return!!(x(a)>0||y(a)>0)||null!==w(a,"current_interval_remaining_percent","currentIntervalRemainingPercent")||null!==w(a,"current_weekly_remaining_percent","currentWeeklyRemainingPercent")}function A(a,b,c,d,e,g,h,i,j,k){let l=d(c),m=w(c,h,i);if(l<=0&&null===m)return;let n=Math.max(0,Number(v(c,e,g))||0),o=l,p=n;l<=0&&(o=100,p=k?Math.round(m/100*o):Math.round(o*(1-m/100))),a[b]=function(a,b,c,d,e=null){var f,g,h;let i=Math.max(0,a),j=d?Math.max(i-b,0):Math.min(Math.max(0,b),i),k=Math.max(i-j,0),l=(f=e,g=k,h=i,null!=f&&Number.isFinite(f)?Math.max(0,Math.min(100,f)):h>0?Math.max(0,Math.min(100,g/h*100)):0);return{used:j,total:i,remaining:k,remainingPercentage:l,resetAt:c,unlimited:!1}}(o,p,function(a,b,c,d,e,g){let h=Number(v(a,c,d))||0;return h>0?new Date(b+h).toISOString():(0,f.eZ)(v(a,e,g))}(c,...j),k,m)}async function B(a,b,c=null){if(!a)return{message:"MiniMax API key not available."};let e=u[b]||[],f="";for(let b=0;b<e.length;b+=1){let g=e[b],h=b<e.length-1;try{let b=await (0,d.proxyAwareFetch)(g,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Type":"application/json"}},c),e=await b.text(),i={};if(e)try{i=JSON.parse(e)}catch{i={}}let j=(i?.base_resp??i?.baseResp)||{},k=Number(j.status_code??j.statusCode)||0,l=String(j.status_msg??j.statusMsg??"").trim(),m=`${l} ${e}`.trim(),n=/token plan|coding plan|invalid api key|invalid key|unauthorized|inactive/i;if(401===b.status||403===b.status||1004===k||n.test(m))return{message:"MiniMax API key invalid or inactive. Use an active Token/Coding Plan key."};if(!b.ok){if(f=`MiniMax usage endpoint error (${b.status})`,(404===b.status||405===b.status||b.status>=500)&&h)continue;return{message:`MiniMax connected. ${f}`}}if(0!==k)return{message:`MiniMax connected. ${l||"Upstream quota API error"}`};let o=i?.model_remains??i?.modelRemains,p=(Array.isArray(o)?o:[]).filter(z);if(0===p.length)return{message:"MiniMax connected. No quota data was returned."};let q=Date.now(),r=g.includes("/coding_plan/remains"),s={};for(let a of p){let b=function(a){let b=String(v(a,"model_name","modelName")||"").trim();return b?"MiniMax-M*"===b||"general"===b?"M-series":b.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,a=>a.toUpperCase()).replace(/\bTo\b/g,"to").replace(/\bTts\b/g,"TTS").replace(/\bHd\b/g,"HD"):"MiniMax"}(a);A(s,`${b} (5h)`,a,x,"current_interval_usage_count","currentIntervalUsageCount","current_interval_remaining_percent","currentIntervalRemainingPercent",[q,"remains_time","remainsTime","end_time","endTime"],r),A(s,`${b} (7d)`,a,y,"current_weekly_usage_count","currentWeeklyUsageCount","current_weekly_remaining_percent","currentWeeklyRemainingPercent",[q,"weekly_remains_time","weeklyRemainsTime","weekly_end_time","weeklyEndTime"],r)}if(0===Object.keys(s).length)return{message:"MiniMax connected. Unable to extract quota usage."};return{quotas:s}}catch(a){if(f=a.message,!h)break}}return{message:f?`MiniMax connected. Unable to fetch usage: ${f}`:"MiniMax connected. Unable to fetch usage."}}let C="Characters";async function D(a,b=null){if(!a)return{message:"ElevenLabs API key not available."};try{let c=await (0,f.u9)("https://api.elevenlabs.io/v1/user/subscription",{method:"GET",headers:{"xi-api-key":a,"Content-Type":"application/json"}},1e4,b);if(401===c.status)return{message:"ElevenLabs connected. Key lacks user_read permission to read credits."};if(!c.ok)return{message:`ElevenLabs connected. Usage endpoint error (${c.status}).`};let d=await c.json(),e=Math.max(0,(0,f.IQ)(d.character_limit)),g=Math.max(0,(0,f.IQ)(d.character_count)),h=Math.max(e-g,0),i=String(d.tier||"").trim();return{quotas:{[C]:{displayName:i?`${i.charAt(0).toUpperCase()}${i.slice(1)} characters`:C,used:g,total:e,remaining:h,remainingPercentage:e>0?h/e*100:0,resetAt:(0,f.eZ)(d.next_character_count_reset_unix),unlimited:0===e}}}}catch(a){return{message:`ElevenLabs connected. Unable to fetch usage: ${a.message}`}}}function E(a,b){let c=Number(a??b);return Number.isFinite(c)?c:0}async function F(a,b,c,g,h=null){let i=b||c;if(!i)return{message:`CodeBuddy (${a}) credential not available.`};try{let b=await (0,d.proxyAwareFetch)((0,f.U)(a).url,{method:"POST",headers:{...e.xq[a]?.headers||{},Authorization:`Bearer ${i}`,"Content-Type":"application/json",Accept:"application/json"},body:"{}"},h);if(401===b.status||403===b.status)return{message:"CodeBuddy CN credential invalid or expired."};if(!b.ok)return{message:`CodeBuddy CN quota API error (${b.status}).`};let c=await b.json();if(c?.code!==0)return{message:`CodeBuddy CN quota error: ${c?.msg||"unknown"}`};let g=c?.data?.Response?.Data||{},j=Array.isArray(g.Accounts)?g.Accounts:[];if(0===j.length)return{message:"CodeBuddy CN connected. No credit package found."};let k=a=>{let b=(0,f.eZ)(a.CycleEndTime);return b?new Date(b).getTime():1/0},l=a=>{let b=k(a),c=Number(a.DeductionEndTime);return Number.isFinite(b)&&Number.isFinite(c)&&c-b>1728e5},m=(a,b)=>k(a)-k(b),n=j.filter(l).sort(m),o=j.filter(a=>!l(a)).sort(m),p={},q={};n.forEach(a=>{let b=function(a){let b=(0,f.eZ)(a.CycleStartTime),c=(0,f.eZ)(a.CycleEndTime);if(b&&c){let a=(new Date(c).getTime()-new Date(b).getTime())/864e5;if(a<=1.5)return"Daily";if(a<=10)return"Weekly"}return"Monthly"}(a);q[b]=(q[b]||0)+1,p[q[b]>1?`${b} ${q[b]}`:b]={used:E(a.CycleCapacityUsedPrecise,a.CycleCapacityUsed),total:E(a.CycleCapacitySizePrecise,a.CycleCapacitySize),resetAt:(0,f.eZ)(a.CycleEndTime),unlimited:!1,recurring:!0}}),o.forEach((a,b)=>{p[`Bonus Pack ${b+1}`]={used:E(a.CapacityUsedPrecise,a.CapacityUsed),total:E(a.CapacitySizePrecise,a.CapacitySize),resetAt:(0,f.eZ)(a.CycleEndTime),unlimited:!1,recurring:!1}});let r=n[0]||j[0]||{};return{plan:r.PackageName||r.SubProductName||"CodeBuddy",quotas:p}}catch(b){return{message:`CodeBuddy (${a}) error: ${b.message}`}}}async function G(a,b,c,d=null){return F("codebuddy-cn",a,b,c,d)}async function H(a,b,c,d=null){return F("codebuddy-intl",a,b,c,d)}var I=c(13247);let J=(0,f.U)("grok-cli"),K=J.url||"https://cli-chat-proxy.grok.com/v1/billing?format=credits",L=J.userUrl||"https://cli-chat-proxy.grok.com/v1/user?include=subscription",M="string"==typeof K&&K.includes("?")?K.replace(/\?.*$/,""):"https://cli-chat-proxy.grok.com/v1/billing";function N(a,b=0){return null==a?b:"object"==typeof a&&!Array.isArray(a)&&"val"in a?(0,f.IQ)(a.val,b):(0,f.IQ)(a,b)}function O(a){return"string"==typeof a&&a.trim()?a.trim().replace(/[_-]+/g," ").replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").replace(/\s+/g," ").trim().replace(/\b\w/g,a=>a.toUpperCase()):null}function P(a,b){let c=a?.subscriptionTier??a?.subscription_tier??a?.subscription?.tier??b?.subscriptionTier??b?.subscription_tier;return"string"==typeof c?c.trim():""}function Q({used:a,total:b,resetAt:c,unlimited:d=!1}){let e=Math.max(0,(0,f.IQ)(b,0)),g=Math.max(0,(0,f.IQ)(a,0));if(d||0===e)return{used:g,total:0,remainingPercentage:100*!!d,resetAt:c||null,unlimited:!0};let h=Math.max(0,e-g);return{used:g,total:e,remainingPercentage:h/e*100,resetAt:c||null,unlimited:!1}}function R(a,b){let c=Math.min(100,Math.max(0,(0,f.IQ)(a,0)));return{used:c,total:100,remainingPercentage:Math.max(0,100-c),resetAt:b||null,unlimited:!1}}function S(a){let b=a&&"object"==typeof a?a:{},c=b.config&&"object"==typeof b.config&&!Array.isArray(b.config)?b.config:b;return{root:b,config:c}}async function T(a,b=null,c=null){if(!a)return{message:"Grok CLI access token not available."};let e=function(a,b={}){let c=b||{},d={Authorization:`Bearer ${a}`,Accept:"application/json","User-Agent":I.fZ,"x-xai-token-auth":"xai-grok-cli","x-grok-client-identifier":I.rK,"x-grok-client-version":I.uG,"x-grok-client-mode":"headless"},e=c.email,f=c.userId||c.principalId;return e&&(d["x-email"]=e),f&&(d["x-userid"]=f),d}(a,b);try{let[a,b,g]=await Promise.all([(0,d.proxyAwareFetch)(K,{method:"GET",headers:e},c),(0,d.proxyAwareFetch)(M,{method:"GET",headers:e},c).catch(()=>null),(0,d.proxyAwareFetch)(L,{method:"GET",headers:e},c).catch(()=>null)]);if(401===a.status||403===a.status)return{message:"Grok CLI authentication expired. Please re-authorize."};if(!a.ok){let b=await a.text().catch(()=>""),c=b?`: ${b.slice(0,200)}`:"";return{message:`Grok CLI billing API error (${a.status})${c}`}}let h=await a.json().catch(()=>null);if(!h||"object"!=typeof h)return{message:"Grok CLI billing response was not JSON."};let i=null;b?.ok&&(i=await b.json().catch(()=>null));let j=null;g?.ok&&(j=await g.json().catch(()=>null));let k=function(a,b=null,c=null){let d,{root:e,config:g}=S(a),h=(0,f.eZ)(g.billingPeriodEnd)||(0,f.eZ)(g.billing_period_end)||(0,f.eZ)(g.currentPeriod?.end)||(0,f.eZ)(g.resetAt||g.resetsAt||g.periodEnd)||(0,f.eZ)(e.billingPeriodEnd)||(0,f.eZ)(e.billing_period_end)||(0,f.eZ)(e.resetAt||e.resetsAt||e.periodEnd)||null,i={},j=P(b,g),k=!!j&&!/^(free|none|null)$/i.test(j),l=N(g.monthlyLimit??g.monthly_limit??e.monthlyLimit??e.monthly_limit,NaN),m=N(g.includedUsed??g.included_used??e.includedUsed??e.included_used,NaN),n=N(g.totalUsed??g.total_used??e.totalUsed??e.total_used,NaN);Number.isFinite(l)&&l>0&&(i["Monthly included"]=Q({used:Number.isFinite(m)?m:Number.isFinite(n)?n:0,total:l,resetAt:h}));let o=Array.isArray(g.productUsage)?g.productUsage:Array.isArray(e.productUsage)?e.productUsage:[],p=!1;if(o.length>0)for(let a of o){if(!a||"object"!=typeof a)continue;let b=N(a.usagePercent,NaN);if(!Number.isFinite(b))continue;let c=O(a.product)||"Usage";i[c]||(i[c]=R(b,h),p=!0)}let q=N(g.creditUsagePercent??e.creditUsagePercent,NaN);!p&&Number.isFinite(q)&&(i.Credits=R(q,h),p=!0);let r=N(g.onDemandCap??e.onDemandCap,NaN),s=N(g.onDemandUsed??e.onDemandUsed,NaN);if(Number.isFinite(r)&&r>0){let a=Number.isFinite(s)?Math.max(0,s):0;i["On-demand"]=Q({used:a,total:r,resetAt:h})}else!p&&!k&&Number.isFinite(r)&&0===r&&Number.isFinite(s)&&(i["On-demand"]={used:1,total:1,remainingPercentage:0,resetAt:h,unlimited:!1});let t=N(g.prepaidBalance??e.prepaidBalance,NaN);for(let a of(Number.isFinite(t)&&t>0&&(i.Prepaid={used:0,total:t,remainingPercentage:100,resetAt:null,unlimited:!1}),[e.credits,e.creditBalance,e.usage,g.credits,g.includedCredits,g.subscriptionCredits].filter(a=>a&&"object"==typeof a&&!Array.isArray(a)))){let b=N(a.total??a.limit??a.cap??a.allocation??a.amount,NaN),c=N(a.used??a.spent??a.consumed,NaN),d=N(a.remaining??a.balance??a.left,NaN);if(Number.isFinite(b)&&b>0){let e=Number.isFinite(c)?c:Number.isFinite(d)?Math.max(0,b-d):0;i.Credits||(i.Credits=Q({used:e,total:b,resetAt:(0,f.eZ)(a.resetAt||a.resetsAt||a.end)||h}))}else Number.isFinite(d)&&d>=0&&!i.Credits&&(i.Credits={used:0,total:d>0?d:1,remainingPercentage:100*(d>0),resetAt:h,unlimited:!1})}if(c&&"object"==typeof c){let{config:a}=S(c),b=N(a.monthlyLimit,NaN),d=N(a.used,NaN),e=(0,f.eZ)(a.billingPeriodEnd)||null;Number.isFinite(b)&&b>0&&(i.Monthly=Q({used:Number.isFinite(d)?Math.max(0,d):0,total:b,resetAt:e}))}let u=Object.keys(i).length>0&&Object.values(i).every(a=>!0!==a.unlimited&&(a.remainingPercentage??100)<=0);return{plan:(d=P(b,g))?O(d)||d:b?.hasGrokCodeAccess===!0?"Grok Code":(g?.isUnifiedBillingUser,"Grok Build"),quotas:i,periodEnd:h,exhausted:u,subscriptionAccess:k,rawConfig:g}}(h,j,i);if(!k.quotas||0===Object.keys(k.quotas).length)return{plan:k.plan,message:k.subscriptionAccess?"Subscription access is active; Grok does not expose a numeric included quota.":"Grok Build connected, but no credit allotment was returned. Free promo may be exhausted.",quotas:{}};return{plan:k.plan,quotas:k.quotas}}catch(a){return{message:`Grok CLI usage error: ${a.message}`}}}let U={LEVEL_BASIC:"Moderato",LEVEL_INTERMEDIATE:"Allegretto",LEVEL_ADVANCED:"Allegro",LEVEL_STANDARD:"Vivace"};function V({used:a,total:b,remaining:c,resetAt:d}){let e,g=Math.max(0,(0,f.IQ)(b,0)),h=Math.max(0,(0,f.IQ)(a,0));return e=g>0&&null!=c&&Number.isFinite(Number(c))?Math.max(0,Number(c))/g*100:g>0?Math.max(0,g-h)/g*100:0,{used:h,total:g,remainingPercentage:e,resetAt:d||null,unlimited:!1}}async function W(a=null,b=null,c=null,e=null){let g="string"==typeof b&&b.length>0,h=!g&&"string"==typeof a&&a.length>0;if(!g&&!h)return{message:"Kimi access token or API key not available."};let i=g?{"x-api-key":b}:{Authorization:`Bearer ${a}`,...(0,j.buildKimiHeaders)(e?.deviceId)};try{let a,b=await (0,d.proxyAwareFetch)(g?"https://api.moonshot.cn/v1/usage":"https://api.kimi.com/coding/v1/usages",{method:"GET",headers:{...i,"Content-Type":"application/json",Accept:"application/json"}},c),e=await b.text().catch(()=>"");if(!b.ok)return{plan:"Kimi Coding",message:function(a,b){let c=null;try{c=JSON.parse(b||"")}catch{}let d=Array.isArray(c?.details)?c.details[0]:null,e=d?.debug||c?.debug||null,f=e?.reason||c?.reason||"",g=e?.localizedMessage?.message||d?.localizedMessage?.message||c?.message||"";if(401===a)return"Kimi authentication expired. Please re-authorize.";if(403===a&&("REASON_FEATURE_NO_PERMISSION"===f||/permission_denied|do not have permission|subscribe/i.test(`${c?.code||""} ${g} ${b||""}`)))return g||"Kimi connected, but this account has no permission to view usage. Subscribe to Kimi Code to access quota.";let h=(g||b||"").slice(0,100);return h?`Kimi Coding connected. API Error ${a}: ${h}`:`Kimi Coding connected. API Error ${a}`}(b.status,e)};try{a=JSON.parse(e||"{}")}catch{return{plan:"Kimi Coding",message:"Kimi Coding connected. Invalid JSON response from API."}}let h={},j=a?.usage&&"object"==typeof a.usage?a.usage:{},k=(0,f.IQ)(j.limit??j.Limit,0),l=(0,f.IQ)(j.used??j.Used,0),m=j.remaining??j.Remaining,n=null!=m&&""!==m?(0,f.IQ)(m,NaN):NaN,o=j.resetTime||j.ResetTime||j.reset_at||j.resetAt;for(let b of(k>0&&(h.Weekly=V({used:l,total:k,remaining:Number.isFinite(n)?n:null,resetAt:(0,f.eZ)(o)})),Array.isArray(a?.limits)?a.limits:[])){if(!b||"object"!=typeof b)continue;let a=b.detail&&"object"==typeof b.detail?b.detail:{},c=(0,f.IQ)(a.limit??a.Limit,0),d=(0,f.IQ)(a.remaining??a.Remaining,NaN),e=a.resetTime||a.reset_at||a.resetAt;if(c>0){let a=Number.isFinite(d)?d:Math.max(0,c);h.Ratelimit=V({used:Math.max(0,c-a),total:c,remaining:a,resetAt:(0,f.eZ)(e)})}}let p=a?.user?.membership?.level,q=function(a){if(!a)return"";let b=String(a);return U[b]?U[b]:b.replace(/^LEVEL_/,"").toLowerCase()}(p)||"Kimi Coding";if(Object.keys(h).length>0)return{plan:q,quotas:h};return{plan:q,message:"Kimi Coding connected. Usage tracked per request."}}catch(a){return{message:`Kimi Coding connected. Unable to fetch usage: ${a.message}`}}}let X={usageUrl:(0,f.U)("cursor").usageUrl,planUrl:(0,f.U)("cursor").planUrl};async function Y(a,b,c){return(0,d.proxyAwareFetch)(a,{method:"POST",headers:{Authorization:`Bearer ${b}`,"Content-Type":"application/json","Connect-Protocol-Version":"1"},body:"{}"},c)}function Z(a,b){let c=Math.max(0,Math.min(100,a));return{used:c,total:100,remaining:Math.max(0,100-c),resetAt:b,unlimited:!1}}async function $(a,b){try{let c=await Y(X.planUrl,a,b);if(!c.ok)return null;let d=await c.json(),e=d?.planInfo?.planName;return"string"==typeof e&&e.trim()?e.trim():null}catch{return null}}async function _(a,b=null){let c,d;if(!a)return{message:"No Cursor access token available. Re-import your Cursor session."};try{c=await Y(X.usageUrl,a,b)}catch(a){return{message:`Cursor connected. Unable to fetch usage: ${a.message}`}}if(!c.ok)return{message:`Cursor connected. Usage API temporarily unavailable (${c.status}).`};try{d=await c.json()}catch{return{message:"Cursor connected. Usage API returned an invalid response."}}let e=d?.planUsage;if(d?.enabled===!1||!e)return{message:"No active Cursor subscription."};let g=Number(e.limit),h=Number.isFinite(g),i=Number(e.totalPercentUsed),j=Number.isFinite(i);if(!h&&!j)return{message:"Cursor connected. Usage totals unavailable for this account."};let k=(0,f.eZ)(d.billingCycleEnd),l={},m=Number(e.totalSpend),n=Number(e.remaining),o=0;Number.isFinite(m)?o=m:h&&Number.isFinite(n)&&(o=g-n);let p=h&&g>0?o/g*100:0;l["Total usage"]=Z(j?i:p,k);let q=Number(e.autoPercentUsed);Number.isFinite(q)&&(l["Auto usage"]=Z(q,k));let r=Number(e.apiPercentUsed);return Number.isFinite(r)&&(l["API usage"]=Z(r,k)),{plan:await $(a,b)||"Cursor",quotas:l}}async function aa(a=null,b=null){if(!a||"string"!=typeof a||!a.trim())return{message:"DeepSeek API key not available. Add a key to view usage."};try{let c=await (0,d.proxyAwareFetch)("https://api.deepseek.com/user/balance",{method:"GET",headers:{Authorization:`Bearer ${a.trim()}`,"Content-Type":"application/json",Accept:"application/json"}},b);if(401===c.status||403===c.status)return{plan:"DeepSeek",message:"DeepSeek authentication failed. Check the API key."};if(!c.ok){let a=await c.text().catch(()=>"");return{plan:"DeepSeek",message:`DeepSeek balance API error (${c.status})${a?`: ${a.slice(0,120)}`:""}`}}let e=await c.json().catch(()=>null);if(!e||"object"!=typeof e)return{message:"DeepSeek balance response was not JSON."};let g=function(a){let b=Array.isArray(a?.balance_infos)?a.balance_infos:[],c=[];for(let a of b){if(!a||"object"!=typeof a)continue;let b="string"==typeof a.currency?a.currency.toUpperCase():"";if(!b)continue;let d=(0,f.IQ)(a.total_balance??a.totalBalance,0);c.push({currency:b,totalBalance:d,grantedBalance:(0,f.IQ)(a.granted_balance??a.grantedBalance,0),toppedUpBalance:(0,f.IQ)(a.topped_up_balance??a.toppedUpBalance,0)})}return c}(e);if(0===g.length)return{plan:"DeepSeek",message:"DeepSeek connected. No balance data returned."};let h=!0===e.is_available||!0===e.isAvailable,i={};for(let a of g){let b=Math.max(0,a.totalBalance);i[`Balance (${a.currency})`]={used:0,total:b,remainingPercentage:100*(b>0),resetAt:null,unlimited:b>0}}return{plan:h?"DeepSeek":"DeepSeek (Insufficient Balance)",quotas:i}}catch(a){return{message:`DeepSeek error: ${a.message}`}}}var ab=c(9155);let ac={international:(0,f.U)("glm").url,china:(0,f.U)("glm-cn").url},ad=(0,f.U)("vercel-ai-gateway").url;async function ae(a){try{return{message:"iFlow connected. Usage tracked per request."}}catch(a){return{message:"Unable to fetch iFlow usage."}}}async function af(a,b,c=null){if(!a)return{message:"Ollama Cloud API key not available."};try{let b,f=await (0,d.proxyAwareFetch)("https://ollama.com/api/usage",{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c);if(401===f.status||403===f.status)return{message:"Ollama Cloud API key invalid or expired."};if(!f.ok)return{message:`Ollama Cloud usage API error (${f.status}).`};try{b=await f.json()}catch{return{message:"Ollama Cloud usage response was not JSON."}}let g=await (0,d.proxyAwareFetch)("https://ollama.com/api/me",{method:"POST",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Length":"0"}},c).then(a=>a.ok?a.json():null).catch(()=>null),h="string"==typeof g?.Plan?g.Plan:"",i=h?h.charAt(0).toUpperCase()+h.slice(1).toLowerCase():"Ollama Cloud",j=b?.limits&&"object"==typeof b.limits?b.limits:{};function e(a,b=null){let c=Math.max(0,Math.min(1,Number(a)||0)),d=Math.round(100*c);return{used:d,total:100,remainingPercentage:100-d,resetAt:b,unlimited:!1}}let k=j.session?.usage,l=j.weekly?.usage,m=Number(k),n=Number(l),o=null!=k&&!Number.isNaN(m),p=null!=l&&!Number.isNaN(n);if(!o&&!p)return{plan:i,message:"Ollama Cloud connected. No usage limits reported.",quotas:{}};let q={};return o&&(q["Session (5h)"]=e(m)),p&&(q["Weekly (7d)"]=e(n)),{plan:i,quotas:q}}catch(a){return{message:`Ollama Cloud error: ${a.message}`}}}async function ag(a,b,c=null){if(!a)return{message:"GLM API key not available."};let e=ac["glm-cn"===b?"china":"international"];try{let b=await (0,d.proxyAwareFetch)(e,{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c);if(!b.ok){if(401===b.status)return{message:"GLM API key invalid or expired."};return{message:`GLM quota API error (${b.status}).`}}let f=await b.json(),g=f?.data&&"object"==typeof f.data?f.data:{},h=Array.isArray(g.limits)?g.limits:[],i={};for(let a of h){if(!a||"TOKENS_LIMIT"!==a.type)continue;let b=Number(a.percentage)||0,c=Number(a.nextResetTime)||0,d=Math.max(0,100-b);i.session={used:b,total:100,remaining:d,remainingPercentage:d,resetAt:c>0?new Date(c).toISOString():null,unlimited:!1}}let j="string"==typeof g.level?g.level:"";return{plan:j?j.charAt(0).toUpperCase()+j.slice(1).toLowerCase():"Unknown",quotas:i}}catch(a){return{message:`GLM error: ${a.message}`}}}async function ah(a,b=null){if(!a)return{message:"Vercel AI Gateway API key not available."};try{let c=await (0,d.proxyAwareFetch)(ad,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},b);if(401===c.status||403===c.status)return{message:"Vercel AI Gateway API key invalid or expired."};if(!c.ok){let a=await c.text().catch(()=>""),b=a?`: ${a.slice(0,200)}`:"";return{message:`Vercel AI Gateway credits API error (${c.status})${b}`}}let e=await c.json(),f=Number(e?.balance)||0,g=Number(e?.total_used)||0;if(f<=0&&g<=0)return{plan:"Pay-as-you-go",message:"Vercel AI Gateway connected. No credit allocation found (BYOK or unfunded account).",quotas:{}};return{plan:"Pay-as-you-go",quotas:{"Used (USD)":{used:g,total:0,remaining:0,remainingPercentage:100,unlimited:!0},"Remaining (USD)":{used:f,total:5,remaining:f,remainingPercentage:f/5*100,unlimited:!1}}}}catch(a){return{message:`Vercel AI Gateway error: ${a.message}`}}}async function ai(a,b=null){if(!a)return{message:"Qoder usage unavailable: no access token"};try{let c=await (0,d.proxyAwareFetch)((0,f.U)("qoder").url,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},b);if(!c.ok)return{message:`Qoder connected. Usage fetch returned ${c.status}.`};let e=await c.json().catch(()=>null);if(!e)return{message:"Qoder connected. Usage response was not JSON."};let g=e.userQuota||{},h=e.orgResourcePackage||{},i=Number.isFinite(Number(e.expiresAt))&&Number(e.expiresAt)>0?Number(e.expiresAt):null,j=i?new Date(i).toISOString():null;return{quotas:{user:{total:Number(g.total)||0,used:Number(g.used)||0,remaining:Number(g.remaining)||0,unit:g.unit||"credits",resetAt:j},organization:{total:Number(h.total)||0,used:Number(h.used)||0,remaining:Number(h.remaining)||0,unit:h.unit||"credits",resetAt:j}},totalUsagePercentage:Number(e.totalUsagePercentage)||0,isQuotaExceeded:!!e.isQuotaExceeded,expiresAt:i}}catch(a){return{message:`Qoder connected. Unable to fetch usage: ${a.message}`}}}let aj={github:a=>h(a.accessToken,a.providerSpecificData,a.proxyOptions),"gemini-cli":a=>m(a.accessToken,a.providerDataWithProjectId,a.proxyOptions),antigravity:a=>o(a.accessToken,a.providerDataWithProjectId,a.proxyOptions),claude:a=>(0,q.g)(a.accessToken,a.proxyOptions,{force:a.force}),codex:a=>(0,r.Tl)(a.accessToken,a.providerSpecificData,a.proxyOptions,a.idToken),kiro:a=>t(a.accessToken,a.providerSpecificData,a.proxyOptions),qoder:async a=>{let b=await (0,ab._M)(a,a.proxyOptions).catch(()=>null);return ai(b?.accessToken||a.accessToken,a.proxyOptions)},iflow:a=>ae(a.accessToken),ollama:a=>af(a.apiKey,a.providerSpecificData,a.proxyOptions),glm:a=>ag(a.apiKey,a.provider,a.proxyOptions),"glm-cn":a=>ag(a.apiKey,a.provider,a.proxyOptions),minimax:a=>B(a.apiKey,a.provider,a.proxyOptions),"minimax-cn":a=>B(a.apiKey,a.provider,a.proxyOptions),elevenlabs:a=>D(a.apiKey,a.proxyOptions),"vercel-ai-gateway":a=>ah(a.apiKey,a.proxyOptions),"codebuddy-cn":a=>G(a.accessToken,a.apiKey,a.providerSpecificData,a.proxyOptions),"codebuddy-intl":a=>H(a.accessToken,a.apiKey,a.providerSpecificData,a.proxyOptions),"grok-cli":a=>T(a.accessToken,a.providerSpecificData,a.proxyOptions),kimi:a=>W(a.accessToken,a.apiKey,a.proxyOptions,a.providerSpecificData),cursor:a=>_(a.accessToken,a.proxyOptions),deepseek:a=>aa(a.apiKey,a.proxyOptions)};async function ak(a,b=null,c={}){let{provider:d,accessToken:e,apiKey:f,providerSpecificData:g,projectId:h,idToken:i}=a,j={...g||{},...h?{projectId:h}:{}},k=aj[d];return k?await k({provider:d,accessToken:e,apiKey:f,providerSpecificData:g,providerDataWithProjectId:j,proxyOptions:b,idToken:i,force:!0===c.force}):{message:`Usage API not implemented for ${d}`}}},71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(89718)},83352:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>n,refreshAndUpdateCredentials:()=>m}),c(30369);var d=c(89718),e=c(60827),f=c(99356),g=c(39326),h=c(40615);let i=[/validation_required/i,/verify your account/i];function j(a){return`modelError_${a||"__all"}`}function k(a){return`modelErrorCode_${a||"__all"}`}let l=["expired","authentication","unauthorized","401","re-authorize"];async function m(a,b=!1,c=null){let e=(0,f.SB)(a.provider),g={accessToken:a.accessToken,refreshToken:a.refreshToken,idToken:a.idToken,expiresAt:a.expiresAt||a.tokenExpiresAt,lastRefreshAt:a.lastRefreshAt,connectionId:a.id,providerSpecificData:a.providerSpecificData,copilotToken:a.providerSpecificData?.copilotToken,copilotTokenExpiresAt:a.providerSpecificData?.copilotTokenExpiresAt};if(!(b||e.needsRefresh(g)))return{connection:a,refreshed:!1};let h=await e.refreshCredentials(g,console,c);if(!h){if(a.accessToken)return{connection:a,refreshed:!1};throw Error("Failed to refresh credentials. Please re-authorize the connection.")}let i={updatedAt:new Date().toISOString()};h.accessToken&&(i.accessToken=h.accessToken),h.refreshToken&&(i.refreshToken=h.refreshToken),h.idToken&&(i.idToken=h.idToken),h.lastRefreshAt&&(i.lastRefreshAt=h.lastRefreshAt),h.expiresIn?(i.expiresAt=new Date(Date.now()+1e3*h.expiresIn).toISOString(),i.expiresIn=h.expiresIn):h.expiresAt&&(i.expiresAt=h.expiresAt);let j={...h.providerSpecificData||{},...h.copilotToken?{copilotToken:h.copilotToken}:{},...h.copilotTokenExpiresAt?{copilotTokenExpiresAt:h.copilotTokenExpiresAt}:{}};return Object.keys(j).length>0&&(i.providerSpecificData={...a.providerSpecificData||{},...j}),await (0,d.updateProviderConnection)(a.id,i),{connection:{...a,...i,providerSpecificData:i.providerSpecificData||a.providerSpecificData},refreshed:!0}}async function n(a,{params:b}){let c;try{let{connectionId:f}=await b,n="1"===new URL(a.url).searchParams.get("force");if(!(c=await (0,d.Mc)(f)))return Response.json({error:"Connection not found"},{status:404});let o="oauth"===c.authType,p=("apikey"===c.authType||"api_key"===c.authType)&&h.jO.includes(c.provider);if(!o&&!p)return Response.json({message:"Usage not available for this connection"});let q=await (0,g.B)(c.providerSpecificData),r={connectionProxyEnabled:!0===q.connectionProxyEnabled,connectionProxyUrl:q.connectionProxyUrl||"",connectionNoProxy:q.connectionNoProxy||"",vercelRelayUrl:q.vercelRelayUrl||"",strictProxy:!1};if(o)try{c=(await m(c,!1,r)).connection}catch(a){return console.error("[Usage API] Credential refresh failed:",a),Response.json({error:`Credential refresh failed: ${a.message}`},{status:401})}let s=await (0,e.my)(c,r,{force:n});if(o&&function(a){if(!a?.message)return!1;let b=a.message.toLowerCase();return l.some(a=>b.includes(a))}(s)&&c.refreshToken)try{c=(await m(c,!0,r)).connection,s=await (0,e.my)(c,r,{force:n})}catch(a){console.warn(`[Usage] ${c.provider}: force refresh failed: ${a.message}`)}return Response.json(function(a,b,c=Date.now()){if(a?.provider!=="antigravity"||!b?.quotas)return b;let d=!0===a.antigravityValidationRequired;for(let[e,f]of Object.entries(b.quotas)){let b=a[`modelLock_${e}`]||a.modelLock___all,g=b?new Date(b).getTime():NaN,h=Number.isFinite(g)&&g>c;if(!d&&!h)continue;let l=a[j(e)]||a[j(null)]||a.lastError||"",m=a[k(e)]||a[k(null)]||a.errorCode||null;f.reportedRemainingPercentage=f.remainingPercentage,f.reportedResetAt=f.resetAt,f.remainingPercentage=0,f.used=f.total,f.resetAt=d?null:b,f.runtimeLimited=!0,f.runtimeLimitLabel=d?"account blocked":function(a,b=null){let c,d="string"==typeof a?a:JSON.stringify(a||"");return(c="string"==typeof d?d:JSON.stringify(d||""),i.some(a=>a.test(c)))?"account blocked":429===b||/quota|capacity|resource_exhausted/i.test(d)?"runtime limit":"temporarily unavailable"}(l,m),f.runtimeLimitReason=l.slice(0,240),f.runtimeActionUrl=d&&a.antigravityValidationUrl||null}return b}(c,s))}catch(b){let a=c?.provider??"unknown";return console.warn(`[Usage] ${a}: ${b.message}`),Response.json({error:b.message},{status:500})}}},88705:(a,b,c)=>{c.d(b,{IQ:()=>i,U:()=>g,b8:()=>f,eZ:()=>h,gD:()=>j,u9:()=>k});var d=c(39141),e=c(89843);let f="2023-06-01",g=a=>d.xq[a]?.usage||{};function h(a){if(!a)return null;try{if(a instanceof Date)return a.toISOString();if("number"==typeof a)return new Date(a<1e12?1e3*a:a).toISOString();if("string"==typeof a){if(/^\d+$/.test(a)){let b=Number(a);return new Date(b<1e12?1e3*b:b).toISOString()}return new Date(a).toISOString()}return null}catch(b){return console.warn(`Failed to parse reset time: ${a}`,b),null}}function i(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return b}function j(a){return"string"==typeof a?a.trim()||null:a&&"object"==typeof a&&"string"==typeof a.id&&a.id.trim()||null}async function k(a,b,c=1e4,d=null){let f=new AbortController,g=setTimeout(()=>f.abort(),c);try{return await (0,e.proxyAwareFetch)(a,{...b,signal:f.signal},d)}finally{clearTimeout(g)}}},98594:(a,b,c)=>{c.d(b,{g:()=>m});var d=c(55511),e=c(89843),f=c(88705);let g={oauthUsageUrl:"https://api.anthropic.com/api/oauth/usage",settingsUrl:"https://api.anthropic.com/api/organizations/current",usageUrl:"https://api.anthropic.com/api/organizations/{org_id}/usage",apiVersion:f.b8},h=new Map,i=new Map;function j(a,b){for(h.delete(a),h.set(a,b);h.size>128;)h.delete(h.keys().next().value)}function k(a,b,c,d){if("number"==typeof c&&Number.isFinite(c)&&!Object.keys(a).some(a=>a.toLowerCase()===b.toLowerCase())){let e,g;a[b]=(g=100-(e=Math.min(100,Math.max(0,c))),{used:e,total:100,remaining:g,remainingPercentage:g,resetAt:(0,f.eZ)(d),unlimited:!1})}}async function l(a,b,c){try{let d=await (0,e.proxyAwareFetch)(g.oauthUsageUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":g.apiVersion},signal:AbortSignal.timeout(5e3)},b);if(d.ok){let a=function(a){let b={};for(let[c,d]of(k(b,"session (5h)",a?.five_hour?.utilization,a?.five_hour?.resets_at),k(b,"weekly (7d)",a?.seven_day?.utilization,a?.seven_day?.resets_at),Object.entries(a||{})))c.startsWith("seven_day_")&&d&&"object"==typeof d&&k(b,`weekly ${c.slice(10)} (7d)`,d.utilization,d.resets_at);for(let c of[...Array.isArray(a?.limits)?a.limits:[],...Array.isArray(a?.rate_limits)?a.rate_limits:[]]){let a=String(c?.group||"").toLowerCase(),d=String(c?.kind||"").toLowerCase();if("session"===d||"session"===a){k(b,"session (5h)",c.percent,c.resets_at);continue}if("weekly_scoped"===d||"weekly"===a){let a=c?.scope?.model?.display_name||c?.scope?.surface?.display_name;k(b,a?`weekly ${a} (7d)`:"weekly (7d)",c.percent,c.resets_at)}}return{plan:"Claude Code",extraUsage:a?.extra_usage??null,quotas:b}}(await d.json());return j(c,{value:a,expiresAt:Date.now()+65e3,retryAt:0}),a}if(429===d.status){let a,b=Date.now(),e=h.get(c),f=e?.value||{message:"Claude usage is rate limited. Retry later."};return j(c,{value:f,expiresAt:e?.expiresAt||0,retryAt:b+(a=function(a,b){let c=String(a||"").trim();if(!c)return null;let d=Number(c);if(Number.isFinite(d))return d>=0?1e3*d:null;let e=Date.parse(c);return Number.isFinite(e)?Math.max(0,e-b):null}(d.headers.get("retry-after"),b),null===a&&d.headers.forEach((c,d)=>{if(!/^anthropic-ratelimit-.+-reset$/i.test(d))return;let e=function(a,b){let c=String(a||"").trim();if(!c)return null;let d=Number(c),e=Number.isFinite(d)?d<1e12?1e3*d:d:Date.parse(c);return Number.isFinite(e)&&e>b&&e<=864e13?e-b:null}(c,b);null!==e&&(null===a||e>a)&&(a=e)}),Math.min(18e5,Math.max(18e4,a??18e4)))}),f}if(401===d.status)return{message:"Claude authentication expired (401). Re-authorize or refresh the connection."};if(404===d.status||405===d.status){let d=await n(a,b);return d.cacheable&&j(c,{value:d.value,expiresAt:Date.now()+65e3,retryAt:0}),d.value}return{message:`Claude connected. Usage endpoint returned HTTP ${d.status}.`}}catch{return{message:"Claude connected. Unable to fetch usage."}}}function m(a,b=null,c={}){let e,f=c?.force===!0,g=(0,d.createHash)("sha256").update(String(a??"")).digest("hex"),j=h.get(g),k=Date.now();return!f&&j&&(k<j.expiresAt||k<j.retryAt)?Promise.resolve(j.value):!f&&i.has(g)?i.get(g):i.size>=128?Promise.resolve({message:"Claude usage refresh is busy. Retry shortly."}):(e=l(a,b,g).finally(()=>{i.get(g)===e&&i.delete(g)}),i.set(g,e),e)}async function n(a,b=null){try{let c=await (0,e.proxyAwareFetch)(g.settingsUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":g.apiVersion}},b);if(c.ok){let d=await c.json();if(d.organization_id){let c=await (0,e.proxyAwareFetch)(g.usageUrl.replace("{org_id}",d.organization_id),{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":g.apiVersion}},b);if(c.ok){let a=await c.json();return{cacheable:!0,value:{plan:d.plan||"Unknown",organization:d.organization_name,quotas:a}}}return{cacheable:!1,value:{plan:d.plan||"Unknown",organization:d.organization_name,message:"Claude connected. Usage details require admin access."}}}return{cacheable:!0,value:{plan:d.plan||"Unknown",organization:d.organization_name,message:"Claude connected. Usage details require admin access."}}}return{cacheable:!1,value:{message:"Claude connected. Usage endpoint requires OAuth."}}}catch(a){return{cacheable:!1,value:{message:`Claude connected. Error checking usage: ${a.message}`}}}}}};
1
+ "use strict";exports.id=3352,exports.ids=[1998,3352],exports.modules={9155:(a,b,c)=>{c.d(b,{EV:()=>d.EV,_M:()=>e});var d=c(18851);async function e(a,b=null,c=null){let d=a?.apiKey||a?.accessToken;return{...a,accessToken:d,apiKey:d}}},39326:(a,b,c)=>{c.d(b,{B:()=>h,p:()=>g});var d=c(71998);function e(a){return null==a?"":String(a).trim()}let f=new Map;function g(a,b,c){if(!a||0===a.length)return null;if(1===a.length)return a[0];if("round-robin"===b){let b=f.get(c)||{index:-1};return b.index=(b.index+1)%a.length,f.set(c,b),a[b.index]}return"random"===b?a[Math.floor(Math.random()*a.length)]:a[0]}async function h(a={}){try{let b=e(a?.proxyPoolId),c="__none__"===b?"":b,f=function(a={}){let b=a?.connectionProxyEnabled===!0,c=e(a?.connectionProxyUrl);return{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:e(a?.connectionNoProxy)}}(a);if(c){let a=await (0,d.hr)(c),b=e(a?.proxyUrl),f=e(a?.noProxy);if(a&&!0===a.isActive&&b){if("vercel"===a.type||"cloudflare"===a.type||"deno"===a.type)return{source:a.type,proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:f,strictProxy:!0===a.strictProxy,vercelRelayUrl:b};return{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:f,strictProxy:!0===a.strictProxy}}}if(f.connectionProxyEnabled&&f.connectionProxyUrl)return{source:"legacy",proxyPoolId:c||null,proxyPool:null,...f};return{source:"none",proxyPoolId:c||null,proxyPool:null,...f}}catch(a){return console.error("[resolveConnectionProxyConfig] Failed to resolve proxy config:",a),{source:"error",proxyPoolId:null,proxyPool:null,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:"",strictProxy:!1}}}},49485:(a,b,c)=>{c.d(b,{RO:()=>o,Tl:()=>m,Yt:()=>n,oH:()=>p});var d=c(89843),e=c(81358),f=c(88705);let g={usageUrl:(0,f.U)("codex").url,resetCreditsUrl:(0,f.U)("codex").resetCreditsUrl,resetCreditsConsumeUrl:(0,f.U)("codex").resetCreditsConsumeUrl};function h(a){if(!a)return null;let b=a instanceof Date?a:new Date("number"==typeof a&&a<1e12?1e3*a:a);return Number.isFinite(b.getTime())?b.toISOString():null}function i(a,b={},c={},d=null){let f={Authorization:`Bearer ${a}`,Accept:"application/json",originator:"codex_cli_rs",...c},g=(0,e.a)(b,d);return g&&(f["ChatGPT-Account-ID"]=g),f}function j(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a.rate_limit&&"object"==typeof a.rate_limit?a.rate_limit:a}function k(a){let b=Math.max(0,Math.min(100,(0,f.IQ)(a?.used_percent??a?.percent_used,0)));return{used:b,total:100,remaining:Math.max(0,100-b),resetAt:(0,f.eZ)(a?.reset_at??a?.resets_at??a?.resetAt??null),unlimited:!1}}function l(a,b,c){let d=j(c);if(!d)return!1;let e=d.primary_window||d.primary||c.primary_window||c.primary,f=d.secondary_window||d.secondary||c.secondary_window||c.secondary,g=!1;return e&&(a[b?`${b}_session`:"session"]=k(e),g=!0),f&&(a[b?`${b}_weekly`:"weekly"]=k(f),g=!0),g}async function m(a,b={},c=null,h=null){var k,n,o;[b,c]=(k=b,!(n=c)&&(o=k)&&"object"==typeof o&&("connectionProxyEnabled"in o||"connectionProxyUrl"in o||"connectionNoProxy"in o||"vercelRelayUrl"in o||"strictProxy"in o)?(0,e.a)(k,h)?[k,k]:[{},k]:[k||{},n]);try{let e=await (0,d.proxyAwareFetch)(g.usageUrl,{method:"GET",headers:i(a,b,{},h)},c);if(!e.ok)return{message:`Codex connected. Usage API temporarily unavailable (${e.status}).`};let k=await e.json(),m=k.rate_limit||k.rate_limits||k.rate_limits_by_limit_id?.codex||{},n=function(a){if(a.code_review_rate_limit||a.review_rate_limit)return a.code_review_rate_limit||a.review_rate_limit;let b=a.rate_limits_by_limit_id;return b&&"object"==typeof b&&!Array.isArray(b)?b.code_review||b.codex_review||b.review||null:(Array.isArray(a.additional_rate_limits)?a.additional_rate_limits:[]).find(a=>{let b=String(a?.limit_name||a?.metered_feature||a?.id||"").toLowerCase();return"code_review"===b||"codex_review"===b||"review"===b||b.includes("review")})||null}(k),o=function(a){if(a.spark_rate_limit||a.gpt_5_3_codex_spark_rate_limit)return a.spark_rate_limit||a.gpt_5_3_codex_spark_rate_limit;let b=a.rate_limits_by_limit_id;return b&&"object"==typeof b&&!Array.isArray(b)?b["gpt-5.3-codex-spark"]||b.gpt_5_3_codex_spark||b.spark||null:(Array.isArray(a.additional_rate_limits)?a.additional_rate_limits:[]).find(a=>{let b=String(a?.limit_name||a?.metered_feature||a?.id||"").toLowerCase();return b.includes("spark")||b.includes("5.3-codex-spark")})||null}(k),p=Math.max(0,(0,f.IQ)(k.rate_limit_reset_credits?.available_count,0)),q={};return l(q,"",m),l(q,"review",n),l(q,"spark",o),{plan:k.plan_type||k.summary?.plan||"unknown",limitReached:j(m)?.limit_reached||!1,reviewLimitReached:j(n)?.limit_reached||!1,sparkLimitReached:j(o)?.limit_reached||!1,resetCredits:{availableCount:p},quotas:q}}catch(a){throw Error(`Failed to fetch Codex usage: ${a.message}`)}}async function n(a,b=null,c=null,e=null){if(!a)throw Error("No Codex access token available. Please re-authorize the connection.");let j=i(a,c,{"OpenAI-Beta":"codex-1"},e),k=await (0,d.proxyAwareFetch)(g.resetCreditsUrl,{method:"GET",headers:j},b),l=null;try{l=await k.json()}catch{l=null}if(!k.ok)throw Error(l?.message||l?.error||l?.detail||`Codex reset credits API unavailable (${k.status}).`);let m=Array.isArray(l?.credits)?l.credits:[];return{availableCount:Math.max(0,(0,f.IQ)(l?.available_count??l?.availableCount,0)),credits:m.map(a=>({status:String(a?.status||"unknown"),grantedAt:h(a?.granted_at??a?.grantedAt),expiresAt:h(a?.expires_at??a?.expiresAt)}))}}async function o(a,b,c=null,h=null,j=null){let k;if(!a)throw Error("No Codex access token available. Please re-authorize the connection.");if(!b||"string"!=typeof b)throw Error("A redeem request id is required to consume a Codex reset credit.");if(!(0,e.a)(h,j))throw Error("A ChatGPT account ID is required to consume a Codex reset credit. Please re-authorize the connection.");let l=null;try{k=await (0,d.proxyAwareFetch)(g.resetCreditsConsumeUrl,{method:"POST",headers:i(a,h,{"Content-Type":"application/json"},j),body:JSON.stringify({redeem_request_id:b})},c);let e=await k.text();l=e?JSON.parse(e):null}catch(a){throw Error(`Failed to consume Codex reset credit: ${a.message}`)}let m=l?.code||null,n=(0,f.IQ)(l?.windows_reset,0);return{ok:k.ok&&("reset"===m||n>0),noCredit:k.ok&&"no_credit"===m,status:k.status,code:m,windowsReset:n,message:l?.message||null,raw:l}}async function p(a,b=null,c=null,e=null){let g=new URL((0,f.U)("codex").modelsUrl||"https://chatgpt.com/backend-api/codex/models");(0,f.U)("codex").clientVersion&&g.searchParams.set("client_version",(0,f.U)("codex").clientVersion);let h=i(a,c,{},e),j=await (0,d.proxyAwareFetch)(g,{method:"GET",headers:h},b);if(!j.ok)return[];let k=await j.json();return(Array.isArray(k?.models)?k.models:[]).filter(a=>a?.supported_in_api!==!1&&"string"==typeof a?.slug&&a.slug).sort((a,b)=>Number(a.priority||0)-Number(b.priority||0))}},60827:(a,b,c)=>{c.d(b,{RO:()=>r.RO,Yt:()=>r.Yt,my:()=>ak});var d=c(89843),e=c(39141),f=c(88705);let g={apiVersion:e.sr.github?.apiVersion,userAgent:e.sr.github?.userAgent};async function h(a,b,c=null){try{if(!a)throw Error("No GitHub access token available. Please re-authorize the connection.");let b=await (0,d.proxyAwareFetch)((0,f.U)("github").url,{headers:{Authorization:`token ${a}`,Accept:"application/json","X-GitHub-Api-Version":g.apiVersion,"User-Agent":g.userAgent,"Editor-Version":"vscode/1.100.0","Editor-Plugin-Version":"copilot-chat/0.26.7"}},c);if(!b.ok){let a=await b.text();throw Error(`GitHub API error: ${a}`)}let e=await b.json();if(e.quota_snapshots){let a=e.quota_snapshots,b=(0,f.eZ)(e.quota_reset_date);return{plan:e.copilot_plan,resetDate:e.quota_reset_date,quotas:{chat:{...i(a.chat),resetAt:b},completions:{...i(a.completions),resetAt:b},premium_interactions:{...i(a.premium_interactions),resetAt:b}}}}if(e.monthly_quotas||e.limited_user_quotas){let a=e.monthly_quotas||{},b=e.limited_user_quotas||{},c=(0,f.eZ)(e.limited_user_reset_date);return{plan:e.copilot_plan||e.access_type_sku,resetDate:e.limited_user_reset_date,quotas:{chat:{used:b.chat||0,total:a.chat||0,unlimited:!1,resetAt:c},completions:{used:b.completions||0,total:a.completions||0,unlimited:!1,resetAt:c}}}}return{message:"GitHub Copilot connected. Unable to parse quota data."}}catch(a){throw Error(`Failed to fetch GitHub usage: ${a.message}`)}}function i(a){return a?{used:a.entitlement-a.remaining,total:a.entitlement,remaining:a.remaining,unlimited:a.unlimited||!1}:{used:0,total:0,unlimited:!0}}var j=c(28730),k=c(92675);let l={...(0,f.U)("antigravity"),...k.XP,userAgent:k.Of};async function m(a,b,c=null){if(!a)return{plan:"Free",message:"Gemini CLI access token not available."};try{let d=(0,f.gD)(b?.projectId),e="Free";if(!d){let b=await n(a,c);d=(0,f.gD)(b?.cloudaicompanionProject),e=b?.currentTier?.name||e}if(!d)return{plan:e,message:"Gemini CLI project ID not available. Reconnect Gemini CLI, or configure a Google Cloud project with Gemini Code Assist access before checking quota."};let g=await (0,f.u9)((0,f.U)("gemini-cli").quotaUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({project:d})},1e4,c);if(!g.ok)return{plan:e,message:`Gemini CLI quota error (${g.status}).`};let h=await g.json(),i={};if(Array.isArray(h.buckets))for(let a of h.buckets){if(!a.modelId||null==a.remainingFraction)continue;let b=Number(a.remainingFraction)||0,c=Math.round(1e3*b),d=Math.max(0,1e3-c);i[a.modelId]={used:d,total:1e3,resetAt:(0,f.eZ)(a.resetTime),remainingPercentage:100*b,unlimited:!1}}return{plan:e,quotas:i}}catch(a){return{message:`Gemini CLI error: ${a.message}`}}}async function n(a,b=null){try{let c=await (0,f.u9)((0,f.U)("gemini-cli").loadCodeAssistUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:j.Cn})},1e4,b);if(!c.ok)return null;return await c.json()}catch{return null}}async function o(a,b,c=null){try{let d=await p(a,c),e=(0,f.gD)(b?.projectId)||(0,f.gD)(d?.cloudaicompanionProject),g={Authorization:`Bearer ${a}`,"User-Agent":l.userAgent,"Content-Type":"application/json","X-Client-Name":"antigravity","X-Client-Version":k.Tr},h=JSON.stringify({...e?{project:e}:{}}),i=await (0,f.u9)(l.quotaApiUrl,{method:"POST",headers:g,body:h},1e4,c);if(403===i.status)return{message:"Antigravity quota API access forbidden. Chat may still work.",quotas:{}};if(401===i.status)return{message:"Antigravity quota API authentication expired. Chat may still work.",quotas:{}};if(!i.ok)throw Error(`Antigravity API error: ${i.status}`);let j=await i.json(),m={};if(j.models){let a=["gemini-3.7-flash-high","gemini-3.7-flash-medium","gemini-3.7-flash-low","gemini-3.6-flash-high","gemini-3.6-flash-medium","gemini-3.6-flash-low","gemini-3.5-flash-low","gemini-3.5-flash-extra-low","gemini-pro-agent","gemini-3.1-pro-low","claude-sonnet-4-6","claude-opus-4-6-thinking","gpt-oss-120b-medium","gemini-3.1-flash-image"];for(let[b,c]of Object.entries(j.models)){if(!c.quotaInfo||c.isInternal||!a.includes(b))continue;let d=c.quotaInfo.remainingFraction||0,e=100*d,g=Math.round(1e3*d),h=1e3-g;m[b]={used:h,total:1e3,resetAt:(0,f.eZ)(c.quotaInfo.resetTime),remainingPercentage:e,percentageOnly:!0,quotaNote:"gemini-3.1-flash-image"===b?"Google does not expose the exact remaining image-generation count.":"Google exposes this quota as a percentage, not an absolute request count.",unlimited:!1,displayName:c.displayName||b}}}return{plan:d?.currentTier?.name||"Unknown",quotas:m,subscriptionInfo:d}}catch(a){return console.error("[Antigravity Usage] Error:",a.message,a.cause),{message:`Antigravity error: ${a.message}`}}}async function p(a,b=null){try{let c=await (0,f.u9)(l.loadProjectApiUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"User-Agent":l.userAgent,"Content-Type":"application/json"},body:JSON.stringify({metadata:j.Cn,mode:1})},1e4,b);if(!c.ok)return null;return await c.json()}catch(a){return console.error("[Antigravity Subscription] Error:",a.message),null}}var q=c(98594),r=c(49485),s=c(3148);async function t(a,b,c=null){let e=b?.authMethod||"builder-id",g="api_key"===e,h=g?{tokentype:"API_KEY"}:{},i="external_idp"===e?{TokenType:"EXTERNAL_IDP"}:{},j=g?b?.profileArn||"":b?.profileArn||(0,s.We)(e),k=new URLSearchParams({isEmailRequired:"true",origin:"AI_EDITOR",resourceType:"AGENTIC_REQUEST"}),l=!1,m=[];for(let b of[{name:"codewhisperer-get",run:async()=>(0,d.proxyAwareFetch)(`${(0,f.U)("kiro").cwHost}${(0,f.U)("kiro").limitsPath}?${k.toString()}`,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","x-amz-user-agent":"aws-sdk-js/1.0.0 KiroIDE","user-agent":"aws-sdk-js/1.0.0 KiroIDE",...h,...i}},c)},{name:"codewhisperer-post",run:async()=>(0,d.proxyAwareFetch)((0,f.U)("kiro").cwHost,{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/x-amz-json-1.0","x-amz-target":"AmazonCodeWhispererService.GetUsageLimits",Accept:"application/json",...h,...i},body:JSON.stringify({origin:"AI_EDITOR",...j?{profileArn:j}:{},resourceType:"AGENTIC_REQUEST"})},c)},{name:"q-get",run:async()=>{let b=new URLSearchParams({origin:"AI_EDITOR",...j?{profileArn:j}:{},resourceType:"AGENTIC_REQUEST"});return(0,d.proxyAwareFetch)(`${(0,f.U)("kiro").qHost}${(0,f.U)("kiro").limitsPath}?${b}`,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json",...h,...i}},c)}}])try{let a=await b.run();if(!a.ok){let c=await a.text().catch(()=>"");(401===a.status||403===a.status)&&(l=!0),m.push(`${b.name}:${a.status}${c?`:${c}`:""}`);continue}let c=await a.json();return function(a){let b=a.usageBreakdownList||[],c={},d=(0,f.eZ)(a.nextDateReset||a.resetDate);return b.forEach(a=>{let b=a.resourceType?.toLowerCase()||"unknown",e=a.currentUsageWithPrecision||0,g=a.usageLimitWithPrecision||0;if(c[b]={used:e,total:g,remaining:g-e,resetAt:d,unlimited:!1},a.freeTrialInfo){let e=a.freeTrialInfo.currentUsageWithPrecision||0,g=a.freeTrialInfo.usageLimitWithPrecision||0;c[`${b}_freetrial`]={used:e,total:g,remaining:g-e,resetAt:(0,f.eZ)(a.freeTrialInfo.freeTrialExpiry||d),unlimited:!1}}}),{plan:a.subscriptionInfo?.subscriptionTitle||"Kiro",quotas:c}}(c)}catch(a){m.push(`${b.name}:${a.message}`)}return l&&"idc"===e?{message:"Kiro quota API is unavailable for the current AWS IAM Identity Center session. Chat may still work. If this persists after renewing your session, reconnect Kiro.",quotas:{}}:l&&("google"===e||"github"===e)?{message:"Kiro quota API authentication expired. Chat may still work.",quotas:{}}:l?{message:"Kiro quota API rejected the current token. Chat may still work.",quotas:{}}:{message:m.length>0?`Unable to fetch Kiro usage right now. (${m[m.length-1]})`:"Unable to fetch Kiro usage right now.",quotas:{}}}let u={minimax:(0,f.U)("minimax").urls,"minimax-cn":(0,f.U)("minimax-cn").urls};function v(a,b,c){return a&&"object"==typeof a?a[b]??a[c]??null:null}function w(a,b,c){if(!a||"object"!=typeof a)return null;let d=a[b]??a[c];if(null==d)return null;let e=Number(d);return Number.isFinite(e)?Math.max(0,Math.min(100,e)):null}function x(a){return Math.max(0,Number(v(a,"current_interval_total_count","currentIntervalTotalCount"))||0)}function y(a){return Math.max(0,Number(v(a,"current_weekly_total_count","currentWeeklyTotalCount"))||0)}function z(a){return!!(x(a)>0||y(a)>0)||null!==w(a,"current_interval_remaining_percent","currentIntervalRemainingPercent")||null!==w(a,"current_weekly_remaining_percent","currentWeeklyRemainingPercent")}function A(a,b,c,d,e,g,h,i,j,k){let l=d(c),m=w(c,h,i);if(l<=0&&null===m)return;let n=Math.max(0,Number(v(c,e,g))||0),o=l,p=n;l<=0&&(o=100,p=k?Math.round(m/100*o):Math.round(o*(1-m/100))),a[b]=function(a,b,c,d,e=null){var f,g,h;let i=Math.max(0,a),j=d?Math.max(i-b,0):Math.min(Math.max(0,b),i),k=Math.max(i-j,0),l=(f=e,g=k,h=i,null!=f&&Number.isFinite(f)?Math.max(0,Math.min(100,f)):h>0?Math.max(0,Math.min(100,g/h*100)):0);return{used:j,total:i,remaining:k,remainingPercentage:l,resetAt:c,unlimited:!1}}(o,p,function(a,b,c,d,e,g){let h=Number(v(a,c,d))||0;return h>0?new Date(b+h).toISOString():(0,f.eZ)(v(a,e,g))}(c,...j),k,m)}async function B(a,b,c=null){if(!a)return{message:"MiniMax API key not available."};let e=u[b]||[],f="";for(let b=0;b<e.length;b+=1){let g=e[b],h=b<e.length-1;try{let b=await (0,d.proxyAwareFetch)(g,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Type":"application/json"}},c),e=await b.text(),i={};if(e)try{i=JSON.parse(e)}catch{i={}}let j=(i?.base_resp??i?.baseResp)||{},k=Number(j.status_code??j.statusCode)||0,l=String(j.status_msg??j.statusMsg??"").trim(),m=`${l} ${e}`.trim(),n=/token plan|coding plan|invalid api key|invalid key|unauthorized|inactive/i;if(401===b.status||403===b.status||1004===k||n.test(m))return{message:"MiniMax API key invalid or inactive. Use an active Token/Coding Plan key."};if(!b.ok){if(f=`MiniMax usage endpoint error (${b.status})`,(404===b.status||405===b.status||b.status>=500)&&h)continue;return{message:`MiniMax connected. ${f}`}}if(0!==k)return{message:`MiniMax connected. ${l||"Upstream quota API error"}`};let o=i?.model_remains??i?.modelRemains,p=(Array.isArray(o)?o:[]).filter(z);if(0===p.length)return{message:"MiniMax connected. No quota data was returned."};let q=Date.now(),r=g.includes("/coding_plan/remains"),s={};for(let a of p){let b=function(a){let b=String(v(a,"model_name","modelName")||"").trim();return b?"MiniMax-M*"===b||"general"===b?"M-series":b.replace(/[_-]+/g," ").replace(/\s+/g," ").trim().replace(/\b\w/g,a=>a.toUpperCase()).replace(/\bTo\b/g,"to").replace(/\bTts\b/g,"TTS").replace(/\bHd\b/g,"HD"):"MiniMax"}(a);A(s,`${b} (5h)`,a,x,"current_interval_usage_count","currentIntervalUsageCount","current_interval_remaining_percent","currentIntervalRemainingPercent",[q,"remains_time","remainsTime","end_time","endTime"],r),A(s,`${b} (7d)`,a,y,"current_weekly_usage_count","currentWeeklyUsageCount","current_weekly_remaining_percent","currentWeeklyRemainingPercent",[q,"weekly_remains_time","weeklyRemainsTime","weekly_end_time","weeklyEndTime"],r)}if(0===Object.keys(s).length)return{message:"MiniMax connected. Unable to extract quota usage."};return{quotas:s}}catch(a){if(f=a.message,!h)break}}return{message:f?`MiniMax connected. Unable to fetch usage: ${f}`:"MiniMax connected. Unable to fetch usage."}}let C="Characters";async function D(a,b=null){if(!a)return{message:"ElevenLabs API key not available."};try{let c=await (0,f.u9)("https://api.elevenlabs.io/v1/user/subscription",{method:"GET",headers:{"xi-api-key":a,"Content-Type":"application/json"}},1e4,b);if(401===c.status)return{message:"ElevenLabs connected. Key lacks user_read permission to read credits."};if(!c.ok)return{message:`ElevenLabs connected. Usage endpoint error (${c.status}).`};let d=await c.json(),e=Math.max(0,(0,f.IQ)(d.character_limit)),g=Math.max(0,(0,f.IQ)(d.character_count)),h=Math.max(e-g,0),i=String(d.tier||"").trim();return{quotas:{[C]:{displayName:i?`${i.charAt(0).toUpperCase()}${i.slice(1)} characters`:C,used:g,total:e,remaining:h,remainingPercentage:e>0?h/e*100:0,resetAt:(0,f.eZ)(d.next_character_count_reset_unix),unlimited:0===e}}}}catch(a){return{message:`ElevenLabs connected. Unable to fetch usage: ${a.message}`}}}function E(a,b){let c=Number(a??b);return Number.isFinite(c)?c:0}async function F(a,b,c,g,h=null){let i=b||c;if(!i)return{message:`CodeBuddy (${a}) credential not available.`};try{let b=await (0,d.proxyAwareFetch)((0,f.U)(a).url,{method:"POST",headers:{...e.xq[a]?.headers||{},Authorization:`Bearer ${i}`,"Content-Type":"application/json",Accept:"application/json"},body:"{}"},h);if(401===b.status||403===b.status)return{message:"CodeBuddy CN credential invalid or expired."};if(!b.ok)return{message:`CodeBuddy CN quota API error (${b.status}).`};let c=await b.json();if(c?.code!==0)return{message:`CodeBuddy CN quota error: ${c?.msg||"unknown"}`};let g=c?.data?.Response?.Data||{},j=Array.isArray(g.Accounts)?g.Accounts:[];if(0===j.length)return{message:"CodeBuddy CN connected. No credit package found."};let k=a=>{let b=(0,f.eZ)(a.CycleEndTime);return b?new Date(b).getTime():1/0},l=a=>{let b=k(a),c=Number(a.DeductionEndTime);return Number.isFinite(b)&&Number.isFinite(c)&&c-b>1728e5},m=(a,b)=>k(a)-k(b),n=j.filter(l).sort(m),o=j.filter(a=>!l(a)).sort(m),p={},q={};n.forEach(a=>{let b=function(a){let b=(0,f.eZ)(a.CycleStartTime),c=(0,f.eZ)(a.CycleEndTime);if(b&&c){let a=(new Date(c).getTime()-new Date(b).getTime())/864e5;if(a<=1.5)return"Daily";if(a<=10)return"Weekly"}return"Monthly"}(a);q[b]=(q[b]||0)+1,p[q[b]>1?`${b} ${q[b]}`:b]={used:E(a.CycleCapacityUsedPrecise,a.CycleCapacityUsed),total:E(a.CycleCapacitySizePrecise,a.CycleCapacitySize),resetAt:(0,f.eZ)(a.CycleEndTime),unlimited:!1,recurring:!0}}),o.forEach((a,b)=>{p[`Bonus Pack ${b+1}`]={used:E(a.CapacityUsedPrecise,a.CapacityUsed),total:E(a.CapacitySizePrecise,a.CapacitySize),resetAt:(0,f.eZ)(a.CycleEndTime),unlimited:!1,recurring:!1}});let r=n[0]||j[0]||{};return{plan:r.PackageName||r.SubProductName||"CodeBuddy",quotas:p}}catch(b){return{message:`CodeBuddy (${a}) error: ${b.message}`}}}async function G(a,b,c,d=null){return F("codebuddy-cn",a,b,c,d)}async function H(a,b,c,d=null){return F("codebuddy-intl",a,b,c,d)}var I=c(13247);let J=(0,f.U)("grok-cli"),K=J.url||"https://cli-chat-proxy.grok.com/v1/billing?format=credits",L=J.userUrl||"https://cli-chat-proxy.grok.com/v1/user?include=subscription",M="string"==typeof K&&K.includes("?")?K.replace(/\?.*$/,""):"https://cli-chat-proxy.grok.com/v1/billing";function N(a,b=0){return null==a?b:"object"==typeof a&&!Array.isArray(a)&&"val"in a?(0,f.IQ)(a.val,b):(0,f.IQ)(a,b)}function O(a){return"string"==typeof a&&a.trim()?a.trim().replace(/[_-]+/g," ").replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").replace(/\s+/g," ").trim().replace(/\b\w/g,a=>a.toUpperCase()):null}function P(a,b){let c=a?.subscriptionTier??a?.subscription_tier??a?.subscription?.tier??b?.subscriptionTier??b?.subscription_tier;return"string"==typeof c?c.trim():""}function Q({used:a,total:b,resetAt:c,unlimited:d=!1}){let e=Math.max(0,(0,f.IQ)(b,0)),g=Math.max(0,(0,f.IQ)(a,0));if(d||0===e)return{used:g,total:0,remainingPercentage:100*!!d,resetAt:c||null,unlimited:!0};let h=Math.max(0,e-g);return{used:g,total:e,remainingPercentage:h/e*100,resetAt:c||null,unlimited:!1}}function R(a,b){let c=Math.min(100,Math.max(0,(0,f.IQ)(a,0)));return{used:c,total:100,remainingPercentage:Math.max(0,100-c),resetAt:b||null,unlimited:!1}}function S(a){let b=a&&"object"==typeof a?a:{},c=b.config&&"object"==typeof b.config&&!Array.isArray(b.config)?b.config:b;return{root:b,config:c}}async function T(a,b=null,c=null){if(!a)return{message:"Grok CLI access token not available."};let e=function(a,b={}){let c=b||{},d={Authorization:`Bearer ${a}`,Accept:"application/json","User-Agent":I.fZ,"x-xai-token-auth":"xai-grok-cli","x-grok-client-identifier":I.rK,"x-grok-client-version":I.uG,"x-grok-client-mode":"headless"},e=c.email,f=c.userId||c.principalId;return e&&(d["x-email"]=e),f&&(d["x-userid"]=f),d}(a,b);try{let[a,b,g]=await Promise.all([(0,d.proxyAwareFetch)(K,{method:"GET",headers:e},c),(0,d.proxyAwareFetch)(M,{method:"GET",headers:e},c).catch(()=>null),(0,d.proxyAwareFetch)(L,{method:"GET",headers:e},c).catch(()=>null)]);if(401===a.status||403===a.status)return{message:"Grok CLI authentication expired. Please re-authorize."};if(!a.ok){let b=await a.text().catch(()=>""),c=b?`: ${b.slice(0,200)}`:"";return{message:`Grok CLI billing API error (${a.status})${c}`}}let h=await a.json().catch(()=>null);if(!h||"object"!=typeof h)return{message:"Grok CLI billing response was not JSON."};let i=null;b?.ok&&(i=await b.json().catch(()=>null));let j=null;g?.ok&&(j=await g.json().catch(()=>null));let k=function(a,b=null,c=null){let d,{root:e,config:g}=S(a),h=(0,f.eZ)(g.billingPeriodEnd)||(0,f.eZ)(g.billing_period_end)||(0,f.eZ)(g.currentPeriod?.end)||(0,f.eZ)(g.resetAt||g.resetsAt||g.periodEnd)||(0,f.eZ)(e.billingPeriodEnd)||(0,f.eZ)(e.billing_period_end)||(0,f.eZ)(e.resetAt||e.resetsAt||e.periodEnd)||null,i={},j=P(b,g),k=!!j&&!/^(free|none|null)$/i.test(j),l=N(g.monthlyLimit??g.monthly_limit??e.monthlyLimit??e.monthly_limit,NaN),m=N(g.includedUsed??g.included_used??e.includedUsed??e.included_used,NaN),n=N(g.totalUsed??g.total_used??e.totalUsed??e.total_used,NaN);Number.isFinite(l)&&l>0&&(i["Monthly included"]=Q({used:Number.isFinite(m)?m:Number.isFinite(n)?n:0,total:l,resetAt:h}));let o=Array.isArray(g.productUsage)?g.productUsage:Array.isArray(e.productUsage)?e.productUsage:[],p=!1;if(o.length>0)for(let a of o){if(!a||"object"!=typeof a)continue;let b=N(a.usagePercent,NaN);if(!Number.isFinite(b))continue;let c=O(a.product)||"Usage";i[c]||(i[c]=R(b,h),p=!0)}let q=N(g.creditUsagePercent??e.creditUsagePercent,NaN);!p&&Number.isFinite(q)&&(i.Credits=R(q,h),p=!0);let r=N(g.onDemandCap??e.onDemandCap,NaN),s=N(g.onDemandUsed??e.onDemandUsed,NaN);if(Number.isFinite(r)&&r>0){let a=Number.isFinite(s)?Math.max(0,s):0;i["On-demand"]=Q({used:a,total:r,resetAt:h})}else!p&&!k&&Number.isFinite(r)&&0===r&&Number.isFinite(s)&&(i["On-demand"]={used:1,total:1,remainingPercentage:0,resetAt:h,unlimited:!1});let t=N(g.prepaidBalance??e.prepaidBalance,NaN);for(let a of(Number.isFinite(t)&&t>0&&(i.Prepaid={used:0,total:t,remainingPercentage:100,resetAt:null,unlimited:!1}),[e.credits,e.creditBalance,e.usage,g.credits,g.includedCredits,g.subscriptionCredits].filter(a=>a&&"object"==typeof a&&!Array.isArray(a)))){let b=N(a.total??a.limit??a.cap??a.allocation??a.amount,NaN),c=N(a.used??a.spent??a.consumed,NaN),d=N(a.remaining??a.balance??a.left,NaN);if(Number.isFinite(b)&&b>0){let e=Number.isFinite(c)?c:Number.isFinite(d)?Math.max(0,b-d):0;i.Credits||(i.Credits=Q({used:e,total:b,resetAt:(0,f.eZ)(a.resetAt||a.resetsAt||a.end)||h}))}else Number.isFinite(d)&&d>=0&&!i.Credits&&(i.Credits={used:0,total:d>0?d:1,remainingPercentage:100*(d>0),resetAt:h,unlimited:!1})}if(c&&"object"==typeof c){let{config:a}=S(c),b=N(a.monthlyLimit,NaN),d=N(a.used,NaN),e=(0,f.eZ)(a.billingPeriodEnd)||null;Number.isFinite(b)&&b>0&&(i.Monthly=Q({used:Number.isFinite(d)?Math.max(0,d):0,total:b,resetAt:e}))}let u=Object.keys(i).length>0&&Object.values(i).every(a=>!0!==a.unlimited&&(a.remainingPercentage??100)<=0);return{plan:(d=P(b,g))?O(d)||d:b?.hasGrokCodeAccess===!0?"Grok Code":(g?.isUnifiedBillingUser,"Grok Build"),quotas:i,periodEnd:h,exhausted:u,subscriptionAccess:k,rawConfig:g}}(h,j,i);if(!k.quotas||0===Object.keys(k.quotas).length)return{plan:k.plan,message:k.subscriptionAccess?"Subscription access is active; Grok does not expose a numeric included quota.":"Grok Build connected, but no credit allotment was returned. Free promo may be exhausted.",quotas:{}};return{plan:k.plan,quotas:k.quotas}}catch(a){return{message:`Grok CLI usage error: ${a.message}`}}}let U={LEVEL_BASIC:"Moderato",LEVEL_INTERMEDIATE:"Allegretto",LEVEL_ADVANCED:"Allegro",LEVEL_STANDARD:"Vivace"};function V({used:a,total:b,remaining:c,resetAt:d}){let e,g=Math.max(0,(0,f.IQ)(b,0)),h=Math.max(0,(0,f.IQ)(a,0));return e=g>0&&null!=c&&Number.isFinite(Number(c))?Math.max(0,Number(c))/g*100:g>0?Math.max(0,g-h)/g*100:0,{used:h,total:g,remainingPercentage:e,resetAt:d||null,unlimited:!1}}async function W(a=null,b=null,c=null,e=null){let g="string"==typeof b&&b.length>0,h=!g&&"string"==typeof a&&a.length>0;if(!g&&!h)return{message:"Kimi access token or API key not available."};let i=g?{"x-api-key":b}:{Authorization:`Bearer ${a}`,...(0,j.buildKimiHeaders)(e?.deviceId)};try{let a,b=await (0,d.proxyAwareFetch)(g?"https://api.moonshot.cn/v1/usage":"https://api.kimi.com/coding/v1/usages",{method:"GET",headers:{...i,"Content-Type":"application/json",Accept:"application/json"}},c),e=await b.text().catch(()=>"");if(!b.ok)return{plan:"Kimi Coding",message:function(a,b){let c=null;try{c=JSON.parse(b||"")}catch{}let d=Array.isArray(c?.details)?c.details[0]:null,e=d?.debug||c?.debug||null,f=e?.reason||c?.reason||"",g=e?.localizedMessage?.message||d?.localizedMessage?.message||c?.message||"";if(401===a)return"Kimi authentication expired. Please re-authorize.";if(403===a&&("REASON_FEATURE_NO_PERMISSION"===f||/permission_denied|do not have permission|subscribe/i.test(`${c?.code||""} ${g} ${b||""}`)))return g||"Kimi connected, but this account has no permission to view usage. Subscribe to Kimi Code to access quota.";let h=(g||b||"").slice(0,100);return h?`Kimi Coding connected. API Error ${a}: ${h}`:`Kimi Coding connected. API Error ${a}`}(b.status,e)};try{a=JSON.parse(e||"{}")}catch{return{plan:"Kimi Coding",message:"Kimi Coding connected. Invalid JSON response from API."}}let h={},j=a?.usage&&"object"==typeof a.usage?a.usage:{},k=(0,f.IQ)(j.limit??j.Limit,0),l=(0,f.IQ)(j.used??j.Used,0),m=j.remaining??j.Remaining,n=null!=m&&""!==m?(0,f.IQ)(m,NaN):NaN,o=j.resetTime||j.ResetTime||j.reset_at||j.resetAt;for(let b of(k>0&&(h.Weekly=V({used:l,total:k,remaining:Number.isFinite(n)?n:null,resetAt:(0,f.eZ)(o)})),Array.isArray(a?.limits)?a.limits:[])){if(!b||"object"!=typeof b)continue;let a=b.detail&&"object"==typeof b.detail?b.detail:{},c=(0,f.IQ)(a.limit??a.Limit,0),d=(0,f.IQ)(a.remaining??a.Remaining,NaN),e=a.resetTime||a.reset_at||a.resetAt;if(c>0){let a=Number.isFinite(d)?d:Math.max(0,c);h.Ratelimit=V({used:Math.max(0,c-a),total:c,remaining:a,resetAt:(0,f.eZ)(e)})}}let p=a?.user?.membership?.level,q=function(a){if(!a)return"";let b=String(a);return U[b]?U[b]:b.replace(/^LEVEL_/,"").toLowerCase()}(p)||"Kimi Coding";if(Object.keys(h).length>0)return{plan:q,quotas:h};return{plan:q,message:"Kimi Coding connected. Usage tracked per request."}}catch(a){return{message:`Kimi Coding connected. Unable to fetch usage: ${a.message}`}}}let X={usageUrl:(0,f.U)("cursor").usageUrl,planUrl:(0,f.U)("cursor").planUrl};async function Y(a,b,c){return(0,d.proxyAwareFetch)(a,{method:"POST",headers:{Authorization:`Bearer ${b}`,"Content-Type":"application/json","Connect-Protocol-Version":"1"},body:"{}"},c)}function Z(a,b){let c=Math.max(0,Math.min(100,a));return{used:c,total:100,remaining:Math.max(0,100-c),resetAt:b,unlimited:!1}}async function $(a,b){try{let c=await Y(X.planUrl,a,b);if(!c.ok)return null;let d=await c.json(),e=d?.planInfo?.planName;return"string"==typeof e&&e.trim()?e.trim():null}catch{return null}}async function _(a,b=null){let c,d;if(!a)return{message:"No Cursor access token available. Re-import your Cursor session."};try{c=await Y(X.usageUrl,a,b)}catch(a){return{message:`Cursor connected. Unable to fetch usage: ${a.message}`}}if(!c.ok)return{message:`Cursor connected. Usage API temporarily unavailable (${c.status}).`};try{d=await c.json()}catch{return{message:"Cursor connected. Usage API returned an invalid response."}}let e=d?.planUsage;if(d?.enabled===!1||!e)return{message:"No active Cursor subscription."};let g=Number(e.limit),h=Number.isFinite(g),i=Number(e.totalPercentUsed),j=Number.isFinite(i);if(!h&&!j)return{message:"Cursor connected. Usage totals unavailable for this account."};let k=(0,f.eZ)(d.billingCycleEnd),l={},m=Number(e.totalSpend),n=Number(e.remaining),o=0;Number.isFinite(m)?o=m:h&&Number.isFinite(n)&&(o=g-n);let p=h&&g>0?o/g*100:0;l["Total usage"]=Z(j?i:p,k);let q=Number(e.autoPercentUsed);Number.isFinite(q)&&(l["Auto usage"]=Z(q,k));let r=Number(e.apiPercentUsed);return Number.isFinite(r)&&(l["API usage"]=Z(r,k)),{plan:await $(a,b)||"Cursor",quotas:l}}async function aa(a=null,b=null){if(!a||"string"!=typeof a||!a.trim())return{message:"DeepSeek API key not available. Add a key to view usage."};try{let c=await (0,d.proxyAwareFetch)("https://api.deepseek.com/user/balance",{method:"GET",headers:{Authorization:`Bearer ${a.trim()}`,"Content-Type":"application/json",Accept:"application/json"}},b);if(401===c.status||403===c.status)return{plan:"DeepSeek",message:"DeepSeek authentication failed. Check the API key."};if(!c.ok){let a=await c.text().catch(()=>"");return{plan:"DeepSeek",message:`DeepSeek balance API error (${c.status})${a?`: ${a.slice(0,120)}`:""}`}}let e=await c.json().catch(()=>null);if(!e||"object"!=typeof e)return{message:"DeepSeek balance response was not JSON."};let g=function(a){let b=Array.isArray(a?.balance_infos)?a.balance_infos:[],c=[];for(let a of b){if(!a||"object"!=typeof a)continue;let b="string"==typeof a.currency?a.currency.toUpperCase():"";if(!b)continue;let d=(0,f.IQ)(a.total_balance??a.totalBalance,0);c.push({currency:b,totalBalance:d,grantedBalance:(0,f.IQ)(a.granted_balance??a.grantedBalance,0),toppedUpBalance:(0,f.IQ)(a.topped_up_balance??a.toppedUpBalance,0)})}return c}(e);if(0===g.length)return{plan:"DeepSeek",message:"DeepSeek connected. No balance data returned."};let h=!0===e.is_available||!0===e.isAvailable,i={};for(let a of g){let b=Math.max(0,a.totalBalance);i[`Balance (${a.currency})`]={used:0,total:b,remainingPercentage:100*(b>0),resetAt:null,unlimited:b>0}}return{plan:h?"DeepSeek":"DeepSeek (Insufficient Balance)",quotas:i}}catch(a){return{message:`DeepSeek error: ${a.message}`}}}var ab=c(9155);let ac={international:(0,f.U)("glm").url,china:(0,f.U)("glm-cn").url},ad=(0,f.U)("vercel-ai-gateway").url;async function ae(a){try{return{message:"iFlow connected. Usage tracked per request."}}catch(a){return{message:"Unable to fetch iFlow usage."}}}async function af(a,b,c=null){if(!a)return{message:"Ollama Cloud API key not available."};try{let b,f=await (0,d.proxyAwareFetch)("https://ollama.com/api/usage",{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c);if(401===f.status||403===f.status)return{message:"Ollama Cloud API key invalid or expired."};if(!f.ok)return{message:`Ollama Cloud usage API error (${f.status}).`};try{b=await f.json()}catch{return{message:"Ollama Cloud usage response was not JSON."}}let g=await (0,d.proxyAwareFetch)("https://ollama.com/api/me",{method:"POST",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Length":"0"}},c).then(a=>a.ok?a.json():null).catch(()=>null),h="string"==typeof g?.Plan?g.Plan:"",i=h?h.charAt(0).toUpperCase()+h.slice(1).toLowerCase():"Ollama Cloud",j=b?.limits&&"object"==typeof b.limits?b.limits:{};function e(a,b=null){let c=Math.max(0,Math.min(1,Number(a)||0)),d=Math.round(100*c);return{used:d,total:100,remainingPercentage:100-d,resetAt:b,unlimited:!1}}let k=j.session?.usage,l=j.weekly?.usage,m=Number(k),n=Number(l),o=null!=k&&!Number.isNaN(m),p=null!=l&&!Number.isNaN(n);if(!o&&!p)return{plan:i,message:"Ollama Cloud connected. No usage limits reported.",quotas:{}};let q={};return o&&(q["Session (5h)"]=e(m)),p&&(q["Weekly (7d)"]=e(n)),{plan:i,quotas:q}}catch(a){return{message:`Ollama Cloud error: ${a.message}`}}}async function ag(a,b,c=null){if(!a)return{message:"GLM API key not available."};let e=ac["glm-cn"===b?"china":"international"];try{let b=await (0,d.proxyAwareFetch)(e,{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c);if(!b.ok){if(401===b.status)return{message:"GLM API key invalid or expired."};return{message:`GLM quota API error (${b.status}).`}}let f=await b.json(),g=f?.data&&"object"==typeof f.data?f.data:{},h=Array.isArray(g.limits)?g.limits:[],i={};for(let a of h){if(!a||"TOKENS_LIMIT"!==a.type)continue;let b=Number(a.percentage)||0,c=Number(a.nextResetTime)||0,d=Math.max(0,100-b);i.session={used:b,total:100,remaining:d,remainingPercentage:d,resetAt:c>0?new Date(c).toISOString():null,unlimited:!1}}let j="string"==typeof g.level?g.level:"";return{plan:j?j.charAt(0).toUpperCase()+j.slice(1).toLowerCase():"Unknown",quotas:i}}catch(a){return{message:`GLM error: ${a.message}`}}}async function ah(a,b=null){if(!a)return{message:"Vercel AI Gateway API key not available."};try{let c=await (0,d.proxyAwareFetch)(ad,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},b);if(401===c.status||403===c.status)return{message:"Vercel AI Gateway API key invalid or expired."};if(!c.ok){let a=await c.text().catch(()=>""),b=a?`: ${a.slice(0,200)}`:"";return{message:`Vercel AI Gateway credits API error (${c.status})${b}`}}let e=await c.json(),f=Number(e?.balance)||0,g=Number(e?.total_used)||0;if(f<=0&&g<=0)return{plan:"Pay-as-you-go",message:"Vercel AI Gateway connected. No credit allocation found (BYOK or unfunded account).",quotas:{}};return{plan:"Pay-as-you-go",quotas:{"Used (USD)":{used:g,total:0,remaining:0,remainingPercentage:100,unlimited:!0},"Remaining (USD)":{used:f,total:5,remaining:f,remainingPercentage:f/5*100,unlimited:!1}}}}catch(a){return{message:`Vercel AI Gateway error: ${a.message}`}}}async function ai(a,b=null){if(!a)return{message:"Qoder usage unavailable: no access token"};try{let c=await (0,d.proxyAwareFetch)((0,f.U)("qoder").url,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},b);if(!c.ok)return{message:`Qoder connected. Usage fetch returned ${c.status}.`};let e=await c.json().catch(()=>null);if(!e)return{message:"Qoder connected. Usage response was not JSON."};let g=e.userQuota||{},h=e.orgResourcePackage||{},i=Number.isFinite(Number(e.expiresAt))&&Number(e.expiresAt)>0?Number(e.expiresAt):null,j=i?new Date(i).toISOString():null;return{quotas:{user:{total:Number(g.total)||0,used:Number(g.used)||0,remaining:Number(g.remaining)||0,unit:g.unit||"credits",resetAt:j},organization:{total:Number(h.total)||0,used:Number(h.used)||0,remaining:Number(h.remaining)||0,unit:h.unit||"credits",resetAt:j}},totalUsagePercentage:Number(e.totalUsagePercentage)||0,isQuotaExceeded:!!e.isQuotaExceeded,expiresAt:i}}catch(a){return{message:`Qoder connected. Unable to fetch usage: ${a.message}`}}}let aj={github:a=>h(a.accessToken,a.providerSpecificData,a.proxyOptions),"gemini-cli":a=>m(a.accessToken,a.providerDataWithProjectId,a.proxyOptions),antigravity:a=>o(a.accessToken,a.providerDataWithProjectId,a.proxyOptions),claude:a=>(0,q.g)(a.accessToken,a.proxyOptions,{force:a.force}),codex:a=>(0,r.Tl)(a.accessToken,a.providerSpecificData,a.proxyOptions,a.idToken),kiro:a=>t(a.accessToken,a.providerSpecificData,a.proxyOptions),qoder:async a=>{let b=await (0,ab._M)(a,a.proxyOptions).catch(()=>null);return ai(b?.accessToken||a.accessToken,a.proxyOptions)},iflow:a=>ae(a.accessToken),ollama:a=>af(a.apiKey,a.providerSpecificData,a.proxyOptions),glm:a=>ag(a.apiKey,a.provider,a.proxyOptions),"glm-cn":a=>ag(a.apiKey,a.provider,a.proxyOptions),minimax:a=>B(a.apiKey,a.provider,a.proxyOptions),"minimax-cn":a=>B(a.apiKey,a.provider,a.proxyOptions),elevenlabs:a=>D(a.apiKey,a.proxyOptions),"vercel-ai-gateway":a=>ah(a.apiKey,a.proxyOptions),"codebuddy-cn":a=>G(a.accessToken,a.apiKey,a.providerSpecificData,a.proxyOptions),"codebuddy-intl":a=>H(a.accessToken,a.apiKey,a.providerSpecificData,a.proxyOptions),"grok-cli":a=>T(a.accessToken,a.providerSpecificData,a.proxyOptions),kimi:a=>W(a.accessToken,a.apiKey,a.proxyOptions,a.providerSpecificData),cursor:a=>_(a.accessToken,a.proxyOptions),deepseek:a=>aa(a.apiKey,a.proxyOptions)};async function ak(a,b=null,c={}){let{provider:d,accessToken:e,apiKey:f,providerSpecificData:g,projectId:h,idToken:i}=a,j={...g||{},...h?{projectId:h}:{}},k=aj[d];return k?await k({provider:d,accessToken:e,apiKey:f,providerSpecificData:g,providerDataWithProjectId:j,proxyOptions:b,idToken:i,force:!0===c.force}):{message:`Usage API not implemented for ${d}`}}},71998:(a,b,c)=>{c.d(b,{Fh:()=>d.Fh,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(89718)},83352:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>n,refreshAndUpdateCredentials:()=>m}),c(30369);var d=c(89718),e=c(60827),f=c(99356),g=c(39326),h=c(40615);let i=[/validation_required/i,/verify your account/i];function j(a){return`modelError_${a||"__all"}`}function k(a){return`modelErrorCode_${a||"__all"}`}let l=["expired","authentication","unauthorized","401","re-authorize"];async function m(a,b=!1,c=null){let e=(0,f.SB)(a.provider),g={accessToken:a.accessToken,refreshToken:a.refreshToken,idToken:a.idToken,expiresAt:a.expiresAt||a.tokenExpiresAt,lastRefreshAt:a.lastRefreshAt,connectionId:a.id,providerSpecificData:a.providerSpecificData,copilotToken:a.providerSpecificData?.copilotToken,copilotTokenExpiresAt:a.providerSpecificData?.copilotTokenExpiresAt};if(!(b||e.needsRefresh(g)))return{connection:a,refreshed:!1};let h=await e.refreshCredentials(g,console,c);if(!h){if(a.accessToken)return{connection:a,refreshed:!1};throw Error("Failed to refresh credentials. Please re-authorize the connection.")}let i={updatedAt:new Date().toISOString()};h.accessToken&&(i.accessToken=h.accessToken),h.refreshToken&&(i.refreshToken=h.refreshToken),h.idToken&&(i.idToken=h.idToken),h.lastRefreshAt&&(i.lastRefreshAt=h.lastRefreshAt),h.expiresIn?(i.expiresAt=new Date(Date.now()+1e3*h.expiresIn).toISOString(),i.expiresIn=h.expiresIn):h.expiresAt&&(i.expiresAt=h.expiresAt);let j={...h.providerSpecificData||{},...h.copilotToken?{copilotToken:h.copilotToken}:{},...h.copilotTokenExpiresAt?{copilotTokenExpiresAt:h.copilotTokenExpiresAt}:{}};return Object.keys(j).length>0&&(i.providerSpecificData={...a.providerSpecificData||{},...j}),await (0,d.updateProviderConnection)(a.id,i),{connection:{...a,...i,providerSpecificData:i.providerSpecificData||a.providerSpecificData},refreshed:!0}}async function n(a,{params:b}){let c;try{let{connectionId:f}=await b,n="1"===new URL(a.url).searchParams.get("force");if(!(c=await (0,d.Mc)(f)))return Response.json({error:"Connection not found"},{status:404});let o="oauth"===c.authType,p=("apikey"===c.authType||"api_key"===c.authType)&&h.jO.includes(c.provider);if(!o&&!p)return Response.json({message:"Usage not available for this connection"});let q=await (0,g.B)(c.providerSpecificData),r={connectionProxyEnabled:!0===q.connectionProxyEnabled,connectionProxyUrl:q.connectionProxyUrl||"",connectionNoProxy:q.connectionNoProxy||"",vercelRelayUrl:q.vercelRelayUrl||"",strictProxy:!1};if(o)try{c=(await m(c,!1,r)).connection}catch(a){return console.error("[Usage API] Credential refresh failed:",a),Response.json({error:`Credential refresh failed: ${a.message}`},{status:401})}let s=await (0,e.my)(c,r,{force:n});if(o&&function(a){if(!a?.message)return!1;let b=a.message.toLowerCase();return l.some(a=>b.includes(a))}(s)&&c.refreshToken)try{c=(await m(c,!0,r)).connection,s=await (0,e.my)(c,r,{force:n})}catch(a){console.warn(`[Usage] ${c.provider}: force refresh failed: ${a.message}`)}return Response.json(function(a,b,c=Date.now()){if(a?.provider!=="antigravity"||!b?.quotas)return b;let d=!0===a.antigravityValidationRequired;for(let[e,f]of Object.entries(b.quotas)){let b=a[`modelLock_${e}`]||a.modelLock___all,g=b?new Date(b).getTime():NaN,h=Number.isFinite(g)&&g>c;if(!d&&!h)continue;let l=a[j(e)]||a[j(null)]||a.lastError||"",m=a[k(e)]||a[k(null)]||a.errorCode||null;f.reportedRemainingPercentage=f.remainingPercentage,f.reportedResetAt=f.resetAt,f.remainingPercentage=0,f.used=f.total,f.resetAt=d?null:b,f.runtimeLimited=!0,f.runtimeLimitLabel=d?"account blocked":function(a,b=null){let c,d="string"==typeof a?a:JSON.stringify(a||"");return(c="string"==typeof d?d:JSON.stringify(d||""),i.some(a=>a.test(c)))?"account blocked":429===b||/quota|capacity|resource_exhausted/i.test(d)?"runtime limit":"temporarily unavailable"}(l,m),f.runtimeLimitReason=l.slice(0,240),f.runtimeActionUrl=d&&a.antigravityValidationUrl||null}return b}(c,s))}catch(b){let a=c?.provider??"unknown";return console.warn(`[Usage] ${a}: ${b.message}`),Response.json({error:b.message},{status:500})}}},88705:(a,b,c)=>{c.d(b,{IQ:()=>i,U:()=>g,b8:()=>f,eZ:()=>h,gD:()=>j,u9:()=>k});var d=c(39141),e=c(89843);let f="2023-06-01",g=a=>d.xq[a]?.usage||{};function h(a){if(!a)return null;try{if(a instanceof Date)return a.toISOString();if("number"==typeof a)return new Date(a<1e12?1e3*a:a).toISOString();if("string"==typeof a){if(/^\d+$/.test(a)){let b=Number(a);return new Date(b<1e12?1e3*b:b).toISOString()}return new Date(a).toISOString()}return null}catch(b){return console.warn(`Failed to parse reset time: ${a}`,b),null}}function i(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return b}function j(a){return"string"==typeof a?a.trim()||null:a&&"object"==typeof a&&"string"==typeof a.id&&a.id.trim()||null}async function k(a,b,c=1e4,d=null){let f=new AbortController,g=setTimeout(()=>f.abort(),c);try{return await (0,e.proxyAwareFetch)(a,{...b,signal:f.signal},d)}finally{clearTimeout(g)}}},98594:(a,b,c)=>{c.d(b,{g:()=>m});var d=c(55511),e=c(89843),f=c(88705);let g={oauthUsageUrl:"https://api.anthropic.com/api/oauth/usage",settingsUrl:"https://api.anthropic.com/api/organizations/current",usageUrl:"https://api.anthropic.com/api/organizations/{org_id}/usage",apiVersion:f.b8},h=new Map,i=new Map;function j(a,b){for(h.delete(a),h.set(a,b);h.size>128;)h.delete(h.keys().next().value)}function k(a,b,c,d){if("number"==typeof c&&Number.isFinite(c)&&!Object.keys(a).some(a=>a.toLowerCase()===b.toLowerCase())){let e,g;a[b]=(g=100-(e=Math.min(100,Math.max(0,c))),{used:e,total:100,remaining:g,remainingPercentage:g,resetAt:(0,f.eZ)(d),unlimited:!1})}}async function l(a,b,c){try{let d=await (0,e.proxyAwareFetch)(g.oauthUsageUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":g.apiVersion},signal:AbortSignal.timeout(5e3)},b);if(d.ok){let a=function(a){let b={};for(let[c,d]of(k(b,"session (5h)",a?.five_hour?.utilization,a?.five_hour?.resets_at),k(b,"weekly (7d)",a?.seven_day?.utilization,a?.seven_day?.resets_at),Object.entries(a||{})))c.startsWith("seven_day_")&&d&&"object"==typeof d&&k(b,`weekly ${c.slice(10)} (7d)`,d.utilization,d.resets_at);for(let c of[...Array.isArray(a?.limits)?a.limits:[],...Array.isArray(a?.rate_limits)?a.rate_limits:[]]){let a=String(c?.group||"").toLowerCase(),d=String(c?.kind||"").toLowerCase();if("session"===d||"session"===a){k(b,"session (5h)",c.percent,c.resets_at);continue}if("weekly_scoped"===d||"weekly"===a){let a=c?.scope?.model?.display_name||c?.scope?.surface?.display_name;k(b,a?`weekly ${a} (7d)`:"weekly (7d)",c.percent,c.resets_at)}}return{plan:"Claude Code",extraUsage:a?.extra_usage??null,quotas:b}}(await d.json());return j(c,{value:a,expiresAt:Date.now()+65e3,retryAt:0}),a}if(429===d.status){let a,b=Date.now(),e=h.get(c),f=e?.value||{message:"Claude usage is rate limited. Retry later."};return j(c,{value:f,expiresAt:e?.expiresAt||0,retryAt:b+(a=function(a,b){let c=String(a||"").trim();if(!c)return null;let d=Number(c);if(Number.isFinite(d))return d>=0?1e3*d:null;let e=Date.parse(c);return Number.isFinite(e)?Math.max(0,e-b):null}(d.headers.get("retry-after"),b),null===a&&d.headers.forEach((c,d)=>{if(!/^anthropic-ratelimit-.+-reset$/i.test(d))return;let e=function(a,b){let c=String(a||"").trim();if(!c)return null;let d=Number(c),e=Number.isFinite(d)?d<1e12?1e3*d:d:Date.parse(c);return Number.isFinite(e)&&e>b&&e<=864e13?e-b:null}(c,b);null!==e&&(null===a||e>a)&&(a=e)}),Math.min(18e5,Math.max(18e4,a??18e4)))}),f}if(401===d.status)return{message:"Claude authentication expired (401). Re-authorize or refresh the connection."};if(404===d.status||405===d.status){let d=await n(a,b);return d.cacheable&&j(c,{value:d.value,expiresAt:Date.now()+65e3,retryAt:0}),d.value}return{message:`Claude connected. Usage endpoint returned HTTP ${d.status}.`}}catch{return{message:"Claude connected. Unable to fetch usage."}}}function m(a,b=null,c={}){let e,f=c?.force===!0,g=(0,d.createHash)("sha256").update(String(a??"")).digest("hex"),j=h.get(g),k=Date.now();return!f&&j&&(k<j.expiresAt||k<j.retryAt)?Promise.resolve(j.value):!f&&i.has(g)?i.get(g):i.size>=128?Promise.resolve({message:"Claude usage refresh is busy. Retry shortly."}):(e=l(a,b,g).finally(()=>{i.get(g)===e&&i.delete(g)}),i.set(g,e),e)}async function n(a,b=null){try{let c=await (0,e.proxyAwareFetch)(g.settingsUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":g.apiVersion}},b);if(c.ok){let d=await c.json();if(d.organization_id){let c=await (0,e.proxyAwareFetch)(g.usageUrl.replace("{org_id}",d.organization_id),{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":g.apiVersion}},b);if(c.ok){let a=await c.json();return{cacheable:!0,value:{plan:d.plan||"Unknown",organization:d.organization_name,quotas:a}}}return{cacheable:!1,value:{plan:d.plan||"Unknown",organization:d.organization_name,message:"Claude connected. Usage details require admin access."}}}return{cacheable:!0,value:{plan:d.plan||"Unknown",organization:d.organization_name,message:"Claude connected. Usage details require admin access."}}}return{cacheable:!1,value:{message:"Claude connected. Usage endpoint requires OAuth."}}}catch(a){return{cacheable:!1,value:{message:`Claude connected. Error checking usage: ${a.message}`}}}}}};