@slkiser/opencode-quota 3.11.2 → 4.0.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 (196) hide show
  1. package/README.md +90 -62
  2. package/dist/bin/opencode-quota.d.ts.map +1 -1
  3. package/dist/bin/opencode-quota.js +16 -7
  4. package/dist/bin/opencode-quota.js.map +1 -1
  5. package/dist/index.d.ts +2 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +2 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/lib/cli-show.d.ts.map +1 -1
  10. package/dist/lib/cli-show.js +11 -7
  11. package/dist/lib/cli-show.js.map +1 -1
  12. package/dist/lib/command-surfaces.d.ts +10 -0
  13. package/dist/lib/command-surfaces.d.ts.map +1 -0
  14. package/dist/lib/command-surfaces.js +9 -0
  15. package/dist/lib/command-surfaces.js.map +1 -0
  16. package/dist/lib/config-file-utils.d.ts +5 -0
  17. package/dist/lib/config-file-utils.d.ts.map +1 -1
  18. package/dist/lib/config-file-utils.js +20 -3
  19. package/dist/lib/config-file-utils.js.map +1 -1
  20. package/dist/lib/config.d.ts +5 -3
  21. package/dist/lib/config.d.ts.map +1 -1
  22. package/dist/lib/config.js +124 -32
  23. package/dist/lib/config.js.map +1 -1
  24. package/dist/lib/copilot.d.ts +19 -12
  25. package/dist/lib/copilot.d.ts.map +1 -1
  26. package/dist/lib/copilot.js +462 -566
  27. package/dist/lib/copilot.js.map +1 -1
  28. package/dist/lib/display-sanitize.d.ts.map +1 -1
  29. package/dist/lib/display-sanitize.js +13 -0
  30. package/dist/lib/display-sanitize.js.map +1 -1
  31. package/dist/lib/entries.d.ts +53 -4
  32. package/dist/lib/entries.d.ts.map +1 -1
  33. package/dist/lib/entries.js.map +1 -1
  34. package/dist/lib/init-installer.d.ts +11 -1
  35. package/dist/lib/init-installer.d.ts.map +1 -1
  36. package/dist/lib/init-installer.js +524 -158
  37. package/dist/lib/init-installer.js.map +1 -1
  38. package/dist/lib/opencode-config-editor.d.ts +53 -0
  39. package/dist/lib/opencode-config-editor.d.ts.map +1 -0
  40. package/dist/lib/opencode-config-editor.js +274 -0
  41. package/dist/lib/opencode-config-editor.js.map +1 -0
  42. package/dist/lib/opencode-config-providers.d.ts +18 -0
  43. package/dist/lib/opencode-config-providers.d.ts.map +1 -1
  44. package/dist/lib/opencode-config-providers.js +75 -4
  45. package/dist/lib/opencode-config-providers.js.map +1 -1
  46. package/dist/lib/opencode-runtime-paths.d.ts.map +1 -1
  47. package/dist/lib/opencode-runtime-paths.js +10 -3
  48. package/dist/lib/opencode-runtime-paths.js.map +1 -1
  49. package/dist/lib/opencode-storage.d.ts +10 -0
  50. package/dist/lib/opencode-storage.d.ts.map +1 -1
  51. package/dist/lib/opencode-storage.js +75 -0
  52. package/dist/lib/opencode-storage.js.map +1 -1
  53. package/dist/lib/provider-add-command.d.ts +35 -0
  54. package/dist/lib/provider-add-command.d.ts.map +1 -0
  55. package/dist/lib/provider-add-command.js +185 -0
  56. package/dist/lib/provider-add-command.js.map +1 -0
  57. package/dist/lib/provider-add.d.ts +21 -0
  58. package/dist/lib/provider-add.d.ts.map +1 -0
  59. package/dist/lib/provider-add.js +210 -0
  60. package/dist/lib/provider-add.js.map +1 -0
  61. package/dist/lib/provider-metadata.d.ts +1 -1
  62. package/dist/lib/provider-metadata.d.ts.map +1 -1
  63. package/dist/lib/provider-metadata.js +11 -5
  64. package/dist/lib/provider-metadata.js.map +1 -1
  65. package/dist/lib/quota-command-format.d.ts +2 -0
  66. package/dist/lib/quota-command-format.d.ts.map +1 -1
  67. package/dist/lib/quota-command-format.js +94 -26
  68. package/dist/lib/quota-command-format.js.map +1 -1
  69. package/dist/lib/quota-dialog-commands.d.ts.map +1 -1
  70. package/dist/lib/quota-dialog-commands.js +8 -4
  71. package/dist/lib/quota-dialog-commands.js.map +1 -1
  72. package/dist/lib/quota-export-types.d.ts +48 -27
  73. package/dist/lib/quota-export-types.d.ts.map +1 -1
  74. package/dist/lib/quota-export-types.js +0 -7
  75. package/dist/lib/quota-export-types.js.map +1 -1
  76. package/dist/lib/quota-export.d.ts.map +1 -1
  77. package/dist/lib/quota-export.js +63 -16
  78. package/dist/lib/quota-export.js.map +1 -1
  79. package/dist/lib/quota-providers-local.d.ts +55 -0
  80. package/dist/lib/quota-providers-local.d.ts.map +1 -0
  81. package/dist/lib/quota-providers-local.js +313 -0
  82. package/dist/lib/quota-providers-local.js.map +1 -0
  83. package/dist/lib/quota-providers-remote.d.ts +23 -0
  84. package/dist/lib/quota-providers-remote.d.ts.map +1 -0
  85. package/dist/lib/quota-providers-remote.js +318 -0
  86. package/dist/lib/quota-providers-remote.js.map +1 -0
  87. package/dist/lib/quota-providers.d.ts +77 -0
  88. package/dist/lib/quota-providers.d.ts.map +1 -0
  89. package/dist/lib/quota-providers.js +630 -0
  90. package/dist/lib/quota-providers.js.map +1 -0
  91. package/dist/lib/quota-render-data.d.ts +1 -0
  92. package/dist/lib/quota-render-data.d.ts.map +1 -1
  93. package/dist/lib/quota-render-data.js +35 -16
  94. package/dist/lib/quota-render-data.js.map +1 -1
  95. package/dist/lib/quota-runtime-context.d.ts.map +1 -1
  96. package/dist/lib/quota-runtime-context.js +3 -4
  97. package/dist/lib/quota-runtime-context.js.map +1 -1
  98. package/dist/lib/quota-state.d.ts +5 -2
  99. package/dist/lib/quota-state.d.ts.map +1 -1
  100. package/dist/lib/quota-state.js +268 -51
  101. package/dist/lib/quota-state.js.map +1 -1
  102. package/dist/lib/quota-status.d.ts +2 -1
  103. package/dist/lib/quota-status.d.ts.map +1 -1
  104. package/dist/lib/quota-status.js +247 -69
  105. package/dist/lib/quota-status.js.map +1 -1
  106. package/dist/lib/qwen-local-quota.d.ts +12 -11
  107. package/dist/lib/qwen-local-quota.d.ts.map +1 -1
  108. package/dist/lib/qwen-local-quota.js +82 -87
  109. package/dist/lib/qwen-local-quota.js.map +1 -1
  110. package/dist/lib/scoped-update.d.ts.map +1 -1
  111. package/dist/lib/scoped-update.js +32 -22
  112. package/dist/lib/scoped-update.js.map +1 -1
  113. package/dist/lib/tui-runtime.d.ts +2 -0
  114. package/dist/lib/tui-runtime.d.ts.map +1 -1
  115. package/dist/lib/tui-runtime.js +33 -9
  116. package/dist/lib/tui-runtime.js.map +1 -1
  117. package/dist/lib/types.d.ts +51 -15
  118. package/dist/lib/types.d.ts.map +1 -1
  119. package/dist/lib/types.js +2 -1
  120. package/dist/lib/types.js.map +1 -1
  121. package/dist/plugin.d.ts.map +1 -1
  122. package/dist/plugin.js +75 -100
  123. package/dist/plugin.js.map +1 -1
  124. package/dist/providers/alibaba-coding-plan.d.ts.map +1 -1
  125. package/dist/providers/alibaba-coding-plan.js +35 -4
  126. package/dist/providers/alibaba-coding-plan.js.map +1 -1
  127. package/dist/providers/anthropic.d.ts.map +1 -1
  128. package/dist/providers/anthropic.js +13 -1
  129. package/dist/providers/anthropic.js.map +1 -1
  130. package/dist/providers/chutes.d.ts.map +1 -1
  131. package/dist/providers/chutes.js +6 -0
  132. package/dist/providers/chutes.js.map +1 -1
  133. package/dist/providers/copilot.d.ts +2 -1
  134. package/dist/providers/copilot.d.ts.map +1 -1
  135. package/dist/providers/copilot.js +143 -60
  136. package/dist/providers/copilot.js.map +1 -1
  137. package/dist/providers/cursor.d.ts.map +1 -1
  138. package/dist/providers/cursor.js +30 -1
  139. package/dist/providers/cursor.js.map +1 -1
  140. package/dist/providers/deepseek.d.ts.map +1 -1
  141. package/dist/providers/deepseek.js +13 -1
  142. package/dist/providers/deepseek.js.map +1 -1
  143. package/dist/providers/google-agy.d.ts.map +1 -1
  144. package/dist/providers/google-agy.js +7 -1
  145. package/dist/providers/google-agy.js.map +1 -1
  146. package/dist/providers/google-antigravity.d.ts.map +1 -1
  147. package/dist/providers/google-antigravity.js +10 -2
  148. package/dist/providers/google-antigravity.js.map +1 -1
  149. package/dist/providers/google-gemini-cli.d.ts.map +1 -1
  150. package/dist/providers/google-gemini-cli.js +8 -2
  151. package/dist/providers/google-gemini-cli.js.map +1 -1
  152. package/dist/providers/kimi-code.d.ts.map +1 -1
  153. package/dist/providers/kimi-code.js +6 -0
  154. package/dist/providers/kimi-code.js.map +1 -1
  155. package/dist/providers/minimax-coding-plan.d.ts.map +1 -1
  156. package/dist/providers/minimax-coding-plan.js +12 -4
  157. package/dist/providers/minimax-coding-plan.js.map +1 -1
  158. package/dist/providers/nanogpt.d.ts.map +1 -1
  159. package/dist/providers/nanogpt.js +19 -1
  160. package/dist/providers/nanogpt.js.map +1 -1
  161. package/dist/providers/ollama-cloud.d.ts.map +1 -1
  162. package/dist/providers/ollama-cloud.js +12 -0
  163. package/dist/providers/ollama-cloud.js.map +1 -1
  164. package/dist/providers/openai.d.ts.map +1 -1
  165. package/dist/providers/openai.js +6 -0
  166. package/dist/providers/openai.js.map +1 -1
  167. package/dist/providers/opencode-go.d.ts.map +1 -1
  168. package/dist/providers/opencode-go.js +9 -1
  169. package/dist/providers/opencode-go.js.map +1 -1
  170. package/dist/providers/quota-providers.d.ts +6 -0
  171. package/dist/providers/quota-providers.d.ts.map +1 -0
  172. package/dist/providers/quota-providers.js +276 -0
  173. package/dist/providers/quota-providers.js.map +1 -0
  174. package/dist/providers/qwen-code.d.ts.map +1 -1
  175. package/dist/providers/qwen-code.js +29 -3
  176. package/dist/providers/qwen-code.js.map +1 -1
  177. package/dist/providers/registry.d.ts.map +1 -1
  178. package/dist/providers/registry.js +2 -0
  179. package/dist/providers/registry.js.map +1 -1
  180. package/dist/providers/result-helpers.d.ts +2 -1
  181. package/dist/providers/result-helpers.d.ts.map +1 -1
  182. package/dist/providers/result-helpers.js +6 -1
  183. package/dist/providers/result-helpers.js.map +1 -1
  184. package/dist/providers/synthetic.d.ts.map +1 -1
  185. package/dist/providers/synthetic.js +7 -1
  186. package/dist/providers/synthetic.js.map +1 -1
  187. package/dist/providers/zai.d.ts.map +1 -1
  188. package/dist/providers/zai.js +7 -1
  189. package/dist/providers/zai.js.map +1 -1
  190. package/dist/providers/zhipu.d.ts.map +1 -1
  191. package/dist/providers/zhipu.js +7 -1
  192. package/dist/providers/zhipu.js.map +1 -1
  193. package/dist/tui.d.ts.map +1 -1
  194. package/dist/tui.js +345 -41
  195. package/dist/tui.tsx +267 -18
  196. package/package.json +28 -21
