9router-proxy 0.6.24 → 0.6.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (788) hide show
  1. package/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/prerender-manifest.json +3 -3
  5. package/app/.next-cli-build/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js +1 -1
  6. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/[toolId]/page_client-reference-manifest.js +1 -1
  7. package/app/.next-cli-build/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js +1 -1
  8. package/app/.next-cli-build/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js +1 -1
  9. package/app/.next-cli-build/server/app/(dashboard)/dashboard/console-log/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/media-providers/[kind]/[id]/page_client-reference-manifest.js +1 -1
  12. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js +1 -1
  13. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js +1 -1
  14. package/app/.next-cli-build/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js +1 -1
  15. package/app/.next-cli-build/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js +1 -1
  16. package/app/.next-cli-build/server/app/(dashboard)/dashboard/page_client-reference-manifest.js +1 -1
  17. package/app/.next-cli-build/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js +1 -1
  18. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js +1 -1
  19. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js +1 -1
  20. package/app/.next-cli-build/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js +1 -1
  21. package/app/.next-cli-build/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js +1 -1
  22. package/app/.next-cli-build/server/app/(dashboard)/dashboard/pxpipe/page_client-reference-manifest.js +1 -1
  23. package/app/.next-cli-build/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js +1 -1
  24. package/app/.next-cli-build/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js +1 -1
  25. package/app/.next-cli-build/server/app/(dashboard)/dashboard/token-saver/page_client-reference-manifest.js +1 -1
  26. package/app/.next-cli-build/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js +1 -1
  27. package/app/.next-cli-build/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js +1 -1
  28. package/app/.next-cli-build/server/app/_global-error/page_client-reference-manifest.js +1 -1
  29. package/app/.next-cli-build/server/app/_global-error.html +1 -1
  30. package/app/.next-cli-build/server/app/_global-error.rsc +1 -1
  31. package/app/.next-cli-build/server/app/_global-error.segments/_full.segment.rsc +1 -1
  32. package/app/.next-cli-build/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  33. package/app/.next-cli-build/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  34. package/app/.next-cli-build/server/app/_not-found/page_client-reference-manifest.js +1 -1
  35. package/app/.next-cli-build/server/app/_not-found.html +1 -1
  36. package/app/.next-cli-build/server/app/_not-found.rsc +3 -3
  37. package/app/.next-cli-build/server/app/_not-found.segments/_full.segment.rsc +3 -3
  38. package/app/.next-cli-build/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +3 -3
  39. package/app/.next-cli-build/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  40. package/app/.next-cli-build/server/app/api/cli-tools/all-statuses/route.js +5 -5
  41. package/app/.next-cli-build/server/app/api/cli-tools/antigravity-mitm/alias/route.js +2 -2
  42. package/app/.next-cli-build/server/app/api/cli-tools/claude-settings/route.js +2 -2
  43. package/app/.next-cli-build/server/app/api/cli-tools/cline-settings/route.js +1 -1
  44. package/app/.next-cli-build/server/app/api/cli-tools/codewhale-settings/route.js +1 -1
  45. package/app/.next-cli-build/server/app/api/cli-tools/copilot-settings/route.js +2 -2
  46. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-registry/route.js +1 -1
  47. package/app/.next-cli-build/server/app/api/cli-tools/cowork-mcp-tools/route.js +1 -1
  48. package/app/.next-cli-build/server/app/api/cli-tools/cowork-settings/route.js +1 -1
  49. package/app/.next-cli-build/server/app/api/cli-tools/crush-settings/route.js +2 -2
  50. package/app/.next-cli-build/server/app/api/cli-tools/deepseek-tui-settings/route.js +2 -2
  51. package/app/.next-cli-build/server/app/api/cli-tools/devin-settings/route.js +1 -1
  52. package/app/.next-cli-build/server/app/api/cli-tools/droid-settings/route.js +1 -1
  53. package/app/.next-cli-build/server/app/api/cli-tools/forge-settings/route.js +2 -2
  54. package/app/.next-cli-build/server/app/api/cli-tools/grok-build-settings/route.js +3 -3
  55. package/app/.next-cli-build/server/app/api/cli-tools/hermes-settings/route.js +2 -2
  56. package/app/.next-cli-build/server/app/api/cli-tools/jcode-settings/route.js +3 -3
  57. package/app/.next-cli-build/server/app/api/cli-tools/kilo-settings/route.js +1 -1
  58. package/app/.next-cli-build/server/app/api/cli-tools/omp-settings/route.js +2 -2
  59. package/app/.next-cli-build/server/app/api/cli-tools/openclaw-settings/route.js +2 -2
  60. package/app/.next-cli-build/server/app/api/cli-tools/opencode-settings/route.js +2 -2
  61. package/app/.next-cli-build/server/app/api/cli-tools/pi-settings/route.js +1 -1
  62. package/app/.next-cli-build/server/app/api/cli-tools/smelt-settings/route.js +1 -1
  63. package/app/.next-cli-build/server/app/api/models/route.js +1 -1
  64. package/app/.next-cli-build/server/app/api/oauth/codex/import-token/route.js +1 -1
  65. package/app/.next-cli-build/server/app/api/providers/route.js +1 -1
  66. package/app/.next-cli-build/server/app/api/translator/console-logs/route.js +1 -1
  67. package/app/.next-cli-build/server/app/api/translator/console-logs/stream/route.js +1 -1
  68. package/app/.next-cli-build/server/app/api/tunnel/tailscale-install/route.js +2 -2
  69. package/app/.next-cli-build/server/app/api/v1/audio/speech/route.js +1 -1
  70. package/app/.next-cli-build/server/app/api/v1/embeddings/route.js +1 -1
  71. package/app/.next-cli-build/server/app/api/v1/images/generations/route.js +1 -1
  72. package/app/.next-cli-build/server/app/api/version/route.js +1 -1
  73. package/app/.next-cli-build/server/app/api/version/shutdown/route.js +1 -1
  74. package/app/.next-cli-build/server/app/api/version/update/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/_tree.segment.rsc +1 -1
  80. package/app/.next-cli-build/server/app/callback.segments/callback/__PAGE__.segment.rsc +3 -3
  81. package/app/.next-cli-build/server/app/dashboard/basic-chat.html +1 -1
  82. package/app/.next-cli-build/server/app/dashboard/basic-chat.rsc +3 -3
  83. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc +3 -3
  84. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_full.segment.rsc +3 -3
  85. package/app/.next-cli-build/server/app/dashboard/basic-chat.segments/_tree.segment.rsc +1 -1
  86. package/app/.next-cli-build/server/app/dashboard/cli-tools.html +1 -1
  87. package/app/.next-cli-build/server/app/dashboard/cli-tools.rsc +3 -3
  88. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc +3 -3
  89. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_full.segment.rsc +3 -3
  90. package/app/.next-cli-build/server/app/dashboard/cli-tools.segments/_tree.segment.rsc +1 -1
  91. package/app/.next-cli-build/server/app/dashboard/combos.html +1 -1
  92. package/app/.next-cli-build/server/app/dashboard/combos.rsc +3 -3
  93. package/app/.next-cli-build/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc +3 -3
  94. package/app/.next-cli-build/server/app/dashboard/combos.segments/_full.segment.rsc +3 -3
  95. package/app/.next-cli-build/server/app/dashboard/combos.segments/_tree.segment.rsc +1 -1
  96. package/app/.next-cli-build/server/app/dashboard/endpoint.html +1 -1
  97. package/app/.next-cli-build/server/app/dashboard/endpoint.rsc +3 -3
  98. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc +3 -3
  99. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_full.segment.rsc +3 -3
  100. package/app/.next-cli-build/server/app/dashboard/endpoint.segments/_tree.segment.rsc +1 -1
  101. package/app/.next-cli-build/server/app/dashboard/media-providers/web.html +1 -1
  102. package/app/.next-cli-build/server/app/dashboard/media-providers/web.rsc +3 -3
  103. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc +3 -3
  104. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_full.segment.rsc +3 -3
  105. package/app/.next-cli-build/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc +1 -1
  106. package/app/.next-cli-build/server/app/dashboard/mitm.html +1 -1
  107. package/app/.next-cli-build/server/app/dashboard/mitm.rsc +3 -3
  108. package/app/.next-cli-build/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc +3 -3
  109. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_full.segment.rsc +3 -3
  110. package/app/.next-cli-build/server/app/dashboard/mitm.segments/_tree.segment.rsc +1 -1
  111. package/app/.next-cli-build/server/app/dashboard/profile.html +1 -1
  112. package/app/.next-cli-build/server/app/dashboard/profile.rsc +3 -3
  113. package/app/.next-cli-build/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc +3 -3
  114. package/app/.next-cli-build/server/app/dashboard/profile.segments/_full.segment.rsc +3 -3
  115. package/app/.next-cli-build/server/app/dashboard/profile.segments/_tree.segment.rsc +1 -1
  116. package/app/.next-cli-build/server/app/dashboard/providers/new.html +1 -1
  117. package/app/.next-cli-build/server/app/dashboard/providers/new.rsc +3 -3
  118. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc +3 -3
  119. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_full.segment.rsc +3 -3
  120. package/app/.next-cli-build/server/app/dashboard/providers/new.segments/_tree.segment.rsc +1 -1
  121. package/app/.next-cli-build/server/app/dashboard/providers.html +1 -1
  122. package/app/.next-cli-build/server/app/dashboard/providers.rsc +3 -3
  123. package/app/.next-cli-build/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc +3 -3
  124. package/app/.next-cli-build/server/app/dashboard/providers.segments/_full.segment.rsc +3 -3
  125. package/app/.next-cli-build/server/app/dashboard/providers.segments/_tree.segment.rsc +1 -1
  126. package/app/.next-cli-build/server/app/dashboard/proxy-pools.html +1 -1
  127. package/app/.next-cli-build/server/app/dashboard/proxy-pools.rsc +3 -3
  128. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc +3 -3
  129. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_full.segment.rsc +3 -3
  130. package/app/.next-cli-build/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc +1 -1
  131. package/app/.next-cli-build/server/app/dashboard/pxpipe.html +1 -1
  132. package/app/.next-cli-build/server/app/dashboard/pxpipe.rsc +3 -3
  133. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/!KGRhc2hib2FyZCk/dashboard/pxpipe/__PAGE__.segment.rsc +3 -3
  134. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_full.segment.rsc +3 -3
  135. package/app/.next-cli-build/server/app/dashboard/pxpipe.segments/_tree.segment.rsc +1 -1
  136. package/app/.next-cli-build/server/app/dashboard/quota.html +1 -1
  137. package/app/.next-cli-build/server/app/dashboard/quota.rsc +3 -3
  138. package/app/.next-cli-build/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc +3 -3
  139. package/app/.next-cli-build/server/app/dashboard/quota.segments/_full.segment.rsc +3 -3
  140. package/app/.next-cli-build/server/app/dashboard/quota.segments/_tree.segment.rsc +1 -1
  141. package/app/.next-cli-build/server/app/dashboard/settings/pricing/page_client-reference-manifest.js +1 -1
  142. package/app/.next-cli-build/server/app/dashboard/settings/pricing.html +1 -1
  143. package/app/.next-cli-build/server/app/dashboard/settings/pricing.rsc +3 -3
  144. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_full.segment.rsc +3 -3
  145. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc +1 -1
  146. package/app/.next-cli-build/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc +3 -3
  147. package/app/.next-cli-build/server/app/dashboard/skills.html +1 -1
  148. package/app/.next-cli-build/server/app/dashboard/skills.rsc +3 -3
  149. package/app/.next-cli-build/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc +3 -3
  150. package/app/.next-cli-build/server/app/dashboard/skills.segments/_full.segment.rsc +3 -3
  151. package/app/.next-cli-build/server/app/dashboard/skills.segments/_tree.segment.rsc +1 -1
  152. package/app/.next-cli-build/server/app/dashboard/token-saver.html +1 -1
  153. package/app/.next-cli-build/server/app/dashboard/token-saver.rsc +3 -3
  154. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/!KGRhc2hib2FyZCk/dashboard/token-saver/__PAGE__.segment.rsc +3 -3
  155. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_full.segment.rsc +3 -3
  156. package/app/.next-cli-build/server/app/dashboard/token-saver.segments/_tree.segment.rsc +1 -1
  157. package/app/.next-cli-build/server/app/dashboard/translator.html +1 -1
  158. package/app/.next-cli-build/server/app/dashboard/translator.rsc +3 -3
  159. package/app/.next-cli-build/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc +3 -3
  160. package/app/.next-cli-build/server/app/dashboard/translator.segments/_full.segment.rsc +3 -3
  161. package/app/.next-cli-build/server/app/dashboard/translator.segments/_tree.segment.rsc +1 -1
  162. package/app/.next-cli-build/server/app/dashboard/usage.html +1 -1
  163. package/app/.next-cli-build/server/app/dashboard/usage.rsc +3 -3
  164. package/app/.next-cli-build/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc +3 -3
  165. package/app/.next-cli-build/server/app/dashboard/usage.segments/_full.segment.rsc +3 -3
  166. package/app/.next-cli-build/server/app/dashboard/usage.segments/_tree.segment.rsc +1 -1
  167. package/app/.next-cli-build/server/app/dashboard.html +1 -1
  168. package/app/.next-cli-build/server/app/dashboard.rsc +3 -3
  169. package/app/.next-cli-build/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc +3 -3
  170. package/app/.next-cli-build/server/app/dashboard.segments/_full.segment.rsc +3 -3
  171. package/app/.next-cli-build/server/app/dashboard.segments/_tree.segment.rsc +1 -1
  172. package/app/.next-cli-build/server/app/index.html +1 -1
  173. package/app/.next-cli-build/server/app/index.rsc +3 -3
  174. package/app/.next-cli-build/server/app/index.segments/__PAGE__.segment.rsc +3 -3
  175. package/app/.next-cli-build/server/app/index.segments/_full.segment.rsc +3 -3
  176. package/app/.next-cli-build/server/app/index.segments/_tree.segment.rsc +1 -1
  177. package/app/.next-cli-build/server/app/landing/page_client-reference-manifest.js +1 -1
  178. package/app/.next-cli-build/server/app/landing.html +1 -1
  179. package/app/.next-cli-build/server/app/landing.rsc +3 -3
  180. package/app/.next-cli-build/server/app/landing.segments/_full.segment.rsc +3 -3
  181. package/app/.next-cli-build/server/app/landing.segments/_tree.segment.rsc +1 -1
  182. package/app/.next-cli-build/server/app/landing.segments/landing/__PAGE__.segment.rsc +3 -3
  183. package/app/.next-cli-build/server/app/login/page_client-reference-manifest.js +1 -1
  184. package/app/.next-cli-build/server/app/login.html +1 -1
  185. package/app/.next-cli-build/server/app/login.rsc +3 -3
  186. package/app/.next-cli-build/server/app/login.segments/_full.segment.rsc +3 -3
  187. package/app/.next-cli-build/server/app/login.segments/_tree.segment.rsc +1 -1
  188. package/app/.next-cli-build/server/app/login.segments/login/__PAGE__.segment.rsc +3 -3
  189. package/app/.next-cli-build/server/app/page_client-reference-manifest.js +1 -1
  190. package/app/.next-cli-build/server/app-paths-manifest.json +15 -15
  191. package/app/.next-cli-build/server/chunks/1248.js +1 -1
  192. package/app/.next-cli-build/server/chunks/1350.js +1 -1
  193. package/app/.next-cli-build/server/chunks/1757.js +1 -1
  194. package/app/.next-cli-build/server/chunks/24.js +1 -1
  195. package/app/.next-cli-build/server/chunks/3256.js +1 -1
  196. package/app/.next-cli-build/server/chunks/341.js +1 -1
  197. package/app/.next-cli-build/server/chunks/3835.js +1 -1
  198. package/app/.next-cli-build/server/chunks/3943.js +1 -1
  199. package/app/.next-cli-build/server/chunks/412.js +1 -1
  200. package/app/.next-cli-build/server/chunks/4478.js +1 -1
  201. package/app/.next-cli-build/server/chunks/5026.js +1 -1
  202. package/app/.next-cli-build/server/chunks/5330.js +3 -3
  203. package/app/.next-cli-build/server/chunks/7220.js +1 -1
  204. package/app/.next-cli-build/server/chunks/778.js +1 -1
  205. package/app/.next-cli-build/server/chunks/7828.js +1 -1
  206. package/app/.next-cli-build/server/chunks/794.js +1 -1
  207. package/app/.next-cli-build/server/chunks/8238.js +1 -1
  208. package/app/.next-cli-build/server/chunks/8271.js +1 -1
  209. package/app/.next-cli-build/server/chunks/8402.js +1 -1
  210. package/app/.next-cli-build/server/chunks/8591.js +1 -1
  211. package/app/.next-cli-build/server/chunks/8895.js +2 -2
  212. package/app/.next-cli-build/server/chunks/9310.js +1 -1
  213. package/app/.next-cli-build/server/middleware-build-manifest.js +1 -1
  214. package/app/.next-cli-build/server/pages/404.html +1 -1
  215. package/app/.next-cli-build/server/pages/500.html +1 -1
  216. package/app/.next-cli-build/server/preview-props.json +3 -3
  217. package/app/.next-cli-build/server/server-reference-manifest.js +1 -1
  218. package/app/.next-cli-build/server/server-reference-manifest.json +1 -1
  219. package/app/.next-cli-build/static/chunks/{1321-48747172a83bfc92.js → 1321-ab7de5caad91b6f2.js} +1 -1
  220. package/app/.next-cli-build/static/chunks/{5497-94d4f9da330e2758.js → 5497-e3d2edeccfd5021d.js} +2 -2
  221. package/app/.next-cli-build/static/chunks/9057-5cc83b08fdf10b7c.js +1 -0
  222. package/app/node_modules/caniuse-lite/data/features/aac.js +1 -1
  223. package/app/node_modules/caniuse-lite/data/features/abortcontroller.js +1 -1
  224. package/app/node_modules/caniuse-lite/data/features/ac3-ec3.js +1 -1
  225. package/app/node_modules/caniuse-lite/data/features/accelerometer.js +1 -1
  226. package/app/node_modules/caniuse-lite/data/features/addeventlistener.js +1 -1
  227. package/app/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +1 -1
  228. package/app/node_modules/caniuse-lite/data/features/ambient-light.js +1 -1
  229. package/app/node_modules/caniuse-lite/data/features/apng.js +1 -1
  230. package/app/node_modules/caniuse-lite/data/features/array-find-index.js +1 -1
  231. package/app/node_modules/caniuse-lite/data/features/array-find.js +1 -1
  232. package/app/node_modules/caniuse-lite/data/features/array-flat.js +1 -1
  233. package/app/node_modules/caniuse-lite/data/features/arrow-functions.js +1 -1
  234. package/app/node_modules/caniuse-lite/data/features/asmjs.js +1 -1
  235. package/app/node_modules/caniuse-lite/data/features/async-clipboard.js +1 -1
  236. package/app/node_modules/caniuse-lite/data/features/async-functions.js +1 -1
  237. package/app/node_modules/caniuse-lite/data/features/atob-btoa.js +1 -1
  238. package/app/node_modules/caniuse-lite/data/features/audio-api.js +1 -1
  239. package/app/node_modules/caniuse-lite/data/features/audio.js +1 -1
  240. package/app/node_modules/caniuse-lite/data/features/audiotracks.js +1 -1
  241. package/app/node_modules/caniuse-lite/data/features/autofocus.js +1 -1
  242. package/app/node_modules/caniuse-lite/data/features/auxclick.js +1 -1
  243. package/app/node_modules/caniuse-lite/data/features/av1.js +1 -1
  244. package/app/node_modules/caniuse-lite/data/features/avif.js +1 -1
  245. package/app/node_modules/caniuse-lite/data/features/background-attachment.js +1 -1
  246. package/app/node_modules/caniuse-lite/data/features/background-clip-text.js +1 -1
  247. package/app/node_modules/caniuse-lite/data/features/background-img-opts.js +1 -1
  248. package/app/node_modules/caniuse-lite/data/features/background-position-x-y.js +1 -1
  249. package/app/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +1 -1
  250. package/app/node_modules/caniuse-lite/data/features/background-sync.js +1 -1
  251. package/app/node_modules/caniuse-lite/data/features/battery-status.js +1 -1
  252. package/app/node_modules/caniuse-lite/data/features/beacon.js +1 -1
  253. package/app/node_modules/caniuse-lite/data/features/beforeafterprint.js +1 -1
  254. package/app/node_modules/caniuse-lite/data/features/bigint.js +1 -1
  255. package/app/node_modules/caniuse-lite/data/features/blobbuilder.js +1 -1
  256. package/app/node_modules/caniuse-lite/data/features/bloburls.js +1 -1
  257. package/app/node_modules/caniuse-lite/data/features/border-image.js +1 -1
  258. package/app/node_modules/caniuse-lite/data/features/border-radius.js +1 -1
  259. package/app/node_modules/caniuse-lite/data/features/broadcastchannel.js +1 -1
  260. package/app/node_modules/caniuse-lite/data/features/brotli.js +1 -1
  261. package/app/node_modules/caniuse-lite/data/features/calc.js +1 -1
  262. package/app/node_modules/caniuse-lite/data/features/canvas-blending.js +1 -1
  263. package/app/node_modules/caniuse-lite/data/features/canvas-text.js +1 -1
  264. package/app/node_modules/caniuse-lite/data/features/canvas.js +1 -1
  265. package/app/node_modules/caniuse-lite/data/features/ch-unit.js +1 -1
  266. package/app/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +1 -1
  267. package/app/node_modules/caniuse-lite/data/features/channel-messaging.js +1 -1
  268. package/app/node_modules/caniuse-lite/data/features/childnode-remove.js +1 -1
  269. package/app/node_modules/caniuse-lite/data/features/classlist.js +1 -1
  270. package/app/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +1 -1
  271. package/app/node_modules/caniuse-lite/data/features/clipboard.js +1 -1
  272. package/app/node_modules/caniuse-lite/data/features/colr-v1.js +1 -1
  273. package/app/node_modules/caniuse-lite/data/features/colr.js +1 -1
  274. package/app/node_modules/caniuse-lite/data/features/comparedocumentposition.js +1 -1
  275. package/app/node_modules/caniuse-lite/data/features/console-basic.js +1 -1
  276. package/app/node_modules/caniuse-lite/data/features/console-time.js +1 -1
  277. package/app/node_modules/caniuse-lite/data/features/const.js +1 -1
  278. package/app/node_modules/caniuse-lite/data/features/constraint-validation.js +1 -1
  279. package/app/node_modules/caniuse-lite/data/features/contenteditable.js +1 -1
  280. package/app/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +1 -1
  281. package/app/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +1 -1
  282. package/app/node_modules/caniuse-lite/data/features/cookie-store-api.js +1 -1
  283. package/app/node_modules/caniuse-lite/data/features/cors.js +1 -1
  284. package/app/node_modules/caniuse-lite/data/features/createimagebitmap.js +1 -1
  285. package/app/node_modules/caniuse-lite/data/features/credential-management.js +1 -1
  286. package/app/node_modules/caniuse-lite/data/features/cross-document-view-transitions.js +1 -1
  287. package/app/node_modules/caniuse-lite/data/features/cryptography.js +1 -1
  288. package/app/node_modules/caniuse-lite/data/features/css-all.js +1 -1
  289. package/app/node_modules/caniuse-lite/data/features/css-anchor-positioning.js +1 -1
  290. package/app/node_modules/caniuse-lite/data/features/css-animation.js +1 -1
  291. package/app/node_modules/caniuse-lite/data/features/css-any-link.js +1 -1
  292. package/app/node_modules/caniuse-lite/data/features/css-appearance.js +1 -1
  293. package/app/node_modules/caniuse-lite/data/features/css-at-counter-style.js +1 -1
  294. package/app/node_modules/caniuse-lite/data/features/css-autofill.js +1 -1
  295. package/app/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +1 -1
  296. package/app/node_modules/caniuse-lite/data/features/css-background-offsets.js +1 -1
  297. package/app/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +1 -1
  298. package/app/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +1 -1
  299. package/app/node_modules/caniuse-lite/data/features/css-boxshadow.js +1 -1
  300. package/app/node_modules/caniuse-lite/data/features/css-canvas.js +1 -1
  301. package/app/node_modules/caniuse-lite/data/features/css-caret-color.js +1 -1
  302. package/app/node_modules/caniuse-lite/data/features/css-cascade-layers.js +1 -1
  303. package/app/node_modules/caniuse-lite/data/features/css-cascade-scope.js +1 -1
  304. package/app/node_modules/caniuse-lite/data/features/css-case-insensitive.js +1 -1
  305. package/app/node_modules/caniuse-lite/data/features/css-clip-path.js +1 -1
  306. package/app/node_modules/caniuse-lite/data/features/css-color-adjust.js +1 -1
  307. package/app/node_modules/caniuse-lite/data/features/css-color-function.js +1 -1
  308. package/app/node_modules/caniuse-lite/data/features/css-conic-gradients.js +1 -1
  309. package/app/node_modules/caniuse-lite/data/features/css-container-queries-style.js +1 -1
  310. package/app/node_modules/caniuse-lite/data/features/css-container-queries.js +1 -1
  311. package/app/node_modules/caniuse-lite/data/features/css-container-query-units.js +1 -1
  312. package/app/node_modules/caniuse-lite/data/features/css-containment.js +1 -1
  313. package/app/node_modules/caniuse-lite/data/features/css-content-visibility.js +1 -1
  314. package/app/node_modules/caniuse-lite/data/features/css-counters.js +1 -1
  315. package/app/node_modules/caniuse-lite/data/features/css-crisp-edges.js +1 -1
  316. package/app/node_modules/caniuse-lite/data/features/css-cross-fade.js +1 -1
  317. package/app/node_modules/caniuse-lite/data/features/css-default-pseudo.js +1 -1
  318. package/app/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +1 -1
  319. package/app/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +1 -1
  320. package/app/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +1 -1
  321. package/app/node_modules/caniuse-lite/data/features/css-display-contents.js +1 -1
  322. package/app/node_modules/caniuse-lite/data/features/css-env-function.js +1 -1
  323. package/app/node_modules/caniuse-lite/data/features/css-featurequeries.js +1 -1
  324. package/app/node_modules/caniuse-lite/data/features/css-file-selector-button.js +1 -1
  325. package/app/node_modules/caniuse-lite/data/features/css-filter-function.js +1 -1
  326. package/app/node_modules/caniuse-lite/data/features/css-filters.js +1 -1
  327. package/app/node_modules/caniuse-lite/data/features/css-first-letter.js +1 -1
  328. package/app/node_modules/caniuse-lite/data/features/css-fixed.js +1 -1
  329. package/app/node_modules/caniuse-lite/data/features/css-focus-visible.js +1 -1
  330. package/app/node_modules/caniuse-lite/data/features/css-focus-within.js +1 -1
  331. package/app/node_modules/caniuse-lite/data/features/css-font-palette.js +1 -1
  332. package/app/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +1 -1
  333. package/app/node_modules/caniuse-lite/data/features/css-font-stretch.js +1 -1
  334. package/app/node_modules/caniuse-lite/data/features/css-gradients.js +1 -1
  335. package/app/node_modules/caniuse-lite/data/features/css-grid-animation.js +1 -1
  336. package/app/node_modules/caniuse-lite/data/features/css-grid-lanes.js +1 -1
  337. package/app/node_modules/caniuse-lite/data/features/css-grid.js +1 -1
  338. package/app/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +1 -1
  339. package/app/node_modules/caniuse-lite/data/features/css-has.js +1 -1
  340. package/app/node_modules/caniuse-lite/data/features/css-hyphens.js +1 -1
  341. package/app/node_modules/caniuse-lite/data/features/css-if.js +1 -1
  342. package/app/node_modules/caniuse-lite/data/features/css-image-orientation.js +1 -1
  343. package/app/node_modules/caniuse-lite/data/features/css-image-set.js +1 -1
  344. package/app/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +1 -1
  345. package/app/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +1 -1
  346. package/app/node_modules/caniuse-lite/data/features/css-initial-letter.js +1 -1
  347. package/app/node_modules/caniuse-lite/data/features/css-initial-value.js +1 -1
  348. package/app/node_modules/caniuse-lite/data/features/css-lch-lab.js +1 -1
  349. package/app/node_modules/caniuse-lite/data/features/css-letter-spacing.js +1 -1
  350. package/app/node_modules/caniuse-lite/data/features/css-line-clamp.js +1 -1
  351. package/app/node_modules/caniuse-lite/data/features/css-logical-props.js +1 -1
  352. package/app/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +1 -1
  353. package/app/node_modules/caniuse-lite/data/features/css-masks.js +1 -1
  354. package/app/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +1 -1
  355. package/app/node_modules/caniuse-lite/data/features/css-math-functions.js +1 -1
  356. package/app/node_modules/caniuse-lite/data/features/css-media-interaction.js +1 -1
  357. package/app/node_modules/caniuse-lite/data/features/css-media-range-syntax.js +1 -1
  358. package/app/node_modules/caniuse-lite/data/features/css-media-resolution.js +1 -1
  359. package/app/node_modules/caniuse-lite/data/features/css-mediaqueries.js +1 -1
  360. package/app/node_modules/caniuse-lite/data/features/css-mixblendmode.js +1 -1
  361. package/app/node_modules/caniuse-lite/data/features/css-module-scripts.js +1 -1
  362. package/app/node_modules/caniuse-lite/data/features/css-motion-paths.js +1 -1
  363. package/app/node_modules/caniuse-lite/data/features/css-namespaces.js +1 -1
  364. package/app/node_modules/caniuse-lite/data/features/css-nesting.js +1 -1
  365. package/app/node_modules/caniuse-lite/data/features/css-not-sel-list.js +1 -1
  366. package/app/node_modules/caniuse-lite/data/features/css-nth-child-of.js +1 -1
  367. package/app/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +1 -1
  368. package/app/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +1 -1
  369. package/app/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +1 -1
  370. package/app/node_modules/caniuse-lite/data/features/css-overflow.js +1 -1
  371. package/app/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +1 -1
  372. package/app/node_modules/caniuse-lite/data/features/css-page-break.js +1 -1
  373. package/app/node_modules/caniuse-lite/data/features/css-paged-media.js +1 -1
  374. package/app/node_modules/caniuse-lite/data/features/css-paint-api.js +1 -1
  375. package/app/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +1 -1
  376. package/app/node_modules/caniuse-lite/data/features/css-placeholder.js +1 -1
  377. package/app/node_modules/caniuse-lite/data/features/css-print-color-adjust.js +1 -1
  378. package/app/node_modules/caniuse-lite/data/features/css-read-only-write.js +1 -1
  379. package/app/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +1 -1
  380. package/app/node_modules/caniuse-lite/data/features/css-regions.js +1 -1
  381. package/app/node_modules/caniuse-lite/data/features/css-relative-colors.js +1 -1
  382. package/app/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +1 -1
  383. package/app/node_modules/caniuse-lite/data/features/css-resize.js +1 -1
  384. package/app/node_modules/caniuse-lite/data/features/css-revert-value.js +1 -1
  385. package/app/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +1 -1
  386. package/app/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +1 -1
  387. package/app/node_modules/caniuse-lite/data/features/css-scrollbar.js +1 -1
  388. package/app/node_modules/caniuse-lite/data/features/css-sel2.js +1 -1
  389. package/app/node_modules/caniuse-lite/data/features/css-sel3.js +1 -1
  390. package/app/node_modules/caniuse-lite/data/features/css-selection.js +1 -1
  391. package/app/node_modules/caniuse-lite/data/features/css-shapes.js +1 -1
  392. package/app/node_modules/caniuse-lite/data/features/css-snappoints.js +1 -1
  393. package/app/node_modules/caniuse-lite/data/features/css-sticky.js +1 -1
  394. package/app/node_modules/caniuse-lite/data/features/css-subgrid.js +1 -1
  395. package/app/node_modules/caniuse-lite/data/features/css-supports-api.js +1 -1
  396. package/app/node_modules/caniuse-lite/data/features/css-table.js +1 -1
  397. package/app/node_modules/caniuse-lite/data/features/css-text-align-last.js +1 -1
  398. package/app/node_modules/caniuse-lite/data/features/css-text-box-trim.js +1 -1
  399. package/app/node_modules/caniuse-lite/data/features/css-text-indent.js +1 -1
  400. package/app/node_modules/caniuse-lite/data/features/css-text-justify.js +1 -1
  401. package/app/node_modules/caniuse-lite/data/features/css-text-orientation.js +1 -1
  402. package/app/node_modules/caniuse-lite/data/features/css-text-spacing.js +1 -1
  403. package/app/node_modules/caniuse-lite/data/features/css-text-wrap-balance.js +1 -1
  404. package/app/node_modules/caniuse-lite/data/features/css-textshadow.js +1 -1
  405. package/app/node_modules/caniuse-lite/data/features/css-touch-action.js +1 -1
  406. package/app/node_modules/caniuse-lite/data/features/css-transitions.js +1 -1
  407. package/app/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +1 -1
  408. package/app/node_modules/caniuse-lite/data/features/css-unset-value.js +1 -1
  409. package/app/node_modules/caniuse-lite/data/features/css-variables.js +1 -1
  410. package/app/node_modules/caniuse-lite/data/features/css-widows-orphans.js +1 -1
  411. package/app/node_modules/caniuse-lite/data/features/css-width-stretch.js +1 -1
  412. package/app/node_modules/caniuse-lite/data/features/css-writing-mode.js +1 -1
  413. package/app/node_modules/caniuse-lite/data/features/css-zoom.js +1 -1
  414. package/app/node_modules/caniuse-lite/data/features/css3-attr.js +1 -1
  415. package/app/node_modules/caniuse-lite/data/features/css3-boxsizing.js +1 -1
  416. package/app/node_modules/caniuse-lite/data/features/css3-colors.js +1 -1
  417. package/app/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +1 -1
  418. package/app/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +1 -1
  419. package/app/node_modules/caniuse-lite/data/features/css3-cursors.js +1 -1
  420. package/app/node_modules/caniuse-lite/data/features/css3-tabsize.js +1 -1
  421. package/app/node_modules/caniuse-lite/data/features/custom-elements.js +1 -1
  422. package/app/node_modules/caniuse-lite/data/features/custom-elementsv1.js +1 -1
  423. package/app/node_modules/caniuse-lite/data/features/customevent.js +1 -1
  424. package/app/node_modules/caniuse-lite/data/features/customizable-select.js +1 -1
  425. package/app/node_modules/caniuse-lite/data/features/datalist.js +1 -1
  426. package/app/node_modules/caniuse-lite/data/features/dataset.js +1 -1
  427. package/app/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +1 -1
  428. package/app/node_modules/caniuse-lite/data/features/declarative-shadow-dom.js +1 -1
  429. package/app/node_modules/caniuse-lite/data/features/details.js +1 -1
  430. package/app/node_modules/caniuse-lite/data/features/deviceorientation.js +1 -1
  431. package/app/node_modules/caniuse-lite/data/features/devicepixelratio.js +1 -1
  432. package/app/node_modules/caniuse-lite/data/features/dialog.js +1 -1
  433. package/app/node_modules/caniuse-lite/data/features/dispatchevent.js +1 -1
  434. package/app/node_modules/caniuse-lite/data/features/dnssec.js +1 -1
  435. package/app/node_modules/caniuse-lite/data/features/do-not-track.js +1 -1
  436. package/app/node_modules/caniuse-lite/data/features/document-currentscript.js +1 -1
  437. package/app/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +1 -1
  438. package/app/node_modules/caniuse-lite/data/features/document-execcommand.js +1 -1
  439. package/app/node_modules/caniuse-lite/data/features/document-policy.js +1 -1
  440. package/app/node_modules/caniuse-lite/data/features/document-scrollingelement.js +1 -1
  441. package/app/node_modules/caniuse-lite/data/features/documenthead.js +1 -1
  442. package/app/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +1 -1
  443. package/app/node_modules/caniuse-lite/data/features/dommatrix.js +1 -1
  444. package/app/node_modules/caniuse-lite/data/features/download.js +1 -1
  445. package/app/node_modules/caniuse-lite/data/features/dragndrop.js +1 -1
  446. package/app/node_modules/caniuse-lite/data/features/element-closest.js +1 -1
  447. package/app/node_modules/caniuse-lite/data/features/element-from-point.js +1 -1
  448. package/app/node_modules/caniuse-lite/data/features/element-scroll-methods.js +1 -1
  449. package/app/node_modules/caniuse-lite/data/features/eme.js +1 -1
  450. package/app/node_modules/caniuse-lite/data/features/eot.js +1 -1
  451. package/app/node_modules/caniuse-lite/data/features/es5.js +1 -1
  452. package/app/node_modules/caniuse-lite/data/features/es6-class.js +1 -1
  453. package/app/node_modules/caniuse-lite/data/features/es6-generators.js +1 -1
  454. package/app/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +1 -1
  455. package/app/node_modules/caniuse-lite/data/features/es6-module.js +1 -1
  456. package/app/node_modules/caniuse-lite/data/features/es6-number.js +1 -1
  457. package/app/node_modules/caniuse-lite/data/features/es6-string-includes.js +1 -1
  458. package/app/node_modules/caniuse-lite/data/features/es6.js +1 -1
  459. package/app/node_modules/caniuse-lite/data/features/eventsource.js +1 -1
  460. package/app/node_modules/caniuse-lite/data/features/extended-system-fonts.js +1 -1
  461. package/app/node_modules/caniuse-lite/data/features/feature-policy.js +1 -1
  462. package/app/node_modules/caniuse-lite/data/features/fetch.js +1 -1
  463. package/app/node_modules/caniuse-lite/data/features/fieldset-disabled.js +1 -1
  464. package/app/node_modules/caniuse-lite/data/features/fileapi.js +1 -1
  465. package/app/node_modules/caniuse-lite/data/features/filereader.js +1 -1
  466. package/app/node_modules/caniuse-lite/data/features/filereadersync.js +1 -1
  467. package/app/node_modules/caniuse-lite/data/features/filesystem.js +1 -1
  468. package/app/node_modules/caniuse-lite/data/features/flac.js +1 -1
  469. package/app/node_modules/caniuse-lite/data/features/flexbox-gap.js +1 -1
  470. package/app/node_modules/caniuse-lite/data/features/flexbox.js +1 -1
  471. package/app/node_modules/caniuse-lite/data/features/flow-root.js +1 -1
  472. package/app/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +1 -1
  473. package/app/node_modules/caniuse-lite/data/features/font-family-system-ui.js +1 -1
  474. package/app/node_modules/caniuse-lite/data/features/font-feature.js +1 -1
  475. package/app/node_modules/caniuse-lite/data/features/font-kerning.js +1 -1
  476. package/app/node_modules/caniuse-lite/data/features/font-loading.js +1 -1
  477. package/app/node_modules/caniuse-lite/data/features/font-size-adjust.js +1 -1
  478. package/app/node_modules/caniuse-lite/data/features/font-smooth.js +1 -1
  479. package/app/node_modules/caniuse-lite/data/features/font-unicode-range.js +1 -1
  480. package/app/node_modules/caniuse-lite/data/features/font-variant-alternates.js +1 -1
  481. package/app/node_modules/caniuse-lite/data/features/font-variant-numeric.js +1 -1
  482. package/app/node_modules/caniuse-lite/data/features/fontface.js +1 -1
  483. package/app/node_modules/caniuse-lite/data/features/form-attribute.js +1 -1
  484. package/app/node_modules/caniuse-lite/data/features/form-submit-attributes.js +1 -1
  485. package/app/node_modules/caniuse-lite/data/features/form-validation.js +1 -1
  486. package/app/node_modules/caniuse-lite/data/features/forms.js +1 -1
  487. package/app/node_modules/caniuse-lite/data/features/fullscreen.js +1 -1
  488. package/app/node_modules/caniuse-lite/data/features/gamepad.js +1 -1
  489. package/app/node_modules/caniuse-lite/data/features/geolocation.js +1 -1
  490. package/app/node_modules/caniuse-lite/data/features/getboundingclientrect.js +1 -1
  491. package/app/node_modules/caniuse-lite/data/features/getcomputedstyle.js +1 -1
  492. package/app/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +1 -1
  493. package/app/node_modules/caniuse-lite/data/features/getrandomvalues.js +1 -1
  494. package/app/node_modules/caniuse-lite/data/features/gyroscope.js +1 -1
  495. package/app/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +1 -1
  496. package/app/node_modules/caniuse-lite/data/features/hashchange.js +1 -1
  497. package/app/node_modules/caniuse-lite/data/features/heif.js +1 -1
  498. package/app/node_modules/caniuse-lite/data/features/hevc.js +1 -1
  499. package/app/node_modules/caniuse-lite/data/features/hidden.js +1 -1
  500. package/app/node_modules/caniuse-lite/data/features/high-resolution-time.js +1 -1
  501. package/app/node_modules/caniuse-lite/data/features/history.js +1 -1
  502. package/app/node_modules/caniuse-lite/data/features/html-media-capture.js +1 -1
  503. package/app/node_modules/caniuse-lite/data/features/html5semantic.js +1 -1
  504. package/app/node_modules/caniuse-lite/data/features/http-live-streaming.js +1 -1
  505. package/app/node_modules/caniuse-lite/data/features/http2.js +1 -1
  506. package/app/node_modules/caniuse-lite/data/features/http3.js +1 -1
  507. package/app/node_modules/caniuse-lite/data/features/iframe-sandbox.js +1 -1
  508. package/app/node_modules/caniuse-lite/data/features/iframe-seamless.js +1 -1
  509. package/app/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +1 -1
  510. package/app/node_modules/caniuse-lite/data/features/imagecapture.js +1 -1
  511. package/app/node_modules/caniuse-lite/data/features/import-maps.js +1 -1
  512. package/app/node_modules/caniuse-lite/data/features/imports.js +1 -1
  513. package/app/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +1 -1
  514. package/app/node_modules/caniuse-lite/data/features/indexeddb.js +1 -1
  515. package/app/node_modules/caniuse-lite/data/features/indexeddb2.js +1 -1
  516. package/app/node_modules/caniuse-lite/data/features/inline-block.js +1 -1
  517. package/app/node_modules/caniuse-lite/data/features/innertext.js +1 -1
  518. package/app/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +1 -1
  519. package/app/node_modules/caniuse-lite/data/features/input-color.js +1 -1
  520. package/app/node_modules/caniuse-lite/data/features/input-datetime.js +1 -1
  521. package/app/node_modules/caniuse-lite/data/features/input-email-tel-url.js +1 -1
  522. package/app/node_modules/caniuse-lite/data/features/input-event.js +1 -1
  523. package/app/node_modules/caniuse-lite/data/features/input-file-accept.js +1 -1
  524. package/app/node_modules/caniuse-lite/data/features/input-file-directory.js +1 -1
  525. package/app/node_modules/caniuse-lite/data/features/input-file-multiple.js +1 -1
  526. package/app/node_modules/caniuse-lite/data/features/input-inputmode.js +1 -1
  527. package/app/node_modules/caniuse-lite/data/features/input-minlength.js +1 -1
  528. package/app/node_modules/caniuse-lite/data/features/input-number.js +1 -1
  529. package/app/node_modules/caniuse-lite/data/features/input-pattern.js +1 -1
  530. package/app/node_modules/caniuse-lite/data/features/input-placeholder.js +1 -1
  531. package/app/node_modules/caniuse-lite/data/features/input-range.js +1 -1
  532. package/app/node_modules/caniuse-lite/data/features/input-search.js +1 -1
  533. package/app/node_modules/caniuse-lite/data/features/input-selection.js +1 -1
  534. package/app/node_modules/caniuse-lite/data/features/insert-adjacent.js +1 -1
  535. package/app/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +1 -1
  536. package/app/node_modules/caniuse-lite/data/features/internationalization.js +1 -1
  537. package/app/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +1 -1
  538. package/app/node_modules/caniuse-lite/data/features/intersectionobserver.js +1 -1
  539. package/app/node_modules/caniuse-lite/data/features/intl-pluralrules.js +1 -1
  540. package/app/node_modules/caniuse-lite/data/features/intrinsic-width.js +1 -1
  541. package/app/node_modules/caniuse-lite/data/features/jpeg2000.js +1 -1
  542. package/app/node_modules/caniuse-lite/data/features/jpegxl.js +1 -1
  543. package/app/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +1 -1
  544. package/app/node_modules/caniuse-lite/data/features/json.js +1 -1
  545. package/app/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +1 -1
  546. package/app/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +1 -1
  547. package/app/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +1 -1
  548. package/app/node_modules/caniuse-lite/data/features/keyboardevent-code.js +1 -1
  549. package/app/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +1 -1
  550. package/app/node_modules/caniuse-lite/data/features/keyboardevent-key.js +1 -1
  551. package/app/node_modules/caniuse-lite/data/features/keyboardevent-location.js +1 -1
  552. package/app/node_modules/caniuse-lite/data/features/keyboardevent-which.js +1 -1
  553. package/app/node_modules/caniuse-lite/data/features/let.js +1 -1
  554. package/app/node_modules/caniuse-lite/data/features/link-icon-png.js +1 -1
  555. package/app/node_modules/caniuse-lite/data/features/link-icon-svg.js +1 -1
  556. package/app/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +1 -1
  557. package/app/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +1 -1
  558. package/app/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +1 -1
  559. package/app/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +1 -1
  560. package/app/node_modules/caniuse-lite/data/features/link-rel-preload.js +1 -1
  561. package/app/node_modules/caniuse-lite/data/features/link-rel-prerender.js +1 -1
  562. package/app/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +1 -1
  563. package/app/node_modules/caniuse-lite/data/features/loading-lazy-media.js +1 -1
  564. package/app/node_modules/caniuse-lite/data/features/localecompare.js +1 -1
  565. package/app/node_modules/caniuse-lite/data/features/matchesselector.js +1 -1
  566. package/app/node_modules/caniuse-lite/data/features/matchmedia.js +1 -1
  567. package/app/node_modules/caniuse-lite/data/features/mathml.js +1 -1
  568. package/app/node_modules/caniuse-lite/data/features/maxlength.js +1 -1
  569. package/app/node_modules/caniuse-lite/data/features/mdn-css-backdrop-pseudo-element.js +1 -1
  570. package/app/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override.js +1 -1
  571. package/app/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-isolate.js +1 -1
  572. package/app/node_modules/caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext.js +1 -1
  573. package/app/node_modules/caniuse-lite/data/features/mdn-text-decoration-color.js +1 -1
  574. package/app/node_modules/caniuse-lite/data/features/mdn-text-decoration-line.js +1 -1
  575. package/app/node_modules/caniuse-lite/data/features/mdn-text-decoration-shorthand.js +1 -1
  576. package/app/node_modules/caniuse-lite/data/features/mdn-text-decoration-style.js +1 -1
  577. package/app/node_modules/caniuse-lite/data/features/media-fragments.js +1 -1
  578. package/app/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +1 -1
  579. package/app/node_modules/caniuse-lite/data/features/mediarecorder.js +1 -1
  580. package/app/node_modules/caniuse-lite/data/features/mediasource.js +1 -1
  581. package/app/node_modules/caniuse-lite/data/features/menu.js +1 -1
  582. package/app/node_modules/caniuse-lite/data/features/meta-theme-color.js +1 -1
  583. package/app/node_modules/caniuse-lite/data/features/meter.js +1 -1
  584. package/app/node_modules/caniuse-lite/data/features/midi.js +1 -1
  585. package/app/node_modules/caniuse-lite/data/features/minmaxwh.js +1 -1
  586. package/app/node_modules/caniuse-lite/data/features/mp3.js +1 -1
  587. package/app/node_modules/caniuse-lite/data/features/mpeg-dash.js +1 -1
  588. package/app/node_modules/caniuse-lite/data/features/mpeg4.js +1 -1
  589. package/app/node_modules/caniuse-lite/data/features/multibackgrounds.js +1 -1
  590. package/app/node_modules/caniuse-lite/data/features/multicolumn.js +1 -1
  591. package/app/node_modules/caniuse-lite/data/features/mutation-events.js +1 -1
  592. package/app/node_modules/caniuse-lite/data/features/mutationobserver.js +1 -1
  593. package/app/node_modules/caniuse-lite/data/features/namevalue-storage.js +1 -1
  594. package/app/node_modules/caniuse-lite/data/features/native-filesystem-api.js +1 -1
  595. package/app/node_modules/caniuse-lite/data/features/nav-timing.js +1 -1
  596. package/app/node_modules/caniuse-lite/data/features/netinfo.js +1 -1
  597. package/app/node_modules/caniuse-lite/data/features/notifications.js +1 -1
  598. package/app/node_modules/caniuse-lite/data/features/object-entries.js +1 -1
  599. package/app/node_modules/caniuse-lite/data/features/object-fit.js +1 -1
  600. package/app/node_modules/caniuse-lite/data/features/object-observe.js +1 -1
  601. package/app/node_modules/caniuse-lite/data/features/object-values.js +1 -1
  602. package/app/node_modules/caniuse-lite/data/features/objectrtc.js +1 -1
  603. package/app/node_modules/caniuse-lite/data/features/offline-apps.js +1 -1
  604. package/app/node_modules/caniuse-lite/data/features/offscreencanvas.js +1 -1
  605. package/app/node_modules/caniuse-lite/data/features/ogg-vorbis.js +1 -1
  606. package/app/node_modules/caniuse-lite/data/features/ogv.js +1 -1
  607. package/app/node_modules/caniuse-lite/data/features/ol-reversed.js +1 -1
  608. package/app/node_modules/caniuse-lite/data/features/once-event-listener.js +1 -1
  609. package/app/node_modules/caniuse-lite/data/features/online-status.js +1 -1
  610. package/app/node_modules/caniuse-lite/data/features/opus.js +1 -1
  611. package/app/node_modules/caniuse-lite/data/features/orientation-sensor.js +1 -1
  612. package/app/node_modules/caniuse-lite/data/features/outline.js +1 -1
  613. package/app/node_modules/caniuse-lite/data/features/pad-start-end.js +1 -1
  614. package/app/node_modules/caniuse-lite/data/features/page-transition-events.js +1 -1
  615. package/app/node_modules/caniuse-lite/data/features/pagevisibility.js +1 -1
  616. package/app/node_modules/caniuse-lite/data/features/passive-event-listener.js +1 -1
  617. package/app/node_modules/caniuse-lite/data/features/passkeys.js +1 -1
  618. package/app/node_modules/caniuse-lite/data/features/passwordrules.js +1 -1
  619. package/app/node_modules/caniuse-lite/data/features/path2d.js +1 -1
  620. package/app/node_modules/caniuse-lite/data/features/payment-request.js +1 -1
  621. package/app/node_modules/caniuse-lite/data/features/pdf-viewer.js +1 -1
  622. package/app/node_modules/caniuse-lite/data/features/permissions-api.js +1 -1
  623. package/app/node_modules/caniuse-lite/data/features/permissions-policy.js +1 -1
  624. package/app/node_modules/caniuse-lite/data/features/picture-in-picture.js +1 -1
  625. package/app/node_modules/caniuse-lite/data/features/picture.js +1 -1
  626. package/app/node_modules/caniuse-lite/data/features/ping.js +1 -1
  627. package/app/node_modules/caniuse-lite/data/features/png-alpha.js +1 -1
  628. package/app/node_modules/caniuse-lite/data/features/pointer-events.js +1 -1
  629. package/app/node_modules/caniuse-lite/data/features/pointer.js +1 -1
  630. package/app/node_modules/caniuse-lite/data/features/pointerlock.js +1 -1
  631. package/app/node_modules/caniuse-lite/data/features/portals.js +1 -1
  632. package/app/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +1 -1
  633. package/app/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +1 -1
  634. package/app/node_modules/caniuse-lite/data/features/progress.js +1 -1
  635. package/app/node_modules/caniuse-lite/data/features/promise-finally.js +1 -1
  636. package/app/node_modules/caniuse-lite/data/features/promises.js +1 -1
  637. package/app/node_modules/caniuse-lite/data/features/proxy.js +1 -1
  638. package/app/node_modules/caniuse-lite/data/features/publickeypinning.js +1 -1
  639. package/app/node_modules/caniuse-lite/data/features/push-api.js +1 -1
  640. package/app/node_modules/caniuse-lite/data/features/queryselector.js +1 -1
  641. package/app/node_modules/caniuse-lite/data/features/readonly-attr.js +1 -1
  642. package/app/node_modules/caniuse-lite/data/features/referrer-policy.js +1 -1
  643. package/app/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +1 -1
  644. package/app/node_modules/caniuse-lite/data/features/rel-noopener.js +1 -1
  645. package/app/node_modules/caniuse-lite/data/features/rel-noreferrer.js +1 -1
  646. package/app/node_modules/caniuse-lite/data/features/rellist.js +1 -1
  647. package/app/node_modules/caniuse-lite/data/features/rem.js +1 -1
  648. package/app/node_modules/caniuse-lite/data/features/requestanimationframe.js +1 -1
  649. package/app/node_modules/caniuse-lite/data/features/requestidlecallback.js +1 -1
  650. package/app/node_modules/caniuse-lite/data/features/resizeobserver.js +1 -1
  651. package/app/node_modules/caniuse-lite/data/features/resource-timing.js +1 -1
  652. package/app/node_modules/caniuse-lite/data/features/rest-parameters.js +1 -1
  653. package/app/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +1 -1
  654. package/app/node_modules/caniuse-lite/data/features/ruby.js +1 -1
  655. package/app/node_modules/caniuse-lite/data/features/run-in.js +1 -1
  656. package/app/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +1 -1
  657. package/app/node_modules/caniuse-lite/data/features/screen-orientation.js +1 -1
  658. package/app/node_modules/caniuse-lite/data/features/script-async.js +1 -1
  659. package/app/node_modules/caniuse-lite/data/features/script-defer.js +1 -1
  660. package/app/node_modules/caniuse-lite/data/features/scrollintoview.js +1 -1
  661. package/app/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +1 -1
  662. package/app/node_modules/caniuse-lite/data/features/sdch.js +1 -1
  663. package/app/node_modules/caniuse-lite/data/features/selection-api.js +1 -1
  664. package/app/node_modules/caniuse-lite/data/features/server-timing.js +1 -1
  665. package/app/node_modules/caniuse-lite/data/features/serviceworkers.js +1 -1
  666. package/app/node_modules/caniuse-lite/data/features/shadowdom.js +1 -1
  667. package/app/node_modules/caniuse-lite/data/features/shadowdomv1.js +1 -1
  668. package/app/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +1 -1
  669. package/app/node_modules/caniuse-lite/data/features/sharedworkers.js +1 -1
  670. package/app/node_modules/caniuse-lite/data/features/sni.js +1 -1
  671. package/app/node_modules/caniuse-lite/data/features/spdy.js +1 -1
  672. package/app/node_modules/caniuse-lite/data/features/speech-recognition.js +1 -1
  673. package/app/node_modules/caniuse-lite/data/features/speech-synthesis.js +1 -1
  674. package/app/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +1 -1
  675. package/app/node_modules/caniuse-lite/data/features/sql-storage.js +1 -1
  676. package/app/node_modules/caniuse-lite/data/features/srcset.js +1 -1
  677. package/app/node_modules/caniuse-lite/data/features/stream.js +1 -1
  678. package/app/node_modules/caniuse-lite/data/features/streams.js +1 -1
  679. package/app/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +1 -1
  680. package/app/node_modules/caniuse-lite/data/features/style-scoped.js +1 -1
  681. package/app/node_modules/caniuse-lite/data/features/subresource-bundling.js +1 -1
  682. package/app/node_modules/caniuse-lite/data/features/subresource-integrity.js +1 -1
  683. package/app/node_modules/caniuse-lite/data/features/svg-css.js +1 -1
  684. package/app/node_modules/caniuse-lite/data/features/svg-filters.js +1 -1
  685. package/app/node_modules/caniuse-lite/data/features/svg-fonts.js +1 -1
  686. package/app/node_modules/caniuse-lite/data/features/svg-fragment.js +1 -1
  687. package/app/node_modules/caniuse-lite/data/features/svg-html.js +1 -1
  688. package/app/node_modules/caniuse-lite/data/features/svg-html5.js +1 -1
  689. package/app/node_modules/caniuse-lite/data/features/svg-img.js +1 -1
  690. package/app/node_modules/caniuse-lite/data/features/svg-smil.js +1 -1
  691. package/app/node_modules/caniuse-lite/data/features/svg.js +1 -1
  692. package/app/node_modules/caniuse-lite/data/features/sxg.js +1 -1
  693. package/app/node_modules/caniuse-lite/data/features/tabindex-attr.js +1 -1
  694. package/app/node_modules/caniuse-lite/data/features/template-literals.js +1 -1
  695. package/app/node_modules/caniuse-lite/data/features/template.js +1 -1
  696. package/app/node_modules/caniuse-lite/data/features/temporal.js +1 -1
  697. package/app/node_modules/caniuse-lite/data/features/testfeat.js +1 -1
  698. package/app/node_modules/caniuse-lite/data/features/text-decoration.js +1 -1
  699. package/app/node_modules/caniuse-lite/data/features/text-emphasis.js +1 -1
  700. package/app/node_modules/caniuse-lite/data/features/text-overflow.js +1 -1
  701. package/app/node_modules/caniuse-lite/data/features/text-size-adjust.js +1 -1
  702. package/app/node_modules/caniuse-lite/data/features/text-stroke.js +1 -1
  703. package/app/node_modules/caniuse-lite/data/features/textcontent.js +1 -1
  704. package/app/node_modules/caniuse-lite/data/features/textencoder.js +1 -1
  705. package/app/node_modules/caniuse-lite/data/features/tls1-1.js +1 -1
  706. package/app/node_modules/caniuse-lite/data/features/tls1-2.js +1 -1
  707. package/app/node_modules/caniuse-lite/data/features/tls1-3.js +1 -1
  708. package/app/node_modules/caniuse-lite/data/features/touch.js +1 -1
  709. package/app/node_modules/caniuse-lite/data/features/transforms2d.js +1 -1
  710. package/app/node_modules/caniuse-lite/data/features/transforms3d.js +1 -1
  711. package/app/node_modules/caniuse-lite/data/features/trusted-types.js +1 -1
  712. package/app/node_modules/caniuse-lite/data/features/ttf.js +1 -1
  713. package/app/node_modules/caniuse-lite/data/features/typedarrays.js +1 -1
  714. package/app/node_modules/caniuse-lite/data/features/u2f.js +1 -1
  715. package/app/node_modules/caniuse-lite/data/features/unhandledrejection.js +1 -1
  716. package/app/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +1 -1
  717. package/app/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +1 -1
  718. package/app/node_modules/caniuse-lite/data/features/url.js +1 -1
  719. package/app/node_modules/caniuse-lite/data/features/urlsearchparams.js +1 -1
  720. package/app/node_modules/caniuse-lite/data/features/use-strict.js +1 -1
  721. package/app/node_modules/caniuse-lite/data/features/user-select-none.js +1 -1
  722. package/app/node_modules/caniuse-lite/data/features/user-timing.js +1 -1
  723. package/app/node_modules/caniuse-lite/data/features/variable-fonts.js +1 -1
  724. package/app/node_modules/caniuse-lite/data/features/vector-effect.js +1 -1
  725. package/app/node_modules/caniuse-lite/data/features/vibration.js +1 -1
  726. package/app/node_modules/caniuse-lite/data/features/video.js +1 -1
  727. package/app/node_modules/caniuse-lite/data/features/videotracks.js +1 -1
  728. package/app/node_modules/caniuse-lite/data/features/view-transitions.js +1 -1
  729. package/app/node_modules/caniuse-lite/data/features/viewport-unit-variants.js +1 -1
  730. package/app/node_modules/caniuse-lite/data/features/viewport-units.js +1 -1
  731. package/app/node_modules/caniuse-lite/data/features/wai-aria.js +1 -1
  732. package/app/node_modules/caniuse-lite/data/features/wake-lock.js +1 -1
  733. package/app/node_modules/caniuse-lite/data/features/wasm-bigint.js +1 -1
  734. package/app/node_modules/caniuse-lite/data/features/wasm-bulk-memory.js +1 -1
  735. package/app/node_modules/caniuse-lite/data/features/wasm-extended-const.js +1 -1
  736. package/app/node_modules/caniuse-lite/data/features/wasm-gc.js +1 -1
  737. package/app/node_modules/caniuse-lite/data/features/wasm-multi-memory.js +1 -1
  738. package/app/node_modules/caniuse-lite/data/features/wasm-multi-value.js +1 -1
  739. package/app/node_modules/caniuse-lite/data/features/wasm-mutable-globals.js +1 -1
  740. package/app/node_modules/caniuse-lite/data/features/wasm-nontrapping-fptoint.js +1 -1
  741. package/app/node_modules/caniuse-lite/data/features/wasm-reference-types.js +1 -1
  742. package/app/node_modules/caniuse-lite/data/features/wasm-relaxed-simd.js +1 -1
  743. package/app/node_modules/caniuse-lite/data/features/wasm-signext.js +1 -1
  744. package/app/node_modules/caniuse-lite/data/features/wasm-simd.js +1 -1
  745. package/app/node_modules/caniuse-lite/data/features/wasm-tail-calls.js +1 -1
  746. package/app/node_modules/caniuse-lite/data/features/wasm-threads.js +1 -1
  747. package/app/node_modules/caniuse-lite/data/features/wasm.js +1 -1
  748. package/app/node_modules/caniuse-lite/data/features/wav.js +1 -1
  749. package/app/node_modules/caniuse-lite/data/features/wbr-element.js +1 -1
  750. package/app/node_modules/caniuse-lite/data/features/web-animation.js +1 -1
  751. package/app/node_modules/caniuse-lite/data/features/web-app-manifest.js +1 -1
  752. package/app/node_modules/caniuse-lite/data/features/web-bluetooth.js +1 -1
  753. package/app/node_modules/caniuse-lite/data/features/web-serial.js +1 -1
  754. package/app/node_modules/caniuse-lite/data/features/web-share.js +1 -1
  755. package/app/node_modules/caniuse-lite/data/features/webauthn.js +1 -1
  756. package/app/node_modules/caniuse-lite/data/features/webcodecs.js +1 -1
  757. package/app/node_modules/caniuse-lite/data/features/webgl.js +1 -1
  758. package/app/node_modules/caniuse-lite/data/features/webgl2.js +1 -1
  759. package/app/node_modules/caniuse-lite/data/features/webgpu.js +1 -1
  760. package/app/node_modules/caniuse-lite/data/features/webhid.js +1 -1
  761. package/app/node_modules/caniuse-lite/data/features/webkit-user-drag.js +1 -1
  762. package/app/node_modules/caniuse-lite/data/features/webm.js +1 -1
  763. package/app/node_modules/caniuse-lite/data/features/webnfc.js +1 -1
  764. package/app/node_modules/caniuse-lite/data/features/webp.js +1 -1
  765. package/app/node_modules/caniuse-lite/data/features/websockets.js +1 -1
  766. package/app/node_modules/caniuse-lite/data/features/webtransport.js +1 -1
  767. package/app/node_modules/caniuse-lite/data/features/webusb.js +1 -1
  768. package/app/node_modules/caniuse-lite/data/features/webvr.js +1 -1
  769. package/app/node_modules/caniuse-lite/data/features/webvtt.js +1 -1
  770. package/app/node_modules/caniuse-lite/data/features/webworkers.js +1 -1
  771. package/app/node_modules/caniuse-lite/data/features/webxr.js +1 -1
  772. package/app/node_modules/caniuse-lite/data/features/will-change.js +1 -1
  773. package/app/node_modules/caniuse-lite/data/features/woff.js +1 -1
  774. package/app/node_modules/caniuse-lite/data/features/woff2.js +1 -1
  775. package/app/node_modules/caniuse-lite/data/features/word-break.js +1 -1
  776. package/app/node_modules/caniuse-lite/data/features/wordwrap.js +1 -1
  777. package/app/node_modules/caniuse-lite/data/features/x-doc-messaging.js +1 -1
  778. package/app/node_modules/caniuse-lite/data/features/x-frame-options.js +1 -1
  779. package/app/node_modules/caniuse-lite/data/features/xhr2.js +1 -1
  780. package/app/node_modules/caniuse-lite/data/features/xml-serializer.js +1 -1
  781. package/app/node_modules/caniuse-lite/data/features/zstd.js +1 -1
  782. package/app/node_modules/caniuse-lite/data/versionGroups.js +1 -1
  783. package/app/node_modules/caniuse-lite/package.json +1 -1
  784. package/app/package.json +1 -1
  785. package/package.json +1 -1
  786. package/app/.next-cli-build/static/chunks/9057-7d59411792d52341.js +0 -1
  787. /package/app/.next-cli-build/static/{bbVVRdeQBpx9JWmvf1SHZ → FPPZdg4gAT-mc8D-yGfs_}/_buildManifest.js +0 -0
  788. /package/app/.next-cli-build/static/{bbVVRdeQBpx9JWmvf1SHZ → FPPZdg4gAT-mc8D-yGfs_}/_ssgManifest.js +0 -0
