better-opencode-openai-codex-auth 0.1.2 → 0.1.3
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/config/README.md +19 -93
- package/config/opencode-modern.json +149 -42
- package/dist/index.d.ts +0 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +195 -94
- package/dist/index.js.map +1 -1
- package/dist/lib/account-pool.d.ts +29 -3
- package/dist/lib/account-pool.d.ts.map +1 -1
- package/dist/lib/account-pool.js +210 -47
- package/dist/lib/account-pool.js.map +1 -1
- package/dist/lib/auth/auth.d.ts +55 -4
- package/dist/lib/auth/auth.d.ts.map +1 -1
- package/dist/lib/auth/auth.js +130 -6
- package/dist/lib/auth/auth.js.map +1 -1
- package/dist/lib/auth/ui/account-menu.d.ts +50 -0
- package/dist/lib/auth/ui/account-menu.d.ts.map +1 -0
- package/dist/lib/auth/ui/account-menu.js +258 -0
- package/dist/lib/auth/ui/account-menu.js.map +1 -0
- package/dist/lib/auth/ui/ansi.d.ts +23 -0
- package/dist/lib/auth/ui/ansi.d.ts.map +1 -0
- package/dist/lib/auth/ui/ansi.js +37 -0
- package/dist/lib/auth/ui/ansi.js.map +1 -0
- package/dist/lib/auth/ui/confirm.d.ts +2 -0
- package/dist/lib/auth/ui/confirm.d.ts.map +1 -0
- package/dist/lib/auth/ui/confirm.js +8 -0
- package/dist/lib/auth/ui/confirm.js.map +1 -0
- package/dist/lib/auth/ui/select.d.ts +21 -0
- package/dist/lib/auth/ui/select.d.ts.map +1 -0
- package/dist/lib/auth/ui/select.js +208 -0
- package/dist/lib/auth/ui/select.js.map +1 -0
- package/dist/lib/constants.d.ts +51 -3
- package/dist/lib/constants.d.ts.map +1 -1
- package/dist/lib/constants.js +55 -3
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/refresh-queue.d.ts +56 -0
- package/dist/lib/refresh-queue.d.ts.map +1 -0
- package/dist/lib/refresh-queue.js +148 -0
- package/dist/lib/refresh-queue.js.map +1 -0
- package/dist/lib/request/fetch-helpers.d.ts +2 -1
- package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
- package/dist/lib/request/fetch-helpers.js +23 -3
- package/dist/lib/request/fetch-helpers.js.map +1 -1
- package/dist/lib/types.d.ts +18 -2
- package/dist/lib/types.d.ts.map +1 -1
- package/package.json +1 -2
- package/scripts/install-opencode-codex-auth.js +7 -27
- package/config/opencode-legacy.json +0 -571
package/dist/lib/account-pool.js
CHANGED
|
@@ -1,15 +1,21 @@
|
|
|
1
|
-
import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
|
|
1
|
+
import { chmodSync, existsSync, mkdirSync, readFileSync, renameSync, rmSync, writeFileSync } from "node:fs";
|
|
2
2
|
import { homedir } from "node:os";
|
|
3
3
|
import { randomUUID } from "node:crypto";
|
|
4
4
|
import { dirname, join } from "node:path";
|
|
5
|
-
|
|
5
|
+
import { ACCOUNT_FAILURE, RATE_LIMIT_TIERS } from "./constants.js";
|
|
6
|
+
const STORAGE_VERSION = 2;
|
|
6
7
|
const DEFAULT_COOLDOWN_MS = 60_000;
|
|
8
|
+
const LOCK_RETRY_MS = 25;
|
|
9
|
+
const LOCK_TIMEOUT_MS = 2_000;
|
|
7
10
|
function storagePath() {
|
|
8
11
|
if (process.env.OPENAI_CODEX_ACCOUNTS_PATH) {
|
|
9
12
|
return process.env.OPENAI_CODEX_ACCOUNTS_PATH;
|
|
10
13
|
}
|
|
11
14
|
return join(homedir(), ".opencode", "openai-codex-accounts.json");
|
|
12
15
|
}
|
|
16
|
+
function lockPath(path) {
|
|
17
|
+
return `${path}.lock`;
|
|
18
|
+
}
|
|
13
19
|
function clampIndex(index, size) {
|
|
14
20
|
if (!Number.isFinite(index) || size <= 0)
|
|
15
21
|
return 0;
|
|
@@ -35,8 +41,73 @@ function normalizeEntry(entry) {
|
|
|
35
41
|
email: entry.email,
|
|
36
42
|
lastUsed: entry.lastUsed,
|
|
37
43
|
rateLimitedUntil: entry.rateLimitedUntil,
|
|
44
|
+
// Preserve failure-tracking fields across save/load
|
|
45
|
+
coolingDownUntil: entry.coolingDownUntil,
|
|
46
|
+
consecutiveFailures: entry.consecutiveFailures,
|
|
47
|
+
lastFailureAt: entry.lastFailureAt,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function mergeAccountEntries(existing, incoming) {
|
|
51
|
+
const incomingIsOlder = incoming.expires < existing.expires;
|
|
52
|
+
const nextAccess = incomingIsOlder ? existing.access : incoming.access;
|
|
53
|
+
const nextRefresh = incomingIsOlder ? existing.refresh : incoming.refresh;
|
|
54
|
+
const nextExpires = incomingIsOlder ? existing.expires : incoming.expires;
|
|
55
|
+
return {
|
|
56
|
+
...existing,
|
|
57
|
+
...incoming,
|
|
58
|
+
access: nextAccess,
|
|
59
|
+
refresh: nextRefresh,
|
|
60
|
+
expires: nextExpires,
|
|
61
|
+
rateLimitedUntil: Math.max(existing.rateLimitedUntil ?? 0, incoming.rateLimitedUntil ?? 0) || undefined,
|
|
62
|
+
coolingDownUntil: Math.max(existing.coolingDownUntil ?? 0, incoming.coolingDownUntil ?? 0) || undefined,
|
|
63
|
+
consecutiveFailures: Math.max(existing.consecutiveFailures ?? 0, incoming.consecutiveFailures ?? 0) || undefined,
|
|
64
|
+
lastFailureAt: Math.max(existing.lastFailureAt ?? 0, incoming.lastFailureAt ?? 0) || undefined,
|
|
65
|
+
lastUsed: Math.max(existing.lastUsed ?? 0, incoming.lastUsed ?? 0) || undefined,
|
|
66
|
+
email: existing.email ?? incoming.email,
|
|
38
67
|
};
|
|
39
68
|
}
|
|
69
|
+
function dedupeAccounts(entries) {
|
|
70
|
+
const deduped = [];
|
|
71
|
+
for (const entry of entries) {
|
|
72
|
+
const normalized = normalizeEntry(entry);
|
|
73
|
+
if (!normalized)
|
|
74
|
+
continue;
|
|
75
|
+
const idx = deduped.findIndex((existing) => existing.accountId === normalized.accountId ||
|
|
76
|
+
(!!existing.email && !!normalized.email && existing.email === normalized.email));
|
|
77
|
+
if (idx >= 0) {
|
|
78
|
+
const existing = deduped[idx];
|
|
79
|
+
if (!existing)
|
|
80
|
+
continue;
|
|
81
|
+
deduped[idx] = mergeAccountEntries(existing, normalized);
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
deduped.push(normalized);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return deduped;
|
|
88
|
+
}
|
|
89
|
+
function acquireLock(path) {
|
|
90
|
+
const target = lockPath(path);
|
|
91
|
+
const started = Date.now();
|
|
92
|
+
while (true) {
|
|
93
|
+
try {
|
|
94
|
+
mkdirSync(target);
|
|
95
|
+
return () => {
|
|
96
|
+
try {
|
|
97
|
+
rmSync(target, { recursive: true, force: true });
|
|
98
|
+
}
|
|
99
|
+
catch { }
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
if (Date.now() - started >= LOCK_TIMEOUT_MS) {
|
|
104
|
+
throw new Error(`Timed out acquiring account-pool lock: ${target}`);
|
|
105
|
+
}
|
|
106
|
+
const waitUntil = Date.now() + LOCK_RETRY_MS;
|
|
107
|
+
while (Date.now() < waitUntil) { }
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
40
111
|
function parseStorage(raw) {
|
|
41
112
|
let parsed;
|
|
42
113
|
try {
|
|
@@ -53,10 +124,11 @@ function parseStorage(raw) {
|
|
|
53
124
|
.map((e) => normalizeEntry(e))
|
|
54
125
|
.filter((e) => e !== null)
|
|
55
126
|
: [];
|
|
127
|
+
const dedupedAccounts = dedupeAccounts(accounts);
|
|
56
128
|
return {
|
|
57
129
|
version: STORAGE_VERSION,
|
|
58
|
-
activeIndex: clampIndex(Number(obj.activeIndex ?? 0),
|
|
59
|
-
accounts,
|
|
130
|
+
activeIndex: clampIndex(Number(obj.activeIndex ?? 0), dedupedAccounts.length || 1),
|
|
131
|
+
accounts: dedupedAccounts,
|
|
60
132
|
};
|
|
61
133
|
}
|
|
62
134
|
function normalizeCooldown(cooldownMs) {
|
|
@@ -94,6 +166,23 @@ function retryAfterFromHeaders(headers, fallbackMs) {
|
|
|
94
166
|
}
|
|
95
167
|
return fallbackMs;
|
|
96
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Resolve the cooldown duration for a rate-limited account.
|
|
171
|
+
*
|
|
172
|
+
* Priority:
|
|
173
|
+
* 1. Tiered duration from known ChatGPT error codes (#10)
|
|
174
|
+
* 2. Server-supplied retry-after header
|
|
175
|
+
* 3. Plugin-configured default or built-in 60s default
|
|
176
|
+
*/
|
|
177
|
+
function resolveCooldownMs(errorCode, headers, configDefault) {
|
|
178
|
+
// Tiered duration for known ChatGPT quota/plan error codes
|
|
179
|
+
if (errorCode && RATE_LIMIT_TIERS[errorCode] !== undefined) {
|
|
180
|
+
return RATE_LIMIT_TIERS[errorCode];
|
|
181
|
+
}
|
|
182
|
+
// Server-supplied header takes precedence over plugin default
|
|
183
|
+
const fallback = normalizeCooldown(configDefault);
|
|
184
|
+
return retryAfterFromHeaders(headers, fallback);
|
|
185
|
+
}
|
|
97
186
|
export class AccountPool {
|
|
98
187
|
accounts = [];
|
|
99
188
|
activeIndex = 0;
|
|
@@ -121,26 +210,47 @@ export class AccountPool {
|
|
|
121
210
|
if (!existsSync(dir)) {
|
|
122
211
|
mkdirSync(dir, { recursive: true });
|
|
123
212
|
}
|
|
124
|
-
const
|
|
125
|
-
version: STORAGE_VERSION,
|
|
126
|
-
activeIndex: clampIndex(this.activeIndex, this.accounts.length || 1),
|
|
127
|
-
accounts: this.accounts,
|
|
128
|
-
};
|
|
129
|
-
const tempPath = `${path}.tmp.${process.pid}.${Date.now()}.${randomUUID()}`;
|
|
130
|
-
writeFileSync(tempPath, `${JSON.stringify(payload, null, 2)}\n`, {
|
|
131
|
-
encoding: "utf8",
|
|
132
|
-
mode: 0o600,
|
|
133
|
-
});
|
|
134
|
-
renameSync(tempPath, path);
|
|
213
|
+
const releaseLock = acquireLock(path);
|
|
135
214
|
try {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
215
|
+
let latestAccounts = [];
|
|
216
|
+
let latestActiveIndex = 0;
|
|
217
|
+
if (existsSync(path)) {
|
|
218
|
+
try {
|
|
219
|
+
const raw = readFileSync(path, "utf8");
|
|
220
|
+
const parsed = parseStorage(raw);
|
|
221
|
+
if (parsed) {
|
|
222
|
+
latestAccounts = parsed.accounts;
|
|
223
|
+
latestActiveIndex = parsed.activeIndex;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
catch { }
|
|
227
|
+
}
|
|
228
|
+
const mergedAccounts = dedupeAccounts([...latestAccounts, ...this.accounts]);
|
|
229
|
+
this.accounts = mergedAccounts;
|
|
230
|
+
this.activeIndex = clampIndex(Math.max(this.activeIndex, latestActiveIndex), mergedAccounts.length || 1);
|
|
231
|
+
const payload = {
|
|
232
|
+
version: STORAGE_VERSION,
|
|
233
|
+
activeIndex: clampIndex(this.activeIndex, this.accounts.length || 1),
|
|
234
|
+
accounts: this.accounts,
|
|
235
|
+
};
|
|
236
|
+
const tempPath = `${path}.tmp.${process.pid}.${Date.now()}.${randomUUID()}`;
|
|
237
|
+
writeFileSync(tempPath, `${JSON.stringify(payload, null, 2)}\n`, {
|
|
238
|
+
encoding: "utf8",
|
|
239
|
+
mode: 0o600,
|
|
240
|
+
});
|
|
241
|
+
renameSync(tempPath, path);
|
|
242
|
+
try {
|
|
243
|
+
chmodSync(path, 0o600);
|
|
244
|
+
}
|
|
245
|
+
catch (chmodErr) {
|
|
246
|
+
if (process.platform !== "win32") {
|
|
247
|
+
console.warn(`[openai-codex-plugin] Failed to chmod ${path}:`, chmodErr);
|
|
248
|
+
}
|
|
142
249
|
}
|
|
143
250
|
}
|
|
251
|
+
finally {
|
|
252
|
+
releaseLock();
|
|
253
|
+
}
|
|
144
254
|
}
|
|
145
255
|
upsert(entry) {
|
|
146
256
|
const normalized = normalizeEntry(entry);
|
|
@@ -155,22 +265,12 @@ export class AccountPool {
|
|
|
155
265
|
const existing = this.accounts[idx];
|
|
156
266
|
if (!existing)
|
|
157
267
|
return;
|
|
158
|
-
|
|
159
|
-
const nextAccess = incomingIsOlder ? existing.access : normalized.access;
|
|
160
|
-
const nextRefresh = incomingIsOlder ? existing.refresh : normalized.refresh;
|
|
161
|
-
const nextExpires = incomingIsOlder ? existing.expires : normalized.expires;
|
|
162
|
-
this.accounts[idx] = {
|
|
163
|
-
...existing,
|
|
164
|
-
...normalized,
|
|
165
|
-
access: nextAccess,
|
|
166
|
-
refresh: nextRefresh,
|
|
167
|
-
expires: nextExpires,
|
|
168
|
-
rateLimitedUntil: existing.rateLimitedUntil,
|
|
169
|
-
};
|
|
268
|
+
this.accounts[idx] = mergeAccountEntries(existing, normalized);
|
|
170
269
|
}
|
|
171
270
|
else {
|
|
172
271
|
this.accounts.push(normalized);
|
|
173
272
|
}
|
|
273
|
+
this.accounts = dedupeAccounts(this.accounts);
|
|
174
274
|
this.activeIndex = clampIndex(this.activeIndex, this.accounts.length || 1);
|
|
175
275
|
}
|
|
176
276
|
count() {
|
|
@@ -178,36 +278,84 @@ export class AccountPool {
|
|
|
178
278
|
}
|
|
179
279
|
getAvailableCount() {
|
|
180
280
|
const t = now();
|
|
181
|
-
return this.accounts.filter((a) => !a.rateLimitedUntil || a.rateLimitedUntil <= t)
|
|
281
|
+
return this.accounts.filter((a) => (!a.rateLimitedUntil || a.rateLimitedUntil <= t) &&
|
|
282
|
+
(!a.coolingDownUntil || a.coolingDownUntil <= t)).length;
|
|
182
283
|
}
|
|
183
284
|
getMinRetryAfterMs() {
|
|
184
285
|
const t = now();
|
|
185
286
|
let min = null;
|
|
186
287
|
for (const account of this.accounts) {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
288
|
+
const limitRemaining = account.rateLimitedUntil && account.rateLimitedUntil > t
|
|
289
|
+
? account.rateLimitedUntil - t
|
|
290
|
+
: null;
|
|
291
|
+
const coolRemaining = account.coolingDownUntil && account.coolingDownUntil > t
|
|
292
|
+
? account.coolingDownUntil - t
|
|
293
|
+
: null;
|
|
294
|
+
// The soonest this account will be usable
|
|
295
|
+
const remaining = limitRemaining !== null || coolRemaining !== null
|
|
296
|
+
? Math.min(limitRemaining ?? Infinity, coolRemaining ?? Infinity)
|
|
297
|
+
: null;
|
|
298
|
+
if (remaining !== null && (min === null || remaining < min)) {
|
|
191
299
|
min = remaining;
|
|
192
300
|
}
|
|
193
301
|
}
|
|
194
302
|
return min;
|
|
195
303
|
}
|
|
196
|
-
|
|
304
|
+
/**
|
|
305
|
+
* Mark an account as rate-limited.
|
|
306
|
+
* Applies tiered cooldown based on the ChatGPT error code (#10):
|
|
307
|
+
* - usage_limit_reached → 4 hours
|
|
308
|
+
* - usage_not_included → 24 hours
|
|
309
|
+
* - rate_limit_exceeded → 60 seconds
|
|
310
|
+
* - unknown / no code → retry-after header or configured default
|
|
311
|
+
*/
|
|
312
|
+
markRateLimited(accountId, headers, cooldownMs, errorCode) {
|
|
313
|
+
const account = this.accounts.find((a) => a.accountId === accountId);
|
|
314
|
+
if (!account)
|
|
315
|
+
return;
|
|
316
|
+
const duration = resolveCooldownMs(errorCode, headers, cooldownMs);
|
|
317
|
+
account.rateLimitedUntil = now() + duration;
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Record an auth/token-refresh failure for an account (#9).
|
|
321
|
+
*
|
|
322
|
+
* Increments consecutiveFailures with a 2-hour TTL reset. After
|
|
323
|
+
* MAX_FAILURES consecutive failures the account is placed in cooldown
|
|
324
|
+
* for COOLDOWN_MS — during which it is skipped by next().
|
|
325
|
+
*/
|
|
326
|
+
markAuthFailure(accountId) {
|
|
197
327
|
const account = this.accounts.find((a) => a.accountId === accountId);
|
|
198
328
|
if (!account)
|
|
199
329
|
return;
|
|
200
|
-
const
|
|
201
|
-
const
|
|
202
|
-
|
|
330
|
+
const t = now();
|
|
331
|
+
const withinWindow = account.lastFailureAt !== undefined &&
|
|
332
|
+
t - account.lastFailureAt < ACCOUNT_FAILURE.FAILURE_RESET_MS;
|
|
333
|
+
const failures = withinWindow ? (account.consecutiveFailures ?? 0) + 1 : 1;
|
|
334
|
+
account.consecutiveFailures = failures;
|
|
335
|
+
account.lastFailureAt = t;
|
|
336
|
+
if (failures >= ACCOUNT_FAILURE.MAX_FAILURES) {
|
|
337
|
+
account.coolingDownUntil = t + ACCOUNT_FAILURE.COOLDOWN_MS;
|
|
338
|
+
account.consecutiveFailures = 0; // reset so next cooldown window starts fresh
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Clear the failure counter and cooldown for an account (called on success).
|
|
343
|
+
*/
|
|
344
|
+
clearAuthFailures(accountId) {
|
|
345
|
+
const account = this.accounts.find((a) => a.accountId === accountId);
|
|
346
|
+
if (!account)
|
|
347
|
+
return;
|
|
348
|
+
account.consecutiveFailures = 0;
|
|
349
|
+
account.lastFailureAt = undefined;
|
|
350
|
+
account.coolingDownUntil = undefined;
|
|
203
351
|
}
|
|
204
352
|
next(strategy) {
|
|
205
353
|
if (this.accounts.length === 0)
|
|
206
354
|
return null;
|
|
207
|
-
this.
|
|
355
|
+
this.clearExpiredStates();
|
|
208
356
|
if (strategy === "sticky") {
|
|
209
357
|
const current = this.accounts[this.activeIndex];
|
|
210
|
-
if (current && !this.
|
|
358
|
+
if (current && !this.isUnavailable(current)) {
|
|
211
359
|
current.lastUsed = now();
|
|
212
360
|
return current;
|
|
213
361
|
}
|
|
@@ -216,7 +364,7 @@ export class AccountPool {
|
|
|
216
364
|
for (let i = 0; i < this.accounts.length; i++) {
|
|
217
365
|
const idx = (start + i) % this.accounts.length;
|
|
218
366
|
const candidate = this.accounts[idx];
|
|
219
|
-
if (!candidate || this.
|
|
367
|
+
if (!candidate || this.isUnavailable(candidate))
|
|
220
368
|
continue;
|
|
221
369
|
this.activeIndex = idx;
|
|
222
370
|
candidate.lastUsed = now();
|
|
@@ -232,15 +380,30 @@ export class AccountPool {
|
|
|
232
380
|
account.refresh = refresh;
|
|
233
381
|
account.expires = expires;
|
|
234
382
|
}
|
|
235
|
-
|
|
383
|
+
/** Returns all accounts (for use by ProactiveRefreshQueue) */
|
|
384
|
+
getAccounts() {
|
|
385
|
+
return this.accounts;
|
|
386
|
+
}
|
|
387
|
+
/** True if account is rate-limited OR in auth-failure cooldown */
|
|
388
|
+
isUnavailable(account) {
|
|
389
|
+
return this.isRateLimited(account) || this.isCoolingDown(account);
|
|
390
|
+
}
|
|
391
|
+
isRateLimited(account) {
|
|
236
392
|
return !!account.rateLimitedUntil && account.rateLimitedUntil > now();
|
|
237
393
|
}
|
|
238
|
-
|
|
394
|
+
isCoolingDown(account) {
|
|
395
|
+
return !!account.coolingDownUntil && account.coolingDownUntil > now();
|
|
396
|
+
}
|
|
397
|
+
/** Clear expired rate-limit and cooldown timestamps */
|
|
398
|
+
clearExpiredStates() {
|
|
239
399
|
const t = now();
|
|
240
400
|
for (const account of this.accounts) {
|
|
241
401
|
if (account.rateLimitedUntil && account.rateLimitedUntil <= t) {
|
|
242
402
|
delete account.rateLimitedUntil;
|
|
243
403
|
}
|
|
404
|
+
if (account.coolingDownUntil && account.coolingDownUntil <= t) {
|
|
405
|
+
delete account.coolingDownUntil;
|
|
406
|
+
}
|
|
244
407
|
}
|
|
245
408
|
}
|
|
246
409
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"account-pool.js","sourceRoot":"","sources":["../../lib/account-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACpG,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAG1C,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAEnC,SAAS,WAAW;IACnB,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC;QAC5C,OAAO,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;IAC/C,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,4BAA4B,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,IAAY;IAC9C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IACpB,IAAI,CAAC,IAAI,IAAI;QAAE,OAAO,IAAI,GAAG,CAAC,CAAC;IAC/B,OAAO,CAAC,CAAC;AACV,CAAC;AAED,SAAS,GAAG;IACX,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,cAAc,CAAC,KAAuB;IAC9C,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5F,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO;QACN,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAClC,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;KACxC,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,GAAW;IAChC,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,GAAG,GAAG,MAAqC,CAAC;IAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;QAC3C,CAAC,CAAC,GAAG,CAAC,QAAQ;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAqB,CAAC,CAAC;aACjD,MAAM,CAAC,CAAC,CAAC,EAAyB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;QACnD,CAAC,CAAC,EAAE,CAAC;IACN,OAAO;QACN,OAAO,EAAE,eAAe;QACxB,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;QAC3E,QAAQ;KACR,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAmB;IAC7C,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,IAAI,EAAE,CAAC;QACnF,OAAO,mBAAmB,CAAC;IAC5B,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAgB,EAAE,UAAkB;IAClE,MAAM,UAAU,GAAG,UAAU,CAAC;IAC9B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACnD,IAAI,YAAY,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,IAAI,UAAU;YAAE,OAAO,MAAM,CAAC;IAChF,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC9C,IAAI,UAAU,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,OAAO,GAAG,IAAI,IAAI,UAAU,EAAE,CAAC;YAC3E,OAAO,OAAO,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,MAAM,SAAS,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC;YACtC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,IAAI,UAAU;gBAAE,OAAO,SAAS,CAAC;QAChE,CAAC;IACF,CAAC;IACD,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACxE,IAAI,YAAY,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;YAAE,OAAO,MAAM,GAAG,IAAI,CAAC;IAC/D,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,MAAM,OAAO,WAAW;IACf,QAAQ,GAAuB,EAAE,CAAC;IAClC,WAAW,GAAG,CAAC,CAAC;IAExB,MAAM,CAAC,IAAI;QACV,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;QAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACnC,IAAI,CAAC;YACJ,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM;gBAAE,OAAO,IAAI,CAAC;YACzB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YAChC,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;YAC/E,OAAO,IAAI,CAAC;QACb,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,IAAI,CAAC;QACb,CAAC;IACF,CAAC;IAED,IAAI;QACH,MAAM,IAAI,GAAG,WAAW,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACtB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrC,CAAC;QACD,MAAM,OAAO,GAAuB;YACnC,OAAO,EAAE,eAAe;YACxB,WAAW,EAAE,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;YACpE,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACvB,CAAC;QACF,MAAM,QAAQ,GAAG,GAAG,IAAI,QAAQ,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,UAAU,EAAE,EAAE,CAAC;QAC5E,aAAa,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE;YAChE,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,KAAK;SACX,CAAC,CAAC;QACH,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC;YACJ,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxB,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YACnB,8FAA8F;YAC9F,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC,yCAAyC,IAAI,GAAG,EAAE,QAAQ,CAAC,CAAC;YAC1E,CAAC;QACF,CAAC;IACF,CAAC;IAED,MAAM,CAAC,KAAuB;QAC7B,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,SAAS,CAAC,CAAC;QACvF,MAAM,OAAO,GACZ,UAAU,CAAC,KAAK,IAAI,SAAS,GAAG,CAAC;YAChC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,CAAC;YACzE,CAAC,CAAC,CAAC,CAAC,CAAC;QACP,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC;QACjD,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,QAAQ;gBAAE,OAAO;YACtB,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;YAC9D,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;YACzE,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;YAC5E,MAAM,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC;YAC5E,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG;gBACpB,GAAG,QAAQ;gBACX,GAAG,UAAU;gBACb,MAAM,EAAE,UAAU;gBAClB,OAAO,EAAE,WAAW;gBACpB,OAAO,EAAE,WAAW;gBACpB,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;aAC3C,CAAC;QACH,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK;QACJ,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,iBAAiB;QAChB,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3F,CAAC;IAED,kBAAkB;QACjB,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,GAAkB,IAAI,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,IAAI,CAAC;gBAAE,SAAS;YACzE,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC/C,IAAI,GAAG,KAAK,IAAI,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;gBACrC,GAAG,GAAG,SAAS,CAAC;YACjB,CAAC;QACF,CAAC;QACD,OAAO,GAAG,CAAC;IACZ,CAAC;IAED,eAAe,CAAC,SAAiB,EAAE,OAAgB,EAAE,UAAmB;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC5D,OAAO,CAAC,gBAAgB,GAAG,GAAG,EAAE,GAAG,UAAU,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC,QAAkC;QACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAC5C,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAChD,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzC,OAAO,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC;gBACzB,OAAO,OAAO,CAAC;YAChB,CAAC;QACF,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAC5G,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACrC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;gBAAE,SAAS;YACtD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,SAAS,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED,WAAW,CAAC,SAAiB,EAAE,MAAc,EAAE,OAAe,EAAE,OAAe;QAC9E,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QACxB,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1B,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAEO,SAAS,CAAC,OAAyB;QAC1C,OAAO,CAAC,CAAC,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,GAAG,GAAG,EAAE,CAAC;IACvE,CAAC;IAEO,kBAAkB;QACzB,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrC,IAAI,OAAO,CAAC,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,IAAI,CAAC,EAAE,CAAC;gBAC/D,OAAO,OAAO,CAAC,gBAAgB,CAAC;YACjC,CAAC;QACF,CAAC;IACF,CAAC;CACD"}
|
|
1
|
+
{"version":3,"file":"account-pool.js","sourceRoot":"","sources":["../../lib/account-pool.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/auth/auth.d.ts
CHANGED
|
@@ -16,11 +16,14 @@ export declare function createState(): string;
|
|
|
16
16
|
*/
|
|
17
17
|
export declare function parseAuthorizationInput(input: string): ParsedAuthInput;
|
|
18
18
|
/**
|
|
19
|
-
* Exchange authorization code for access and refresh tokens
|
|
19
|
+
* Exchange authorization code for access and refresh tokens.
|
|
20
|
+
* Captures id_token when returned — it contains chatgpt_account_id as a
|
|
21
|
+
* dedicated JWT claim, making account-ID extraction more reliable.
|
|
22
|
+
*
|
|
20
23
|
* @param code - Authorization code from OAuth flow
|
|
21
24
|
* @param verifier - PKCE verifier
|
|
22
25
|
* @param redirectUri - OAuth redirect URI
|
|
23
|
-
* @returns Token result
|
|
26
|
+
* @returns Token result (includes id_token when available)
|
|
24
27
|
*/
|
|
25
28
|
export declare function exchangeAuthorizationCode(code: string, verifier: string, redirectUri?: string): Promise<TokenResult>;
|
|
26
29
|
/**
|
|
@@ -30,14 +33,62 @@ export declare function exchangeAuthorizationCode(code: string, verifier: string
|
|
|
30
33
|
*/
|
|
31
34
|
export declare function decodeJWT(token: string): JWTPayload | null;
|
|
32
35
|
/**
|
|
33
|
-
*
|
|
36
|
+
* Extract the ChatGPT account ID from a JWT token string.
|
|
37
|
+
* Checks (in priority order, matching first-party opencode CodexAuthPlugin):
|
|
38
|
+
* 1. Root-level chatgpt_account_id claim
|
|
39
|
+
* 2. Nested https://api.openai.com/auth.chatgpt_account_id claim
|
|
40
|
+
* 3. organizations[0].id fallback
|
|
41
|
+
*
|
|
42
|
+
* @param token - JWT string (id_token or access_token)
|
|
43
|
+
* @returns Account ID or undefined if not found
|
|
44
|
+
*/
|
|
45
|
+
export declare function extractAccountIdFromToken(token: string): string | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Extract account ID from a token-response object.
|
|
48
|
+
* Tries id_token first (more authoritative), then access_token.
|
|
49
|
+
*
|
|
50
|
+
* @param tokens - Object with access_token and optional id_token
|
|
51
|
+
* @returns Account ID or undefined
|
|
52
|
+
*/
|
|
53
|
+
export declare function extractAccountId(tokens: {
|
|
54
|
+
access_token: string;
|
|
55
|
+
id_token?: string;
|
|
56
|
+
}): string | undefined;
|
|
57
|
+
/**
|
|
58
|
+
* Refresh access token using refresh token.
|
|
59
|
+
* Captures id_token when returned by the server.
|
|
60
|
+
*
|
|
34
61
|
* @param refreshToken - Refresh token
|
|
35
62
|
* @returns Token result
|
|
36
63
|
*/
|
|
37
64
|
export declare function refreshAccessToken(refreshToken: string): Promise<TokenResult>;
|
|
65
|
+
export declare function refreshAccessTokenShared(accountKey: string, refreshToken: string): Promise<TokenResult>;
|
|
38
66
|
/**
|
|
39
|
-
* Create OAuth authorization flow
|
|
67
|
+
* Create OAuth authorization flow (browser PKCE)
|
|
40
68
|
* @returns Authorization flow details
|
|
41
69
|
*/
|
|
42
70
|
export declare function createAuthorizationFlow(): Promise<AuthorizationFlow>;
|
|
71
|
+
/**
|
|
72
|
+
* Device authorization flow result
|
|
73
|
+
*/
|
|
74
|
+
export interface DeviceAuthorizationFlow {
|
|
75
|
+
/** URL the user visits to enter the code */
|
|
76
|
+
activateUrl: string;
|
|
77
|
+
/** Short code the user types on the device page */
|
|
78
|
+
userCode: string;
|
|
79
|
+
/** Poll interval in milliseconds (server-controlled + safety margin) */
|
|
80
|
+
pollIntervalMs: number;
|
|
81
|
+
/** Poll for completion and exchange for tokens */
|
|
82
|
+
poll: () => Promise<TokenResult>;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Create a headless/device-code authorization flow.
|
|
86
|
+
*
|
|
87
|
+
* This flow requires no browser on the machine running opencode. The user
|
|
88
|
+
* visits a URL on any device and enters a short code to authenticate.
|
|
89
|
+
* Matches the "headless" method in the first-party opencode CodexAuthPlugin.
|
|
90
|
+
*
|
|
91
|
+
* @returns Device authorization flow details
|
|
92
|
+
*/
|
|
93
|
+
export declare function createDeviceAuthorizationFlow(): Promise<DeviceAuthorizationFlow>;
|
|
43
94
|
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../lib/auth/auth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAY,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../lib/auth/auth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAY,iBAAiB,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzG,eAAO,MAAM,SAAS,iCAAiC,CAAC;AACxD,eAAO,MAAM,aAAa,4CAA4C,CAAC;AACvE,eAAO,MAAM,SAAS,wCAAwC,CAAC;AAC/D,eAAO,MAAM,YAAY,wCAAwC,CAAC;AAClE,eAAO,MAAM,KAAK,wCAAwC,CAAC;AAI3D;;;GAGG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,CAwBtE;AAED;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,GAAE,MAAqB,GAChC,OAAO,CAAC,WAAW,CAAC,CAsCtB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAkB1D;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAyB3E;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,GAAG,SAAS,CAMrB;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAiDnF;AAED,wBAAgB,wBAAwB,CACvC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,GAClB,OAAO,CAAC,WAAW,CAAC,CAYtB;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAkB1E;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,cAAc,EAAE,MAAM,CAAC;IACvB,kDAAkD;IAClD,IAAI,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAmEtF"}
|