@slkiser/opencode-quota 4.10.3 → 4.10.5
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 +16 -14
- package/dist/lib/google-agy.js +1 -1
- package/dist/lib/init-installer.d.ts.map +1 -1
- package/dist/lib/init-installer.js +5 -4
- package/dist/lib/init-installer.js.map +1 -1
- package/dist/lib/maintainer-announcements.d.ts.map +1 -1
- package/dist/lib/maintainer-announcements.js +8 -1
- package/dist/lib/maintainer-announcements.js.map +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 +63 -19
- 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 +2 -2
- package/dist/lib/scoped-update.d.ts.map +1 -1
- package/dist/lib/scoped-update.js +28 -20
- 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 +86 -33
- package/dist/providers/opencode-zen.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,63 +1,104 @@
|
|
|
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,
|
|
4
|
+
import { attemptedErrorResult, attemptedResult, notAttemptedResult, statusDetailsFromRecord, withStatusDetails, } from "./result-helpers.js";
|
|
6
5
|
const OPENCODE_PROVIDER_LABEL = "OpenCode";
|
|
7
6
|
const OPENCODE_ZEN_GROUP = "OpenCode Zen";
|
|
8
7
|
const OPENCODE_ZEN_BALANCE_ACCOUNTING = {
|
|
9
8
|
resultType: "balance",
|
|
10
|
-
acquisitionMethod: "
|
|
9
|
+
acquisitionMethod: "remote_api",
|
|
11
10
|
ownership: "maintained",
|
|
12
11
|
authority: "provider_reported",
|
|
13
12
|
};
|
|
14
13
|
const OPENCODE_ZEN_BUDGET_ACCOUNTING = {
|
|
15
14
|
resultType: "budget",
|
|
16
|
-
acquisitionMethod: "
|
|
15
|
+
acquisitionMethod: "remote_api",
|
|
17
16
|
ownership: "maintained",
|
|
18
17
|
authority: "locally_derived",
|
|
19
18
|
};
|
|
19
|
+
const OPENCODE_ZEN_SPEND_ACCOUNTING = {
|
|
20
|
+
resultType: "spend",
|
|
21
|
+
acquisitionMethod: "remote_api",
|
|
22
|
+
ownership: "maintained",
|
|
23
|
+
authority: "provider_reported",
|
|
24
|
+
};
|
|
20
25
|
const OPENCODE_ZEN_STATUS_ACCOUNTING = {
|
|
21
26
|
resultType: "status",
|
|
22
|
-
acquisitionMethod: "
|
|
27
|
+
acquisitionMethod: "remote_api",
|
|
23
28
|
ownership: "maintained",
|
|
24
29
|
authority: "provider_reported",
|
|
25
30
|
};
|
|
26
31
|
const USD_UNIT = { kind: "currency", code: "USD" };
|
|
32
|
+
const LOGIN_HINT = "Run `opencode console login` to sign in again.";
|
|
33
|
+
const SWITCH_HINT = "Run `opencode console switch` to select one.";
|
|
34
|
+
function accountErrorMessage(state) {
|
|
35
|
+
if (state === "missing_org") {
|
|
36
|
+
return `No active OpenCode Console organization. ${SWITCH_HINT}`;
|
|
37
|
+
}
|
|
38
|
+
if (state === "inactive_account") {
|
|
39
|
+
return `Active OpenCode Console account not found. ${SWITCH_HINT}`;
|
|
40
|
+
}
|
|
41
|
+
if (state === "expired") {
|
|
42
|
+
return `OpenCode Console session expired. ${LOGIN_HINT}`;
|
|
43
|
+
}
|
|
44
|
+
if (state === "no_active_account") {
|
|
45
|
+
return `No active OpenCode Console account. ${LOGIN_HINT}`;
|
|
46
|
+
}
|
|
47
|
+
if (state === "invalid_url") {
|
|
48
|
+
return `The stored OpenCode Console URL is invalid. ${LOGIN_HINT}`;
|
|
49
|
+
}
|
|
50
|
+
if (state === "incompatible") {
|
|
51
|
+
return `OpenCode state database is missing the Console account tables. Update OpenCode, then ${LOGIN_HINT}`;
|
|
52
|
+
}
|
|
53
|
+
if (state === "read_error") {
|
|
54
|
+
return "The OpenCode state database could not be read (it may be locked). Close or retry OpenCode, then try again.";
|
|
55
|
+
}
|
|
56
|
+
return `No OpenCode Console session found. ${LOGIN_HINT}`;
|
|
57
|
+
}
|
|
58
|
+
function accountStatusDetails(params) {
|
|
59
|
+
return statusDetailsFromRecord({
|
|
60
|
+
account_state: params.state,
|
|
61
|
+
console_url: params.consoleUrl ?? "(none)",
|
|
62
|
+
});
|
|
63
|
+
}
|
|
27
64
|
function zenUsdDecimal(value) {
|
|
28
65
|
const fixed = value.toFixed(8);
|
|
29
66
|
return fixed.replace(/0+$/u, "").replace(/\.$/u, "");
|
|
30
67
|
}
|
|
31
68
|
export const opencodeZenProvider = {
|
|
32
69
|
id: "opencode",
|
|
33
|
-
async isAvailable(
|
|
34
|
-
const
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
70
|
+
async isAvailable(ctx) {
|
|
71
|
+
const resolved = await resolveOpenCodeZenAccountCached();
|
|
72
|
+
if (resolved.state === "none")
|
|
73
|
+
return false;
|
|
74
|
+
// A normal DB with no Console sign-in is not an auto-mode error, but stays
|
|
75
|
+
// actionable when the user explicitly enables the opencode provider.
|
|
76
|
+
if (resolved.state === "no_active_account" && ctx.config.enabledProviders === "auto") {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
// Other recoverable states (expired session, no active org, ...) stay
|
|
80
|
+
// available so fetch() can surface their recovery hints.
|
|
81
|
+
return true;
|
|
38
82
|
},
|
|
39
83
|
matchesCurrentModel(model) {
|
|
40
84
|
const [provider] = model.toLowerCase().split("/", 2);
|
|
41
85
|
return normalizeQuotaProviderId(provider) === "opencode";
|
|
42
86
|
},
|
|
43
87
|
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);
|
|
88
|
+
const resolved = await resolveOpenCodeZenAccountCached();
|
|
89
|
+
if (resolved.state === "none") {
|
|
90
|
+
// No Console CLI session in the OpenCode state DB; absent, not an error.
|
|
91
|
+
return withStatusDetails(notAttemptedResult(), accountStatusDetails({ state: "none", consoleUrl: null }));
|
|
56
92
|
}
|
|
57
|
-
if (
|
|
58
|
-
return withStatusDetails(attemptedErrorResult(OPENCODE_PROVIDER_LABEL,
|
|
93
|
+
if (resolved.state !== "configured") {
|
|
94
|
+
return withStatusDetails(attemptedErrorResult(OPENCODE_PROVIDER_LABEL, accountErrorMessage(resolved.state)), accountStatusDetails({ state: resolved.state, consoleUrl: null }));
|
|
59
95
|
}
|
|
60
|
-
const
|
|
96
|
+
const { account } = resolved;
|
|
97
|
+
const statusDetails = accountStatusDetails({
|
|
98
|
+
state: "configured",
|
|
99
|
+
consoleUrl: account.baseUrl,
|
|
100
|
+
});
|
|
101
|
+
const result = await queryOpenCodeZenQuota(account, {
|
|
61
102
|
requestTimeoutMs: ctx.config?.requestTimeoutMsConfigured
|
|
62
103
|
? ctx.config.requestTimeoutMs
|
|
63
104
|
: undefined,
|
|
@@ -74,12 +115,11 @@ export const opencodeZenProvider = {
|
|
|
74
115
|
const monthlyUsageUsd = result.data.monthlyUsage === null
|
|
75
116
|
? null
|
|
76
117
|
: result.data.monthlyUsage / OPENCODE_ZEN_BILLING_UNITS_PER_DOLLAR;
|
|
118
|
+
const hasMonthlyUsage = monthlyUsageUsd !== null && Number.isFinite(monthlyUsageUsd) && monthlyUsageUsd >= 0;
|
|
77
119
|
const hasMonthlyBudget = effectiveMonthlyLimit !== null &&
|
|
78
120
|
Number.isFinite(effectiveMonthlyLimit) &&
|
|
79
121
|
effectiveMonthlyLimit > 0 &&
|
|
80
|
-
|
|
81
|
-
Number.isFinite(monthlyUsageUsd) &&
|
|
82
|
-
monthlyUsageUsd >= 0;
|
|
122
|
+
hasMonthlyUsage;
|
|
83
123
|
const entries = [];
|
|
84
124
|
if (hasMonthlyBudget) {
|
|
85
125
|
const monthlyRemainingUsd = Math.max(0, effectiveMonthlyLimit - monthlyUsageUsd);
|
|
@@ -88,6 +128,7 @@ export const opencodeZenProvider = {
|
|
|
88
128
|
name: "zen-monthly-budget",
|
|
89
129
|
group: OPENCODE_ZEN_GROUP,
|
|
90
130
|
percentRemaining: Math.min(100, (monthlyRemainingUsd / effectiveMonthlyLimit) * 100),
|
|
131
|
+
...(result.data.budgetResetIso ? { resetTimeIso: result.data.budgetResetIso } : {}),
|
|
91
132
|
semantic: {
|
|
92
133
|
metric: { kind: "window", window: "month" },
|
|
93
134
|
prominence: "primary",
|
|
@@ -108,6 +149,20 @@ export const opencodeZenProvider = {
|
|
|
108
149
|
},
|
|
109
150
|
});
|
|
110
151
|
}
|
|
152
|
+
else if (hasMonthlyUsage) {
|
|
153
|
+
// No limit to measure against: still show this month's real spend.
|
|
154
|
+
entries.push({
|
|
155
|
+
accounting: OPENCODE_ZEN_SPEND_ACCOUNTING,
|
|
156
|
+
kind: "quantity",
|
|
157
|
+
name: "zen-monthly-spend",
|
|
158
|
+
group: OPENCODE_ZEN_GROUP,
|
|
159
|
+
semantic: {
|
|
160
|
+
metric: { kind: "window", window: "month" },
|
|
161
|
+
prominence: "primary",
|
|
162
|
+
},
|
|
163
|
+
quantity: { decimal: zenUsdDecimal(monthlyUsageUsd), unit: USD_UNIT },
|
|
164
|
+
});
|
|
165
|
+
}
|
|
111
166
|
entries.push({
|
|
112
167
|
accounting: OPENCODE_ZEN_BALANCE_ACCOUNTING,
|
|
113
168
|
kind: "quantity",
|
|
@@ -143,10 +198,8 @@ export const opencodeZenProvider = {
|
|
|
143
198
|
: `USD ${zenUsdDecimal(result.data.monthlyLimit)}`,
|
|
144
199
|
},
|
|
145
200
|
{
|
|
146
|
-
key: "
|
|
147
|
-
value:
|
|
148
|
-
? "(none)"
|
|
149
|
-
: `USD ${zenUsdDecimal(result.data.lastPayment)}`,
|
|
201
|
+
key: "monthly_usage_usd",
|
|
202
|
+
value: monthlyUsageUsd === null ? "(unknown)" : `USD ${zenUsdDecimal(monthlyUsageUsd)}`,
|
|
150
203
|
},
|
|
151
204
|
{
|
|
152
205
|
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":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@slkiser/opencode-quota",
|
|
3
|
-
"version": "4.10.
|
|
3
|
+
"version": "4.10.5",
|
|
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",
|