opencode-claude-auth 2.1.4 → 2.1.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 +7 -2
- package/dist/credentials.d.ts +25 -7
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +269 -52
- package/dist/credentials.js.map +1 -1
- package/dist/http.d.ts +3 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +74 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +152 -67
- package/dist/index.js.map +1 -1
- package/dist/keychain.d.ts +20 -1
- package/dist/keychain.d.ts.map +1 -1
- package/dist/keychain.js +66 -1
- package/dist/keychain.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -176,10 +176,15 @@ export ANTHROPIC_CLI_VERSION=2.2.0
|
|
|
176
176
|
- Sets required API headers (beta flags, billing, user-agent) with model-aware selection
|
|
177
177
|
- On macOS, enumerates all `Claude Code-credentials*` Keychain entries and labels them by subscription tier
|
|
178
178
|
- Provides an account switcher via `opencode auth login` when multiple accounts are found; persists selection to `~/.local/share/opencode/claude-account-source.txt`
|
|
179
|
-
- Syncs credentials to `auth.json` on startup and every 5 minutes as a fallback
|
|
179
|
+
- Syncs credentials to `auth.json` on startup and every 5 minutes as a fallback; that same tick proactively refreshes once the token is within an hour of expiry
|
|
180
180
|
- On Windows, writes to both `%USERPROFILE%\.local\share\opencode\auth.json` and `%LOCALAPPDATA%\opencode\auth.json`
|
|
181
|
+
- Re-reads the credential source on every cache miss, so an account rotated by something other than this plugin — the `claude` CLI in another terminal, a second OpenCode instance, or a switcher like [claude-swap](https://github.com/realiti4/claude-swap) — gets picked up mid-session without a restart. Bounded by the same 30s cache, so it adds at most about two source reads a minute under load. A stored token is adopted whenever it is usable, and when it isn't only if the one already held is also unusable — otherwise a failed write-back would resurrect the pre-refresh token it left behind
|
|
182
|
+
- Guards credential write-back with the access token the refresh started from, so a switch landing mid-refresh can't write one account's rotated tokens into another account's slot
|
|
181
183
|
- Retries API requests on 429 (rate limit) and 529 (overloaded) with exponential backoff, respecting `retry-after` headers
|
|
182
|
-
-
|
|
184
|
+
- On a 429 that outlives those backoff retries, re-reads the source once and retries only if the access token changed, so a rate limit another process has already resolved by switching accounts isn't surfaced. A changed token isn't proof of a switch — a routine refresh of the same account changes it too — so this costs at most one extra request
|
|
185
|
+
- On a 401, recovers in place rather than surfacing it: adopts an externally rotated token if the source now holds one, otherwise forces an OAuth refresh, then retries the request. Bounded at two attempts, so a rejected token costs at most three API calls. A 401 that survives recovery is returned unmodified, without SSE stream transformation, since it carries an error body rather than a stream
|
|
186
|
+
- Refreshes directly via `POST https://claude.ai/v1/oauth/token` using the runtime's own `fetch` (no LLM tokens consumed, no subprocess). Requests are triggered within 60 seconds of expiry on the API request path and within an hour on the background tick; concurrent refreshes of one account share a single request, since each rotation invalidates the previous refresh token
|
|
187
|
+
- Falls back to the `claude` CLI only within the 60-second window, the point at which Claude Code will actually rotate the token — running it earlier costs a real API request and returns the same token. New tokens are written back to Keychain (macOS) or credentials file (Linux/Windows) to keep stored credentials in sync with rotated refresh tokens
|
|
183
188
|
- If credentials aren't OAuth-based, the auth loader returns `{}` and falls through to API key auth
|
|
184
189
|
- If credentials are unavailable or unreadable, the plugin disables itself and OpenCode continues without Claude auth
|
|
185
190
|
|
package/dist/credentials.d.ts
CHANGED
|
@@ -11,7 +11,19 @@ export declare function syncAuthJson(creds: ClaudeCredentials): void;
|
|
|
11
11
|
export declare const OAUTH_TOKEN_URL = "https://claude.ai/v1/oauth/token";
|
|
12
12
|
export declare const OAUTH_CLIENT_ID = "9d1c250a-e61b-44d9-88ed-5944d1962f5e";
|
|
13
13
|
export declare function parseOAuthResponse(raw: string, currentRefreshToken: string, now?: number): ClaudeCredentials | null;
|
|
14
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Exchanges a refresh token for fresh credentials using the runtime's own
|
|
16
|
+
* fetch.
|
|
17
|
+
*
|
|
18
|
+
* This previously ran the request inside a child process spawned as
|
|
19
|
+
* `process.execPath -e <script>`. That assumed process.execPath is a
|
|
20
|
+
* JavaScript runtime, which does not hold inside OpenCode: the plugin runs
|
|
21
|
+
* in a compiled single-file executable, so process.execPath is the OpenCode
|
|
22
|
+
* binary itself and `-e` is not a script to evaluate. Every refresh exited
|
|
23
|
+
* non-zero with empty stdout and silently fell through to the claude CLI.
|
|
24
|
+
* Node 18+ and Bun both expose a global fetch, so no subprocess is needed.
|
|
25
|
+
*/
|
|
26
|
+
export declare function refreshViaOAuth(refreshToken: string, timeoutMs?: number): Promise<ClaudeCredentials | null>;
|
|
15
27
|
/**
|
|
16
28
|
* Refreshes the given (or active) account's credentials if they are within
|
|
17
29
|
* `thresholdMs` of expiry. Defaults to 60s, matching the reactive
|
|
@@ -21,13 +33,19 @@ export declare function refreshViaOAuth(refreshToken: string): ClaudeCredentials
|
|
|
21
33
|
* of threshold, so this always operates on the currently active account
|
|
22
34
|
* unless one is explicitly passed in.
|
|
23
35
|
*/
|
|
24
|
-
export declare function refreshIfNeeded(account?: ClaudeAccount, thresholdMs?: number): ClaudeCredentials | null
|
|
36
|
+
export declare function refreshIfNeeded(account?: ClaudeAccount, thresholdMs?: number): Promise<ClaudeCredentials | null>;
|
|
25
37
|
export declare function getCredentialsForSync(): ClaudeCredentials | null;
|
|
26
38
|
/**
|
|
27
39
|
* Re-read only the active account's credentials from its source (single
|
|
28
|
-
* keychain service read or credentials file) and update them in place
|
|
29
|
-
*
|
|
30
|
-
*
|
|
40
|
+
* keychain service read or credentials file) and update them in place,
|
|
41
|
+
* so an externally refreshed token is picked up without a full
|
|
42
|
+
* multi-account keychain rescan.
|
|
43
|
+
*
|
|
44
|
+
* Currently has no call sites: the 401 path uses
|
|
45
|
+
* reloadCredentialsFromSource, which additionally validates the result
|
|
46
|
+
* and refreshes the cache. Wiring this up or deleting it is tracked as a
|
|
47
|
+
* follow-up; until then it must stay consistent with the read paths that
|
|
48
|
+
* are live, hence the configDir below.
|
|
31
49
|
*/
|
|
32
50
|
export declare function reloadActiveAccount(): void;
|
|
33
51
|
/**
|
|
@@ -37,7 +55,7 @@ export declare function reloadActiveAccount(): void;
|
|
|
37
55
|
* On success the account, its source, and the cache are all updated.
|
|
38
56
|
* The refresh function is injectable for tests.
|
|
39
57
|
*/
|
|
40
|
-
export declare function forceRefreshActiveAccount(refresh?: (refreshToken: string) => ClaudeCredentials | null): ClaudeCredentials | null
|
|
58
|
+
export declare function forceRefreshActiveAccount(refresh?: (refreshToken: string) => Promise<ClaudeCredentials | null>): Promise<ClaudeCredentials | null>;
|
|
41
59
|
/**
|
|
42
60
|
* Drop the active account's cached credentials so the next
|
|
43
61
|
* getCachedCredentials() call re-reads from the source, bypassing the
|
|
@@ -45,6 +63,6 @@ export declare function forceRefreshActiveAccount(refresh?: (refreshToken: strin
|
|
|
45
63
|
* valid locally.
|
|
46
64
|
*/
|
|
47
65
|
export declare function invalidateCredentialCache(): void;
|
|
48
|
-
export declare function getCachedCredentials(): ClaudeCredentials | null
|
|
66
|
+
export declare function getCachedCredentials(): Promise<ClaudeCredentials | null>;
|
|
49
67
|
export declare function reloadCredentialsFromSource(): ClaudeCredentials | null;
|
|
50
68
|
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAUA,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAUA,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACvB,MAAM,eAAe,CAAA;AAKtB,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAqBtD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAE5D;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAQ3D;AAED,wBAAgB,mBAAmB,IAAI,aAAa,EAAE,CAUrD;AAED,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAOvD;AAYD,wBAAgB,0BAA0B,IAAI,MAAM,GAAG,IAAI,CAU1D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAStD;AA4CD,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAc3D;AAED,eAAO,MAAM,eAAe,qCAAqC,CAAA;AACjE,eAAO,MAAM,eAAe,yCAAyC,CAAA;AAErE,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,mBAAmB,EAAE,MAAM,EAC3B,GAAG,GAAE,MAAmB,GACvB,iBAAiB,GAAG,IAAI,CAoB1B;AAID;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,SAAS,SAAmB,GAC3B,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAmDnC;AA0CD;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,OAAO,CAAC,EAAE,aAAa,EACvB,WAAW,SAAS,GACnB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA2EnC;AA6OD,wBAAgB,qBAAqB,IAAI,iBAAiB,GAAG,IAAI,CAUhE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAY1C;AAED;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC7C,OAAO,GAAE,CACP,YAAY,EAAE,MAAM,KACjB,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAmB,GACvD,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAyCnC;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAMhD;AAED,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAgC9E;AAED,wBAAgB,2BAA2B,IAAI,iBAAiB,GAAG,IAAI,CAmDtE"}
|
package/dist/credentials.js
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
2
2
|
import { chmodSync, existsSync, mkdirSync, readFileSync, writeFileSync, } from "node:fs";
|
|
3
3
|
import { homedir, tmpdir } from "node:os";
|
|
4
4
|
import { dirname, join } from "node:path";
|
|
5
5
|
import { PRIMARY_SERVICE, readAllClaudeAccounts, refreshAccount, writeBackCredentials, } from "./keychain.js";
|
|
6
6
|
import { resetExcludedBetas } from "./betas.js";
|
|
7
|
+
import { fetchWithRetry } from "./http.js";
|
|
7
8
|
import { log } from "./logger.js";
|
|
8
9
|
const CREDENTIAL_CACHE_TTL_MS = 30_000;
|
|
10
|
+
// Only inside this window will the claude CLI actually rotate a token, so
|
|
11
|
+
// it is also the only window where spawning it is worth a real API request.
|
|
12
|
+
const CLI_FALLBACK_THRESHOLD_MS = 60_000;
|
|
9
13
|
const accountCacheMap = new Map();
|
|
14
|
+
const inFlightRefreshes = new Map();
|
|
15
|
+
// Accounts currently running on credentials borrowed from another account.
|
|
16
|
+
// Those tokens belong to the lender: they must never be used as this
|
|
17
|
+
// account's refresh source, and never written back to its store.
|
|
18
|
+
const borrowedCredentialAccounts = new WeakSet();
|
|
10
19
|
let activeAccountSource = null;
|
|
11
20
|
let allAccounts = [];
|
|
12
21
|
export function initAccounts(accounts) {
|
|
@@ -143,36 +152,47 @@ export function parseOAuthResponse(raw, currentRefreshToken, now = Date.now()) {
|
|
|
143
152
|
expiresAt: Math.trunc(now + (data.expires_in ?? 36_000) * 1000),
|
|
144
153
|
};
|
|
145
154
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
.catch(e => { process.stdout.write(JSON.stringify({ error: String(e) })); process.exit(1); });
|
|
155
|
+
const OAUTH_TIMEOUT_MS = 15_000;
|
|
156
|
+
/**
|
|
157
|
+
* Exchanges a refresh token for fresh credentials using the runtime's own
|
|
158
|
+
* fetch.
|
|
159
|
+
*
|
|
160
|
+
* This previously ran the request inside a child process spawned as
|
|
161
|
+
* `process.execPath -e <script>`. That assumed process.execPath is a
|
|
162
|
+
* JavaScript runtime, which does not hold inside OpenCode: the plugin runs
|
|
163
|
+
* in a compiled single-file executable, so process.execPath is the OpenCode
|
|
164
|
+
* binary itself and `-e` is not a script to evaluate. Every refresh exited
|
|
165
|
+
* non-zero with empty stdout and silently fell through to the claude CLI.
|
|
166
|
+
* Node 18+ and Bun both expose a global fetch, so no subprocess is needed.
|
|
167
|
+
*/
|
|
168
|
+
export async function refreshViaOAuth(refreshToken, timeoutMs = OAUTH_TIMEOUT_MS) {
|
|
169
|
+
const body = new URLSearchParams({
|
|
170
|
+
grant_type: "refresh_token",
|
|
171
|
+
client_id: OAUTH_CLIENT_ID,
|
|
172
|
+
refresh_token: refreshToken,
|
|
165
173
|
});
|
|
166
|
-
|
|
174
|
+
const controller = new AbortController();
|
|
175
|
+
const timer = setTimeout(() => controller.abort(), timeoutMs);
|
|
167
176
|
try {
|
|
168
177
|
log("refresh_started", { source: "oauth" });
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
178
|
+
// The token endpoint rate-limits valid refresh requests, and several
|
|
179
|
+
// OpenCode instances refreshing near expiry cluster their calls, so a
|
|
180
|
+
// 429 here is transient rather than terminal. The shared helper caps
|
|
181
|
+
// its own backoff, and the abort signal bounds the whole sequence.
|
|
182
|
+
const response = await fetchWithRetry(OAUTH_TOKEN_URL, {
|
|
183
|
+
method: "POST",
|
|
184
|
+
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
|
185
|
+
body: body.toString(),
|
|
186
|
+
signal: controller.signal,
|
|
174
187
|
});
|
|
175
|
-
|
|
188
|
+
if (!response.ok) {
|
|
189
|
+
log("refresh_failed", {
|
|
190
|
+
source: "oauth",
|
|
191
|
+
error: `HTTP ${response.status}`,
|
|
192
|
+
});
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
const creds = parseOAuthResponse(await response.text(), refreshToken);
|
|
176
196
|
if (!creds) {
|
|
177
197
|
log("refresh_failed", {
|
|
178
198
|
source: "oauth",
|
|
@@ -190,6 +210,9 @@ export function refreshViaOAuth(refreshToken) {
|
|
|
190
210
|
});
|
|
191
211
|
return null;
|
|
192
212
|
}
|
|
213
|
+
finally {
|
|
214
|
+
clearTimeout(timer);
|
|
215
|
+
}
|
|
193
216
|
}
|
|
194
217
|
function refreshViaCli(configDir, requireConfigDir = false) {
|
|
195
218
|
if (requireConfigDir && !configDir) {
|
|
@@ -238,36 +261,146 @@ function refreshViaCli(configDir, requireConfigDir = false) {
|
|
|
238
261
|
* of threshold, so this always operates on the currently active account
|
|
239
262
|
* unless one is explicitly passed in.
|
|
240
263
|
*/
|
|
241
|
-
export function refreshIfNeeded(account, thresholdMs = 60_000) {
|
|
264
|
+
export async function refreshIfNeeded(account, thresholdMs = 60_000) {
|
|
242
265
|
const target = account ?? getActiveAccount();
|
|
243
266
|
if (!target)
|
|
244
267
|
return null;
|
|
245
|
-
// Pick up
|
|
246
|
-
//
|
|
247
|
-
//
|
|
248
|
-
//
|
|
249
|
-
//
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
268
|
+
// Pick up credentials replaced externally — cswap switching accounts, the
|
|
269
|
+
// claude CLI in another terminal, or a second OpenCode instance. This was
|
|
270
|
+
// once limited to file sources, on the false assumption that a keychain
|
|
271
|
+
// entry is only ever mutated by our own writeBackCredentials. Bounded by
|
|
272
|
+
// getCachedCredentials's 30s TTL, so it fires at most ~2x/min under load.
|
|
273
|
+
//
|
|
274
|
+
// A keychain read shells out to `security`, which throws when the keychain
|
|
275
|
+
// is locked, access is denied, or the call times out. Degrade to the
|
|
276
|
+
// in-memory credentials rather than take down the request path.
|
|
277
|
+
//
|
|
278
|
+
// Adopt a usable stored blob always; an unusable one only when what we
|
|
279
|
+
// already hold is unusable too. Do not simplify this to an unconditional
|
|
280
|
+
// adopt: performRefresh ignores writeBackCredentials's return value, and
|
|
281
|
+
// that write can fail while the read before it succeeded (malformed blob,
|
|
282
|
+
// or an ACL allowing read but not add-generic-password), leaving memory
|
|
283
|
+
// freshly refreshed and the store holding the orphaned pre-refresh blob.
|
|
284
|
+
// On the reactive path that blob has under 60s left — that window is the
|
|
285
|
+
// only reason we refreshed — so adopting it re-enters performRefresh with
|
|
286
|
+
// a refresh token our own refresh just rotated dead: OAuth fails and we
|
|
287
|
+
// fall through to two 60s claude spawns, on every cache miss, forever.
|
|
288
|
+
//
|
|
289
|
+
// Two accepted residuals. An external switch installing an already-expired
|
|
290
|
+
// token while ours is usable is ignored until ours expires; cswap freshens
|
|
291
|
+
// a target before activating it, so that is rare. And the proactive timer
|
|
292
|
+
// refreshes an hour ahead (index.ts), where a failed write-back orphans a
|
|
293
|
+
// blob that is still usable — so it IS adopted, costing wasted background
|
|
294
|
+
// refreshes rather than failed requests until it drops under 60s and the
|
|
295
|
+
// CLI fallback recovers. No guard here closes that one: the re-read cannot
|
|
296
|
+
// tell "stale because our write failed" from "changed because cswap
|
|
297
|
+
// switched", as both present as store-disagrees-with-memory-and-usable.
|
|
298
|
+
// Only the return value performRefresh discards carries the distinction.
|
|
299
|
+
try {
|
|
300
|
+
const stored = refreshAccount(target.source, target.configDir);
|
|
301
|
+
const now = Date.now();
|
|
302
|
+
if (stored &&
|
|
303
|
+
(stored.expiresAt > now + 60_000 ||
|
|
304
|
+
target.credentials.expiresAt <= now + 60_000)) {
|
|
305
|
+
target.credentials = stored;
|
|
306
|
+
// Read from this account's own source, so what it returned is this
|
|
307
|
+
// account's own credentials — it is no longer running on a lender's.
|
|
308
|
+
borrowedCredentialAccounts.delete(target);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
catch (err) {
|
|
312
|
+
log("source_reread_failed", {
|
|
313
|
+
source: target.source,
|
|
314
|
+
error: err instanceof Error ? err.message : String(err),
|
|
315
|
+
});
|
|
254
316
|
}
|
|
255
317
|
const creds = target.credentials;
|
|
256
318
|
if (creds.expiresAt > Date.now() + thresholdMs)
|
|
257
319
|
return creds;
|
|
320
|
+
// The proactive sync timer calls this directly while the request path
|
|
321
|
+
// arrives via getCachedCredentials(). A rotation invalidates the refresh
|
|
322
|
+
// token it was issued against, so two concurrent refreshes would leave
|
|
323
|
+
// one caller holding an already-dead token. Share one attempt instead.
|
|
324
|
+
const inFlight = inFlightRefreshes.get(target.source);
|
|
325
|
+
if (inFlight) {
|
|
326
|
+
log("refresh_joined", { source: target.source });
|
|
327
|
+
return inFlight;
|
|
328
|
+
}
|
|
329
|
+
const pending = performRefresh(target, creds);
|
|
330
|
+
inFlightRefreshes.set(target.source, pending);
|
|
331
|
+
try {
|
|
332
|
+
return await pending;
|
|
333
|
+
}
|
|
334
|
+
finally {
|
|
335
|
+
inFlightRefreshes.delete(target.source);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
async function performRefresh(target, creds) {
|
|
339
|
+
if (borrowedCredentialAccounts.has(target)) {
|
|
340
|
+
return refreshBorrowedAccount(target);
|
|
341
|
+
}
|
|
258
342
|
log("refresh_needed", {
|
|
259
343
|
source: target.source,
|
|
260
344
|
expiresAt: creds.expiresAt,
|
|
261
345
|
expiresIn: creds.expiresAt - Date.now(),
|
|
262
346
|
});
|
|
263
347
|
if (creds.refreshToken) {
|
|
264
|
-
const oauthCreds = refreshViaOAuth(creds.refreshToken);
|
|
348
|
+
const oauthCreds = await refreshViaOAuth(creds.refreshToken);
|
|
265
349
|
if (oauthCreds && oauthCreds.expiresAt > Date.now() + 60_000) {
|
|
266
350
|
target.credentials = oauthCreds;
|
|
267
|
-
writeBackCredentials(target.source, oauthCreds, target.configDir)
|
|
351
|
+
if (!writeBackCredentials(target.source, oauthCreds, target.configDir, creds.accessToken)) {
|
|
352
|
+
// Mirrors force_refresh_writeback_failed on the forced path. The
|
|
353
|
+
// session continues from memory either way, so this stays a log
|
|
354
|
+
// rather than a control-flow change: acting on the two causes
|
|
355
|
+
// (I/O failure vs. CAS mismatch) differs, and the proactive-path
|
|
356
|
+
// consequence — a still-usable orphaned blob being re-adopted by
|
|
357
|
+
// the validated re-read — is tracked as a follow-up.
|
|
358
|
+
log("refresh_writeback_failed", { source: target.source });
|
|
359
|
+
}
|
|
268
360
|
return oauthCreds;
|
|
269
361
|
}
|
|
270
362
|
}
|
|
363
|
+
// The claude CLI only rotates a token that is itself close to expiry, so
|
|
364
|
+
// running it while the current one is still usable spawns a real API
|
|
365
|
+
// request that hands back the same token. Callers using a proactive
|
|
366
|
+
// threshold (the sync timer passes an hour) would otherwise pay for that
|
|
367
|
+
// request on every tick. Keep the fallback scoped to the reactive window
|
|
368
|
+
// and let the caller try again later.
|
|
369
|
+
if (creds.expiresAt > Date.now() + CLI_FALLBACK_THRESHOLD_MS) {
|
|
370
|
+
log("refresh_cli_skipped", {
|
|
371
|
+
source: target.source,
|
|
372
|
+
reason: "credentials still usable",
|
|
373
|
+
expiresIn: creds.expiresAt - Date.now(),
|
|
374
|
+
});
|
|
375
|
+
return creds;
|
|
376
|
+
}
|
|
377
|
+
// Every OpenCode instance refreshes independently, and a rotation
|
|
378
|
+
// invalidates the refresh token the others are holding. When ours is
|
|
379
|
+
// rejected, the instance that won may already have written usable
|
|
380
|
+
// credentials to the shared store during the OAuth round trip — far
|
|
381
|
+
// cheaper to re-read than to spawn the CLI.
|
|
382
|
+
//
|
|
383
|
+
// The file-source exclusion below is a leftover from when refreshIfNeeded
|
|
384
|
+
// re-read file sources only. That rationale is gone and the exclusion now
|
|
385
|
+
// has none: a sibling process can write a file source mid-round-trip
|
|
386
|
+
// exactly as it can a keychain entry. Left in place only to keep this
|
|
387
|
+
// change off the file path; removing it is tracked as a follow-up.
|
|
388
|
+
if (target.source !== "file") {
|
|
389
|
+
let stored = null;
|
|
390
|
+
try {
|
|
391
|
+
stored = refreshAccount(target.source, target.configDir);
|
|
392
|
+
}
|
|
393
|
+
catch {
|
|
394
|
+
stored = null;
|
|
395
|
+
}
|
|
396
|
+
if (stored &&
|
|
397
|
+
stored.accessToken !== creds.accessToken &&
|
|
398
|
+
stored.expiresAt > Date.now() + 60_000) {
|
|
399
|
+
target.credentials = stored;
|
|
400
|
+
log("refresh_adopted_external", { source: target.source });
|
|
401
|
+
return stored;
|
|
402
|
+
}
|
|
403
|
+
}
|
|
271
404
|
log("refresh_fallback_cli", { source: target.source });
|
|
272
405
|
const isSuffixedAccount = target.source !== PRIMARY_SERVICE &&
|
|
273
406
|
target.source.startsWith(PRIMARY_SERVICE + "-");
|
|
@@ -276,6 +409,7 @@ export function refreshIfNeeded(account, thresholdMs = 60_000) {
|
|
|
276
409
|
const fallback = tryFallbackAccount(target.source);
|
|
277
410
|
if (fallback) {
|
|
278
411
|
target.credentials = fallback;
|
|
412
|
+
borrowedCredentialAccounts.add(target);
|
|
279
413
|
return fallback;
|
|
280
414
|
}
|
|
281
415
|
log("refresh_exhausted", {
|
|
@@ -304,6 +438,62 @@ export function refreshIfNeeded(account, thresholdMs = 60_000) {
|
|
|
304
438
|
});
|
|
305
439
|
return null;
|
|
306
440
|
}
|
|
441
|
+
/**
|
|
442
|
+
* Refresh path for an account running on borrowed credentials. The tokens it
|
|
443
|
+
* currently holds belong to another account, so they cannot be exchanged at
|
|
444
|
+
* the OAuth endpoint on this account's behalf, and the result must never be
|
|
445
|
+
* written to this account's store. Re-read our own source first — the claude
|
|
446
|
+
* CLI or another process may have repaired it — and otherwise borrow again.
|
|
447
|
+
*/
|
|
448
|
+
async function refreshBorrowedAccount(target) {
|
|
449
|
+
log("refresh_borrowed", { source: target.source });
|
|
450
|
+
let own = null;
|
|
451
|
+
try {
|
|
452
|
+
own = refreshAccount(target.source, target.configDir);
|
|
453
|
+
}
|
|
454
|
+
catch {
|
|
455
|
+
own = null;
|
|
456
|
+
}
|
|
457
|
+
if (own && own.expiresAt > Date.now() + 60_000) {
|
|
458
|
+
borrowedCredentialAccounts.delete(target);
|
|
459
|
+
target.credentials = own;
|
|
460
|
+
log("refresh_borrowed_recovered", { source: target.source, via: "source" });
|
|
461
|
+
return own;
|
|
462
|
+
}
|
|
463
|
+
// A refresh token outlives its access token by weeks, so this account's
|
|
464
|
+
// own stored token is likely still exchangeable even though the access
|
|
465
|
+
// token it came with has expired. This is the only token we may present
|
|
466
|
+
// on its behalf, and the only result we may write to its store.
|
|
467
|
+
if (own?.refreshToken) {
|
|
468
|
+
const oauthCreds = await refreshViaOAuth(own.refreshToken);
|
|
469
|
+
if (oauthCreds && oauthCreds.expiresAt > Date.now() + 60_000) {
|
|
470
|
+
borrowedCredentialAccounts.delete(target);
|
|
471
|
+
target.credentials = oauthCreds;
|
|
472
|
+
writeBackCredentials(target.source, oauthCreds, target.configDir, own.accessToken);
|
|
473
|
+
log("refresh_borrowed_recovered", { source: target.source, via: "oauth" });
|
|
474
|
+
return oauthCreds;
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
const again = tryFallbackAccount(target.source);
|
|
478
|
+
if (again) {
|
|
479
|
+
target.credentials = again;
|
|
480
|
+
return again;
|
|
481
|
+
}
|
|
482
|
+
// Recovery failed. The account must not be left holding the lender's
|
|
483
|
+
// tokens, or the next cycle would take the normal path and exchange them.
|
|
484
|
+
// Restore its own credentials if we managed to read them — expired, but
|
|
485
|
+
// ours to refresh — and otherwise keep the guard in place.
|
|
486
|
+
if (own) {
|
|
487
|
+
borrowedCredentialAccounts.delete(target);
|
|
488
|
+
target.credentials = own;
|
|
489
|
+
}
|
|
490
|
+
log("refresh_exhausted", {
|
|
491
|
+
source: target.source,
|
|
492
|
+
hadCredentials: !!own,
|
|
493
|
+
expiresAt: own?.expiresAt,
|
|
494
|
+
});
|
|
495
|
+
return null;
|
|
496
|
+
}
|
|
307
497
|
function tryFallbackAccount(excludeSource) {
|
|
308
498
|
const now = Date.now();
|
|
309
499
|
const candidates = allAccounts.filter((a) => a.source !== excludeSource);
|
|
@@ -353,16 +543,22 @@ export function getCredentialsForSync() {
|
|
|
353
543
|
}
|
|
354
544
|
/**
|
|
355
545
|
* Re-read only the active account's credentials from its source (single
|
|
356
|
-
* keychain service read or credentials file) and update them in place
|
|
357
|
-
*
|
|
358
|
-
*
|
|
546
|
+
* keychain service read or credentials file) and update them in place,
|
|
547
|
+
* so an externally refreshed token is picked up without a full
|
|
548
|
+
* multi-account keychain rescan.
|
|
549
|
+
*
|
|
550
|
+
* Currently has no call sites: the 401 path uses
|
|
551
|
+
* reloadCredentialsFromSource, which additionally validates the result
|
|
552
|
+
* and refreshes the cache. Wiring this up or deleting it is tracked as a
|
|
553
|
+
* follow-up; until then it must stay consistent with the read paths that
|
|
554
|
+
* are live, hence the configDir below.
|
|
359
555
|
*/
|
|
360
556
|
export function reloadActiveAccount() {
|
|
361
557
|
const account = getActiveAccount();
|
|
362
558
|
if (!account)
|
|
363
559
|
return;
|
|
364
560
|
try {
|
|
365
|
-
const fresh = refreshAccount(account.source);
|
|
561
|
+
const fresh = refreshAccount(account.source, account.configDir);
|
|
366
562
|
if (fresh)
|
|
367
563
|
account.credentials = fresh;
|
|
368
564
|
}
|
|
@@ -380,16 +576,28 @@ export function reloadActiveAccount() {
|
|
|
380
576
|
* On success the account, its source, and the cache are all updated.
|
|
381
577
|
* The refresh function is injectable for tests.
|
|
382
578
|
*/
|
|
383
|
-
export function forceRefreshActiveAccount(refresh = refreshViaOAuth) {
|
|
579
|
+
export async function forceRefreshActiveAccount(refresh = refreshViaOAuth) {
|
|
384
580
|
const account = getActiveAccount();
|
|
385
581
|
if (!account?.credentials.refreshToken)
|
|
386
582
|
return null;
|
|
387
|
-
|
|
583
|
+
// These tokens belong to another account: exchanging them here would
|
|
584
|
+
// rotate the lender's refresh token and persist the result to this
|
|
585
|
+
// account's store. Borrowed-account recovery belongs to refreshIfNeeded.
|
|
586
|
+
if (borrowedCredentialAccounts.has(account)) {
|
|
587
|
+
log("force_refresh_skipped_borrowed", { source: account.source });
|
|
588
|
+
return null;
|
|
589
|
+
}
|
|
590
|
+
const priorAccessToken = account.credentials.accessToken;
|
|
591
|
+
const oauthCreds = await refresh(account.credentials.refreshToken);
|
|
388
592
|
if (oauthCreds && oauthCreds.expiresAt > Date.now() + 60_000) {
|
|
389
593
|
account.credentials = oauthCreds;
|
|
390
|
-
if (!writeBackCredentials(account.source, oauthCreds)) {
|
|
391
|
-
// Session continues from memory/cache
|
|
392
|
-
//
|
|
594
|
+
if (!writeBackCredentials(account.source, oauthCreds, account.configDir, priorAccessToken)) {
|
|
595
|
+
// Session continues from memory/cache either way, but the two causes
|
|
596
|
+
// diverge on a later source re-read. An I/O failure leaves our own
|
|
597
|
+
// rejected token in the store, so the re-read resurrects it and
|
|
598
|
+
// triggers another refresh. A CAS mismatch means the store now holds
|
|
599
|
+
// another account's token, so the re-read adopts that instead and this
|
|
600
|
+
// account stops using the credentials it just refreshed.
|
|
393
601
|
log("force_refresh_writeback_failed", { source: account.source });
|
|
394
602
|
}
|
|
395
603
|
accountCacheMap.set(account.source, {
|
|
@@ -414,7 +622,7 @@ export function invalidateCredentialCache() {
|
|
|
414
622
|
log("cache_invalidated", { source: account.source });
|
|
415
623
|
}
|
|
416
624
|
}
|
|
417
|
-
export function getCachedCredentials() {
|
|
625
|
+
export async function getCachedCredentials() {
|
|
418
626
|
const account = getActiveAccount();
|
|
419
627
|
if (!account)
|
|
420
628
|
return null;
|
|
@@ -433,13 +641,13 @@ export function getCachedCredentials() {
|
|
|
433
641
|
source: account.source,
|
|
434
642
|
reason: cached ? "stale or expiring" : "empty",
|
|
435
643
|
});
|
|
436
|
-
const fresh = refreshIfNeeded(account);
|
|
644
|
+
const fresh = await refreshIfNeeded(account);
|
|
437
645
|
if (!fresh) {
|
|
438
646
|
log("credentials_unavailable", { source: account.source });
|
|
439
647
|
accountCacheMap.delete(account.source);
|
|
440
648
|
return null;
|
|
441
649
|
}
|
|
442
|
-
accountCacheMap.set(account.source, { creds: fresh, cachedAt: now });
|
|
650
|
+
accountCacheMap.set(account.source, { creds: fresh, cachedAt: Date.now() });
|
|
443
651
|
return fresh;
|
|
444
652
|
}
|
|
445
653
|
export function reloadCredentialsFromSource() {
|
|
@@ -448,7 +656,9 @@ export function reloadCredentialsFromSource() {
|
|
|
448
656
|
return null;
|
|
449
657
|
let reloaded;
|
|
450
658
|
try {
|
|
451
|
-
|
|
659
|
+
// Same configDir the write path resolves, so the compare-and-swap in
|
|
660
|
+
// writeBackCredentials compares against the file this read came from.
|
|
661
|
+
reloaded = refreshAccount(account.source, account.configDir);
|
|
452
662
|
}
|
|
453
663
|
catch {
|
|
454
664
|
accountCacheMap.delete(account.source);
|
|
@@ -476,6 +686,13 @@ export function reloadCredentialsFromSource() {
|
|
|
476
686
|
return null;
|
|
477
687
|
}
|
|
478
688
|
account.credentials = reloaded;
|
|
689
|
+
// Read from this account's own source, so what it returned is this
|
|
690
|
+
// account's own credentials — it is no longer running on a lender's.
|
|
691
|
+
// Same invariant as refreshIfNeeded's up-front re-read: leaving the flag
|
|
692
|
+
// set here makes forceRefreshActiveAccount decline to exchange a token
|
|
693
|
+
// that is legitimately this account's, which strands the 401 recovery
|
|
694
|
+
// loop's second attempt on a credential it could have refreshed.
|
|
695
|
+
borrowedCredentialAccounts.delete(account);
|
|
479
696
|
accountCacheMap.set(account.source, { creds: reloaded, cachedAt: now });
|
|
480
697
|
log("credentials_source_reload", {
|
|
481
698
|
source: account.source,
|
package/dist/credentials.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
|
package/dist/http.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,OAAO,GAAG,OAAO,KAAK,CAAA;AAyClC,wBAAsB,cAAc,CAClC,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,CAAC,EAAE,WAAW,EAClB,OAAO,SAAI,EACX,SAAS,GAAE,OAAe,GACzB,OAAO,CAAC,QAAQ,CAAC,CAqCnB"}
|