@slkiser/opencode-quota 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +102 -46
  2. package/dist/lib/command-handled.d.ts +4 -0
  3. package/dist/lib/command-handled.d.ts.map +1 -1
  4. package/dist/lib/command-handled.js +6 -0
  5. package/dist/lib/command-handled.js.map +1 -1
  6. package/dist/lib/config.d.ts.map +1 -1
  7. package/dist/lib/config.js +2 -0
  8. package/dist/lib/config.js.map +1 -1
  9. package/dist/lib/copilot.d.ts.map +1 -1
  10. package/dist/lib/copilot.js +105 -18
  11. package/dist/lib/copilot.js.map +1 -1
  12. package/dist/lib/entries.d.ts +2 -0
  13. package/dist/lib/entries.d.ts.map +1 -1
  14. package/dist/lib/google.d.ts.map +1 -1
  15. package/dist/lib/google.js +7 -2
  16. package/dist/lib/google.js.map +1 -1
  17. package/dist/lib/modelsdev-pricing.d.ts +4 -0
  18. package/dist/lib/modelsdev-pricing.d.ts.map +1 -1
  19. package/dist/lib/modelsdev-pricing.js +14 -1
  20. package/dist/lib/modelsdev-pricing.js.map +1 -1
  21. package/dist/lib/opencode-auth.d.ts +9 -0
  22. package/dist/lib/opencode-auth.d.ts.map +1 -1
  23. package/dist/lib/opencode-auth.js +38 -0
  24. package/dist/lib/opencode-auth.js.map +1 -1
  25. package/dist/lib/provider-availability.d.ts +7 -0
  26. package/dist/lib/provider-availability.d.ts.map +1 -0
  27. package/dist/lib/provider-availability.js +12 -0
  28. package/dist/lib/provider-availability.js.map +1 -0
  29. package/dist/lib/quota-stats-format.d.ts.map +1 -1
  30. package/dist/lib/quota-stats-format.js +9 -1
  31. package/dist/lib/quota-stats-format.js.map +1 -1
  32. package/dist/lib/quota-stats.d.ts +15 -0
  33. package/dist/lib/quota-stats.d.ts.map +1 -1
  34. package/dist/lib/quota-stats.js +168 -73
  35. package/dist/lib/quota-stats.js.map +1 -1
  36. package/dist/lib/quota-status.d.ts.map +1 -1
  37. package/dist/lib/quota-status.js +34 -3
  38. package/dist/lib/quota-status.js.map +1 -1
  39. package/dist/lib/qwen-auth.d.ts +8 -0
  40. package/dist/lib/qwen-auth.d.ts.map +1 -0
  41. package/dist/lib/qwen-auth.js +19 -0
  42. package/dist/lib/qwen-auth.js.map +1 -0
  43. package/dist/lib/qwen-local-quota.d.ts +35 -0
  44. package/dist/lib/qwen-local-quota.d.ts.map +1 -0
  45. package/dist/lib/qwen-local-quota.js +162 -0
  46. package/dist/lib/qwen-local-quota.js.map +1 -0
  47. package/dist/lib/types.d.ts +62 -2
  48. package/dist/lib/types.d.ts.map +1 -1
  49. package/dist/lib/types.js +2 -2
  50. package/dist/lib/types.js.map +1 -1
  51. package/dist/lib/zai.d.ts +9 -0
  52. package/dist/lib/zai.d.ts.map +1 -0
  53. package/dist/lib/zai.js +86 -0
  54. package/dist/lib/zai.js.map +1 -0
  55. package/dist/plugin.d.ts.map +1 -1
  56. package/dist/plugin.js +282 -127
  57. package/dist/plugin.js.map +1 -1
  58. package/dist/providers/openai.d.ts.map +1 -1
  59. package/dist/providers/openai.js +7 -10
  60. package/dist/providers/openai.js.map +1 -1
  61. package/dist/providers/qwen-code.d.ts +3 -0
  62. package/dist/providers/qwen-code.d.ts.map +1 -0
  63. package/dist/providers/qwen-code.js +59 -0
  64. package/dist/providers/qwen-code.js.map +1 -0
  65. package/dist/providers/registry.d.ts.map +1 -1
  66. package/dist/providers/registry.js +4 -0
  67. package/dist/providers/registry.js.map +1 -1
  68. package/dist/providers/zai.d.ts +8 -0
  69. package/dist/providers/zai.d.ts.map +1 -0
  70. package/dist/providers/zai.js +112 -0
  71. package/dist/providers/zai.js.map +1 -0
  72. package/package.json +1 -1