@@ -0,0 +1,210 @@
1
+ import { existsSync } from "node:fs";
2
+ import { readFile } from "node:fs/promises";
3
+ import { join } from "node:path";
4
+ import { applyConfigDocumentEdit, parseConfigDocument, planConfigDocumentEdit, validateConfigDocumentEdit, } from "./opencode-config-editor.js";
5
+ import { resolveEditableConfigPath } from "./config-file-utils.js";
6
+ import { getOpencodeRuntimeDirs } from "./opencode-runtime-paths.js";
7
+ import { MAINTAINED_LOCAL_ESTIMATE_IDS, QUOTA_PROVIDERS_AGGREGATE_ID, validateQuotaProviders, } from "./quota-providers.js";
8
+ function isPlainObject(value) {
9
+ return Boolean(value) && typeof value === "object" && !Array.isArray(value);
10
+ }
11
+ function cloneJson(value) {
12
+ return JSON.parse(JSON.stringify(value));
13
+ }
14
+ function toPublicDefinition(definition) {
15
+ const result = cloneJson(definition);
16
+ if (definition.providerId === definition.id)
17
+ delete result.providerId;
18
+ return result;
19
+ }
20
+ function ensureObject(parent, key, path) {
21
+ if (!(key in parent)) {
22
+ const child = {};
23
+ parent[key] = child;
24
+ return child;
25
+ }
26
+ if (!isPlainObject(parent[key]))
27
+ throw new Error(path + " must be an object");
28
+ return parent[key];
29
+ }
30
+ function managedComments(index, definition) {
31
+ const base = ["experimental", "quotaToast", "quotaProviders", index];
32
+ const comments = [
33
+ {
34
+ path: ["experimental"],
35
+ text: "// Plugin settings accepted by OpenCode's global config schema.",
36
+ },
37
+ {
38
+ path: ["experimental", "quotaToast"],
39
+ text: "// OpenCode Quota settings. Project quota-provider definitions are never trusted.",
40
+ },
41
+ {
42
+ path: ["experimental", "quotaToast", "quotaProviders"],
43
+ text: "// Ordered global-only definitions. Stable ids control state, cache, and provenance.",
44
+ },
45
+ {
46
+ path: [...base, "id"],
47
+ text: "// Stable definition id; also the OpenCode provider id by default.",
48
+ },
49
+ {
50
+ path: [...base, "mode"],
51
+ text: "// Exactly one acquisition mode: remote-api or local-estimate.",
52
+ },
53
+ ];
54
+ if (definition.providerId !== definition.id) {
55
+ comments.push({
56
+ path: [...base, "providerId"],
57
+ text: "// OpenCode provider id because it differs from the stable definition id.",
58
+ });
59
+ }
60
+ if (definition.modelIds) {
61
+ comments.push({
62
+ path: [...base, "modelIds"],
63
+ text: "// Optional exact OpenCode model ids; omission covers the whole provider.",
64
+ });
65
+ }
66
+ if (definition.mode === "remote-api") {
67
+ comments.push({
68
+ path: [...base, "url"],
69
+ text: "// Fixed authenticated GET endpoint. HTTPS is required except on loopback.",
70
+ }, {
71
+ path: [...base, "format"],
72
+ text: "// Safe response contract: accounting-v1 or openrouter-key-v1.",
73
+ });
74
+ if (definition.apiKeyEnv) {
75
+ comments.push({
76
+ path: [...base, "apiKeyEnv"],
77
+ text: "// Environment variable name only. The command never writes its secret value.",
78
+ });
79
+ }
80
+ }
81
+ else {
82
+ comments.push({
83
+ path: [...base, "windows"],
84
+ text: "// Request limits over explicit UTC-day or bounded rolling windows.",
85
+ });
86
+ if (definition.pricingModelMap) {
87
+ comments.push({
88
+ path: [...base, "pricingModelMap"],
89
+ text: "// Manual models.dev fallback only where automatic matching cannot decide.",
90
+ });
91
+ }
92
+ }
93
+ return comments;
94
+ }
95
+ function sidecarManagedComments(index, definition) {
96
+ return managedComments(index, definition)
97
+ .filter((comment) => comment.path.length > 2)
98
+ .map((comment) => ({ ...comment, path: comment.path.slice(2) }));
99
+ }
100
+ export async function planProviderAdd(options) {
101
+ const single = validateQuotaProviders([options.definition]);
102
+ if (!single.value) {
103
+ throw new Error(single.issues.map((issue) => issue.key + ": " + issue.message).join("\n"));
104
+ }
105
+ const definition = single.value[0];
106
+ const configDir = options.configDir ?? getOpencodeRuntimeDirs().configDir;
107
+ const sidecarCandidates = ["quota-toast.jsonc", "quota-toast.json"].map((name) => join(configDir, "opencode-quota", name));
108
+ let selectedSidecar;
109
+ let malformedSidecarPath;
110
+ for (const path of sidecarCandidates) {
111
+ if (!existsSync(path))
112
+ continue;
113
+ const format = path.endsWith(".jsonc") ? "jsonc" : "json";
114
+ try {
115
+ selectedSidecar = {
116
+ path,
117
+ format,
118
+ root: parseConfigDocument(await readFile(path, "utf8"), format, path),
119
+ };
120
+ break;
121
+ }
122
+ catch {
123
+ malformedSidecarPath ??= path;
124
+ }
125
+ }
126
+ if (!selectedSidecar && malformedSidecarPath) {
127
+ throw new Error("Cannot parse existing quota sidecar: " + malformedSidecarPath);
128
+ }
129
+ const hostTarget = resolveEditableConfigPath({
130
+ dir: configDir,
131
+ kind: "opencode",
132
+ preferredFormat: options.preferredFormat ?? "jsonc",
133
+ convertJsonToJsonc: false,
134
+ });
135
+ const hostRoot = hostTarget.existed
136
+ ? parseConfigDocument(await readFile(hostTarget.sourcePath, "utf8"), hostTarget.sourcePath.endsWith(".jsonc") ? "jsonc" : "json", hostTarget.sourcePath)
137
+ : {};
138
+ const ordinaryProviders = isPlainObject(hostRoot.provider) ? hostRoot.provider : {};
139
+ let target;
140
+ let root;
141
+ let quotaToast;
142
+ if (selectedSidecar) {
143
+ target = {
144
+ path: selectedSidecar.path,
145
+ sourcePath: selectedSidecar.path,
146
+ format: selectedSidecar.format,
147
+ existed: true,
148
+ };
149
+ root = selectedSidecar.root;
150
+ quotaToast = root;
151
+ }
152
+ else {
153
+ target = hostTarget;
154
+ root = hostTarget.existed ? hostRoot : { $schema: "https://opencode.ai/config.json" };
155
+ const experimental = ensureObject(root, "experimental", "experimental");
156
+ quotaToast = ensureObject(experimental, "quotaToast", "experimental.quotaToast");
157
+ }
158
+ if ("customSources" in quotaToast) {
159
+ throw new Error("customSources was removed; delete it before adding quotaProviders");
160
+ }
161
+ const existing = quotaToast.quotaProviders;
162
+ if (existing !== undefined && !Array.isArray(existing)) {
163
+ throw new Error("quotaProviders must be an array");
164
+ }
165
+ const definitions = (existing ? cloneJson(existing) : []);
166
+ const publicDefinition = toPublicDefinition(definition);
167
+ const existingIndex = definitions.findIndex((value) => isPlainObject(value) && value.id === definition.id);
168
+ const index = existingIndex === -1 ? definitions.length : existingIndex;
169
+ if (existingIndex === -1)
170
+ definitions.push(publicDefinition);
171
+ else
172
+ definitions[existingIndex] = publicDefinition;
173
+ const combined = validateQuotaProviders(definitions);
174
+ if (!combined.value) {
175
+ throw new Error(combined.issues.map((issue) => issue.key + ": " + issue.message).join("\n"));
176
+ }
177
+ quotaToast.quotaProviders = definitions;
178
+ if (Array.isArray(quotaToast.enabledProviders)) {
179
+ const enabledProviders = quotaToast.enabledProviders.filter((value) => typeof value === "string");
180
+ if (!enabledProviders.includes(QUOTA_PROVIDERS_AGGREGATE_ID)) {
181
+ quotaToast.enabledProviders = [...enabledProviders, QUOTA_PROVIDERS_AGGREGATE_ID];
182
+ }
183
+ }
184
+ const documentEdit = await planConfigDocumentEdit({
185
+ target,
186
+ desiredData: root,
187
+ managedComments: selectedSidecar
188
+ ? sidecarManagedComments(index, definition)
189
+ : managedComments(index, definition),
190
+ });
191
+ return {
192
+ path: documentEdit.path,
193
+ format: documentEdit.format,
194
+ definition,
195
+ updated: documentEdit.updated,
196
+ changed: documentEdit.changed,
197
+ ordinaryProviderRequired: !MAINTAINED_LOCAL_ESTIMATE_IDS.includes(definition.id) &&
198
+ !(definition.providerId in ordinaryProviders),
199
+ documentEdit,
200
+ additionalDocumentEdits: [],
201
+ };
202
+ }
203
+ export async function applyProviderAddPlan(plan) {
204
+ const edits = [plan.documentEdit, ...plan.additionalDocumentEdits];
205
+ await Promise.all(edits.map((edit) => validateConfigDocumentEdit(edit)));
206
+ for (const edit of edits) {
207
+ await applyConfigDocumentEdit(edit);
208
+ }
209
+ }
210
+ //# sourceMappingURL=provider-add.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-add.js","sourceRoot":"","sources":["../../src/lib/provider-add.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type CanonicalQuotaProviderId = "anthropic" | "copilot" | "openai" | "cursor" | "qwen-code" | "alibaba-coding-plan" | "synthetic" | "chutes" | "google-antigravity" | "google-gemini-cli" | "google-agy" | "zai" | "zhipu" | "nanogpt" | "minimax-coding-plan" | "minimax-china-coding-plan" | "kimi-for-coding" | "deepseek" | "opencode-go" | "ollama-cloud";
1
+ export type CanonicalQuotaProviderId = "anthropic" | "copilot" | "openai" | "cursor" | "qwen-code" | "alibaba-coding-plan" | "synthetic" | "chutes" | "google-antigravity" | "google-gemini-cli" | "google-agy" | "zai" | "zhipu" | "nanogpt" | "minimax-coding-plan" | "minimax-china-coding-plan" | "kimi-for-coding" | "deepseek" | "opencode-go" | "ollama-cloud" | "quota-providers";
2
2
  export type QuotaProviderAutoSetup = "yes" | "usually" | "manual_env_config" | "needs_quick_setup";
