@slkiser/opencode-quota 4.10.4 → 4.10.6
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 +5 -4
- package/dist/lib/google-agy.js +1 -1
- package/dist/lib/opencode-zen-config.d.ts +25 -25
- package/dist/lib/opencode-zen-config.d.ts.map +1 -1
- package/dist/lib/opencode-zen-config.js +140 -69
- package/dist/lib/opencode-zen-config.js.map +1 -1
- package/dist/lib/opencode-zen.d.ts +4 -1
- package/dist/lib/opencode-zen.d.ts.map +1 -1
- package/dist/lib/opencode-zen.js +74 -20
- package/dist/lib/opencode-zen.js.map +1 -1
- package/dist/lib/provider-registration.d.ts +1 -1
- package/dist/lib/provider-registration.d.ts.map +1 -1
- package/dist/lib/provider-registration.js +1 -1
- package/dist/lib/provider-registration.js.map +1 -1
- package/dist/lib/scoped-update-migration.d.ts +5 -3
- package/dist/lib/scoped-update-migration.d.ts.map +1 -1
- package/dist/lib/scoped-update-migration.js +15 -12
- package/dist/lib/scoped-update-migration.js.map +1 -1
- package/dist/lib/scoped-update.d.ts.map +1 -1
- package/dist/lib/scoped-update.js +5 -6
- package/dist/lib/scoped-update.js.map +1 -1
- package/dist/providers/cache-policies.d.ts.map +1 -1
- package/dist/providers/cache-policies.js +11 -10
- package/dist/providers/cache-policies.js.map +1 -1
- package/dist/providers/opencode-zen.d.ts.map +1 -1
- package/dist/providers/opencode-zen.js +88 -36
- package/dist/providers/opencode-zen.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,69 +1,109 @@
|
|
|
1
|
-
import { sanitizeDisplayText } from "../lib/display-sanitize.js";
|
|
2
1
|
import { OPENCODE_ZEN_BILLING_UNITS_PER_DOLLAR, queryOpenCodeZenQuota, } from "../lib/opencode-zen.js";
|
|
3
|
-
import {
|
|
2
|
+
import { resolveOpenCodeZenAccountCached } from "../lib/opencode-zen-config.js";
|
|
4
3
|
import { normalizeQuotaProviderId } from "../lib/provider-metadata.js";
|
|
5
|
-
import { attemptedErrorResult, attemptedResult,
|
|
6
|
-
const OPENCODE_PROVIDER_LABEL = "OpenCode";
|
|
4
|
+
import { attemptedErrorResult, attemptedResult, notAttemptedResult, statusDetailsFromRecord, withStatusDetails, } from "./result-helpers.js";
|
|
7
5
|
const OPENCODE_ZEN_GROUP = "OpenCode Zen";
|
|
8
6
|
const OPENCODE_ZEN_BALANCE_ACCOUNTING = {
|
|
9
7
|
resultType: "balance",
|
|
10
|
-
acquisitionMethod: "
|
|
8
|
+
acquisitionMethod: "remote_api",
|
|
11
9
|
ownership: "maintained",
|
|
12
10
|
authority: "provider_reported",
|
|
13
11
|
};
|
|
14
12
|
const OPENCODE_ZEN_BUDGET_ACCOUNTING = {
|
|
15
13
|
resultType: "budget",
|
|
16
|
-
acquisitionMethod: "
|
|
14
|
+
acquisitionMethod: "remote_api",
|
|
17
15
|
ownership: "maintained",
|
|
18
16
|
authority: "locally_derived",
|
|
19
17
|
};
|
|
18
|
+
const OPENCODE_ZEN_SPEND_ACCOUNTING = {
|
|
19
|
+
resultType: "spend",
|
|
20
|
+
acquisitionMethod: "remote_api",
|
|
21
|
+
ownership: "maintained",
|
|
22
|
+
authority: "provider_reported",
|
|
23
|
+
};
|
|
20
24
|
const OPENCODE_ZEN_STATUS_ACCOUNTING = {
|
|
21
25
|
resultType: "status",
|
|
22
|
-
acquisitionMethod: "
|
|
26
|
+
acquisitionMethod: "remote_api",
|
|
23
27
|
ownership: "maintained",
|
|
24
28
|
authority: "provider_reported",
|
|
25
29
|
};
|
|
26
30
|
const USD_UNIT = { kind: "currency", code: "USD" };
|
|
31
|
+
const LOGIN_HINT = "Run `opencode console login` to sign in again.";
|
|
32
|
+
const SWITCH_HINT = "Run `opencode console switch` to select one.";
|
|
33
|
+
function accountErrorMessage(state) {
|
|
34
|
+
if (state === "missing_org") {
|
|
35
|
+
return `No active OpenCode Console organization. ${SWITCH_HINT}`;
|
|
36
|
+
}
|
|
37
|
+
if (state === "inactive_account") {
|
|
38
|
+
return `Active OpenCode Console account not found. ${SWITCH_HINT}`;
|
|
39
|
+
}
|
|
40
|
+
if (state === "expired") {
|
|
41
|
+
return `OpenCode Console session expired. ${LOGIN_HINT}`;
|
|
42
|
+
}
|
|
43
|
+
if (state === "no_active_account") {
|
|
44
|
+
return `No active OpenCode Console account. ${LOGIN_HINT}`;
|
|
45
|
+
}
|
|
46
|
+
if (state === "invalid_url") {
|
|
47
|
+
return `The stored OpenCode Console URL is invalid. ${LOGIN_HINT}`;
|
|
48
|
+
}
|
|
49
|
+
if (state === "incompatible") {
|
|
50
|
+
return `OpenCode state database is missing the Console account tables. Update OpenCode, then ${LOGIN_HINT}`;
|
|
51
|
+
}
|
|
52
|
+
if (state === "read_error") {
|
|
53
|
+
return "The OpenCode state database could not be read (it may be locked). Close or retry OpenCode, then try again.";
|
|
54
|
+
}
|
|
55
|
+
return `No OpenCode Console session found. ${LOGIN_HINT}`;
|
|
56
|
+
}
|
|
57
|
+
function accountStatusDetails(params) {
|
|
58
|
+
return statusDetailsFromRecord({
|
|
59
|
+
account_state: params.state,
|
|
60
|
+
console_url: params.consoleUrl ?? "(none)",
|
|
61
|
+
});
|
|
62
|
+
}
|
|
27
63
|
function zenUsdDecimal(value) {
|
|
28
64
|
const fixed = value.toFixed(8);
|
|
29
65
|
return fixed.replace(/0+$/u, "").replace(/\.$/u, "");
|
|
30
66
|
}
|
|
31
67
|
export const opencodeZenProvider = {
|
|
32
68
|
id: "opencode",
|
|
33
|
-
async isAvailable(
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
69
|
+
async isAvailable(ctx) {
|
|
70
|
+
const resolved = await resolveOpenCodeZenAccountCached();
|
|
71
|
+
if (resolved.state === "none")
|
|
72
|
+
return false;
|
|
73
|
+
// A normal DB with no Console sign-in is not an auto-mode error, but stays
|
|
74
|
+
// actionable when the user explicitly enables the opencode provider.
|
|
75
|
+
if (resolved.state === "no_active_account" && ctx.config.enabledProviders === "auto") {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
// Other recoverable states (expired session, no active org, ...) stay
|
|
79
|
+
// available so fetch() can surface their recovery hints.
|
|
80
|
+
return true;
|
|
38
81
|
},
|
|
39
82
|
matchesCurrentModel(model) {
|
|
40
83
|
const [provider] = model.toLowerCase().split("/", 2);
|
|
41
84
|
return normalizeQuotaProviderId(provider) === "opencode";
|
|
42
85
|
},
|
|
43
86
|
async fetch(ctx) {
|
|
44
|
-
const
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
});
|
|
49
|
-
const config = await resolveOpenCodeZenConfigCached({
|
|
50
|
-
maxAgeMs: DEFAULT_OPENCODE_ZEN_CONFIG_CACHE_MAX_AGE_MS,
|
|
51
|
-
});
|
|
52
|
-
if (config.state === "none")
|
|
53
|
-
return withStatusDetails(notAttemptedResult(), statusDetails);
|
|
54
|
-
if (config.state === "incomplete") {
|
|
55
|
-
return withStatusDetails(attemptedErrorResult(OPENCODE_PROVIDER_LABEL, `Missing ${config.missing} (source: ${config.source})`), statusDetails);
|
|
87
|
+
const resolved = await resolveOpenCodeZenAccountCached();
|
|
88
|
+
if (resolved.state === "none") {
|
|
89
|
+
// No Console CLI session in the OpenCode state DB; absent, not an error.
|
|
90
|
+
return withStatusDetails(notAttemptedResult(), accountStatusDetails({ state: "none", consoleUrl: null }));
|
|
56
91
|
}
|
|
57
|
-
if (
|
|
58
|
-
return withStatusDetails(attemptedErrorResult(
|
|
92
|
+
if (resolved.state !== "configured") {
|
|
93
|
+
return withStatusDetails(attemptedErrorResult(OPENCODE_ZEN_GROUP, accountErrorMessage(resolved.state)), accountStatusDetails({ state: resolved.state, consoleUrl: null }));
|
|
59
94
|
}
|
|
60
|
-
const
|
|
95
|
+
const { account } = resolved;
|
|
96
|
+
const statusDetails = accountStatusDetails({
|
|
97
|
+
state: "configured",
|
|
98
|
+
consoleUrl: account.baseUrl,
|
|
99
|
+
});
|
|
100
|
+
const result = await queryOpenCodeZenQuota(account, {
|
|
61
101
|
requestTimeoutMs: ctx.config?.requestTimeoutMsConfigured
|
|
62
102
|
? ctx.config.requestTimeoutMs
|
|
63
103
|
: undefined,
|
|
64
104
|
});
|
|
65
105
|
if (!result.success) {
|
|
66
|
-
return withStatusDetails(attemptedErrorResult(
|
|
106
|
+
return withStatusDetails(attemptedErrorResult(OPENCODE_ZEN_GROUP, result.error), [
|
|
67
107
|
...statusDetails,
|
|
68
108
|
{ key: "live_fetch_error", value: result.error },
|
|
69
109
|
]);
|
|
@@ -74,12 +114,11 @@ export const opencodeZenProvider = {
|
|
|
74
114
|
const monthlyUsageUsd = result.data.monthlyUsage === null
|
|
75
115
|
? null
|
|
76
116
|
: result.data.monthlyUsage / OPENCODE_ZEN_BILLING_UNITS_PER_DOLLAR;
|
|
117
|
+
const hasMonthlyUsage = monthlyUsageUsd !== null && Number.isFinite(monthlyUsageUsd) && monthlyUsageUsd >= 0;
|
|
77
118
|
const hasMonthlyBudget = effectiveMonthlyLimit !== null &&
|
|
78
119
|
Number.isFinite(effectiveMonthlyLimit) &&
|
|
79
120
|
effectiveMonthlyLimit > 0 &&
|
|
80
|
-
|
|
81
|
-
Number.isFinite(monthlyUsageUsd) &&
|
|
82
|
-
monthlyUsageUsd >= 0;
|
|
121
|
+
hasMonthlyUsage;
|
|
83
122
|
const entries = [];
|
|
84
123
|
if (hasMonthlyBudget) {
|
|
85
124
|
const monthlyRemainingUsd = Math.max(0, effectiveMonthlyLimit - monthlyUsageUsd);
|
|
@@ -88,6 +127,7 @@ export const opencodeZenProvider = {
|
|
|
88
127
|
name: "zen-monthly-budget",
|
|
89
128
|
group: OPENCODE_ZEN_GROUP,
|
|
90
129
|
percentRemaining: Math.min(100, (monthlyRemainingUsd / effectiveMonthlyLimit) * 100),
|
|
130
|
+
...(result.data.budgetResetIso ? { resetTimeIso: result.data.budgetResetIso } : {}),
|
|
91
131
|
semantic: {
|
|
92
132
|
metric: { kind: "window", window: "month" },
|
|
93
133
|
prominence: "primary",
|
|
@@ -108,6 +148,20 @@ export const opencodeZenProvider = {
|
|
|
108
148
|
},
|
|
109
149
|
});
|
|
110
150
|
}
|
|
151
|
+
else if (hasMonthlyUsage) {
|
|
152
|
+
// No limit to measure against: still show this month's real spend.
|
|
153
|
+
entries.push({
|
|
154
|
+
accounting: OPENCODE_ZEN_SPEND_ACCOUNTING,
|
|
155
|
+
kind: "quantity",
|
|
156
|
+
name: "zen-monthly-spend",
|
|
157
|
+
group: OPENCODE_ZEN_GROUP,
|
|
158
|
+
semantic: {
|
|
159
|
+
metric: { kind: "window", window: "month" },
|
|
160
|
+
prominence: "primary",
|
|
161
|
+
},
|
|
162
|
+
quantity: { decimal: zenUsdDecimal(monthlyUsageUsd), unit: USD_UNIT },
|
|
163
|
+
});
|
|
164
|
+
}
|
|
111
165
|
entries.push({
|
|
112
166
|
accounting: OPENCODE_ZEN_BALANCE_ACCOUNTING,
|
|
113
167
|
kind: "quantity",
|
|
@@ -132,7 +186,7 @@ export const opencodeZenProvider = {
|
|
|
132
186
|
value: result.data.reload,
|
|
133
187
|
});
|
|
134
188
|
}
|
|
135
|
-
const errors = result.errors.map((message) => ({ label:
|
|
189
|
+
const errors = result.errors.map((message) => ({ label: OPENCODE_ZEN_GROUP, message }));
|
|
136
190
|
return withStatusDetails(attemptedResult(entries, errors), [
|
|
137
191
|
...statusDetails,
|
|
138
192
|
{ key: "balance_usd", value: `USD ${zenUsdDecimal(balanceUsd)}` },
|
|
@@ -143,10 +197,8 @@ export const opencodeZenProvider = {
|
|
|
143
197
|
: `USD ${zenUsdDecimal(result.data.monthlyLimit)}`,
|
|
144
198
|
},
|
|
145
199
|
{
|
|
146
|
-
key: "
|
|
147
|
-
value:
|
|
148
|
-
? "(none)"
|
|
149
|
-
: `USD ${zenUsdDecimal(result.data.lastPayment)}`,
|
|
200
|
+
key: "monthly_usage_usd",
|
|
201
|
+
value: monthlyUsageUsd === null ? "(unknown)" : `USD ${zenUsdDecimal(monthlyUsageUsd)}`,
|
|
150
202
|
},
|
|
151
203
|
{
|
|
152
204
|
key: "auto_reload",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode-zen.js","sourceRoot":"","sources":["../../src/providers/opencode-zen.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"opencode-zen.js","sourceRoot":"","sources":["../../src/providers/opencode-zen.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,qCAAqC,EACrC,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,kBAAkB,GAAG,cAAc,CAAC;AAC1C,MAAM,+BAA+B,GAAuB;IAC1D,UAAU,EAAE,SAAS;IACrB,iBAAiB,EAAE,YAAY;IAC/B,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,mBAAmB;CAC/B,CAAC;AACF,MAAM,8BAA8B,GAAuB;IACzD,UAAU,EAAE,QAAQ;IACpB,iBAAiB,EAAE,YAAY;IAC/B,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,iBAAiB;CAC7B,CAAC;AACF,MAAM,6BAA6B,GAAuB;IACxD,UAAU,EAAE,OAAO;IACnB,iBAAiB,EAAE,YAAY;IAC/B,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,mBAAmB;CAC/B,CAAC;AACF,MAAM,8BAA8B,GAAuB;IACzD,UAAU,EAAE,QAAQ;IACpB,iBAAiB,EAAE,YAAY;IAC/B,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,mBAAmB;CAC/B,CAAC;AACF,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAW,CAAC;AAE5D,MAAM,UAAU,GAAG,gDAAgD,CAAC;AACpE,MAAM,WAAW,GAAG,8CAA8C,CAAC;AAEnE,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC5B,OAAO,4CAA4C,WAAW,EAAE,CAAC;IACnE,CAAC;IACD,IAAI,KAAK,KAAK,kBAAkB,EAAE,CAAC;QACjC,OAAO,8CAA8C,WAAW,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,qCAAqC,UAAU,EAAE,CAAC;IAC3D,CAAC;IACD,IAAI,KAAK,KAAK,mBAAmB,EAAE,CAAC;QAClC,OAAO,uCAAuC,UAAU,EAAE,CAAC;IAC7D,CAAC;IACD,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QAC5B,OAAO,+CAA+C,UAAU,EAAE,CAAC;IACrE,CAAC;IACD,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;QAC7B,OAAO,wFAAwF,UAAU,EAAE,CAAC;IAC9G,CAAC;IACD,IAAI,KAAK,KAAK,YAAY,EAAE,CAAC;QAC3B,OAAO,4GAA4G,CAAC;IACtH,CAAC;IACD,OAAO,sCAAsC,UAAU,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,oBAAoB,CAAC,MAG7B;IACC,OAAO,uBAAuB,CAAC;QAC7B,aAAa,EAAE,MAAM,CAAC,KAAK;QAC3B,WAAW,EAAE,MAAM,CAAC,UAAU,IAAI,QAAQ;KAC3C,CAAC,CAAC;AACL,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAkB;IAChD,EAAE,EAAE,UAAU;IAEd,KAAK,CAAC,WAAW,CAAC,GAAyB;QACzC,MAAM,QAAQ,GAAG,MAAM,+BAA+B,EAAE,CAAC;QACzD,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM;YAAE,OAAO,KAAK,CAAC;QAC5C,2EAA2E;QAC3E,qEAAqE;QACrE,IAAI,QAAQ,CAAC,KAAK,KAAK,mBAAmB,IAAI,GAAG,CAAC,MAAM,CAAC,gBAAgB,KAAK,MAAM,EAAE,CAAC;YACrF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,sEAAsE;QACtE,yDAAyD;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,KAAa;QAC/B,MAAM,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACrD,OAAO,wBAAwB,CAAC,QAAQ,CAAC,KAAK,UAAU,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAyB;QACnC,MAAM,QAAQ,GAAG,MAAM,+BAA+B,EAAE,CAAC;QAEzD,IAAI,QAAQ,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC9B,yEAAyE;YACzE,OAAO,iBAAiB,CACtB,kBAAkB,EAAE,EACpB,oBAAoB,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAC1D,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;YACpC,OAAO,iBAAiB,CACtB,oBAAoB,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAC7E,oBAAoB,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAClE,CAAC;QACJ,CAAC;QAED,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,CAAC;QAC7B,MAAM,aAAa,GAAG,oBAAoB,CAAC;YACzC,KAAK,EAAE,YAAY;YACnB,UAAU,EAAE,OAAO,CAAC,OAAO;SAC5B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,OAAO,EAAE;YAClD,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,0BAA0B;gBACtD,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB;gBAC7B,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,iBAAiB,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;gBAC/E,GAAG,aAAa;gBAChB,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE;aACjD,CAAC,CAAC;QACL,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,GAAG,qCAAqC,CAAC;QAC/E,MAAM,sBAAsB,GAAG,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC;QAChE,MAAM,qBAAqB,GAAG,sBAAsB,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;QACjF,MAAM,eAAe,GACnB,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI;YAC/B,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,GAAG,qCAAqC,CAAC;QAEvE,MAAM,eAAe,GACnB,eAAe,KAAK,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,eAAe,IAAI,CAAC,CAAC;QACvF,MAAM,gBAAgB,GACpB,qBAAqB,KAAK,IAAI;YAC9B,MAAM,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YACtC,qBAAqB,GAAG,CAAC;YACzB,eAAe,CAAC;QAClB,MAAM,OAAO,GAAsB,EAAE,CAAC;QAEtC,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,qBAAqB,GAAG,eAAe,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC;gBACX,UAAU,EAAE,8BAA8B;gBAC1C,IAAI,EAAE,oBAAoB;gBAC1B,KAAK,EAAE,kBAAkB;gBACzB,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,GAAG,GAAG,CAAC;gBACpF,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnF,QAAQ,EAAE;oBACR,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;oBAC3C,UAAU,EAAE,SAAS;iBACtB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE;wBACJ,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACrE,SAAS,EAAE,mBAAmB;qBAC/B;oBACD,KAAK,EAAE;wBACL,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,qBAAqB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;wBAC3E,SAAS,EACP,sBAAsB,KAAK,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB;qBACjF;oBACD,SAAS,EAAE;wBACT,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;wBACzE,SAAS,EAAE,iBAAiB;qBAC7B;iBACF;aACF,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,eAAe,EAAE,CAAC;YAC3B,mEAAmE;YACnE,OAAO,CAAC,IAAI,CAAC;gBACX,UAAU,EAAE,6BAA6B;gBACzC,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,mBAAmB;gBACzB,KAAK,EAAE,kBAAkB;gBACzB,QAAQ,EAAE;oBACR,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE;oBAC3C,UAAU,EAAE,SAAS;iBACtB;gBACD,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;aACtE,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,IAAI,CAAC;YACX,UAAU,EAAE,+BAA+B;YAC3C,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE;gBACR,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE;gBAC3D,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS;aAC3D;YACD,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;SACjE,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC;gBACX,UAAU,EAAE,8BAA8B;gBAC1C,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,iBAAiB;gBACvB,KAAK,EAAE,kBAAkB;gBACzB,QAAQ,EAAE;oBACR,MAAM,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE;oBACvD,UAAU,EAAE,eAAe;iBAC5B;gBACD,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM;aAC1B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAExF,OAAO,iBAAiB,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;YACzD,GAAG,aAAa;YAChB,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,aAAa,CAAC,UAAU,CAAC,EAAE,EAAE;YACjE;gBACE,GAAG,EAAE,mBAAmB;gBACxB,KAAK,EACH,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI;oBAC/B,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,OAAO,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;aACvD;YACD;gBACE,GAAG,EAAE,mBAAmB;gBACxB,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,aAAa,CAAC,eAAe,CAAC,EAAE;aACxF;YACD;gBACE,GAAG,EAAE,aAAa;gBAClB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC9E;YACD;gBACE,GAAG,EAAE,wBAAwB;gBAC7B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;aACvF;YACD;gBACE,GAAG,EAAE,yBAAyB;gBAC9B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;aACzF;YACD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;gBAC1B,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjE,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slkiser/opencode-quota",
|
|
3
|
-
"version": "4.10.
|
|
3
|
+
"version": "4.10.6",
|
|
4
4
|
"description": "OpenCode quota & tokens usage with zero context window pollution. Supports GitHub Copilot, OpenAI (Plus/Pro), Chutes AI, Synthetic, Google AGY, Z.ai coding plan and more.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|