@@ -1 +1 @@
1
- "use strict";exports.id=7828,exports.ids=[7828],exports.modules={38160:(a,b,c)=>{c.d(b,{Ou:()=>i,eG:()=>h});var d=c(75924);let e=new Map,f=new Map,g=null;async function h(a,b,c="gemini-cli"){if(!a||!b)return null;let d=e.get(a);if(d&&Date.now()-d.fetchedAt<36e5)return d.projectId;if(f.has(a))return f.get(a).promise;let g=new AbortController,i=(async()=>{try{let d=await j(b,g.signal,c);if(d)return e.set(a,{projectId:d,fetchedAt:Date.now()}),d;return console.warn("[ProjectId] could not fetch projectId for connection",a.slice(0,8)),null}catch(a){return console.warn(`[ProjectId] Error fetching project ID: ${a.message}`),null}finally{f.delete(a)}})();return f.set(a,{promise:i,controller:g,startedAt:Date.now()}),i}function i(a){e.delete(a)}async function j(a,b,c){let e=d.nZ[c]||d.nZ["gemini-cli"],f="antigravity"===c?d.j5:d.Ic,g=await fetch(e.loadCodeAssist,{method:"POST",headers:{...f,Authorization:`Bearer ${a}`},body:JSON.stringify({metadata:d.zv}),signal:b});if(!g.ok){let a=await g.text().catch(()=>"");throw Error(`loadCodeAssist failed: HTTP ${g.status} ${a.slice(0,200)}`)}let h=await g.json(),i=function(a){if(!a)return null;if("string"==typeof a.cloudaicompanionProject){let b=a.cloudaicompanionProject.trim();if(b)return b}if(a.cloudaicompanionProject&&"object"==typeof a.cloudaicompanionProject){let b=a.cloudaicompanionProject.id;if("string"==typeof b&&b.trim())return b.trim()}return null}(h);if(i)return i;let j="legacy-tier";if(Array.isArray(h.allowedTiers)){for(let a of h.allowedTiers)if(a&&"object"==typeof a&&!0===a.isDefault&&a.id&&"string"==typeof a.id&&a.id.trim()){j=a.id.trim();break}}return k(a,j,b,e,c)}async function k(a,b,c,e,f){console.log(`[ProjectId] Onboarding user with tier: ${b}`);let g={tierId:b,metadata:d.zv},h="antigravity"===f?d.j5:d.Ic,i=Number(process.env.ONBOARD_MAX_ATTEMPTS)||2,j=Number(process.env.ONBOARD_RETRY_DELAY_MS)||12e3;for(let b=1;b<=i&&!c?.aborted;b++){let d=new AbortController,f=setTimeout(()=>d.abort(),3e4),k=()=>d.abort();c?.addEventListener("abort",k);try{let c=await fetch(e.onboardUser,{method:"POST",headers:{...h,Authorization:`Bearer ${a}`},body:JSON.stringify(g),signal:d.signal});if(clearTimeout(f),!c.ok){let a=await c.text().catch(()=>"");throw Error(`onboardUser HTTP ${c.status}: ${a.slice(0,200)}`)}let k=await c.json();if(!0===k.done){let a=function(a){if(!a?.response)return null;let b=a.response.cloudaicompanionProject;if("string"==typeof b){let a=b.trim();if(a)return a}if(b&&"object"==typeof b){let a=b.id;if("string"==typeof a&&a.trim())return a.trim()}return null}(k);if(a)return console.log(`[ProjectId] Successfully onboarded, project ID: ${a}`),a;throw Error("onboardUser done but no project_id in response")}let l=Math.floor(5e3*Math.random());console.log(`[ProjectId] Onboard attempt ${b}/${i}: not done yet, waiting...`),await new Promise(a=>setTimeout(a,j+l))}catch(d){if(clearTimeout(f),"AbortError"===d.name){if(console.warn(`[ProjectId] onboardUser attempt ${b} aborted (timeout or connection removed)`),c?.aborted)return null;continue}if(b===i)return console.warn(`[ProjectId] onboardUser failed after ${i} attempts: ${d.message}`),null;let a=Math.floor(5e3*Math.random());console.warn(`[ProjectId] onboardUser attempt ${b} failed: ${d.message}, retrying...`),await new Promise(b=>setTimeout(b,j+a))}finally{clearTimeout(f),c?.removeEventListener("abort",k)}}return null}g=setInterval(()=>{try{let a=Date.now();for(let[b,c]of e)(!c||a-c.fetchedAt>=36e5)&&e.delete(b);for(let[b,c]of f){if(!c||"number"!=typeof c.startedAt){f.delete(b);continue}if(a-c.startedAt>12e4){try{c.controller.abort()}catch(a){}f.delete(b)}}}catch(a){console.warn("[ProjectId] cleanup sweep error:",a?.message??a)}},6e5),g?.unref?.()},67828:(a,b,c)=>{c.d(b,{I9:()=>j,Wm:()=>k,checkAndRefreshToken:()=>o,vN:()=>n});var d=c(7803),e=c(89718),f=c(38160),g=c(8521),h=c(93943);let i=g.oD,j=(a,b,c)=>(0,g.I9)(a,b,c,d),k=a=>(0,g.Wm)(a,d);function l(a){return new Date(Date.now()+1e3*a).toISOString()}function m(a){if(!a)return null;let b=new Date(a);return Number.isFinite(b.getTime())?b.toISOString():null}async function n(a,b){try{let c={};if(b.accessToken&&(c.accessToken=b.accessToken),b.refreshToken&&(c.refreshToken=b.refreshToken),b.apiKey&&(c.apiKey=b.apiKey),b.idToken&&(c.idToken=b.idToken),b.lastRefreshAt&&(c.lastRefreshAt=b.lastRefreshAt),b.expiresAt&&(c.expiresAt=b.expiresAt),b.expiresIn)c.expiresAt=l(b.expiresIn),c.expiresIn=b.expiresIn;else if(b.expiresAt){let a=m(b.expiresAt);a&&(c.expiresAt=a,c.expiresIn=Math.max(1,Math.floor((new Date(a).getTime()-Date.now())/1e3)))}b.providerSpecificData&&(c.providerSpecificData={...b.existingProviderSpecificData||{},...b.providerSpecificData}),(b.copilotToken||b.copilotTokenExpiresAt)&&(c.providerSpecificData={...c.providerSpecificData||b.existingProviderSpecificData||{},...b.copilotToken?{copilotToken:b.copilotToken}:{},...b.copilotTokenExpiresAt?{copilotTokenExpiresAt:b.copilotTokenExpiresAt}:{}}),b.projectId&&(c.projectId=b.projectId);let f=await (0,e.updateProviderConnection)(a,c);return d.info("TOKEN_REFRESH","Credentials updated in localDb",{connectionId:a,success:!!f}),!!f}catch(b){return d.error("TOKEN_REFRESH","Error updating credentials in localDb",{connectionId:a,error:b.message}),!1}}async function o(a,b,c={}){let j={...b};if(!j.connectionId&&j.id&&(j.connectionId=j.id),j.connectionId){let a=await (0,e.Mc)(j.connectionId).catch(()=>null),b=Date.parse(a?.lastRefreshAt||""),c=Date.parse(j.lastRefreshAt||"");Number.isFinite(b)&&(!Number.isFinite(c)||b>c)&&a.refreshToken&&a.refreshToken!==j.refreshToken&&(j={...j,refreshToken:a.refreshToken,accessToken:a.accessToken||j.accessToken,expiresAt:a.expiresAt||a.tokenExpiresAt||j.expiresAt,lastRefreshAt:a.lastRefreshAt||j.lastRefreshAt})}if(c?.force===!0||(0,h.fp)(a,j)){let b=j.expiresAt?new Date(j.expiresAt).getTime():null,c=b?b-Date.now():null,e=(0,g.Og)(a);d.info("TOKEN_REFRESH","Refreshing provider credentials proactively",{provider:a,expiresIn:null===c?null:Math.round(c/1e3),refreshLeadMs:e,lastRefreshAt:j.lastRefreshAt||null});let i=await (0,h.Vq)(a,j,d);if(i?.accessToken||i?.apiKey||i?.copilotToken){let b={...i,existingProviderSpecificData:j.providerSpecificData};await n(j.connectionId,b),function(a,b,c){("antigravity"===a||"gemini-cli"===a)&&b&&c&&((0,f.Ou)(b),"true"===process.env.EAGER_PROJECT_ID_REFRESH&&(0,f.eG)(b,c,a).then(a=>{a&&n(b,{projectId:a}).catch(a=>{d.debug("TOKEN_REFRESH","Failed to persist refreshed projectId",{connectionId:b,error:a?.message??a})})}).catch(a=>{d.debug("TOKEN_REFRESH","Failed to fetch projectId after token refresh",{connectionId:b,error:a?.message??a})}))}(a,(j={...j,...i,expiresAt:i.expiresIn?l(i.expiresIn):m(i.expiresAt)||i.expiresAt||j.expiresAt,providerSpecificData:i.providerSpecificData?{...j.providerSpecificData,...i.providerSpecificData}:j.providerSpecificData}).connectionId,j.accessToken)}}if("github"===a){let b=j.providerSpecificData?.copilotToken,c=(j.providerSpecificData?.copilotTokenExpiresAt?1e3*j.providerSpecificData.copilotTokenExpiresAt:0)-Date.now();if(!b||c<i){let e;d.info("TOKEN_REFRESH","Copilot token expiring soon or missing, refreshing proactively",{provider:a,expiresIn:b?Math.round(c/1e3):"missing"});let f=await (e=j.accessToken,(0,g.jR)(e,d));if(f){let a={...j.providerSpecificData,copilotToken:f.token,copilotTokenExpiresAt:f.expiresAt};await n(j.connectionId,{providerSpecificData:a}),j.providerSpecificData=a,j.copilotToken=f.token}}}return j}}};
1
+ "use strict";exports.id=7828,exports.ids=[7828],exports.modules={38160:(a,b,c)=>{c.d(b,{Ou:()=>i,eG:()=>h});var d=c(75924);let e=new Map,f=new Map,g=null;async function h(a,b,c="gemini-cli"){if(!a||!b)return null;let d=e.get(a);if(d&&Date.now()-d.fetchedAt<36e5)return d.projectId;if(f.has(a))return f.get(a).promise;let g=new AbortController,i=(async()=>{try{let d=await j(b,g.signal,c);if(d)return e.set(a,{projectId:d,fetchedAt:Date.now()}),d;return console.warn("[ProjectId] could not fetch projectId for connection",a.slice(0,8)),null}catch(a){return console.warn(`[ProjectId] Error fetching project ID: ${a.message}`),null}finally{f.delete(a)}})();return f.set(a,{promise:i,controller:g,startedAt:Date.now()}),i}function i(a){e.delete(a)}async function j(a,b,c){let e=d.nZ[c]||d.nZ["gemini-cli"],f="antigravity"===c?d.j5:d.Ic,g=await fetch(e.loadCodeAssist,{method:"POST",headers:{...f,Authorization:`Bearer ${a}`},body:JSON.stringify({metadata:d.zv}),signal:b});if(!g.ok){let a=await g.text().catch(()=>"");throw Error(`loadCodeAssist failed: HTTP ${g.status} ${a.slice(0,200)}`)}let h=await g.json(),i=function(a){if(!a)return null;if("string"==typeof a.cloudaicompanionProject){let b=a.cloudaicompanionProject.trim();if(b)return b}if(a.cloudaicompanionProject&&"object"==typeof a.cloudaicompanionProject){let b=a.cloudaicompanionProject.id;if("string"==typeof b&&b.trim())return b.trim()}return null}(h);if(i)return i;let j="legacy-tier";if(Array.isArray(h.allowedTiers)){for(let a of h.allowedTiers)if(a&&"object"==typeof a&&!0===a.isDefault&&a.id&&"string"==typeof a.id&&a.id.trim()){j=a.id.trim();break}}return k(a,j,b,e,c)}async function k(a,b,c,e,f){console.log(`[ProjectId] Onboarding user with tier: ${b}`);let g={tierId:b,metadata:d.zv},h="antigravity"===f?d.j5:d.Ic,i=Number(process.env.ONBOARD_MAX_ATTEMPTS)||2,j=Number(process.env.ONBOARD_RETRY_DELAY_MS)||12e3;for(let b=1;b<=i&&!c?.aborted;b++){let d=new AbortController,f=setTimeout(()=>d.abort(),3e4),k=()=>d.abort();c?.addEventListener("abort",k);try{let c=await fetch(e.onboardUser,{method:"POST",headers:{...h,Authorization:`Bearer ${a}`},body:JSON.stringify(g),signal:d.signal});if(clearTimeout(f),!c.ok){let a=await c.text().catch(()=>"");throw Error(`onboardUser HTTP ${c.status}: ${a.slice(0,200)}`)}let k=await c.json();if(!0===k.done){let a=function(a){if(!a?.response)return null;let b=a.response.cloudaicompanionProject;if("string"==typeof b){let a=b.trim();if(a)return a}if(b&&"object"==typeof b){let a=b.id;if("string"==typeof a&&a.trim())return a.trim()}return null}(k);if(a)return console.log(`[ProjectId] Successfully onboarded, project ID: ${a}`),a;throw Error("onboardUser done but no project_id in response")}let l=Math.floor(5e3*Math.random());console.log(`[ProjectId] Onboard attempt ${b}/${i}: not done yet, waiting...`),await new Promise(a=>setTimeout(a,j+l))}catch(d){if(clearTimeout(f),"AbortError"===d.name){if(console.warn(`[ProjectId] onboardUser attempt ${b} aborted (timeout or connection removed)`),c?.aborted)return null;continue}if(b===i)return console.warn(`[ProjectId] onboardUser failed after ${i} attempts: ${d.message}`),null;let a=Math.floor(5e3*Math.random());console.warn(`[ProjectId] onboardUser attempt ${b} failed: ${d.message}, retrying...`),await new Promise(b=>setTimeout(b,j+a))}finally{clearTimeout(f),c?.removeEventListener("abort",k)}}return null}g=setInterval(()=>{try{let a=Date.now();for(let[b,c]of e)(!c||a-c.fetchedAt>=36e5)&&e.delete(b);for(let[b,c]of f){if(!c||"number"!=typeof c.startedAt){f.delete(b);continue}if(a-c.startedAt>12e4){try{c.controller.abort()}catch(a){}f.delete(b)}}}catch(a){console.warn("[ProjectId] cleanup sweep error:",a?.message??a)}},6e5),g?.unref?.()},67828:(a,b,c)=>{c.d(b,{I9:()=>j,Wm:()=>k,checkAndRefreshToken:()=>o,vN:()=>n});var d=c(7803),e=c(89718),f=c(38160),g=c(8590),h=c(93943);let i=g.oD,j=(a,b,c)=>(0,g.I9)(a,b,c,d),k=a=>(0,g.Wm)(a,d);function l(a){return new Date(Date.now()+1e3*a).toISOString()}function m(a){if(!a)return null;let b=new Date(a);return Number.isFinite(b.getTime())?b.toISOString():null}async function n(a,b){try{let c={};if(b.accessToken&&(c.accessToken=b.accessToken),b.refreshToken&&(c.refreshToken=b.refreshToken),b.apiKey&&(c.apiKey=b.apiKey),b.idToken&&(c.idToken=b.idToken),b.lastRefreshAt&&(c.lastRefreshAt=b.lastRefreshAt),b.expiresAt&&(c.expiresAt=b.expiresAt),b.expiresIn)c.expiresAt=l(b.expiresIn),c.expiresIn=b.expiresIn;else if(b.expiresAt){let a=m(b.expiresAt);a&&(c.expiresAt=a,c.expiresIn=Math.max(1,Math.floor((new Date(a).getTime()-Date.now())/1e3)))}b.providerSpecificData&&(c.providerSpecificData={...b.existingProviderSpecificData||{},...b.providerSpecificData}),(b.copilotToken||b.copilotTokenExpiresAt)&&(c.providerSpecificData={...c.providerSpecificData||b.existingProviderSpecificData||{},...b.copilotToken?{copilotToken:b.copilotToken}:{},...b.copilotTokenExpiresAt?{copilotTokenExpiresAt:b.copilotTokenExpiresAt}:{}}),b.projectId&&(c.projectId=b.projectId);let f=await (0,e.updateProviderConnection)(a,c);return d.info("TOKEN_REFRESH","Credentials updated in localDb",{connectionId:a,success:!!f}),!!f}catch(b){return d.error("TOKEN_REFRESH","Error updating credentials in localDb",{connectionId:a,error:b.message}),!1}}async function o(a,b,c={}){let j={...b};if(!j.connectionId&&j.id&&(j.connectionId=j.id),j.connectionId){let a=await (0,e.Mc)(j.connectionId).catch(()=>null),b=Date.parse(a?.lastRefreshAt||""),c=Date.parse(j.lastRefreshAt||"");Number.isFinite(b)&&(!Number.isFinite(c)||b>c)&&a.refreshToken&&a.refreshToken!==j.refreshToken&&(j={...j,refreshToken:a.refreshToken,accessToken:a.accessToken||j.accessToken,expiresAt:a.expiresAt||a.tokenExpiresAt||j.expiresAt,lastRefreshAt:a.lastRefreshAt||j.lastRefreshAt})}if(c?.force===!0||(0,h.fp)(a,j)){let b=j.expiresAt?new Date(j.expiresAt).getTime():null,c=b?b-Date.now():null,e=(0,g.Og)(a);d.info("TOKEN_REFRESH","Refreshing provider credentials proactively",{provider:a,expiresIn:null===c?null:Math.round(c/1e3),refreshLeadMs:e,lastRefreshAt:j.lastRefreshAt||null});let i=await (0,h.Vq)(a,j,d);if(i?.accessToken||i?.apiKey||i?.copilotToken){let b={...i,existingProviderSpecificData:j.providerSpecificData};await n(j.connectionId,b),function(a,b,c){("antigravity"===a||"gemini-cli"===a)&&b&&c&&((0,f.Ou)(b),"true"===process.env.EAGER_PROJECT_ID_REFRESH&&(0,f.eG)(b,c,a).then(a=>{a&&n(b,{projectId:a}).catch(a=>{d.debug("TOKEN_REFRESH","Failed to persist refreshed projectId",{connectionId:b,error:a?.message??a})})}).catch(a=>{d.debug("TOKEN_REFRESH","Failed to fetch projectId after token refresh",{connectionId:b,error:a?.message??a})}))}(a,(j={...j,...i,expiresAt:i.expiresIn?l(i.expiresIn):m(i.expiresAt)||i.expiresAt||j.expiresAt,providerSpecificData:i.providerSpecificData?{...j.providerSpecificData,...i.providerSpecificData}:j.providerSpecificData}).connectionId,j.accessToken)}}if("github"===a){let b=j.providerSpecificData?.copilotToken,c=(j.providerSpecificData?.copilotTokenExpiresAt?1e3*j.providerSpecificData.copilotTokenExpiresAt:0)-Date.now();if(!b||c<i){let e;d.info("TOKEN_REFRESH","Copilot token expiring soon or missing, refreshing proactively",{provider:a,expiresIn:b?Math.round(c/1e3):"missing"});let f=await (e=j.accessToken,(0,g.jR)(e,d));if(f){let a={...j.providerSpecificData,copilotToken:f.token,copilotTokenExpiresAt:f.expiresAt};await n(j.connectionId,{providerSpecificData:a}),j.providerSpecificData=a,j.copilotToken=f.token}}}return j}}};
@@ -1 +1 @@
1
- "use strict";exports.id=794,exports.ids=[615,794],exports.modules={19225:(a,b,c)=>{a.exports=c(44870)},40615:(a,b,c)=>{c.d(b,{AI_PROVIDERS:()=>s,js:()=>w,DI:()=>n,fg:()=>k,Pd:()=>o,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>B,wb:()=>A,br:()=>l,wG:()=>v,zt:()=>t,gb:()=>q,gC:()=>r,mq:()=>p,HQ:()=>y,QA:()=>z,rs:()=>u});var d=c(24478);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.default.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","credentialFallback","systemoneConfig","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.default.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{},...a.apiKeyOptionalWith?{apiKeyOptionalWith:a.apiKeyOptionalWith}:{},...a.credentialForm?{credentialForm:a.credentialForm}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-";function p(a){return"string"==typeof a&&a.startsWith(m)}function q(a){return"string"==typeof a&&a.startsWith(n)}function r(a){return"string"==typeof a&&a.startsWith(o)}let s={...h,...i,...j,...k,...l};function t(a){for(let b of Object.values(s))if(b.alias===a||b.id===a)return b;return null}function u(a){let b=t(a);return b?.id||a}function v(a){let b=s[a];return b?.alias||a}let w=Object.values(s).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(s).reduce((a,b)=>(a[b.id]=b.alias,a),{});let x=new Set;for(let a of d.default)for(let b of[a.id,a.alias,a.uiAlias,...a.aliases||[]])b&&x.add(b);function y(a){return x.has(a)}function z(a,b){let c=s[a];return!(!(c?.serviceKinds||["llm"]).includes(b)||c?.hiddenKinds?.includes(b))}let A=d.default.filter(a=>a.features?.usage).map(a=>a.id),B=d.default.filter(a=>a.features?.usageApikey).map(a=>a.id)},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},66581:(a,b,c)=>{c.d(b,{g:()=>F,s:()=>G});var d=c(95827),e=c(89718),f=c(38775),g=c(27811),h=c(43659),i=c(41004),j=c(8521),k=c(26070);let l=new Set(["generations"]);function m(a,b){return{Accept:"application/json",...a.headers||{},...b?{Authorization:`Bearer ${b}`}:{}}}let n=/^projects\/[^/]+\/locations\/[^/]+\/publishers\/[^/]+\/models\/[^/]+\/operations\/[^/]+$/;async function o(a,b){let c=(0,j.Sc)(a?.apiKey),d=c?.project_id||a?.projectId||a?.providerSpecificData?.projectId,e=a?.providerSpecificData?.location||"us-central1";if(!d)return{error:"Vertex video requires a project_id — use Service Account JSON or set providerSpecificData.projectId"};let f=a?.accessToken;if(c){let a=await (0,j.pb)(c,b);if(!a?.accessToken)return{error:"Vertex video: failed to mint access token from service account JSON"};f=a.accessToken}return f?{token:f,projectId:d,location:e}:{error:"Vertex video requires Service Account JSON or an OAuth access token (raw API keys are not supported)"}}let p={openrouter:{buildRequest({config:a,action:b,requestId:c,rawBody:d,contentType:e,token:f}){let g=a.baseUrl.replace(/\/$/,"");return c?{method:"GET",url:`${g}/${encodeURIComponent(c)}`,headers:m(a,f)}:l.has(b)?e&&!e.includes("application/json")?{error:"OpenRouter video requires an application/json body"}:{method:"POST",url:g,headers:{...m(a,f),"Content-Type":"application/json"},body:d}:{error:`OpenRouter video supports 'generations' only (got '${b}')`}}},vertex:{async buildRequest({config:a,action:b,requestId:c,rawBody:d,contentType:e,credentials:f,log:g}){let h;if(e&&!e.includes("application/json"))return{error:"Vertex video requires an application/json body"};let i=await o(f,g);if(i.error)return{error:i.error};let{token:j,projectId:k,location:l}=i,m=(a.baseUrl||"https://aiplatform.googleapis.com").replace(/\/$/,""),p={Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${j}`};if(c){let a=function(a){let b=String(a??"");if(!b||b.length>1024||!/^[A-Za-z0-9_-]+$/.test(b))return null;let c=Buffer.from(b,"base64url").toString("utf8");return Buffer.from(c,"utf8").toString("base64url")!==b?null:n.test(c)?c:null}(c);return a?{method:"POST",url:`${m}/v1/${a.slice(0,a.indexOf("/operations/"))}:fetchPredictOperation`,headers:p,body:JSON.stringify({operationName:a})}:{error:"Invalid Vertex video job id"}}if("generations"!==b)return{error:`Vertex video supports 'generations' only (got '${b}')`};try{h=JSON.parse("string"==typeof d?d:d.toString("utf8"))}catch{return{error:"Invalid JSON body"}}return h.model?/^[A-Za-z0-9._-]+$/.test(h.model)?h.prompt||h.image||h.image_url?{method:"POST",url:`${m}/v1/projects/${k}/locations/${l}/publishers/google/models/${h.model}:predictLongRunning`,headers:p,body:JSON.stringify(function(a){let b={prompt:a.prompt},c=a.image??a.image_url;if(c&&"object"==typeof c)b.image=c;else if("string"==typeof c){let a=c.match(/^data:([^;]+);base64,(.*)$/s);b.image=a?{bytesBase64Encoded:a[2],mimeType:a[1]}:{gcsUri:c}}a.video&&"object"==typeof a.video&&(b.video=a.video);let d={};return null!=a.n&&(d.sampleCount=Number(a.n)),null!=a.duration&&(d.durationSeconds=Number(a.duration)),a.aspect_ratio&&(d.aspectRatio=a.aspect_ratio),a.resolution&&(d.resolution=a.resolution),null!=a.seed&&(d.seed=a.seed),a.negative_prompt&&(d.negativePrompt=a.negative_prompt),a.storage_uri&&(d.storageUri=a.storage_uri),null!=a.generate_audio&&(d.generateAudio=!!a.generate_audio),{instances:[b],...Object.keys(d).length?{parameters:d}:{}}}(h))}:{error:"Vertex video requires a prompt or an image"}:{error:"Invalid Vertex video model id"}:{error:"Vertex video requires a model (e.g. vertex/veo-3.1-generate-preview)"}},transformResponse:function(a){let b;if(!a?.name)return a;let c=(b=a.name,Buffer.from(b,"utf8").toString("base64url"));if(a.error)return{id:c,request_id:c,status:"failed",error:a.error};if(!a.done)return{id:c,request_id:c,status:"pending"};let d=(a.response?.videos||a.response?.generateVideoResponse?.generatedSamples||[]).map(a=>({url:a.gcsUri||a.video?.uri||a.uri||null,b64_json:a.bytesBase64Encoded||a.video?.bytesBase64Encoded||null,mime_type:a.mimeType||a.video?.mimeType||"video/mp4"}));return{id:c,request_id:c,status:"completed",video:d[0]||null,videos:d}}}},q=Number(process.env.VIDEO_FETCH_TIMEOUT_MS||12e4),r=new Set(["generations","edits","extensions"]);function s(a){return k.B$[a]?.videoConfig||null}async function t({provider:a,rawBody:b,credentials:d,signal:e,log:f,onCredentialsRefreshed:g}){let j={};try{j=JSON.parse("string"==typeof b?b:String(b||"{}"))}catch{return(0,h.A1)(i.gx.BAD_REQUEST,`[${a}] invalid video request body`)}if(!j.prompt)return(0,h.A1)(i.gx.BAD_REQUEST,`[${a}] video request requires a prompt`);let k=[].concat(j.image??j.image_url??[]).concat(Array.isArray(j.images)?j.images:[]).concat(Array.isArray(j.image_urls)?j.image_urls:[]).filter(a=>"string"==typeof a&&a),{getExecutor:l}=await Promise.all([c.e(7774),c.e(7801),c.e(8920),c.e(24),c.e(8623),c.e(7843),c.e(2578),c.e(3225),c.e(8591),c.e(7913),c.e(4957),c.e(614),c.e(7877),c.e(2380),c.e(2327),c.e(5330),c.e(1356)]).then(c.bind(c,55330)),m=l(a);if(!m?.generateMedia)return(0,h.A1)(i.gx.BAD_REQUEST,`[${a}] has no executor video support`);try{let b=d?.apiKey,[c]=await m.generateMedia({prompt:j.prompt,kind:"video",size:j.size,model:j.model,duration:j.seconds??j.duration,resolution:j.resolution,n:1,images:k,credentials:d,signal:e,log:f}),h=`data:${c.mime||"video/mp4"};base64,${c.b64}`;return g&&d?.apiKey&&d.apiKey!==b&&await g({apiKey:d.apiKey}),{success:!0,response:new Response(JSON.stringify({id:`video-${a}-${Date.now()}`,object:"video.generation",created:Math.floor(Date.now()/1e3),model:j.model||a,status:"completed",video:{url:h,...c.width?{width:c.width}:{},...c.height?{height:c.height}:{}}}),{status:200,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(e){let b=u(e?.message||"video generation failed",d),c=e?.status&&Number.isInteger(e.status)?e.status:502;return(0,h.A1)(c,`[${a}] ${b}`)}}function u(a,b=null){if(!a)return a;let c=String(a).replace(/Bearer\s+[A-Za-z0-9._~+/=-]{8,}/gi,"Bearer [redacted]");for(let a of["accessToken","refreshToken","apiKey"]){let d=b?.[a];"string"==typeof d&&d.length>=8&&(c=c.split(d).join("[redacted]"))}return c}async function v({provider:a,action:b=null,requestId:c=null,rawBody:d=null,contentType:e=null,idempotencyKey:f=null,credentials:g,signal:l,timeoutMs:m=q,log:n,onCredentialsRefreshed:o}){let w,x;if(k.B$[a]?.videoConfig?.executorDriven===!0&&!c&&("generations"===b||"edits"===b))return t({provider:a,rawBody:d,credentials:g,signal:l,log:n,onCredentialsRefreshed:o});let y=s(a);if(!y)return(0,h.A1)(i.gx.BAD_REQUEST,`Provider '${a}' does not support video generation`);if(!c&&!r.has(b))return(0,h.A1)(i.gx.BAD_REQUEST,`Unknown video action: ${b}`);let z=p[a]||null,A=(x="function"==typeof AbortSignal?.timeout?AbortSignal.timeout(m):null,l&&x&&"function"==typeof AbortSignal.any?AbortSignal.any([l,x]):l||x||void 0),B=async()=>{let a,h,i=z?await z.buildRequest({config:y,action:b,requestId:c,rawBody:d,contentType:e,idempotencyKey:f,credentials:g,log:n,token:g?.accessToken||g?.apiKey}):{method:a=c?"GET":"POST",url:(h=y.baseUrl.replace(/\/$/,""),c?`${h}/${encodeURIComponent(c)}`:`${h}/${b}`),headers:function({token:a,contentType:b,idempotencyKey:c}){let d={Accept:"application/json"};return a&&(d.Authorization=`Bearer ${a}`),b&&(d["Content-Type"]=b),c&&(d["Idempotency-Key"]=c),d}({token:g?.accessToken||g?.apiKey,contentType:"POST"===a?e:null,idempotencyKey:"POST"===a?f:null}),body:"POST"===a?d:void 0};return i.error?{planError:i.error}:{response:await fetch(i.url,{method:i.method,headers:i.headers,body:i.body,signal:A})}},C=c?"GET":"POST";try{let b=await B();if(b.planError)return(0,h.A1)(i.gx.BAD_REQUEST,`[${a}] ${b.planError}`);w=b.response}catch(b){if(b?.name==="AbortError"||b?.name==="TimeoutError")return(0,h.A1)(i.gx.REQUEST_TIMEOUT,`[${a}] video ${C} aborted: ${b.message}`);return(0,h.A1)(i.gx.BAD_GATEWAY,u(`[${a}] video upstream fetch failed: ${b.message}`,g))}if((w.status===i.gx.UNAUTHORIZED||w.status===i.gx.FORBIDDEN)&&g?.refreshToken){let b=null;try{b=await (0,j.$B)(a,g,n)}catch(b){n?.warn?.("TOKEN",`${a} | video refresh error: ${u(b.message,g)}`)}if(b?.accessToken){n?.info?.("TOKEN",`${a.toUpperCase()} | refreshed for video ${C}`),Object.assign(g,b),o&&await o(b);try{await w.body?.cancel?.()}catch{}try{let b=await B();if(b.planError)return(0,h.A1)(i.gx.BAD_REQUEST,`[${a}] ${b.planError}`);w=b.response}catch(b){return(0,h.A1)(i.gx.BAD_GATEWAY,u(`[${a}] video retry after refresh failed: ${b.message}`,g))}}else n?.warn?.("TOKEN",`${a.toUpperCase()} | video refresh failed — account needs re-auth`)}let D=await w.text().catch(()=>"");if(!w.ok){let b=u(D||`HTTP ${w.status}`,g);return(0,h.A1)(w.status,`[${a}] ${b.slice(0,2e3)}`)}let E=D,F=w.headers.get("content-type")||"application/json";if(z?.transformResponse)try{E=JSON.stringify(z.transformResponse(JSON.parse(D))),F="application/json"}catch{}return{success:!0,response:new Response(E,{status:w.status,headers:{"Content-Type":F,"Access-Control-Allow-Origin":"*"}})}}var w=c(67828),x=c(7803);let y=new Set(["veoaifree-web"]);async function z(a,b){if(b){let a=await (0,e.Mc)(b).catch(()=>null);if(a?.provider&&s(a.provider))return a.provider}let c=new URL(a.url).searchParams.get("provider");return c&&s(c)?c:"xai"}let A=new Set([i.gx.UNAUTHORIZED,i.gx.FORBIDDEN,i.gx.RATE_LIMITED]);async function B(a){let b=(0,d.Tr)(a);if((await (0,e.mt)()).requireApiKey){if(!b)return(0,h.yj)(i.gx.UNAUTHORIZED,"Missing API key");if(!await (0,d.kI)(b))return(0,h.yj)(i.gx.UNAUTHORIZED,"Invalid API key")}return null}async function C(a){let b=a.headers.get("content-type")||"";if(b.includes("application/json")){let c,d=await a.text();try{c=JSON.parse(d)}catch{return{error:(0,h.yj)(i.gx.BAD_REQUEST,"Invalid JSON body")}}return{raw:d,parsed:c,contentType:b}}return{raw:Buffer.from(await a.arrayBuffer()),parsed:null,contentType:b}}async function D(a){if(!a?.model)return{provider:"xai",model:null};let b=String(a.model),c=await (0,f.mA)(b);return c.provider?s(c.provider)?{provider:c.provider,model:c.model}:b.includes("/")?{error:(0,h.yj)(i.gx.BAD_REQUEST,`Provider '${c.provider}' does not support video generation`)}:{provider:"xai",model:b}:{error:(0,h.yj)(i.gx.BAD_REQUEST,"Combos are not supported for video generation")}}function E(a,b){if(!b)return a;let c=new Headers(a.headers);return c.set("x-9router-connection-id",String(b)),new Response(a.body,{status:a.status,headers:c})}async function F(a,b){let c=await B(a);if(c)return c;let e=await C(a);if(e.error)return e.error;let f=await D(e.parsed);if(f.error)return f.error;let{provider:j,model:k}=f,l=await (0,g.QU)(await (0,g.TM)(a),e.parsed?.model?String(e.parsed.model):"",j,k);if(l)return l;let m=e.raw;e.parsed&&k&&e.parsed.model!==k&&(m=JSON.stringify({...e.parsed,model:k}));let n=a.headers.get("x-connection-id")||null,o=a.headers.get("idempotency-key")||null;if(y.has(j)){let c=await v({provider:j,action:b,rawBody:m,contentType:e.contentType||null,idempotencyKey:null,credentials:null,signal:a.signal,log:x});return c.success?c.response:(0,h.yj)(c.status||i.gx.BAD_GATEWAY,c.error||"Video generation failed")}let p=new Set,q=null,r=null;for(;;){let c=await (0,d.c1)(j,p,k,{preferredConnectionId:n});if(!c||c.allRateLimited){if(c?.allRateLimited){let a=q||c.lastError||"Unavailable",b=r||Number(c.lastErrorCode)||i.gx.SERVICE_UNAVAILABLE;return(0,h.wO)(b,`[${j}/${k||"video"}] ${a}`,c.retryAfter,c.retryAfterHuman)}if(0===p.size)return(0,h.yj)(i.gx.BAD_REQUEST,`No credentials for provider: ${j}`);return(0,h.yj)(r||i.gx.SERVICE_UNAVAILABLE,q||"All accounts unavailable")}let f=await (0,w.checkAndRefreshToken)(j,c),g=await v({provider:j,action:b,rawBody:m,contentType:e.contentType||null,idempotencyKey:o,credentials:f,signal:a.signal,log:x,onCredentialsRefreshed:async a=>{await (0,w.vN)(c.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,apiKey:a.apiKey,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});if(g.success)return await (0,d.Pt)(c.connectionId,c,k),x.info("VIDEO",`${j.toUpperCase()} | ${b} accepted (connection ${c.connectionId})`),E(g.response,c.connectionId);let{shouldFallback:l}=await (0,d.vk)(c.connectionId,g.status,u(g.error,f),j,k);if(l&&A.has(g.status)){p.add(c.connectionId),q=g.error,r=g.status;continue}return g.response}}async function G(a,b){let c=await B(a);if(c)return c;if(!b)return(0,h.yj)(i.gx.BAD_REQUEST,"Missing video request id");let e=a.headers.get("x-connection-id")||null,f=await z(a,e),j=await (0,g.cZ)(await (0,g.TM)(a),f);if(j)return j;let k=await (0,d.c1)(f,null,null,{preferredConnectionId:e});if(!k||k.allRateLimited)return(0,h.yj)(i.gx.BAD_REQUEST,`No credentials for provider: ${f}`);let l=await (0,w.checkAndRefreshToken)(f,k),m=await v({provider:f,requestId:b,credentials:l,signal:a.signal,log:x,onCredentialsRefreshed:async a=>{await (0,w.vN)(k.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});return m.success?(await (0,d.Pt)(k.connectionId,k,null),E(m.response,k.connectionId)):(await (0,d.vk)(k.connectionId,m.status,u(m.error,l),f,null),m.response)}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return h}});let d=c(28208),e=c(47617),f=c(62018),g=["content-length","content-encoding","transfer-encoding"];async function h(a,b,c,h){if((0,d.isNodeNextResponse)(b)){var i;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(i=c.headers)||i.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase()&&!g.includes(c))if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:j}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,j,h):j.end()}}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
1
+ "use strict";exports.id=794,exports.ids=[615,794],exports.modules={19225:(a,b,c)=>{a.exports=c(44870)},40615:(a,b,c)=>{c.d(b,{AI_PROVIDERS:()=>s,js:()=>w,DI:()=>n,fg:()=>k,Pd:()=>o,IS:()=>h,nJ:()=>i,zN:()=>j,JH:()=>m,jO:()=>B,wb:()=>A,br:()=>l,wG:()=>v,zt:()=>t,gb:()=>q,gC:()=>r,mq:()=>p,HQ:()=>y,QA:()=>z,rs:()=>u});var d=c(24478);let e="⚠️ Risk Notice: This provider uses a subscription/OAuth session not officially licensed for proxy/router use. Account may be restricted or banned. Use at your own risk.";Object.fromEntries(d.default.filter(a=>a.display).map(a=>{let b;return[a.id,"RISK_NOTICE"===(b=a.display).deprecationNotice?{...b,deprecationNotice:e}:b]}));let f=["serviceKinds","ttsConfig","sttConfig","embeddingConfig","imageConfig","imageToTextConfig","videoConfig","musicConfig","searchViaChat","searchConfig","fetchConfig","credentialFallback","systemoneConfig","modelsFetcher","mediaPriority","hiddenKinds"],g=a=>Object.fromEntries(d.default.filter(b=>b.category===a).map(a=>[a.id,function(a){let b={};for(let c of(a.media&&Object.assign(b,a.media),f))void 0!==a[c]&&(b[c]=a[c]);let c={...a.display||{}};return"RISK_NOTICE"===c.deprecationNotice&&(c.deprecationNotice=e),{...c,id:a.id,alias:a.uiAlias||a.alias,...a.hidden?{hidden:!0}:{},...b,...void 0!==a.priority?{priority:a.priority}:{},...a.hasFree?{hasFree:!0}:{},...a.thinkingConfig?{thinkingConfig:a.thinkingConfig}:{},...a.regions?{regions:a.regions,defaultRegion:a.defaultRegion}:{},...a.hasProviderSpecificData?{hasProviderSpecificData:!0}:{},...a.noAuth?{noAuth:!0}:{},...a.passthroughModels?{passthroughModels:!0}:{},...a.hasOAuth?{hasOAuth:!0}:{},...a.authModes?{authModes:a.authModes}:{},...a.authType?{authType:a.authType}:{},...a.authHint?{authHint:a.authHint}:{},...a.apiKeyOptionalWith?{apiKeyOptionalWith:a.apiKeyOptionalWith}:{},...a.credentialForm?{credentialForm:a.credentialForm}:{}}}(a)])),h=g("free"),i=g("freeTier"),j=g("oauth"),k=g("apikey"),l=g("webCookie"),m="openai-compatible-",n="anthropic-compatible-",o="custom-embedding-";function p(a){return"string"==typeof a&&a.startsWith(m)}function q(a){return"string"==typeof a&&a.startsWith(n)}function r(a){return"string"==typeof a&&a.startsWith(o)}let s={...h,...i,...j,...k,...l};function t(a){for(let b of Object.values(s))if(b.alias===a||b.id===a)return b;return null}function u(a){let b=t(a);return b?.id||a}function v(a){let b=s[a];return b?.alias||a}let w=Object.values(s).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(s).reduce((a,b)=>(a[b.id]=b.alias,a),{});let x=new Set;for(let a of d.default)for(let b of[a.id,a.alias,a.uiAlias,...a.aliases||[]])b&&x.add(b);function y(a){return x.has(a)}function z(a,b){let c=s[a];return!(!(c?.serviceKinds||["llm"]).includes(b)||c?.hiddenKinds?.includes(b))}let A=d.default.filter(a=>a.features?.usage).map(a=>a.id),B=d.default.filter(a=>a.features?.usageApikey).map(a=>a.id)},50122:(a,b,c)=>{c.d(b,{k:()=>e});let d=[];for(let a=0;a<256;++a)d.push((a+256).toString(16).slice(1));function e(a,b=0){return(d[a[b+0]]+d[a[b+1]]+d[a[b+2]]+d[a[b+3]]+"-"+d[a[b+4]]+d[a[b+5]]+"-"+d[a[b+6]]+d[a[b+7]]+"-"+d[a[b+8]]+d[a[b+9]]+"-"+d[a[b+10]]+d[a[b+11]]+d[a[b+12]]+d[a[b+13]]+d[a[b+14]]+d[a[b+15]]).toLowerCase()}},66581:(a,b,c)=>{c.d(b,{g:()=>F,s:()=>G});var d=c(95827),e=c(89718),f=c(38775),g=c(27811),h=c(43659),i=c(41004),j=c(8590),k=c(26070);let l=new Set(["generations"]);function m(a,b){return{Accept:"application/json",...a.headers||{},...b?{Authorization:`Bearer ${b}`}:{}}}let n=/^projects\/[^/]+\/locations\/[^/]+\/publishers\/[^/]+\/models\/[^/]+\/operations\/[^/]+$/;async function o(a,b){let c=(0,j.Sc)(a?.apiKey),d=c?.project_id||a?.projectId||a?.providerSpecificData?.projectId,e=a?.providerSpecificData?.location||"us-central1";if(!d)return{error:"Vertex video requires a project_id — use Service Account JSON or set providerSpecificData.projectId"};let f=a?.accessToken;if(c){let a=await (0,j.pb)(c,b);if(!a?.accessToken)return{error:"Vertex video: failed to mint access token from service account JSON"};f=a.accessToken}return f?{token:f,projectId:d,location:e}:{error:"Vertex video requires Service Account JSON or an OAuth access token (raw API keys are not supported)"}}let p={openrouter:{buildRequest({config:a,action:b,requestId:c,rawBody:d,contentType:e,token:f}){let g=a.baseUrl.replace(/\/$/,"");return c?{method:"GET",url:`${g}/${encodeURIComponent(c)}`,headers:m(a,f)}:l.has(b)?e&&!e.includes("application/json")?{error:"OpenRouter video requires an application/json body"}:{method:"POST",url:g,headers:{...m(a,f),"Content-Type":"application/json"},body:d}:{error:`OpenRouter video supports 'generations' only (got '${b}')`}}},vertex:{async buildRequest({config:a,action:b,requestId:c,rawBody:d,contentType:e,credentials:f,log:g}){let h;if(e&&!e.includes("application/json"))return{error:"Vertex video requires an application/json body"};let i=await o(f,g);if(i.error)return{error:i.error};let{token:j,projectId:k,location:l}=i,m=(a.baseUrl||"https://aiplatform.googleapis.com").replace(/\/$/,""),p={Accept:"application/json","Content-Type":"application/json",Authorization:`Bearer ${j}`};if(c){let a=function(a){let b=String(a??"");if(!b||b.length>1024||!/^[A-Za-z0-9_-]+$/.test(b))return null;let c=Buffer.from(b,"base64url").toString("utf8");return Buffer.from(c,"utf8").toString("base64url")!==b?null:n.test(c)?c:null}(c);return a?{method:"POST",url:`${m}/v1/${a.slice(0,a.indexOf("/operations/"))}:fetchPredictOperation`,headers:p,body:JSON.stringify({operationName:a})}:{error:"Invalid Vertex video job id"}}if("generations"!==b)return{error:`Vertex video supports 'generations' only (got '${b}')`};try{h=JSON.parse("string"==typeof d?d:d.toString("utf8"))}catch{return{error:"Invalid JSON body"}}return h.model?/^[A-Za-z0-9._-]+$/.test(h.model)?h.prompt||h.image||h.image_url?{method:"POST",url:`${m}/v1/projects/${k}/locations/${l}/publishers/google/models/${h.model}:predictLongRunning`,headers:p,body:JSON.stringify(function(a){let b={prompt:a.prompt},c=a.image??a.image_url;if(c&&"object"==typeof c)b.image=c;else if("string"==typeof c){let a=c.match(/^data:([^;]+);base64,(.*)$/s);b.image=a?{bytesBase64Encoded:a[2],mimeType:a[1]}:{gcsUri:c}}a.video&&"object"==typeof a.video&&(b.video=a.video);let d={};return null!=a.n&&(d.sampleCount=Number(a.n)),null!=a.duration&&(d.durationSeconds=Number(a.duration)),a.aspect_ratio&&(d.aspectRatio=a.aspect_ratio),a.resolution&&(d.resolution=a.resolution),null!=a.seed&&(d.seed=a.seed),a.negative_prompt&&(d.negativePrompt=a.negative_prompt),a.storage_uri&&(d.storageUri=a.storage_uri),null!=a.generate_audio&&(d.generateAudio=!!a.generate_audio),{instances:[b],...Object.keys(d).length?{parameters:d}:{}}}(h))}:{error:"Vertex video requires a prompt or an image"}:{error:"Invalid Vertex video model id"}:{error:"Vertex video requires a model (e.g. vertex/veo-3.1-generate-preview)"}},transformResponse:function(a){let b;if(!a?.name)return a;let c=(b=a.name,Buffer.from(b,"utf8").toString("base64url"));if(a.error)return{id:c,request_id:c,status:"failed",error:a.error};if(!a.done)return{id:c,request_id:c,status:"pending"};let d=(a.response?.videos||a.response?.generateVideoResponse?.generatedSamples||[]).map(a=>({url:a.gcsUri||a.video?.uri||a.uri||null,b64_json:a.bytesBase64Encoded||a.video?.bytesBase64Encoded||null,mime_type:a.mimeType||a.video?.mimeType||"video/mp4"}));return{id:c,request_id:c,status:"completed",video:d[0]||null,videos:d}}}},q=Number(process.env.VIDEO_FETCH_TIMEOUT_MS||12e4),r=new Set(["generations","edits","extensions"]);function s(a){return k.B$[a]?.videoConfig||null}async function t({provider:a,rawBody:b,credentials:d,signal:e,log:f,onCredentialsRefreshed:g}){let j={};try{j=JSON.parse("string"==typeof b?b:String(b||"{}"))}catch{return(0,h.A1)(i.gx.BAD_REQUEST,`[${a}] invalid video request body`)}if(!j.prompt)return(0,h.A1)(i.gx.BAD_REQUEST,`[${a}] video request requires a prompt`);let k=[].concat(j.image??j.image_url??[]).concat(Array.isArray(j.images)?j.images:[]).concat(Array.isArray(j.image_urls)?j.image_urls:[]).filter(a=>"string"==typeof a&&a),{getExecutor:l}=await Promise.all([c.e(7774),c.e(7801),c.e(8920),c.e(24),c.e(8623),c.e(7843),c.e(2578),c.e(3225),c.e(8591),c.e(7913),c.e(4957),c.e(614),c.e(7877),c.e(2380),c.e(2327),c.e(5330),c.e(1356)]).then(c.bind(c,55330)),m=l(a);if(!m?.generateMedia)return(0,h.A1)(i.gx.BAD_REQUEST,`[${a}] has no executor video support`);try{let b=d?.apiKey,[c]=await m.generateMedia({prompt:j.prompt,kind:"video",size:j.size,model:j.model,duration:j.seconds??j.duration,resolution:j.resolution,n:1,images:k,credentials:d,signal:e,log:f}),h=`data:${c.mime||"video/mp4"};base64,${c.b64}`;return g&&d?.apiKey&&d.apiKey!==b&&await g({apiKey:d.apiKey}),{success:!0,response:new Response(JSON.stringify({id:`video-${a}-${Date.now()}`,object:"video.generation",created:Math.floor(Date.now()/1e3),model:j.model||a,status:"completed",video:{url:h,...c.width?{width:c.width}:{},...c.height?{height:c.height}:{}}}),{status:200,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}catch(e){let b=u(e?.message||"video generation failed",d),c=e?.status&&Number.isInteger(e.status)?e.status:502;return(0,h.A1)(c,`[${a}] ${b}`)}}function u(a,b=null){if(!a)return a;let c=String(a).replace(/Bearer\s+[A-Za-z0-9._~+/=-]{8,}/gi,"Bearer [redacted]");for(let a of["accessToken","refreshToken","apiKey"]){let d=b?.[a];"string"==typeof d&&d.length>=8&&(c=c.split(d).join("[redacted]"))}return c}async function v({provider:a,action:b=null,requestId:c=null,rawBody:d=null,contentType:e=null,idempotencyKey:f=null,credentials:g,signal:l,timeoutMs:m=q,log:n,onCredentialsRefreshed:o}){let w,x;if(k.B$[a]?.videoConfig?.executorDriven===!0&&!c&&("generations"===b||"edits"===b))return t({provider:a,rawBody:d,credentials:g,signal:l,log:n,onCredentialsRefreshed:o});let y=s(a);if(!y)return(0,h.A1)(i.gx.BAD_REQUEST,`Provider '${a}' does not support video generation`);if(!c&&!r.has(b))return(0,h.A1)(i.gx.BAD_REQUEST,`Unknown video action: ${b}`);let z=p[a]||null,A=(x="function"==typeof AbortSignal?.timeout?AbortSignal.timeout(m):null,l&&x&&"function"==typeof AbortSignal.any?AbortSignal.any([l,x]):l||x||void 0),B=async()=>{let a,h,i=z?await z.buildRequest({config:y,action:b,requestId:c,rawBody:d,contentType:e,idempotencyKey:f,credentials:g,log:n,token:g?.accessToken||g?.apiKey}):{method:a=c?"GET":"POST",url:(h=y.baseUrl.replace(/\/$/,""),c?`${h}/${encodeURIComponent(c)}`:`${h}/${b}`),headers:function({token:a,contentType:b,idempotencyKey:c}){let d={Accept:"application/json"};return a&&(d.Authorization=`Bearer ${a}`),b&&(d["Content-Type"]=b),c&&(d["Idempotency-Key"]=c),d}({token:g?.accessToken||g?.apiKey,contentType:"POST"===a?e:null,idempotencyKey:"POST"===a?f:null}),body:"POST"===a?d:void 0};return i.error?{planError:i.error}:{response:await fetch(i.url,{method:i.method,headers:i.headers,body:i.body,signal:A})}},C=c?"GET":"POST";try{let b=await B();if(b.planError)return(0,h.A1)(i.gx.BAD_REQUEST,`[${a}] ${b.planError}`);w=b.response}catch(b){if(b?.name==="AbortError"||b?.name==="TimeoutError")return(0,h.A1)(i.gx.REQUEST_TIMEOUT,`[${a}] video ${C} aborted: ${b.message}`);return(0,h.A1)(i.gx.BAD_GATEWAY,u(`[${a}] video upstream fetch failed: ${b.message}`,g))}if((w.status===i.gx.UNAUTHORIZED||w.status===i.gx.FORBIDDEN)&&g?.refreshToken){let b=null;try{b=await (0,j.$B)(a,g,n)}catch(b){n?.warn?.("TOKEN",`${a} | video refresh error: ${u(b.message,g)}`)}if(b?.accessToken){n?.info?.("TOKEN",`${a.toUpperCase()} | refreshed for video ${C}`),Object.assign(g,b),o&&await o(b);try{await w.body?.cancel?.()}catch{}try{let b=await B();if(b.planError)return(0,h.A1)(i.gx.BAD_REQUEST,`[${a}] ${b.planError}`);w=b.response}catch(b){return(0,h.A1)(i.gx.BAD_GATEWAY,u(`[${a}] video retry after refresh failed: ${b.message}`,g))}}else n?.warn?.("TOKEN",`${a.toUpperCase()} | video refresh failed — account needs re-auth`)}let D=await w.text().catch(()=>"");if(!w.ok){let b=u(D||`HTTP ${w.status}`,g);return(0,h.A1)(w.status,`[${a}] ${b.slice(0,2e3)}`)}let E=D,F=w.headers.get("content-type")||"application/json";if(z?.transformResponse)try{E=JSON.stringify(z.transformResponse(JSON.parse(D))),F="application/json"}catch{}return{success:!0,response:new Response(E,{status:w.status,headers:{"Content-Type":F,"Access-Control-Allow-Origin":"*"}})}}var w=c(67828),x=c(7803);let y=new Set(["veoaifree-web"]);async function z(a,b){if(b){let a=await (0,e.Mc)(b).catch(()=>null);if(a?.provider&&s(a.provider))return a.provider}let c=new URL(a.url).searchParams.get("provider");return c&&s(c)?c:"xai"}let A=new Set([i.gx.UNAUTHORIZED,i.gx.FORBIDDEN,i.gx.RATE_LIMITED]);async function B(a){let b=(0,d.Tr)(a);if((await (0,e.mt)()).requireApiKey){if(!b)return(0,h.yj)(i.gx.UNAUTHORIZED,"Missing API key");if(!await (0,d.kI)(b))return(0,h.yj)(i.gx.UNAUTHORIZED,"Invalid API key")}return null}async function C(a){let b=a.headers.get("content-type")||"";if(b.includes("application/json")){let c,d=await a.text();try{c=JSON.parse(d)}catch{return{error:(0,h.yj)(i.gx.BAD_REQUEST,"Invalid JSON body")}}return{raw:d,parsed:c,contentType:b}}return{raw:Buffer.from(await a.arrayBuffer()),parsed:null,contentType:b}}async function D(a){if(!a?.model)return{provider:"xai",model:null};let b=String(a.model),c=await (0,f.mA)(b);return c.provider?s(c.provider)?{provider:c.provider,model:c.model}:b.includes("/")?{error:(0,h.yj)(i.gx.BAD_REQUEST,`Provider '${c.provider}' does not support video generation`)}:{provider:"xai",model:b}:{error:(0,h.yj)(i.gx.BAD_REQUEST,"Combos are not supported for video generation")}}function E(a,b){if(!b)return a;let c=new Headers(a.headers);return c.set("x-9router-connection-id",String(b)),new Response(a.body,{status:a.status,headers:c})}async function F(a,b){let c=await B(a);if(c)return c;let e=await C(a);if(e.error)return e.error;let f=await D(e.parsed);if(f.error)return f.error;let{provider:j,model:k}=f,l=await (0,g.QU)(await (0,g.TM)(a),e.parsed?.model?String(e.parsed.model):"",j,k);if(l)return l;let m=e.raw;e.parsed&&k&&e.parsed.model!==k&&(m=JSON.stringify({...e.parsed,model:k}));let n=a.headers.get("x-connection-id")||null,o=a.headers.get("idempotency-key")||null;if(y.has(j)){let c=await v({provider:j,action:b,rawBody:m,contentType:e.contentType||null,idempotencyKey:null,credentials:null,signal:a.signal,log:x});return c.success?c.response:(0,h.yj)(c.status||i.gx.BAD_GATEWAY,c.error||"Video generation failed")}let p=new Set,q=null,r=null;for(;;){let c=await (0,d.c1)(j,p,k,{preferredConnectionId:n});if(!c||c.allRateLimited){if(c?.allRateLimited){let a=q||c.lastError||"Unavailable",b=r||Number(c.lastErrorCode)||i.gx.SERVICE_UNAVAILABLE;return(0,h.wO)(b,`[${j}/${k||"video"}] ${a}`,c.retryAfter,c.retryAfterHuman)}if(0===p.size)return(0,h.yj)(i.gx.BAD_REQUEST,`No credentials for provider: ${j}`);return(0,h.yj)(r||i.gx.SERVICE_UNAVAILABLE,q||"All accounts unavailable")}let f=await (0,w.checkAndRefreshToken)(j,c),g=await v({provider:j,action:b,rawBody:m,contentType:e.contentType||null,idempotencyKey:o,credentials:f,signal:a.signal,log:x,onCredentialsRefreshed:async a=>{await (0,w.vN)(c.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,apiKey:a.apiKey,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});if(g.success)return await (0,d.Pt)(c.connectionId,c,k),x.info("VIDEO",`${j.toUpperCase()} | ${b} accepted (connection ${c.connectionId})`),E(g.response,c.connectionId);let{shouldFallback:l}=await (0,d.vk)(c.connectionId,g.status,u(g.error,f),j,k);if(l&&A.has(g.status)){p.add(c.connectionId),q=g.error,r=g.status;continue}return g.response}}async function G(a,b){let c=await B(a);if(c)return c;if(!b)return(0,h.yj)(i.gx.BAD_REQUEST,"Missing video request id");let e=a.headers.get("x-connection-id")||null,f=await z(a,e),j=await (0,g.cZ)(await (0,g.TM)(a),f);if(j)return j;let k=await (0,d.c1)(f,null,null,{preferredConnectionId:e});if(!k||k.allRateLimited)return(0,h.yj)(i.gx.BAD_REQUEST,`No credentials for provider: ${f}`);let l=await (0,w.checkAndRefreshToken)(f,k),m=await v({provider:f,requestId:b,credentials:l,signal:a.signal,log:x,onCredentialsRefreshed:async a=>{await (0,w.vN)(k.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})}});return m.success?(await (0,d.Pt)(k.connectionId,k,null),E(m.response,k.connectionId)):(await (0,d.vk)(k.connectionId,m.status,u(m.error,l),f,null),m.response)}},92280:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return h}});let d=c(28208),e=c(47617),f=c(62018),g=["content-length","content-encoding","transfer-encoding"];async function h(a,b,c,h){if((0,d.isNodeNextResponse)(b)){var i;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(i=c.headers)||i.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase()&&!g.includes(c))if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:j}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,j,h):j.end()}}},94755:(a,b,c)=>{c.d(b,{A:()=>i});var d=c(77598);let e={randomUUID:d.randomUUID},f=new Uint8Array(256),g=f.length;var h=c(50122);let i=function(a,b,c){if(e.randomUUID&&!b&&!a)return e.randomUUID();var i=a,j=c;let k=(i=i||{}).random??i.rng?.()??(g>f.length-16&&((0,d.randomFillSync)(f),g=0),f.slice(g,g+=16));if(k.length<16)throw Error("Random bytes length must be >= 16");if(k[6]=15&k[6]|64,k[8]=63&k[8]|128,b){if((j=j||0)<0||j+16>b.length)throw RangeError(`UUID byte range ${j}:${j+15} is out of buffer bounds`);for(let a=0;a<16;++a)b[j+a]=k[a];return b}return(0,h.k)(k)}}};
@@ -1 +1 @@
1
- "use strict";exports.id=8238,exports.ids=[8238],exports.modules={30869:(a,b,c)=>{c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(40615),f=c(81329);d.rE;let g={npmPackageName:"9router",installCmd:"npm i -g 9router",installCmdLatest:"npm i -g 9router@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.6-terra",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},38238:(a,b,c)=>{c.d(b,{P:()=>j});var d=c(89718),e=c(40615),f=c(54098),g=c(30869),h=c(54603);async function i(){let a=null;try{let b=(await (0,d.PX)()).filter(a=>!1!==a.isActive);a=(b.find(a=>!a.access?.restricted)||b[0])?.key||null}catch{}let b={"Content-Type":"application/json"};return a&&(b.Authorization=`Bearer ${a}`),b["x-9r-cli-token"]=await (0,h.Xj)("9r-cli-auth"),b}async function j(a,b,c=`http://127.0.0.1:${process.env.PORT||g.h0.appPort}`){let d=await i(),h=Date.now();if("embedding"===b){let b=await fetch(`${c}/api/v1/embeddings`,{method:"POST",headers:d,body:JSON.stringify({model:a,input:"test"}),signal:AbortSignal.timeout(15e3)}),e=Date.now()-h,f=await b.text().catch(()=>""),g=null;try{g=f?JSON.parse(f):null}catch{}if(!b.ok){let a=g?.error?.message||g?.error||f;return{ok:!1,latencyMs:e,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return Array.isArray(g?.data)&&g.data.length>0&&Array.isArray(g.data[0]?.embedding)?{ok:!0,latencyMs:e,error:null,status:b.status}:{ok:!1,latencyMs:e,status:b.status,error:"Provider returned no embedding data"}}if("image"===b){let b=await fetch(`${c}/api/v1/images/generations`,{method:"POST",headers:d,body:JSON.stringify({model:a,prompt:"test"}),signal:AbortSignal.timeout(15e3)}),e=Date.now()-h,f=await b.text().catch(()=>""),g=null;try{g=f?JSON.parse(f):null}catch{}if(!b.ok){let a=g?.error?.message||g?.msg||g?.message||g?.error||f;return{ok:!1,latencyMs:e,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return Array.isArray(g?.data)&&g.data.length>0?{ok:!0,latencyMs:e,error:null,status:b.status}:{ok:!1,latencyMs:e,status:b.status,error:"Provider returned no image data for this model"}}if("stt"===b){let b,e,f,g,i=new FormData,j=(f=new DataView(e=new ArrayBuffer(44+(b=8e3))),(g=(a,b)=>{for(let c=0;c<b.length;c+=1)f.setUint8(a+c,b.charCodeAt(c))})(0,"RIFF"),f.setUint32(4,36+b,!0),g(8,"WAVE"),g(12,"fmt "),f.setUint32(16,16,!0),f.setUint16(20,1,!0),f.setUint16(22,1,!0),f.setUint32(24,16e3,!0),f.setUint32(28,32e3,!0),f.setUint16(32,2,!0),f.setUint16(34,16,!0),g(36,"data"),f.setUint32(40,b,!0),new Blob([e],{type:"audio/wav"}));i.append("file",j,"test.wav"),i.append("model",a);let k=await fetch(`${c}/api/v1/audio/transcriptions`,{method:"POST",headers:Object.fromEntries(Object.entries(d).filter(([a])=>"content-type"!==a.toLowerCase())),body:i,signal:AbortSignal.timeout(15e3)}),l=Date.now()-h,m=await k.text().catch(()=>""),n=null;try{n=m?JSON.parse(m):null}catch{}if(!k.ok){let a=n?.error?.message||n?.msg||n?.message||n?.error||m;return{ok:!1,latencyMs:l,error:`HTTP ${k.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:k.status}}return("string"==typeof n?.text?n.text:"").trim()?{ok:!0,latencyMs:l,error:null,status:k.status}:{ok:!1,latencyMs:l,status:k.status,error:"Provider returned no transcription text for this model"}}if("systemone"===b){let b=await fetch(`${c}/api/v1/systemone`,{method:"POST",headers:d,body:JSON.stringify({model:a,state:"Customer: I was charged twice for my order this morning.",questions:{probe:{type:"noul",instructions:"Is the customer reporting a billing problem?"}}}),signal:AbortSignal.timeout(15e3)}),e=Date.now()-h,f=await b.text().catch(()=>""),g=null;try{g=f?JSON.parse(f):null}catch{}if(!b.ok){let a=g?.error?.message||g?.msg||g?.message||g?.error||f;return{ok:!1,latencyMs:e,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return g?.answers&&"object"==typeof g.answers&&Object.keys(g.answers).length>0?{ok:!0,latencyMs:e,error:null,status:b.status}:{ok:!1,latencyMs:e,status:b.status,error:"Provider returned no answers for this model"}}let k=await fetch(`${c}/api/v1/chat/completions`,{method:"POST",headers:d,body:JSON.stringify({model:a,max_tokens:1024,stream:!1,messages:[{role:"user",content:"hi"}]}),signal:AbortSignal.timeout(15e3)}),l=Date.now()-h,m=await k.text().catch(()=>""),n=null;try{n=m?JSON.parse(m):null}catch{}let o=(0,e.rs)(String(a).split("/")[0]);if(n=(0,f.x)(n,o),!k.ok){let a=n?.error?.message||n?.msg||n?.message||n?.error||m;return{ok:!1,latencyMs:l,error:`HTTP ${k.status}${a?`: ${String(a).slice(0,500)}`:""}`,status:k.status}}let p=n?.status,q=n?.msg||n?.message;if(null!=p&&"200"!==String(p)&&"0"!==String(p)&&q)return{ok:!1,latencyMs:l,status:k.status,error:`Provider status ${p}: ${String(q).slice(0,240)}`};if(n?.error){let a=n?.error?.message||n?.error||"Provider returned an error";return{ok:!1,latencyMs:l,status:k.status,error:String(a).slice(0,240)}}let r=Array.isArray(n?.choices)&&n.choices.length>0,s=n?.choices?.[0]||{},t=s.message?.reasoning||s.message?.reasoning_content||s.message?.thinking||s.message?.thinking_content,u=!String(s.message?.content||"").trim();return r&&"length"===s.finish_reason&&u&&t?{ok:!0,latencyMs:l,error:null,status:k.status,note:"reasoning-only response (length-limited)"}:r?{ok:!0,latencyMs:l,error:null,status:k.status}:{ok:!1,latencyMs:l,status:k.status,error:"Provider returned no completion choices for this model"}}},39006:a=>{a.exports={rE:"0.6.24"}},54098:(a,b,c)=>{c.d(b,{x:()=>e});var d=c(26070);function e(a,b){if(!b||!d.xq[b]?.quirks?.clineEnvelope)return a;let{success:c,data:e}=a||{};return!0!==c||!e||"object"!=typeof e||Array.isArray(e)?a:e}},54603:(a,b,c)=>{c.d(b,{Xj:()=>q});var d=c(19713),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.n,"machine-id"),m=h().join(k.n,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.n,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="9r-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,TZ:()=>d.TZ,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,h1:()=>d.h1,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oF:()=>d.oF,oG:()=>d.oG,op:()=>d.op,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(83192)}};
1
+ "use strict";exports.id=8238,exports.ids=[8238],exports.modules={30869:(a,b,c)=>{c.d(b,{UY:()=>h,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g,oc:()=>i});var d=c(39006),e=c(40615),f=c(81329);d.rE;let g={npmPackageName:"9router",installCmd:"npm i -g 9router",installCmdLatest:"npm i -g 9router@latest --prefer-online",shutdownCountdownSec:3,exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:5e3,waitForExitMaxMs:2e4,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={tickIntervalMs:6e4,pingLeadMs:5e3,refreshAheadMs:3e5,failureCooldownMs:9e5,providers:{claude:{settingsKey:"claudeAutoPing",quotaKey:"session (5h)",pingModel:"claude-haiku-4-5-20251001",pingText:"hi",pingMaxTokens:1},codex:{settingsKey:"codexAutoPing",quotaKey:"session",pingWhenResetAtSlides:!0,resetAtDriftMs:3e4,minPingIntervalMs:6e5,skipWhenBlockingQuotaExhausted:!0,pingModel:"gpt-5.6-terra",pingText:"hi",pingInstructions:"Reply with OK.",pingReasoningEffort:"none"}}}},38238:(a,b,c)=>{c.d(b,{P:()=>j});var d=c(89718),e=c(40615),f=c(54098),g=c(30869),h=c(54603);async function i(){let a=null;try{let b=(await (0,d.PX)()).filter(a=>!1!==a.isActive);a=(b.find(a=>!a.access?.restricted)||b[0])?.key||null}catch{}let b={"Content-Type":"application/json"};return a&&(b.Authorization=`Bearer ${a}`),b["x-9r-cli-token"]=await (0,h.Xj)("9r-cli-auth"),b}async function j(a,b,c=`http://127.0.0.1:${process.env.PORT||g.h0.appPort}`){let d=await i(),h=Date.now();if("embedding"===b){let b=await fetch(`${c}/api/v1/embeddings`,{method:"POST",headers:d,body:JSON.stringify({model:a,input:"test"}),signal:AbortSignal.timeout(15e3)}),e=Date.now()-h,f=await b.text().catch(()=>""),g=null;try{g=f?JSON.parse(f):null}catch{}if(!b.ok){let a=g?.error?.message||g?.error||f;return{ok:!1,latencyMs:e,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return Array.isArray(g?.data)&&g.data.length>0&&Array.isArray(g.data[0]?.embedding)?{ok:!0,latencyMs:e,error:null,status:b.status}:{ok:!1,latencyMs:e,status:b.status,error:"Provider returned no embedding data"}}if("image"===b){let b=await fetch(`${c}/api/v1/images/generations`,{method:"POST",headers:d,body:JSON.stringify({model:a,prompt:"test"}),signal:AbortSignal.timeout(15e3)}),e=Date.now()-h,f=await b.text().catch(()=>""),g=null;try{g=f?JSON.parse(f):null}catch{}if(!b.ok){let a=g?.error?.message||g?.msg||g?.message||g?.error||f;return{ok:!1,latencyMs:e,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return Array.isArray(g?.data)&&g.data.length>0?{ok:!0,latencyMs:e,error:null,status:b.status}:{ok:!1,latencyMs:e,status:b.status,error:"Provider returned no image data for this model"}}if("stt"===b){let b,e,f,g,i=new FormData,j=(f=new DataView(e=new ArrayBuffer(44+(b=8e3))),(g=(a,b)=>{for(let c=0;c<b.length;c+=1)f.setUint8(a+c,b.charCodeAt(c))})(0,"RIFF"),f.setUint32(4,36+b,!0),g(8,"WAVE"),g(12,"fmt "),f.setUint32(16,16,!0),f.setUint16(20,1,!0),f.setUint16(22,1,!0),f.setUint32(24,16e3,!0),f.setUint32(28,32e3,!0),f.setUint16(32,2,!0),f.setUint16(34,16,!0),g(36,"data"),f.setUint32(40,b,!0),new Blob([e],{type:"audio/wav"}));i.append("file",j,"test.wav"),i.append("model",a);let k=await fetch(`${c}/api/v1/audio/transcriptions`,{method:"POST",headers:Object.fromEntries(Object.entries(d).filter(([a])=>"content-type"!==a.toLowerCase())),body:i,signal:AbortSignal.timeout(15e3)}),l=Date.now()-h,m=await k.text().catch(()=>""),n=null;try{n=m?JSON.parse(m):null}catch{}if(!k.ok){let a=n?.error?.message||n?.msg||n?.message||n?.error||m;return{ok:!1,latencyMs:l,error:`HTTP ${k.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:k.status}}return("string"==typeof n?.text?n.text:"").trim()?{ok:!0,latencyMs:l,error:null,status:k.status}:{ok:!1,latencyMs:l,status:k.status,error:"Provider returned no transcription text for this model"}}if("systemone"===b){let b=await fetch(`${c}/api/v1/systemone`,{method:"POST",headers:d,body:JSON.stringify({model:a,state:"Customer: I was charged twice for my order this morning.",questions:{probe:{type:"noul",instructions:"Is the customer reporting a billing problem?"}}}),signal:AbortSignal.timeout(15e3)}),e=Date.now()-h,f=await b.text().catch(()=>""),g=null;try{g=f?JSON.parse(f):null}catch{}if(!b.ok){let a=g?.error?.message||g?.msg||g?.message||g?.error||f;return{ok:!1,latencyMs:e,error:`HTTP ${b.status}${a?`: ${String(a).slice(0,240)}`:""}`,status:b.status}}return g?.answers&&"object"==typeof g.answers&&Object.keys(g.answers).length>0?{ok:!0,latencyMs:e,error:null,status:b.status}:{ok:!1,latencyMs:e,status:b.status,error:"Provider returned no answers for this model"}}let k=await fetch(`${c}/api/v1/chat/completions`,{method:"POST",headers:d,body:JSON.stringify({model:a,max_tokens:1024,stream:!1,messages:[{role:"user",content:"hi"}]}),signal:AbortSignal.timeout(15e3)}),l=Date.now()-h,m=await k.text().catch(()=>""),n=null;try{n=m?JSON.parse(m):null}catch{}let o=(0,e.rs)(String(a).split("/")[0]);if(n=(0,f.x)(n,o),!k.ok){let a=n?.error?.message||n?.msg||n?.message||n?.error||m;return{ok:!1,latencyMs:l,error:`HTTP ${k.status}${a?`: ${String(a).slice(0,500)}`:""}`,status:k.status}}let p=n?.status,q=n?.msg||n?.message;if(null!=p&&"200"!==String(p)&&"0"!==String(p)&&q)return{ok:!1,latencyMs:l,status:k.status,error:`Provider status ${p}: ${String(q).slice(0,240)}`};if(n?.error){let a=n?.error?.message||n?.error||"Provider returned an error";return{ok:!1,latencyMs:l,status:k.status,error:String(a).slice(0,240)}}let r=Array.isArray(n?.choices)&&n.choices.length>0,s=n?.choices?.[0]||{},t=s.message?.reasoning||s.message?.reasoning_content||s.message?.thinking||s.message?.thinking_content,u=!String(s.message?.content||"").trim();return r&&"length"===s.finish_reason&&u&&t?{ok:!0,latencyMs:l,error:null,status:k.status,note:"reasoning-only response (length-limited)"}:r?{ok:!0,latencyMs:l,error:null,status:k.status}:{ok:!1,latencyMs:l,status:k.status,error:"Provider returned no completion choices for this model"}}},39006:a=>{a.exports={rE:"0.6.26"}},54098:(a,b,c)=>{c.d(b,{x:()=>e});var d=c(26070);function e(a,b){if(!b||!d.xq[b]?.quirks?.clineEnvelope)return a;let{success:c,data:e}=a||{};return!0!==c||!e||"object"!=typeof e||Array.isArray(e)?a:e}},54603:(a,b,c)=>{c.d(b,{Xj:()=>q});var d=c(19713),e=c(73024),f=c.n(e),g=c(76760),h=c.n(g),i=c(77598),j=c.n(i),k=c(49120);let l=h().join(k.n,"machine-id"),m=h().join(k.n,"auth"),n=h().join(m,"cli-secret"),o=null,p=null;async function q(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt",c=function(){if(o)return o;try{if(o=f().readFileSync(l,"utf8").trim())return o}catch{}try{o=(0,d.machineIdSync)()}catch{o=j().randomUUID()}try{f().mkdirSync(k.n,{recursive:!0}),f().writeFileSync(l,o,{mode:384})}catch{}return o}(),e="9r-cli-auth"===b?function(){if(p)return p;try{if(p=f().readFileSync(n,"utf8").trim())return p}catch{}p=j().randomBytes(32).toString("hex");try{f().mkdirSync(m,{recursive:!0}),f().writeFileSync(n,p,{mode:384})}catch{}return p}():"";return j().createHash("sha256").update(c+b+e).digest("hex").substring(0,16)}},89718:(a,b,c)=>{c.d(b,{CG:()=>d.CG,Dj:()=>d.Dj,Fh:()=>d.Fh,Iq:()=>d.Iq,K1:()=>d.K1,KJ:()=>d.KJ,L:()=>d.L,L9:()=>d.L9,Lh:()=>d.Lh,Mc:()=>d.Mc,OM:()=>d.OM,PX:()=>d.PX,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,TZ:()=>d.TZ,Uv:()=>d.Uv,VT:()=>d.VT,XW:()=>d.XW,Xx:()=>d.Xx,Yd:()=>d.Yd,ZO:()=>d.ZO,bI:()=>d.bI,c:()=>d.c,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,getProviderConnections:()=>d.P,h1:()=>d.h1,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,iE:()=>d.iE,jd:()=>d.jd,mt:()=>d.mt,o5:()=>d.o5,oF:()=>d.oF,oG:()=>d.oG,op:()=>d.op,r4:()=>d.r4,uL:()=>d.uL,ui:()=>d.ui,updateProviderConnection:()=>d.rj,uv:()=>d.uv,yF:()=>d.yF,yg:()=>d.yg,zP:()=>d.zP});var d=c(83192)}};
@@ -1 +1 @@
1
- "use strict";exports.id=8271,exports.ids=[8271],exports.modules={6551:(a,b,c)=>{c.d(b,{RO:()=>m,Tl:()=>k,Yt:()=>l});var d=c(39609),e=c(24295);let f={usageUrl:(0,e.U)("codex").url,resetCreditsUrl:(0,e.U)("codex").resetCreditsUrl,resetCreditsConsumeUrl:(0,e.U)("codex").resetCreditsConsumeUrl};function g(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 h(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a.rate_limit&&"object"==typeof a.rate_limit?a.rate_limit:a}function i(a){let b=Math.max(0,Math.min(100,(0,e.IQ)(a?.used_percent??a?.percent_used,0)));return{used:b,total:100,remaining:Math.max(0,100-b),resetAt:(0,e.eZ)(a?.reset_at??a?.resets_at??a?.resetAt??null),unlimited:!1}}function j(a,b,c){let d=h(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"]=i(e),g=!0),f&&(a[b?`${b}_weekly`:"weekly"]=i(f),g=!0),g}async function k(a,b=null){try{let c=await (0,d.proxyAwareFetch)(f.usageUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},b);if(!c.ok)return{message:`Codex connected. Usage API temporarily unavailable (${c.status}).`};let g=await c.json(),i=g.rate_limit||g.rate_limits||g.rate_limits_by_limit_id?.codex||{},k=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}(g),l=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}(g),m=Math.max(0,(0,e.IQ)(g.rate_limit_reset_credits?.available_count,0)),n={};return j(n,"",i),j(n,"review",k),j(n,"spark",l),{plan:g.plan_type||g.summary?.plan||"unknown",limitReached:h(i)?.limit_reached||!1,reviewLimitReached:h(k)?.limit_reached||!1,sparkLimitReached:h(l)?.limit_reached||!1,resetCredits:{availableCount:m},quotas:n}}catch(a){throw Error(`Failed to fetch Codex usage: ${a.message}`)}}async function l(a,b=null,c=null){var h,i;if(!a)throw Error("No Codex access token available. Please re-authorize the connection.");let j=c?.workspaceId||c?.accountId||c?.chatgptAccountId||null,k={Authorization:`Bearer ${a}`,Accept:"application/json","OpenAI-Beta":"codex-1",originator:"codex_cli_rs"};j&&(k["ChatGPT-Account-ID"]=j);let m=await (0,d.proxyAwareFetch)(f.resetCreditsUrl,{method:"GET",headers:k},b),n=null;try{n=await m.json()}catch{n=null}if(!m.ok)throw Error((h=n?.message||n?.error||n?.detail,i=`Codex reset credits API unavailable (${m.status}).`,h?"string"==typeof h?h:"string"==typeof h.message?h.message:JSON.stringify(h):i));let o=Array.isArray(n?.credits)?n.credits:[];return{availableCount:Math.max(0,(0,e.IQ)(n?.available_count??n?.availableCount,0)),credits:o.map(a=>({status:String(a?.status||"unknown"),grantedAt:g(a?.granted_at??a?.grantedAt),expiresAt:g(a?.expires_at??a?.expiresAt)}))}}async function m(a,b,c=null){let g;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.");let h=null;try{g=await (0,d.proxyAwareFetch)(f.resetCreditsConsumeUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({redeem_request_id:b})},c);let e=await g.text();h=e?JSON.parse(e):null}catch(a){throw Error(`Failed to consume Codex reset credit: ${a.message}`)}let i=h?.code||null,j=(0,e.IQ)(h?.windows_reset,0);return{ok:g.ok&&("reset"===i||j>0),noCredit:g.ok&&"no_credit"===i,status:g.status,code:i,windowsReset:j,message:h?.message||null,raw:h}}},18271:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>n,refreshAndUpdateCredentials:()=>m});var e=c(48895),f=c(89718),g=c(95655),h=c(8521),i=c(55330),j=c(39326),k=c(40615),l=a([e,i]);[e,i]=l.then?(await l)():l;let o=["expired","authentication","unauthorized","401","re-authorize"];async function m(a,b=!1,c=null){let d=a.id?await (0,f.Mc)(a.id):null;d&&(a=d);let e=(0,i.getExecutor)(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 j=await e.refreshCredentials(g,console,c);if(j&&(0,h.jT)(j))throw Error("Refresh token invalid or reused. Please re-authorize the connection.");if(!j){if(a.accessToken)return{connection:a,refreshed:!1};throw Error("Failed to refresh credentials. Please re-authorize the connection.")}let k={updatedAt:new Date().toISOString()};j.accessToken&&(k.accessToken=j.accessToken),j.refreshToken&&(k.refreshToken=j.refreshToken),j.idToken&&(k.idToken=j.idToken),j.lastRefreshAt&&(k.lastRefreshAt=j.lastRefreshAt),j.expiresIn?(k.expiresAt=new Date(Date.now()+1e3*j.expiresIn).toISOString(),k.expiresIn=j.expiresIn):j.expiresAt&&(k.expiresAt=j.expiresAt);let l={...j.providerSpecificData||{},...j.copilotToken?{copilotToken:j.copilotToken}:{},...j.copilotTokenExpiresAt?{copilotTokenExpiresAt:j.copilotTokenExpiresAt}:{}};return Object.keys(l).length>0&&(k.providerSpecificData={...a.providerSpecificData||{},...l}),await (0,f.updateProviderConnection)(a.id,k),{connection:{...a,...k,providerSpecificData:k.providerSpecificData||a.providerSpecificData},refreshed:!0}}async function n(a,{params:b}){let c;try{let{connectionId:d}=await b,e="1"===new URL(a.url).searchParams.get("force");if(!(c=await (0,f.Mc)(d)))return Response.json({error:"Connection not found"},{status:404});let h="oauth"===c.authType,i=("apikey"===c.authType||"api_key"===c.authType)&&k.jO.includes(c.provider);if(!h&&!i)return Response.json({message:"Usage not available for this connection"});let l=await (0,j.B)(c.providerSpecificData),n={connectionProxyEnabled:!0===l.connectionProxyEnabled,connectionProxyUrl:l.connectionProxyUrl||"",connectionNoProxy:l.connectionNoProxy||"",vercelRelayUrl:l.vercelRelayUrl||"",strictProxy:!1};if(h)try{c=(await m(c,!1,n)).connection}catch(a){return console.error("[Usage API] Credential refresh failed:",a),Response.json({error:`Credential refresh failed: ${a.message}`},{status:401})}let p=await (0,g.my)(c,n,{force:e});if(h&&function(a){if(!a?.message)return!1;let b=a.message.toLowerCase();return o.some(a=>b.includes(a))}(p)&&c.refreshToken)try{c=(await m(c,!0,n)).connection,p=await (0,g.my)(c,n,{force:e})}catch(a){console.warn(`[Usage] ${c.provider}: force refresh failed: ${a.message}`)}return Response.json(p)}catch(b){let a=c?.provider??"unknown";return console.warn(`[Usage] ${a}: ${b.message}`),Response.json({error:b.message},{status:500})}}d()}catch(a){d(a)}})},69788:(a,b,c)=>{c.d(b,{Ut:()=>l,gl:()=>j});var d=c(39609),e=c(74129),f=c(24295);let g={oauthUsageUrl:(0,f.U)("claude").oauthUrl,usageUrl:(0,f.U)("claude").orgUrl,settingsUrl:(0,f.U)("claude").settingsUrl,profileUrl:(0,f.U)("claude").profileUrl,resetUrl:(0,f.U)("claude").resetUrl,apiVersion:e.b8,userAgent:`claude-cli/${e.t4} (external, cli)`},h=new Map,i=new Map;async function j(a,b=null,c={}){let d=c?.force===!0;if(!d&&a){let b=i.get(a);if(b?.promise)return b.promise;if(b&&b.expiresAt>Date.now())return b.result}let e=!d&&a&&i.get(a)?.result||null,f=(async()=>{let c=await k(a,b);return a&&c?.quotas?(i.set(a,{result:c,expiresAt:Date.now()+3e5}),c):e||c})();return a&&i.set(a,{promise:f}),f}async function k(a,b=null){try{let c=h.get(a);if(c&&Date.now()<c)return await m(a,b);let e=await (0,d.proxyAwareFetch)(`${g.oauthUsageUrl}?cedar_ember=1`,{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":g.apiVersion,"User-Agent":g.userAgent}},b);if(e.ok){let a=await e.json(),b={},c=a=>a&&"object"==typeof a&&"number"==typeof a.utilization,d=a=>{let b=a.utilization,c=Math.max(0,100-b);return{used:b,total:100,remaining:c,remainingPercentage:c,resetAt:(0,f.eZ)(a.resets_at),unlimited:!1}};for(let[e,f]of(c(a.five_hour)&&(b["session (5h)"]=d(a.five_hour)),c(a.seven_day)&&(b["weekly (7d)"]=d(a.seven_day)),Object.entries(a)))if(e.startsWith("seven_day_")&&"seven_day"!==e&&c(f)){let a=e.replace("seven_day_","");b[`weekly ${a} (7d)`]=d(f)}if(Array.isArray(a.limits))for(let c of a.limits){if(c?.kind!=="weekly_scoped")continue;let a=String(c?.scope?.model?.display_name||"").trim().toLowerCase();a&&"number"==typeof c.percent&&(b[`weekly ${a} (7d)`]=d({utilization:Math.max(0,Math.min(100,c.percent)),resets_at:c.resets_at}))}return{plan:"Claude Code",extraUsage:a.extra_usage??null,resetCredits:function(a){if(!a?.eligible||!Array.isArray(a.grants))return null;let b=a.grants.filter(a=>a?.id&&!a.paused&&Number(a.resets_left)>0),c=b.find(b=>b.id===a.next_grant_id)||b[0]||null;return{availableCount:b.reduce((a,b)=>a+Number(b.resets_left),0),nextGrantId:c?.id||null,expiresAt:c?.ends_at||null,clears:c?.clears||[],cooldownUntil:a.cooldown_until||null,weeklyResetsAt:a.weekly_resets_at||null,grants:a.grants.filter(a=>a?.id).map(a=>({id:a.id,label:a.label||"",resetsLeft:Number(a.resets_left)||0,resetsTotal:Number(a.resets_total)||0,startsAt:a.starts_at||null,endsAt:a.ends_at||null,clears:Array.isArray(a.clears)?a.clears:[],paused:!0===a.paused,usableNow:!0===a.usable_now,useRequiresLimit:!1!==a.use_requires_limit}))}}(a.cedar_ember),quotas:b}}return 429===e.status&&h.set(a,Date.now()+18e4),console.warn(`[Claude Usage] OAuth endpoint returned ${e.status}, falling back to legacy`),await m(a,b)}catch(a){return{message:`Claude connected. Unable to fetch usage: ${a.message}`}}}async function l(a,b,c=null){if(!a)throw Error("No Claude access token available. Please re-authorize the connection.");if(!/^[a-z0-9_-]{1,40}$/.test(b||""))throw Error("Invalid reset grant id.");let e={Authorization:`Bearer ${a}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":g.apiVersion,"User-Agent":g.userAgent,"Content-Type":"application/json"},f=await (0,d.proxyAwareFetch)(g.profileUrl,{method:"GET",headers:e},c),h=await f.json().catch(()=>null),j=h?.organization?.uuid;if(!f.ok||!j)throw Error(`Cannot resolve Claude organization (${f.status}).`);let k=await (0,d.proxyAwareFetch)(g.resetUrl.replace("{org_id}",j),{method:"POST",headers:e,body:JSON.stringify({program:"cedar_ember",grant_id:b,request_id:crypto.randomUUID()})},c),m=await k.json().catch(()=>null);return i.delete(a),{ok:k.ok&&m?.result==="reset",status:k.status,result:m?.result||null,reason:m?.reason||null,resetsLeft:m?.resets_left??null,message:m?.error?.message||null}}async function m(a,b=null){try{let c=await (0,d.proxyAwareFetch)(g.settingsUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":g.apiVersion}},b);if(c.ok){let e=await c.json();if(e.organization_id){let c=await (0,d.proxyAwareFetch)(g.usageUrl.replace("{org_id}",e.organization_id),{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":g.apiVersion}},b);if(c.ok){let a=await c.json();return{plan:e.plan||"Unknown",organization:e.organization_name,quotas:a}}}return{plan:e.plan||"Unknown",organization:e.organization_name,message:"Claude connected. Usage details require admin access."}}return{message:"Claude connected. Usage API requires admin permissions."}}catch(a){return{message:`Claude connected. Unable to fetch usage: ${a.message}`}}}},95655:(a,b,c)=>{c.d(b,{Ut:()=>k.Ut,RO:()=>l.RO,Yt:()=>l.Yt,my:()=>aX});var d=c(39609),e=c(26070),f=c(24295);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(91211),k=c(69788),l=c(6551),m=c(6382);async function n(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,m.We)(e),k=new URLSearchParams({isEmailRequired:"true",origin:"AI_EDITOR",resourceType:"AGENTIC_REQUEST"}),l=!1,o=[];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),o.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){o.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:o.length>0?`Unable to fetch Kiro usage right now. (${o[o.length-1]})`:"Unable to fetch Kiro usage right now.",quotas:{}}}let o={minimax:(0,f.U)("minimax").urls,"minimax-cn":(0,f.U)("minimax-cn").urls};function p(a,b,c){return a&&"object"==typeof a?a[b]??a[c]??null:null}function q(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 r(a){return Math.max(0,Number(p(a,"current_interval_total_count","currentIntervalTotalCount"))||0)}function s(a){return Math.max(0,Number(p(a,"current_weekly_total_count","currentWeeklyTotalCount"))||0)}function t(a){return!!(r(a)>0||s(a)>0)||null!==q(a,"current_interval_remaining_percent","currentIntervalRemainingPercent")||null!==q(a,"current_weekly_remaining_percent","currentWeeklyRemainingPercent")}function u(a,b,c,d,e,g,h,i,j,k){let l=d(c),m=q(c,h,i);if(l<=0&&null===m)return;let n=Math.max(0,Number(p(c,e,g))||0),o=l,r=n;l<=0&&(o=100,r=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,r,function(a,b,c,d,e,g){let h=Number(p(a,c,d))||0;return h>0?new Date(b+h).toISOString():(0,f.eZ)(p(a,e,g))}(c,...j),k,m)}async function v(a,b,c=null){if(!a)return{message:"MiniMax API key not available."};let e=o[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,q=(Array.isArray(o)?o:[]).filter(t);if(0===q.length)return{message:"MiniMax connected. No quota data was returned."};let v=Date.now(),w=g.includes("/coding_plan/remains"),x={};for(let a of q){let b=function(a){let b=String(p(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);u(x,`${b} (5h)`,a,r,"current_interval_usage_count","currentIntervalUsageCount","current_interval_remaining_percent","currentIntervalRemainingPercent",[v,"remains_time","remainsTime","end_time","endTime"],w),u(x,`${b} (7d)`,a,s,"current_weekly_usage_count","currentWeeklyUsageCount","current_weekly_remaining_percent","currentWeeklyRemainingPercent",[v,"weekly_remains_time","weeklyRemainsTime","weekly_end_time","weeklyEndTime"],w)}if(0===Object.keys(x).length)return{message:"MiniMax connected. Unable to extract quota usage."};return{quotas:x}}catch(a){if(f=a.message,!h)break}}return{message:f?`MiniMax connected. Unable to fetch usage: ${f}`:"MiniMax connected. Unable to fetch usage."}}var w=c(77598),x=c(4338);let y="I*7Cf%WZ#S&%1RlZJ&C2",z={"minimax-code":{agent:"https://agent.minimaxi.com",platform:"https://www.minimaxi.com",lang:"zh"},"minimax-code-global":{agent:"https://agent.minimax.io",platform:"https://platform.minimax.io",lang:"en"}},A=a=>(0,w.createHash)("md5").update(a).digest("hex"),B=a=>a&&"object"==typeof a&&!Array.isArray(a)?a:void 0,C=a=>"number"==typeof a&&Number.isFinite(a)?a:void 0,D=(a,b)=>"string"==typeof a?.[b]&&a[b].trim()?a[b].trim():void 0;class E extends Error{}async function F(a,b,c,d){let e,{url:f,init:g}=function(a,b,{access:c,userID:d,body:e,now:f=Date.now(),tzOffsetSec:g=-60*new Date().getTimezoneOffset()}={}){let h=new URL(b,a.agent);h.search=new URLSearchParams({device_platform:"mcode",biz_id:"3",app_id:"3001",version_code:"22201",unix:String(f),timezone_offset:String(g),sys_language:a.lang,lang:a.lang,device_id:"0",os_name:process.platform,browser_name:"mcode",user_id:String(d??"").trim()||"0",client:"mcode"}).toString();let i=h.pathname+h.search,j=Math.floor(f/1e3),k=void 0===e?void 0:JSON.stringify(e),l={Accept:"application/json","Content-Type":"application/json","User-Agent":"MiniMaxCode",Authorization:`Bearer ${c}`,yy:void 0===k?A(`${encodeURIComponent(i)}_{}${A(String(f))}ooui`):A(`${encodeURIComponent(i)}_${k}${A(String(f))}ooui`),"x-timestamp":String(j),"x-signature":void 0===k?A(`${j}${y}`):A(`${j}${y}${k}`)};return{url:h.toString(),init:{method:void 0===k?"GET":"POST",headers:l,...void 0===k?{}:{body:k}}}}(a,b,c),h=await fetch(f,{...g,signal:AbortSignal.timeout(15e3)});if(401===h.status||403===h.status)throw new E(`${d}: the sign-in was refused (HTTP ${h.status})`);if(!h.ok)throw Error(`${d}: HTTP ${h.status}`);try{e=B(JSON.parse(await h.text()))}catch{}if(!e)throw Error(`${d}: not JSON`);var i=e;let j=B(i?.statusInfo);if("number"==typeof j?.code&&0!==j.code){if(1000048===j.code)throw new E(`${d}: the sign-in was refused`);throw Error(`${d}: ${D(j,"message")??D(j,"msg")??"status "+j.code}`)}let k=B(i?.base_resp);if("number"==typeof k?.status_code&&0!==k.status_code)throw Error(`${d}: ${D(k,"status_msg")??"status "+k.status_code}`);return i}async function G(a,b){let c=await F(a,"/v1/api/user/info",{access:b},"account"),d=B(c.data),e=B(d?.userInfo)??B(d?.user_info)??B(c.userInfo)??B(c.user_info),f=D(e,"realUserID")??D(e,"real_user_id");if(!f)throw Error("account: no user id in the reply");let g=(...a)=>a.map(a=>D(e,a)).find(Boolean);return{realUserID:f,email:g("userEmail","email","userMail","user_email"),name:g("name","userName","user_name")}}function H(a){let b,c=B(a?.data),d=b=>a?.[b]??c?.[b],e=a=>"string"==typeof d(a)&&d(a).trim()?d(a).trim():void 0,f="boolean"==typeof d("has_token_plan")?d("has_token_plan"):void 0,g=C(d("token_plan_expires_at")),h=D(B(a?.op_credit_summary)??B(c?.op_credit_summary),"total_remaining_amount")??("string"==typeof(b=d("opcredit_balance"))&&b.trim()?b.trim():"number"==typeof b&&Number.isFinite(b)?String(b):void 0);return{...void 0!==f?{hasTokenPlan:f}:{},...e("op_group_id")?{opGroupId:e("op_group_id")}:{},...e("token_plan_tier")?{tier:e("token_plan_tier")}:{},...g>0?{expiresAt:g}:{},...void 0!==h?{balance:h}:{}}}async function I(a,b,c){let d;try{let e=await F(a,"/matrix/api/v1/user/get_user_extra_info",{access:b,userID:c,body:{}},"workspace");for(let a of Array.isArray(e.workspaces)?e.workspaces:Array.isArray(e.data?.workspaces)?e.data.workspaces:[]){if(0!==C(a?.workspace_type))continue;let b="number"==typeof a.workspace_id&&a.workspace_id>=0?a.workspace_id:D(a,"workspace_id");if(void 0!==b){d={id:b,m:H(a)};break}}}catch(d){if(d instanceof E)throw d;return H(await F(a,"/matrix/api/v1/commerce/get_membership_info",{access:b,userID:c,body:{}},"membership"))}if(!d)return{};try{let e=H(await F(a,"/matrix/api/v1/commerce/get_membership_info",{access:b,userID:c,body:{workspace_id:d.id}},"membership")),f=!0===d.m.hasTokenPlan||!0===e.hasTokenPlan||!1!==d.m.hasTokenPlan&&!1!==e.hasTokenPlan&&void 0;return{...d.m,...e,...void 0!==f?{hasTokenPlan:f}:{},...d.m.opGroupId||e.opGroupId?{opGroupId:d.m.opGroupId??e.opGroupId}:{}}}catch(a){if(a instanceof E)throw a;return d.m}}async function J(a,b,c){let d=await fetch(`${a.platform}/v1/api/openplatform/coding_plan/remains`,{headers:{Accept:"application/json",Authorization:`Bearer ${b}`,...c?{"X-Group-Id":c}:{}},signal:AbortSignal.timeout(15e3)});if(!d.ok)throw Error(`M Plan: HTTP ${d.status}`);return function(a){let b=B(a?.base_resp);if(b&&"number"==typeof b.status_code&&0!==b.status_code)throw Error(D(b,"status_msg")??`MiniMax said ${b.status_code}`);if(!b&&!Array.isArray(a?.model_remains))throw Error("no plan in the reply");let c=a=>a<1e12?1e3*a:a,d=a=>0===C(a),e=[];for(let b of Array.isArray(a.model_remains)?a.model_remains:[]){let a=String(b?.model_name??"").trim();if(!a||3===C(b.current_interval_status)&&3===C(b.current_weekly_status)&&d(b.current_interval_total_count)&&d(b.current_weekly_total_count))continue;let f="general"===a.toLowerCase();for(let d of[{left:C(b.current_interval_remaining_percent),status:C(b.current_interval_status)??0,start:C(b.start_time)??0,end:C(b.end_time)??0,week:!1},{left:C(b.current_weekly_remaining_percent),status:C(b.current_weekly_status)??0,start:C(b.weekly_start_time)??0,end:C(b.weekly_end_time)??0,week:!0}]){if(3===d.status||void 0===d.left&&2!==d.status)continue;let b=2===d.status?0:Math.max(0,Math.min(100,d.left)),g=0;d.start>0&&d.end>d.start?g=c(d.end)-c(d.start):d.week&&(g=6048e5);let h=d.week?"7 days":g>864e5&&g%864e5==0?`${g/864e5} days`:g>=36e5&&g%36e5==0?`${g/36e5} hours`:g>0?`${Math.floor(g/6e4)} minutes`:"Allowance",i=f?h:`${a[0].toUpperCase()+a.slice(1)} \xb7 ${h}`;e.push({name:i,used:100-b,total:100,remaining:b,remainingPercentage:b,resetAt:d.end>0?new Date(c(d.end)).toISOString():null})}}return e}(await d.json().catch(()=>null))}async function K(a){let b=z[a.provider],c=a.accessToken;if(!c&&(0,x.xK)(a))try{c=(await (0,x.u_)(a)).accessToken}catch{c=null}if(!b||!c)return{message:`Usage API not implemented for ${a.provider}`};try{let d=D(a.providerSpecificData||{},"realUserID"),e=null;d||(d=(e=await G(b,c)).realUserID);let f=await I(b,c,d),g={};if(void 0!==f.balance){let a=Number(f.balance);g.Credits={used:0,total:Number.isFinite(a)?a:0,isCreditBalance:!0,currency:"credits"}}if(f.hasTokenPlan&&f.opGroupId)try{for(let a of(await J(b,c,f.opGroupId)))g[a.name]=a}catch(a){g["M Plan windows"]={name:"M Plan windows",used:0,total:0,resetAt:null,message:a?.message??String(a)}}return 0===Object.keys(g).length&&(g.Plan={name:"Plan",used:0,total:0,resetAt:null,message:!1===f.hasTokenPlan?"Free account (no M Plan)":"No usage data returned"}),{quotas:g,plan:f.hasTokenPlan?f.tier?`M Plan ${f.tier}`:"M Plan":"Free",...f.expiresAt>0?{planExpiresAt:new Date(f.expiresAt<1e12?1e3*f.expiresAt:f.expiresAt).toISOString()}:{},user:e?.email||e?.name||D(a.providerSpecificData||{},"realUserID")||d||null}}catch(a){if(a instanceof E)return{message:`MiniMax Code sign-in expired — unauthorized, please re-authorize (${a.message})`};return{message:a?.message??String(a)}}}function L(a,b){let c=Number(a??b);return Number.isFinite(c)?c:0}async function M(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:L(a.CycleCapacityUsedPrecise,a.CycleCapacityUsed),total:L(a.CycleCapacitySizePrecise,a.CycleCapacitySize),resetAt:(0,f.eZ)(a.CycleEndTime),unlimited:!1,recurring:!0}}),o.forEach((a,b)=>{p[`Bonus Pack ${b+1}`]={used:L(a.CapacityUsedPrecise,a.CapacityUsed),total:L(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 N(a,b,c,d=null){return M("codebuddy-cn",a,b,c,d)}async function O(a,b,c,d=null){return M("codebuddy-intl",a,b,c,d)}var P=c(90737);function Q(a,b=0){if(!Buffer.isBuffer(a)||b<0||a.length-b<5)return null;let c=a[b];if(0!==c&&1!==c&&128!==c&&129!==c)return null;let d=b+5,e=a.readUInt32BE(b+1);return e>a.length-d?null:{flag:c,payloadStart:d,payloadLength:e}}function R(a,b){let c=0n,d=0n,e=b;for(;;){if(e>=a.length)return null;let b=a[e];if(c|=BigInt(127&b)<<d,e+=1,(128&b)==0)break;if((d+=7n)>70n)return null}return{value:Number(c),next:e}}function S(a,b,c,d){return b+c>a.length?null:{field:{wireType:d,bytes:a.subarray(b,b+c)},next:b+c}}function T(a){let b=new Map,c=0;for(;c<a.length;){let d=function(a,b){let c=R(a,b);if(!c)return null;let d=c.value>>>3,e=7&c.value;if(0===d)return null;if(0===e){let b=R(a,c.next);return b?{fieldNumber:d,field:{wireType:0,value:b.value},next:b.next}:null}if(2===e){let b=function(a,b){let c=R(a,b);if(!c)return null;let{value:d,next:e}=c;return d<0||e+d>a.length?null:{field:{wireType:2,bytes:a.subarray(e,e+d)},next:e+d}}(a,c.next);return b?{fieldNumber:d,field:b.field,next:b.next}:null}if(1===e){let b=S(a,c.next,8,1);return b?{fieldNumber:d,field:b.field,next:b.next}:null}if(5===e){let b=S(a,c.next,4,5);return b?{fieldNumber:d,field:b.field,next:b.next}:null}return null}(a,c);if(!d)return null;b.set(d.fieldNumber,d.field),c=d.next}return b}let U=(0,f.U)("grok-cli"),V=U.url||"https://cli-chat-proxy.grok.com/v1/billing?format=credits",W=U.userUrl||"https://cli-chat-proxy.grok.com/v1/user?include=subscription",X=Buffer.from([0,0,0,0,0]);function Y(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 Z(a,b){let c=a?.subscriptionTier??a?.subscription_tier??a?.subscription?.tier??b?.subscriptionTier??b?.subscription_tier;return"string"==typeof c?c.trim():""}function $({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}}async function _(a,b=null){if(!a)return null;try{let c=await (0,d.proxyAwareFetch)("https://grok.com/grok_api_v2.GrokBuildBilling/GetGrokCreditsConfig",{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/grpc-web+proto","X-Grpc-Web":"1",Accept:"application/grpc-web+proto"},body:X},b);if(!c?.ok)return null;let e=await c.arrayBuffer().catch(()=>null);if(!e)return null;return function(a){if(!a||!Buffer.isBuffer(a)||0===a.length)return null;try{var b,c;let d=null!==Q(a,0)?function(a){let b=0;for(;b<a.length;){let c=Q(a,b);if(!c)break;let d=c.payloadStart+c.payloadLength;if((128&c.flag)==0)return a.subarray(c.payloadStart,d);b=d}return null}(a):a;if(!d)return null;let e=T(d);if(!e)return null;let f=(b=e.get(1))&&2===b.wireType?T(b.bytes):null;if(!f)return null;let g=(c=f.get(1))?5===c.wireType?c.bytes.readFloatLE(0):1===c.wireType?c.bytes.readDoubleLE(0):null:0;if(null===g||!Number.isFinite(g)||g<0)return null;return{percentUsed:Math.min(100,100*g),resetAt:function(a){if(!a||2!==a.wireType)return null;let b=T(a.bytes);if(!b)return null;let c=b.get(1),d=b.get(2),e=new Date(1e3*(c?.wireType===0?c.value:0)+Math.round((d?.wireType===0?d.value:0)/1e6));return Number.isNaN(e.getTime())?null:e.toISOString()}(f.get(5))}}catch{return null}}(Buffer.from(e))}catch{return null}}async function aa(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":P.fZ,"x-xai-token-auth":"xai-grok-cli","x-grok-client-identifier":P.rK,"x-grok-client-version":P.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[b,h]=await Promise.all([(0,d.proxyAwareFetch)(V,{method:"GET",headers:e},c),(0,d.proxyAwareFetch)(W,{method:"GET",headers:e},c).catch(()=>null)]);if(401===b.status||403===b.status)return{message:"Grok CLI authentication expired. Please re-authorize."};if(!b.ok){let a=await b.text().catch(()=>""),c=a?`: ${a.slice(0,200)}`:"";return{message:`Grok CLI billing API error (${b.status})${c}`}}let i=await b.json().catch(()=>null);if(!i||"object"!=typeof i)return{message:"Grok CLI billing response was not JSON."};let j=null;h?.ok&&(j=await h.json().catch(()=>null));let k=function(a,b=null){let c,d=a&&"object"==typeof a?a:{},e=d.config&&"object"==typeof d.config&&!Array.isArray(d.config)?d.config:d,g=(0,f.eZ)(e.billingPeriodEnd)||(0,f.eZ)(e.billing_period_end)||(0,f.eZ)(e.currentPeriod?.end)||(0,f.eZ)(e.resetAt||e.resetsAt||e.periodEnd)||(0,f.eZ)(d.billingPeriodEnd)||(0,f.eZ)(d.billing_period_end)||(0,f.eZ)(d.resetAt||d.resetsAt||d.periodEnd)||null,h={},i=Z(b,e),j=!!i&&!/^(free|none|null)$/i.test(i),k=Y(e.monthlyLimit??e.monthly_limit??d.monthlyLimit??d.monthly_limit,0/0),l=Y(e.includedUsed??e.included_used??d.includedUsed??d.included_used,0/0),m=Y(e.totalUsed??e.total_used??d.totalUsed??d.total_used,0/0);Number.isFinite(k)&&k>0&&(h["Monthly included"]=$({used:Number.isFinite(l)?l:Number.isFinite(m)?m:0,total:k,resetAt:g}));let n=Y(e.onDemandCap??d.onDemandCap,0/0),o=Y(e.onDemandUsed??d.onDemandUsed,0/0);if(Number.isFinite(n)&&n>0){let a=Number.isFinite(o)?Math.max(0,o):0;h["On-demand"]=$({used:a,total:n,resetAt:g})}else!j&&Number.isFinite(n)&&0===n&&Number.isFinite(o)&&(h["On-demand"]={used:1,total:1,remainingPercentage:0,resetAt:g,unlimited:!1});let p=Y(e.prepaidBalance??d.prepaidBalance,0/0);Number.isFinite(p)&&p>0&&(h.Prepaid={used:0,total:p,remainingPercentage:100,resetAt:null,unlimited:!1});let q=Y(e.creditUsagePercent??e.credit_usage_percent??d.creditUsagePercent,0/0);for(let a of(Number.isFinite(q)&&q>=0&&(h["Weekly SuperGrok"]=$({used:Math.max(0,Math.min(100,q)),total:100,resetAt:g})),[d.credits,d.creditBalance,d.usage,e.credits,e.includedCredits,e.subscriptionCredits].filter(a=>a&&"object"==typeof a&&!Array.isArray(a)))){let b=Y(a.total??a.limit??a.cap??a.allocation??a.amount,0/0),c=Y(a.used??a.spent??a.consumed,0/0),d=Y(a.remaining??a.balance??a.left,0/0);if(Number.isFinite(b)&&b>0){let e=Number.isFinite(c)?c:Number.isFinite(d)?Math.max(0,b-d):0;h.Credits||(h.Credits=$({used:e,total:b,resetAt:(0,f.eZ)(a.resetAt||a.resetsAt||a.end)||g}))}else Number.isFinite(d)&&d>=0&&!h.Credits&&(h.Credits={used:0,total:d>0?d:1,remainingPercentage:100*(d>0),resetAt:g,unlimited:!1})}let r=Object.keys(h).length>0&&Object.values(h).every(a=>!0!==a.unlimited&&(a.remainingPercentage??100)<=0);return{plan:(c=Z(b,e))?c.replace(/[_-]+/g," ").replace(/\b\w/g,a=>a.toUpperCase()):b?.hasGrokCodeAccess===!0?"Grok Code":(e?.isUnifiedBillingUser,"Grok Build"),quotas:h,periodEnd:g,exhausted:r,subscriptionAccess:j,rawConfig:e}}(i,j);if(k.plan=function(a){try{return({0:"Free",1:"SuperGrok",2:"X Basic",3:"X Premium",4:"X Premium Plus",5:"SuperGrok Heavy",6:"SuperGrok Lite"})[JSON.parse(Buffer.from(a.split(".")[1],"base64url")).tier]||""}catch{return""}}(a)||k.plan,!k.quotas||0===Object.keys(k.quotas).length){var g;let b=(g=await _(a,c))&&Number.isFinite(g.percentUsed)?{"Weekly SuperGrok":$({used:Math.round(Math.max(0,Math.min(100,g.percentUsed))),total:100,resetAt:g.resetAt||null})}:null;if(b)return{plan:k.plan,quotas:b};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}`}}}var ab=c(75924);let ac={LEVEL_BASIC:"Moderato",LEVEL_INTERMEDIATE:"Allegretto",LEVEL_ADVANCED:"Allegro",LEVEL_STANDARD:"Vivace"};function ad({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 ae(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,ab.buildKimiHeaders)(e?.deviceId)};try{let a,b=await (0,d.proxyAwareFetch)("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 g={},h=a?.usage&&"object"==typeof a.usage?a.usage:{},j=(0,f.IQ)(h.limit??h.Limit,0),k=(0,f.IQ)(h.used??h.Used,0),l=h.remaining??h.Remaining,m=null!=l&&""!==l?(0,f.IQ)(l,0/0):0/0,n=h.resetTime||h.ResetTime||h.reset_at||h.resetAt;for(let b of(j>0&&(g.Weekly=ad({used:k,total:j,remaining:Number.isFinite(m)?m:null,resetAt:(0,f.eZ)(n)})),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,0/0),e=a.resetTime||a.reset_at||a.resetAt;if(c>0){let a=Number.isFinite(d)?d:Math.max(0,c);g.Ratelimit=ad({used:Math.max(0,c-a),total:c,remaining:a,resetAt:(0,f.eZ)(e)})}}let o=a?.user?.membership?.level,p=function(a){if(!a)return"";let b=String(a);return ac[b]?ac[b]:b.replace(/^LEVEL_/,"").toLowerCase()}(o)||"Kimi Coding";if(Object.keys(g).length>0)return{plan:p,quotas:g};return{plan:p,message:"Kimi Coding connected. Usage tracked per request."}}catch(a){return{message:`Kimi Coding connected. Unable to fetch usage: ${a.message}`}}}async function af(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:!1,isCreditBalance:!0,currency:a.currency}}return{plan:h?"DeepSeek":"DeepSeek (Insufficient Balance)",quotas:i}}catch(a){return{message:`DeepSeek error: ${a.message}`}}}let ag=(0,f.U)("opencode-go").url,ah={rolling:"Rolling",weekly:"Weekly",monthly:"Monthly"};async function ai(a=null,b=null){if(!a||"string"!=typeof a||!a.trim())return{message:"OpenCode Go API key not available. Add a key to view usage."};try{let c=await (0,d.proxyAwareFetch)(ag,{method:"GET",headers:{Authorization:`Bearer ${a.trim()}`,Accept:"application/json"}},b);if(401===c.status)return{plan:"OpenCode Go",message:"OpenCode Go authentication failed. Check the API key."};if(403===c.status){let a=await c.json().catch(()=>null),b=a?.error?.type==="EntitlementError";return{plan:"OpenCode Go",message:b?"OpenCode Go subscription required for this API key.":"OpenCode Go access forbidden for this API key."}}if(!c.ok)return{plan:"OpenCode Go",message:`OpenCode Go usage API error (${c.status}).`};let e=await c.json().catch(()=>null);if(!e?.usage||"object"!=typeof e.usage)return{plan:"OpenCode Go",message:"OpenCode Go usage response did not contain quota data."};let g={};for(let[a,b]of Object.entries(ah)){let c=e.usage[a];if(!c||"object"!=typeof c)continue;let d=function(a){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 null}(c.percent);if(null===d)continue;let h=Math.max(0,Math.min(100,(0,f.IQ)(d,0)));g[b]={used:h,total:100,remaining:100-h,remainingPercentage:100-h,resetAt:(0,f.eZ)(c.resetsAt),unlimited:!1}}if(0===Object.keys(g).length)return{plan:"OpenCode Go",message:"OpenCode Go usage response did not contain valid quota data."};return{plan:"OpenCode Go",quotas:g}}catch(a){return{message:`OpenCode Go error: ${a.message}`}}}let aj=(0,f.U)("opencode-zen").url,ak={rolling:"Rolling",weekly:"Weekly",monthly:"Monthly"};async function al(a=null,b=null){if(!a||"string"!=typeof a||!a.trim())return{message:"OpenCode Zen API key not available. Add a key to view usage."};try{let c=await (0,d.proxyAwareFetch)(aj,{method:"GET",headers:{Authorization:`Bearer ${a.trim()}`,Accept:"application/json"}},b);if(401===c.status)return{plan:"OpenCode Zen",message:"OpenCode Zen authentication failed. Check the API key."};if(403===c.status){let a=await c.json().catch(()=>null),b=a?.error?.type==="EntitlementError";return{plan:"OpenCode Zen",message:b?"OpenCode Zen billing required for this API key.":"OpenCode Zen access forbidden for this API key."}}if(!c.ok)return{plan:"OpenCode Zen",message:`OpenCode Zen usage API error (${c.status}).`};let e=await c.json().catch(()=>null);if(!e?.usage||"object"!=typeof e.usage)return{plan:"OpenCode Zen",message:"OpenCode Zen usage response did not contain quota data."};let g={};for(let[a,b]of Object.entries(ak)){let c=e.usage[a];if(!c||"object"!=typeof c)continue;let d=function(a){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 null}(c.percent);if(null===d)continue;let h=Math.max(0,Math.min(100,(0,f.IQ)(d,0)));g[b]={used:h,total:100,remaining:100-h,remainingPercentage:100-h,resetAt:(0,f.eZ)(c.resetsAt),unlimited:!1}}if(0===Object.keys(g).length)return{plan:"OpenCode Zen",message:"OpenCode Zen usage response did not contain valid quota data."};return{plan:"OpenCode Zen",quotas:g}}catch(a){return{message:`OpenCode Zen error: ${a.message}`}}}let am=(0,f.U)("groq").url;function an(a,b,c,d){let e,f=a.get(b),g=a.get(c);if(null===f||null===g)return null;let h=Number(f),i=Number(g);return Number.isFinite(h)&&Number.isFinite(i)?{used:Math.max(0,h-i),total:h,resetAt:null===(e=function(a){let b;if("string"!=typeof a||!a.trim())return null;let c=/(\d+(?:\.\d+)?)(ms|s|m|h)/g,d=0,e=!1;for(;b=c.exec(a);){e=!0;let a=Number(b[1]),c=b[2];d+=a*("h"===c?36e5:"m"===c?6e4:"ms"===c?1:1e3)}return e?d:null}(a.get(d)))?null:new Date(Date.now()+e).toISOString(),unlimited:!1}:null}async function ao(a,b=null){if(!a||"string"!=typeof a||!a.trim())return{message:"Groq API key not available. Add a key to view usage."};try{let c=await (0,d.proxyAwareFetch)(am,{method:"GET",headers:{Authorization:`Bearer ${a.trim()}`,Accept:"application/json"}},b);if(401===c.status||403===c.status)return{plan:"Groq",message:"Groq authentication failed. Check the API key."};if(!c.ok){let a=await c.text().catch(()=>"");return{plan:"Groq",message:`Groq usage API error (${c.status})${a?`: ${a.slice(0,120)}`:""}`}}await c.text().catch(()=>{});let e=an(c.headers,"x-ratelimit-limit-requests","x-ratelimit-remaining-requests","x-ratelimit-reset-requests"),f=an(c.headers,"x-ratelimit-limit-tokens","x-ratelimit-remaining-tokens","x-ratelimit-reset-tokens");if(!e&&!f)return{plan:"Groq",message:"Groq connected. No rate-limit data reported for this key yet.",quotas:{}};let g={};return e&&(g.Requests=e),f&&(g.Tokens=f),{plan:"Groq",quotas:g}}catch(a){return{message:`Groq error: ${a.message}`}}}var ap=c(49804);function aq(a){if(null==a)return{unlimited:!1,total:0};if("unlimited"===a||a?.unlimited===!0)return{unlimited:!0,total:0};if("number"==typeof a&&Number.isFinite(a))return{unlimited:!1,total:Math.max(0,a)};if("string"==typeof a){let b=a.trim();if("unlimited"===b)return{unlimited:!0,total:0};let c=Number(b);if(Number.isFinite(c))return{unlimited:!1,total:Math.max(0,c)}}let b=a.limited??a.Limited;return"number"==typeof b&&Number.isFinite(b)?{unlimited:!1,total:Math.max(0,b)}:{unlimited:!1,total:0}}function ar(a,b,c,d=null){let e=Math.max(0,(0,f.IQ)(b,0)),g=aq(c);if(g.unlimited)return{used:e,total:0,remainingPercentage:100,resetAt:d||null,unlimited:!0};let h=g.total;if(h<=0)return{used:e,total:0,remainingPercentage:0,resetAt:d||null,unlimited:!1};let i=Math.min(e,h),j=Math.max(0,h-i);return{used:i,total:h,remainingPercentage:j/h*100,resetAt:d||null,unlimited:!1}}function as(a){return a&&"object"==typeof a?null!=a.limit?a.limit:a:null}async function at(a=null,b={},c=null){let d=b||{},e=d.userId;if(!a||"string"!=typeof a||!a.trim())return{message:"Zed access token not available. Re-connect Zed to view quota."};if(!e)return{message:"Zed credential is missing user id. Re-connect Zed to view quota."};let g={accessToken:a.trim(),providerSpecificData:d};try{let a=await (0,ap.qJ)(g,{proxyOptions:c});return function(a){let b,c=a?.plan||{},d=c.plan_v3||c.plan_v2||c.plan||a?.plan_v3||null,e=(0,f.eZ)(c.subscription_period?.ended_at)||(0,f.eZ)(c.subscriptionPeriod?.endedAt)||null,g={},h=c.usage||{},i=h.edit_predictions||h.editPredictions;i&&(g["Edit Predictions"]=ar("Edit Predictions",i.used,i.limit,e));let j=h.model_requests||h.modelRequests;if(j){let a=null!=j.limit?j.limit:as(j)?.limit,b=aq(a);(b.unlimited||b.total>0)&&(g["Hosted Model Requests"]=ar("Hosted Model Requests",j.used,a,e))}let k=j&&!(b=aq(j.limit??as(j)?.limit)).unlimited&&0===b.total?"Hosted AI models are billed per token (not request count). Edit Predictions are tracked below. Token spend is on dashboard.zed.dev.":null,l=function(a){let b=String(a||"").trim();if(!b)return"Zed";switch(b.toLowerCase()){case"zed_free":return"Zed Free";case"zed_pro":return"Zed Pro";case"zed_pro_trial":return"Zed Pro Trial";case"zed_student":return"Zed Student";case"zed_business":return"Zed Business";default:return b.replace(/_/g," ").split(/\s+/).map(a=>a.charAt(0).toUpperCase()+a.slice(1).toLowerCase()).join(" ")}}(d);(c.trial_started_at||c.trialStartedAt)&&!/trial/i.test(l)&&(l=`${l} (Trial active)`);let m=k;return(c.has_overdue_invoices||c.hasOverdueInvoices)&&(m="This Zed account has overdue invoices. Usage may be blocked until billing is resolved."),{plan:l,quotas:g,message:m,hasOverdueInvoices:!!(c.has_overdue_invoices||c.hasOverdueInvoices),trialStarted:!!(c.trial_started_at||c.trialStartedAt),planId:d||null,resetAt:e}}(a)}catch(b){let a=b?.status;if(401===a||403===a)return{message:"Zed authentication failed. Sign in again from the dashboard or Zed editor."};return{message:`Zed error: ${b.message||"Failed to fetch quota"}`}}}var au=c(12132);async function av(a=null,b=null,c=null){let e=await (0,au.getMimoAccountUsage)(b,c);if("number"==typeof e.percent&&Number.isFinite(e.percent)){let a=Math.max(0,Math.min(100,Math.round(e.percent))),b=null;if("number"==typeof e.resetAt&&e.resetAt>0)b=new Date(1e3*e.resetAt).toISOString();else if("string"==typeof e.resetDate){let a=new Date(`${e.resetDate}T00:00:00Z`);Number.isNaN(a.getTime())||(b=a.toISOString())}return{plan:"Xiaomi MiMo Desktop",quotas:{Weekly:{used:100-a,total:100,remainingPercentage:a,resetAt:b,unlimited:!1}}}}let f=a||b?.apiKey;if(!f||"string"!=typeof f||!f.trim())return{message:"Xiaomi MiMo Desktop not connected. Add credentials to view usage."};try{let a=await (0,d.proxyAwareFetch)("https://aistudio.xiaomimimo.com/open-apis/v1/user/usage",{method:"GET",headers:{Authorization:`Bearer ${f.trim()}`,"X-Mimo-Source":"mimocode-cli",Accept:"application/json"},signal:AbortSignal.timeout(1e4)},c);if(401===a.status)return{plan:"Xiaomi MiMo Desktop",message:"Weekly quota requires Xiaomi account session. API key alone is insufficient."};if(!a.ok)return{plan:"Xiaomi MiMo Desktop",message:`Usage API error (${a.status})`};let b=await a.json().catch(()=>null);if(!b||0!==b.code||!b.data)return{plan:"Xiaomi MiMo Desktop",message:"Usage endpoint returned unexpected response."};let{percent:e,resetDate:g}=b.data;if("number"!=typeof e||!Number.isFinite(e))return{plan:"Xiaomi MiMo Desktop",message:"Usage data missing percent field."};let h=Math.max(0,Math.min(100,Math.round(e))),i=null;if(g&&"string"==typeof g){let a=new Date(`${g}T00:00:00Z`);Number.isNaN(a.getTime())||(i=a.toISOString())}return{plan:"Xiaomi MiMo Desktop",quotas:{Weekly:{used:100-h,total:100,remainingPercentage:h,resetAt:i,unlimited:!1}}}}catch(a){return{message:`Xiaomi MiMo Desktop usage error: ${a.message}`}}}var aw=c(81756);let ax=(0,f.U)("cursor");function ay(a){return Number(((0,f.IQ)(a,0)/100).toFixed(2))}function az(a){try{let b=a?.body?.cancel?.();b?.catch&&b.catch(()=>{})}catch{}}function aA(a){return Math.max(0,100-Math.max(0,Math.min(100,(0,f.IQ)(a,0))))}async function aB(a,b,c,e){return(0,d.proxyAwareFetch)(a,{method:"POST",headers:{...(0,aw.JA)(b,c||null,!0),"content-type":"application/json",accept:"application/json"},body:"{}",signal:AbortSignal.timeout(15e3)},e)}async function aC(a){try{return await a.json()}catch{return null}}async function aD(a,b={},c=null){if(!a||"string"!=typeof a||!a.trim())return{message:"Cursor access token not available. Reconnect Cursor to view quota."};let e=a.trim(),g=b?.machineId||null,h=ax.url,i=ax.planInfoUrl,j=ax.authUsageUrl;if(!h)return{message:"Cursor usage endpoint is not configured."};try{let a=await aB(h,e,g,c);if(401===a.status||403===a.status)return az(a),{plan:"Cursor",message:"Cursor authentication failed. Reconnect the Cursor provider."};let b={},k=null;if(a.ok&&(k=await aC(a),!function(a,b){let c=b?.planUsage;if(!c||"object"!=typeof c)return;let d=(0,f.IQ)(c.limit,0),e=(0,f.IQ)(c.includedSpend??c.totalSpend,0),g=(0,f.IQ)(c.remaining,Math.max(0,d-e)),h=(0,f.eZ)(b.billingCycleEnd);if(d>0){let b=ay(d),f=ay(e),i=ay(g);a["Plan (USD)"]={used:f,total:b,remainingPercentage:null!=c.totalPercentUsed?aA(c.totalPercentUsed):b>0?i/b*100:0,resetAt:h}}else if(null!=c.totalPercentUsed){let b=(0,f.IQ)(c.totalPercentUsed,0);a["Included usage"]={used:b,total:100,remainingPercentage:aA(b),resetAt:h}}if(null!=c.autoPercentUsed){let b=(0,f.IQ)(c.autoPercentUsed,0);a["Auto models (%)"]={used:b,total:100,remainingPercentage:aA(b),resetAt:h}}if(null!=c.apiPercentUsed){let b=(0,f.IQ)(c.apiPercentUsed,0);a["Named models (%)"]={used:b,total:100,remainingPercentage:aA(b),resetAt:h}}Object.keys(a).length}(b,k),!function(a,b){let c=b?.spendLimitUsage;if(!c||"object"!=typeof c)return;let d=(0,f.IQ)(c.individualLimit,0),e=(0,f.IQ)(c.pooledLimit,0),g=(0,f.eZ)(b.billingCycleEnd);if(d>0){let b=ay(c.individualUsed),e=ay(d),h=ay(c.individualRemaining??Math.max(0,d-(0,f.IQ)(c.individualUsed,0)));a["On-demand (USD)"]={used:b,total:e,remainingPercentage:e>0?h/e*100:0,resetAt:g};return}if(e>0){let b=ay(c.pooledUsed),d=ay(e),h=ay(c.pooledRemaining??Math.max(0,e-(0,f.IQ)(c.pooledUsed,0)));a["Team on-demand (USD)"]={used:b,total:d,remainingPercentage:d>0?h/d*100:0,resetAt:g}}}(b,k)),0===Object.keys(b).length&&j){let g=await (0,d.proxyAwareFetch)(j,{method:"GET",headers:{Authorization:`Bearer ${e.includes("::")?e.split("::")[1]:e}`,Accept:"application/json"},signal:AbortSignal.timeout(15e3)},c);if(g.ok)!function(a,b){if(!b||"object"!=typeof b)return;let c=function(a){let b=(0,f.eZ)(a);if(!b)return null;let c=new Date(b);if(Number.isNaN(c.getTime()))return null;if(c.getTime()>Date.now())return b;let d=c.getUTCDate();c.setUTCDate(1),c.setUTCMonth(c.getUTCMonth()+1);let e=new Date(Date.UTC(c.getUTCFullYear(),c.getUTCMonth()+1,0)).getUTCDate();return c.setUTCDate(Math.min(d,e)),c.toISOString()}(b.startOfMonth);for(let[d,e]of Object.entries(b)){if(!e||"object"!=typeof e||Array.isArray(e))continue;let b=(0,f.IQ)(e.maxRequestUsage,0);if(b<=0)continue;let g=(0,f.IQ)(e.numRequests,0);a[`${d} requests`]={used:g,total:b,remainingPercentage:b>0?Math.max(0,(b-g)/b*100):0,resetAt:c}}}(b,await aC(g));else if(a.ok)az(g);else{let b=await a.text().catch(()=>"");return az(g),{plan:"Cursor",message:`Cursor usage API error (${a.status})${b?`: ${b.slice(0,120)}`:""}`}}}if(0===Object.keys(b).length)return az(a),{plan:"Cursor",message:k?.displayMessage||"Cursor connected. No quota data returned for this plan."};let l="Cursor";if(i){let a=await aB(i,e,g,c).catch(()=>null);if(a?.ok){let b=await aC(a),c=b?.planInfo?.planName;"string"==typeof c&&c.trim()&&(l=`Cursor ${c.trim()}`)}else az(a)}return{plan:l,quotas:b}}catch(a){return{message:`Cursor error: ${a.message}`}}}var aE=c(53225);let aF={international:(0,f.U)("glm").url,china:(0,f.U)("glm-cn").url};async function aG(a,b,c=null){if(!a)return{message:"GLM API key not available."};let e=aF["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(),{plan:g,quotas:h}=function(a){let b=a?.data&&"object"==typeof a.data?a.data:{},c=Array.isArray(b.limits)?b.limits:[],d={};for(let a of c){if(!a||"TOKENS_LIMIT"!==a.type&&"CREDIT_LIMIT"!==a.type)continue;let b=Number(a.percentage)||0,c=Number(a.nextResetTime)||0,e=Math.max(0,100-b);d[3===a.unit?`Session (${a.number}h)`:6===a.unit?"Weekly (7d)":"TOKENS_LIMIT"===a.type?"Tokens":`Limit (${a.number})`]={used:b,total:100,remaining:e,remainingPercentage:e,resetAt:c>0?new Date(c).toISOString():null,unlimited:!1}}let e="string"==typeof b.level?b.level:"";return{plan:e?e.charAt(0).toUpperCase()+e.slice(1).toLowerCase():"Unknown",quotas:d}}(f);return{plan:g,quotas:h}}catch(a){return{message:`GLM error: ${a.message}`}}}var aH=c(10263);let aI=(process.env.COMMAND_CODE_API_BASE_URL||"https://api.commandcode.ai").replace(/\/$/,""),aJ={"individual-go":"Go","individual-go-v1":"Go","individual-goat":"GOAT","individual-pro":"Pro","individual-pro-v1":"Pro","individual-provider":"Provider","individual-max":"Max","individual-ultra":"Ultra","teams-pro":"Teams Pro"},aK={"individual-go":10,"individual-go-v1":10,"individual-goat":70,"individual-pro":30,"individual-pro-v1":80,"individual-provider":15,"individual-max":150,"individual-ultra":300,"teams-pro":40},aL={go:"individual-go","go-v1":"individual-go-v1",goat:"individual-goat",pro:"individual-pro",provider:"individual-provider",max:"individual-max",ultra:"individual-ultra"};function aM(a,b){let c=new URLSearchParams(Object.entries(b||{}).filter(([,a])=>null!=a)).toString();return c?`${a}?${c}`:a}function aN(a){if(!a||"object"!=typeof a)return null;let b=(0,f.IQ)(a.used,0),c=(0,f.IQ)(a.cap,0);return c<=0&&b<=0?null:{used:b,total:c,percentage:c>0?Math.round(b/c*100):0,colorPercentage:c>0?Math.round((c-b)/c*100):100,percentageIsUsed:!0,remaining:Math.max(0,c-b),unlimited:!1,resetAt:(0,f.eZ)(a.resetAt),emptyMessage:0!==b||a.resetAt?null:"No usage in this window"}}async function aO(a,b=null){if(!a||"string"!=typeof a||!a.trim())return{message:"Command Code API key not available. Add a key to view usage."};let c=(0,aH.$j)({apiKey:a.trim(),accept:"application/json"}),e=async a=>await (0,d.proxyAwareFetch)(aI+a,{method:"GET",headers:c},b);try{let a=await e(aM("/alpha/whoami",{limits:"1"}));if(401===a.status||403===a.status)return{plan:"Command Code",message:"Command Code authentication failed. Check the API key."};if(!a.ok)return{plan:"Command Code",message:`Command Code usage API error (${a.status})`};let b=await a.json().catch(()=>({})),c=b?.org?.id??null,[d,g]=await Promise.all([e(aM("/alpha/billing/credits",{orgId:c})),e(aM("/alpha/billing/subscriptions",{orgId:c}))]);if(401===d.status||403===d.status||401===g.status||403===g.status)return{plan:"Command Code",message:"Command Code authentication failed. Check the API key."};if(!d.ok)return{plan:"Command Code",message:`Command Code credits API error (${d.status})`};if(!g.ok)return{plan:"Command Code",message:`Command Code subscriptions API error (${g.status})`};let h=await d.json().catch(()=>({})),i=await g.json().catch(()=>({})),j=i?.data?.planId??null,k=function(a){if("string"!=typeof a)return null;let b=a.trim().toLowerCase();return aL[b]||b||null}(j),l=k&&aJ[k]||j||"Command Code",m=k&&aK[k]||0,n=h?.credits||{},o=(0,f.IQ)(n.monthlyCredits,0)+(0,f.IQ)(n.purchasedCredits,0)+(0,f.IQ)(n.freeCredits,0),p=m>0?Math.max(0,m-o):0,q={};q.Credits={name:"Monthly",used:p,total:m>0?m:o,percentage:m>0?Math.round(p/m*100):0,colorPercentage:m>0?Math.round(o/m*100):100,percentageIsUsed:!0,remaining:o,unlimited:m<=0,resetAt:(0,f.eZ)(i?.data?.currentPeriodEnd)};let r=aN(h?.windowLimits?.fiveHour);r&&(q["Session (5h)"]={...r,name:"5-hour limit"});let s=aN(h?.windowLimits?.weekly);return s&&(q.Weekly={...s,name:"Weekly limit"}),{plan:l,quotas:q}}catch(a){return{message:`Command Code error: ${a.message}`}}}let aP=(0,f.U)("vercel-ai-gateway").url;async function aQ(a){try{return{message:"iFlow connected. Usage tracked per request."}}catch(a){return{message:"Unable to fetch iFlow usage."}}}let aR={session:"Session (5h)",weekly:"Weekly (7d)",monthly:"Monthly"};async function aS(a,b,c=null){if(!a)return{message:"Ollama Cloud API key not available."};try{let b,e=await (0,d.proxyAwareFetch)("https://ollama.com/api/usage",{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c);if(e?.status===401||e?.status===403)return{message:"Ollama Cloud API key invalid or expired."};if(e&&!e.ok)return{message:`Ollama Cloud usage API error (${e.status}).`};try{b=e?await e.json():null}catch{return{message:"Ollama Cloud usage response was not JSON."}}let f=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&&a.ok?a.json():null).catch(()=>null),g="string"==typeof f?.Plan?f.Plan:"",h=g?g.charAt(0).toUpperCase()+g.slice(1).toLowerCase():"Ollama Cloud",i=b?.limits&&"object"==typeof b.limits?b.limits:{},j="free"===g.toLowerCase()&&f?.CreatedAt?function(a,b=new Date){let c=new Date(a);if(Number.isNaN(c.getTime()))return null;let d=(b.getUTCFullYear()-c.getUTCFullYear())*12+(b.getUTCMonth()-c.getUTCMonth());for(let a=Math.max(0,d);a<=d+1;a++){let d=function(a,b){let c=a.getUTCMonth()+b,d=a.getUTCFullYear()+Math.floor(c/12),e=(c%12+12)%12,f=new Date(Date.UTC(d,e+1,0)).getUTCDate();return new Date(Date.UTC(d,e,Math.min(a.getUTCDate(),f),a.getUTCHours(),a.getUTCMinutes(),a.getUTCSeconds()))}(c,a);if(d>b)return d.toISOString()}return null}(f.CreatedAt):null,k={};for(let[a,b]of Object.entries(aR)){let c=i[a]?.usage;if(null==c)continue;let d=Number(c);Number.isNaN(d)||(k[b]=function(a,b=null){let c=Math.round(100*Math.max(0,Math.min(1,Number(a)||0)));return{used:c,total:100,remainingPercentage:100-c,resetAt:b,unlimited:!1}}(d,"monthly"===a?j:null))}if(0===Object.keys(k).length){let b=null;try{b=await (0,d.proxyAwareFetch)("https://ollama.com/api/balance",{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c)}catch{b=null}if(b&&b.ok){let a=null;try{a=await b.json()}catch{a=null}let c=a?.included;if(c?.session){let a=Number(c.session.remaining_percent),b=Number.isFinite(a)?Math.max(0,Math.min(100,a)):100;k["Session (5h)"]={used:Math.round((100-b)*100)/100,total:100,remainingPercentage:b,resetAt:c.session.resets_at||null,unlimited:!1}}if(c?.weekly){let a=Number(c.weekly.remaining_percent),b=Number.isFinite(a)?Math.max(0,Math.min(100,a)):100;k["Weekly (7d)"]={used:Math.round((100-b)*100)/100,total:100,remainingPercentage:b,resetAt:c.weekly.resets_at||null,unlimited:!1}}if(c?.allowance_usd!==void 0&&c?.balance_usd!==void 0){let a=Number(c.allowance_usd)||0,b=Number(c.balance_usd)||0,d=Math.max(0,Math.round((a-b)*100)/100),e=a>0?Math.round(b/a*1e4)/100:0;k["Allowance ($)"]={used:d,total:a,remainingPercentage:e,resetAt:c.period?.until||null,unlimited:!1,unit:"USD"}}Number(a?.purchased?.balance_usd)>0&&(k["Purchased Credits"]={used:0,total:Number(a.purchased.balance_usd),remainingPercentage:100,isCreditBalance:!0,currency:"$"})}}if(0===Object.keys(k).length)return{plan:h,message:"Ollama Cloud connected. No usage limits reported.",quotas:{}};return{plan:h,quotas:k}}catch(a){return{message:`Ollama Cloud error: ${a.message}`}}}async function aT(a,b=null){if(!a)return{message:"Vercel AI Gateway API key not available."};try{let c=await (0,d.proxyAwareFetch)(aP,{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 aU(a,b=null,c="qoder"){if(!a)return{message:"Qoder usage unavailable: no access token"};try{let e=await (0,d.proxyAwareFetch)((0,f.U)(c).url,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},b);if(!e.ok)return{message:`Qoder connected. Usage fetch returned ${e.status}.`};let g=await e.json().catch(()=>null);if(!g)return{message:"Qoder connected. Usage response was not JSON."};let h=g.userQuota||{},i=g.orgResourcePackage||{},j=g.addOnQuota||{},k=Number(j.total)||0,l=Number.isFinite(Number(g.expiresAt))&&Number(g.expiresAt)>0?Number(g.expiresAt):null,m=2534022144e5===l,n=l&&!m?new Date(l).toISOString():null,o={user:{total:Number(h.total)||0,used:Number(h.used)||0,remaining:Number(h.remaining)||0,unit:h.unit||"credits",resetAt:n,neverExpires:m},organization:{total:Number(i.total)||0,used:Number(i.used)||0,remaining:Number(i.remaining)||0,unit:i.unit||"credits",resetAt:n,neverExpires:m}};return k>0&&(o.addOn={total:k,used:Number(j.used)||0,remaining:Number(j.remaining)||0,unit:j.unit||"credits",resetAt:null,neverExpires:!1,detailUrl:j.detailUrl||null}),{quotas:o,totalUsagePercentage:Number(g.totalUsagePercentage)||0,isQuotaExceeded:!!g.isQuotaExceeded,expiresAt:l}}catch(a){return{message:`Qoder connected. Unable to fetch usage: ${a.message}`}}}let aV={github:a=>h(a.accessToken,a.providerSpecificData,a.proxyOptions),"gemini-cli":a=>(0,j.N)(a.accessToken,a.providerDataWithProjectId,a.proxyOptions),antigravity:a=>(0,j.c)(a.accessToken,a.providerSpecificData,a.proxyOptions),claude:a=>(0,k.gl)(a.accessToken,a.proxyOptions,{force:a.force}),codex:a=>(0,l.Tl)(a.accessToken,a.proxyOptions),kiro:a=>n(a.accessToken,a.providerSpecificData,a.proxyOptions),qoder:a=>aW(a),"qoder-cn":a=>aW(a),iflow:a=>aQ(a.accessToken),ollama:a=>aS(a.apiKey,a.providerSpecificData,a.proxyOptions),glm:a=>aG(a.apiKey||a.accessToken,a.provider,a.proxyOptions),"glm-cn":a=>aG(a.apiKey||a.accessToken,a.provider,a.proxyOptions),minimax:a=>v(a.apiKey,a.provider,a.proxyOptions),"minimax-cn":a=>v(a.apiKey,a.provider,a.proxyOptions),"minimax-code":a=>K(a),"minimax-code-global":a=>K(a),"vercel-ai-gateway":a=>aT(a.apiKey,a.proxyOptions),"codebuddy-cn":a=>N(a.accessToken,a.apiKey,a.providerSpecificData,a.proxyOptions),"codebuddy-intl":a=>O(a.accessToken,a.apiKey,a.providerSpecificData,a.proxyOptions),"grok-cli":a=>aa(a.accessToken,a.providerSpecificData,a.proxyOptions),kimi:a=>ae(a.accessToken,a.apiKey,a.proxyOptions,a.providerSpecificData),"opencode-go":a=>ai(a.apiKey,a.proxyOptions),"opencode-zen":a=>al(a.apiKey,a.proxyOptions),deepseek:a=>af(a.apiKey,a.proxyOptions),groq:a=>ao(a.apiKey,a.proxyOptions),zed:a=>at(a.accessToken,a.providerSpecificData,a.proxyOptions),"xiaomi-mimo":a=>av(a.accessToken,a.providerSpecificData,a.proxyOptions),commandcode:a=>aO(a.apiKey,a.proxyOptions),cursor:a=>aD(a.accessToken,a.providerSpecificData,a.proxyOptions)};async function aW(a){let b=await (0,aE._M)(a,a.proxyOptions).catch(()=>null);return aU(b?.accessToken||a.accessToken,a.proxyOptions,a.provider||"qoder")}async function aX(a,b=null,c={}){let{provider:d,accessToken:e,apiKey:f,providerSpecificData:g,projectId:h}=a,i={...g||{},...h?{projectId:h}:{}},j=aV[d];return j?await j({provider:d,accessToken:e,apiKey:f,providerSpecificData:g,providerDataWithProjectId:i,proxyOptions:b,force:!0===c.force}):{message:`Usage API not implemented for ${d}`}}}};
1
+ "use strict";exports.id=8271,exports.ids=[8271],exports.modules={6551:(a,b,c)=>{c.d(b,{RO:()=>m,Tl:()=>k,Yt:()=>l});var d=c(39609),e=c(24295);let f={usageUrl:(0,e.U)("codex").url,resetCreditsUrl:(0,e.U)("codex").resetCreditsUrl,resetCreditsConsumeUrl:(0,e.U)("codex").resetCreditsConsumeUrl};function g(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 h(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a.rate_limit&&"object"==typeof a.rate_limit?a.rate_limit:a}function i(a){let b=Math.max(0,Math.min(100,(0,e.IQ)(a?.used_percent??a?.percent_used,0)));return{used:b,total:100,remaining:Math.max(0,100-b),resetAt:(0,e.eZ)(a?.reset_at??a?.resets_at??a?.resetAt??null),unlimited:!1}}function j(a,b,c){let d=h(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"]=i(e),g=!0),f&&(a[b?`${b}_weekly`:"weekly"]=i(f),g=!0),g}async function k(a,b=null){try{let c=await (0,d.proxyAwareFetch)(f.usageUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},b);if(!c.ok)return{message:`Codex connected. Usage API temporarily unavailable (${c.status}).`};let g=await c.json(),i=g.rate_limit||g.rate_limits||g.rate_limits_by_limit_id?.codex||{},k=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}(g),l=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}(g),m=Math.max(0,(0,e.IQ)(g.rate_limit_reset_credits?.available_count,0)),n={};return j(n,"",i),j(n,"review",k),j(n,"spark",l),{plan:g.plan_type||g.summary?.plan||"unknown",limitReached:h(i)?.limit_reached||!1,reviewLimitReached:h(k)?.limit_reached||!1,sparkLimitReached:h(l)?.limit_reached||!1,resetCredits:{availableCount:m},quotas:n}}catch(a){throw Error(`Failed to fetch Codex usage: ${a.message}`)}}async function l(a,b=null,c=null){var h,i;if(!a)throw Error("No Codex access token available. Please re-authorize the connection.");let j=c?.workspaceId||c?.accountId||c?.chatgptAccountId||null,k={Authorization:`Bearer ${a}`,Accept:"application/json","OpenAI-Beta":"codex-1",originator:"codex_cli_rs"};j&&(k["ChatGPT-Account-ID"]=j);let m=await (0,d.proxyAwareFetch)(f.resetCreditsUrl,{method:"GET",headers:k},b),n=null;try{n=await m.json()}catch{n=null}if(!m.ok)throw Error((h=n?.message||n?.error||n?.detail,i=`Codex reset credits API unavailable (${m.status}).`,h?"string"==typeof h?h:"string"==typeof h.message?h.message:JSON.stringify(h):i));let o=Array.isArray(n?.credits)?n.credits:[];return{availableCount:Math.max(0,(0,e.IQ)(n?.available_count??n?.availableCount,0)),credits:o.map(a=>({status:String(a?.status||"unknown"),grantedAt:g(a?.granted_at??a?.grantedAt),expiresAt:g(a?.expires_at??a?.expiresAt)}))}}async function m(a,b,c=null){let g;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.");let h=null;try{g=await (0,d.proxyAwareFetch)(f.resetCreditsConsumeUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","Content-Type":"application/json"},body:JSON.stringify({redeem_request_id:b})},c);let e=await g.text();h=e?JSON.parse(e):null}catch(a){throw Error(`Failed to consume Codex reset credit: ${a.message}`)}let i=h?.code||null,j=(0,e.IQ)(h?.windows_reset,0);return{ok:g.ok&&("reset"===i||j>0),noCredit:g.ok&&"no_credit"===i,status:g.status,code:i,windowsReset:j,message:h?.message||null,raw:h}}},18271:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>n,refreshAndUpdateCredentials:()=>m});var e=c(48895),f=c(89718),g=c(95655),h=c(8590),i=c(55330),j=c(39326),k=c(40615),l=a([e,i]);[e,i]=l.then?(await l)():l;let o=["expired","authentication","unauthorized","401","re-authorize"];async function m(a,b=!1,c=null){let d=a.id?await (0,f.Mc)(a.id):null;d&&(a=d);let e=(0,i.getExecutor)(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 j=await e.refreshCredentials(g,console,c);if(j&&(0,h.jT)(j))throw Error("Refresh token invalid or reused. Please re-authorize the connection.");if(!j){if(a.accessToken)return{connection:a,refreshed:!1};throw Error("Failed to refresh credentials. Please re-authorize the connection.")}let k={updatedAt:new Date().toISOString()};j.accessToken&&(k.accessToken=j.accessToken),j.refreshToken&&(k.refreshToken=j.refreshToken),j.idToken&&(k.idToken=j.idToken),j.lastRefreshAt&&(k.lastRefreshAt=j.lastRefreshAt),j.expiresIn?(k.expiresAt=new Date(Date.now()+1e3*j.expiresIn).toISOString(),k.expiresIn=j.expiresIn):j.expiresAt&&(k.expiresAt=j.expiresAt);let l={...j.providerSpecificData||{},...j.copilotToken?{copilotToken:j.copilotToken}:{},...j.copilotTokenExpiresAt?{copilotTokenExpiresAt:j.copilotTokenExpiresAt}:{}};return Object.keys(l).length>0&&(k.providerSpecificData={...a.providerSpecificData||{},...l}),await (0,f.updateProviderConnection)(a.id,k),{connection:{...a,...k,providerSpecificData:k.providerSpecificData||a.providerSpecificData},refreshed:!0}}async function n(a,{params:b}){let c;try{let{connectionId:d}=await b,e="1"===new URL(a.url).searchParams.get("force");if(!(c=await (0,f.Mc)(d)))return Response.json({error:"Connection not found"},{status:404});let h="oauth"===c.authType,i=("apikey"===c.authType||"api_key"===c.authType)&&k.jO.includes(c.provider);if(!h&&!i)return Response.json({message:"Usage not available for this connection"});let l=await (0,j.B)(c.providerSpecificData),n={connectionProxyEnabled:!0===l.connectionProxyEnabled,connectionProxyUrl:l.connectionProxyUrl||"",connectionNoProxy:l.connectionNoProxy||"",vercelRelayUrl:l.vercelRelayUrl||"",strictProxy:!1};if(h)try{c=(await m(c,!1,n)).connection}catch(a){return console.error("[Usage API] Credential refresh failed:",a),Response.json({error:`Credential refresh failed: ${a.message}`},{status:401})}let p=await (0,g.my)(c,n,{force:e});if(h&&function(a){if(!a?.message)return!1;let b=a.message.toLowerCase();return o.some(a=>b.includes(a))}(p)&&c.refreshToken)try{c=(await m(c,!0,n)).connection,p=await (0,g.my)(c,n,{force:e})}catch(a){console.warn(`[Usage] ${c.provider}: force refresh failed: ${a.message}`)}return Response.json(p)}catch(b){let a=c?.provider??"unknown";return console.warn(`[Usage] ${a}: ${b.message}`),Response.json({error:b.message},{status:500})}}d()}catch(a){d(a)}})},69788:(a,b,c)=>{c.d(b,{Ut:()=>l,gl:()=>j});var d=c(39609),e=c(74129),f=c(24295);let g={oauthUsageUrl:(0,f.U)("claude").oauthUrl,usageUrl:(0,f.U)("claude").orgUrl,settingsUrl:(0,f.U)("claude").settingsUrl,profileUrl:(0,f.U)("claude").profileUrl,resetUrl:(0,f.U)("claude").resetUrl,apiVersion:e.b8,userAgent:`claude-cli/${e.t4} (external, cli)`},h=new Map,i=new Map;async function j(a,b=null,c={}){let d=c?.force===!0;if(!d&&a){let b=i.get(a);if(b?.promise)return b.promise;if(b&&b.expiresAt>Date.now())return b.result}let e=!d&&a&&i.get(a)?.result||null,f=(async()=>{let c=await k(a,b);return a&&c?.quotas?(i.set(a,{result:c,expiresAt:Date.now()+3e5}),c):e||c})();return a&&i.set(a,{promise:f}),f}async function k(a,b=null){try{let c=h.get(a);if(c&&Date.now()<c)return await m(a,b);let e=await (0,d.proxyAwareFetch)(`${g.oauthUsageUrl}?cedar_ember=1`,{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":g.apiVersion,"User-Agent":g.userAgent}},b);if(e.ok){let a=await e.json(),b={},c=a=>a&&"object"==typeof a&&"number"==typeof a.utilization,d=a=>{let b=a.utilization,c=Math.max(0,100-b);return{used:b,total:100,remaining:c,remainingPercentage:c,resetAt:(0,f.eZ)(a.resets_at),unlimited:!1}};for(let[e,f]of(c(a.five_hour)&&(b["session (5h)"]=d(a.five_hour)),c(a.seven_day)&&(b["weekly (7d)"]=d(a.seven_day)),Object.entries(a)))if(e.startsWith("seven_day_")&&"seven_day"!==e&&c(f)){let a=e.replace("seven_day_","");b[`weekly ${a} (7d)`]=d(f)}if(Array.isArray(a.limits))for(let c of a.limits){if(c?.kind!=="weekly_scoped")continue;let a=String(c?.scope?.model?.display_name||"").trim().toLowerCase();a&&"number"==typeof c.percent&&(b[`weekly ${a} (7d)`]=d({utilization:Math.max(0,Math.min(100,c.percent)),resets_at:c.resets_at}))}return{plan:"Claude Code",extraUsage:a.extra_usage??null,resetCredits:function(a){if(!a?.eligible||!Array.isArray(a.grants))return null;let b=a.grants.filter(a=>a?.id&&!a.paused&&Number(a.resets_left)>0),c=b.find(b=>b.id===a.next_grant_id)||b[0]||null;return{availableCount:b.reduce((a,b)=>a+Number(b.resets_left),0),nextGrantId:c?.id||null,expiresAt:c?.ends_at||null,clears:c?.clears||[],cooldownUntil:a.cooldown_until||null,weeklyResetsAt:a.weekly_resets_at||null,grants:a.grants.filter(a=>a?.id).map(a=>({id:a.id,label:a.label||"",resetsLeft:Number(a.resets_left)||0,resetsTotal:Number(a.resets_total)||0,startsAt:a.starts_at||null,endsAt:a.ends_at||null,clears:Array.isArray(a.clears)?a.clears:[],paused:!0===a.paused,usableNow:!0===a.usable_now,useRequiresLimit:!1!==a.use_requires_limit}))}}(a.cedar_ember),quotas:b}}return 429===e.status&&h.set(a,Date.now()+18e4),console.warn(`[Claude Usage] OAuth endpoint returned ${e.status}, falling back to legacy`),await m(a,b)}catch(a){return{message:`Claude connected. Unable to fetch usage: ${a.message}`}}}async function l(a,b,c=null){if(!a)throw Error("No Claude access token available. Please re-authorize the connection.");if(!/^[a-z0-9_-]{1,40}$/.test(b||""))throw Error("Invalid reset grant id.");let e={Authorization:`Bearer ${a}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":g.apiVersion,"User-Agent":g.userAgent,"Content-Type":"application/json"},f=await (0,d.proxyAwareFetch)(g.profileUrl,{method:"GET",headers:e},c),h=await f.json().catch(()=>null),j=h?.organization?.uuid;if(!f.ok||!j)throw Error(`Cannot resolve Claude organization (${f.status}).`);let k=await (0,d.proxyAwareFetch)(g.resetUrl.replace("{org_id}",j),{method:"POST",headers:e,body:JSON.stringify({program:"cedar_ember",grant_id:b,request_id:crypto.randomUUID()})},c),m=await k.json().catch(()=>null);return i.delete(a),{ok:k.ok&&m?.result==="reset",status:k.status,result:m?.result||null,reason:m?.reason||null,resetsLeft:m?.resets_left??null,message:m?.error?.message||null}}async function m(a,b=null){try{let c=await (0,d.proxyAwareFetch)(g.settingsUrl,{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":g.apiVersion}},b);if(c.ok){let e=await c.json();if(e.organization_id){let c=await (0,d.proxyAwareFetch)(g.usageUrl.replace("{org_id}",e.organization_id),{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":g.apiVersion}},b);if(c.ok){let a=await c.json();return{plan:e.plan||"Unknown",organization:e.organization_name,quotas:a}}}return{plan:e.plan||"Unknown",organization:e.organization_name,message:"Claude connected. Usage details require admin access."}}return{message:"Claude connected. Usage API requires admin permissions."}}catch(a){return{message:`Claude connected. Unable to fetch usage: ${a.message}`}}}},95655:(a,b,c)=>{c.d(b,{Ut:()=>k.Ut,RO:()=>l.RO,Yt:()=>l.Yt,my:()=>aX});var d=c(39609),e=c(26070),f=c(24295);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(91211),k=c(69788),l=c(6551),m=c(6382);async function n(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,m.We)(e),k=new URLSearchParams({isEmailRequired:"true",origin:"AI_EDITOR",resourceType:"AGENTIC_REQUEST"}),l=!1,o=[];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),o.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){o.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:o.length>0?`Unable to fetch Kiro usage right now. (${o[o.length-1]})`:"Unable to fetch Kiro usage right now.",quotas:{}}}let o={minimax:(0,f.U)("minimax").urls,"minimax-cn":(0,f.U)("minimax-cn").urls};function p(a,b,c){return a&&"object"==typeof a?a[b]??a[c]??null:null}function q(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 r(a){return Math.max(0,Number(p(a,"current_interval_total_count","currentIntervalTotalCount"))||0)}function s(a){return Math.max(0,Number(p(a,"current_weekly_total_count","currentWeeklyTotalCount"))||0)}function t(a){return!!(r(a)>0||s(a)>0)||null!==q(a,"current_interval_remaining_percent","currentIntervalRemainingPercent")||null!==q(a,"current_weekly_remaining_percent","currentWeeklyRemainingPercent")}function u(a,b,c,d,e,g,h,i,j,k){let l=d(c),m=q(c,h,i);if(l<=0&&null===m)return;let n=Math.max(0,Number(p(c,e,g))||0),o=l,r=n;l<=0&&(o=100,r=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,r,function(a,b,c,d,e,g){let h=Number(p(a,c,d))||0;return h>0?new Date(b+h).toISOString():(0,f.eZ)(p(a,e,g))}(c,...j),k,m)}async function v(a,b,c=null){if(!a)return{message:"MiniMax API key not available."};let e=o[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,q=(Array.isArray(o)?o:[]).filter(t);if(0===q.length)return{message:"MiniMax connected. No quota data was returned."};let v=Date.now(),w=g.includes("/coding_plan/remains"),x={};for(let a of q){let b=function(a){let b=String(p(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);u(x,`${b} (5h)`,a,r,"current_interval_usage_count","currentIntervalUsageCount","current_interval_remaining_percent","currentIntervalRemainingPercent",[v,"remains_time","remainsTime","end_time","endTime"],w),u(x,`${b} (7d)`,a,s,"current_weekly_usage_count","currentWeeklyUsageCount","current_weekly_remaining_percent","currentWeeklyRemainingPercent",[v,"weekly_remains_time","weeklyRemainsTime","weekly_end_time","weeklyEndTime"],w)}if(0===Object.keys(x).length)return{message:"MiniMax connected. Unable to extract quota usage."};return{quotas:x}}catch(a){if(f=a.message,!h)break}}return{message:f?`MiniMax connected. Unable to fetch usage: ${f}`:"MiniMax connected. Unable to fetch usage."}}var w=c(77598),x=c(4338);let y="I*7Cf%WZ#S&%1RlZJ&C2",z={"minimax-code":{agent:"https://agent.minimaxi.com",platform:"https://www.minimaxi.com",lang:"zh"},"minimax-code-global":{agent:"https://agent.minimax.io",platform:"https://platform.minimax.io",lang:"en"}},A=a=>(0,w.createHash)("md5").update(a).digest("hex"),B=a=>a&&"object"==typeof a&&!Array.isArray(a)?a:void 0,C=a=>"number"==typeof a&&Number.isFinite(a)?a:void 0,D=(a,b)=>"string"==typeof a?.[b]&&a[b].trim()?a[b].trim():void 0;class E extends Error{}async function F(a,b,c,d){let e,{url:f,init:g}=function(a,b,{access:c,userID:d,body:e,now:f=Date.now(),tzOffsetSec:g=-60*new Date().getTimezoneOffset()}={}){let h=new URL(b,a.agent);h.search=new URLSearchParams({device_platform:"mcode",biz_id:"3",app_id:"3001",version_code:"22201",unix:String(f),timezone_offset:String(g),sys_language:a.lang,lang:a.lang,device_id:"0",os_name:process.platform,browser_name:"mcode",user_id:String(d??"").trim()||"0",client:"mcode"}).toString();let i=h.pathname+h.search,j=Math.floor(f/1e3),k=void 0===e?void 0:JSON.stringify(e),l={Accept:"application/json","Content-Type":"application/json","User-Agent":"MiniMaxCode",Authorization:`Bearer ${c}`,yy:void 0===k?A(`${encodeURIComponent(i)}_{}${A(String(f))}ooui`):A(`${encodeURIComponent(i)}_${k}${A(String(f))}ooui`),"x-timestamp":String(j),"x-signature":void 0===k?A(`${j}${y}`):A(`${j}${y}${k}`)};return{url:h.toString(),init:{method:void 0===k?"GET":"POST",headers:l,...void 0===k?{}:{body:k}}}}(a,b,c),h=await fetch(f,{...g,signal:AbortSignal.timeout(15e3)});if(401===h.status||403===h.status)throw new E(`${d}: the sign-in was refused (HTTP ${h.status})`);if(!h.ok)throw Error(`${d}: HTTP ${h.status}`);try{e=B(JSON.parse(await h.text()))}catch{}if(!e)throw Error(`${d}: not JSON`);var i=e;let j=B(i?.statusInfo);if("number"==typeof j?.code&&0!==j.code){if(1000048===j.code)throw new E(`${d}: the sign-in was refused`);throw Error(`${d}: ${D(j,"message")??D(j,"msg")??"status "+j.code}`)}let k=B(i?.base_resp);if("number"==typeof k?.status_code&&0!==k.status_code)throw Error(`${d}: ${D(k,"status_msg")??"status "+k.status_code}`);return i}async function G(a,b){let c=await F(a,"/v1/api/user/info",{access:b},"account"),d=B(c.data),e=B(d?.userInfo)??B(d?.user_info)??B(c.userInfo)??B(c.user_info),f=D(e,"realUserID")??D(e,"real_user_id");if(!f)throw Error("account: no user id in the reply");let g=(...a)=>a.map(a=>D(e,a)).find(Boolean);return{realUserID:f,email:g("userEmail","email","userMail","user_email"),name:g("name","userName","user_name")}}function H(a){let b,c=B(a?.data),d=b=>a?.[b]??c?.[b],e=a=>"string"==typeof d(a)&&d(a).trim()?d(a).trim():void 0,f="boolean"==typeof d("has_token_plan")?d("has_token_plan"):void 0,g=C(d("token_plan_expires_at")),h=D(B(a?.op_credit_summary)??B(c?.op_credit_summary),"total_remaining_amount")??("string"==typeof(b=d("opcredit_balance"))&&b.trim()?b.trim():"number"==typeof b&&Number.isFinite(b)?String(b):void 0);return{...void 0!==f?{hasTokenPlan:f}:{},...e("op_group_id")?{opGroupId:e("op_group_id")}:{},...e("token_plan_tier")?{tier:e("token_plan_tier")}:{},...g>0?{expiresAt:g}:{},...void 0!==h?{balance:h}:{}}}async function I(a,b,c){let d;try{let e=await F(a,"/matrix/api/v1/user/get_user_extra_info",{access:b,userID:c,body:{}},"workspace");for(let a of Array.isArray(e.workspaces)?e.workspaces:Array.isArray(e.data?.workspaces)?e.data.workspaces:[]){if(0!==C(a?.workspace_type))continue;let b="number"==typeof a.workspace_id&&a.workspace_id>=0?a.workspace_id:D(a,"workspace_id");if(void 0!==b){d={id:b,m:H(a)};break}}}catch(d){if(d instanceof E)throw d;return H(await F(a,"/matrix/api/v1/commerce/get_membership_info",{access:b,userID:c,body:{}},"membership"))}if(!d)return{};try{let e=H(await F(a,"/matrix/api/v1/commerce/get_membership_info",{access:b,userID:c,body:{workspace_id:d.id}},"membership")),f=!0===d.m.hasTokenPlan||!0===e.hasTokenPlan||!1!==d.m.hasTokenPlan&&!1!==e.hasTokenPlan&&void 0;return{...d.m,...e,...void 0!==f?{hasTokenPlan:f}:{},...d.m.opGroupId||e.opGroupId?{opGroupId:d.m.opGroupId??e.opGroupId}:{}}}catch(a){if(a instanceof E)throw a;return d.m}}async function J(a,b,c){let d=await fetch(`${a.platform}/v1/api/openplatform/coding_plan/remains`,{headers:{Accept:"application/json",Authorization:`Bearer ${b}`,...c?{"X-Group-Id":c}:{}},signal:AbortSignal.timeout(15e3)});if(!d.ok)throw Error(`M Plan: HTTP ${d.status}`);return function(a){let b=B(a?.base_resp);if(b&&"number"==typeof b.status_code&&0!==b.status_code)throw Error(D(b,"status_msg")??`MiniMax said ${b.status_code}`);if(!b&&!Array.isArray(a?.model_remains))throw Error("no plan in the reply");let c=a=>a<1e12?1e3*a:a,d=a=>0===C(a),e=[];for(let b of Array.isArray(a.model_remains)?a.model_remains:[]){let a=String(b?.model_name??"").trim();if(!a||3===C(b.current_interval_status)&&3===C(b.current_weekly_status)&&d(b.current_interval_total_count)&&d(b.current_weekly_total_count))continue;let f="general"===a.toLowerCase();for(let d of[{left:C(b.current_interval_remaining_percent),status:C(b.current_interval_status)??0,start:C(b.start_time)??0,end:C(b.end_time)??0,week:!1},{left:C(b.current_weekly_remaining_percent),status:C(b.current_weekly_status)??0,start:C(b.weekly_start_time)??0,end:C(b.weekly_end_time)??0,week:!0}]){if(3===d.status||void 0===d.left&&2!==d.status)continue;let b=2===d.status?0:Math.max(0,Math.min(100,d.left)),g=0;d.start>0&&d.end>d.start?g=c(d.end)-c(d.start):d.week&&(g=6048e5);let h=d.week?"7 days":g>864e5&&g%864e5==0?`${g/864e5} days`:g>=36e5&&g%36e5==0?`${g/36e5} hours`:g>0?`${Math.floor(g/6e4)} minutes`:"Allowance",i=f?h:`${a[0].toUpperCase()+a.slice(1)} \xb7 ${h}`;e.push({name:i,used:100-b,total:100,remaining:b,remainingPercentage:b,resetAt:d.end>0?new Date(c(d.end)).toISOString():null})}}return e}(await d.json().catch(()=>null))}async function K(a){let b=z[a.provider],c=a.accessToken;if(!c&&(0,x.xK)(a))try{c=(await (0,x.u_)(a)).accessToken}catch{c=null}if(!b||!c)return{message:`Usage API not implemented for ${a.provider}`};try{let d=D(a.providerSpecificData||{},"realUserID"),e=null;d||(d=(e=await G(b,c)).realUserID);let f=await I(b,c,d),g={};if(void 0!==f.balance){let a=Number(f.balance);g.Credits={used:0,total:Number.isFinite(a)?a:0,isCreditBalance:!0,currency:"credits"}}if(f.hasTokenPlan&&f.opGroupId)try{for(let a of(await J(b,c,f.opGroupId)))g[a.name]=a}catch(a){g["M Plan windows"]={name:"M Plan windows",used:0,total:0,resetAt:null,message:a?.message??String(a)}}return 0===Object.keys(g).length&&(g.Plan={name:"Plan",used:0,total:0,resetAt:null,message:!1===f.hasTokenPlan?"Free account (no M Plan)":"No usage data returned"}),{quotas:g,plan:f.hasTokenPlan?f.tier?`M Plan ${f.tier}`:"M Plan":"Free",...f.expiresAt>0?{planExpiresAt:new Date(f.expiresAt<1e12?1e3*f.expiresAt:f.expiresAt).toISOString()}:{},user:e?.email||e?.name||D(a.providerSpecificData||{},"realUserID")||d||null}}catch(a){if(a instanceof E)return{message:`MiniMax Code sign-in expired — unauthorized, please re-authorize (${a.message})`};return{message:a?.message??String(a)}}}function L(a,b){let c=Number(a??b);return Number.isFinite(c)?c:0}async function M(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 (${a}) credential invalid or expired.`};if(!b.ok)return{message:`CodeBuddy (${a}) quota API error (${b.status}).`};let c=await b.json();if(c?.code!==0)return{message:`CodeBuddy (${a}) 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 (${a}) 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=(0,f.eZ)(a.DeductionEndTime),d=c?new Date(c).getTime():0/0;return Number.isFinite(b)&&Number.isFinite(d)&&d-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:L(a.CycleCapacityUsedPrecise,a.CycleCapacityUsed),total:L(a.CycleCapacitySizePrecise,a.CycleCapacitySize),resetAt:(0,f.eZ)(a.CycleEndTime),unlimited:!1,recurring:!0}}),o.forEach((a,b)=>{p[`Bonus Pack ${b+1}`]={used:L(a.CapacityUsedPrecise,a.CapacityUsed),total:L(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 N(a,b,c,d=null){return M("codebuddy-cn",a,b,c,d)}async function O(a,b,c,d=null){return M("codebuddy-intl",a,b,c,d)}var P=c(90737);function Q(a,b=0){if(!Buffer.isBuffer(a)||b<0||a.length-b<5)return null;let c=a[b];if(0!==c&&1!==c&&128!==c&&129!==c)return null;let d=b+5,e=a.readUInt32BE(b+1);return e>a.length-d?null:{flag:c,payloadStart:d,payloadLength:e}}function R(a,b){let c=0n,d=0n,e=b;for(;;){if(e>=a.length)return null;let b=a[e];if(c|=BigInt(127&b)<<d,e+=1,(128&b)==0)break;if((d+=7n)>70n)return null}return{value:Number(c),next:e}}function S(a,b,c,d){return b+c>a.length?null:{field:{wireType:d,bytes:a.subarray(b,b+c)},next:b+c}}function T(a){let b=new Map,c=0;for(;c<a.length;){let d=function(a,b){let c=R(a,b);if(!c)return null;let d=c.value>>>3,e=7&c.value;if(0===d)return null;if(0===e){let b=R(a,c.next);return b?{fieldNumber:d,field:{wireType:0,value:b.value},next:b.next}:null}if(2===e){let b=function(a,b){let c=R(a,b);if(!c)return null;let{value:d,next:e}=c;return d<0||e+d>a.length?null:{field:{wireType:2,bytes:a.subarray(e,e+d)},next:e+d}}(a,c.next);return b?{fieldNumber:d,field:b.field,next:b.next}:null}if(1===e){let b=S(a,c.next,8,1);return b?{fieldNumber:d,field:b.field,next:b.next}:null}if(5===e){let b=S(a,c.next,4,5);return b?{fieldNumber:d,field:b.field,next:b.next}:null}return null}(a,c);if(!d)return null;b.set(d.fieldNumber,d.field),c=d.next}return b}let U=(0,f.U)("grok-cli"),V=U.url||"https://cli-chat-proxy.grok.com/v1/billing?format=credits",W=U.userUrl||"https://cli-chat-proxy.grok.com/v1/user?include=subscription",X=Buffer.from([0,0,0,0,0]);function Y(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 Z(a,b){let c=a?.subscriptionTier??a?.subscription_tier??a?.subscription?.tier??b?.subscriptionTier??b?.subscription_tier;return"string"==typeof c?c.trim():""}function $({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}}async function _(a,b=null){if(!a)return null;try{let c=await (0,d.proxyAwareFetch)("https://grok.com/grok_api_v2.GrokBuildBilling/GetGrokCreditsConfig",{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/grpc-web+proto","X-Grpc-Web":"1",Accept:"application/grpc-web+proto"},body:X},b);if(!c?.ok)return null;let e=await c.arrayBuffer().catch(()=>null);if(!e)return null;return function(a){if(!a||!Buffer.isBuffer(a)||0===a.length)return null;try{var b,c;let d=null!==Q(a,0)?function(a){let b=0;for(;b<a.length;){let c=Q(a,b);if(!c)break;let d=c.payloadStart+c.payloadLength;if((128&c.flag)==0)return a.subarray(c.payloadStart,d);b=d}return null}(a):a;if(!d)return null;let e=T(d);if(!e)return null;let f=(b=e.get(1))&&2===b.wireType?T(b.bytes):null;if(!f)return null;let g=(c=f.get(1))?5===c.wireType?c.bytes.readFloatLE(0):1===c.wireType?c.bytes.readDoubleLE(0):null:0;if(null===g||!Number.isFinite(g)||g<0)return null;return{percentUsed:Math.min(100,100*g),resetAt:function(a){if(!a||2!==a.wireType)return null;let b=T(a.bytes);if(!b)return null;let c=b.get(1),d=b.get(2),e=new Date(1e3*(c?.wireType===0?c.value:0)+Math.round((d?.wireType===0?d.value:0)/1e6));return Number.isNaN(e.getTime())?null:e.toISOString()}(f.get(5))}}catch{return null}}(Buffer.from(e))}catch{return null}}async function aa(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":P.fZ,"x-xai-token-auth":"xai-grok-cli","x-grok-client-identifier":P.rK,"x-grok-client-version":P.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[b,h]=await Promise.all([(0,d.proxyAwareFetch)(V,{method:"GET",headers:e},c),(0,d.proxyAwareFetch)(W,{method:"GET",headers:e},c).catch(()=>null)]);if(401===b.status||403===b.status)return{message:"Grok CLI authentication expired. Please re-authorize."};if(!b.ok){let a=await b.text().catch(()=>""),c=a?`: ${a.slice(0,200)}`:"";return{message:`Grok CLI billing API error (${b.status})${c}`}}let i=await b.json().catch(()=>null);if(!i||"object"!=typeof i)return{message:"Grok CLI billing response was not JSON."};let j=null;h?.ok&&(j=await h.json().catch(()=>null));let k=function(a,b=null){let c,d=a&&"object"==typeof a?a:{},e=d.config&&"object"==typeof d.config&&!Array.isArray(d.config)?d.config:d,g=(0,f.eZ)(e.billingPeriodEnd)||(0,f.eZ)(e.billing_period_end)||(0,f.eZ)(e.currentPeriod?.end)||(0,f.eZ)(e.resetAt||e.resetsAt||e.periodEnd)||(0,f.eZ)(d.billingPeriodEnd)||(0,f.eZ)(d.billing_period_end)||(0,f.eZ)(d.resetAt||d.resetsAt||d.periodEnd)||null,h={},i=Z(b,e),j=!!i&&!/^(free|none|null)$/i.test(i),k=Y(e.monthlyLimit??e.monthly_limit??d.monthlyLimit??d.monthly_limit,0/0),l=Y(e.includedUsed??e.included_used??d.includedUsed??d.included_used,0/0),m=Y(e.totalUsed??e.total_used??d.totalUsed??d.total_used,0/0);Number.isFinite(k)&&k>0&&(h["Monthly included"]=$({used:Number.isFinite(l)?l:Number.isFinite(m)?m:0,total:k,resetAt:g}));let n=Y(e.onDemandCap??d.onDemandCap,0/0),o=Y(e.onDemandUsed??d.onDemandUsed,0/0);if(Number.isFinite(n)&&n>0){let a=Number.isFinite(o)?Math.max(0,o):0;h["On-demand"]=$({used:a,total:n,resetAt:g})}else!j&&Number.isFinite(n)&&0===n&&Number.isFinite(o)&&(h["On-demand"]={used:1,total:1,remainingPercentage:0,resetAt:g,unlimited:!1});let p=Y(e.prepaidBalance??d.prepaidBalance,0/0);Number.isFinite(p)&&p>0&&(h.Prepaid={used:0,total:p,remainingPercentage:100,resetAt:null,unlimited:!1});let q=Y(e.creditUsagePercent??e.credit_usage_percent??d.creditUsagePercent,0/0);for(let a of(Number.isFinite(q)&&q>=0&&(h["Weekly SuperGrok"]=$({used:Math.max(0,Math.min(100,q)),total:100,resetAt:g})),[d.credits,d.creditBalance,d.usage,e.credits,e.includedCredits,e.subscriptionCredits].filter(a=>a&&"object"==typeof a&&!Array.isArray(a)))){let b=Y(a.total??a.limit??a.cap??a.allocation??a.amount,0/0),c=Y(a.used??a.spent??a.consumed,0/0),d=Y(a.remaining??a.balance??a.left,0/0);if(Number.isFinite(b)&&b>0){let e=Number.isFinite(c)?c:Number.isFinite(d)?Math.max(0,b-d):0;h.Credits||(h.Credits=$({used:e,total:b,resetAt:(0,f.eZ)(a.resetAt||a.resetsAt||a.end)||g}))}else Number.isFinite(d)&&d>=0&&!h.Credits&&(h.Credits={used:0,total:d>0?d:1,remainingPercentage:100*(d>0),resetAt:g,unlimited:!1})}let r=Object.keys(h).length>0&&Object.values(h).every(a=>!0!==a.unlimited&&(a.remainingPercentage??100)<=0);return{plan:(c=Z(b,e))?c.replace(/[_-]+/g," ").replace(/\b\w/g,a=>a.toUpperCase()):b?.hasGrokCodeAccess===!0?"Grok Code":(e?.isUnifiedBillingUser,"Grok Build"),quotas:h,periodEnd:g,exhausted:r,subscriptionAccess:j,rawConfig:e}}(i,j);if(k.plan=function(a){try{return({0:"Free",1:"SuperGrok",2:"X Basic",3:"X Premium",4:"X Premium Plus",5:"SuperGrok Heavy",6:"SuperGrok Lite"})[JSON.parse(Buffer.from(a.split(".")[1],"base64url")).tier]||""}catch{return""}}(a)||k.plan,!k.quotas||0===Object.keys(k.quotas).length){var g;let b=(g=await _(a,c))&&Number.isFinite(g.percentUsed)?{"Weekly SuperGrok":$({used:Math.round(Math.max(0,Math.min(100,g.percentUsed))),total:100,resetAt:g.resetAt||null})}:null;if(b)return{plan:k.plan,quotas:b};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}`}}}var ab=c(75924);let ac={LEVEL_BASIC:"Moderato",LEVEL_INTERMEDIATE:"Allegretto",LEVEL_ADVANCED:"Allegro",LEVEL_STANDARD:"Vivace"};function ad({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 ae(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,ab.buildKimiHeaders)(e?.deviceId)};try{let a,b=await (0,d.proxyAwareFetch)("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 g={},h=a?.usage&&"object"==typeof a.usage?a.usage:{},j=(0,f.IQ)(h.limit??h.Limit,0),k=(0,f.IQ)(h.used??h.Used,0),l=h.remaining??h.Remaining,m=null!=l&&""!==l?(0,f.IQ)(l,0/0):0/0,n=h.resetTime||h.ResetTime||h.reset_at||h.resetAt;for(let b of(j>0&&(g.Weekly=ad({used:k,total:j,remaining:Number.isFinite(m)?m:null,resetAt:(0,f.eZ)(n)})),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,0/0),e=a.resetTime||a.reset_at||a.resetAt;if(c>0){let a=Number.isFinite(d)?d:Math.max(0,c);g.Ratelimit=ad({used:Math.max(0,c-a),total:c,remaining:a,resetAt:(0,f.eZ)(e)})}}let o=a?.user?.membership?.level,p=function(a){if(!a)return"";let b=String(a);return ac[b]?ac[b]:b.replace(/^LEVEL_/,"").toLowerCase()}(o)||"Kimi Coding";if(Object.keys(g).length>0)return{plan:p,quotas:g};return{plan:p,message:"Kimi Coding connected. Usage tracked per request."}}catch(a){return{message:`Kimi Coding connected. Unable to fetch usage: ${a.message}`}}}async function af(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:!1,isCreditBalance:!0,currency:a.currency}}return{plan:h?"DeepSeek":"DeepSeek (Insufficient Balance)",quotas:i}}catch(a){return{message:`DeepSeek error: ${a.message}`}}}let ag=(0,f.U)("opencode-go").url,ah={rolling:"Rolling",weekly:"Weekly",monthly:"Monthly"};async function ai(a=null,b=null){if(!a||"string"!=typeof a||!a.trim())return{message:"OpenCode Go API key not available. Add a key to view usage."};try{let c=await (0,d.proxyAwareFetch)(ag,{method:"GET",headers:{Authorization:`Bearer ${a.trim()}`,Accept:"application/json"}},b);if(401===c.status)return{plan:"OpenCode Go",message:"OpenCode Go authentication failed. Check the API key."};if(403===c.status){let a=await c.json().catch(()=>null),b=a?.error?.type==="EntitlementError";return{plan:"OpenCode Go",message:b?"OpenCode Go subscription required for this API key.":"OpenCode Go access forbidden for this API key."}}if(!c.ok)return{plan:"OpenCode Go",message:`OpenCode Go usage API error (${c.status}).`};let e=await c.json().catch(()=>null);if(!e?.usage||"object"!=typeof e.usage)return{plan:"OpenCode Go",message:"OpenCode Go usage response did not contain quota data."};let g={};for(let[a,b]of Object.entries(ah)){let c=e.usage[a];if(!c||"object"!=typeof c)continue;let d=function(a){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 null}(c.percent);if(null===d)continue;let h=Math.max(0,Math.min(100,(0,f.IQ)(d,0)));g[b]={used:h,total:100,remaining:100-h,remainingPercentage:100-h,resetAt:(0,f.eZ)(c.resetsAt),unlimited:!1}}if(0===Object.keys(g).length)return{plan:"OpenCode Go",message:"OpenCode Go usage response did not contain valid quota data."};return{plan:"OpenCode Go",quotas:g}}catch(a){return{message:`OpenCode Go error: ${a.message}`}}}let aj=(0,f.U)("opencode-zen").url,ak={rolling:"Rolling",weekly:"Weekly",monthly:"Monthly"};async function al(a=null,b=null){if(!a||"string"!=typeof a||!a.trim())return{message:"OpenCode Zen API key not available. Add a key to view usage."};try{let c=await (0,d.proxyAwareFetch)(aj,{method:"GET",headers:{Authorization:`Bearer ${a.trim()}`,Accept:"application/json"}},b);if(401===c.status)return{plan:"OpenCode Zen",message:"OpenCode Zen authentication failed. Check the API key."};if(403===c.status){let a=await c.json().catch(()=>null),b=a?.error?.type==="EntitlementError";return{plan:"OpenCode Zen",message:b?"OpenCode Zen billing required for this API key.":"OpenCode Zen access forbidden for this API key."}}if(!c.ok)return{plan:"OpenCode Zen",message:`OpenCode Zen usage API error (${c.status}).`};let e=await c.json().catch(()=>null);if(!e?.usage||"object"!=typeof e.usage)return{plan:"OpenCode Zen",message:"OpenCode Zen usage response did not contain quota data."};let g={};for(let[a,b]of Object.entries(ak)){let c=e.usage[a];if(!c||"object"!=typeof c)continue;let d=function(a){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 null}(c.percent);if(null===d)continue;let h=Math.max(0,Math.min(100,(0,f.IQ)(d,0)));g[b]={used:h,total:100,remaining:100-h,remainingPercentage:100-h,resetAt:(0,f.eZ)(c.resetsAt),unlimited:!1}}if(0===Object.keys(g).length)return{plan:"OpenCode Zen",message:"OpenCode Zen usage response did not contain valid quota data."};return{plan:"OpenCode Zen",quotas:g}}catch(a){return{message:`OpenCode Zen error: ${a.message}`}}}let am=(0,f.U)("groq").url;function an(a,b,c,d){let e,f=a.get(b),g=a.get(c);if(null===f||null===g)return null;let h=Number(f),i=Number(g);return Number.isFinite(h)&&Number.isFinite(i)?{used:Math.max(0,h-i),total:h,resetAt:null===(e=function(a){let b;if("string"!=typeof a||!a.trim())return null;let c=/(\d+(?:\.\d+)?)(ms|s|m|h)/g,d=0,e=!1;for(;b=c.exec(a);){e=!0;let a=Number(b[1]),c=b[2];d+=a*("h"===c?36e5:"m"===c?6e4:"ms"===c?1:1e3)}return e?d:null}(a.get(d)))?null:new Date(Date.now()+e).toISOString(),unlimited:!1}:null}async function ao(a,b=null){if(!a||"string"!=typeof a||!a.trim())return{message:"Groq API key not available. Add a key to view usage."};try{let c=await (0,d.proxyAwareFetch)(am,{method:"GET",headers:{Authorization:`Bearer ${a.trim()}`,Accept:"application/json"}},b);if(401===c.status||403===c.status)return{plan:"Groq",message:"Groq authentication failed. Check the API key."};if(!c.ok){let a=await c.text().catch(()=>"");return{plan:"Groq",message:`Groq usage API error (${c.status})${a?`: ${a.slice(0,120)}`:""}`}}await c.text().catch(()=>{});let e=an(c.headers,"x-ratelimit-limit-requests","x-ratelimit-remaining-requests","x-ratelimit-reset-requests"),f=an(c.headers,"x-ratelimit-limit-tokens","x-ratelimit-remaining-tokens","x-ratelimit-reset-tokens");if(!e&&!f)return{plan:"Groq",message:"Groq connected. No rate-limit data reported for this key yet.",quotas:{}};let g={};return e&&(g.Requests=e),f&&(g.Tokens=f),{plan:"Groq",quotas:g}}catch(a){return{message:`Groq error: ${a.message}`}}}var ap=c(49804);function aq(a){if(null==a)return{unlimited:!1,total:0};if("unlimited"===a||a?.unlimited===!0)return{unlimited:!0,total:0};if("number"==typeof a&&Number.isFinite(a))return{unlimited:!1,total:Math.max(0,a)};if("string"==typeof a){let b=a.trim();if("unlimited"===b)return{unlimited:!0,total:0};let c=Number(b);if(Number.isFinite(c))return{unlimited:!1,total:Math.max(0,c)}}let b=a.limited??a.Limited;return"number"==typeof b&&Number.isFinite(b)?{unlimited:!1,total:Math.max(0,b)}:{unlimited:!1,total:0}}function ar(a,b,c,d=null){let e=Math.max(0,(0,f.IQ)(b,0)),g=aq(c);if(g.unlimited)return{used:e,total:0,remainingPercentage:100,resetAt:d||null,unlimited:!0};let h=g.total;if(h<=0)return{used:e,total:0,remainingPercentage:0,resetAt:d||null,unlimited:!1};let i=Math.min(e,h),j=Math.max(0,h-i);return{used:i,total:h,remainingPercentage:j/h*100,resetAt:d||null,unlimited:!1}}function as(a){return a&&"object"==typeof a?null!=a.limit?a.limit:a:null}async function at(a=null,b={},c=null){let d=b||{},e=d.userId;if(!a||"string"!=typeof a||!a.trim())return{message:"Zed access token not available. Re-connect Zed to view quota."};if(!e)return{message:"Zed credential is missing user id. Re-connect Zed to view quota."};let g={accessToken:a.trim(),providerSpecificData:d};try{let a=await (0,ap.qJ)(g,{proxyOptions:c});return function(a){let b,c=a?.plan||{},d=c.plan_v3||c.plan_v2||c.plan||a?.plan_v3||null,e=(0,f.eZ)(c.subscription_period?.ended_at)||(0,f.eZ)(c.subscriptionPeriod?.endedAt)||null,g={},h=c.usage||{},i=h.edit_predictions||h.editPredictions;i&&(g["Edit Predictions"]=ar("Edit Predictions",i.used,i.limit,e));let j=h.model_requests||h.modelRequests;if(j){let a=null!=j.limit?j.limit:as(j)?.limit,b=aq(a);(b.unlimited||b.total>0)&&(g["Hosted Model Requests"]=ar("Hosted Model Requests",j.used,a,e))}let k=j&&!(b=aq(j.limit??as(j)?.limit)).unlimited&&0===b.total?"Hosted AI models are billed per token (not request count). Edit Predictions are tracked below. Token spend is on dashboard.zed.dev.":null,l=function(a){let b=String(a||"").trim();if(!b)return"Zed";switch(b.toLowerCase()){case"zed_free":return"Zed Free";case"zed_pro":return"Zed Pro";case"zed_pro_trial":return"Zed Pro Trial";case"zed_student":return"Zed Student";case"zed_business":return"Zed Business";default:return b.replace(/_/g," ").split(/\s+/).map(a=>a.charAt(0).toUpperCase()+a.slice(1).toLowerCase()).join(" ")}}(d);(c.trial_started_at||c.trialStartedAt)&&!/trial/i.test(l)&&(l=`${l} (Trial active)`);let m=k;return(c.has_overdue_invoices||c.hasOverdueInvoices)&&(m="This Zed account has overdue invoices. Usage may be blocked until billing is resolved."),{plan:l,quotas:g,message:m,hasOverdueInvoices:!!(c.has_overdue_invoices||c.hasOverdueInvoices),trialStarted:!!(c.trial_started_at||c.trialStartedAt),planId:d||null,resetAt:e}}(a)}catch(b){let a=b?.status;if(401===a||403===a)return{message:"Zed authentication failed. Sign in again from the dashboard or Zed editor."};return{message:`Zed error: ${b.message||"Failed to fetch quota"}`}}}var au=c(12132);async function av(a=null,b=null,c=null){let e=await (0,au.getMimoAccountUsage)(b,c);if("number"==typeof e.percent&&Number.isFinite(e.percent)){let a=Math.max(0,Math.min(100,Math.round(e.percent))),b=null;if("number"==typeof e.resetAt&&e.resetAt>0)b=new Date(1e3*e.resetAt).toISOString();else if("string"==typeof e.resetDate){let a=new Date(`${e.resetDate}T00:00:00Z`);Number.isNaN(a.getTime())||(b=a.toISOString())}return{plan:"Xiaomi MiMo Desktop",quotas:{Weekly:{used:100-a,total:100,remainingPercentage:a,resetAt:b,unlimited:!1}}}}let f=a||b?.apiKey;if(!f||"string"!=typeof f||!f.trim())return{message:"Xiaomi MiMo Desktop not connected. Add credentials to view usage."};try{let a=await (0,d.proxyAwareFetch)("https://aistudio.xiaomimimo.com/open-apis/v1/user/usage",{method:"GET",headers:{Authorization:`Bearer ${f.trim()}`,"X-Mimo-Source":"mimocode-cli",Accept:"application/json"},signal:AbortSignal.timeout(1e4)},c);if(401===a.status)return{plan:"Xiaomi MiMo Desktop",message:"Weekly quota requires Xiaomi account session. API key alone is insufficient."};if(!a.ok)return{plan:"Xiaomi MiMo Desktop",message:`Usage API error (${a.status})`};let b=await a.json().catch(()=>null);if(!b||0!==b.code||!b.data)return{plan:"Xiaomi MiMo Desktop",message:"Usage endpoint returned unexpected response."};let{percent:e,resetDate:g}=b.data;if("number"!=typeof e||!Number.isFinite(e))return{plan:"Xiaomi MiMo Desktop",message:"Usage data missing percent field."};let h=Math.max(0,Math.min(100,Math.round(e))),i=null;if(g&&"string"==typeof g){let a=new Date(`${g}T00:00:00Z`);Number.isNaN(a.getTime())||(i=a.toISOString())}return{plan:"Xiaomi MiMo Desktop",quotas:{Weekly:{used:100-h,total:100,remainingPercentage:h,resetAt:i,unlimited:!1}}}}catch(a){return{message:`Xiaomi MiMo Desktop usage error: ${a.message}`}}}var aw=c(81756);let ax=(0,f.U)("cursor");function ay(a){return Number(((0,f.IQ)(a,0)/100).toFixed(2))}function az(a){try{let b=a?.body?.cancel?.();b?.catch&&b.catch(()=>{})}catch{}}function aA(a){return Math.max(0,100-Math.max(0,Math.min(100,(0,f.IQ)(a,0))))}async function aB(a,b,c,e){return(0,d.proxyAwareFetch)(a,{method:"POST",headers:{...(0,aw.JA)(b,c||null,!0),"content-type":"application/json",accept:"application/json"},body:"{}",signal:AbortSignal.timeout(15e3)},e)}async function aC(a){try{return await a.json()}catch{return null}}async function aD(a,b={},c=null){if(!a||"string"!=typeof a||!a.trim())return{message:"Cursor access token not available. Reconnect Cursor to view quota."};let e=a.trim(),g=b?.machineId||null,h=ax.url,i=ax.planInfoUrl,j=ax.authUsageUrl;if(!h)return{message:"Cursor usage endpoint is not configured."};try{let a=await aB(h,e,g,c);if(401===a.status||403===a.status)return az(a),{plan:"Cursor",message:"Cursor authentication failed. Reconnect the Cursor provider."};let b={},k=null;if(a.ok&&(k=await aC(a),!function(a,b){let c=b?.planUsage;if(!c||"object"!=typeof c)return;let d=(0,f.IQ)(c.limit,0),e=(0,f.IQ)(c.includedSpend??c.totalSpend,0),g=(0,f.IQ)(c.remaining,Math.max(0,d-e)),h=(0,f.eZ)(b.billingCycleEnd);if(d>0){let b=ay(d),f=ay(e),i=ay(g);a["Plan (USD)"]={used:f,total:b,remainingPercentage:null!=c.totalPercentUsed?aA(c.totalPercentUsed):b>0?i/b*100:0,resetAt:h}}else if(null!=c.totalPercentUsed){let b=(0,f.IQ)(c.totalPercentUsed,0);a["Included usage"]={used:b,total:100,remainingPercentage:aA(b),resetAt:h}}if(null!=c.autoPercentUsed){let b=(0,f.IQ)(c.autoPercentUsed,0);a["Auto models (%)"]={used:b,total:100,remainingPercentage:aA(b),resetAt:h}}if(null!=c.apiPercentUsed){let b=(0,f.IQ)(c.apiPercentUsed,0);a["Named models (%)"]={used:b,total:100,remainingPercentage:aA(b),resetAt:h}}Object.keys(a).length}(b,k),!function(a,b){let c=b?.spendLimitUsage;if(!c||"object"!=typeof c)return;let d=(0,f.IQ)(c.individualLimit,0),e=(0,f.IQ)(c.pooledLimit,0),g=(0,f.eZ)(b.billingCycleEnd);if(d>0){let b=ay(c.individualUsed),e=ay(d),h=ay(c.individualRemaining??Math.max(0,d-(0,f.IQ)(c.individualUsed,0)));a["On-demand (USD)"]={used:b,total:e,remainingPercentage:e>0?h/e*100:0,resetAt:g};return}if(e>0){let b=ay(c.pooledUsed),d=ay(e),h=ay(c.pooledRemaining??Math.max(0,e-(0,f.IQ)(c.pooledUsed,0)));a["Team on-demand (USD)"]={used:b,total:d,remainingPercentage:d>0?h/d*100:0,resetAt:g}}}(b,k)),0===Object.keys(b).length&&j){let g=await (0,d.proxyAwareFetch)(j,{method:"GET",headers:{Authorization:`Bearer ${e.includes("::")?e.split("::")[1]:e}`,Accept:"application/json"},signal:AbortSignal.timeout(15e3)},c);if(g.ok)!function(a,b){if(!b||"object"!=typeof b)return;let c=function(a){let b=(0,f.eZ)(a);if(!b)return null;let c=new Date(b);if(Number.isNaN(c.getTime()))return null;if(c.getTime()>Date.now())return b;let d=c.getUTCDate();c.setUTCDate(1),c.setUTCMonth(c.getUTCMonth()+1);let e=new Date(Date.UTC(c.getUTCFullYear(),c.getUTCMonth()+1,0)).getUTCDate();return c.setUTCDate(Math.min(d,e)),c.toISOString()}(b.startOfMonth);for(let[d,e]of Object.entries(b)){if(!e||"object"!=typeof e||Array.isArray(e))continue;let b=(0,f.IQ)(e.maxRequestUsage,0);if(b<=0)continue;let g=(0,f.IQ)(e.numRequests,0);a[`${d} requests`]={used:g,total:b,remainingPercentage:b>0?Math.max(0,(b-g)/b*100):0,resetAt:c}}}(b,await aC(g));else if(a.ok)az(g);else{let b=await a.text().catch(()=>"");return az(g),{plan:"Cursor",message:`Cursor usage API error (${a.status})${b?`: ${b.slice(0,120)}`:""}`}}}if(0===Object.keys(b).length)return az(a),{plan:"Cursor",message:k?.displayMessage||"Cursor connected. No quota data returned for this plan."};let l="Cursor";if(i){let a=await aB(i,e,g,c).catch(()=>null);if(a?.ok){let b=await aC(a),c=b?.planInfo?.planName;"string"==typeof c&&c.trim()&&(l=`Cursor ${c.trim()}`)}else az(a)}return{plan:l,quotas:b}}catch(a){return{message:`Cursor error: ${a.message}`}}}var aE=c(53225);let aF={international:(0,f.U)("glm").url,china:(0,f.U)("glm-cn").url};async function aG(a,b,c=null){if(!a)return{message:"GLM API key not available."};let e=aF["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(),{plan:g,quotas:h}=function(a){let b=a?.data&&"object"==typeof a.data?a.data:{},c=Array.isArray(b.limits)?b.limits:[],d={};for(let a of c){if(!a||"TOKENS_LIMIT"!==a.type&&"CREDIT_LIMIT"!==a.type)continue;let b=Number(a.percentage)||0,c=Number(a.nextResetTime)||0,e=Math.max(0,100-b);d[3===a.unit?`Session (${a.number}h)`:6===a.unit?"Weekly (7d)":"TOKENS_LIMIT"===a.type?"Tokens":`Limit (${a.number})`]={used:b,total:100,remaining:e,remainingPercentage:e,resetAt:c>0?new Date(c).toISOString():null,unlimited:!1}}let e="string"==typeof b.level?b.level:"";return{plan:e?e.charAt(0).toUpperCase()+e.slice(1).toLowerCase():"Unknown",quotas:d}}(f);return{plan:g,quotas:h}}catch(a){return{message:`GLM error: ${a.message}`}}}var aH=c(10263);let aI=(process.env.COMMAND_CODE_API_BASE_URL||"https://api.commandcode.ai").replace(/\/$/,""),aJ={"individual-go":"Go","individual-go-v1":"Go","individual-goat":"GOAT","individual-pro":"Pro","individual-pro-v1":"Pro","individual-provider":"Provider","individual-max":"Max","individual-ultra":"Ultra","teams-pro":"Teams Pro"},aK={"individual-go":10,"individual-go-v1":10,"individual-goat":70,"individual-pro":30,"individual-pro-v1":80,"individual-provider":15,"individual-max":150,"individual-ultra":300,"teams-pro":40},aL={go:"individual-go","go-v1":"individual-go-v1",goat:"individual-goat",pro:"individual-pro",provider:"individual-provider",max:"individual-max",ultra:"individual-ultra"};function aM(a,b){let c=new URLSearchParams(Object.entries(b||{}).filter(([,a])=>null!=a)).toString();return c?`${a}?${c}`:a}function aN(a){if(!a||"object"!=typeof a)return null;let b=(0,f.IQ)(a.used,0),c=(0,f.IQ)(a.cap,0);return c<=0&&b<=0?null:{used:b,total:c,percentage:c>0?Math.round(b/c*100):0,colorPercentage:c>0?Math.round((c-b)/c*100):100,percentageIsUsed:!0,remaining:Math.max(0,c-b),unlimited:!1,resetAt:(0,f.eZ)(a.resetAt),emptyMessage:0!==b||a.resetAt?null:"No usage in this window"}}async function aO(a,b=null){if(!a||"string"!=typeof a||!a.trim())return{message:"Command Code API key not available. Add a key to view usage."};let c=(0,aH.$j)({apiKey:a.trim(),accept:"application/json"}),e=async a=>await (0,d.proxyAwareFetch)(aI+a,{method:"GET",headers:c},b);try{let a=await e(aM("/alpha/whoami",{limits:"1"}));if(401===a.status||403===a.status)return{plan:"Command Code",message:"Command Code authentication failed. Check the API key."};if(!a.ok)return{plan:"Command Code",message:`Command Code usage API error (${a.status})`};let b=await a.json().catch(()=>({})),c=b?.org?.id??null,[d,g]=await Promise.all([e(aM("/alpha/billing/credits",{orgId:c})),e(aM("/alpha/billing/subscriptions",{orgId:c}))]);if(401===d.status||403===d.status||401===g.status||403===g.status)return{plan:"Command Code",message:"Command Code authentication failed. Check the API key."};if(!d.ok)return{plan:"Command Code",message:`Command Code credits API error (${d.status})`};if(!g.ok)return{plan:"Command Code",message:`Command Code subscriptions API error (${g.status})`};let h=await d.json().catch(()=>({})),i=await g.json().catch(()=>({})),j=i?.data?.planId??null,k=function(a){if("string"!=typeof a)return null;let b=a.trim().toLowerCase();return aL[b]||b||null}(j),l=k&&aJ[k]||j||"Command Code",m=k&&aK[k]||0,n=h?.credits||{},o=(0,f.IQ)(n.monthlyCredits,0)+(0,f.IQ)(n.purchasedCredits,0)+(0,f.IQ)(n.freeCredits,0),p=m>0?Math.max(0,m-o):0,q={};q.Credits={name:"Monthly",used:p,total:m>0?m:o,percentage:m>0?Math.round(p/m*100):0,colorPercentage:m>0?Math.round(o/m*100):100,percentageIsUsed:!0,remaining:o,unlimited:m<=0,resetAt:(0,f.eZ)(i?.data?.currentPeriodEnd)};let r=aN(h?.windowLimits?.fiveHour);r&&(q["Session (5h)"]={...r,name:"5-hour limit"});let s=aN(h?.windowLimits?.weekly);return s&&(q.Weekly={...s,name:"Weekly limit"}),{plan:l,quotas:q}}catch(a){return{message:`Command Code error: ${a.message}`}}}let aP=(0,f.U)("vercel-ai-gateway").url;async function aQ(a){try{return{message:"iFlow connected. Usage tracked per request."}}catch(a){return{message:"Unable to fetch iFlow usage."}}}let aR={session:"Session (5h)",weekly:"Weekly (7d)",monthly:"Monthly"};async function aS(a,b,c=null){if(!a)return{message:"Ollama Cloud API key not available."};try{let b,e=await (0,d.proxyAwareFetch)("https://ollama.com/api/usage",{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c);if(e?.status===401||e?.status===403)return{message:"Ollama Cloud API key invalid or expired."};if(e&&!e.ok)return{message:`Ollama Cloud usage API error (${e.status}).`};try{b=e?await e.json():null}catch{return{message:"Ollama Cloud usage response was not JSON."}}let f=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&&a.ok?a.json():null).catch(()=>null),g="string"==typeof f?.Plan?f.Plan:"",h=g?g.charAt(0).toUpperCase()+g.slice(1).toLowerCase():"Ollama Cloud",i=b?.limits&&"object"==typeof b.limits?b.limits:{},j="free"===g.toLowerCase()&&f?.CreatedAt?function(a,b=new Date){let c=new Date(a);if(Number.isNaN(c.getTime()))return null;let d=(b.getUTCFullYear()-c.getUTCFullYear())*12+(b.getUTCMonth()-c.getUTCMonth());for(let a=Math.max(0,d);a<=d+1;a++){let d=function(a,b){let c=a.getUTCMonth()+b,d=a.getUTCFullYear()+Math.floor(c/12),e=(c%12+12)%12,f=new Date(Date.UTC(d,e+1,0)).getUTCDate();return new Date(Date.UTC(d,e,Math.min(a.getUTCDate(),f),a.getUTCHours(),a.getUTCMinutes(),a.getUTCSeconds()))}(c,a);if(d>b)return d.toISOString()}return null}(f.CreatedAt):null,k={};for(let[a,b]of Object.entries(aR)){let c=i[a]?.usage;if(null==c)continue;let d=Number(c);Number.isNaN(d)||(k[b]=function(a,b=null){let c=Math.round(100*Math.max(0,Math.min(1,Number(a)||0)));return{used:c,total:100,remainingPercentage:100-c,resetAt:b,unlimited:!1}}(d,"monthly"===a?j:null))}if(0===Object.keys(k).length){let b=null;try{b=await (0,d.proxyAwareFetch)("https://ollama.com/api/balance",{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c)}catch{b=null}if(b&&b.ok){let a=null;try{a=await b.json()}catch{a=null}let c=a?.included;if(c?.session){let a=Number(c.session.remaining_percent),b=Number.isFinite(a)?Math.max(0,Math.min(100,a)):100;k["Session (5h)"]={used:Math.round((100-b)*100)/100,total:100,remainingPercentage:b,resetAt:c.session.resets_at||null,unlimited:!1}}if(c?.weekly){let a=Number(c.weekly.remaining_percent),b=Number.isFinite(a)?Math.max(0,Math.min(100,a)):100;k["Weekly (7d)"]={used:Math.round((100-b)*100)/100,total:100,remainingPercentage:b,resetAt:c.weekly.resets_at||null,unlimited:!1}}if(c?.allowance_usd!==void 0&&c?.balance_usd!==void 0){let a=Number(c.allowance_usd)||0,b=Number(c.balance_usd)||0,d=Math.max(0,Math.round((a-b)*100)/100),e=a>0?Math.round(b/a*1e4)/100:0;k["Allowance ($)"]={used:d,total:a,remainingPercentage:e,resetAt:c.period?.until||null,unlimited:!1,unit:"USD"}}Number(a?.purchased?.balance_usd)>0&&(k["Purchased Credits"]={used:0,total:Number(a.purchased.balance_usd),remainingPercentage:100,isCreditBalance:!0,currency:"$"})}}if(0===Object.keys(k).length)return{plan:h,message:"Ollama Cloud connected. No usage limits reported.",quotas:{}};return{plan:h,quotas:k}}catch(a){return{message:`Ollama Cloud error: ${a.message}`}}}async function aT(a,b=null){if(!a)return{message:"Vercel AI Gateway API key not available."};try{let c=await (0,d.proxyAwareFetch)(aP,{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 aU(a,b=null,c="qoder"){if(!a)return{message:"Qoder usage unavailable: no access token"};try{let e=await (0,d.proxyAwareFetch)((0,f.U)(c).url,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},b);if(!e.ok)return{message:`Qoder connected. Usage fetch returned ${e.status}.`};let g=await e.json().catch(()=>null);if(!g)return{message:"Qoder connected. Usage response was not JSON."};let h=g.userQuota||{},i=g.orgResourcePackage||{},j=g.addOnQuota||{},k=Number(j.total)||0,l=Number.isFinite(Number(g.expiresAt))&&Number(g.expiresAt)>0?Number(g.expiresAt):null,m=2534022144e5===l,n=l&&!m?new Date(l).toISOString():null,o={user:{total:Number(h.total)||0,used:Number(h.used)||0,remaining:Number(h.remaining)||0,unit:h.unit||"credits",resetAt:n,neverExpires:m},organization:{total:Number(i.total)||0,used:Number(i.used)||0,remaining:Number(i.remaining)||0,unit:i.unit||"credits",resetAt:n,neverExpires:m}};return k>0&&(o.addOn={total:k,used:Number(j.used)||0,remaining:Number(j.remaining)||0,unit:j.unit||"credits",resetAt:null,neverExpires:!1,detailUrl:j.detailUrl||null}),{quotas:o,totalUsagePercentage:Number(g.totalUsagePercentage)||0,isQuotaExceeded:!!g.isQuotaExceeded,expiresAt:l}}catch(a){return{message:`Qoder connected. Unable to fetch usage: ${a.message}`}}}let aV={github:a=>h(a.accessToken,a.providerSpecificData,a.proxyOptions),"gemini-cli":a=>(0,j.N)(a.accessToken,a.providerDataWithProjectId,a.proxyOptions),antigravity:a=>(0,j.c)(a.accessToken,a.providerSpecificData,a.proxyOptions),claude:a=>(0,k.gl)(a.accessToken,a.proxyOptions,{force:a.force}),codex:a=>(0,l.Tl)(a.accessToken,a.proxyOptions),kiro:a=>n(a.accessToken,a.providerSpecificData,a.proxyOptions),qoder:a=>aW(a),"qoder-cn":a=>aW(a),iflow:a=>aQ(a.accessToken),ollama:a=>aS(a.apiKey,a.providerSpecificData,a.proxyOptions),glm:a=>aG(a.apiKey||a.accessToken,a.provider,a.proxyOptions),"glm-cn":a=>aG(a.apiKey||a.accessToken,a.provider,a.proxyOptions),minimax:a=>v(a.apiKey,a.provider,a.proxyOptions),"minimax-cn":a=>v(a.apiKey,a.provider,a.proxyOptions),"minimax-code":a=>K(a),"minimax-code-global":a=>K(a),"vercel-ai-gateway":a=>aT(a.apiKey,a.proxyOptions),"codebuddy-cn":a=>N(a.accessToken,a.apiKey,a.providerSpecificData,a.proxyOptions),"codebuddy-intl":a=>O(a.accessToken,a.apiKey,a.providerSpecificData,a.proxyOptions),"grok-cli":a=>aa(a.accessToken,a.providerSpecificData,a.proxyOptions),kimi:a=>ae(a.accessToken,a.apiKey,a.proxyOptions,a.providerSpecificData),"opencode-go":a=>ai(a.apiKey,a.proxyOptions),"opencode-zen":a=>al(a.apiKey,a.proxyOptions),deepseek:a=>af(a.apiKey,a.proxyOptions),groq:a=>ao(a.apiKey,a.proxyOptions),zed:a=>at(a.accessToken,a.providerSpecificData,a.proxyOptions),"xiaomi-mimo":a=>av(a.accessToken,a.providerSpecificData,a.proxyOptions),commandcode:a=>aO(a.apiKey,a.proxyOptions),cursor:a=>aD(a.accessToken,a.providerSpecificData,a.proxyOptions)};async function aW(a){let b=await (0,aE._M)(a,a.proxyOptions).catch(()=>null);return aU(b?.accessToken||a.accessToken,a.proxyOptions,a.provider||"qoder")}async function aX(a,b=null,c={}){let{provider:d,accessToken:e,apiKey:f,providerSpecificData:g,projectId:h}=a,i={...g||{},...h?{projectId:h}:{}},j=aV[d];return j?await j({provider:d,accessToken:e,apiKey:f,providerSpecificData:g,providerDataWithProjectId:i,proxyOptions:b,force:!0===c.force}):{message:`Usage API not implemented for ${d}`}}}};