@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.
- package/index.ts +11 -3
- 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
|
-
() =>
|
|
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.
|
|
588
|
+
if (codexState.sevenDayUsed !== null && !codexState.sevenDayExhausted) {
|
|
581
589
|
codexRedeemAttempted = false;
|
|
582
590
|
}
|
|
583
591
|
|
|
584
|
-
if (codexState.
|
|
592
|
+
if (!codexState.sevenDayExhausted) return;
|
|
585
593
|
if (codexState.resetsAvailable === 0) return;
|
|
586
594
|
if (codexRedeemAttempted) return;
|
|
587
595
|
|