@slkiser/opencode-quota 2.0.0 → 2.2.0

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 (72) hide show
  1. package/README.md +102 -46
  2. package/dist/lib/command-handled.d.ts +4 -0
  3. package/dist/lib/command-handled.d.ts.map +1 -1
  4. package/dist/lib/command-handled.js +6 -0
  5. package/dist/lib/command-handled.js.map +1 -1
  6. package/dist/lib/config.d.ts.map +1 -1
  7. package/dist/lib/config.js +2 -0
  8. package/dist/lib/config.js.map +1 -1
  9. package/dist/lib/copilot.d.ts.map +1 -1
  10. package/dist/lib/copilot.js +105 -18
  11. package/dist/lib/copilot.js.map +1 -1
  12. package/dist/lib/entries.d.ts +2 -0
  13. package/dist/lib/entries.d.ts.map +1 -1
  14. package/dist/lib/google.d.ts.map +1 -1
  15. package/dist/lib/google.js +7 -2
  16. package/dist/lib/google.js.map +1 -1
  17. package/dist/lib/modelsdev-pricing.d.ts +4 -0
  18. package/dist/lib/modelsdev-pricing.d.ts.map +1 -1
  19. package/dist/lib/modelsdev-pricing.js +14 -1
  20. package/dist/lib/modelsdev-pricing.js.map +1 -1
  21. package/dist/lib/opencode-auth.d.ts +9 -0
  22. package/dist/lib/opencode-auth.d.ts.map +1 -1
  23. package/dist/lib/opencode-auth.js +38 -0
  24. package/dist/lib/opencode-auth.js.map +1 -1
  25. package/dist/lib/provider-availability.d.ts +7 -0
  26. package/dist/lib/provider-availability.d.ts.map +1 -0
  27. package/dist/lib/provider-availability.js +12 -0
  28. package/dist/lib/provider-availability.js.map +1 -0
  29. package/dist/lib/quota-stats-format.d.ts.map +1 -1
  30. package/dist/lib/quota-stats-format.js +9 -1
  31. package/dist/lib/quota-stats-format.js.map +1 -1
  32. package/dist/lib/quota-stats.d.ts +15 -0
  33. package/dist/lib/quota-stats.d.ts.map +1 -1
  34. package/dist/lib/quota-stats.js +168 -73
  35. package/dist/lib/quota-stats.js.map +1 -1
  36. package/dist/lib/quota-status.d.ts.map +1 -1
  37. package/dist/lib/quota-status.js +34 -3
  38. package/dist/lib/quota-status.js.map +1 -1
  39. package/dist/lib/qwen-auth.d.ts +8 -0
  40. package/dist/lib/qwen-auth.d.ts.map +1 -0
  41. package/dist/lib/qwen-auth.js +19 -0
  42. package/dist/lib/qwen-auth.js.map +1 -0
  43. package/dist/lib/qwen-local-quota.d.ts +35 -0
  44. package/dist/lib/qwen-local-quota.d.ts.map +1 -0
  45. package/dist/lib/qwen-local-quota.js +162 -0
  46. package/dist/lib/qwen-local-quota.js.map +1 -0
  47. package/dist/lib/types.d.ts +62 -2
  48. package/dist/lib/types.d.ts.map +1 -1
  49. package/dist/lib/types.js +2 -2
  50. package/dist/lib/types.js.map +1 -1
  51. package/dist/lib/zai.d.ts +9 -0
  52. package/dist/lib/zai.d.ts.map +1 -0
  53. package/dist/lib/zai.js +86 -0
  54. package/dist/lib/zai.js.map +1 -0
  55. package/dist/plugin.d.ts.map +1 -1
  56. package/dist/plugin.js +282 -127
  57. package/dist/plugin.js.map +1 -1
  58. package/dist/providers/openai.d.ts.map +1 -1
  59. package/dist/providers/openai.js +7 -10
  60. package/dist/providers/openai.js.map +1 -1
  61. package/dist/providers/qwen-code.d.ts +3 -0
  62. package/dist/providers/qwen-code.d.ts.map +1 -0
  63. package/dist/providers/qwen-code.js +59 -0
  64. package/dist/providers/qwen-code.js.map +1 -0
  65. package/dist/providers/registry.d.ts.map +1 -1
  66. package/dist/providers/registry.js +4 -0
  67. package/dist/providers/registry.js.map +1 -1
  68. package/dist/providers/zai.d.ts +8 -0
  69. package/dist/providers/zai.d.ts.map +1 -0
  70. package/dist/providers/zai.js +112 -0
  71. package/dist/providers/zai.js.map +1 -0
  72. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,10 @@
1
1
  # Opencode Quota
2
2
 
