@ravshansbox/pi-quota 0.10.5 → 0.10.7

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 (2) hide show
  1. package/index.ts +11 -3
  2. package/package.json +1 -1
package/index.ts CHANGED
@@ -17,6 +17,7 @@ interface QuotaState {
17
17
  fiveHourReset: Date | null;
18
18
  sevenDayUsed: number | null;
19
19
  sevenDayReset: Date | null;
20
+ sevenDayExhausted: boolean;
20
21
  resetsAvailable: number;
21
22
  resetSoonestExpiry: Date | null;
22
23
  lastUpdated: Date;
@@ -132,6 +133,7 @@ function parseAnthropicHeaders(headers: Record<string, string>): QuotaState | nu
132
133
  fiveHourReset: fiveHour.reset,
133
134
  sevenDayUsed: sevenDay.used,
134
135
  sevenDayReset: sevenDay.reset,
136
+ sevenDayExhausted: false,
135
137
  resetsAvailable: 0,
136
138
  resetSoonestExpiry: null,
137
139
  lastUpdated: new Date(),
@@ -305,7 +307,10 @@ export default function (pi: ExtensionAPI) {
305
307
  .filter((time): time is number => time !== undefined && time > now);
306
308
  if (resets.length === 0) return;
307
309
  anthropicPingTimer = setTimeout(
308
- () => pingProviderOnReset('anthropic'),
310
+ () => {
311
+ pingProviderOnReset('anthropic');
312
+ scheduleAnthropicPing(state);
313
+ },
309
314
  Math.min(...resets) - now,
310
315
  );
311
316
  }
@@ -325,6 +330,7 @@ export default function (pi: ExtensionAPI) {
325
330
  existing.fiveHourReset = parsed.fiveHourReset;
326
331
  existing.sevenDayUsed = parsed.sevenDayUsed;
327
332
  existing.sevenDayReset = parsed.sevenDayReset;
333
+ existing.sevenDayExhausted = parsed.sevenDayExhausted;
328
334
  existing.resetsAvailable = parsed.resetsAvailable;
329
335
  existing.resetSoonestExpiry = parsed.resetSoonestExpiry;
330
336
  existing.lastUpdated = parsed.lastUpdated;
@@ -512,6 +518,7 @@ export default function (pi: ExtensionAPI) {
512
518
  fiveHourReset: fiveHour?.resets_at ? new Date(fiveHour.resets_at) : null,
513
519
  sevenDayUsed: sevenDay ? clampPercent(sevenDay.utilization ?? 0) : null,
514
520
  sevenDayReset: sevenDay?.resets_at ? new Date(sevenDay.resets_at) : null,
521
+ sevenDayExhausted: false,
515
522
  resetsAvailable: 0,
516
523
  resetSoonestExpiry: null,
517
524
  lastUpdated: new Date(),
@@ -555,6 +562,7 @@ export default function (pi: ExtensionAPI) {
555
562
  fiveHourReset: fiveHour?.reset_at ? new Date(fiveHour.reset_at * 1000) : null,
556
563
  sevenDayUsed: sevenDay ? clampPercent(sevenDay.used_percent ?? 0) : null,
557
564
  sevenDayReset: sevenDay?.reset_at ? new Date(sevenDay.reset_at * 1000) : null,
565
+ sevenDayExhausted: (sevenDay?.used_percent ?? 0) >= 100,
558
566
  resetsAvailable: resetCount,
559
567
  resetSoonestExpiry:
560
568
  resetCount > 0 ? await fetchCodexSoonestResetExpiry(openaiAuth.access) : null,
@@ -577,11 +585,11 @@ export default function (pi: ExtensionAPI) {
577
585
  const codexState = states.find((s) => s.provider === 'openai-codex');
578
586
  if (!codexState) return;
579
587
 
580
- if (codexState.sevenDayUsed !== null && codexState.sevenDayUsed < 100) {
588
+ if (codexState.sevenDayUsed !== null && !codexState.sevenDayExhausted) {
581
589
  codexRedeemAttempted = false;
582
590
  }
583
591
 
584
- if (codexState.sevenDayUsed !== 100) return;
592
+ if (!codexState.sevenDayExhausted) return;
585
593
  if (codexState.resetsAvailable === 0) return;
586
594
  if (codexRedeemAttempted) return;
587
595
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ravshansbox/pi-quota",
3
- "version": "0.10.5",
3
+ "version": "0.10.7",
4
4
  "description": "Anthropic and OpenAI Codex quota status extension for pi",
5
5
  "license": "MIT",
6
6
  "type": "module",