@slkiser/opencode-quota 3.1.3 → 3.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.
- package/README.md +13 -11
- package/dist/lib/cache.d.ts +17 -27
- package/dist/lib/cache.d.ts.map +1 -1
- package/dist/lib/cache.js +62 -65
- package/dist/lib/cache.js.map +1 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +24 -8
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/entries.d.ts +5 -1
- package/dist/lib/entries.d.ts.map +1 -1
- package/dist/lib/format.d.ts +2 -1
- package/dist/lib/format.d.ts.map +1 -1
- package/dist/lib/format.js +8 -4
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/init-installer.d.ts +2 -1
- package/dist/lib/init-installer.d.ts.map +1 -1
- package/dist/lib/init-installer.js +10 -6
- package/dist/lib/init-installer.js.map +1 -1
- package/dist/lib/provider-metadata.d.ts +1 -0
- package/dist/lib/provider-metadata.d.ts.map +1 -1
- package/dist/lib/provider-metadata.js +8 -0
- package/dist/lib/provider-metadata.js.map +1 -1
- package/dist/lib/quota-format-style.d.ts +21 -0
- package/dist/lib/quota-format-style.d.ts.map +1 -0
- package/dist/lib/quota-format-style.js +38 -0
- package/dist/lib/quota-format-style.js.map +1 -0
- package/dist/lib/quota-render-data.d.ts +2 -12
- package/dist/lib/quota-render-data.d.ts.map +1 -1
- package/dist/lib/quota-render-data.js +81 -58
- package/dist/lib/quota-render-data.js.map +1 -1
- package/dist/lib/quota-state.d.ts +21 -0
- package/dist/lib/quota-state.d.ts.map +1 -0
- package/dist/lib/quota-state.js +228 -0
- package/dist/lib/quota-state.js.map +1 -0
- package/dist/lib/tui-runtime.d.ts +1 -2
- package/dist/lib/tui-runtime.d.ts.map +1 -1
- package/dist/lib/tui-runtime.js +0 -1
- package/dist/lib/tui-runtime.js.map +1 -1
- package/dist/lib/tui-sidebar-format.d.ts.map +1 -1
- package/dist/lib/tui-sidebar-format.js +2 -10
- package/dist/lib/tui-sidebar-format.js.map +1 -1
- package/dist/lib/types.d.ts +14 -3
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +2 -1
- package/dist/lib/types.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +59 -113
- package/dist/plugin.js.map +1 -1
- package/dist/providers/alibaba-coding-plan.d.ts.map +1 -1
- package/dist/providers/alibaba-coding-plan.js +0 -16
- package/dist/providers/alibaba-coding-plan.js.map +1 -1
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +15 -29
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/copilot.d.ts.map +1 -1
- package/dist/providers/copilot.js +27 -53
- package/dist/providers/copilot.js.map +1 -1
- package/dist/providers/cursor.d.ts.map +1 -1
- package/dist/providers/cursor.js +37 -78
- package/dist/providers/cursor.js.map +1 -1
- package/dist/providers/kimi-code.d.ts.map +1 -1
- package/dist/providers/kimi-code.js +3 -15
- package/dist/providers/kimi-code.js.map +1 -1
- package/dist/providers/minimax-coding-plan.d.ts.map +1 -1
- package/dist/providers/minimax-coding-plan.js +1 -15
- package/dist/providers/minimax-coding-plan.js.map +1 -1
- package/dist/providers/nanogpt.d.ts.map +1 -1
- package/dist/providers/nanogpt.js +23 -42
- package/dist/providers/nanogpt.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +6 -23
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/qwen-code.d.ts.map +1 -1
- package/dist/providers/qwen-code.js +7 -23
- package/dist/providers/qwen-code.js.map +1 -1
- package/dist/providers/result-helpers.d.ts +2 -2
- package/dist/providers/result-helpers.d.ts.map +1 -1
- package/dist/providers/result-helpers.js +7 -2
- package/dist/providers/result-helpers.js.map +1 -1
- package/dist/providers/synthetic.d.ts.map +1 -1
- package/dist/providers/synthetic.js +5 -14
- package/dist/providers/synthetic.js.map +1 -1
- package/dist/providers/zai.d.ts.map +1 -1
- package/dist/providers/zai.js +6 -28
- package/dist/providers/zai.js.map +1 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.tsx +1 -15
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -67,7 +67,7 @@ The installer (append-only, preserves existing values) asks for:
|
|
|
67
67
|
- **Scope**: `Project` or `Global`
|
|
68
68
|
- **Quota UI**: `Toast`, `Sidebar`, `Toast + Sidebar`, or `None (manual /quota and /tokens_* only)`
|
|
69
69
|
- **Provider mode**: `Auto-detect` or `Manual select`
|
|
70
|
-
- **
|
|
70
|
+
- **Quota display style**: `Single window` (show the most constrained quota window for each provider) or `All windows`
|
|
71
71
|
- **Percent display (toast/sidebar only)**: `remaining` or `used`
|
|
72
72
|
- **Show session input/output tokens**: `Yes` or `No`
|
|
73
73
|
|
|
@@ -141,13 +141,13 @@ Keep the `tui.json` or `tui.jsonc` entry above and disable toasts in `opencode.j
|
|
|
141
141
|
</details>
|
|
142
142
|
|
|
143
143
|
<details>
|
|
144
|
-
<summary><strong>Example:
|
|
144
|
+
<summary><strong>Example: Show all quota windows instead of the default single-window layout</strong></summary>
|
|
145
145
|
|
|
146
146
|
```jsonc
|
|
147
147
|
{
|
|
148
148
|
"experimental": {
|
|
149
149
|
"quotaToast": {
|
|
150
|
-
"formatStyle": "
|
|
150
|
+
"formatStyle": "allWindows",
|
|
151
151
|
},
|
|
152
152
|
},
|
|
153
153
|
}
|
|
@@ -174,10 +174,10 @@ Keep the `tui.json` or `tui.jsonc` entry above and disable toasts in `opencode.j
|
|
|
174
174
|
|
|
175
175
|
| Provider | Auto setup | Authentication | Quota |
|
|
176
176
|
| ----------------------- | ---------------------------------------------------- | ------------------------------- | ------------------------ |
|
|
177
|
-
| **Anthropic (Claude)** | Needs [quick setup](#anthropic-quick-setup) | Local CLI auth | Local CLI
|
|
177
|
+
| **Anthropic (Claude)** | Needs [quick setup](#anthropic-quick-setup) | Local CLI auth | Local CLI, OAuth |
|
|
178
178
|
| **GitHub Copilot** | Usually | OpenCode auth or PAT | Remote API |
|
|
179
179
|
| **OpenAI** | Yes | OpenCode auth | Remote API |
|
|
180
|
-
| **Cursor** | Needs [quick setup](#cursor-quick-setup) | Companion auth | Local
|
|
180
|
+
| **Cursor** | Needs [quick setup](#cursor-quick-setup) | Companion auth | Local estimation |
|
|
181
181
|
| **Qwen Code** | Needs [quick setup](#qwen-code-quick-setup) | Companion auth | Local estimation |
|
|
182
182
|
| **Alibaba Coding Plan** | Yes | OpenCode auth/global config/env | Local estimation |
|
|
183
183
|
| **Synthetic** | Yes | OpenCode auth/global config/env | Remote API |
|
|
@@ -318,8 +318,8 @@ Environment variables take precedence over the config file. Run `/quota_status`
|
|
|
318
318
|
|
|
319
319
|
| Command | What it shows |
|
|
320
320
|
| --------------------- | ---------------------------------------------------------------------------------------------------------------- |
|
|
321
|
-
| `/quota` | Manual
|
|
322
|
-
| `/quota_status` | Concise diagnostics for config, TUI setup, provider availability, account detection, pricing snapshot health, and fresh compact live probe rows in matching provider sections |
|
|
321
|
+
| `/quota` | Manual detailed all-window quota report with a local call timestamp |
|
|
322
|
+
| `/quota_status` | Concise diagnostics for config, TUI setup, provider availability, account detection, pricing snapshot health, and fresh compact single-window live probe rows in matching provider sections |
|
|
323
323
|
| `/pricing_refresh` | Pull the local runtime pricing snapshot from `models.dev` on demand |
|
|
324
324
|
| `/tokens_today` | Tokens used today (calendar day) |
|
|
325
325
|
| `/tokens_daily` | Tokens used in the last 24 hours |
|
|
@@ -542,7 +542,7 @@ For security, provider secrets are read from `SYNTHETIC_API_KEY`, your user/glob
|
|
|
542
542
|
- It uses only the current top-level Synthetic payload sections: `rollingFiveHourLimit` (`max`, `remaining`, `nextTickAt`) and `weeklyTokenLimit` (`maxCredits`, `remainingCredits`, `percentRemaining`, `nextRegenAt`).
|
|
543
543
|
- `weeklyTokenLimit.maxCredits` and `weeklyTokenLimit.remainingCredits` are parsed from the real Synthetic dollar-string format (for example `$24.00` and `$2.02`). Legacy `subscription.limit`, `subscription.requests`, and `subscription.renewsAt` are ignored.
|
|
544
544
|
- Missing or malformed top-level windows are treated as API-shape errors. Invalid reset timestamps are ignored. Weekly `percentRemaining` uses `weeklyTokenLimit.percentRemaining` when valid and otherwise falls back to deterministic derivation from the parsed credit amounts.
|
|
545
|
-
- `/quota
|
|
545
|
+
- `/quota` always shows both Synthetic windows (`5h:` and `Weekly:` rows under `Synthetic`). Toast/sidebar in `singleWindow` mode collapse to the most constrained Synthetic row; `allWindows` mode shows both rows.
|
|
546
546
|
- Compact summaries still round displayed `used` values, and the weekly row keeps dollar semantics (for example `$22/$24`) instead of showing long floats.
|
|
547
547
|
- `/quota_status` keeps the existing Synthetic API-key diagnostics and adds a compact sanitized live probe summary from those same Synthetic rows when Synthetic is enabled and detected/available.
|
|
548
548
|
- Allowed env templates are limited to `{env:SYNTHETIC_API_KEY}`.
|
|
@@ -610,7 +610,7 @@ See [Google Antigravity quick setup](#google-antigravity-quick-setup). This comp
|
|
|
610
610
|
<details>
|
|
611
611
|
<summary><strong>NanoGPT</strong></summary>
|
|
612
612
|
|
|
613
|
-
NanoGPT uses live NanoGPT subscription usage and balance endpoints, so `/quota`,
|
|
613
|
+
NanoGPT uses live NanoGPT subscription usage and balance endpoints, so `/quota`, both quota display styles (`singleWindow` and `allWindows`), and `/quota_status` can show daily quota, monthly quota, and account balance in real time.
|
|
614
614
|
|
|
615
615
|
- Canonical provider id is `nanogpt`. Alias `nano-gpt` also normalizes in `enabledProviders`.
|
|
616
616
|
- Optional API key: `provider.nanogpt.options.apiKey` or `provider["nano-gpt"].options.apiKey`.
|
|
@@ -674,15 +674,17 @@ Project/workspace config may override display-oriented settings for that project
|
|
|
674
674
|
| `enabled` | `true` | Master switch for quota collection and handled slash commands. When `false`, `/quota`, `/quota_status`, `/pricing_refresh`, and `/tokens_*` are handled as no-ops. |
|
|
675
675
|
| `enabledProviders` | `"auto"` | Auto-detect providers, or set an explicit provider list. |
|
|
676
676
|
| `minIntervalMs` | `300000` | Minimum fetch interval between provider updates. |
|
|
677
|
-
| `formatStyle` | `
|
|
677
|
+
| `formatStyle` | `singleWindow` | Shared quota-row style for popup toasts and the TUI sidebar: `singleWindow` (single window) or `allWindows` (all windows). Legacy `classic`/`grouped` aliases still work, and legacy `toastStyle` is still accepted on read for backward compatibility. |
|
|
678
678
|
| `percentDisplayMode` | `remaining` | Shared percent meaning for popup toasts and the TUI sidebar: `remaining` renders labels like `81% left`, while `used` renders labels like `19% used`; the bar fill always matches the shown meaning. |
|
|
679
679
|
| `onlyCurrentModel` | `false` | Filter quota rows to the current model/provider when that session selection can be resolved. |
|
|
680
|
-
| `showSessionTokens` | `true` | Show the `Session input/output tokens` section in quota displays when session token data is available.
|
|
680
|
+
| `showSessionTokens` | `true` | Show the `Session input/output tokens` section in quota displays when session token data is available. `allWindows` shows per-model rows on toast + sidebar, `singleWindow` shows a one-line total summary on both, and `/quota` keeps per-model rows. |
|
|
681
681
|
| `pricingSnapshot.source` | `"auto"` | Token pricing snapshot selection for `/tokens_*`: `auto`, `bundled`, or `runtime`. |
|
|
682
682
|
| `pricingSnapshot.autoRefresh` | `7` | Refresh stale local pricing data after this many days. |
|
|
683
683
|
|
|
684
684
|
`percentDisplayMode` affects popup toasts and the TUI sidebar only. `/quota` keeps its existing remaining-oriented percentage output. Value-only rows such as spend or used/limit summaries are unchanged.
|
|
685
685
|
|
|
686
|
+
Compatibility note: newer installs write canonical `formatStyle` values (`singleWindow` or `allWindows`). Legacy aliases (`classic`, `grouped`) and legacy `toastStyle` still normalize on read. Older plugin versions may not recognize the camelCase values and can fall back to their own default style in mixed-version rollback scenarios.
|
|
687
|
+
|
|
686
688
|
### Toast settings
|
|
687
689
|
|
|
688
690
|
| Option | Default | Meaning |
|
package/dist/lib/cache.d.ts
CHANGED
|
@@ -1,49 +1,39 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Keyed cache and throttling system for rendered quota toasts.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
4
|
+
* This is presentation-only throttling:
|
|
5
|
+
* - Each cache key stores the last rendered toast string for that surface/session context
|
|
6
|
+
* - Only fetch if minIntervalMs has passed since the last fetch for that key
|
|
7
|
+
* - Deduplicate concurrent fetches per key
|
|
8
8
|
*/
|
|
9
9
|
/**
|
|
10
|
-
* Get the cached toast message if still valid
|
|
11
|
-
*
|
|
12
|
-
* @param minIntervalMs - Minimum interval between fetches
|
|
13
|
-
* @returns Cached message or null if stale/missing
|
|
10
|
+
* Get the cached toast message for a key if still valid.
|
|
14
11
|
*/
|
|
15
|
-
export declare function getCachedToast(minIntervalMs: number): string | null;
|
|
12
|
+
export declare function getCachedToast(cacheKey: string, minIntervalMs: number): string | null;
|
|
16
13
|
/**
|
|
17
|
-
* Check if a new fetch should be initiated
|
|
18
|
-
*
|
|
19
|
-
* @param minIntervalMs - Minimum interval between fetches
|
|
20
|
-
* @returns true if a fetch should be started
|
|
14
|
+
* Check if a new fetch should be initiated for a key.
|
|
21
15
|
*/
|
|
22
|
-
export declare function shouldFetch(minIntervalMs: number): boolean;
|
|
16
|
+
export declare function shouldFetch(cacheKey: string, minIntervalMs: number): boolean;
|
|
23
17
|
/**
|
|
24
|
-
* Get or start a fetch operation with deduplication
|
|
25
|
-
*
|
|
26
|
-
* @param fetchFn - Function that performs the actual fetch
|
|
27
|
-
* @param minIntervalMs - Minimum interval between fetches
|
|
28
|
-
* @returns Promise resolving to toast message or null
|
|
18
|
+
* Get or start a fetch operation with keyed deduplication.
|
|
29
19
|
*/
|
|
30
|
-
export declare function getOrFetch(fetchFn: () => Promise<string | null>, minIntervalMs: number): Promise<string | null>;
|
|
20
|
+
export declare function getOrFetch(cacheKey: string, fetchFn: () => Promise<string | null>, minIntervalMs: number): Promise<string | null>;
|
|
31
21
|
/**
|
|
32
|
-
* Get or start a fetch operation with deduplication and cache control.
|
|
22
|
+
* Get or start a fetch operation with keyed deduplication and cache control.
|
|
33
23
|
*
|
|
34
24
|
* This is useful when some results should be displayed but not cached
|
|
35
25
|
* (e.g. transient "all providers failed" cases).
|
|
36
26
|
*/
|
|
37
|
-
export declare function getOrFetchWithCacheControl(fetchFn: () => Promise<{
|
|
27
|
+
export declare function getOrFetchWithCacheControl(cacheKey: string, fetchFn: () => Promise<{
|
|
38
28
|
message: string | null;
|
|
39
29
|
cache?: boolean;
|
|
40
30
|
}>, minIntervalMs: number): Promise<string | null>;
|
|
41
31
|
/**
|
|
42
|
-
* Clear the cache
|
|
32
|
+
* Clear one keyed entry, or the whole keyed cache if no key is provided.
|
|
43
33
|
*/
|
|
44
|
-
export declare function clearCache(): void;
|
|
34
|
+
export declare function clearCache(cacheKey?: string): void;
|
|
45
35
|
/**
|
|
46
|
-
* Force update
|
|
36
|
+
* Force update a keyed cache entry with a new message.
|
|
47
37
|
*/
|
|
48
|
-
export declare function updateCache(message: string): void;
|
|
38
|
+
export declare function updateCache(cacheKey: string, message: string): void;
|
|
49
39
|
//# sourceMappingURL=cache.d.ts.map
|
package/dist/lib/cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA2BH;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAcrF;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAI5E;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EACrC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMxB;AAED;;;;;GAKG;AACH,wBAAsB,0BAA0B,CAC9C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,EACnE,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgDxB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAOlD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAOnE"}
|
package/dist/lib/cache.js
CHANGED
|
@@ -1,127 +1,124 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Keyed cache and throttling system for rendered quota toasts.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* -
|
|
6
|
-
* -
|
|
7
|
-
* -
|
|
4
|
+
* This is presentation-only throttling:
|
|
5
|
+
* - Each cache key stores the last rendered toast string for that surface/session context
|
|
6
|
+
* - Only fetch if minIntervalMs has passed since the last fetch for that key
|
|
7
|
+
* - Deduplicate concurrent fetches per key
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
9
|
+
const cacheEntries = new Map();
|
|
10
|
+
function getCacheEntry(cacheKey) {
|
|
11
|
+
const existing = cacheEntries.get(cacheKey);
|
|
12
|
+
if (existing) {
|
|
13
|
+
return existing;
|
|
14
|
+
}
|
|
15
|
+
const created = {
|
|
16
|
+
cachedToast: null,
|
|
17
|
+
inFlightPromise: null,
|
|
18
|
+
lastFetchTime: 0,
|
|
19
|
+
};
|
|
20
|
+
cacheEntries.set(cacheKey, created);
|
|
21
|
+
return created;
|
|
22
|
+
}
|
|
15
23
|
/**
|
|
16
|
-
* Get the cached toast message if still valid
|
|
17
|
-
*
|
|
18
|
-
* @param minIntervalMs - Minimum interval between fetches
|
|
19
|
-
* @returns Cached message or null if stale/missing
|
|
24
|
+
* Get the cached toast message for a key if still valid.
|
|
20
25
|
*/
|
|
21
|
-
export function getCachedToast(minIntervalMs) {
|
|
22
|
-
|
|
26
|
+
export function getCachedToast(cacheKey, minIntervalMs) {
|
|
27
|
+
const cacheEntry = cacheEntries.get(cacheKey);
|
|
28
|
+
if (!cacheEntry?.cachedToast) {
|
|
23
29
|
return null;
|
|
24
30
|
}
|
|
25
31
|
const now = Date.now();
|
|
26
|
-
const age = now - cachedToast.timestamp;
|
|
27
|
-
// Return cached value if within throttle window
|
|
32
|
+
const age = now - cacheEntry.cachedToast.timestamp;
|
|
28
33
|
if (age < minIntervalMs) {
|
|
29
|
-
return cachedToast.message;
|
|
34
|
+
return cacheEntry.cachedToast.message;
|
|
30
35
|
}
|
|
31
36
|
return null;
|
|
32
37
|
}
|
|
33
38
|
/**
|
|
34
|
-
* Check if a new fetch should be initiated
|
|
35
|
-
*
|
|
36
|
-
* @param minIntervalMs - Minimum interval between fetches
|
|
37
|
-
* @returns true if a fetch should be started
|
|
39
|
+
* Check if a new fetch should be initiated for a key.
|
|
38
40
|
*/
|
|
39
|
-
export function shouldFetch(minIntervalMs) {
|
|
41
|
+
export function shouldFetch(cacheKey, minIntervalMs) {
|
|
42
|
+
const cacheEntry = getCacheEntry(cacheKey);
|
|
40
43
|
const now = Date.now();
|
|
41
|
-
return now - lastFetchTime >= minIntervalMs;
|
|
44
|
+
return now - cacheEntry.lastFetchTime >= minIntervalMs;
|
|
42
45
|
}
|
|
43
46
|
/**
|
|
44
|
-
* Get or start a fetch operation with deduplication
|
|
45
|
-
*
|
|
46
|
-
* @param fetchFn - Function that performs the actual fetch
|
|
47
|
-
* @param minIntervalMs - Minimum interval between fetches
|
|
48
|
-
* @returns Promise resolving to toast message or null
|
|
47
|
+
* Get or start a fetch operation with keyed deduplication.
|
|
49
48
|
*/
|
|
50
|
-
export async function getOrFetch(fetchFn, minIntervalMs) {
|
|
49
|
+
export async function getOrFetch(cacheKey, fetchFn, minIntervalMs) {
|
|
51
50
|
const wrapped = async () => {
|
|
52
51
|
const message = await fetchFn();
|
|
53
52
|
return { message, cache: true };
|
|
54
53
|
};
|
|
55
|
-
return getOrFetchWithCacheControl(wrapped, minIntervalMs);
|
|
54
|
+
return getOrFetchWithCacheControl(cacheKey, wrapped, minIntervalMs);
|
|
56
55
|
}
|
|
57
56
|
/**
|
|
58
|
-
* Get or start a fetch operation with deduplication and cache control.
|
|
57
|
+
* Get or start a fetch operation with keyed deduplication and cache control.
|
|
59
58
|
*
|
|
60
59
|
* This is useful when some results should be displayed but not cached
|
|
61
60
|
* (e.g. transient "all providers failed" cases).
|
|
62
61
|
*/
|
|
63
|
-
export async function getOrFetchWithCacheControl(fetchFn, minIntervalMs) {
|
|
64
|
-
|
|
65
|
-
const cached = getCachedToast(minIntervalMs);
|
|
62
|
+
export async function getOrFetchWithCacheControl(cacheKey, fetchFn, minIntervalMs) {
|
|
63
|
+
const cacheEntry = getCacheEntry(cacheKey);
|
|
64
|
+
const cached = getCachedToast(cacheKey, minIntervalMs);
|
|
66
65
|
if (cached !== null) {
|
|
67
66
|
return cached;
|
|
68
67
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return inFlightPromise;
|
|
68
|
+
if (cacheEntry.inFlightPromise) {
|
|
69
|
+
return cacheEntry.inFlightPromise;
|
|
72
70
|
}
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
// Within throttle window but cache is empty/stale
|
|
76
|
-
// Return cached message anyway if available
|
|
77
|
-
return cachedToast?.message ?? null;
|
|
71
|
+
if (!shouldFetch(cacheKey, minIntervalMs)) {
|
|
72
|
+
return cacheEntry.cachedToast?.message ?? null;
|
|
78
73
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
inFlightPromise = (async () => {
|
|
74
|
+
cacheEntry.lastFetchTime = Date.now();
|
|
75
|
+
cacheEntry.inFlightPromise = (async () => {
|
|
82
76
|
try {
|
|
83
77
|
const out = await fetchFn();
|
|
84
78
|
const result = out.message;
|
|
85
79
|
const cache = out.cache ?? true;
|
|
86
|
-
// If there is no message, don't throttle future fetches.
|
|
87
|
-
// This is important when users enable providers or connect accounts and
|
|
88
|
-
// want the toast to appear on the next trigger.
|
|
89
80
|
if (result === null) {
|
|
90
|
-
lastFetchTime = 0;
|
|
81
|
+
cacheEntry.lastFetchTime = 0;
|
|
91
82
|
return null;
|
|
92
83
|
}
|
|
93
84
|
if (!cache) {
|
|
94
|
-
|
|
95
|
-
lastFetchTime = 0;
|
|
85
|
+
cacheEntry.lastFetchTime = 0;
|
|
96
86
|
return result;
|
|
97
87
|
}
|
|
98
|
-
cachedToast = {
|
|
88
|
+
cacheEntry.cachedToast = {
|
|
99
89
|
message: result,
|
|
100
90
|
timestamp: Date.now(),
|
|
101
91
|
};
|
|
102
92
|
return result;
|
|
103
93
|
}
|
|
104
94
|
finally {
|
|
105
|
-
inFlightPromise = null;
|
|
95
|
+
cacheEntry.inFlightPromise = null;
|
|
96
|
+
if (!cacheEntry.cachedToast && cacheEntry.lastFetchTime === 0) {
|
|
97
|
+
cacheEntries.delete(cacheKey);
|
|
98
|
+
}
|
|
106
99
|
}
|
|
107
100
|
})();
|
|
108
|
-
return inFlightPromise;
|
|
101
|
+
return cacheEntry.inFlightPromise;
|
|
109
102
|
}
|
|
110
103
|
/**
|
|
111
|
-
* Clear the cache
|
|
104
|
+
* Clear one keyed entry, or the whole keyed cache if no key is provided.
|
|
112
105
|
*/
|
|
113
|
-
export function clearCache() {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
106
|
+
export function clearCache(cacheKey) {
|
|
107
|
+
if (cacheKey) {
|
|
108
|
+
cacheEntries.delete(cacheKey);
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
cacheEntries.clear();
|
|
117
112
|
}
|
|
118
113
|
/**
|
|
119
|
-
* Force update
|
|
114
|
+
* Force update a keyed cache entry with a new message.
|
|
120
115
|
*/
|
|
121
|
-
export function updateCache(message) {
|
|
122
|
-
|
|
116
|
+
export function updateCache(cacheKey, message) {
|
|
117
|
+
const cacheEntry = getCacheEntry(cacheKey);
|
|
118
|
+
cacheEntry.cachedToast = {
|
|
123
119
|
message,
|
|
124
120
|
timestamp: Date.now(),
|
|
125
121
|
};
|
|
122
|
+
cacheEntry.lastFetchTime = Date.now();
|
|
126
123
|
}
|
|
127
124
|
//# sourceMappingURL=cache.js.map
|
package/dist/lib/cache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/lib/cache.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAEV,gBAAgB,EAIjB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAEV,gBAAgB,EAIjB,MAAM,YAAY,CAAC;AAYpB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,KAAK,GAAG,OAAO,GAAG,UAAU,CAAC;IACrC,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,oBAAoB,IAAI,cAAc,CAErD;AA6ID;;;;;GAKG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EACF;IACE,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,OAAO,CAAC;YACjB,IAAI,CAAC,EAAE;gBAAE,YAAY,CAAC,EAAE;oBAAE,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;iBAAE,CAAA;aAAE,CAAC;SACtE,CAAC,CAAC;KACJ,CAAC;CACH,GACD,SAAS,EACb,IAAI,CAAC,EAAE,cAAc,EACrB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAwR3B"}
|
package/dist/lib/config.js
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* - SDK config is used only as a fallback when no config files are found.
|
|
9
9
|
*/
|
|
10
10
|
import { DEFAULT_CONFIG } from "./types.js";
|
|
11
|
+
import { isQuotaFormatStyle, resolveQuotaFormatStyle } from "./quota-format-style.js";
|
|
11
12
|
import { parseJsonOrJsonc } from "./jsonc.js";
|
|
12
13
|
import { normalizeQuotaProviderId } from "./provider-metadata.js";
|
|
13
14
|
import { existsSync } from "fs";
|
|
@@ -48,9 +49,6 @@ function isValidPricingSnapshotSource(source) {
|
|
|
48
49
|
function isValidPricingSnapshotAutoRefresh(value) {
|
|
49
50
|
return typeof value === "number" && Number.isInteger(value) && value > 0;
|
|
50
51
|
}
|
|
51
|
-
function isValidFormatStyle(value) {
|
|
52
|
-
return value === "classic" || value === "grouped";
|
|
53
|
-
}
|
|
54
52
|
function isValidPercentDisplayMode(value) {
|
|
55
53
|
return value === "remaining" || value === "used";
|
|
56
54
|
}
|
|
@@ -61,6 +59,19 @@ function normalizeOptionalString(value) {
|
|
|
61
59
|
const trimmed = value.trim();
|
|
62
60
|
return trimmed ? trimmed : undefined;
|
|
63
61
|
}
|
|
62
|
+
function getConfiguredFormatStyle(quotaToastConfig) {
|
|
63
|
+
if (!quotaToastConfig) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
if (isQuotaFormatStyle(quotaToastConfig.formatStyle)) {
|
|
67
|
+
return resolveQuotaFormatStyle(quotaToastConfig.formatStyle);
|
|
68
|
+
}
|
|
69
|
+
const legacyFormatStyle = quotaToastConfig.toastStyle;
|
|
70
|
+
if (isQuotaFormatStyle(legacyFormatStyle)) {
|
|
71
|
+
return resolveQuotaFormatStyle(legacyFormatStyle);
|
|
72
|
+
}
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
64
75
|
/**
|
|
65
76
|
* Remove duplicates from an array while preserving order
|
|
66
77
|
*/
|
|
@@ -125,6 +136,7 @@ export async function loadConfig(client, meta, options) {
|
|
|
125
136
|
function normalize(quotaToastConfig) {
|
|
126
137
|
if (!quotaToastConfig)
|
|
127
138
|
return DEFAULT_CONFIG;
|
|
139
|
+
const formatStyle = getConfiguredFormatStyle(quotaToastConfig) ?? DEFAULT_CONFIG.formatStyle;
|
|
128
140
|
const config = {
|
|
129
141
|
enabled: typeof quotaToastConfig.enabled === "boolean"
|
|
130
142
|
? quotaToastConfig.enabled
|
|
@@ -132,11 +144,7 @@ export async function loadConfig(client, meta, options) {
|
|
|
132
144
|
enableToast: typeof quotaToastConfig.enableToast === "boolean"
|
|
133
145
|
? quotaToastConfig.enableToast
|
|
134
146
|
: DEFAULT_CONFIG.enableToast,
|
|
135
|
-
formatStyle
|
|
136
|
-
? quotaToastConfig.formatStyle
|
|
137
|
-
: isValidFormatStyle(quotaToastConfig.toastStyle)
|
|
138
|
-
? quotaToastConfig.toastStyle
|
|
139
|
-
: DEFAULT_CONFIG.formatStyle,
|
|
147
|
+
formatStyle,
|
|
140
148
|
percentDisplayMode: isValidPercentDisplayMode(quotaToastConfig.percentDisplayMode)
|
|
141
149
|
? quotaToastConfig.percentDisplayMode
|
|
142
150
|
: DEFAULT_CONFIG.percentDisplayMode,
|
|
@@ -296,6 +304,14 @@ export async function loadConfig(client, meta, options) {
|
|
|
296
304
|
if (hasMergedPricingSnapshot) {
|
|
297
305
|
quota.pricingSnapshot = mergedPricingSnapshot;
|
|
298
306
|
}
|
|
307
|
+
const localFormatStyle = getConfiguredFormatStyle(localConfig.quota);
|
|
308
|
+
const globalFormatStyle = getConfiguredFormatStyle(globalConfig.quota);
|
|
309
|
+
if (localFormatStyle) {
|
|
310
|
+
quota.formatStyle = localFormatStyle;
|
|
311
|
+
}
|
|
312
|
+
else if (globalFormatStyle) {
|
|
313
|
+
quota.formatStyle = globalFormatStyle;
|
|
314
|
+
}
|
|
299
315
|
return {
|
|
300
316
|
config: normalize(quota),
|
|
301
317
|
usedPaths,
|
package/dist/lib/config.js.map
CHANGED
|
@@ -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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"}
|
package/dist/lib/entries.d.ts
CHANGED
|
@@ -58,11 +58,16 @@ export interface SessionTokensData {
|
|
|
58
58
|
totalInput: number;
|
|
59
59
|
totalOutput: number;
|
|
60
60
|
}
|
|
61
|
+
export interface QuotaProviderPresentation {
|
|
62
|
+
singleWindowDisplayName?: string;
|
|
63
|
+
singleWindowShowRight?: boolean;
|
|
64
|
+
}
|
|
61
65
|
export interface QuotaProviderResult {
|
|
62
66
|
/** True when provider had enough configuration to attempt a query. */
|
|
63
67
|
attempted: boolean;
|
|
64
68
|
entries: QuotaToastEntry[];
|
|
65
69
|
errors: QuotaToastError[];
|
|
70
|
+
presentation?: QuotaProviderPresentation;
|
|
66
71
|
}
|
|
67
72
|
export interface QuotaProviderContext {
|
|
68
73
|
client: {
|
|
@@ -88,7 +93,6 @@ export interface QuotaProviderContext {
|
|
|
88
93
|
cursorPlan: CursorQuotaPlan;
|
|
89
94
|
cursorIncludedApiUsd?: number;
|
|
90
95
|
cursorBillingCycleStartDay?: number;
|
|
91
|
-
formatStyle?: "classic" | "grouped";
|
|
92
96
|
onlyCurrentModel?: boolean;
|
|
93
97
|
currentModel?: string;
|
|
94
98
|
currentProviderID?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../src/lib/entries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;;;GAKG;AAEH,MAAM,WAAW,qBAAqB;IACpC,kFAAkF;IAClF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,eAAe,GACvB,CAAC,qBAAqB,GAAG;IACvB;;;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,CAAC,GACF,CAAC,qBAAqB,GAAG;IACvB,0CAA0C;IAC1C,IAAI,EAAE,OAAO,CAAC;IAEd,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IAEb,2CAA2C;IAC3C,KAAK,EAAE,MAAM,CAAC;IAEd,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC,CAAC;AAEP,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;
|
|
1
|
+
{"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../src/lib/entries.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/format.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { QuotaToastConfig } from "./types.js";
|
|
5
5
|
import type { QuotaToastEntry, QuotaToastError, SessionTokensData } from "./entries.js";
|
|
6
|
+
import type { QuotaFormatStyle } from "./quota-format-style.js";
|
|
6
7
|
export declare function formatQuotaRows(params: {
|
|
7
8
|
version: string;
|
|
8
9
|
layout?: {
|
|
@@ -12,7 +13,7 @@ export declare function formatQuotaRows(params: {
|
|
|
12
13
|
};
|
|
13
14
|
entries?: QuotaToastEntry[];
|
|
14
15
|
errors?: QuotaToastError[];
|
|
15
|
-
style?:
|
|
16
|
+
style?: QuotaFormatStyle;
|
|
16
17
|
percentDisplayMode?: QuotaToastConfig["percentDisplayMode"];
|
|
17
18
|
sessionTokens?: SessionTokensData;
|
|
18
19
|
}): string;
|
package/dist/lib/format.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/lib/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/lib/format.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAkBhE,wBAAgB,eAAe,CAAC,MAAM,EAAE;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,eAAe,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,gBAAgB,CAAC;IACzB,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,iBAAiB,CAAC;CACnC,GAAG,MAAM,CAsIT"}
|
package/dist/lib/format.js
CHANGED
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
import { isValueEntry } from "./entries.js";
|
|
5
5
|
import { bar, DISPLAYED_PERCENT_LABEL_WIDTH, formatDisplayedPercentLabel, formatResetCountdown, padLeft, padRight, resolveDisplayedPercent, } from "./format-utils.js";
|
|
6
6
|
import { formatQuotaRowsGrouped } from "./toast-format-grouped.js";
|
|
7
|
-
import { renderSessionTokensLines } from "./session-tokens-format.js";
|
|
7
|
+
import { renderSessionTokensLines, renderSidebarSessionTokenSummaryLines, } from "./session-tokens-format.js";
|
|
8
|
+
import { getQuotaFormatStyleDefinition } from "./quota-format-style.js";
|
|
8
9
|
export function formatQuotaRows(params) {
|
|
9
|
-
|
|
10
|
+
const styleDefinition = getQuotaFormatStyleDefinition(params.style);
|
|
11
|
+
if (styleDefinition.renderer === "grouped") {
|
|
10
12
|
return formatQuotaRowsGrouped({
|
|
11
13
|
layout: params.layout,
|
|
12
14
|
entries: params.entries,
|
|
@@ -100,8 +102,10 @@ export function formatQuotaRows(params) {
|
|
|
100
102
|
for (const err of params.errors ?? []) {
|
|
101
103
|
lines.push(`${err.label}: ${err.message}`);
|
|
102
104
|
}
|
|
103
|
-
// Add session token
|
|
104
|
-
const tokenLines =
|
|
105
|
+
// Add session token section (if data available and non-empty)
|
|
106
|
+
const tokenLines = styleDefinition.sessionTokens === "detailed"
|
|
107
|
+
? renderSessionTokensLines(params.sessionTokens, { maxWidth })
|
|
108
|
+
: renderSidebarSessionTokenSummaryLines(params.sessionTokens, { maxWidth });
|
|
105
109
|
if (tokenLines.length > 0) {
|
|
106
110
|
if (lines.length > 0)
|
|
107
111
|
lines.push("");
|