3
- Monitor quota and tokens for OpenCode providers via Toasts and Commands. Zero LLM calls, zero context pollution.
3
+ Track OpenCode quota & tokens via Toasts/Commands with zero context window pollution.
4
+
5
+ **Quota provider supports**: GitHub Copilot, OpenAI (Plus/Pro), Qwen Code, Chutes AI, Firmware AI, Google Antigravity, and Z.ai coding plan.
6
+
7
+ **Token provider supports**: All models and providers in [models.dev](https://models.dev).
4
8
 
5
9
  ## What It Does
6
10
 
@@ -8,7 +12,7 @@ Monitor quota and tokens for OpenCode providers via Toasts and Commands. Zero LL
8
12
 
9
13
  ![Image of quota toasts](https://github.com/slkiser/opencode-quota/blob/main/toast.png)
10
14
 
11
- **Token Report Commands** - Track token usage and estimated costs across sessions.
15
+ **Token Report Commands** - Track token usage and estimated costs across sessions using only local OpenCode SQLite history plus the bundled models.dev snapshot (no network calls).
12
16
 
13
17
  ![Image of /quota and /tokens_daily outputs](https://github.com/slkiser/opencode-quota/blob/main/quota.png)
14
18
 
@@ -36,7 +40,7 @@ That's it. Providers are auto-detected based on your OpenCode configuration. Toa
36
40
  {
37
41
  "experimental": {
38
42
  "quotaToast": {
39
- "enabledProviders": ["copilot", "openai", "google-antigravity"]
43
+ "enabledProviders": ["copilot", "openai", "qwen-code", "google-antigravity"]
40
44
  }
41
45
  }
42
46
  }
@@ -46,35 +50,41 @@ That's it. Providers are auto-detected based on your OpenCode configuration. Toa
46
50
 
47
51
  ## Commands
48
52
 
49
- | Command | Description |
50
- | ------------------------ | --------------------------------------------------------- |
51
- | `/quota` | Show quota toast (verbose) |
52
- | `/quota_status` | Show diagnostics (config, providers, accounts) + pricing health |
53
- | | |
54
- | `/tokens_today` | Tokens used today (calendar day) |
55
- | `/tokens_daily` | Tokens used in last 24 hours |
56
- | `/tokens_weekly` | Tokens used in last 7 days |
57
- | `/tokens_monthly` | Tokens used in last 30 days (incl. pricing sections) |
58
- | `/tokens_all` | Tokens used all time |
59
- | `/tokens_session` | Tokens used in current session |
60
- | `/tokens_between` | Tokens between two dates (YYYY-MM-DD) |
61
-
62
- ## Supported Providers
53
+ | Command | Description |
54
+ | ----------------- | --------------------------------------------------------------- |
55
+ | `/quota` | Show quota toast (verbose) |
56
+ | `/quota_status` | Show diagnostics (config, providers, accounts) + pricing health |
57
+ | | |
58
+ | `/tokens_today` | Tokens used today (calendar day) |
59
+ | `/tokens_daily` | Tokens used in last 24 hours |
60
+ | `/tokens_weekly` | Tokens used in last 7 days |
61
+ | `/tokens_monthly` | Tokens used in last 30 days (incl. pricing sections) |
62
+ | `/tokens_all` | Tokens used all time |
63
+ | `/tokens_session` | Tokens used in current session |
64
+ | `/tokens_between` | Tokens between two dates (YYYY-MM-DD) |
65
+
66
+ Token reporting commands are the `/tokens_*` family (there is no `/token` command).
67
+
68
+ ## Supported Quota Providers
63
69
 
64
70
  | Provider | Config ID | Auth Source |
65
71
  | ------------------ | -------------------- | --------------------------------------------- |
66
72
  | GitHub Copilot | `copilot` | OpenCode auth (automatic) |
67
73
  | OpenAI (Plus/Pro) | `openai` | OpenCode auth (automatic) |
74
+ | Qwen Code (OAuth) | `qwen-code` | OpenCode auth via `opencode-qwencode-auth` |
68
75
  | Firmware AI | `firmware` | OpenCode auth or API key |
69
76
  | Chutes AI | `chutes` | OpenCode auth or API key |
70
77
  | Google Antigravity | `google-antigravity` | Multi-account via `opencode-antigravity-auth` |
78
+ | Z.ai | `zai` | OpenCode auth (automatic) |
79
+
80
+ Token pricing coverage is broader than quota provider support: `/tokens_*` maps usage against all provider/model entries present in the bundled models.dev data snapshot.
71
81
 
72
82
  ### Provider-Specific Setup
73
83
 
74
84
  <details>
75
- <summary><strong>GitHub Copilot</strong> (usually no setup needed)</summary>
85
+ <summary><strong>GitHub Copilot</strong></summary>
76
86
 
77
- Copilot works automatically if OpenCode has Copilot configured and logged in.
87
+ **Setup:** Works automatically if OpenCode has Copilot configured and logged in.
78
88
 
79
89
  **Optional:** For more reliable quota reporting, provide a fine-grained PAT:
80
90
 
@@ -84,26 +94,51 @@ Copilot works automatically if OpenCode has Copilot configured and logged in.
84
94
  ```json
85
95
  {
86
96
  "token": "github_pat_...",
87
- "username": "your-username",
88
97
  "tier": "pro"
89
98
  }
90
99
  ```
91
100
 
101
+ `username` is optional (kept for backwards compatibility). If provided, it is used only as a fallback for legacy GitHub REST paths.
102
+
103
+ Both fine-grained PATs (`github_pat_...`) and classic PATs (`ghp_...`) should work. Fine-grained PATs must include **Account permissions > Plan > Read**.
104
+
92
105
  Tier options: `free`, `pro`, `pro+`, `business`, `enterprise`
93
106
 
94
107
  </details>
95
108
 
96
109
  <details>
97
- <summary><strong>OpenAI</strong> (no setup needed)</summary>
110
+ <summary><strong>OpenAI</strong></summary>
98
111
 
99
- OpenAI works automatically if OpenCode has OpenAI/ChatGPT configured.
112
+ **Setup:** Works automatically if OpenCode has OpenAI/ChatGPT configured.
113
+
114
+ </details>
115
+
116
+ <details>
117
+ <summary><strong>Qwen Code</strong></summary>
118
+
119
+ **Setup:** Requires OAuth credentials from the `opencode-qwencode-auth` plugin.
120
+
121
+ Quota output for Qwen is **local-only estimation**:
122
+
123
+ - 1000 requests per UTC day (resets at UTC midnight)
124
+ - 60 requests per rolling minute
125
+ - Counter increments on successful question-tool completions while plugin is enabled and current model is `qwen-code/*`
126
+
127
+ No remote quota endpoint is called for Qwen and Alibaba API is not used.
128
+
129
+ Local state file path:
130
+
131
+ - `.../opencode/opencode-quota/qwen-local-quota.json` (under OpenCode state dir)
132
+
133
+ Use `/quota_status` to verify auth detection and local Qwen counter status.
134
+ If the local Qwen state file is missing, `/quota_status` reports usage from a default empty state.
100
135
 
101
136
  </details>
102
137
 
103
138
  <details>
104
139
  <summary><strong>Firmware AI</strong></summary>
105
140
 
106
- Works automatically if OpenCode has Firmware configured. Alternatively, provide an API key:
141
+ **Setup:** Works automatically if OpenCode has Firmware configured. Alternatively, provide an API key:
107
142
 
108
143
  ```json
109
144
  {
@@ -124,14 +159,12 @@ Works automatically if OpenCode has Firmware configured. Alternatively, provide
124
159
 
125
160
  The `apiKey` field supports `{env:VAR_NAME}` syntax or a direct key.
126
161
 
127
-
128
-
129
162
  </details>
130
163
 
131
164
  <details>
132
165
  <summary><strong>Chutes AI</strong></summary>
133
166
 
134
- Works automatically if OpenCode has Chutes configured. Alternatively, provide an API key:
167
+ **Setup:** Works automatically if OpenCode has Chutes configured. Alternatively, provide an API key:
135
168
 
136
169
  ```json
137
170
  {
@@ -155,7 +188,7 @@ Works automatically if OpenCode has Chutes configured. Alternatively, provide an
155
188
  <details>
156
189
  <summary><strong>Google Antigravity</strong></summary>
157
190
 
158
- Requires the `opencode-antigravity-auth` plugin for multi-account support:
191
+ **Setup:** Requires the `opencode-antigravity-auth` plugin for multi-account support:
159
192
 
160
193
  ```json
161
194
  {
@@ -169,29 +202,46 @@ If you are troubleshooting, `/quota_status` prints the candidate paths checked f
169
202
 
170
203
  </details>
171
204
 
205
+ <details>
206
+ <summary><strong>Z.ai</strong></summary>
207
+
208
+ **Setup:** Works automatically if OpenCode has Z.ai (Coding Plan) configured.
209
+
210
+ </details>
211
+
172
212
  ## Configuration Reference
173
213
 
174
214
  All options go under `experimental.quotaToast` in `opencode.json` or `opencode.jsonc`:
175
215
 
176
- | Option | Default | Description |
177
- | ------------------- | ------------ | ---------------------------------------------------------------------------- |
178
- | `enabled` | `true` | Enable/disable plugin |
179
- | `enableToast` | `true` | Show popup toasts |
180
- | `toastStyle` | `classic` | Toast layout style: `classic` or `grouped` |
181
- | `enabledProviders` | `"auto"` | Provider IDs to query, or `"auto"` to detect |
182
- | `minIntervalMs` | `300000` | Minimum ms between API fetches (default: 5 min) |
183
- | `toastDurationMs` | `9000` | How long toasts display (ms) |
184
- | `showOnIdle` | `true` | Show toast on idle trigger |
185
- | `showOnQuestion` | `true` | Show toast after a question/assistant response |
186
- | `showOnCompact` | `true` | Show toast after session compaction |
187
- | `showOnBothFail` | `true` | If providers attempt and fail, show a fallback toast |
188
- | `onlyCurrentModel` | `false` | Only show quota for the current model (best-effort) |
189
- | `showSessionTokens` | `true` | Show per-model input/output tokens in toast |
190
- | `layout.maxWidth` | `50` | Formatting target width |
191
- | `layout.narrowAt` | `42` | Compact layout breakpoint |
192
- | `layout.tinyAt` | `32` | Ultra-compact layout breakpoint |
193
- | `googleModels` | `["CLAUDE"]` | Google models: `CLAUDE`, `G3PRO`, `G3FLASH`, `G3IMAGE` |
194
- | `debug` | `false` | Show debug info in toasts (and a debug-only toast when otherwise suppressed) |
216
+ | Option | Default | Description |
217
+ | ------------------- | ------------ | ---------------------------------------------------------------------------------------------------- |
218
+ | `enabled` | `true` | Enable/disable plugin |
219
+ | `enableToast` | `true` | Show popup toasts |
220
+ | `toastStyle` | `classic` | Toast layout style: `classic` or `grouped` |
221
+ | `enabledProviders` | `"auto"` | Provider IDs to query, or `"auto"` to detect |
222
+ | `minIntervalMs` | `300000` | Minimum ms between provider fetches (default: 5 min); Qwen local RPM stays live on question triggers |
223
+ | `toastDurationMs` | `9000` | How long toasts display (ms) |
224
+ | `showOnIdle` | `true` | Show toast on idle trigger |
225
+ | `showOnQuestion` | `true` | Show toast after a question/assistant response |
226
+ | `showOnCompact` | `true` | Show toast after session compaction |
227
+ | `showOnBothFail` | `true` | If providers attempt and fail, show a fallback toast |
228
+ | `onlyCurrentModel` | `false` | Only show quota for the current model (best-effort) |
229
+ | `showSessionTokens` | `true` | Show per-model input/output tokens in toast |
230
+ | `layout.maxWidth` | `50` | Formatting target width |
231
+ | `layout.narrowAt` | `42` | Compact layout breakpoint |
232
+ | `layout.tinyAt` | `32` | Ultra-compact layout breakpoint |
233
+ | `googleModels` | `["CLAUDE"]` | Google models: `CLAUDE`, `G3PRO`, `G3FLASH`, `G3IMAGE` |
234
+ | `debug` | `false` | Show debug info in toasts (and a debug-only toast when otherwise suppressed) |
235
+
236
+ ## Development
237
+
238
+ ```sh
239
+ npm install
240
+ npm run typecheck
241
+ npm test
242
+ npm run test:watch
243
+ npm run build
244
+ ```
195
245
 
196
246
  ## Troubleshooting
197
247
 
@@ -240,6 +290,7 @@ By default, providers are auto-detected. If the user wants to restrict which pro
240
290
  // Add only the providers the user has configured:
241
291
  // "copilot" - if using GitHub Copilot
242
292
  // "openai" - if using OpenAI/ChatGPT
293
+ // "qwen-code" - if using Qwen Code OAuth (requires opencode-qwencode-auth)
243
294
  // "firmware" - if using Firmware AI
244
295
  // "chutes" - if using Chutes AI
245
296
  // "google-antigravity" - if using Google Antigravity (requires opencode-antigravity-auth)
@@ -255,10 +306,12 @@ By default, providers are auto-detected. If the user wants to restrict which pro
255
306
  | ------------------------------------------- | ----------------------- |
256
307
  | `github-copilot` provider or Copilot models | `"copilot"` |
257
308
  | `openai` / `chatgpt` provider | `"openai"` |
309
+ | `qwen-code` provider | `"qwen-code"` |
258
310
  | `firmware` / `firmware-ai` provider | `"firmware"` |
259
311
  | `chutes` provider | `"chutes"` |
260
312
  | `google` provider with antigravity models | `"google-antigravity"` |
261
313
  | `opencode-antigravity-auth` in plugins | `"google-antigravity"` |
314
+ | `opencode-qwencode-auth` in plugins | `"qwen-code"` |
262
315
 
263
316
  #### Example: Full Configuration
264
317
 
@@ -300,3 +353,6 @@ After configuration, instruct the user to:
300
353
  ## License
301
354
 
302
355
  MIT
356
+
357
+ ## Remarks
358
+ Opencode Quota is not built by the OpenCode team and is not affiliated with them in any way. It is not affiliated with any providers listed above.
@@ -10,4 +10,8 @@ export declare const COMMAND_HANDLED_SENTINEL: "__QUOTA_COMMAND_HANDLED__";
10
10
  * Use this instead of `throw new Error("__QUOTA_COMMAND_HANDLED__")`.
11
11
  */
12
12
  export declare function handled(): never;
13
+ /**
14
+ * Returns true when an error is the command-handled sentinel.
15
+ */
16
+ export declare function isCommandHandledError(err: unknown): boolean;
13
17
  //# sourceMappingURL=command-handled.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"command-handled.d.ts","sourceRoot":"","sources":["../../src/lib/command-handled.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,wBAAwB,EAAG,2BAAoC,CAAC;AAE7E;;;GAGG;AACH,wBAAgB,OAAO,IAAI,KAAK,CAE/B"}
1
+ {"version":3,"file":"command-handled.d.ts","sourceRoot":"","sources":["../../src/lib/command-handled.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,wBAAwB,EAAG,2BAAoC,CAAC;AAE7E;;;GAGG;AACH,wBAAgB,OAAO,IAAI,KAAK,CAE/B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAE3D"}
@@ -12,4 +12,10 @@ export const COMMAND_HANDLED_SENTINEL = "__QUOTA_COMMAND_HANDLED__";
12
12
  export function handled() {
13
13
  throw new Error(COMMAND_HANDLED_SENTINEL);
14
14
  }
15
+ /**
16
+ * Returns true when an error is the command-handled sentinel.
17
+ */
18
+ export function isCommandHandledError(err) {
19
+ return err instanceof Error && err.message === COMMAND_HANDLED_SENTINEL;
20
+ }
15
21
  //# sourceMappingURL=command-handled.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"command-handled.js","sourceRoot":"","sources":["../../src/lib/command-handled.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAAoC,CAAC;AAE7E;;;GAGG;AACH,MAAM,UAAU,OAAO;IACrB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC5C,CAAC"}
1
+ {"version":3,"file":"command-handled.js","sourceRoot":"","sources":["../../src/lib/command-handled.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,2BAAoC,CAAC;AAE7E;;;GAGG;AACH,MAAM,UAAU,OAAO;IACrB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAY;IAChD,OAAO,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,KAAK,wBAAwB,CAAC;AAC1E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,YAAY,CAAC;AAUlE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,GAAG,OAAO,GAAG,UAAU,CAAC;IACrC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAgB,oBAAoB,IAAI,cAAc,CAErD;AAiCD;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE;IACN,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE;gBAAE,YAAY,CAAC,EAAE;oBAAE,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;iBAAE,CAAA;aAAE,CAAA;SAAE,CAAC,CAAC;KAC9F,CAAC;CACH,EACD,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,gBAAgB,CAAC,CA+K3B"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAiB,MAAM,YAAY,CAAC;AAUlE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,GAAG,OAAO,GAAG,UAAU,CAAC;IACrC,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,wBAAgB,oBAAoB,IAAI,cAAc,CAErD;AAmCD;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE;IACN,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE;gBAAE,YAAY,CAAC,EAAE;oBAAE,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;iBAAE,CAAA;aAAE,CAAA;SAAE,CAAC,CAAC;KAC9F,CAAC;CACH,EACD,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,gBAAgB,CAAC,CA+K3B"}
@@ -31,6 +31,8 @@ function normalizeProviderId(id) {
31
31
  case "copilot-chat":
32
32
  case "github-copilot-chat":
33
33
  return "copilot";
34
+ case "qwen":
35
+ return "qwen-code";
34
36
  default:
35
37
  return s;
36
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/lib/copilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAOV,aAAa,EACd,MAAM,YAAY,CAAC;AAmRpB;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,CAAC,CA2DhE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAevE"}
1
+ {"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/lib/copilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAOV,aAAa,EACd,MAAM,YAAY,CAAC;AA0YpB;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,aAAa,CAAC,CA2DhE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAevE"}
@@ -51,6 +51,58 @@ function buildLegacyTokenHeaders(token) {
51
51
  ...COPILOT_HEADERS,
52
52
  };
53
53
  }
54
+ function buildGitHubRestHeaders(token, scheme) {
55
+ return {
56
+ Accept: "application/vnd.github+json",
57
+ Authorization: scheme === "bearer" ? `Bearer ${token}` : `token ${token}`,
58
+ "X-GitHub-Api-Version": "2022-11-28",
59
+ "User-Agent": USER_AGENT,
60
+ };
61
+ }
62
+ function preferredSchemesForToken(token) {
63
+ const t = token.trim();
64
+ // Fine-grained PATs usually prefer Bearer.
65
+ if (t.startsWith("github_pat_")) {
66
+ return ["bearer", "token"];
67
+ }
68
+ // Classic PATs historically prefer legacy `token`.
69
+ if (t.startsWith("ghp_")) {
70
+ return ["token", "bearer"];
71
+ }
72
+ return ["bearer", "token"];
73
+ }
74
+ async function readGitHubRestErrorMessage(response) {
75
+ const text = await response.text();
76
+ try {
77
+ const parsed = JSON.parse(text);
78
+ if (parsed && typeof parsed === "object") {
79
+ const obj = parsed;
80
+ const msg = typeof obj.message === "string" ? obj.message : null;
81
+ const doc = typeof obj.documentation_url === "string" ? obj.documentation_url : null;
82
+ if (msg && doc)
83
+ return `${msg} (${doc})`;
84
+ if (msg)
85
+ return msg;
86
+ }
87
+ }
88
+ catch {
89
+ // ignore
90
+ }
91
+ return text.slice(0, 160);
92
+ }
93
+ async function fetchGitHubRestJsonOnce(url, token, scheme) {
94
+ const response = await fetchWithTimeout(url, {
95
+ headers: buildGitHubRestHeaders(token, scheme),
96
+ });
97
+ if (response.ok) {
98
+ return { ok: true, status: response.status, data: (await response.json()) };
99
+ }
100
+ return {
101
+ ok: false,
102
+ status: response.status,
103
+ message: await readGitHubRestErrorMessage(response),
104
+ };
105
+ }
54
106
  /**
55
107
  * Read Copilot auth data from auth.json
56
108
  *
@@ -82,8 +134,15 @@ function readQuotaConfig() {
82
134
  const parsed = JSON.parse(content);
83
135
  if (!parsed || typeof parsed !== "object")
84
136
  return null;
85
- if (!parsed.token || !parsed.username || !parsed.tier)
137
+ if (typeof parsed.token !== "string" || parsed.token.trim() === "")
138
+ return null;
139
+ if (typeof parsed.tier !== "string" || parsed.tier.trim() === "")
86
140
  return null;
141
+ // Username is optional now that we prefer the /user/... billing endpoint.
142
+ if (parsed.username != null) {
143
+ if (typeof parsed.username !== "string" || parsed.username.trim() === "")
144
+ return null;
145
+ }
87
146
  const validTiers = ["free", "pro", "pro+", "business", "enterprise"];
88
147
  if (!validTiers.includes(parsed.tier))
89
148
  return null;
@@ -107,18 +166,35 @@ function getApproxNextResetIso(nowMs = Date.now()) {
107
166
  return new Date(Date.UTC(year, month + 1, 1, 0, 0, 0, 0)).toISOString();
108
167
  }
109
168
  async function fetchPublicBillingUsage(config) {
110
- const response = await fetchWithTimeout(`${GITHUB_API_BASE_URL}/users/${config.username}/settings/billing/premium_request/usage`, {
111
- headers: {
112
- Accept: "application/vnd.github+json",
113
- Authorization: `Bearer ${config.token}`,
114
- "X-GitHub-Api-Version": "2022-11-28",
115
- },
116
- });
117
- if (!response.ok) {
118
- const errorText = await response.text();
119
- throw new Error(`GitHub API error ${response.status}: ${errorText.slice(0, 160)}`);
169
+ const token = config.token;
170
+ const schemes = preferredSchemesForToken(token);
171
+ // Prefer authenticated-user endpoint; fall back to /users/{username} for older behavior.
172
+ const urls = [`${GITHUB_API_BASE_URL}/user/settings/billing/premium_request/usage`];
173
+ if (config.username) {
174
+ urls.push(`${GITHUB_API_BASE_URL}/users/${config.username}/settings/billing/premium_request/usage`);
175
+ }
176
+ for (const url of urls) {
177
+ let lastUnauthorized = null;
178
+ for (const scheme of schemes) {
179
+ const res = await fetchGitHubRestJsonOnce(url, token, scheme);
180
+ if (res.ok) {
181
+ return res.data;
182
+ }
183
+ if (res.status === 401) {
184
+ lastUnauthorized = { status: res.status, message: res.message };
185
+ continue; // retry with alternate scheme
186
+ }
187
+ // If /user/... isn't supported for some reason, fall back to /users/... when available.
188
+ if (res.status === 404 && url.includes("/user/")) {
189
+ break;
190
+ }
191
+ throw new Error(`GitHub API error ${res.status}: ${res.message}`);
192
+ }
193
+ if (lastUnauthorized) {
194
+ throw new Error(`GitHub API error ${lastUnauthorized.status}: ${lastUnauthorized.message} (token rejected; verify PAT and permissions)`);
195
+ }
120
196
  }
121
- return response.json();
197
+ throw new Error("GitHub API error 404: Not Found");
122
198
  }
123
199
  function toQuotaResultFromBilling(data, tier) {
124
200
  const items = Array.isArray(data.usageItems) ? data.usageItems : [];
@@ -127,7 +203,11 @@ function toQuotaResultFromBilling(data, tier) {
127
203
  typeof item.sku === "string" &&
128
204
  (item.sku === "Copilot Premium Request" || item.sku.includes("Premium")));
129
205
  const used = premiumItems.reduce((sum, item) => sum + (item.grossQuantity || 0), 0);
130
- const total = COPILOT_PLAN_LIMITS[tier];
206
+ const limits = premiumItems
207
+ .map((item) => item.limit)
208
+ .filter((n) => typeof n === "number" && n > 0);
209
+ // Prefer API-provided limits when available (more future-proof than hardcoding).
210
+ const total = limits.length ? Math.max(...limits) : COPILOT_PLAN_LIMITS[tier];
131
211
  if (!total || total <= 0) {
132
212
  throw new Error(`Unsupported Copilot tier: ${tier}`);
133
213
  }
@@ -182,17 +262,24 @@ async function fetchCopilotUsage(authData) {
182
262
  return response.json();
183
263
  }
184
264
  }
185
- // Strategy 2: Try direct call with OAuth token using legacy format.
186
- const directResponse = await fetchWithTimeout(COPILOT_INTERNAL_USER_URL, {
265
+ // Strategy 2: Try direct call with OAuth token (newer tokens generally expect Bearer).
266
+ const directBearerResponse = await fetchWithTimeout(COPILOT_INTERNAL_USER_URL, {
267
+ headers: buildBearerHeaders(oauthToken),
268
+ });
269
+ if (directBearerResponse.ok) {
270
+ return directBearerResponse.json();
271
+ }
272
+ // Strategy 2b: Legacy auth format.
273
+ const directLegacyResponse = await fetchWithTimeout(COPILOT_INTERNAL_USER_URL, {
187
274
  headers: buildLegacyTokenHeaders(oauthToken),
188
275
  });
189
- if (directResponse.ok) {
190
- return directResponse.json();
276
+ if (directLegacyResponse.ok) {
277
+ return directLegacyResponse.json();
191
278
  }
192
279
  // Strategy 3: Exchange OAuth token for Copilot session token (new auth flow).
193
280
  const copilotToken = await exchangeForCopilotToken(oauthToken);
194
281
  if (!copilotToken) {
195
- const errorText = await directResponse.text();
282
+ const errorText = await directLegacyResponse.text();
196
283
  throw new Error(`GitHub Copilot quota unavailable: ${errorText.slice(0, 160)}`);
197
284
  }
198
285
  const exchangedResponse = await fetchWithTimeout(COPILOT_INTERNAL_USER_URL, {
@@ -1 +1 @@
1
- {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/lib/copilot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copilot.js","sourceRoot":"","sources":["../../src/lib/copilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAWH,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,gFAAgF;AAChF,YAAY;AACZ,gFAAgF;AAEhF,MAAM,mBAAmB,GAAG,wBAAwB,CAAC;AACrD,MAAM,yBAAyB,GAAG,GAAG,mBAAmB,wBAAwB,CAAC;AACjF,MAAM,0BAA0B,GAAG,GAAG,mBAAmB,4BAA4B,CAAC;AAEtF,gFAAgF;AAChF,MAAM,eAAe,GAAG,QAAQ,CAAC;AACjC,MAAM,cAAc,GAAG,gBAAgB,CAAC;AACxC,MAAM,qBAAqB,GAAG,gBAAgB,eAAe,EAAE,CAAC;AAChE,MAAM,UAAU,GAAG,qBAAqB,eAAe,EAAE,CAAC;AAE1D,MAAM,yBAAyB,GAAG,IAAI,CACpC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EACzD,UAAU,EACV,0BAA0B,CAC3B,CAAC;AAEF,gFAAgF;AAChF,UAAU;AACV,gFAAgF;AAEhF;;GAEG;AACH,MAAM,eAAe,GAA2B;IAC9C,YAAY,EAAE,UAAU;IACxB,gBAAgB,EAAE,cAAc;IAChC,uBAAuB,EAAE,qBAAqB;IAC9C,wBAAwB,EAAE,aAAa;CACxC,CAAC;AAEF,SAAS,kBAAkB,CAAC,KAAa;IACvC,OAAO;QACL,MAAM,EAAE,kBAAkB;QAC1B,aAAa,EAAE,UAAU,KAAK,EAAE;QAChC,GAAG,eAAe;KACnB,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa;IAC5C,OAAO;QACL,MAAM,EAAE,kBAAkB;QAC1B,aAAa,EAAE,SAAS,KAAK,EAAE;QAC/B,GAAG,eAAe;KACnB,CAAC;AACJ,CAAC;AAID,SAAS,sBAAsB,CAC7B,KAAa,EACb,MAA4B;IAE5B,OAAO;QACL,MAAM,EAAE,6BAA6B;QACrC,aAAa,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,EAAE;QACzE,sBAAsB,EAAE,YAAY;QACpC,YAAY,EAAE,UAAU;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAa;IAC7C,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAEvB,2CAA2C;IAC3C,IAAI,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,mDAAmD;IACnD,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,QAAkB;IAC1D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC3C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,GAAG,GAAG,MAAiC,CAAC;YAC9C,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YACjE,MAAM,GAAG,GAAG,OAAO,GAAG,CAAC,iBAAiB,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC;YACrF,IAAI,GAAG,IAAI,GAAG;gBAAE,OAAO,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC;YACzC,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;QACtB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC5B,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,GAAW,EACX,KAAa,EACb,MAA4B;IAK5B,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE;QAC3C,OAAO,EAAE,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC;KAC/C,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAM,EAAE,CAAC;IACnF,CAAC;IAED,OAAO;QACL,EAAE,EAAE,KAAK;QACT,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,MAAM,0BAA0B,CAAC,QAAQ,CAAC;KACpD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe;IAC5B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAC;IACtC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,wCAAwC;IACxC,MAAM,WAAW,GACf,QAAQ,CAAC,gBAAgB,CAAC;QACzB,QAAwD,CAAC,SAAS,CAAC;QACnE,QAAwD,CAAC,cAAc,CAAC,CAAC;IAE5E,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe;IACtB,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAC3C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,YAAY,CAAC,yBAAyB,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAuB,CAAC;QAEzD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAEvD,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAChF,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAE9E,0EAA0E;QAC1E,IAAI,MAAM,CAAC,QAAQ,IAAI,IAAI,EAAE,CAAC;YAC5B,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE;gBAAE,OAAO,IAAI,CAAC;QACxF,CAAC;QAED,MAAM,UAAU,GAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACpF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAmB,CAAC;YAAE,OAAO,IAAI,CAAC;QAElE,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAmBD,MAAM,mBAAmB,GAAgC;IACvD,IAAI,EAAE,EAAE;IACR,GAAG,EAAE,GAAG;IACR,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,GAAG;IACb,UAAU,EAAE,IAAI;CACjB,CAAC;AAEF,SAAS,qBAAqB,CAAC,QAAgB,IAAI,CAAC,GAAG,EAAE;IACvD,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,IAAI,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;IAChC,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAC1E,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,MAA0B;IAC/D,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,MAAM,OAAO,GAAG,wBAAwB,CAAC,KAAK,CAAC,CAAC;IAEhD,yFAAyF;IACzF,MAAM,IAAI,GAAa,CAAC,GAAG,mBAAmB,8CAA8C,CAAC,CAAC;IAC9F,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,CACP,GAAG,mBAAmB,UAAU,MAAM,CAAC,QAAQ,yCAAyC,CACzF,CAAC;IACJ,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,gBAAgB,GAA+C,IAAI,CAAC;QAExE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,MAAM,uBAAuB,CAAuB,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAEpF,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACX,OAAO,GAAG,CAAC,IAAI,CAAC;YAClB,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACvB,gBAAgB,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC;gBAChE,SAAS,CAAC,8BAA8B;YAC1C,CAAC;YAED,wFAAwF;YACxF,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjD,MAAM;YACR,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,oBAAoB,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,oBAAoB,gBAAgB,CAAC,MAAM,KAAK,gBAAgB,CAAC,OAAO,+CAA+C,CACxH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;AACrD,CAAC;AAED,SAAS,wBAAwB,CAC/B,IAA0B,EAC1B,IAAiB;IAEjB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpE,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAC/B,CAAC,IAAI,EAAE,EAAE,CACP,IAAI;QACJ,OAAO,IAAI,KAAK,QAAQ;QACxB,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;QAC5B,CAAC,IAAI,CAAC,GAAG,KAAK,yBAAyB,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAC3E,CAAC;IAEF,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpF,MAAM,MAAM,GAAG,YAAY;SACxB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;SACzB,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAE9D,iFAAiF;IACjF,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE9E,IAAI,CAAC,KAAK,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;IAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAE3F,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI;QACJ,KAAK;QACL,gBAAgB;QAChB,YAAY,EAAE,qBAAqB,EAAE;KACtC,CAAC;AACJ,CAAC;AASD,KAAK,UAAU,uBAAuB,CAAC,UAAkB;IACvD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,0BAA0B,EAAE;YAClE,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,aAAa,EAAE,UAAU,UAAU,EAAE;gBACrC,GAAG,eAAe;aACnB;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAyB,CAAC;QAClE,IAAI,CAAC,SAAS,IAAI,OAAO,SAAS,CAAC,KAAK,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACnE,OAAO,SAAS,CAAC,KAAK,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,iBAAiB,CAAC,QAAyB;IACxD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC;IACvD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC1C,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;IAE1C,uFAAuF;IACvF,IAAI,iBAAiB,IAAI,iBAAiB,KAAK,UAAU,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACtF,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,yBAAyB,EAAE;YACjE,OAAO,EAAE,kBAAkB,CAAC,iBAAiB,CAAC;SAC/C,CAAC,CAAC;QAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YAChB,OAAO,QAAQ,CAAC,IAAI,EAAmC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,uFAAuF;IACvF,MAAM,oBAAoB,GAAG,MAAM,gBAAgB,CAAC,yBAAyB,EAAE;QAC7E,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC;KACxC,CAAC,CAAC;IAEH,IAAI,oBAAoB,CAAC,EAAE,EAAE,CAAC;QAC5B,OAAO,oBAAoB,CAAC,IAAI,EAAmC,CAAC;IACtE,CAAC;IAED,mCAAmC;IACnC,MAAM,oBAAoB,GAAG,MAAM,gBAAgB,CAAC,yBAAyB,EAAE;QAC7E,OAAO,EAAE,uBAAuB,CAAC,UAAU,CAAC;KAC7C,CAAC,CAAC;IAEH,IAAI,oBAAoB,CAAC,EAAE,EAAE,CAAC;QAC5B,OAAO,oBAAoB,CAAC,IAAI,EAAmC,CAAC;IACtE,CAAC;IAED,8EAA8E;IAC9E,MAAM,YAAY,GAAG,MAAM,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAC/D,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,qCAAqC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,MAAM,iBAAiB,GAAG,MAAM,gBAAgB,CAAC,yBAAyB,EAAE;QAC1E,OAAO,EAAE,kBAAkB,CAAC,YAAY,CAAC;KAC1C,CAAC,CAAC;IAEH,IAAI,CAAC,iBAAiB,CAAC,EAAE,EAAE,CAAC;QAC1B,MAAM,SAAS,GAAG,MAAM,iBAAiB,CAAC,IAAI,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,oBAAoB,iBAAiB,CAAC,MAAM,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,iBAAiB,CAAC,IAAI,EAAmC,CAAC;AACnE,CAAC;AAED,gFAAgF;AAChF,SAAS;AACT,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,mEAAmE;IACnE,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;IACtC,IAAI,WAAW,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,uBAAuB,CAAC,WAAW,CAAC,CAAC;YAC3D,OAAO,wBAAwB,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;aAC1C,CAAC;QAClB,CAAC;IACH,CAAC;IAED,4DAA4D;IAC5D,MAAM,IAAI,GAAG,MAAM,eAAe,EAAE,CAAC;IACrC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,CAAC,CAAC,iBAAiB;IAChC,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC;QAE1D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,uBAAuB;aACjB,CAAC;QAClB,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,CAAC,CAAC,EAAE,qBAAqB;gBAChC,gBAAgB,EAAE,GAAG;gBACrB,YAAY,EAAE,IAAI,CAAC,gBAAgB;aACd,CAAC;QAC1B,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;QAClC,MAAM,IAAI,GAAG,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC;QACvC,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAE/D,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI;YACJ,KAAK;YACL,gBAAgB;YAChB,YAAY,EAAE,IAAI,CAAC,gBAAgB;SACd,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SAC1C,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAqB;IACtD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACxB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,MAAM,WAAW,GAAG,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAClD,OAAO,WAAW,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,KAAK,WAAW,IAAI,CAAC;AACpE,CAAC"}
@@ -75,6 +75,8 @@ export interface QuotaProviderContext {
75
75
  config: {
76
76
  googleModels: string[];
77
77
  toastStyle?: "classic" | "grouped";
78
+ onlyCurrentModel?: boolean;
79
+ currentModel?: string;
78
80
  };
79
81
  }
80
82
  export interface QuotaProvider {
@@ -1 +1 @@
1
- {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../src/lib/entries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,eAAe,GACvB;IACE;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,uFAAuF;IACvF,IAAI,EAAE,MAAM,CAAC;IAEb,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;IAEzB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GACD;IACE,0CAA0C;IAC1C,IAAI,EAAE,OAAO,CAAC;IAEd,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IAEb,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IAEd,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEN,wBAAgB,YAAY,CAC1B,CAAC,EAAE,eAAe,GACjB,CAAC,IAAI,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAElD;AAED,wBAAgB,cAAc,CAC5B,CAAC,EAAE,eAAe,GACjB,CAAC,IAAI,OAAO,CAAC,eAAe,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC,CAE7D;AAED,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,6CAA6C;AAC7C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE;QACN,MAAM,EAAE;YACN,SAAS,EAAE,MAAM,OAAO,CAAC;gBAAE,IAAI,CAAC,EAAE;oBAAE,SAAS,EAAE,KAAK,CAAC;wBAAE,EAAE,EAAE,MAAM,CAAA;qBAAE,CAAC,CAAA;iBAAE,CAAA;aAAE,CAAC,CAAC;YAC1E,GAAG,EAAE,MAAM,OAAO,CAAC;gBAAE,IAAI,CAAC,EAAE;oBAAE,KAAK,CAAC,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,CAAC,CAAC;SACnD,CAAC;KACH,CAAC;IACF,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;KACpC,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAC;IAEX,8DAA8D;IAC9D,WAAW,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7D,kDAAkD;IAClD,KAAK,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEnE,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CAClD"}
1
+ {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../src/lib/entries.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,eAAe,GACvB;IACE;;;OAGG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,uFAAuF;IACvF,IAAI,EAAE,MAAM,CAAC;IAEb,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;IAEzB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GACD;IACE,0CAA0C;IAC1C,IAAI,EAAE,OAAO,CAAC;IAEd,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IAEb,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IAEd,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEN,wBAAgB,YAAY,CAC1B,CAAC,EAAE,eAAe,GACjB,CAAC,IAAI,OAAO,CAAC,eAAe,EAAE;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAElD;AAED,wBAAgB,cAAc,CAC5B,CAAC,EAAE,eAAe,GACjB,CAAC,IAAI,OAAO,CAAC,eAAe,EAAE;IAAE,gBAAgB,EAAE,MAAM,CAAA;CAAE,CAAC,CAE7D;AAED,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,mEAAmE;AACnE,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,6CAA6C;AAC7C,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE;QACN,MAAM,EAAE;YACN,SAAS,EAAE,MAAM,OAAO,CAAC;gBAAE,IAAI,CAAC,EAAE;oBAAE,SAAS,EAAE,KAAK,CAAC;wBAAE,EAAE,EAAE,MAAM,CAAA;qBAAE,CAAC,CAAA;iBAAE,CAAA;aAAE,CAAC,CAAC;YAC1E,GAAG,EAAE,MAAM,OAAO,CAAC;gBAAE,IAAI,CAAC,EAAE;oBAAE,KAAK,CAAC,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,CAAC,CAAC;SACnD,CAAC;KACH,CAAC;IACF,MAAM,EAAE;QACN,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,UAAU,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;QACnC,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAC;IAEX,8DAA8D;IAC9D,WAAW,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7D,kDAAkD;IAClD,KAAK,EAAE,CAAC,GAAG,EAAE,oBAAoB,KAAK,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEnE,6DAA6D;IAC7D,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;CAClD"}
@@ -1 +1 @@
1
- {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../src/lib/google.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,OAAO,KAAK,EACV,kBAAkB,EAKlB,aAAa,EAEb,YAAY,EACb,MAAM,YAAY,CAAC;AA6BpB,wBAAgB,oCAAoC,IAAI,MAAM,EAAE,CAY/D;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAMpD;AAED;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,CAmBpF;AAED,wBAAsB,gCAAgC,IAAI,OAAO,CAAC,OAAO,CAAC,CAGzE;AAsHD,wBAAsB,iCAAiC,CAAC,MAAM,CAAC,EAAE;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD,CAAC,CAmCD;AAqJD;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAsCvF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAcrE"}
1
+ {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../src/lib/google.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAaH,OAAO,KAAK,EACV,kBAAkB,EAKlB,aAAa,EAEb,YAAY,EACb,MAAM,YAAY,CAAC;AA6BpB,wBAAgB,oCAAoC,IAAI,MAAM,EAAE,CAY/D;AAED,wBAAgB,2BAA2B,IAAI,MAAM,CAMpD;AAED;;GAEG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,CAmBpF;AAED,wBAAsB,gCAAgC,IAAI,OAAO,CAAC,OAAO,CAAC,CAGzE;AAsHD,wBAAsB,iCAAiC,CAAC,MAAM,CAAC,EAAE;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD,CAAC,CAmCD;AAyJD;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAsCvF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,IAAI,CAcrE"}
@@ -221,9 +221,14 @@ function extractModelQuotas(data, modelIds, accountEmail) {
221
221
  if (!modelConfig)
222
222
  continue;
223
223
  let modelInfo = data.models[modelConfig.key];
224
- // Try alternate key if primary not found
224
+ // Try alternate keys (pipe-separated) if primary not found
225
225
  if (!modelInfo && modelConfig.altKey) {
226
- modelInfo = data.models[modelConfig.altKey];
226
+ const altKeys = modelConfig.altKey.split("|");
227
+ for (const altKey of altKeys) {
228
+ modelInfo = data.models[altKey.trim()];
229
+ if (modelInfo)
230
+ break;
231
+ }
227
232
  }
228
233
  if (modelInfo) {
229
234
  const remainingFraction = modelInfo.quotaInfo?.remainingFraction ?? 0;