opencode-enhancer 1.0.8 → 1.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.
- package/README.md +94 -2
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +539 -305
- package/dist/index.js.map +1 -1
- package/dist/providers/auth.d.ts +1 -1
- package/dist/providers/auth.d.ts.map +1 -1
- package/dist/providers/auth.js +133 -48
- package/dist/providers/auth.js.map +1 -1
- package/dist/providers/chutes.d.ts +1 -1
- package/dist/providers/chutes.d.ts.map +1 -1
- package/dist/providers/chutes.js +19 -16
- package/dist/providers/chutes.js.map +1 -1
- package/dist/providers/codex.d.ts +1 -1
- package/dist/providers/codex.d.ts.map +1 -1
- package/dist/providers/codex.js +54 -35
- package/dist/providers/codex.js.map +1 -1
- package/dist/providers/copilot.d.ts +1 -1
- package/dist/providers/copilot.d.ts.map +1 -1
- package/dist/providers/copilot.js +92 -60
- package/dist/providers/copilot.js.map +1 -1
- package/dist/providers/types.d.ts +8 -4
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/providers/zai.d.ts +1 -1
- package/dist/providers/zai.d.ts.map +1 -1
- package/dist/providers/zai.js +29 -21
- package/dist/providers/zai.js.map +1 -1
- package/dist/settings.d.ts +1 -0
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +45 -19
- package/dist/settings.js.map +1 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +76 -27
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +10 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +110 -5
- package/dist/types.js.map +1 -1
- package/dist/usage-command.d.ts.map +1 -1
- package/dist/usage-command.js +390 -112
- package/dist/usage-command.js.map +1 -1
- package/package.json +2 -1
package/dist/providers/chutes.js
CHANGED
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
// Quotas: GET https://api.chutes.ai/users/me/quotas
|
|
4
4
|
// Usage: GET https://api.chutes.ai/users/me/quota_usage/{chute_id}
|
|
5
5
|
// Auth: raw key in Authorization header (no Bearer prefix)
|
|
6
|
-
import { getApiKey, hasCredential } from
|
|
7
|
-
import { fetchWithTimeout } from
|
|
8
|
-
const AUTH_KEY =
|
|
9
|
-
const BASE_URL =
|
|
6
|
+
import { getApiKey, hasCredential } from "./auth.js";
|
|
7
|
+
import { fetchWithTimeout } from "./types.js";
|
|
8
|
+
const AUTH_KEY = "chutes";
|
|
9
|
+
const BASE_URL = "https://api.chutes.ai";
|
|
10
10
|
export const chutesProvider = {
|
|
11
|
-
id:
|
|
12
|
-
name:
|
|
13
|
-
billingType:
|
|
11
|
+
id: "chutes",
|
|
12
|
+
name: "Chutes AI",
|
|
13
|
+
billingType: "quotaBased",
|
|
14
14
|
async isConfigured() {
|
|
15
15
|
return hasCredential(AUTH_KEY);
|
|
16
16
|
},
|
|
@@ -21,7 +21,7 @@ export const chutesProvider = {
|
|
|
21
21
|
providerId: this.id,
|
|
22
22
|
providerName: this.name,
|
|
23
23
|
billingType: this.billingType,
|
|
24
|
-
status:
|
|
24
|
+
status: "not_configured",
|
|
25
25
|
fetchedAt: Date.now(),
|
|
26
26
|
};
|
|
27
27
|
}
|
|
@@ -30,12 +30,12 @@ export const chutesProvider = {
|
|
|
30
30
|
// Fetch quotas
|
|
31
31
|
const quotasRes = await fetchWithTimeout(`${BASE_URL}/users/me/quotas`, { headers });
|
|
32
32
|
if (!quotasRes.ok) {
|
|
33
|
-
const text = await quotasRes.text().catch(() =>
|
|
33
|
+
const text = await quotasRes.text().catch(() => "");
|
|
34
34
|
return {
|
|
35
35
|
providerId: this.id,
|
|
36
36
|
providerName: this.name,
|
|
37
37
|
billingType: this.billingType,
|
|
38
|
-
status: quotasRes.status === 401 || quotasRes.status === 403 ?
|
|
38
|
+
status: quotasRes.status === 401 || quotasRes.status === 403 ? "auth_expired" : "error",
|
|
39
39
|
error: `HTTP ${quotasRes.status}: ${text.slice(0, 200)}`,
|
|
40
40
|
fetchedAt: Date.now(),
|
|
41
41
|
};
|
|
@@ -47,8 +47,8 @@ export const chutesProvider = {
|
|
|
47
47
|
providerId: this.id,
|
|
48
48
|
providerName: this.name,
|
|
49
49
|
billingType: this.billingType,
|
|
50
|
-
status:
|
|
51
|
-
usage: { type:
|
|
50
|
+
status: "ok",
|
|
51
|
+
usage: { type: "quotaBased", utilization: 0, windows: [] },
|
|
52
52
|
fetchedAt: Date.now(),
|
|
53
53
|
};
|
|
54
54
|
}
|
|
@@ -59,21 +59,24 @@ export const chutesProvider = {
|
|
|
59
59
|
if (usageRes.ok) {
|
|
60
60
|
const usage = (await usageRes.json());
|
|
61
61
|
utilization = usage.quota > 0 ? (usage.used / usage.quota) * 100 : 0;
|
|
62
|
+
const remaining = usage.quota > 0 ? Math.max(0, usage.quota - usage.used) : undefined;
|
|
62
63
|
windows.push({
|
|
63
64
|
utilization,
|
|
64
65
|
resetsAt: defaultQuota.payment_refresh_date
|
|
65
66
|
? new Date(defaultQuota.payment_refresh_date).getTime()
|
|
66
67
|
: undefined,
|
|
67
|
-
label:
|
|
68
|
+
label: "monthly",
|
|
69
|
+
remaining,
|
|
70
|
+
entitlement: usage.quota,
|
|
68
71
|
});
|
|
69
72
|
}
|
|
70
73
|
return {
|
|
71
74
|
providerId: this.id,
|
|
72
75
|
providerName: this.name,
|
|
73
76
|
billingType: this.billingType,
|
|
74
|
-
status:
|
|
77
|
+
status: "ok",
|
|
75
78
|
usage: {
|
|
76
|
-
type:
|
|
79
|
+
type: "quotaBased",
|
|
77
80
|
utilization,
|
|
78
81
|
remaining: defaultQuota.quota
|
|
79
82
|
? Math.max(0, defaultQuota.quota - (utilization * defaultQuota.quota) / 100)
|
|
@@ -89,7 +92,7 @@ export const chutesProvider = {
|
|
|
89
92
|
providerId: this.id,
|
|
90
93
|
providerName: this.name,
|
|
91
94
|
billingType: this.billingType,
|
|
92
|
-
status:
|
|
95
|
+
status: "error",
|
|
93
96
|
error: `${err}`,
|
|
94
97
|
fetchedAt: Date.now(),
|
|
95
98
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chutes.js","sourceRoot":"","sources":["../../src/providers/chutes.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,8CAA8C;AAC9C,oDAAoD;AACpD,mEAAmE;AACnE,2DAA2D;AAE3D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"chutes.js","sourceRoot":"","sources":["../../src/providers/chutes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/providers/codex.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAyC,aAAa,EAAe,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"codex.d.ts","sourceRoot":"","sources":["../../src/providers/codex.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAyC,aAAa,EAAe,MAAM,YAAY,CAAC;AAEpG,eAAO,MAAM,aAAa,EAAE,aA2L3B,CAAC"}
|
package/dist/providers/codex.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
// ChatGPT / Codex usage provider
|
|
2
2
|
// Uses the existing multi-account store and wham/usage API
|
|
3
3
|
// Endpoint: GET https://chatgpt.com/backend-api/wham/usage
|
|
4
|
-
import { loadStore, listAccounts } from
|
|
5
|
-
import { fetchUsageRateLimitsForAccount } from
|
|
4
|
+
import { loadStore, listAccounts } from "../store.js";
|
|
5
|
+
import { fetchUsageRateLimitsForAccount } from "../usage-limits.js";
|
|
6
6
|
export const codexProvider = {
|
|
7
|
-
id:
|
|
8
|
-
name:
|
|
9
|
-
billingType:
|
|
7
|
+
id: "codex",
|
|
8
|
+
name: "Codex",
|
|
9
|
+
billingType: "quotaBased",
|
|
10
10
|
async isConfigured() {
|
|
11
11
|
const accounts = listAccounts();
|
|
12
12
|
return accounts.length > 0;
|
|
@@ -19,7 +19,7 @@ export const codexProvider = {
|
|
|
19
19
|
providerId: this.id,
|
|
20
20
|
providerName: this.name,
|
|
21
21
|
billingType: this.billingType,
|
|
22
|
-
status:
|
|
22
|
+
status: "not_configured",
|
|
23
23
|
fetchedAt: Date.now(),
|
|
24
24
|
};
|
|
25
25
|
}
|
|
@@ -31,9 +31,9 @@ export const codexProvider = {
|
|
|
31
31
|
label: acc.alias,
|
|
32
32
|
email: acc.email,
|
|
33
33
|
plan: acc.planType,
|
|
34
|
-
status:
|
|
35
|
-
error:
|
|
36
|
-
usage: { type:
|
|
34
|
+
status: "error",
|
|
35
|
+
error: "Account disabled",
|
|
36
|
+
usage: { type: "quotaBased", utilization: 0, windows: [] },
|
|
37
37
|
};
|
|
38
38
|
}
|
|
39
39
|
// Skip auth-invalid accounts
|
|
@@ -42,9 +42,9 @@ export const codexProvider = {
|
|
|
42
42
|
label: acc.alias,
|
|
43
43
|
email: acc.email,
|
|
44
44
|
plan: acc.planType,
|
|
45
|
-
status:
|
|
46
|
-
error:
|
|
47
|
-
usage: { type:
|
|
45
|
+
status: "auth_expired",
|
|
46
|
+
error: "Auth invalid",
|
|
47
|
+
usage: { type: "quotaBased", utilization: 0, windows: [] },
|
|
48
48
|
};
|
|
49
49
|
}
|
|
50
50
|
try {
|
|
@@ -54,9 +54,9 @@ export const codexProvider = {
|
|
|
54
54
|
label: acc.alias,
|
|
55
55
|
email: acc.email,
|
|
56
56
|
plan: acc.planType,
|
|
57
|
-
status:
|
|
57
|
+
status: "auth_expired",
|
|
58
58
|
error: result.error,
|
|
59
|
-
usage: { type:
|
|
59
|
+
usage: { type: "quotaBased", utilization: 0, windows: [] },
|
|
60
60
|
};
|
|
61
61
|
}
|
|
62
62
|
if (result.error && !result.rateLimits) {
|
|
@@ -64,9 +64,9 @@ export const codexProvider = {
|
|
|
64
64
|
label: acc.alias,
|
|
65
65
|
email: acc.email,
|
|
66
66
|
plan: acc.planType,
|
|
67
|
-
status:
|
|
67
|
+
status: "error",
|
|
68
68
|
error: result.error,
|
|
69
|
-
usage: { type:
|
|
69
|
+
usage: { type: "quotaBased", utilization: 0, windows: [] },
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
72
|
const windows = [];
|
|
@@ -74,36 +74,50 @@ export const codexProvider = {
|
|
|
74
74
|
const wk = result.rateLimits?.weekly;
|
|
75
75
|
if (fh?.remaining !== undefined) {
|
|
76
76
|
const fhLimit = fh.limit ?? 100;
|
|
77
|
+
const hasAbsoluteFiveHourLimit = typeof fh.limit === "number" && fh.limit !== 100;
|
|
77
78
|
windows.push({
|
|
78
|
-
utilization: fhLimit === 100
|
|
79
|
+
utilization: fhLimit === 100
|
|
80
|
+
? Math.max(0, 100 - fh.remaining)
|
|
81
|
+
: Math.max(0, Math.round(((fhLimit - fh.remaining) / fhLimit) * 100)),
|
|
79
82
|
resetsAt: fh.resetAt,
|
|
80
|
-
label:
|
|
83
|
+
label: "5h",
|
|
84
|
+
remaining: hasAbsoluteFiveHourLimit ? fh.remaining : undefined,
|
|
85
|
+
entitlement: hasAbsoluteFiveHourLimit ? fh.limit : undefined,
|
|
81
86
|
});
|
|
82
87
|
}
|
|
83
88
|
if (wk?.remaining !== undefined) {
|
|
84
89
|
const wkLimit = wk.limit ?? 100;
|
|
90
|
+
const hasAbsoluteWeeklyLimit = typeof wk.limit === "number" && wk.limit !== 100;
|
|
85
91
|
windows.push({
|
|
86
|
-
utilization: wkLimit === 100
|
|
92
|
+
utilization: wkLimit === 100
|
|
93
|
+
? Math.max(0, 100 - wk.remaining)
|
|
94
|
+
: Math.max(0, Math.round(((wkLimit - wk.remaining) / wkLimit) * 100)),
|
|
87
95
|
resetsAt: wk.resetAt,
|
|
88
|
-
label:
|
|
96
|
+
label: "weekly",
|
|
97
|
+
remaining: hasAbsoluteWeeklyLimit ? wk.remaining : undefined,
|
|
98
|
+
entitlement: hasAbsoluteWeeklyLimit ? wk.limit : undefined,
|
|
89
99
|
});
|
|
90
100
|
}
|
|
91
101
|
const fhLimit = fh?.limit ?? 100;
|
|
92
102
|
const wkLimit = wk?.limit ?? 100;
|
|
93
103
|
const fhUtil = fh?.remaining !== undefined
|
|
94
|
-
?
|
|
104
|
+
? fhLimit === 100
|
|
105
|
+
? 100 - fh.remaining
|
|
106
|
+
: ((fhLimit - fh.remaining) / fhLimit) * 100
|
|
95
107
|
: 0;
|
|
96
108
|
const wkUtil = wk?.remaining !== undefined
|
|
97
|
-
?
|
|
109
|
+
? wkLimit === 100
|
|
110
|
+
? 100 - wk.remaining
|
|
111
|
+
: ((wkLimit - wk.remaining) / wkLimit) * 100
|
|
98
112
|
: 0;
|
|
99
113
|
const primaryUtil = Math.max(0, fhUtil, wkUtil);
|
|
100
114
|
return {
|
|
101
115
|
label: acc.alias,
|
|
102
116
|
email: acc.email,
|
|
103
117
|
plan: acc.planType,
|
|
104
|
-
status:
|
|
118
|
+
status: "ok",
|
|
105
119
|
usage: {
|
|
106
|
-
type:
|
|
120
|
+
type: "quotaBased",
|
|
107
121
|
utilization: primaryUtil,
|
|
108
122
|
windows,
|
|
109
123
|
},
|
|
@@ -114,37 +128,42 @@ export const codexProvider = {
|
|
|
114
128
|
label: acc.alias,
|
|
115
129
|
email: acc.email,
|
|
116
130
|
plan: acc.planType,
|
|
117
|
-
status:
|
|
131
|
+
status: "error",
|
|
118
132
|
error: `${err}`,
|
|
119
|
-
usage: { type:
|
|
133
|
+
usage: { type: "quotaBased", utilization: 0, windows: [] },
|
|
120
134
|
};
|
|
121
135
|
}
|
|
122
136
|
}));
|
|
123
|
-
const accountResults = results.map((r) => r.status ===
|
|
137
|
+
const accountResults = results.map((r) => r.status === "fulfilled"
|
|
124
138
|
? r.value
|
|
125
139
|
: {
|
|
126
|
-
label:
|
|
127
|
-
status:
|
|
140
|
+
label: "?",
|
|
141
|
+
status: "error",
|
|
128
142
|
error: `${r.reason}`,
|
|
129
|
-
usage: { type:
|
|
143
|
+
usage: { type: "quotaBased", utilization: 0, windows: [] },
|
|
130
144
|
});
|
|
131
145
|
// Overall status: ok if any account succeeded
|
|
132
|
-
const anyOk = accountResults.some((a) => a.status ===
|
|
133
|
-
const okAccounts = accountResults.filter((a) => a.status ===
|
|
146
|
+
const anyOk = accountResults.some((a) => a.status === "ok");
|
|
147
|
+
const okAccounts = accountResults.filter((a) => a.status === "ok");
|
|
134
148
|
// Aggregate usage: take the best (lowest utilization) account
|
|
135
149
|
let aggregateUsage = undefined;
|
|
136
150
|
if (okAccounts.length > 0) {
|
|
137
|
-
const best = okAccounts.reduce((a, b) => a.usage.utilization < b.usage.utilization ? a : b);
|
|
151
|
+
const best = okAccounts.reduce((a, b) => (a.usage.utilization < b.usage.utilization ? a : b));
|
|
138
152
|
aggregateUsage = best.usage;
|
|
139
153
|
}
|
|
140
154
|
return {
|
|
141
155
|
providerId: this.id,
|
|
142
156
|
providerName: this.name,
|
|
143
157
|
billingType: this.billingType,
|
|
144
|
-
status: anyOk ?
|
|
158
|
+
status: anyOk ? "ok" : "error",
|
|
145
159
|
usage: aggregateUsage,
|
|
146
160
|
accounts: accountResults,
|
|
147
|
-
error: anyOk
|
|
161
|
+
error: anyOk
|
|
162
|
+
? undefined
|
|
163
|
+
: accountResults
|
|
164
|
+
.map((a) => a.error)
|
|
165
|
+
.filter(Boolean)
|
|
166
|
+
.join("; "),
|
|
148
167
|
fetchedAt: Date.now(),
|
|
149
168
|
};
|
|
150
169
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/providers/codex.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,2DAA2D;AAC3D,2DAA2D;AAE3D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"codex.js","sourceRoot":"","sources":["../../src/providers/codex.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/providers/copilot.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAyC,aAAa,EAAe,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"copilot.d.ts","sourceRoot":"","sources":["../../src/providers/copilot.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAyC,aAAa,EAAe,MAAM,YAAY,CAAC;AA+CpG,eAAO,MAAM,eAAe,EAAE,aA8T7B,CAAC"}
|