@slkiser/opencode-quota 4.8.1 → 4.9.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 +17 -18
- package/dist/bin/opencode-quota.d.ts.map +1 -1
- package/dist/bin/opencode-quota.js +5 -3
- package/dist/bin/opencode-quota.js.map +1 -1
- package/dist/lib/accounting-format.d.ts +54 -0
- package/dist/lib/accounting-format.d.ts.map +1 -0
- package/dist/lib/accounting-format.js +271 -0
- package/dist/lib/accounting-format.js.map +1 -0
- package/dist/lib/anthropic.d.ts +2 -0
- package/dist/lib/anthropic.d.ts.map +1 -1
- package/dist/lib/anthropic.js +79 -19
- package/dist/lib/anthropic.js.map +1 -1
- package/dist/lib/cli-show.d.ts.map +1 -1
- package/dist/lib/cli-show.js +1 -0
- package/dist/lib/cli-show.js.map +1 -1
- package/dist/lib/config.d.ts +10 -1
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +35 -3
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/copilot.d.ts +2 -0
- package/dist/lib/copilot.d.ts.map +1 -1
- package/dist/lib/copilot.js +38 -0
- package/dist/lib/copilot.js.map +1 -1
- package/dist/lib/deepseek.d.ts +12 -12
- package/dist/lib/deepseek.d.ts.map +1 -1
- package/dist/lib/deepseek.js +33 -29
- package/dist/lib/deepseek.js.map +1 -1
- package/dist/lib/display-sanitize.d.ts.map +1 -1
- package/dist/lib/display-sanitize.js +76 -22
- package/dist/lib/display-sanitize.js.map +1 -1
- package/dist/lib/entries.d.ts +107 -23
- package/dist/lib/entries.d.ts.map +1 -1
- package/dist/lib/entries.js +37 -1
- package/dist/lib/entries.js.map +1 -1
- package/dist/lib/format.d.ts +1 -0
- package/dist/lib/format.d.ts.map +1 -1
- package/dist/lib/format.js +84 -19
- package/dist/lib/format.js.map +1 -1
- package/dist/lib/glm-coding-plan.d.ts.map +1 -1
- package/dist/lib/glm-coding-plan.js +4 -2
- package/dist/lib/glm-coding-plan.js.map +1 -1
- package/dist/lib/google-agy.d.ts +2 -0
- package/dist/lib/google-agy.d.ts.map +1 -1
- package/dist/lib/google-agy.js +29 -14
- package/dist/lib/google-agy.js.map +1 -1
- package/dist/lib/google-gemini-cli.d.ts +2 -0
- package/dist/lib/google-gemini-cli.d.ts.map +1 -1
- package/dist/lib/google-gemini-cli.js +29 -3
- package/dist/lib/google-gemini-cli.js.map +1 -1
- package/dist/lib/google-token-cache.d.ts +5 -8
- package/dist/lib/google-token-cache.d.ts.map +1 -1
- package/dist/lib/google-token-cache.js +30 -118
- package/dist/lib/google-token-cache.js.map +1 -1
- package/dist/lib/google.d.ts +2 -0
- package/dist/lib/google.d.ts.map +1 -1
- package/dist/lib/google.js +31 -6
- package/dist/lib/google.js.map +1 -1
- package/dist/lib/grouped-entry-normalization.d.ts.map +1 -1
- package/dist/lib/grouped-entry-normalization.js +53 -20
- package/dist/lib/grouped-entry-normalization.js.map +1 -1
- package/dist/lib/minimax-auth.d.ts +1 -1
- package/dist/lib/minimax-auth.js +1 -1
- package/dist/lib/nanogpt.d.ts +5 -5
- package/dist/lib/nanogpt.d.ts.map +1 -1
- package/dist/lib/nanogpt.js +59 -23
- package/dist/lib/nanogpt.js.map +1 -1
- package/dist/lib/openai.d.ts +4 -0
- package/dist/lib/openai.d.ts.map +1 -1
- package/dist/lib/openai.js +22 -3
- package/dist/lib/openai.js.map +1 -1
- package/dist/lib/opencode-go-auth.js +1 -1
- package/dist/lib/opencode-go-auth.js.map +1 -1
- package/dist/lib/opencode-go.d.ts.map +1 -1
- package/dist/lib/opencode-go.js +6 -1
- package/dist/lib/opencode-go.js.map +1 -1
- package/dist/lib/opencode-zen-config.d.ts +0 -1
- package/dist/lib/opencode-zen-config.d.ts.map +1 -1
- package/dist/lib/opencode-zen-config.js +0 -22
- package/dist/lib/opencode-zen-config.js.map +1 -1
- package/dist/lib/opencode-zen.d.ts +3 -0
- package/dist/lib/opencode-zen.d.ts.map +1 -1
- package/dist/lib/opencode-zen.js +18 -1
- package/dist/lib/opencode-zen.js.map +1 -1
- package/dist/lib/openrouter.d.ts +2 -0
- package/dist/lib/openrouter.d.ts.map +1 -1
- package/dist/lib/openrouter.js +10 -0
- package/dist/lib/openrouter.js.map +1 -1
- package/dist/lib/provider-metadata.d.ts +3 -307
- package/dist/lib/provider-metadata.d.ts.map +1 -1
- package/dist/lib/provider-metadata.js +18 -316
- package/dist/lib/provider-metadata.js.map +1 -1
- package/dist/lib/provider-registration.d.ts +325 -0
- package/dist/lib/provider-registration.d.ts.map +1 -0
- package/dist/lib/provider-registration.js +338 -0
- package/dist/lib/provider-registration.js.map +1 -0
- package/dist/lib/quota-accounting-projection.d.ts +7 -0
- package/dist/lib/quota-accounting-projection.d.ts.map +1 -0
- package/dist/lib/quota-accounting-projection.js +239 -0
- package/dist/lib/quota-accounting-projection.js.map +1 -0
- package/dist/lib/quota-command-format.d.ts +3 -2
- package/dist/lib/quota-command-format.d.ts.map +1 -1
- package/dist/lib/quota-command-format.js +35 -9
- package/dist/lib/quota-command-format.js.map +1 -1
- package/dist/lib/quota-dialog-commands.d.ts.map +1 -1
- package/dist/lib/quota-dialog-commands.js +1 -0
- package/dist/lib/quota-dialog-commands.js.map +1 -1
- package/dist/lib/quota-export.d.ts +2 -1
- package/dist/lib/quota-export.d.ts.map +1 -1
- package/dist/lib/quota-export.js +36 -10
- package/dist/lib/quota-export.js.map +1 -1
- package/dist/lib/quota-render-data.d.ts +0 -1
- package/dist/lib/quota-render-data.d.ts.map +1 -1
- package/dist/lib/quota-render-data.js +43 -155
- package/dist/lib/quota-render-data.js.map +1 -1
- package/dist/lib/quota-reset-notifications.d.ts.map +1 -1
- package/dist/lib/quota-reset-notifications.js +3 -0
- package/dist/lib/quota-reset-notifications.js.map +1 -1
- package/dist/lib/quota-state-codec.d.ts +16 -0
- package/dist/lib/quota-state-codec.d.ts.map +1 -0
- package/dist/lib/quota-state-codec.js +409 -0
- package/dist/lib/quota-state-codec.js.map +1 -0
- package/dist/lib/quota-state.d.ts +2 -11
- package/dist/lib/quota-state.d.ts.map +1 -1
- package/dist/lib/quota-state.js +165 -304
- package/dist/lib/quota-state.js.map +1 -1
- package/dist/lib/quota-status.d.ts.map +1 -1
- package/dist/lib/quota-status.js +14 -7
- package/dist/lib/quota-status.js.map +1 -1
- package/dist/lib/quota-telemetry.d.ts.map +1 -1
- package/dist/lib/quota-telemetry.js +7 -3
- package/dist/lib/quota-telemetry.js.map +1 -1
- package/dist/lib/quota-toast-runtime.d.ts +60 -0
- package/dist/lib/quota-toast-runtime.d.ts.map +1 -0
- package/dist/lib/quota-toast-runtime.js +765 -0
- package/dist/lib/quota-toast-runtime.js.map +1 -0
- package/dist/lib/resolved-auth-identity.d.ts +36 -0
- package/dist/lib/resolved-auth-identity.d.ts.map +1 -0
- package/dist/lib/resolved-auth-identity.js +193 -0
- package/dist/lib/resolved-auth-identity.js.map +1 -0
- package/dist/lib/scoped-update-migration.d.ts +101 -0
- package/dist/lib/scoped-update-migration.d.ts.map +1 -0
- package/dist/lib/scoped-update-migration.js +348 -0
- package/dist/lib/scoped-update-migration.js.map +1 -0
- package/dist/lib/scoped-update.d.ts +8 -0
- package/dist/lib/scoped-update.d.ts.map +1 -1
- package/dist/lib/scoped-update.js +263 -50
- package/dist/lib/scoped-update.js.map +1 -1
- package/dist/lib/toast-format-grouped.d.ts +1 -0
- package/dist/lib/toast-format-grouped.d.ts.map +1 -1
- package/dist/lib/toast-format-grouped.js +111 -24
- package/dist/lib/toast-format-grouped.js.map +1 -1
- package/dist/lib/tui-compact-format.d.ts +1 -0
- package/dist/lib/tui-compact-format.d.ts.map +1 -1
- package/dist/lib/tui-compact-format.js +136 -24
- package/dist/lib/tui-compact-format.js.map +1 -1
- package/dist/lib/tui-panel-state.d.ts +2 -0
- package/dist/lib/tui-panel-state.d.ts.map +1 -1
- package/dist/lib/tui-panel-state.js.map +1 -1
- package/dist/lib/tui-runtime.d.ts.map +1 -1
- package/dist/lib/tui-runtime.js +84 -10
- package/dist/lib/tui-runtime.js.map +1 -1
- package/dist/lib/tui-sidebar-format.d.ts +1 -1
- package/dist/lib/tui-sidebar-format.d.ts.map +1 -1
- package/dist/lib/tui-sidebar-format.js +1 -0
- package/dist/lib/tui-sidebar-format.js.map +1 -1
- package/dist/lib/types.d.ts +7 -1
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/types.js +1 -0
- package/dist/lib/types.js.map +1 -1
- package/dist/lib/xai.d.ts +2 -0
- package/dist/lib/xai.d.ts.map +1 -1
- package/dist/lib/xai.js +10 -0
- package/dist/lib/xai.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +27 -720
- package/dist/plugin.js.map +1 -1
- package/dist/providers/accounting-decimal.d.ts +2 -0
- package/dist/providers/accounting-decimal.d.ts.map +1 -0
- package/dist/providers/accounting-decimal.js +23 -0
- package/dist/providers/accounting-decimal.js.map +1 -0
- package/dist/providers/cache-policies.d.ts +64 -0
- package/dist/providers/cache-policies.d.ts.map +1 -0
- package/dist/providers/cache-policies.js +197 -0
- package/dist/providers/cache-policies.js.map +1 -0
- package/dist/providers/cursor.d.ts.map +1 -1
- package/dist/providers/cursor.js +73 -58
- package/dist/providers/cursor.js.map +1 -1
- package/dist/providers/deepseek.d.ts +2 -2
- package/dist/providers/deepseek.d.ts.map +1 -1
- package/dist/providers/deepseek.js +64 -33
- package/dist/providers/deepseek.js.map +1 -1
- package/dist/providers/google-agy.js +2 -2
- package/dist/providers/google-agy.js.map +1 -1
- package/dist/providers/google-gemini-cli.d.ts.map +1 -1
- package/dist/providers/google-gemini-cli.js +1 -1
- package/dist/providers/google-gemini-cli.js.map +1 -1
- package/dist/providers/kilo.d.ts.map +1 -1
- package/dist/providers/kilo.js +56 -29
- package/dist/providers/kilo.js.map +1 -1
- package/dist/providers/mimo.d.ts.map +1 -1
- package/dist/providers/mimo.js +37 -15
- package/dist/providers/mimo.js.map +1 -1
- package/dist/providers/minimax-coding-plan.d.ts +8 -7
- package/dist/providers/minimax-coding-plan.d.ts.map +1 -1
- package/dist/providers/minimax-coding-plan.js +97 -83
- package/dist/providers/minimax-coding-plan.js.map +1 -1
- package/dist/providers/nanogpt.d.ts.map +1 -1
- package/dist/providers/nanogpt.js +72 -51
- package/dist/providers/nanogpt.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +0 -3
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/opencode-go.d.ts.map +1 -1
- package/dist/providers/opencode-go.js +3 -4
- package/dist/providers/opencode-go.js.map +1 -1
- package/dist/providers/opencode-zen.d.ts.map +1 -1
- package/dist/providers/opencode-zen.js +78 -17
- package/dist/providers/opencode-zen.js.map +1 -1
- package/dist/providers/quota-providers.d.ts.map +1 -1
- package/dist/providers/quota-providers.js +31 -23
- package/dist/providers/quota-providers.js.map +1 -1
- package/dist/providers/registry.d.ts +3 -2
- package/dist/providers/registry.d.ts.map +1 -1
- package/dist/providers/registry.js +41 -31
- package/dist/providers/registry.js.map +1 -1
- package/dist/providers/result-helpers.d.ts +10 -5
- package/dist/providers/result-helpers.d.ts.map +1 -1
- package/dist/providers/result-helpers.js +3 -3
- package/dist/providers/result-helpers.js.map +1 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +11 -3
- package/dist/tui.tsx +16 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -40,16 +40,21 @@ After installation:
|
|
|
40
40
|
## Updating
|
|
41
41
|
|
|
42
42
|
1. Close OpenCode.
|
|
43
|
-
2.
|
|
43
|
+
2. Preview the update:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npx @slkiser/opencode-quota@latest update --dry-run
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
3. Inspect the safe setting/cache changes and manual credential findings, then apply:
|
|
44
50
|
|
|
45
51
|
```bash
|
|
46
52
|
npx @slkiser/opencode-quota@latest update
|
|
47
53
|
```
|
|
48
54
|
|
|
49
|
-
3. Review the exact config edits and cache directories, then confirm.
|
|
50
55
|
4. Restart OpenCode.
|
|
51
56
|
|
|
52
|
-
|
|
57
|
+
The updater prints the complete preview before its own config or cache changes. `--yes` authorizes only the previewed safe config edits and manifest-verified cache cleanup; it never moves or deletes secrets. See [Updating safely](docs/readme/updating.md) for detailed behavior and manual credential steps.
|
|
53
58
|
|
|
54
59
|
## Choose your setup
|
|
55
60
|
|
|
@@ -82,15 +87,11 @@ Use `--dry-run` to preview without changing anything. Otherwise, `update` shows
|
|
|
82
87
|
|
|
83
88
|
More ways to use it:
|
|
84
89
|
|
|
85
|
-
- Check quota
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
-
|
|
90
|
-
- Get a popup when quota becomes available again for the windows you choose via [`resetNotifications`](docs/readme/configuration.md#notify-when-quota-becomes-available-again)
|
|
91
|
-
- Add a quota bar below the TUI prompt via [`tuiPromptBar.enabled`](docs/readme/configuration.md#tui-settings)
|
|
92
|
-
- Choose current-session or descendant-tree token totals across `/quota`, toasts, the sidebar, and the compact input line
|
|
93
|
-
- Diagnose authentication, quota sources, pricing, and maintainer notices
|
|
90
|
+
- Check quota anywhere: use `opencode-quota show` in a terminal or the same slash commands in the TUI, Web, and Desktop.
|
|
91
|
+
- Automate quota checks with JSON output for scripts, status bars, and CI. Optional OpenTelemetry metrics support monitoring tools.
|
|
92
|
+
- Customize the display with [`tuiPromptBar.enabled`](docs/readme/configuration.md#tui-settings), OpenCode Go's preferred collapsed-sidebar window, reset precision, and [`accountingDetail`](docs/readme/configuration.md#show-accounting-detail).
|
|
93
|
+
- Choose current-session or descendant-tree token totals. Get reset popups for selected windows with [`resetNotifications`](docs/readme/configuration.md#notify-when-quota-becomes-available-again).
|
|
94
|
+
- Troubleshoot authentication, quota sources, pricing, and maintainer notices.
|
|
94
95
|
|
|
95
96
|
See [Configuration](docs/readme/configuration.md) for UI options and [Manual install](docs/readme/manual-install.md) for setup details.
|
|
96
97
|
|
|
@@ -187,8 +188,8 @@ Gemini CLI quota support is deprecated for new installs. Existing v4 configurati
|
|
|
187
188
|
| Alibaba Coding Plan | Automatic | Local estimate | Quota |
|
|
188
189
|
| DeepSeek | Automatic | Remote API | Balance and status |
|
|
189
190
|
| Kimi Code | Automatic | Remote API | Quota |
|
|
190
|
-
| MiniMax
|
|
191
|
-
| MiniMax
|
|
191
|
+
| MiniMax Token Plan | Automatic | Remote API | Quota |
|
|
192
|
+
| MiniMax Token Plan (CN) | Automatic | Remote API | Quota |
|
|
192
193
|
| Qwen Code | [Needs setup](docs/readme/providers.md#qwen-code) | Local estimate | Quota |
|
|
193
194
|
| Xiaomi MiMo | [Needs setup](docs/readme/providers.md#xiaomi-mimo) | Dashboard API | Quota and balance |
|
|
194
195
|
| Z.ai Coding Plan | Automatic | Remote API | Quota |
|
|
@@ -202,16 +203,14 @@ Gemini CLI quota support is deprecated for new installs. Existing v4 configurati
|
|
|
202
203
|
| Provider | Auth/setup | Data from | Reports |
|
|
203
204
|
| ------------------------ | ---------- | ---------- | ------- |
|
|
204
205
|
| Kimi Code | Automatic | Remote API | Quota |
|
|
205
|
-
| MiniMax
|
|
206
|
-
| MiniMax
|
|
206
|
+
| MiniMax Token Plan | Automatic | Remote API | Quota |
|
|
207
|
+
| MiniMax Token Plan (CN) | Automatic | Remote API | Quota |
|
|
207
208
|
| Zhipu Coding Plan | Automatic | Remote API | Quota |
|
|
208
209
|
|
|
209
210
|
These vendors offer team or business plans, but the current integrations report only the configured member API key rather than organization-wide usage.
|
|
210
211
|
|
|
211
212
|
</details>
|
|
212
213
|
|
|
213
|
-
The quota view uses short labels such as `Day quota`, `5h quota`, `Day budget`, and `Balance`. Bar width varies by surface. JSON keeps the precise accounting type for scripts.
|
|
214
|
-
|
|
215
214
|
### Custom providers
|
|
216
215
|
|
|
217
216
|
Add a provider that uses a remote quota API or tracks a local usage estimate:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-quota.d.ts","sourceRoot":"","sources":["../../src/bin/opencode-quota.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"opencode-quota.d.ts","sourceRoot":"","sources":["../../src/bin/opencode-quota.ts"],"names":[],"mappings":";AAiDA,wBAAgB,gBAAgB,CAC9B,KAAK,GAAE,MAAM,GAAG,SAA2B,EAC3C,UAAU,GAAE,MAAuC,EACnD,WAAW,GAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAuB,GACzD,OAAO,CAMT;AAED,wBAAsB,IAAI,CAAC,IAAI,WAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CA6CxE"}
|
|
@@ -23,9 +23,11 @@ const USAGE = [
|
|
|
23
23
|
" status Print Quota Status diagnostics (same data as /quota_status)",
|
|
24
24
|
" --json Machine-readable JSON output",
|
|
25
25
|
" --provider <id> Filter to one provider",
|
|
26
|
-
" update
|
|
27
|
-
"
|
|
28
|
-
"
|
|
26
|
+
" update Preview safe setting/package-cache changes and report legacy credential findings",
|
|
27
|
+
" Credential-specific audit sources and values are not read",
|
|
28
|
+
" Values encountered in normal config parsing are never printed, copied, or modified",
|
|
29
|
+
" --dry-run Print the full responsible preview without changing anything",
|
|
30
|
+
" --yes Apply only safe setting/cache work after printing the preview",
|
|
29
31
|
" provider add Add or update one global quotaProviders definition",
|
|
30
32
|
" --dry-run Preview the exact global OpenCode config without writing",
|
|
31
33
|
].join("\n");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-quota.js","sourceRoot":"","sources":["../../src/bin/opencode-quota.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,MAAM,KAAK,GAAG;IACZ,QAAQ;IACR,uEAAuE;IACvE,4FAA4F;IAC5F,0EAA0E;IAC1E,0DAA0D;IAC1D,wDAAwD;IACxD,sCAAsC;IACtC,EAAE;IACF,WAAW;IACX,+CAA+C;IAC/C,gFAAgF;IAChF,oEAAoE;IACpE,sCAAsC;IACtC,gFAAgF;IAChF,oGAAoG;IACpG,uDAAuD;IACvD,uEAAuE;IACvE,6DAA6D;IAC7D,uDAAuD;IACvD,
|
|
1
|
+
{"version":3,"file":"opencode-quota.js","sourceRoot":"","sources":["../../src/bin/opencode-quota.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { AccountingComponent, AccountingPercentageBasis, AccountingQuantity, AccountingResultType, AccountingSemantic, AccountingUnit, AccountingWindow, QuotaToastEntry } from "./entries.js";
|
|
2
|
+
export declare function isCanonicalAccountingDecimal(value: string): boolean;
|
|
3
|
+
export declare function accountingUnitsEqual(left: AccountingUnit, right: AccountingUnit): boolean;
|
|
4
|
+
export declare function formatAccountingQuantity(quantity: AccountingQuantity): string;
|
|
5
|
+
export declare function formatAccountingBoolean(value: boolean, semantic?: AccountingSemantic): string;
|
|
6
|
+
export type AccountingBasisDisplayMode = "remaining" | "used";
|
|
7
|
+
export declare function formatAccountingBasisSummary(basis: AccountingPercentageBasis, mode: AccountingBasisDisplayMode): string | null;
|
|
8
|
+
export type AccountingBasisFact = {
|
|
9
|
+
role: "used" | "limit" | "remaining";
|
|
10
|
+
text: string;
|
|
11
|
+
};
|
|
12
|
+
export declare function formatAccountingBasisDetails(basis: AccountingPercentageBasis): string[];
|
|
13
|
+
export declare function formatAccountingResultTypeLabel(resultType: AccountingResultType): string;
|
|
14
|
+
export declare function formatAccountingWindowLabel(window: AccountingWindow): string;
|
|
15
|
+
export declare function formatAccountingComponentLabel(component: AccountingComponent): string;
|
|
16
|
+
export declare function formatAccountingSemanticLabel(resultType: AccountingResultType, semantic: AccountingSemantic, entryKind: QuotaToastEntry["kind"]): string;
|
|
17
|
+
export type AccountingSemanticSortKey = readonly [
|
|
18
|
+
resultType: number,
|
|
19
|
+
metricKind: number,
|
|
20
|
+
metric: number
|
|
21
|
+
];
|
|
22
|
+
export declare function getAccountingSemanticSortKey(entry: QuotaToastEntry): AccountingSemanticSortKey;
|
|
23
|
+
export declare function compareAccountingSemanticEntries(left: QuotaToastEntry, right: QuotaToastEntry): number;
|
|
24
|
+
export declare function getAccountingEntryLabel(entry: QuotaToastEntry): string;
|
|
25
|
+
export type AccountingBooleanWording = "semantic" | "generic";
|
|
26
|
+
export type AccountingBasisRequest = {
|
|
27
|
+
kind: "summary";
|
|
28
|
+
mode: AccountingBasisDisplayMode;
|
|
29
|
+
} | {
|
|
30
|
+
kind: "detailed";
|
|
31
|
+
};
|
|
32
|
+
export type AccountingRowInterpretation = {
|
|
33
|
+
label: string;
|
|
34
|
+
display: {
|
|
35
|
+
kind: "percent";
|
|
36
|
+
percentRemaining: number;
|
|
37
|
+
} | {
|
|
38
|
+
kind: "value";
|
|
39
|
+
entryKind: "value" | "quantity" | "boolean";
|
|
40
|
+
text: string;
|
|
41
|
+
};
|
|
42
|
+
basis?: {
|
|
43
|
+
kind: "summary";
|
|
44
|
+
text: string | null;
|
|
45
|
+
} | {
|
|
46
|
+
kind: "detailed";
|
|
47
|
+
facts: readonly AccountingBasisFact[];
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
export declare function interpretAccountingRow(entry: QuotaToastEntry, options: {
|
|
51
|
+
booleanWording: AccountingBooleanWording;
|
|
52
|
+
basis?: AccountingBasisRequest;
|
|
53
|
+
}): AccountingRowInterpretation;
|
|
54
|
+
//# sourceMappingURL=accounting-format.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounting-format.d.ts","sourceRoot":"","sources":["../../src/lib/accounting-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import { isBooleanEntry, isPercentEntry, isQuantityEntry, isValueEntry } from "./entries.js";
|
|
2
|
+
const CANONICAL_DECIMAL_RE = /^-?(?:0|[1-9]\d*)(?:\.\d+)?$/u;
|
|
3
|
+
const RESULT_TYPE_LABELS = {
|
|
4
|
+
quota: "Quota",
|
|
5
|
+
rate_limit: "Rate limit",
|
|
6
|
+
usage: "Usage",
|
|
7
|
+
spend: "Spend",
|
|
8
|
+
budget: "Budget",
|
|
9
|
+
balance: "Balance",
|
|
10
|
+
status: "Status",
|
|
11
|
+
};
|
|
12
|
+
const RESULT_TYPE_ORDER = {
|
|
13
|
+
quota: 0,
|
|
14
|
+
rate_limit: 1,
|
|
15
|
+
budget: 2,
|
|
16
|
+
usage: 3,
|
|
17
|
+
spend: 4,
|
|
18
|
+
balance: 5,
|
|
19
|
+
status: 6,
|
|
20
|
+
};
|
|
21
|
+
const WINDOW_LABELS = {
|
|
22
|
+
rpm: "RPM",
|
|
23
|
+
hour: "Hourly",
|
|
24
|
+
five_hour: "Five-hour",
|
|
25
|
+
day: "Daily",
|
|
26
|
+
week: "Weekly",
|
|
27
|
+
month: "Monthly",
|
|
28
|
+
year: "Yearly",
|
|
29
|
+
mcp: "MCP",
|
|
30
|
+
code_review: "Code Review",
|
|
31
|
+
};
|
|
32
|
+
const WINDOW_ORDER = {
|
|
33
|
+
rpm: 0,
|
|
34
|
+
hour: 1,
|
|
35
|
+
five_hour: 2,
|
|
36
|
+
day: 3,
|
|
37
|
+
week: 4,
|
|
38
|
+
month: 5,
|
|
39
|
+
year: 6,
|
|
40
|
+
mcp: 7,
|
|
41
|
+
code_review: 8,
|
|
42
|
+
};
|
|
43
|
+
const COMPONENT_LABELS = {
|
|
44
|
+
current_balance: "Current balance",
|
|
45
|
+
total_balance: "Total balance",
|
|
46
|
+
cash_balance: "Cash balance",
|
|
47
|
+
gift_balance: "Gift balance",
|
|
48
|
+
granted_balance: "Granted balance",
|
|
49
|
+
topped_up_balance: "Topped-up balance",
|
|
50
|
+
remaining_credits: "Remaining credits",
|
|
51
|
+
auto_reload: "Auto-reload",
|
|
52
|
+
auto_reload_amount: "Auto-reload amount",
|
|
53
|
+
auto_reload_trigger: "Auto-reload trigger",
|
|
54
|
+
};
|
|
55
|
+
const COMPONENT_ORDER = {
|
|
56
|
+
current_balance: 0,
|
|
57
|
+
remaining_credits: 0,
|
|
58
|
+
total_balance: 1,
|
|
59
|
+
cash_balance: 2,
|
|
60
|
+
gift_balance: 3,
|
|
61
|
+
granted_balance: 4,
|
|
62
|
+
topped_up_balance: 5,
|
|
63
|
+
auto_reload: 6,
|
|
64
|
+
auto_reload_amount: 7,
|
|
65
|
+
auto_reload_trigger: 8,
|
|
66
|
+
};
|
|
67
|
+
const COUNT_LABELS = {
|
|
68
|
+
request: ["request", "requests"],
|
|
69
|
+
token: ["token", "tokens"],
|
|
70
|
+
credit: ["credit", "credits"],
|
|
71
|
+
message: ["message", "messages"],
|
|
72
|
+
interaction: ["interaction", "interactions"],
|
|
73
|
+
unit: ["unit", "units"],
|
|
74
|
+
};
|
|
75
|
+
export function isCanonicalAccountingDecimal(value) {
|
|
76
|
+
if (!CANONICAL_DECIMAL_RE.test(value))
|
|
77
|
+
return false;
|
|
78
|
+
if (!value.startsWith("-"))
|
|
79
|
+
return true;
|
|
80
|
+
return !/^0(?:\.0+)?$/u.test(value.slice(1));
|
|
81
|
+
}
|
|
82
|
+
function splitDecimal(decimal) {
|
|
83
|
+
const negative = decimal.startsWith("-");
|
|
84
|
+
const unsigned = negative ? decimal.slice(1) : decimal;
|
|
85
|
+
const [integer = "0", fraction = ""] = unsigned.split(".", 2);
|
|
86
|
+
return { negative, integer, fraction };
|
|
87
|
+
}
|
|
88
|
+
function groupInteger(integer) {
|
|
89
|
+
return integer.replace(/\B(?=(\d{3})+(?!\d))/gu, ",");
|
|
90
|
+
}
|
|
91
|
+
function isBelowOneCent(integer, fraction) {
|
|
92
|
+
return (integer === "0" &&
|
|
93
|
+
fraction.length > 0 &&
|
|
94
|
+
!/^0+$/u.test(fraction) &&
|
|
95
|
+
fraction.padEnd(2, "0").slice(0, 2) === "00");
|
|
96
|
+
}
|
|
97
|
+
function incrementIntegerString(integer) {
|
|
98
|
+
return (BigInt(integer) + 1n).toString();
|
|
99
|
+
}
|
|
100
|
+
function formatCurrencyAmount(decimal) {
|
|
101
|
+
const { negative, integer, fraction } = splitDecimal(decimal);
|
|
102
|
+
if (isBelowOneCent(integer, fraction)) {
|
|
103
|
+
if (!negative)
|
|
104
|
+
return "<0.01";
|
|
105
|
+
return `-${integer}.${fraction}`;
|
|
106
|
+
}
|
|
107
|
+
const padded = `${fraction}000`;
|
|
108
|
+
let cents = Number(padded.slice(0, 2));
|
|
109
|
+
let roundedInteger = integer;
|
|
110
|
+
if (Number(padded[2]) >= 5)
|
|
111
|
+
cents += 1;
|
|
112
|
+
if (cents === 100) {
|
|
113
|
+
roundedInteger = incrementIntegerString(integer);
|
|
114
|
+
cents = 0;
|
|
115
|
+
}
|
|
116
|
+
return `${negative ? "-" : ""}${groupInteger(roundedInteger)}.${String(cents).padStart(2, "0")}`;
|
|
117
|
+
}
|
|
118
|
+
function formatExactAmount(decimal) {
|
|
119
|
+
const { negative, integer, fraction } = splitDecimal(decimal);
|
|
120
|
+
return `${negative ? "-" : ""}${groupInteger(integer)}${fraction ? `.${fraction}` : ""}`;
|
|
121
|
+
}
|
|
122
|
+
export function accountingUnitsEqual(left, right) {
|
|
123
|
+
if (left.kind !== right.kind)
|
|
124
|
+
return false;
|
|
125
|
+
if (left.kind === "currency" && right.kind === "currency")
|
|
126
|
+
return left.code === right.code;
|
|
127
|
+
if (left.kind === "count" && right.kind === "count")
|
|
128
|
+
return left.unit === right.unit;
|
|
129
|
+
if (left.kind === "custom" && right.kind === "custom")
|
|
130
|
+
return left.symbol === right.symbol;
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
export function formatAccountingQuantity(quantity) {
|
|
134
|
+
if (!isCanonicalAccountingDecimal(quantity.decimal)) {
|
|
135
|
+
throw new TypeError("Accounting quantity decimal must be canonical");
|
|
136
|
+
}
|
|
137
|
+
if (quantity.unit.kind === "currency") {
|
|
138
|
+
return `${quantity.unit.code} ${formatCurrencyAmount(quantity.decimal)}`;
|
|
139
|
+
}
|
|
140
|
+
const amount = formatExactAmount(quantity.decimal);
|
|
141
|
+
if (quantity.unit.kind === "custom")
|
|
142
|
+
return `${amount} ${quantity.unit.symbol}`;
|
|
143
|
+
const labels = COUNT_LABELS[quantity.unit.unit];
|
|
144
|
+
const singular = /^1(?:\.0+)?$/u.test(quantity.decimal);
|
|
145
|
+
return `${amount} ${singular ? labels[0] : labels[1]}`;
|
|
146
|
+
}
|
|
147
|
+
export function formatAccountingBoolean(value, semantic) {
|
|
148
|
+
if (semantic?.metric.kind === "named" && semantic.metric.name === "Availability") {
|
|
149
|
+
return value ? "Available" : "Low balance";
|
|
150
|
+
}
|
|
151
|
+
return value ? "Enabled" : "Disabled";
|
|
152
|
+
}
|
|
153
|
+
export function formatAccountingBasisSummary(basis, mode) {
|
|
154
|
+
if (mode === "remaining" && basis.remaining) {
|
|
155
|
+
return `Remaining: ${formatAccountingQuantity(basis.remaining.quantity)}`;
|
|
156
|
+
}
|
|
157
|
+
if (mode === "used" && basis.used) {
|
|
158
|
+
return `Used: ${formatAccountingQuantity(basis.used.quantity)}`;
|
|
159
|
+
}
|
|
160
|
+
if (basis.used && basis.limit) {
|
|
161
|
+
return `Used: ${formatAccountingQuantity(basis.used.quantity)} / Limit: ${formatAccountingQuantity(basis.limit.quantity)}`;
|
|
162
|
+
}
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
function buildAccountingBasisFacts(basis) {
|
|
166
|
+
const facts = [];
|
|
167
|
+
if (basis.used) {
|
|
168
|
+
facts.push({ role: "used", text: `Used: ${formatAccountingQuantity(basis.used.quantity)}` });
|
|
169
|
+
}
|
|
170
|
+
if (basis.limit) {
|
|
171
|
+
facts.push({ role: "limit", text: `Limit: ${formatAccountingQuantity(basis.limit.quantity)}` });
|
|
172
|
+
}
|
|
173
|
+
if (basis.remaining) {
|
|
174
|
+
facts.push({
|
|
175
|
+
role: "remaining",
|
|
176
|
+
text: `Remaining: ${formatAccountingQuantity(basis.remaining.quantity)}`,
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
return facts;
|
|
180
|
+
}
|
|
181
|
+
export function formatAccountingBasisDetails(basis) {
|
|
182
|
+
return buildAccountingBasisFacts(basis).map((fact) => fact.text);
|
|
183
|
+
}
|
|
184
|
+
export function formatAccountingResultTypeLabel(resultType) {
|
|
185
|
+
return RESULT_TYPE_LABELS[resultType];
|
|
186
|
+
}
|
|
187
|
+
export function formatAccountingWindowLabel(window) {
|
|
188
|
+
return WINDOW_LABELS[window];
|
|
189
|
+
}
|
|
190
|
+
export function formatAccountingComponentLabel(component) {
|
|
191
|
+
return COMPONENT_LABELS[component];
|
|
192
|
+
}
|
|
193
|
+
export function formatAccountingSemanticLabel(resultType, semantic, entryKind) {
|
|
194
|
+
const resultLabel = RESULT_TYPE_LABELS[resultType];
|
|
195
|
+
const metric = semantic.metric;
|
|
196
|
+
if (metric.kind === "aggregate")
|
|
197
|
+
return resultLabel;
|
|
198
|
+
if (metric.kind === "window") {
|
|
199
|
+
return `${WINDOW_LABELS[metric.window]} ${resultLabel.toLowerCase()}`;
|
|
200
|
+
}
|
|
201
|
+
if (metric.kind === "component") {
|
|
202
|
+
if (metric.component === "remaining_credits" && entryKind === "percent")
|
|
203
|
+
return "Credits";
|
|
204
|
+
return COMPONENT_LABELS[metric.component];
|
|
205
|
+
}
|
|
206
|
+
if (resultType === "status")
|
|
207
|
+
return metric.name;
|
|
208
|
+
return `${metric.name} ${resultLabel.toLowerCase()}`;
|
|
209
|
+
}
|
|
210
|
+
export function getAccountingSemanticSortKey(entry) {
|
|
211
|
+
const semantic = entry.semantic;
|
|
212
|
+
if (!semantic)
|
|
213
|
+
return [Number.MAX_SAFE_INTEGER, Number.MAX_SAFE_INTEGER, 0];
|
|
214
|
+
const resultRank = RESULT_TYPE_ORDER[entry.accounting.resultType];
|
|
215
|
+
const metric = semantic.metric;
|
|
216
|
+
if (metric.kind === "aggregate")
|
|
217
|
+
return [resultRank, 0, 0];
|
|
218
|
+
if (metric.kind === "window")
|
|
219
|
+
return [resultRank, 1, WINDOW_ORDER[metric.window]];
|
|
220
|
+
if (metric.kind === "component")
|
|
221
|
+
return [resultRank, 2, COMPONENT_ORDER[metric.component]];
|
|
222
|
+
return [resultRank, 3, 0];
|
|
223
|
+
}
|
|
224
|
+
export function compareAccountingSemanticEntries(left, right) {
|
|
225
|
+
const leftKey = getAccountingSemanticSortKey(left);
|
|
226
|
+
const rightKey = getAccountingSemanticSortKey(right);
|
|
227
|
+
return leftKey[0] - rightKey[0] || leftKey[1] - rightKey[1] || leftKey[2] - rightKey[2];
|
|
228
|
+
}
|
|
229
|
+
export function getAccountingEntryLabel(entry) {
|
|
230
|
+
if (!entry.semantic)
|
|
231
|
+
return entry.metricLabel?.trim() || entry.label?.trim() || entry.name;
|
|
232
|
+
return formatAccountingSemanticLabel(entry.accounting.resultType, entry.semantic, isPercentEntry(entry) ? "percent" : entry.kind);
|
|
233
|
+
}
|
|
234
|
+
export function interpretAccountingRow(entry, options) {
|
|
235
|
+
const label = getAccountingEntryLabel(entry);
|
|
236
|
+
let display;
|
|
237
|
+
if (isPercentEntry(entry)) {
|
|
238
|
+
display = { kind: "percent", percentRemaining: entry.percentRemaining };
|
|
239
|
+
}
|
|
240
|
+
else if (isValueEntry(entry)) {
|
|
241
|
+
display = { kind: "value", entryKind: "value", text: entry.value };
|
|
242
|
+
}
|
|
243
|
+
else if (isQuantityEntry(entry)) {
|
|
244
|
+
display = {
|
|
245
|
+
kind: "value",
|
|
246
|
+
entryKind: "quantity",
|
|
247
|
+
text: formatAccountingQuantity(entry.quantity),
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
else if (isBooleanEntry(entry)) {
|
|
251
|
+
display = {
|
|
252
|
+
kind: "value",
|
|
253
|
+
entryKind: "boolean",
|
|
254
|
+
text: formatAccountingBoolean(entry.value, options.booleanWording === "semantic" ? entry.semantic : undefined),
|
|
255
|
+
};
|
|
256
|
+
}
|
|
257
|
+
else {
|
|
258
|
+
return entry;
|
|
259
|
+
}
|
|
260
|
+
if (!isPercentEntry(entry) || !entry.basis || !options.basis) {
|
|
261
|
+
return { label, display };
|
|
262
|
+
}
|
|
263
|
+
const basis = options.basis.kind === "summary"
|
|
264
|
+
? {
|
|
265
|
+
kind: "summary",
|
|
266
|
+
text: formatAccountingBasisSummary(entry.basis, options.basis.mode),
|
|
267
|
+
}
|
|
268
|
+
: { kind: "detailed", facts: buildAccountingBasisFacts(entry.basis) };
|
|
269
|
+
return { label, display, basis };
|
|
270
|
+
}
|
|
271
|
+
//# sourceMappingURL=accounting-format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accounting-format.js","sourceRoot":"","sources":["../../src/lib/accounting-format.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/anthropic.d.ts
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* token: OpenCode's own auth.json, then Claude OAuth credentials (macOS
|
|
8
8
|
* Keychain first, then the local credentials file).
|
|
9
9
|
*/
|
|
10
|
+
import { type ResolvedAuthIdentity } from "./resolved-auth-identity.js";
|
|
10
11
|
export interface AnthropicQuotaWindow {
|
|
11
12
|
utilization?: number;
|
|
12
13
|
used_percentage?: number;
|
|
@@ -74,6 +75,7 @@ declare function parseUsageResponse(data: unknown): AnthropicQuotaResult | null;
|
|
|
74
75
|
export declare function clearAnthropicDiagnosticsCacheForTests(): void;
|
|
75
76
|
export declare function getAnthropicDiagnostics(options?: AnthropicProbeOptions): Promise<AnthropicDiagnostics>;
|
|
76
77
|
export declare function hasAnthropicCredentialsConfigured(options?: AnthropicProbeOptions): Promise<boolean>;
|
|
78
|
+
export declare function resolveAnthropicAuthIdentity(options?: AnthropicProbeOptions): Promise<ResolvedAuthIdentity | null>;
|
|
77
79
|
export declare function queryAnthropicQuota(options?: AnthropicProbeOptions): Promise<AnthropicResult>;
|
|
78
80
|
export { parseUsageResponse };
|
|
79
81
|
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/lib/anthropic.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/lib/anthropic.ts"],"names":[],"mappings":"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"}
|