oc-codex-multi-auth 6.1.3 → 6.1.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/README.md +17 -10
- package/config/README.md +12 -12
- package/config/opencode-legacy.json +125 -0
- package/config/opencode-modern.json +43 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/auto-update-checker.d.ts +7 -1
- package/dist/lib/auto-update-checker.d.ts.map +1 -1
- package/dist/lib/auto-update-checker.js +51 -3
- package/dist/lib/auto-update-checker.js.map +1 -1
- package/dist/lib/codex-usage.d.ts +91 -0
- package/dist/lib/codex-usage.d.ts.map +1 -0
- package/dist/lib/codex-usage.js +368 -0
- package/dist/lib/codex-usage.js.map +1 -0
- package/dist/lib/config.d.ts +1 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +4 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/schemas.d.ts +1 -0
- package/dist/lib/schemas.d.ts.map +1 -1
- package/dist/lib/schemas.js +1 -0
- package/dist/lib/schemas.js.map +1 -1
- package/dist/lib/tools/codex-limits.d.ts.map +1 -1
- package/dist/lib/tools/codex-limits.js +39 -340
- package/dist/lib/tools/codex-limits.js.map +1 -1
- package/dist/lib/tools/codex-switch.d.ts.map +1 -1
- package/dist/lib/tools/codex-switch.js +9 -0
- package/dist/lib/tools/codex-switch.js.map +1 -1
- package/dist/lib/tui-quota-cache.d.ts +33 -0
- package/dist/lib/tui-quota-cache.d.ts.map +1 -0
- package/dist/lib/tui-quota-cache.js +247 -0
- package/dist/lib/tui-quota-cache.js.map +1 -0
- package/dist/lib/tui-status.d.ts +55 -0
- package/dist/lib/tui-status.d.ts.map +1 -0
- package/dist/lib/tui-status.js +343 -0
- package/dist/lib/tui-status.js.map +1 -0
- package/dist/tui.d.ts +6 -0
- package/dist/tui.d.ts.map +1 -0
- package/dist/tui.js +363 -0
- package/dist/tui.js.map +1 -0
- package/package.json +16 -2
- package/scripts/install-oc-codex-multi-auth-core.js +119 -18
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
const variantSuffixes = [
|
|
2
|
+
"xhigh",
|
|
3
|
+
"high",
|
|
4
|
+
"medium",
|
|
5
|
+
"low",
|
|
6
|
+
"none",
|
|
7
|
+
];
|
|
8
|
+
const STATUS_SEPARATOR = ` ${String.fromCharCode(183)} `;
|
|
9
|
+
const WARNING_LIMIT_LEFT_PERCENT = 25;
|
|
10
|
+
const DANGER_LIMIT_LEFT_PERCENT = 10;
|
|
11
|
+
function isRecord(value) {
|
|
12
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
13
|
+
}
|
|
14
|
+
function getString(value) {
|
|
15
|
+
return typeof value === "string" && value.trim() ? value.trim() : undefined;
|
|
16
|
+
}
|
|
17
|
+
export function normalizeReasoningVariant(value) {
|
|
18
|
+
const normalized = value?.trim().toLowerCase();
|
|
19
|
+
if (!normalized)
|
|
20
|
+
return undefined;
|
|
21
|
+
if (normalized === "extra-high" || normalized === "extra_high") {
|
|
22
|
+
return "xhigh";
|
|
23
|
+
}
|
|
24
|
+
return variantSuffixes.find((variant) => variant === normalized);
|
|
25
|
+
}
|
|
26
|
+
export function inferReasoningVariantFromModelId(modelID) {
|
|
27
|
+
const modelPart = modelID?.split("/").pop()?.toLowerCase();
|
|
28
|
+
if (!modelPart)
|
|
29
|
+
return undefined;
|
|
30
|
+
for (const variant of variantSuffixes) {
|
|
31
|
+
if (modelPart.endsWith(`-${variant}`))
|
|
32
|
+
return variant;
|
|
33
|
+
}
|
|
34
|
+
return undefined;
|
|
35
|
+
}
|
|
36
|
+
function splitProviderModel(model) {
|
|
37
|
+
const trimmed = model?.trim();
|
|
38
|
+
if (!trimmed)
|
|
39
|
+
return undefined;
|
|
40
|
+
const slashIndex = trimmed.indexOf("/");
|
|
41
|
+
if (slashIndex <= 0 || slashIndex === trimmed.length - 1) {
|
|
42
|
+
return { providerID: "openai", modelID: trimmed };
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
providerID: trimmed.slice(0, slashIndex),
|
|
46
|
+
modelID: trimmed.slice(slashIndex + 1),
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function resolveAgentConfig(config) {
|
|
50
|
+
const agentName = config.default_agent ?? "build";
|
|
51
|
+
const agents = config.agent;
|
|
52
|
+
const selectedAgent = agents?.[agentName];
|
|
53
|
+
if (isRecord(selectedAgent))
|
|
54
|
+
return selectedAgent;
|
|
55
|
+
if (isRecord(agents?.build))
|
|
56
|
+
return agents.build;
|
|
57
|
+
if (isRecord(agents?.general))
|
|
58
|
+
return agents.general;
|
|
59
|
+
const legacyMode = config.mode;
|
|
60
|
+
if (isRecord(legacyMode?.build))
|
|
61
|
+
return legacyMode.build;
|
|
62
|
+
return undefined;
|
|
63
|
+
}
|
|
64
|
+
function resolveProviderReasoningVariant(config, model) {
|
|
65
|
+
const resolved = splitProviderModel(model);
|
|
66
|
+
if (!resolved)
|
|
67
|
+
return undefined;
|
|
68
|
+
const provider = config.provider?.[resolved.providerID];
|
|
69
|
+
const modelConfig = provider?.models?.[resolved.modelID];
|
|
70
|
+
const modelOptions = isRecord(modelConfig?.options)
|
|
71
|
+
? modelConfig.options
|
|
72
|
+
: undefined;
|
|
73
|
+
const providerOptions = isRecord(provider?.options)
|
|
74
|
+
? provider.options
|
|
75
|
+
: undefined;
|
|
76
|
+
return (normalizeReasoningVariant(getString(modelOptions?.reasoningEffort)) ??
|
|
77
|
+
normalizeReasoningVariant(getString(providerOptions?.reasoningEffort)));
|
|
78
|
+
}
|
|
79
|
+
function resolveAgentReasoningVariant(agent) {
|
|
80
|
+
if (!agent)
|
|
81
|
+
return undefined;
|
|
82
|
+
const options = isRecord(agent.options) ? agent.options : undefined;
|
|
83
|
+
return (normalizeReasoningVariant(getString(agent.variant)) ??
|
|
84
|
+
normalizeReasoningVariant(getString(agent.reasoningEffort)) ??
|
|
85
|
+
normalizeReasoningVariant(getString(options?.reasoningEffort)));
|
|
86
|
+
}
|
|
87
|
+
export function resolvePromptReasoningVariant(params) {
|
|
88
|
+
const messages = params.messages ?? [];
|
|
89
|
+
for (let i = messages.length - 1; i >= 0; i -= 1) {
|
|
90
|
+
const message = messages[i];
|
|
91
|
+
if (!message)
|
|
92
|
+
continue;
|
|
93
|
+
if (message.role === "user") {
|
|
94
|
+
const variant = normalizeReasoningVariant(message.userModel?.variant) ??
|
|
95
|
+
inferReasoningVariantFromModelId(message.userModel?.modelID);
|
|
96
|
+
if (variant)
|
|
97
|
+
return variant;
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
const variant = normalizeReasoningVariant(message.variant) ??
|
|
101
|
+
inferReasoningVariantFromModelId(message.modelID);
|
|
102
|
+
if (variant)
|
|
103
|
+
return variant;
|
|
104
|
+
}
|
|
105
|
+
const config = params.config;
|
|
106
|
+
if (!config)
|
|
107
|
+
return undefined;
|
|
108
|
+
const agent = resolveAgentConfig(config);
|
|
109
|
+
const agentVariant = resolveAgentReasoningVariant(agent);
|
|
110
|
+
if (agentVariant)
|
|
111
|
+
return agentVariant;
|
|
112
|
+
const agentModel = getString(agent?.model);
|
|
113
|
+
const model = agentModel ?? config.model;
|
|
114
|
+
return (inferReasoningVariantFromModelId(model) ??
|
|
115
|
+
resolveProviderReasoningVariant(config, model));
|
|
116
|
+
}
|
|
117
|
+
function isPercent(value) {
|
|
118
|
+
return typeof value === "number" && Number.isFinite(value);
|
|
119
|
+
}
|
|
120
|
+
function extractEmailFromLabel(label) {
|
|
121
|
+
const match = label?.match(/[^\s(),<>]+@[^\s(),<>]+/);
|
|
122
|
+
return match?.[0];
|
|
123
|
+
}
|
|
124
|
+
function formatAccountEmail(email) {
|
|
125
|
+
const trimmed = email?.trim() || undefined;
|
|
126
|
+
return trimmed ? `[${trimmed}]` : undefined;
|
|
127
|
+
}
|
|
128
|
+
function formatQuotaLimit(limit, resetLimit, includeReset) {
|
|
129
|
+
if (!isPercent(limit.leftPercent))
|
|
130
|
+
return undefined;
|
|
131
|
+
const label = limit.label.trim() || "quota";
|
|
132
|
+
const base = `${label} ${limit.leftPercent}%`;
|
|
133
|
+
const reset = includeReset && limit === resetLimit ? formatResetTime(limit.resetAtMs) : undefined;
|
|
134
|
+
return reset ? `${base} resets ${reset}` : base;
|
|
135
|
+
}
|
|
136
|
+
function formatAccountHint(quota) {
|
|
137
|
+
if (quota.type !== "ready")
|
|
138
|
+
return undefined;
|
|
139
|
+
if (typeof quota.accountIndex !== "number" ||
|
|
140
|
+
!Number.isFinite(quota.accountIndex)) {
|
|
141
|
+
return undefined;
|
|
142
|
+
}
|
|
143
|
+
if (typeof quota.accountCount === "number" &&
|
|
144
|
+
Number.isFinite(quota.accountCount) &&
|
|
145
|
+
quota.accountCount <= 1) {
|
|
146
|
+
return undefined;
|
|
147
|
+
}
|
|
148
|
+
const email = formatAccountEmail(quota.accountEmail) ??
|
|
149
|
+
formatAccountEmail(extractEmailFromLabel(quota.accountLabel));
|
|
150
|
+
if (email)
|
|
151
|
+
return email;
|
|
152
|
+
return `A${quota.accountIndex}`;
|
|
153
|
+
}
|
|
154
|
+
function findResetLimitForStatus(limits) {
|
|
155
|
+
const eligible = limits.filter((limit) => isPercent(limit.leftPercent));
|
|
156
|
+
if (eligible.length === 0)
|
|
157
|
+
return undefined;
|
|
158
|
+
const lowest = eligible.reduce((current, limit) => (limit.leftPercent ?? 100) < (current.leftPercent ?? 100)
|
|
159
|
+
? limit
|
|
160
|
+
: current);
|
|
161
|
+
if ((lowest.leftPercent ?? 100) > WARNING_LIMIT_LEFT_PERCENT) {
|
|
162
|
+
return undefined;
|
|
163
|
+
}
|
|
164
|
+
return formatResetTime(lowest.resetAtMs) ? lowest : undefined;
|
|
165
|
+
}
|
|
166
|
+
function formatQuotaParts(quota, includeReset) {
|
|
167
|
+
if (quota.type !== "ready")
|
|
168
|
+
return [];
|
|
169
|
+
const resetLimit = includeReset
|
|
170
|
+
? findResetLimitForStatus(quota.limits)
|
|
171
|
+
: undefined;
|
|
172
|
+
return quota.limits
|
|
173
|
+
.map((limit) => formatQuotaLimit(limit, resetLimit, includeReset))
|
|
174
|
+
.filter((part) => Boolean(part));
|
|
175
|
+
}
|
|
176
|
+
function formatQuota(quota) {
|
|
177
|
+
if (quota.type === "ready") {
|
|
178
|
+
const parts = formatQuotaParts(quota, true);
|
|
179
|
+
return parts.length > 0 ? parts.join(STATUS_SEPARATOR) : undefined;
|
|
180
|
+
}
|
|
181
|
+
if (quota.type === "missing")
|
|
182
|
+
return "no auth";
|
|
183
|
+
if (quota.type === "unavailable")
|
|
184
|
+
return "limits ?";
|
|
185
|
+
return undefined;
|
|
186
|
+
}
|
|
187
|
+
function maxStatusChars(width) {
|
|
188
|
+
if (!width || !Number.isFinite(width))
|
|
189
|
+
return 32;
|
|
190
|
+
if (width >= 120)
|
|
191
|
+
return 48;
|
|
192
|
+
if (width >= 96)
|
|
193
|
+
return 40;
|
|
194
|
+
if (width >= 78)
|
|
195
|
+
return 32;
|
|
196
|
+
if (width >= 60)
|
|
197
|
+
return 22;
|
|
198
|
+
return 12;
|
|
199
|
+
}
|
|
200
|
+
export function formatPromptStatusText(params) {
|
|
201
|
+
const variant = params.variant;
|
|
202
|
+
const account = formatAccountHint(params.quota);
|
|
203
|
+
const quotaParts = formatQuotaParts(params.quota, true);
|
|
204
|
+
const quotaPartsWithoutReset = formatQuotaParts(params.quota, false);
|
|
205
|
+
const quota = quotaParts.length > 0
|
|
206
|
+
? quotaParts.join(STATUS_SEPARATOR)
|
|
207
|
+
: formatQuota(params.quota);
|
|
208
|
+
const primaryQuota = quotaParts[0] ?? quota;
|
|
209
|
+
const quotaWithoutReset = quotaPartsWithoutReset.length > 0
|
|
210
|
+
? quotaPartsWithoutReset.join(STATUS_SEPARATOR)
|
|
211
|
+
: quota;
|
|
212
|
+
const primaryQuotaWithoutReset = quotaPartsWithoutReset[0] ?? primaryQuota;
|
|
213
|
+
const candidates = [
|
|
214
|
+
[account, quota].filter(Boolean).join(STATUS_SEPARATOR),
|
|
215
|
+
[account, primaryQuota].filter(Boolean).join(STATUS_SEPARATOR),
|
|
216
|
+
quota,
|
|
217
|
+
primaryQuota,
|
|
218
|
+
[account, quotaWithoutReset].filter(Boolean).join(STATUS_SEPARATOR),
|
|
219
|
+
[account, primaryQuotaWithoutReset].filter(Boolean).join(STATUS_SEPARATOR),
|
|
220
|
+
quotaWithoutReset,
|
|
221
|
+
primaryQuotaWithoutReset,
|
|
222
|
+
[variant, account, quota].filter(Boolean).join(STATUS_SEPARATOR),
|
|
223
|
+
[variant, quota].filter(Boolean).join(STATUS_SEPARATOR),
|
|
224
|
+
variant,
|
|
225
|
+
account,
|
|
226
|
+
].filter((candidate) => Boolean(candidate));
|
|
227
|
+
const maxChars = maxStatusChars(params.width);
|
|
228
|
+
return candidates.find((candidate) => candidate.length <= maxChars) ?? "";
|
|
229
|
+
}
|
|
230
|
+
export function resolveQuotaPromptTone(quota) {
|
|
231
|
+
if (quota.type === "ready") {
|
|
232
|
+
if (quota.stale)
|
|
233
|
+
return "stale";
|
|
234
|
+
const percents = quota.limits
|
|
235
|
+
.map((limit) => limit.leftPercent)
|
|
236
|
+
.filter(isPercent);
|
|
237
|
+
if (percents.length === 0)
|
|
238
|
+
return "unknown";
|
|
239
|
+
const lowest = Math.min(...percents);
|
|
240
|
+
if (lowest <= DANGER_LIMIT_LEFT_PERCENT)
|
|
241
|
+
return "danger";
|
|
242
|
+
if (lowest <= WARNING_LIMIT_LEFT_PERCENT)
|
|
243
|
+
return "warning";
|
|
244
|
+
return "normal";
|
|
245
|
+
}
|
|
246
|
+
if (quota.type === "loading")
|
|
247
|
+
return "unknown";
|
|
248
|
+
return "warning";
|
|
249
|
+
}
|
|
250
|
+
function formatReset(resetAtMs) {
|
|
251
|
+
if (!resetAtMs || !Number.isFinite(resetAtMs) || resetAtMs <= 0) {
|
|
252
|
+
return undefined;
|
|
253
|
+
}
|
|
254
|
+
const date = new Date(resetAtMs);
|
|
255
|
+
if (!Number.isFinite(date.getTime()))
|
|
256
|
+
return undefined;
|
|
257
|
+
const now = new Date();
|
|
258
|
+
const sameDay = now.getFullYear() === date.getFullYear() &&
|
|
259
|
+
now.getMonth() === date.getMonth() &&
|
|
260
|
+
now.getDate() === date.getDate();
|
|
261
|
+
const time = date.toLocaleTimeString(undefined, {
|
|
262
|
+
hour: "2-digit",
|
|
263
|
+
minute: "2-digit",
|
|
264
|
+
hour12: false,
|
|
265
|
+
});
|
|
266
|
+
if (sameDay)
|
|
267
|
+
return time;
|
|
268
|
+
const day = date.toLocaleDateString(undefined, {
|
|
269
|
+
month: "short",
|
|
270
|
+
day: "2-digit",
|
|
271
|
+
});
|
|
272
|
+
return `${time} on ${day}`;
|
|
273
|
+
}
|
|
274
|
+
function formatResetTime(resetAtMs) {
|
|
275
|
+
if (!resetAtMs || !Number.isFinite(resetAtMs) || resetAtMs <= 0) {
|
|
276
|
+
return undefined;
|
|
277
|
+
}
|
|
278
|
+
const date = new Date(resetAtMs);
|
|
279
|
+
if (!Number.isFinite(date.getTime()))
|
|
280
|
+
return undefined;
|
|
281
|
+
return date.toLocaleTimeString(undefined, {
|
|
282
|
+
hour: "2-digit",
|
|
283
|
+
minute: "2-digit",
|
|
284
|
+
hour12: false,
|
|
285
|
+
});
|
|
286
|
+
}
|
|
287
|
+
function formatUpdatedAge(fetchedAt, now) {
|
|
288
|
+
if (!fetchedAt || !Number.isFinite(fetchedAt))
|
|
289
|
+
return "unknown";
|
|
290
|
+
const ageMs = Math.max(0, now - fetchedAt);
|
|
291
|
+
if (ageMs < 60_000)
|
|
292
|
+
return "just now";
|
|
293
|
+
const minutes = Math.floor(ageMs / 60_000);
|
|
294
|
+
if (minutes < 60)
|
|
295
|
+
return `${minutes}m ago`;
|
|
296
|
+
const hours = Math.floor(minutes / 60);
|
|
297
|
+
if (hours < 24)
|
|
298
|
+
return `${hours}h ago`;
|
|
299
|
+
const days = Math.floor(hours / 24);
|
|
300
|
+
return `${days}d ago`;
|
|
301
|
+
}
|
|
302
|
+
function formatDetailsLimit(limit) {
|
|
303
|
+
const label = limit.label.trim() || "quota";
|
|
304
|
+
const left = isPercent(limit.leftPercent)
|
|
305
|
+
? `${limit.leftPercent}% left`
|
|
306
|
+
: "unavailable";
|
|
307
|
+
const reset = formatReset(limit.resetAtMs);
|
|
308
|
+
return reset ? `${label}: ${left}, resets ${reset}` : `${label}: ${left}`;
|
|
309
|
+
}
|
|
310
|
+
export function formatQuotaDetailsText(quota, now = Date.now()) {
|
|
311
|
+
if (quota.type === "loading")
|
|
312
|
+
return "Quota is loading.";
|
|
313
|
+
if (quota.type === "missing")
|
|
314
|
+
return "No Codex OAuth account is configured.";
|
|
315
|
+
if (quota.type === "unavailable")
|
|
316
|
+
return "Quota is unavailable.";
|
|
317
|
+
const lines = [];
|
|
318
|
+
const accountHint = formatAccountHint(quota);
|
|
319
|
+
if (quota.accountLabel && accountHint) {
|
|
320
|
+
lines.push(`Account: ${accountHint} (${quota.accountLabel})`);
|
|
321
|
+
}
|
|
322
|
+
else if (quota.accountLabel) {
|
|
323
|
+
lines.push(`Account: ${quota.accountLabel}`);
|
|
324
|
+
}
|
|
325
|
+
else if (accountHint) {
|
|
326
|
+
lines.push(`Account: ${accountHint}`);
|
|
327
|
+
}
|
|
328
|
+
for (const limit of quota.limits) {
|
|
329
|
+
lines.push(formatDetailsLimit(limit));
|
|
330
|
+
}
|
|
331
|
+
if (quota.planType)
|
|
332
|
+
lines.push(`Plan: ${quota.planType}`);
|
|
333
|
+
if (typeof quota.activeLimit === "number" &&
|
|
334
|
+
Number.isFinite(quota.activeLimit)) {
|
|
335
|
+
lines.push(`Active limit: ${quota.activeLimit}`);
|
|
336
|
+
}
|
|
337
|
+
lines.push(`Source: ${quota.source === "headers" ? "response headers" : "usage endpoint"}`);
|
|
338
|
+
lines.push(`Updated: ${formatUpdatedAge(quota.fetchedAt, now)}`);
|
|
339
|
+
if (quota.stale)
|
|
340
|
+
lines.push("Status: stale fallback");
|
|
341
|
+
return lines.join("\n");
|
|
342
|
+
}
|
|
343
|
+
//# sourceMappingURL=tui-status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui-status.js","sourceRoot":"","sources":["../../lib/tui-status.ts"],"names":[],"mappings":"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"}
|
package/dist/tui.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { TuiPluginModule } from "@opencode-ai/plugin/tui";
|
|
2
|
+
import type { Event } from "@opencode-ai/sdk/v2";
|
|
3
|
+
export declare function shouldRefreshQuotaForEvent(event: Event): boolean;
|
|
4
|
+
declare const module: TuiPluginModule;
|
|
5
|
+
export default module;
|
|
6
|
+
//# sourceMappingURL=tui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../tui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAwPjD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAuBhE;AAsJD,QAAA,MAAM,MAAM,EAAE,eA6Bb,CAAC;AAEF,eAAe,MAAM,CAAC"}
|