opencode-multi-account-core 0.2.0 → 0.2.2

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/dist/index.js +8 -0
  2. package/package.json +8 -2
package/dist/index.js CHANGED
@@ -712,8 +712,16 @@ function createAccountManagerForProvider(dependencies) {
712
712
  }
713
713
  async applyUsageCache(uuid, usage) {
714
714
  await this.store.mutateAccount(uuid, (account) => {
715
+ const now = Date.now();
716
+ const exhaustedTierResetTimes = [usage.five_hour, usage.seven_day].flatMap((tier) => {
717
+ if (tier == null || tier.utilization < 100 || tier.resets_at == null) {
718
+ return [];
719
+ }
720
+ return [Date.parse(tier.resets_at)];
721
+ }).filter((resetAt) => Number.isFinite(resetAt) && resetAt > now);
715
722
  account.cachedUsage = usage;
716
723
  account.cachedUsageAt = Date.now();
724
+ account.rateLimitResetAt = exhaustedTierResetTimes.length > 0 ? Math.min(...exhaustedTierResetTimes) : void 0;
717
725
  });
718
726
  }
719
727
  async applyProfileCache(uuid, profile) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-multi-account-core",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "Shared core for multi-account OpenCode plugins",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -24,7 +24,13 @@
24
24
  "node": ">=20.0.0"
25
25
  },
26
26
  "sideEffects": false,
27
- "keywords": ["opencode", "plugin", "multi-account", "core", "shared"],
27
+ "keywords": [
28
+ "opencode",
29
+ "plugin",
30
+ "multi-account",
31
+ "core",
32
+ "shared"
33
+ ],
28
34
  "author": "yuka",
29
35
  "license": "MIT",
30
36
  "repository": {