package/dist/plugin.js CHANGED
@@ -17,8 +17,10 @@ import { fetchSessionTokensForDisplay } from "./lib/session-tokens.js";
17
17
  import { formatQuotaStatsReport } from "./lib/quota-stats-format.js";
18
18
  import { buildQuotaStatusReport } from "./lib/quota-status.js";
19
19
  import { refreshGoogleTokensForAllAccounts } from "./lib/google.js";
20
+ import { hasQwenOAuthAuthCached, isQwenCodeModelId } from "./lib/qwen-auth.js";
21
+ import { recordQwenCompletion } from "./lib/qwen-local-quota.js";
20
22
  import { parseOptionalJsonArgs, parseQuotaBetweenArgs, startOfLocalDayMs, startOfNextLocalDayMs, formatYmd, } from "./lib/command-parsing.js";
21
- import { handled } from "./lib/command-handled.js";
23
+ import { handled, isCommandHandledError } from "./lib/command-handled.js";
22
24
  /** All token report command specifications */
23
25
  const TOKEN_REPORT_COMMANDS = [
24
26
  {
@@ -105,6 +107,8 @@ function isTokenReportCommand(cmd) {
105
107
  */
106
108
  export const QuotaToastPlugin = async ({ client }) => {
107
109
  const typedClient = client;
110
+ const TOOL_FAILURE_STATUSES = new Set(["error", "failed", "failure", "cancelled", "canceled"]);
111
+ const TOOL_SUCCESS_STATUSES = new Set(["success", "ok", "completed", "complete"]);
108
112
  function getProviderDisplayLabel(id) {
109
113
  switch (id) {
110
114
  case "openai":
@@ -117,6 +121,10 @@ export const QuotaToastPlugin = async ({ client }) => {
117
121
  return "Firmware";
118
122
  case "chutes":
119
123
  return "Chutes";
124
+ case "qwen-code":
125
+ return "Qwen";
126
+ case "zai":
127
+ return "Z.ai";
120
128
  default:
121
129
  return id;
122
130
  }
@@ -157,6 +165,104 @@ export const QuotaToastPlugin = async ({ client }) => {
157
165
  let configMeta = createLoadConfigMeta();
158
166
  // Track last session token error for /quota_status diagnostics
159
167
  let lastSessionTokenError;
168
+ const providerFetchCache = new Map();
169
+ function asRecord(value) {
170
+ return value && typeof value === "object" ? value : null;
171
+ }
172
+ function evaluateToolOutcome(candidate) {
173
+ if (typeof candidate.ok === "boolean")
174
+ return candidate.ok;
175
+ if (typeof candidate.success === "boolean")
176
+ return candidate.success;
177
+ const statusRaw = candidate.status;
178
+ if (typeof statusRaw === "string") {
179
+ const status = statusRaw.toLowerCase();
180
+ if (TOOL_FAILURE_STATUSES.has(status))
181
+ return false;
182
+ if (TOOL_SUCCESS_STATUSES.has(status))
183
+ return true;
184
+ }
185
+ if (candidate.error !== undefined && candidate.error !== null)
186
+ return false;
187
+ const exitCode = candidate.exitCode;
188
+ if (typeof exitCode === "number" && Number.isFinite(exitCode)) {
189
+ return exitCode === 0;
190
+ }
191
+ return null;
192
+ }
193
+ function isSuccessfulQuestionExecution(output) {
194
+ const metadata = asRecord(output.metadata);
195
+ const metadataOutcome = metadata ? evaluateToolOutcome(metadata) : null;
196
+ if (metadataOutcome !== null)
197
+ return metadataOutcome;
198
+ const result = metadata ? asRecord(metadata.result) : null;
199
+ const resultOutcome = result ? evaluateToolOutcome(result) : null;
200
+ if (resultOutcome !== null)
201
+ return resultOutcome;
202
+ // Fallback: keep behavior permissive if runtime omits explicit success state.
203
+ const title = output.title.trim().toLowerCase();
204
+ if (title.startsWith("error") || title.includes("failed"))
205
+ return false;
206
+ return true;
207
+ }
208
+ function makeProviderFetchCacheKey(providerId, ctx) {
209
+ const style = ctx.config.toastStyle ?? "classic";
210
+ const googleModels = ctx.config.googleModels.join(",");
211
+ const onlyCurrentModel = ctx.config.onlyCurrentModel ? "yes" : "no";
212
+ const currentModel = ctx.config.currentModel ?? "";
213
+ return `${providerId}|style=${style}|googleModels=${googleModels}|onlyCurrentModel=${onlyCurrentModel}|currentModel=${currentModel}`;
214
+ }
215
+ async function fetchProviderWithCache(params) {
216
+ const { provider, ctx, ttlMs } = params;
217
+ // Qwen is local-only and should update per completion for accurate RPM.
218
+ if (provider.id === "qwen-code") {
219
+ return await provider.fetch(ctx);
220
+ }
221
+ const cacheKey = makeProviderFetchCacheKey(provider.id, ctx);
222
+ const now = Date.now();
223
+ const existing = providerFetchCache.get(cacheKey);
224
+ if (existing?.result &&
225
+ existing.timestamp > 0 &&
226
+ ttlMs > 0 &&
227
+ now - existing.timestamp < ttlMs) {
228
+ return existing.result;
229
+ }
230
+ if (existing?.inFlight) {
231
+ return existing.inFlight;
232
+ }
233
+ const promise = (async () => {
234
+ try {
235
+ const result = await provider.fetch(ctx);
236
+ if (result.attempted) {
237
+ providerFetchCache.set(cacheKey, { timestamp: Date.now(), result });
238
+ }
239
+ else {
240
+ providerFetchCache.delete(cacheKey);
241
+ }
242
+ return result;
243
+ }
244
+ catch (err) {
245
+ providerFetchCache.delete(cacheKey);
246
+ throw err;
247
+ }
248
+ })();
249
+ providerFetchCache.set(cacheKey, {
250
+ timestamp: existing?.timestamp ?? 0,
251
+ result: existing?.result,
252
+ inFlight: promise,
253
+ });
254
+ return promise;
255
+ }
256
+ async function shouldBypassToastCacheForQwen(trigger, sessionID) {
257
+ if (trigger !== "question")
258
+ return false;
259
+ if (config.enabledProviders !== "auto" && !config.enabledProviders.includes("qwen-code"))
260
+ return false;
261
+ const currentModel = await getCurrentModel(sessionID);
262
+ if (!isQwenCodeModelId(currentModel))
263
+ return false;
264
+ return await hasQwenOAuthAuthCached();
265
+ }
160
266
  async function refreshConfig() {
161
267
  if (configInFlight)
162
268
  return configInFlight;
@@ -309,6 +415,8 @@ export const QuotaToastPlugin = async ({ client }) => {
309
415
  config: {
310
416
  googleModels: config.googleModels,
311
417
  toastStyle: config.toastStyle,
418
+ onlyCurrentModel: config.onlyCurrentModel,
419
+ currentModel,
312
420
  },
313
421
  };
314
422
  const filtered = config.onlyCurrentModel && currentModel
@@ -328,7 +436,11 @@ export const QuotaToastPlugin = async ({ client }) => {
328
436
  })
329
437
  : null;
330
438
  }
331
- const results = await Promise.all(active.map((p) => p.fetch(ctx)));
439
+ const results = await Promise.all(active.map((p) => fetchProviderWithCache({
440
+ provider: p,
441
+ ctx,
442
+ ttlMs: config.minIntervalMs,
443
+ })));
332
444
  const entries = results.flatMap((r) => r.entries);
333
445
  const errors = results.flatMap((r) => r.errors);
334
446
  const attemptedAny = results.some((r) => r.attempted);
@@ -433,6 +545,9 @@ export const QuotaToastPlugin = async ({ client }) => {
433
545
  * Show quota toast for a session
434
546
  */
435
547
  async function showQuotaToast(sessionID, trigger) {
548
+ if (!configLoaded) {
549
+ await refreshConfig();
550
+ }
436
551
  // Check if subagent session
437
552
  if (await isSubagentSession(sessionID)) {
438
553
  await log("Skipping toast for subagent session", { sessionID, trigger });
@@ -446,7 +561,10 @@ export const QuotaToastPlugin = async ({ client }) => {
446
561
  const lines = msg.split("\n");
447
562
  return lines.some((l) => /\b\d{1,3}%\b/.test(l) && !/:\s/.test(l));
448
563
  }
449
- const message = config.debug
564
+ const bypassMessageCache = config.debug
565
+ ? true
566
+ : await shouldBypassToastCacheForQwen(trigger, sessionID);
567
+ const message = bypassMessageCache
450
568
  ? await fetchQuotaMessage(trigger, sessionID)
451
569
  : await getOrFetchWithCacheControl(async () => {
452
570
  const msg = await fetchQuotaMessage(trigger, sessionID);
@@ -490,19 +608,29 @@ export const QuotaToastPlugin = async ({ client }) => {
490
608
  : allProviders.filter((p) => config.enabledProviders.includes(p.id));
491
609
  if (!isAutoMode && providers.length === 0)
492
610
  return null;
611
+ let currentModel;
612
+ if (config.onlyCurrentModel && sessionID) {
613
+ currentModel = await getCurrentModel(sessionID);
614
+ }
493
615
  const ctx = {
494
616
  client: typedClient,
495
617
  config: {
496
618
  googleModels: config.googleModels,
497
619
  // Always format /quota in grouped mode for a more dashboard-like look.
498
620
  toastStyle: "grouped",
621
+ onlyCurrentModel: config.onlyCurrentModel,
622
+ currentModel,
499
623
  },
500
624
  };
501
625
  const avail = await Promise.all(providers.map(async (p) => ({ p, ok: await p.isAvailable(ctx) })));
502
626
  const active = avail.filter((x) => x.ok).map((x) => x.p);
503
627
  if (active.length === 0)
504
628
  return null;
505
- const results = await Promise.all(active.map((p) => p.fetch(ctx)));
629
+ const results = await Promise.all(active.map((p) => fetchProviderWithCache({
630
+ provider: p,
631
+ ctx,
632
+ ttlMs: config.minIntervalMs,
633
+ })));
506
634
  const entries = results.flatMap((r) => r.entries);
507
635
  const errors = results.flatMap((r) => r.errors);
508
636
  if (entries.length === 0)
@@ -612,147 +740,154 @@ export const QuotaToastPlugin = async ({ client }) => {
612
740
  }
613
741
  },
614
742
  "command.execute.before": async (input) => {
615
- const cmd = input.command;
616
- const sessionID = input.sessionID;
617
- if (cmd === "quota") {
618
- // Separate cache for /quota so it doesn't pollute the toast cache.
619
- let quotaCache = globalThis.__opencodeQuotaCommandCache;
620
- if (!quotaCache) {
621
- quotaCache = { message: "", timestamp: 0 };
622
- globalThis.__opencodeQuotaCommandCache = quotaCache;
623
- }
624
- const now = Date.now();
625
- const cached = quotaCache.timestamp && now - quotaCache.timestamp < config.minIntervalMs
626
- ? quotaCache.message
627
- : null;
628
- const msg = cached
629
- ? cached
630
- : await (quotaCache.inFlight ??
631
- (quotaCache.inFlight = (async () => {
632
- try {
633
- return await fetchQuotaCommandMessage("command:/quota", sessionID);
634
- }
635
- finally {
636
- quotaCache.inFlight = undefined;
637
- }
638
- })()));
639
- if (msg) {
640
- quotaCache.message = msg;
641
- quotaCache.timestamp = Date.now();
642
- }
643
- if (!msg) {
644
- // Provide an actionable message instead of a generic "unavailable".
645
- if (!configLoaded) {
646
- await injectRawOutput(sessionID, "Quota unavailable (config not loaded, try again)");
743
+ try {
744
+ const cmd = input.command;
745
+ const sessionID = input.sessionID;
746
+ if (cmd === "quota") {
747
+ // Separate cache for /quota so it doesn't pollute the toast cache.
748
+ let quotaCache = globalThis.__opencodeQuotaCommandCache;
749
+ if (!quotaCache) {
750
+ quotaCache = { message: "", timestamp: 0 };
751
+ globalThis.__opencodeQuotaCommandCache = quotaCache;
647
752
  }
648
- else if (!config.enabled) {
649
- await injectRawOutput(sessionID, "Quota disabled in config (enabled: false)");
753
+ const now = Date.now();
754
+ const cached = quotaCache.timestamp && now - quotaCache.timestamp < config.minIntervalMs
755
+ ? quotaCache.message
756
+ : null;
757
+ const msg = cached
758
+ ? cached
759
+ : await (quotaCache.inFlight ??
760
+ (quotaCache.inFlight = (async () => {
761
+ try {
762
+ return await fetchQuotaCommandMessage("command:/quota", sessionID);
763
+ }
764
+ finally {
765
+ quotaCache.inFlight = undefined;
766
+ }
767
+ })()));
768
+ if (msg) {
769
+ quotaCache.message = msg;
770
+ quotaCache.timestamp = Date.now();
650
771
  }
651
- else {
652
- // Check what providers are available for a more specific hint.
653
- const allProvs = getProviders();
654
- const ctx = {
655
- client: typedClient,
656
- config: { googleModels: config.googleModels },
657
- };
658
- const avail = await Promise.all(allProvs.map(async (p) => {
659
- try {
660
- return { id: p.id, ok: await p.isAvailable(ctx) };
661
- }
662
- catch {
663
- return { id: p.id, ok: false };
664
- }
665
- }));
666
- const availableIds = avail.filter((x) => x.ok).map((x) => x.id);
667
- if (availableIds.length === 0) {
668
- await injectRawOutput(sessionID, "Quota unavailable\n\nNo quota providers detected. Make sure you are logged in to a supported provider (Copilot, OpenAI, etc.).\n\nRun /quota_status for diagnostics.");
772
+ if (!msg) {
773
+ // Provide an actionable message instead of a generic "unavailable".
774
+ if (!configLoaded) {
775
+ await injectRawOutput(sessionID, "Quota unavailable (config not loaded, try again)");
776
+ }
777
+ else if (!config.enabled) {
778
+ await injectRawOutput(sessionID, "Quota disabled in config (enabled: false)");
669
779
  }
670
780
  else {
671
- await injectRawOutput(sessionID, `Quota unavailable\n\nProviders detected (${availableIds.join(", ")}) but returned no data. This may be a temporary API error.\n\nRun /quota_status for diagnostics.`);
781
+ // Check what providers are available for a more specific hint.
782
+ const allProvs = getProviders();
783
+ const ctx = {
784
+ client: typedClient,
785
+ config: { googleModels: config.googleModels },
786
+ };
787
+ const avail = await Promise.all(allProvs.map(async (p) => {
788
+ try {
789
+ return { id: p.id, ok: await p.isAvailable(ctx) };
790
+ }
791
+ catch {
792
+ return { id: p.id, ok: false };
793
+ }
794
+ }));
795
+ const availableIds = avail.filter((x) => x.ok).map((x) => x.id);
796
+ if (availableIds.length === 0) {
797
+ await injectRawOutput(sessionID, "Quota unavailable\n\nNo quota providers detected. Make sure you are logged in to a supported provider (Copilot, OpenAI, etc.).\n\nRun /quota_status for diagnostics.");
798
+ }
799
+ else {
800
+ await injectRawOutput(sessionID, `Quota unavailable\n\nProviders detected (${availableIds.join(", ")}) but returned no data. This may be a temporary API error.\n\nRun /quota_status for diagnostics.`);
801
+ }
672
802
  }
803
+ handled();
673
804
  }
805
+ await injectRawOutput(sessionID, msg);
674
806
  handled();
675
807
  }
676
- await injectRawOutput(sessionID, msg);
677
- handled();
678
- }
679
- const untilMs = Date.now();
680
- // Handle token report commands (/tokens_*)
681
- if (isTokenReportCommand(cmd)) {
682
- const spec = TOKEN_REPORT_COMMANDS_BY_ID.get(cmd);
683
- if (spec.kind === "between") {
684
- // Special handling for date range command
685
- const parsed = parseQuotaBetweenArgs(input.arguments);
686
- if (!parsed.ok) {
687
- await injectRawOutput(sessionID, `Invalid arguments for /${spec.id}\n\n${parsed.error}\n\nExpected: /${spec.id} YYYY-MM-DD YYYY-MM-DD\nExample: /${spec.id} 2026-01-01 2026-01-15`);
808
+ const untilMs = Date.now();
809
+ // Handle token report commands (/tokens_*)
810
+ if (isTokenReportCommand(cmd)) {
811
+ const spec = TOKEN_REPORT_COMMANDS_BY_ID.get(cmd);
812
+ if (spec.kind === "between") {
813
+ // Special handling for date range command
814
+ const parsed = parseQuotaBetweenArgs(input.arguments);
815
+ if (!parsed.ok) {
816
+ await injectRawOutput(sessionID, `Invalid arguments for /${spec.id}\n\n${parsed.error}\n\nExpected: /${spec.id} YYYY-MM-DD YYYY-MM-DD\nExample: /${spec.id} 2026-01-01 2026-01-15`);
817
+ handled();
818
+ }
819
+ const sinceMs = startOfLocalDayMs(parsed.startYmd);
820
+ const rangeUntilMs = startOfNextLocalDayMs(parsed.endYmd); // Exclusive upper bound for inclusive end date
821
+ const out = await buildQuotaReport({
822
+ title: spec.titleForRange(parsed.startYmd, parsed.endYmd),
823
+ sinceMs,
824
+ untilMs: rangeUntilMs,
825
+ sessionID,
826
+ });
827
+ await injectRawOutput(sessionID, out);
688
828
  handled();
689
829
  }
690
- const sinceMs = startOfLocalDayMs(parsed.startYmd);
691
- const rangeUntilMs = startOfNextLocalDayMs(parsed.endYmd); // Exclusive upper bound for inclusive end date
830
+ // Non-between token report commands
831
+ let sinceMs;
832
+ let filterSessionID;
833
+ let sessionOnly;
834
+ let topModels;
835
+ let topSessions;
836
+ switch (spec.kind) {
837
+ case "rolling":
838
+ sinceMs = untilMs - spec.windowMs;
839
+ break;
840
+ case "today": {
841
+ const now = new Date();
842
+ const startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate());
843
+ sinceMs = startOfDay.getTime();
844
+ break;
845
+ }
846
+ case "session":
847
+ filterSessionID = sessionID;
848
+ sessionOnly = true;
849
+ break;
850
+ case "all":
851
+ topModels = spec.topModels;
852
+ topSessions = spec.topSessions;
853
+ break;
854
+ }
692
855
  const out = await buildQuotaReport({
693
- title: spec.titleForRange(parsed.startYmd, parsed.endYmd),
856
+ title: spec.title,
694
857
  sinceMs,
695
- untilMs: rangeUntilMs,
858
+ untilMs: spec.kind === "rolling" || spec.kind === "today" ? untilMs : undefined,
696
859
  sessionID,
860
+ filterSessionID,
861
+ sessionOnly,
862
+ topModels,
863
+ topSessions,
697
864
  });
698
865
  await injectRawOutput(sessionID, out);
699
866
  handled();
700
867
  }
701
- // Non-between token report commands
702
- let sinceMs;
703
- let filterSessionID;
704
- let sessionOnly;
705
- let topModels;
706
- let topSessions;
707
- switch (spec.kind) {
708
- case "rolling":
709
- sinceMs = untilMs - spec.windowMs;
710
- break;
711
- case "today": {
712
- const now = new Date();
713
- const startOfDay = new Date(now.getFullYear(), now.getMonth(), now.getDate());
714
- sinceMs = startOfDay.getTime();
715
- break;
868
+ // Handle /quota_status (diagnostics - not a token report)
869
+ if (cmd === "quota_status") {
870
+ const parsed = parseOptionalJsonArgs(input.arguments);
871
+ if (!parsed.ok) {
872
+ await injectRawOutput(sessionID, `Invalid arguments for /quota_status\n\n${parsed.error}\n\nExample:\n/quota_status {"refreshGoogleTokens": true}`);
873
+ handled();
716
874
  }
717
- case "session":
718
- filterSessionID = sessionID;
719
- sessionOnly = true;
720
- break;
721
- case "all":
722
- topModels = spec.topModels;
723
- topSessions = spec.topSessions;
724
- break;
725
- }
726
- const out = await buildQuotaReport({
727
- title: spec.title,
728
- sinceMs,
729
- untilMs: spec.kind === "rolling" || spec.kind === "today" ? untilMs : undefined,
730
- sessionID,
731
- filterSessionID,
732
- sessionOnly,
733
- topModels,
734
- topSessions,
735
- });
736
- await injectRawOutput(sessionID, out);
737
- handled();
738
- }
739
- // Handle /quota_status (diagnostics - not a token report)
740
- if (cmd === "quota_status") {
741
- const parsed = parseOptionalJsonArgs(input.arguments);
742
- if (!parsed.ok) {
743
- await injectRawOutput(sessionID, `Invalid arguments for /quota_status\n\n${parsed.error}\n\nExample:\n/quota_status {"refreshGoogleTokens": true}`);
875
+ const out = await buildStatusReport({
876
+ refreshGoogleTokens: parsed.value["refreshGoogleTokens"] === true,
877
+ skewMs: typeof parsed.value["skewMs"] === "number"
878
+ ? parsed.value["skewMs"]
879
+ : undefined,
880
+ force: parsed.value["force"] === true,
881
+ sessionID,
882
+ });
883
+ await injectRawOutput(sessionID, out);
744
884
  handled();
745
885
  }
746
- const out = await buildStatusReport({
747
- refreshGoogleTokens: parsed.value["refreshGoogleTokens"] === true,
748
- skewMs: typeof parsed.value["skewMs"] === "number"
749
- ? parsed.value["skewMs"]
750
- : undefined,
751
- force: parsed.value["force"] === true,
752
- sessionID,
753
- });
754
- await injectRawOutput(sessionID, out);
755
- handled();
886
+ }
887
+ catch (err) {
888
+ if (isCommandHandledError(err))
889
+ return;
890
+ throw err;
756
891
  }
757
892
  },
758
893
  tool: {
@@ -800,8 +935,28 @@ export const QuotaToastPlugin = async ({ client }) => {
800
935
  }
801
936
  },
802
937
  // Tool execute hook for question tool
803
- "tool.execute.after": async (input) => {
804
- if (input.tool === "question" && config.showOnQuestion) {
938
+ "tool.execute.after": async (input, output) => {
939
+ if (input.tool !== "question")
940
+ return;
941
+ if (!configLoaded) {
942
+ await refreshConfig();
943
+ }
944
+ if (!config.enabled)
945
+ return;
946
+ if (isSuccessfulQuestionExecution(output)) {
947
+ const model = await getCurrentModel(input.sessionID);
948
+ if (isQwenCodeModelId(model) && (await hasQwenOAuthAuthCached())) {
949
+ try {
950
+ await recordQwenCompletion();
951
+ }
952
+ catch (err) {
953
+ await log("Failed to record Qwen local quota completion", {
954
+ error: err instanceof Error ? err.message : String(err),
955
+ });
956
+ }
957
+ }
958
+ }
959
+ if (config.showOnQuestion) {
805
960
  await showQuotaToast(input.sessionID, "question");
806
961
  }
807
962
  },
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}