3
3
  export type QuotaProviderAuthentication = "opencode_auth_oauth_token" | "opencode_auth_api_key" | "companion_auth_oauth_token" | "local_cli_auth" | "github_oauth_or_pat" | "external_api_key" | "state_only";
4
4
  export type QuotaProviderAuthFallback = "env_api_key" | "global_opencode_config";
@@ -1 +1 @@
1
- {"version":3,"file":"provider-metadata.d.ts","sourceRoot":"","sources":["../../src/lib/provider-metadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAChC,WAAW,GACX,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,qBAAqB,GACrB,WAAW,GACX,QAAQ,GACR,oBAAoB,GACpB,mBAAmB,GACnB,YAAY,GACZ,KAAK,GACL,OAAO,GACP,SAAS,GACT,qBAAqB,GACrB,2BAA2B,GAC3B,iBAAiB,GACjB,UAAU,GACV,aAAa,GACb,cAAc,CAAC;AAEnB,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,SAAS,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEnG,MAAM,MAAM,2BAA2B,GACnC,2BAA2B,GAC3B,uBAAuB,GACvB,4BAA4B,GAC5B,gBAAgB,GAChB,qBAAqB,GACrB,kBAAkB,GAClB,YAAY,CAAC;AAEjB,MAAM,MAAM,yBAAyB,GAAG,aAAa,GAAG,wBAAwB,CAAC;AAEjF,MAAM,MAAM,wBAAwB,GAChC,YAAY,GACZ,kBAAkB,GAClB,0BAA0B,GAC1B,kBAAkB,CAAC;AAEvB,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,wBAAwB,CAAC;IAC7B,SAAS,EAAE,sBAAsB,CAAC;IAClC,cAAc,EAAE,2BAA2B,CAAC;IAC5C,aAAa,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC5C,KAAK,EAAE,wBAAwB,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,wBAAwB,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;AAEpG,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAuBlE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA8BvE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,uBAoCxC,CAAC;AAQF,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EA8I9D,CAAC;AAMF,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAGhF;AAED,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAOxE;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE9D"}
1
+ {"version":3,"file":"provider-metadata.d.ts","sourceRoot":"","sources":["../../src/lib/provider-metadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAChC,WAAW,GACX,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,WAAW,GACX,qBAAqB,GACrB,WAAW,GACX,QAAQ,GACR,oBAAoB,GACpB,mBAAmB,GACnB,YAAY,GACZ,KAAK,GACL,OAAO,GACP,SAAS,GACT,qBAAqB,GACrB,2BAA2B,GAC3B,iBAAiB,GACjB,UAAU,GACV,aAAa,GACb,cAAc,GACd,iBAAiB,CAAC;AAEtB,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,SAAS,GAAG,mBAAmB,GAAG,mBAAmB,CAAC;AAEnG,MAAM,MAAM,2BAA2B,GACnC,2BAA2B,GAC3B,uBAAuB,GACvB,4BAA4B,GAC5B,gBAAgB,GAChB,qBAAqB,GACrB,kBAAkB,GAClB,YAAY,CAAC;AAEjB,MAAM,MAAM,yBAAyB,GAAG,aAAa,GAAG,wBAAwB,CAAC;AAEjF,MAAM,MAAM,wBAAwB,GAChC,YAAY,GACZ,kBAAkB,GAClB,0BAA0B,GAC1B,kBAAkB,CAAC;AAEvB,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,wBAAwB,CAAC;IAC7B,SAAS,EAAE,sBAAsB,CAAC;IAClC,cAAc,EAAE,2BAA2B,CAAC;IAC5C,aAAa,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC5C,KAAK,EAAE,wBAAwB,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,uBAAuB,GAAG,QAAQ,CAAC,MAAM,CAAC,wBAAwB,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,CAAC;AAEpG,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwBlE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA8BvE,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,uBAiCxC,CAAC;AAQF,eAAO,MAAM,qBAAqB,EAAE,SAAS,kBAAkB,EAuJ9D,CAAC;AAMF,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAGhF;AAED,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAOxE;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE9D"}
@@ -21,6 +21,7 @@ export const QUOTA_PROVIDER_LABELS = {
21
21
  deepseek: "DeepSeek",
22
22
  "opencode-go": "OpenCode Go",
23
23
  "ollama-cloud": "Ollama Cloud",
24
+ "quota-providers": "Quota providers",
24
25
  };
25
26
  export const QUOTA_PROVIDER_ID_SYNONYMS = {
26
27
  "github-copilot": "copilot",
@@ -70,11 +71,7 @@ export const QUOTA_PROVIDER_RUNTIME_IDS = {
70
71
  "opencode-gemini-auth",
71
72
  "google",
72
73
  ],
73
- "google-agy": [
74
- "google-agy",
75
- "opencode-agy-auth",
76
- "google-agy-auth",
77
- ],
74
+ "google-agy": ["google-agy", "opencode-agy-auth", "google-agy-auth"],
78
75
  zai: ["zai", "glm", "zai-coding-plan"],
79
76
  zhipu: ["zhipu", "glm-coding-plan", "zhipu-coding-plan", "zhipuai-coding-plan"],
80
77
  nanogpt: ["nanogpt", "nano-gpt"],
@@ -89,6 +86,7 @@ export const QUOTA_PROVIDER_RUNTIME_IDS = {
89
86
  deepseek: ["deepseek"],
90
87
  "opencode-go": ["opencode-go"],
91
88
  "ollama-cloud": ["ollama-cloud"],
89
+ "quota-providers": [],
92
90
  };
93
91
  const LIVE_LOCAL_USAGE_PROVIDER_ID_SET = new Set([
94
92
  "qwen-code",
@@ -237,6 +235,14 @@ export const QUOTA_PROVIDER_SHAPES = [
237
235
  quota: "remote_api",
238
236
  notes: "Scrapes the Ollama Cloud settings page; requires __Secure-session cookie via OLLAMA_USAGE_COOKIE env or ollama-usage config",
239
237
  },
238
+ {
239
+ id: "quota-providers",
240
+ autoSetup: "manual_env_config",
241
+ authentication: "external_api_key",
242
+ authFallbacks: ["env_api_key", "global_opencode_config"],
243
+ quota: "remote_api",
244
+ notes: "Aggregates exact user-configured accounting sources",
245
+ },
240
246
  ];
241
247
  const QUOTA_PROVIDER_SHAPES_BY_ID = Object.fromEntries(QUOTA_PROVIDER_SHAPES.map((shape) => [shape.id, shape]));
242
248
  export function normalizeQuotaProviderId(id) {
@@ -1 +1 @@
1
- {"version":3,"file":"provider-metadata.js","sourceRoot":"","sources":["../../src/lib/provider-metadata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-metadata.js","sourceRoot":"","sources":["../../src/lib/provider-metadata.ts"],"names":[],"mappings":"AAsDA,MAAM,CAAC,MAAM,qBAAqB,GAAqC;IACrE,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,oBAAoB,EAAE,QAAQ;IAC9B,mBAAmB,EAAE,YAAY;IACjC,YAAY,EAAE,YAAY;IAC1B,SAAS,EAAE,WAAW;IACtB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,MAAM;IACnB,qBAAqB,EAAE,qBAAqB;IAC5C,GAAG,EAAE,MAAM;IACX,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,qBAAqB,EAAE,qBAAqB;IAC5C,2BAA2B,EAAE,0BAA0B;IACvD,wBAAwB,EAAE,0BAA0B;IACpD,iBAAiB,EAAE,WAAW;IAC9B,WAAW,EAAE,WAAW;IACxB,QAAQ,EAAE,UAAU;IACpB,aAAa,EAAE,aAAa;IAC5B,cAAc,EAAE,cAAc;IAC9B,iBAAiB,EAAE,iBAAiB;CACrC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAqC;IAC1E,gBAAgB,EAAE,SAAS;IAC3B,cAAc,EAAE,SAAS;IACzB,qBAAqB,EAAE,SAAS;IAChC,YAAY,EAAE,QAAQ;IACtB,aAAa,EAAE,QAAQ;IACvB,wBAAwB,EAAE,QAAQ;IAClC,MAAM,EAAE,WAAW;IACnB,aAAa,EAAE,WAAW;IAC1B,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,qBAAqB;IAC9B,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,qBAAqB;IAC9B,YAAY,EAAE,2BAA2B;IACzC,eAAe,EAAE,2BAA2B;IAC5C,wBAAwB,EAAE,2BAA2B;IACrD,IAAI,EAAE,iBAAiB;IACvB,eAAe,EAAE,iBAAiB;IAClC,WAAW,EAAE,iBAAiB;IAC9B,WAAW,EAAE,UAAU;IACvB,0BAA0B,EAAE,aAAa;IACzC,YAAY,EAAE,mBAAmB;IACjC,eAAe,EAAE,mBAAmB;IACpC,sBAAsB,EAAE,mBAAmB;IAC3C,MAAM,EAAE,mBAAmB;IAC3B,mBAAmB,EAAE,YAAY;IACjC,iBAAiB,EAAE,YAAY;IAC/B,iBAAiB,EAAE,OAAO;IAC1B,mBAAmB,EAAE,OAAO;IAC5B,qBAAqB,EAAE,OAAO;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAA4B;IACjE,SAAS,EAAE,CAAC,WAAW,CAAC;IACxB,OAAO,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,qBAAqB,CAAC;IAC7E,MAAM,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;IACtC,MAAM,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;IAChC,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,qBAAqB,EAAE,CAAC,qBAAqB,CAAC;IAC9C,SAAS,EAAE,CAAC,WAAW,CAAC;IACxB,MAAM,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,oBAAoB,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,aAAa,CAAC;IACrE,mBAAmB,EAAE;QACnB,mBAAmB;QACnB,YAAY;QACZ,QAAQ;QACR,sBAAsB;QACtB,QAAQ;KACT;IACD,YAAY,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,iBAAiB,CAAC;IACpE,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC;IACtC,KAAK,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,CAAC;IAC/E,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;IAChC,qBAAqB,EAAE,CAAC,qBAAqB,EAAE,SAAS,CAAC;IACzD,2BAA2B,EAAE;QAC3B,2BAA2B;QAC3B,wBAAwB;QACxB,YAAY;QACZ,eAAe;KAChB;IACD,iBAAiB,EAAE,CAAC,iBAAiB,EAAE,MAAM,EAAE,WAAW,CAAC;IAC3D,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,aAAa,EAAE,CAAC,aAAa,CAAC;IAC9B,cAAc,EAAE,CAAC,cAAc,CAAC;IAChC,iBAAiB,EAAE,EAAE;CACtB,CAAC;AAEF,MAAM,gCAAgC,GAAG,IAAI,GAAG,CAAS;IACvD,WAAW;IACX,qBAAqB;IACrB,QAAQ;CACT,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAkC;IAClE;QACE,EAAE,EAAE,WAAW;QACf,SAAS,EAAE,mBAAmB;QAC9B,cAAc,EAAE,gBAAgB;QAChC,KAAK,EAAE,kBAAkB;QACzB,gBAAgB,EAAE,kBAAkB;KACrC;IACD;QACE,EAAE,EAAE,SAAS;QACb,SAAS,EAAE,SAAS;QACpB,cAAc,EAAE,qBAAqB;QACrC,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,kDAAkD;KAC1D;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,2BAA2B;QAC3C,KAAK,EAAE,YAAY;KACpB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,SAAS,EAAE,mBAAmB;QAC9B,cAAc,EAAE,4BAA4B;QAC5C,KAAK,EAAE,0BAA0B;QACjC,gBAAgB,EAAE,QAAQ;QAC1B,KAAK,EAAE,kEAAkE;KAC1E;IACD;QACE,EAAE,EAAE,WAAW;QACf,SAAS,EAAE,mBAAmB;QAC9B,cAAc,EAAE,4BAA4B;QAC5C,KAAK,EAAE,kBAAkB;QACzB,gBAAgB,EAAE,WAAW;KAC9B;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,uBAAuB;QACvC,aAAa,EAAE,CAAC,aAAa,EAAE,wBAAwB,CAAC;QACxD,KAAK,EAAE,kBAAkB;KAC1B;IACD;QACE,EAAE,EAAE,WAAW;QACf,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,uBAAuB;QACvC,aAAa,EAAE,CAAC,aAAa,EAAE,wBAAwB,CAAC;QACxD,KAAK,EAAE,YAAY;KACpB;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,SAAS,EAAE,SAAS;QACpB,cAAc,EAAE,uBAAuB;QACvC,aAAa,EAAE,CAAC,aAAa,EAAE,wBAAwB,CAAC;QACxD,KAAK,EAAE,YAAY;KACpB;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,SAAS,EAAE,mBAAmB;QAC9B,cAAc,EAAE,4BAA4B;QAC5C,KAAK,EAAE,YAAY;QACnB,gBAAgB,EAAE,oBAAoB;KACvC;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,SAAS,EAAE,mBAAmB;QAC9B,cAAc,EAAE,4BAA4B;QAC5C,KAAK,EAAE,YAAY;QACnB,gBAAgB,EAAE,YAAY;KAC/B;IACD;QACE,EAAE,EAAE,YAAY;QAChB,SAAS,EAAE,mBAAmB;QAC9B,cAAc,EAAE,4BAA4B;QAC5C,KAAK,EAAE,YAAY;QACnB,gBAAgB,EAAE,wBAAwB;KAC3C;IACD;QACE,EAAE,EAAE,KAAK;QACT,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,uBAAuB;QACvC,aAAa,EAAE,CAAC,aAAa,EAAE,wBAAwB,CAAC;QACxD,KAAK,EAAE,YAAY;KACpB;IACD;QACE,EAAE,EAAE,OAAO;QACX,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,uBAAuB;QACvC,aAAa,EAAE,CAAC,aAAa,EAAE,wBAAwB,CAAC;QACxD,KAAK,EAAE,YAAY;KACpB;IACD;QACE,EAAE,EAAE,SAAS;QACb,SAAS,EAAE,SAAS;QACpB,cAAc,EAAE,uBAAuB;QACvC,aAAa,EAAE,CAAC,aAAa,EAAE,wBAAwB,CAAC;QACxD,KAAK,EAAE,YAAY;KACpB;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,uBAAuB;QACvC,aAAa,EAAE,CAAC,aAAa,EAAE,wBAAwB,CAAC;QACxD,KAAK,EAAE,YAAY;KACpB;IACD;QACE,EAAE,EAAE,2BAA2B;QAC/B,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,uBAAuB;QACvC,aAAa,EAAE,CAAC,aAAa,EAAE,wBAAwB,CAAC;QACxD,KAAK,EAAE,YAAY;KACpB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,uBAAuB;QACvC,aAAa,EAAE,CAAC,aAAa,EAAE,wBAAwB,CAAC;QACxD,KAAK,EAAE,YAAY;KACpB;IACD;QACE,EAAE,EAAE,UAAU;QACd,SAAS,EAAE,KAAK;QAChB,cAAc,EAAE,uBAAuB;QACvC,aAAa,EAAE,CAAC,aAAa,EAAE,wBAAwB,CAAC;QACxD,KAAK,EAAE,YAAY;KACpB;IACD;QACE,EAAE,EAAE,aAAa;QACjB,SAAS,EAAE,mBAAmB;QAC9B,cAAc,EAAE,YAAY;QAC5B,KAAK,EAAE,YAAY;QACnB,gBAAgB,EAAE,aAAa;QAC/B,KAAK,EAAE,wEAAwE;KAChF;IACD;QACE,EAAE,EAAE,cAAc;QAClB,SAAS,EAAE,mBAAmB;QAC9B,cAAc,EAAE,YAAY;QAC5B,KAAK,EAAE,YAAY;QACnB,KAAK,EACH,6HAA6H;KAChI;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,SAAS,EAAE,mBAAmB;QAC9B,cAAc,EAAE,kBAAkB;QAClC,aAAa,EAAE,CAAC,aAAa,EAAE,wBAAwB,CAAC;QACxD,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,qDAAqD;KAC7D;CACF,CAAC;AAEF,MAAM,2BAA2B,GAE7B,MAAM,CAAC,WAAW,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAEhF,MAAM,UAAU,wBAAwB,CAAC,EAAU;IACjD,MAAM,UAAU,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,OAAO,0BAA0B,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAAU;IAC9C,MAAM,UAAU,GAAG,wBAAwB,CAAC,EAAE,CAA6B,CAAC;IAC5E,OAAO,2BAA2B,CAAC,UAAU,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,EAAU;IACrD,MAAM,UAAU,GAAG,wBAAwB,CAAC,EAAE,CAAC,CAAC;IAChD,OAAO,qBAAqB,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,EAAU;IACnD,MAAM,KAAK,GAAG,qBAAqB,CAAC,EAAE,CAAC,CAAC;IACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,0BAA0B,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,EAAU;IACnD,OAAO,gCAAgC,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5E,CAAC"}
@@ -8,6 +8,8 @@
8
8
  */
9
9
  import type { QuotaToastEntry, QuotaToastError, SessionTokensData } from "./entries.js";
10
10
  import type { PercentDisplayMode } from "./types.js";
11
+ export declare const QUOTA_COMMAND_BAR_WIDTH = 10;
12
+ export declare const QUOTA_COMMAND_LABEL_WIDTH = 12;
11
13
  export declare function formatQuotaCommand(params: {
12
14
  entries: QuotaToastEntry[];
13
15
  errors: QuotaToastError[];
@@ -1 +1 @@
1
- {"version":3,"file":"quota-command-format.d.ts","sourceRoot":"","sources":["../../src/lib/quota-command-format.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA0GrD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC,GAAG,MAAM,CAET"}
1
+ {"version":3,"file":"quota-command-format.d.ts","sourceRoot":"","sources":["../../src/lib/quota-command-format.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACxF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAwCrD,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,yBAAyB,KAAK,CAAC;AA0I5C,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;CACzC,GAAG,MAAM,CAET"}
@@ -7,11 +7,11 @@
7
7
  * - Includes session token summary (input/output per model)
8
8
  */
9
9
  import { isValueEntry } from "./entries.js";
10
- import { bar, formatDisplayedPercentLabel, padRight, resolveDisplayedPercent } from "./format-utils.js";
10
+ import { bar, formatDisplayedPercentLabel, formatLocalCallTimestamp, formatTokenCount, padLeft, padRight, resolveDisplayedPercent, } from "./format-utils.js";
11
11
  import { formatGroupedHeader } from "./grouped-header-format.js";
12
12
  import { groupQuotaEntries } from "./grouped-entry-normalization.js";
13
- import { renderPlainTextReport } from "./report-document.js";
14
- import { buildSessionTokenSectionModel } from "./session-tokens-format.js";
13
+ import { renderPlainTextReport, } from "./report-document.js";
14
+ import { SESSION_TOKEN_SECTION_HEADING } from "./session-tokens-format.js";
15
15
  /**
16
16
  * Format reset time in compact form (different from toast countdown).
17
17
  * Uses seconds/minutes/hours/days format for /quota command.
@@ -34,31 +34,80 @@ function formatResetsIn(iso) {
34
34
  if (!Number.isFinite(t))
35
35
  return "";
36
36
  const diffSeconds = (t - Date.now()) / 1000;
37
- return ` (resets in ${formatResetTimeSeconds(diffSeconds)})`;
37
+ return ` · resets in ${formatResetTimeSeconds(diffSeconds)}`;
38
38
  }
39
- function getGroupedLeftText(entry) {
40
- const label = (entry.label ?? entry.name).trim();
39
+ export const QUOTA_COMMAND_BAR_WIDTH = 10;
40
+ export const QUOTA_COMMAND_LABEL_WIDTH = 12;
41
+ function normalizeMetricText(value) {
42
+ return value?.trim().replace(/:+$/u, "").trim() ?? "";
43
+ }
44
+ function getCommandWindowLabel(entry) {
45
+ const text = normalizeMetricText(entry.label || entry.name).toLowerCase();
46
+ if (/\b(?:rpm|per minute|minute|minutes)\b/u.test(text))
47
+ return "RPM";
48
+ if (/\b(?:rolling|5h|5 h|5-hour|5 hour|five-hour|five hour)\b/u.test(text))
49
+ return "5h";
50
+ if (/\b(?:hourly|1h|1 h|1-hour|1 hour|hour)\b/u.test(text))
51
+ return "Hour";
52
+ if (/\b(?:7d|7 d|7-day|7 day|weekly|week)\b/u.test(text))
53
+ return "Week";
54
+ if (/\b(?:daily|1d|1 d|1-day|1 day|day)\b/u.test(text))
55
+ return "Day";
56
+ if (/\b(?:monthly|month)\b/u.test(text))
57
+ return "Month";
58
+ if (/\b(?:yearly|annual|annually|year)\b/u.test(text))
59
+ return "Year";
60
+ return null;
61
+ }
62
+ function getCommandMetricLabel(entry) {
63
+ const window = getCommandWindowLabel(entry);
64
+ const resultType = entry.accounting?.resultType;
65
+ if (resultType === "balance")
66
+ return "Balance";
67
+ if (resultType === "status")
68
+ return "Status";
69
+ const noun = resultType === "budget"
70
+ ? "budget"
71
+ : resultType === "usage"
72
+ ? "usage"
73
+ : resultType === "spend"
74
+ ? "spend"
75
+ : resultType === "quota" || resultType === "rate_limit"
76
+ ? "quota"
77
+ : "";
78
+ if (noun)
79
+ return window ? `${window} ${noun}` : noun[0].toUpperCase() + noun.slice(1);
80
+ if (window)
81
+ return `${window} quota`;
82
+ const explicit = normalizeMetricText(entry.label);
83
+ return explicit || (isValueEntry(entry) ? "Value" : "Quota");
84
+ }
85
+ function formatCommandDetails(entry, rightWidth) {
41
86
  const right = entry.right?.trim();
42
- return right ? `${label} ${right}` : label;
87
+ const reset = formatResetsIn(entry.resetTimeIso).replace(/^ · resets in /u, "reset ");
88
+ if (right && reset)
89
+ return ` · ${padRight(right, rightWidth)} · ${reset}`;
90
+ if (right)
91
+ return ` · ${right}`;
92
+ if (reset)
93
+ return ` · ${reset}`;
94
+ return "";
43
95
  }
44
96
  function buildQuotaCommandDocument(params) {
45
97
  const groups = groupQuotaEntries(params.entries, "quota");
46
- const normalizedEntries = groups.flatMap((group) => group.entries);
47
- const barWidth = 18;
48
- const leftCol = Math.max(16, Math.min(30, normalizedEntries.reduce((max, entry) => Math.max(max, getGroupedLeftText(entry).length), 0)));
49
98
  const sections = groups.map((group, index) => {
50
99
  const lines = [];
100
+ const rightWidth = Math.max(0, ...group.entries.map((row) => row.right?.trim().length ?? 0));
51
101
  for (const row of group.entries) {
52
- const leftText = getGroupedLeftText(row);
53
- const labelCol = padRight(leftText, leftCol);
54
- const suffix = formatResetsIn(row.resetTimeIso);
102
+ const label = padRight(getCommandMetricLabel(row), QUOTA_COMMAND_LABEL_WIDTH);
103
+ const details = formatCommandDetails(row, rightWidth);
55
104
  if (isValueEntry(row)) {
56
- lines.push(` ${labelCol} ${row.value}${suffix}`);
105
+ lines.push(` ${label} ${row.value}${details}`);
57
106
  continue;
58
107
  }
59
- const pct = resolveDisplayedPercent(row.percentRemaining, params.percentDisplayMode);
60
108
  const pctLabel = formatDisplayedPercentLabel(row.percentRemaining, params.percentDisplayMode);
61
- lines.push(` ${labelCol} ${bar(pct, barWidth)} ${pctLabel}${suffix}`);
109
+ const displayedPercent = resolveDisplayedPercent(row.percentRemaining, params.percentDisplayMode);
110
+ lines.push(` ${label} ${bar(displayedPercent, QUOTA_COMMAND_BAR_WIDTH)} ${padLeft(pctLabel, 9)}${details}`);
62
111
  }
63
112
  return {
64
113
  id: `group-${index}`,
@@ -66,31 +115,50 @@ function buildQuotaCommandDocument(params) {
66
115
  blocks: [{ kind: "lines", lines }],
67
116
  };
68
117
  });
69
- const tokenSection = buildSessionTokenSectionModel(params.sessionTokens);
70
- if (tokenSection) {
118
+ if (params.sessionTokens && params.sessionTokens.models.length > 0) {
71
119
  sections.push({
72
120
  id: "session-tokens",
73
- title: tokenSection.heading,
74
- blocks: [{ kind: "lines", lines: tokenSection.lines }],
121
+ title: SESSION_TOKEN_SECTION_HEADING,
122
+ blocks: [
123
+ {
124
+ kind: "lines",
125
+ lines: params.sessionTokens.models.map((model) => {
126
+ const metrics = [`${formatTokenCount(model.input)} in`];
127
+ if ((model.cachedInput ?? 0) > 0) {
128
+ metrics.push(`${formatTokenCount(model.cachedInput ?? 0)} cached`);
129
+ }
130
+ metrics.push(`${formatTokenCount(model.output)} out`);
131
+ return ` ${model.modelID}: ${metrics.join(" · ")}`;
132
+ }),
133
+ },
134
+ ],
75
135
  });
76
136
  }
77
137
  if (params.errors.length > 0) {
78
138
  sections.push({
79
139
  id: "errors",
140
+ title: "Partial failures",
80
141
  blocks: [
81
142
  {
82
143
  kind: "lines",
83
- lines: params.errors.map((err) => `${err.label}: ${err.message}`),
144
+ lines: params.errors.map((err) => ` ${err.label}: ${err.message}`),
84
145
  },
85
146
  ],
86
147
  });
87
148
  }
88
149
  return {
89
- heading: {
90
- title: "Quota (/quota)",
91
- generatedAtMs: params.generatedAtMs,
92
- },
93
- sections,
150
+ sections: [
151
+ {
152
+ id: "heading",
153
+ blocks: [
154
+ {
155
+ kind: "lines",
156
+ lines: [`Quota (/quota) ${formatLocalCallTimestamp(params.generatedAtMs)}`],
157
+ },
158
+ ],
159
+ },
160
+ ...sections,
161
+ ],
94
162
  };
95
163
  }
96
164
  export function formatQuotaCommand(params) {
@@ -1 +1 @@
1
- {"version":3,"file":"quota-command-format.js","sourceRoot":"","sources":["../../src/lib/quota-command-format.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"quota-command-format.js","sourceRoot":"","sources":["../../src/lib/quota-command-format.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"quota-dialog-commands.d.ts","sourceRoot":"","sources":["../../src/lib/quota-dialog-commands.ts"],"names":[],"mappings":"AAQA,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AA4BnF,OAAO,EAQL,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAIL,KAAK,kBAAkB,EAExB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAMtE,MAAM,MAAM,oBAAoB,GAC5B,OAAO,GACP,cAAc,GACd,qBAAqB,GACrB,iBAAiB,GACjB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,oBAAoB,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,8BAA8B,GACtC;IACE,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;CAC3C,GACD;IACE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,oBAAoB,CAAC;IAC9B,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEN,KAAK,oBAAoB,GACrB,cAAc,GACd,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,YAAY,GACZ,gBAAgB,GAChB,oBAAoB,GACpB,gBAAgB,CAAC;AAgHrB,eAAO,MAAM,qBAAqB,EAAE,SAAS,sBAAsB,EA2CzD,CAAC;AAWX,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,IAAI,oBAAoB,CAErF;AAshBD,wBAAsB,6BAA6B,CAAC,MAAM,EAAE;IAC1D,OAAO,EAAE,oBAAoB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,uBAAuB,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,iBAAiB,CAAC;IAC1C,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,KAAK,IAAI,CAAC;IAC1E,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAsH1C"}
1
+ {"version":3,"file":"quota-dialog-commands.d.ts","sourceRoot":"","sources":["../../src/lib/quota-dialog-commands.ts"],"names":[],"mappings":"AAQA,OAAO,EAA0B,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AA4BnF,OAAO,EAQL,KAAK,gBAAgB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAIL,KAAK,kBAAkB,EAExB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAMtE,MAAM,MAAM,oBAAoB,GAC5B,OAAO,GACP,cAAc,GACd,qBAAqB,GACrB,iBAAiB,GACjB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,oBAAoB,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,8BAA8B,GACtC;IACE,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,oBAAoB,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;CAC3C,GACD;IACE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,oBAAoB,CAAC;IAC9B,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEN,KAAK,oBAAoB,GACrB,cAAc,GACd,cAAc,GACd,eAAe,GACf,gBAAgB,GAChB,YAAY,GACZ,gBAAgB,GAChB,oBAAoB,GACpB,gBAAgB,CAAC;AAgHrB,eAAO,MAAM,qBAAqB,EAAE,SAAS,sBAAsB,EA6CzD,CAAC;AAWX,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,IAAI,oBAAoB,CAErF;AAwhBD,wBAAsB,6BAA6B,CAAC,MAAM,EAAE;IAC1D,OAAO,EAAE,oBAAoB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,KAAK,EAAE,uBAAuB,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,qBAAqB,CAAC,EAAE,iBAAiB,CAAC;IAC1C,wBAAwB,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,GAAG,SAAS,KAAK,IAAI,CAAC;IAC1E,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAwH1C"}
@@ -194,11 +194,11 @@ async function buildQuotaCommandUnavailableMessage(runtime) {
194
194
  currentProviderID: selection.currentProviderID,
195
195
  })}`
196
196
  : "";
197
- return (`Quota unavailable\n\nNo quota providers detected${scopedDetail}. ` +
197
+ return (`Quota unavailable\n\nNo provider data available${scopedDetail}. ` +
198
198
  "Make sure you are logged in to a supported provider (Copilot, OpenAI, etc.).\n\n" +
199
199
  "Run /quota_status for diagnostics.");
200
200
  }
201
- return (`Quota unavailable\n\nProviders detected (${availableIds.join(", ")}) but returned no data. ` +
201
+ return (`Quota unavailable\n\nNo provider data available for detected providers (${availableIds.join(", ")}). ` +
202
202
  "This may be a temporary API error.\n\n" +
203
203
  "Run /quota_status for diagnostics.");
204
204
  }
@@ -309,6 +309,8 @@ async function buildStatusReport(params) {
309
309
  provider: p,
310
310
  currentModel,
311
311
  currentProviderID,
312
+ enabledProviders: runtimeConfig.enabledProviders,
313
+ quotaProviders: runtimeConfig.quotaProviders,
312
314
  })
313
315
  : undefined,
314
316
  };
@@ -360,7 +362,6 @@ async function buildStatusReport(params) {
360
362
  configIssues: params.runtime.configMeta.configIssues,
361
363
  enabledProviders: runtimeConfig.enabledProviders,
362
364
  anthropicBinaryPath: runtimeConfig.anthropicBinaryPath,
363
- alibabaCodingPlanTier: runtimeConfig.alibabaCodingPlanTier,
364
365
  cursorPlan: runtimeConfig.cursorPlan,
365
366
  cursorIncludedApiUsd: runtimeConfig.cursorIncludedApiUsd,
366
367
  cursorBillingCycleStartDay: runtimeConfig.cursorBillingCycleStartDay,
@@ -371,6 +372,7 @@ async function buildStatusReport(params) {
371
372
  sessionModelLookup,
372
373
  providerAvailability: availability,
373
374
  providerLiveProbes,
375
+ quotaProviders: runtimeConfig.quotaProviders,
374
376
  googleRefresh: refresh
375
377
  ? {
376
378
  attempted: true,
@@ -621,7 +623,9 @@ export async function buildQuotaDialogCommandOutput(params) {
621
623
  lastSessionTokenError: params.lastSessionTokenError,
622
624
  log: params.log,
623
625
  });
624
- return output ? outputResult({ command: params.command, output }) : { state: "noop", command: params.command, reason: "disabled" };
626
+ return output
627
+ ? outputResult({ command: params.command, output })
628
+ : { state: "noop", command: params.command, reason: "disabled" };
625
629
  }
626
630
  if (params.command === "quota_announcements") {
627
631
  if ((params.arguments ?? "").trim()) {