opencode-claude-auth 1.3.4 → 1.4.0
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 +35 -5
- package/dist/betas.d.ts.map +1 -1
- package/dist/betas.js +2 -2
- package/dist/betas.js.map +1 -1
- package/dist/credentials.d.ts +16 -0
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +106 -3
- package/dist/credentials.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -6
- package/dist/index.js.map +1 -1
- package/dist/keychain.d.ts +6 -0
- package/dist/keychain.d.ts.map +1 -1
- package/dist/keychain.js +91 -2
- package/dist/keychain.js.map +1 -1
- package/dist/plugin-config.d.ts +45 -0
- package/dist/plugin-config.d.ts.map +1 -0
- package/dist/plugin-config.js +66 -0
- package/dist/plugin-config.js.map +1 -0
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ Self-contained Anthropic auth provider for OpenCode using your Claude Code crede
|
|
|
10
10
|
|
|
11
11
|
The plugin registers its own auth provider with a custom fetch handler that intercepts all Anthropic API requests. It reads OAuth tokens from the macOS Keychain (or `~/.claude/.credentials.json` on other platforms), caches them in memory with a 30-second TTL, and handles the full request lifecycle — no builtin Anthropic auth plugin required. On macOS, multiple Claude Code accounts are detected automatically and can be switched via `opencode auth login`.
|
|
12
12
|
|
|
13
|
-
It also syncs credentials to OpenCode's `auth.json` as a fallback (on Windows, it writes to both `%USERPROFILE%\.local\share\opencode\auth.json` and `%LOCALAPPDATA%\opencode\auth.json` to cover all installation methods). If a token is near expiry, it
|
|
13
|
+
It also syncs credentials to OpenCode's `auth.json` as a fallback (on Windows, it writes to both `%USERPROFILE%\.local\share\opencode\auth.json` and `%LOCALAPPDATA%\opencode\auth.json` to cover all installation methods). If a token is near expiry, it refreshes directly via Anthropic's OAuth endpoint (zero LLM tokens consumed), falling back to the Claude CLI if the direct refresh fails. Background re-sync runs every 5 minutes.
|
|
14
14
|
|
|
15
15
|
## Prerequisites
|
|
16
16
|
|
|
@@ -135,16 +135,46 @@ unset CLAUDE_AUTH_DEBUG
|
|
|
135
135
|
|
|
136
136
|
The `context-1m-2025-08-07` beta header is not sent by default. Without it, the API caps context at 200k tokens.
|
|
137
137
|
|
|
138
|
-
To enable 1M context (requires Claude Max or a plan with extra usage coverage):
|
|
138
|
+
To enable 1M context (requires Claude Max or a plan with extra usage coverage), use **either** of these methods:
|
|
139
|
+
|
|
140
|
+
**Option A: Config file** (recommended — no environment setup needed)
|
|
141
|
+
|
|
142
|
+
Add `enable1mContext` to any agent in your `opencode.json` (project-level or `~/.config/opencode/opencode.json`). Setting it in any one agent enables 1M context globally for all supported models — you don't need to set it for each agent:
|
|
143
|
+
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"plugin": ["opencode-claude-auth"],
|
|
147
|
+
"agent": {
|
|
148
|
+
"build": {
|
|
149
|
+
"enable1mContext": true
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
**Option B: Environment variable**
|
|
139
156
|
|
|
140
157
|
```bash
|
|
141
158
|
export ANTHROPIC_ENABLE_1M_CONTEXT=true
|
|
142
159
|
```
|
|
143
160
|
|
|
161
|
+
If both are set, the environment variable takes priority.
|
|
162
|
+
|
|
144
163
|
The Claude CLI itself treats 1M context as opt-in (via a `[1m]` model suffix). Sending the beta without a plan that covers long context charges causes "Extra usage is required for long context requests" errors. Versions before 0.8.0 sent this beta automatically for 4.6+ models, which broke things for Pro users ([#64](https://github.com/griffinmartin/opencode-claude-auth/issues/64)).
|
|
145
164
|
|
|
146
165
|
If a long context error still occurs (e.g. from a beta flag added via `ANTHROPIC_BETA_FLAGS`), the plugin retries without the offending flag.
|
|
147
166
|
|
|
167
|
+
## Validating OAuth refresh
|
|
168
|
+
|
|
169
|
+
To verify the direct OAuth token refresh works with your credentials:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
pnpm run validate:oauth # refresh + write-back (safe, keeps credentials valid)
|
|
173
|
+
pnpm run validate:oauth -- --dry-run # show what would be sent without making the request
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
This reads your stored credentials, calls Anthropic's OAuth token endpoint, and writes the new tokens back to storage. Refresh tokens rotate on each use, so write-back is enabled by default to keep your stored credentials valid.
|
|
177
|
+
|
|
148
178
|
## Environment variable overrides
|
|
149
179
|
|
|
150
180
|
All configurable parameters can be overridden via environment variables. If Anthropic changes something before we publish an update, set an env var and keep working:
|
|
@@ -167,17 +197,17 @@ export ANTHROPIC_ENABLE_1M_CONTEXT=true # requires Claude Max
|
|
|
167
197
|
## How it works (technical)
|
|
168
198
|
|
|
169
199
|
- Registers an `auth.loader` with a custom `fetch` that intercepts all Anthropic API requests
|
|
170
|
-
- Sets `Authorization: Bearer` with fresh OAuth tokens (cached in memory, 30s TTL)
|
|
200
|
+
- Sets `Authorization: Bearer` with fresh OAuth tokens (cached in memory, 30s TTL, updated in-place after refresh)
|
|
171
201
|
- Translates tool names between OpenCode and Anthropic API formats (adds/strips `mcp_` prefix)
|
|
172
202
|
- Buffers SSE response streams at event boundaries for reliable tool name translation
|
|
173
203
|
- Injects Claude Code identity into system prompts via `experimental.chat.system.transform`
|
|
174
204
|
- Sets required API headers (beta flags, billing, user-agent) with model-aware selection
|
|
175
205
|
- On macOS, enumerates all `Claude Code-credentials*` Keychain entries and labels them by subscription tier
|
|
176
206
|
- Provides an account switcher via `opencode auth login` when multiple accounts are found; persists selection to `~/.local/share/opencode/claude-account-source.txt`
|
|
177
|
-
- Syncs credentials to `auth.json` on startup and every 5 minutes as a fallback
|
|
207
|
+
- Syncs credentials to `auth.json` on startup and every 5 minutes as a fallback (sync never triggers refresh; refresh is lazy, only on API requests)
|
|
178
208
|
- On Windows, writes to both `%USERPROFILE%\.local\share\opencode\auth.json` and `%LOCALAPPDATA%\opencode\auth.json`
|
|
179
209
|
- Retries API requests on 429 (rate limit) and 529 (overloaded) with exponential backoff, respecting `retry-after` headers
|
|
180
|
-
- When a token is within 60 seconds of expiry,
|
|
210
|
+
- When a token is within 60 seconds of expiry, refreshes directly via `POST https://claude.ai/v1/oauth/token` (no LLM tokens consumed). Falls back to `claude` CLI if the direct refresh fails. New tokens are written back to Keychain (macOS) or credentials file (Linux/Windows) to keep stored credentials in sync with rotated refresh tokens
|
|
181
211
|
- If credentials aren't OAuth-based, the auth loader returns `{}` and falls through to API key auth
|
|
182
212
|
- If credentials are unavailable or unreadable, the plugin disables itself and OpenCode continues without Claude auth
|
|
183
213
|
|
package/dist/betas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"betas.d.ts","sourceRoot":"","sources":["../src/betas.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"betas.d.ts","sourceRoot":"","sources":["../src/betas.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,kBAAkB,UAA0B,CAAA;AAgBzD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAe7D;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAInE;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAMhE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQnE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAU1D;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GACrB,MAAM,EAAE,CAqCV"}
|
package/dist/betas.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { config, getModelOverride } from "./model-config.js";
|
|
2
|
+
import { isEnable1mContext } from "./plugin-config.js";
|
|
2
3
|
// Beta flags to try removing in order when "long context" errors occur
|
|
3
4
|
export const LONG_CONTEXT_BETAS = config.longContextBetas;
|
|
4
5
|
function getRequiredBetas() {
|
|
@@ -70,8 +71,7 @@ export function getModelBetas(modelId, excluded) {
|
|
|
70
71
|
//
|
|
71
72
|
// Users who want 1M context should set ANTHROPIC_ENABLE_1M_CONTEXT=true
|
|
72
73
|
// (requires a Claude Max subscription or a plan that covers extra usage).
|
|
73
|
-
if (
|
|
74
|
-
supports1mContext(modelId)) {
|
|
74
|
+
if (isEnable1mContext() && supports1mContext(modelId)) {
|
|
75
75
|
betas.push(config.longContextBetas[0]);
|
|
76
76
|
}
|
|
77
77
|
// Apply per-model overrides (e.g. haiku excludes claude-code-20250219)
|
package/dist/betas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"betas.js","sourceRoot":"","sources":["../src/betas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"betas.js","sourceRoot":"","sources":["../src/betas.ts"],"names":[],"mappings":"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"}
|
package/dist/credentials.d.ts
CHANGED
|
@@ -8,6 +8,22 @@ export declare function refreshAccountsList(): ClaudeAccount[];
|
|
|
8
8
|
export declare function loadPersistedAccountSource(): string | null;
|
|
9
9
|
export declare function saveAccountSource(source: string): void;
|
|
10
10
|
export declare function syncAuthJson(creds: ClaudeCredentials): void;
|
|
11
|
+
export declare const OAUTH_TOKEN_URL = "https://claude.ai/v1/oauth/token";
|
|
12
|
+
export declare const OAUTH_CLIENT_ID = "9d1c250a-e61b-44d9-88ed-5944d1962f5e";
|
|
13
|
+
/**
|
|
14
|
+
* Parse a raw OAuth token response into ClaudeCredentials.
|
|
15
|
+
* Returns null if the response is missing a valid access_token.
|
|
16
|
+
* Defaults expires_in to 36000s (10h) to match observed Claude token lifetime.
|
|
17
|
+
*/
|
|
18
|
+
export declare function parseOAuthResponse(raw: string, currentRefreshToken: string, now?: number): ClaudeCredentials | null;
|
|
19
|
+
export declare function refreshViaOAuth(refreshToken: string): ClaudeCredentials | null;
|
|
11
20
|
export declare function refreshIfNeeded(account?: ClaudeAccount): ClaudeCredentials | null;
|
|
21
|
+
/**
|
|
22
|
+
* Returns the active account's credentials for auth.json sync purposes.
|
|
23
|
+
* Unlike getCachedCredentials(), this does NOT trigger a refresh.
|
|
24
|
+
* It returns the account's current in-memory credentials if they're still valid.
|
|
25
|
+
* Returns null if no account or credentials are expired.
|
|
26
|
+
*/
|
|
27
|
+
export declare function getCredentialsForSync(): ClaudeCredentials | null;
|
|
12
28
|
export declare function getCachedCredentials(): ClaudeCredentials | null;
|
|
13
29
|
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAUA,OAAO,
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAUA,OAAO,EAIL,KAAK,iBAAiB,EACtB,KAAK,aAAa,EACnB,MAAM,eAAe,CAAA;AAItB,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAWlD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAE5D;AAED,wBAAgB,WAAW,IAAI,aAAa,EAAE,CAE7C;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAQ3D;AAED,wBAAgB,mBAAmB,IAAI,aAAa,EAAE,CAGrD;AAqBD,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;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,mBAAmB,EAAE,MAAM,EAC3B,GAAG,GAAE,MAAmB,GACvB,iBAAiB,GAAG,IAAI,CAoB1B;AAED,wBAAgB,eAAe,CAC7B,YAAY,EAAE,MAAM,GACnB,iBAAiB,GAAG,IAAI,CAmD1B;AA2BD,wBAAgB,eAAe,CAC7B,OAAO,CAAC,EAAE,aAAa,GACtB,iBAAiB,GAAG,IAAI,CAsC1B;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,IAAI,iBAAiB,GAAG,IAAI,CAWhE;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,GAAG,IAAI,CAgC/D"}
|
package/dist/credentials.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { execSync } from "node:child_process";
|
|
1
|
+
import { execFileSync, 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
|
-
import { readAllClaudeAccounts, refreshAccount, } from "./keychain.js";
|
|
5
|
+
import { readAllClaudeAccounts, refreshAccount, writeBackCredentials, } from "./keychain.js";
|
|
6
6
|
import { resetExcludedBetas } from "./betas.js";
|
|
7
7
|
import { log } from "./logger.js";
|
|
8
8
|
const CREDENTIAL_CACHE_TTL_MS = 30_000;
|
|
@@ -121,6 +121,79 @@ export function syncAuthJson(creds) {
|
|
|
121
121
|
}
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
+
export const OAUTH_TOKEN_URL = "https://claude.ai/v1/oauth/token";
|
|
125
|
+
export const OAUTH_CLIENT_ID = "9d1c250a-e61b-44d9-88ed-5944d1962f5e";
|
|
126
|
+
/**
|
|
127
|
+
* Parse a raw OAuth token response into ClaudeCredentials.
|
|
128
|
+
* Returns null if the response is missing a valid access_token.
|
|
129
|
+
* Defaults expires_in to 36000s (10h) to match observed Claude token lifetime.
|
|
130
|
+
*/
|
|
131
|
+
export function parseOAuthResponse(raw, currentRefreshToken, now = Date.now()) {
|
|
132
|
+
let data;
|
|
133
|
+
try {
|
|
134
|
+
data = JSON.parse(raw);
|
|
135
|
+
}
|
|
136
|
+
catch {
|
|
137
|
+
return null;
|
|
138
|
+
}
|
|
139
|
+
if (!data.access_token)
|
|
140
|
+
return null;
|
|
141
|
+
return {
|
|
142
|
+
accessToken: data.access_token,
|
|
143
|
+
refreshToken: data.refresh_token ?? currentRefreshToken,
|
|
144
|
+
expiresAt: now + (data.expires_in ?? 36_000) * 1000,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
export function refreshViaOAuth(refreshToken) {
|
|
148
|
+
// Use a Node subprocess to perform the HTTP request synchronously.
|
|
149
|
+
// The refresh token is passed via stdin to avoid exposure in process args.
|
|
150
|
+
const script = `
|
|
151
|
+
process.stdin.resume();
|
|
152
|
+
let input = '';
|
|
153
|
+
process.stdin.on('data', c => input += c);
|
|
154
|
+
process.stdin.on('end', () => {
|
|
155
|
+
const body = new URLSearchParams({
|
|
156
|
+
grant_type: 'refresh_token',
|
|
157
|
+
client_id: '${OAUTH_CLIENT_ID}',
|
|
158
|
+
refresh_token: input.trim()
|
|
159
|
+
});
|
|
160
|
+
fetch('${OAUTH_TOKEN_URL}', {
|
|
161
|
+
method: 'POST',
|
|
162
|
+
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
163
|
+
body: body.toString()
|
|
164
|
+
})
|
|
165
|
+
.then(r => { if (!r.ok) throw new Error(String(r.status)); return r.json(); })
|
|
166
|
+
.then(d => { process.stdout.write(JSON.stringify(d)); })
|
|
167
|
+
.catch(e => { process.stdout.write(JSON.stringify({ error: String(e) })); process.exit(1); });
|
|
168
|
+
});
|
|
169
|
+
`;
|
|
170
|
+
try {
|
|
171
|
+
log("refresh_started", { source: "oauth" });
|
|
172
|
+
const result = execFileSync(process.execPath, ["-e", script], {
|
|
173
|
+
input: refreshToken,
|
|
174
|
+
timeout: 15_000,
|
|
175
|
+
encoding: "utf-8",
|
|
176
|
+
stdio: ["pipe", "pipe", "ignore"],
|
|
177
|
+
});
|
|
178
|
+
const creds = parseOAuthResponse(result, refreshToken);
|
|
179
|
+
if (!creds) {
|
|
180
|
+
log("refresh_failed", {
|
|
181
|
+
source: "oauth",
|
|
182
|
+
error: "no access_token in response",
|
|
183
|
+
});
|
|
184
|
+
return null;
|
|
185
|
+
}
|
|
186
|
+
log("refresh_success", { source: "oauth" });
|
|
187
|
+
return creds;
|
|
188
|
+
}
|
|
189
|
+
catch (err) {
|
|
190
|
+
log("refresh_failed", {
|
|
191
|
+
source: "oauth",
|
|
192
|
+
error: err instanceof Error ? err.message : String(err),
|
|
193
|
+
});
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
124
197
|
function refreshViaCli() {
|
|
125
198
|
const maxAttempts = 2;
|
|
126
199
|
for (let i = 0; i < maxAttempts; i++) {
|
|
@@ -158,10 +231,23 @@ export function refreshIfNeeded(account) {
|
|
|
158
231
|
expiresAt: creds.expiresAt,
|
|
159
232
|
expiresIn: creds.expiresAt - Date.now(),
|
|
160
233
|
});
|
|
234
|
+
// Try direct OAuth refresh first (zero LLM tokens consumed)
|
|
235
|
+
if (creds.refreshToken) {
|
|
236
|
+
const oauthCreds = refreshViaOAuth(creds.refreshToken);
|
|
237
|
+
if (oauthCreds && oauthCreds.expiresAt > Date.now() + 60_000) {
|
|
238
|
+
target.credentials = oauthCreds;
|
|
239
|
+
writeBackCredentials(target.source, oauthCreds);
|
|
240
|
+
return oauthCreds;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
// Fall back to CLI-based refresh (consumes Haiku tokens)
|
|
244
|
+
log("refresh_fallback_cli", { source: target.source });
|
|
161
245
|
refreshViaCli();
|
|
162
246
|
const refreshed = refreshAccount(target.source);
|
|
163
|
-
if (refreshed && refreshed.expiresAt > Date.now() + 60_000)
|
|
247
|
+
if (refreshed && refreshed.expiresAt > Date.now() + 60_000) {
|
|
248
|
+
target.credentials = refreshed;
|
|
164
249
|
return refreshed;
|
|
250
|
+
}
|
|
165
251
|
log("refresh_exhausted", {
|
|
166
252
|
source: target.source,
|
|
167
253
|
hadCredentials: !!refreshed,
|
|
@@ -169,6 +255,23 @@ export function refreshIfNeeded(account) {
|
|
|
169
255
|
});
|
|
170
256
|
return null;
|
|
171
257
|
}
|
|
258
|
+
/**
|
|
259
|
+
* Returns the active account's credentials for auth.json sync purposes.
|
|
260
|
+
* Unlike getCachedCredentials(), this does NOT trigger a refresh.
|
|
261
|
+
* It returns the account's current in-memory credentials if they're still valid.
|
|
262
|
+
* Returns null if no account or credentials are expired.
|
|
263
|
+
*/
|
|
264
|
+
export function getCredentialsForSync() {
|
|
265
|
+
const account = getActiveAccount();
|
|
266
|
+
if (!account)
|
|
267
|
+
return null;
|
|
268
|
+
const creds = account.credentials;
|
|
269
|
+
if (creds.expiresAt > Date.now() + 60_000) {
|
|
270
|
+
return creds;
|
|
271
|
+
}
|
|
272
|
+
// Credentials are near expiry -- don't refresh here, let the per-request path handle it
|
|
273
|
+
return null;
|
|
274
|
+
}
|
|
172
275
|
export function getCachedCredentials() {
|
|
173
276
|
const account = getActiveAccount();
|
|
174
277
|
if (!account)
|
package/dist/credentials.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export { addExcludedBeta, getExcludedBetas, getModelBetas, getNextBetaToExclude,
|
|
|
3
3
|
export { resetExcludedBetas } from "./betas.ts";
|
|
4
4
|
export { stripToolPrefix, transformBody, transformResponseStream, } from "./transforms.ts";
|
|
5
5
|
export { getCachedCredentials, syncAuthJson, refreshAccountsList, type ClaudeCredentials, } from "./credentials.ts";
|
|
6
|
+
export { isEnable1mContext, type PluginSettings } from "./plugin-config.ts";
|
|
6
7
|
type FetchFn = typeof fetch;
|
|
7
8
|
export declare function fetchWithRetry(input: RequestInfo | URL, init?: RequestInit, retries?: number, fetchImpl?: FetchFn): Promise<Response>;
|
|
8
9
|
export declare function buildRequestHeaders(input: RequestInfo | URL, init: RequestInit, accessToken: string, modelId?: string, excludedBetas?: Set<string>): Headers;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AA0BjD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,YAAY,CAAA;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EACL,eAAe,EACf,aAAa,EACb,uBAAuB,GACxB,MAAM,iBAAiB,CAAA;AACxB,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,KAAK,iBAAiB,GACvB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,iBAAiB,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAgB3E,KAAK,OAAO,GAAG,OAAO,KAAK,CAAA;AAE3B,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,CAanB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,GAAG,GAAG,EACxB,IAAI,EAAE,WAAW,EACjB,WAAW,EAAE,MAAM,EACnB,OAAO,SAAY,EACnB,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,OAAO,CA+CT;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxD;AAID,QAAA,MAAM,MAAM,EAAE,MAuRb,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAS,CAAA;AACtC,eAAe,MAAM,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -3,11 +3,13 @@ import { readAllClaudeAccounts } from "./keychain.js";
|
|
|
3
3
|
import { initLogger, log } from "./logger.js";
|
|
4
4
|
import { addExcludedBeta, getExcludedBetas, getModelBetas, getNextBetaToExclude, isLongContextError, LONG_CONTEXT_BETAS, } from "./betas.js";
|
|
5
5
|
import { transformBody, transformResponseStream } from "./transforms.js";
|
|
6
|
-
import {
|
|
6
|
+
import { applyOpencodeConfig } from "./plugin-config.js";
|
|
7
|
+
import { getCachedCredentials, getCredentialsForSync, syncAuthJson, initAccounts, setActiveAccountSource, loadPersistedAccountSource, saveAccountSource, refreshAccountsList, } from "./credentials.js";
|
|
7
8
|
export { addExcludedBeta, getExcludedBetas, getModelBetas, getNextBetaToExclude, isLongContextError, LONG_CONTEXT_BETAS, } from "./betas.js";
|
|
8
9
|
export { resetExcludedBetas } from "./betas.js";
|
|
9
10
|
export { stripToolPrefix, transformBody, transformResponseStream, } from "./transforms.js";
|
|
10
11
|
export { getCachedCredentials, syncAuthJson, refreshAccountsList, } from "./credentials.js";
|
|
12
|
+
export { isEnable1mContext } from "./plugin-config.js";
|
|
11
13
|
const SYSTEM_IDENTITY_PREFIX = "You are Claude Code, Anthropic's official CLI for Claude.";
|
|
12
14
|
function getCliVersion() {
|
|
13
15
|
return process.env.ANTHROPIC_CLI_VERSION ?? config.ccVersion;
|
|
@@ -113,14 +115,14 @@ const plugin = async () => {
|
|
|
113
115
|
syncAuthJson(initialCreds);
|
|
114
116
|
}
|
|
115
117
|
else {
|
|
116
|
-
console.warn("opencode-claude-auth: Claude credentials are expired and could not be refreshed
|
|
118
|
+
console.warn("opencode-claude-auth: Claude credentials are expired and could not be refreshed. Run `claude` to re-authenticate.");
|
|
117
119
|
}
|
|
118
|
-
// Keep auth.json synced
|
|
120
|
+
// Keep auth.json synced with current credentials (no refresh triggered)
|
|
119
121
|
const syncTimer = setInterval(() => {
|
|
120
122
|
try {
|
|
121
|
-
const
|
|
122
|
-
if (
|
|
123
|
-
syncAuthJson(
|
|
123
|
+
const creds = getCredentialsForSync();
|
|
124
|
+
if (creds)
|
|
125
|
+
syncAuthJson(creds);
|
|
124
126
|
}
|
|
125
127
|
catch {
|
|
126
128
|
// Non-fatal
|
|
@@ -128,6 +130,9 @@ const plugin = async () => {
|
|
|
128
130
|
}, SYNC_INTERVAL);
|
|
129
131
|
syncTimer.unref();
|
|
130
132
|
return {
|
|
133
|
+
config: async (opencodeConfig) => {
|
|
134
|
+
applyOpencodeConfig(opencodeConfig);
|
|
135
|
+
},
|
|
131
136
|
"experimental.chat.system.transform": async (input, output) => {
|
|
132
137
|
if (input.model?.providerID !== "anthropic") {
|
|
133
138
|
return;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/keychain.d.ts
CHANGED
|
@@ -11,6 +11,12 @@ export interface ClaudeAccount {
|
|
|
11
11
|
}
|
|
12
12
|
export declare function buildAccountLabels(credsList: ClaudeCredentials[]): string[];
|
|
13
13
|
export declare function readAllClaudeAccounts(): ClaudeAccount[];
|
|
14
|
+
export declare function updateCredentialBlob(existingJson: string, newCreds: {
|
|
15
|
+
accessToken: string;
|
|
16
|
+
refreshToken: string;
|
|
17
|
+
expiresAt: number;
|
|
18
|
+
}): string | null;
|
|
19
|
+
export declare function writeBackCredentials(source: string, creds: ClaudeCredentials): boolean;
|
|
14
20
|
export declare function refreshAccount(source: string): ClaudeCredentials | null;
|
|
15
21
|
/** @deprecated Use readAllClaudeAccounts() instead */
|
|
16
22
|
export declare function readClaudeCredentials(): ClaudeCredentials | null;
|
package/dist/keychain.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keychain.d.ts","sourceRoot":"","sources":["../src/keychain.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,iBAAiB,CAAA;CAC/B;AAsKD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAoB3E;AAED,wBAAgB,qBAAqB,IAAI,aAAa,EAAE,CA+BvD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAOvE;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,IAAI,iBAAiB,GAAG,IAAI,CAGhE"}
|
|
1
|
+
{"version":3,"file":"keychain.d.ts","sourceRoot":"","sources":["../src/keychain.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,iBAAiB,CAAA;CAC/B;AAsKD,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,iBAAiB,EAAE,GAAG,MAAM,EAAE,CAoB3E;AAED,wBAAgB,qBAAqB,IAAI,aAAa,EAAE,CA+BvD;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACzE,MAAM,GAAG,IAAI,CAgBf;AAuBD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,iBAAiB,GACvB,OAAO,CA0DT;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAOvE;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,IAAI,iBAAiB,GAAG,IAAI,CAGhE"}
|
package/dist/keychain.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { execSync } from "node:child_process";
|
|
2
|
-
import { readFileSync } from "node:fs";
|
|
1
|
+
import { execFileSync, execSync } from "node:child_process";
|
|
2
|
+
import { chmodSync, readFileSync, writeFileSync } from "node:fs";
|
|
3
3
|
import { homedir } from "node:os";
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
import { log } from "./logger.js";
|
|
@@ -186,6 +186,95 @@ export function readAllClaudeAccounts() {
|
|
|
186
186
|
credentials: a.credentials,
|
|
187
187
|
}));
|
|
188
188
|
}
|
|
189
|
+
export function updateCredentialBlob(existingJson, newCreds) {
|
|
190
|
+
let parsed;
|
|
191
|
+
try {
|
|
192
|
+
parsed = JSON.parse(existingJson);
|
|
193
|
+
}
|
|
194
|
+
catch {
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
197
|
+
const wrapper = parsed.claudeAiOauth;
|
|
198
|
+
const target = wrapper ?? parsed;
|
|
199
|
+
target.accessToken = newCreds.accessToken;
|
|
200
|
+
target.refreshToken = newCreds.refreshToken;
|
|
201
|
+
target.expiresAt = newCreds.expiresAt;
|
|
202
|
+
return JSON.stringify(parsed);
|
|
203
|
+
}
|
|
204
|
+
function getKeychainAccountName(serviceName) {
|
|
205
|
+
try {
|
|
206
|
+
const output = execFileSync("/usr/bin/security", ["find-generic-password", "-s", serviceName], { timeout: 2000, encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] });
|
|
207
|
+
const match = /"acct"<blob>="([^"]*)"/.exec(output);
|
|
208
|
+
if (match) {
|
|
209
|
+
log("keychain_account_name", {
|
|
210
|
+
service: serviceName,
|
|
211
|
+
account: match[1],
|
|
212
|
+
});
|
|
213
|
+
return match[1];
|
|
214
|
+
}
|
|
215
|
+
return null;
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
return null;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
export function writeBackCredentials(source, creds) {
|
|
222
|
+
const newCreds = {
|
|
223
|
+
accessToken: creds.accessToken,
|
|
224
|
+
refreshToken: creds.refreshToken,
|
|
225
|
+
expiresAt: creds.expiresAt,
|
|
226
|
+
};
|
|
227
|
+
if (source === "file") {
|
|
228
|
+
try {
|
|
229
|
+
const credPath = join(homedir(), ".claude", ".credentials.json");
|
|
230
|
+
const raw = readFileSync(credPath, "utf-8");
|
|
231
|
+
const updated = updateCredentialBlob(raw, newCreds);
|
|
232
|
+
if (!updated)
|
|
233
|
+
return false;
|
|
234
|
+
writeFileSync(credPath, updated, { encoding: "utf-8", mode: 0o600 });
|
|
235
|
+
if (process.platform !== "win32") {
|
|
236
|
+
chmodSync(credPath, 0o600);
|
|
237
|
+
}
|
|
238
|
+
log("writeback_success", { source });
|
|
239
|
+
return true;
|
|
240
|
+
}
|
|
241
|
+
catch {
|
|
242
|
+
log("writeback_failed", { source });
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
if (process.platform === "darwin") {
|
|
247
|
+
try {
|
|
248
|
+
const raw = readKeychainService(source);
|
|
249
|
+
if (!raw)
|
|
250
|
+
return false;
|
|
251
|
+
const updated = updateCredentialBlob(raw, newCreds);
|
|
252
|
+
if (!updated)
|
|
253
|
+
return false;
|
|
254
|
+
// Discover the actual account name from the existing Keychain entry.
|
|
255
|
+
// Claude CLI uses the macOS username (e.g. "gmartin"), not the service name.
|
|
256
|
+
// Using the wrong account name creates a duplicate entry instead of updating.
|
|
257
|
+
const accountName = getKeychainAccountName(source) ?? source;
|
|
258
|
+
execFileSync("/usr/bin/security", [
|
|
259
|
+
"add-generic-password",
|
|
260
|
+
"-s",
|
|
261
|
+
source,
|
|
262
|
+
"-a",
|
|
263
|
+
accountName,
|
|
264
|
+
"-w",
|
|
265
|
+
updated,
|
|
266
|
+
"-U",
|
|
267
|
+
], { timeout: 2000, stdio: "ignore" });
|
|
268
|
+
log("writeback_success", { source, accountName });
|
|
269
|
+
return true;
|
|
270
|
+
}
|
|
271
|
+
catch {
|
|
272
|
+
log("writeback_failed", { source });
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
return false;
|
|
277
|
+
}
|
|
189
278
|
export function refreshAccount(source) {
|
|
190
279
|
if (source === "file") {
|
|
191
280
|
return readCredentialsFile();
|
package/dist/keychain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keychain.js","sourceRoot":"","sources":["../src/keychain.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"keychain.js","sourceRoot":"","sources":["../src/keychain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin settings that can be set via opencode.json as an alternative
|
|
3
|
+
* to environment variables.
|
|
4
|
+
*
|
|
5
|
+
* Priority: environment variable > opencode.json config > hardcoded default
|
|
6
|
+
*
|
|
7
|
+
* In opencode.json (project-level or ~/.config/opencode/opencode.json):
|
|
8
|
+
*
|
|
9
|
+
* ```json
|
|
10
|
+
* {
|
|
11
|
+
* "agent": {
|
|
12
|
+
* "build": {
|
|
13
|
+
* "enable1mContext": true
|
|
14
|
+
* }
|
|
15
|
+
* }
|
|
16
|
+
* }
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export interface PluginSettings {
|
|
20
|
+
enable1mContext?: boolean;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Extract plugin settings from the opencode Config object.
|
|
24
|
+
*
|
|
25
|
+
* Scans all agent configs for our plugin-specific keys. AgentConfig has
|
|
26
|
+
* a catch-all `[key: string]: unknown` index signature, so arbitrary
|
|
27
|
+
* keys placed in agent configs are preserved through OpenCode's
|
|
28
|
+
* config parser and passed to the plugin via the `config` hook.
|
|
29
|
+
*
|
|
30
|
+
* NOTE: OpenCode's Zod schema may relocate unknown top-level agent keys
|
|
31
|
+
* into `agent.options`. We check both locations defensively so this
|
|
32
|
+
* survives future config parser changes.
|
|
33
|
+
*
|
|
34
|
+
* The first boolean value found (in any agent) wins — even if `false`.
|
|
35
|
+
*/
|
|
36
|
+
export declare function applyOpencodeConfig(config: unknown): void;
|
|
37
|
+
/**
|
|
38
|
+
* Whether 1M context should be enabled.
|
|
39
|
+
*
|
|
40
|
+
* Priority: ANTHROPIC_ENABLE_1M_CONTEXT env var > opencode.json > false
|
|
41
|
+
*/
|
|
42
|
+
export declare function isEnable1mContext(): boolean;
|
|
43
|
+
export declare function resetPluginSettings(): void;
|
|
44
|
+
export declare function getPluginSettings(): Readonly<PluginSettings>;
|
|
45
|
+
//# sourceMappingURL=plugin-config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-config.d.ts","sourceRoot":"","sources":["../src/plugin-config.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,cAAc;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAoCzD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAI3C;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAgB,iBAAiB,IAAI,QAAQ,CAAC,cAAc,CAAC,CAE5D"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { log } from "./logger.js";
|
|
2
|
+
let settings = {};
|
|
3
|
+
/**
|
|
4
|
+
* Extract plugin settings from the opencode Config object.
|
|
5
|
+
*
|
|
6
|
+
* Scans all agent configs for our plugin-specific keys. AgentConfig has
|
|
7
|
+
* a catch-all `[key: string]: unknown` index signature, so arbitrary
|
|
8
|
+
* keys placed in agent configs are preserved through OpenCode's
|
|
9
|
+
* config parser and passed to the plugin via the `config` hook.
|
|
10
|
+
*
|
|
11
|
+
* NOTE: OpenCode's Zod schema may relocate unknown top-level agent keys
|
|
12
|
+
* into `agent.options`. We check both locations defensively so this
|
|
13
|
+
* survives future config parser changes.
|
|
14
|
+
*
|
|
15
|
+
* The first boolean value found (in any agent) wins — even if `false`.
|
|
16
|
+
*/
|
|
17
|
+
export function applyOpencodeConfig(config) {
|
|
18
|
+
if (!config || typeof config !== "object")
|
|
19
|
+
return;
|
|
20
|
+
const cfg = config;
|
|
21
|
+
const agents = cfg.agent;
|
|
22
|
+
if (!agents || typeof agents !== "object")
|
|
23
|
+
return;
|
|
24
|
+
for (const agentConfig of Object.values(agents)) {
|
|
25
|
+
if (!agentConfig || typeof agentConfig !== "object")
|
|
26
|
+
continue;
|
|
27
|
+
const agent = agentConfig;
|
|
28
|
+
// Check top-level first, then fall back to options (where OpenCode's
|
|
29
|
+
// Zod transform may relocate unknown keys)
|
|
30
|
+
const val = agent.enable1mContext ??
|
|
31
|
+
agent.options?.enable1mContext;
|
|
32
|
+
if (typeof val === "boolean") {
|
|
33
|
+
settings.enable1mContext = val;
|
|
34
|
+
log("config_loaded", { enable1mContext: val });
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (val !== undefined) {
|
|
38
|
+
log("config_invalid_type", {
|
|
39
|
+
key: "enable1mContext",
|
|
40
|
+
expectedType: "boolean",
|
|
41
|
+
actualType: typeof val,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
log("config_no_plugin_keys", {
|
|
46
|
+
agentCount: Object.keys(agents).length,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Whether 1M context should be enabled.
|
|
51
|
+
*
|
|
52
|
+
* Priority: ANTHROPIC_ENABLE_1M_CONTEXT env var > opencode.json > false
|
|
53
|
+
*/
|
|
54
|
+
export function isEnable1mContext() {
|
|
55
|
+
const envVal = process.env.ANTHROPIC_ENABLE_1M_CONTEXT;
|
|
56
|
+
if (envVal !== undefined)
|
|
57
|
+
return envVal === "true";
|
|
58
|
+
return settings.enable1mContext === true;
|
|
59
|
+
}
|
|
60
|
+
export function resetPluginSettings() {
|
|
61
|
+
settings = {};
|
|
62
|
+
}
|
|
63
|
+
export function getPluginSettings() {
|
|
64
|
+
return { ...settings };
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=plugin-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-config.js","sourceRoot":"","sources":["../src/plugin-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAwBjC,IAAI,QAAQ,GAAmB,EAAE,CAAA;AAEjC;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAe;IACjD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAM;IAEjD,MAAM,GAAG,GAAG,MAAiC,CAAA;IAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,KAA4C,CAAA;IAE/D,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAM;IAEjD,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAChD,IAAI,CAAC,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ;YAAE,SAAQ;QAC7D,MAAM,KAAK,GAAG,WAAsC,CAAA;QAEpD,qEAAqE;QACrE,2CAA2C;QAC3C,MAAM,GAAG,GACP,KAAK,CAAC,eAAe;YACpB,KAAK,CAAC,OAA+C,EAAE,eAAe,CAAA;QAEzE,IAAI,OAAO,GAAG,KAAK,SAAS,EAAE,CAAC;YAC7B,QAAQ,CAAC,eAAe,GAAG,GAAG,CAAA;YAC9B,GAAG,CAAC,eAAe,EAAE,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,CAAA;YAC9C,OAAM;QACR,CAAC;QAED,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,GAAG,CAAC,qBAAqB,EAAE;gBACzB,GAAG,EAAE,iBAAiB;gBACtB,YAAY,EAAE,SAAS;gBACvB,UAAU,EAAE,OAAO,GAAG;aACvB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,GAAG,CAAC,uBAAuB,EAAE;QAC3B,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM;KACvC,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAA;IACtD,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,KAAK,MAAM,CAAA;IAClD,OAAO,QAAQ,CAAC,eAAe,KAAK,IAAI,CAAA;AAC1C,CAAC;AAED,MAAM,UAAU,mBAAmB;IACjC,QAAQ,GAAG,EAAE,CAAA;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAA;AACxB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-claude-auth",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "OpenCode plugin that uses your Claude Code credentials — no separate login needed.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"anthropic",
|
|
@@ -66,6 +66,7 @@
|
|
|
66
66
|
"intercept": "pnpm run build && node --experimental-strip-types scripts/intercept-claude.ts",
|
|
67
67
|
"intercept:all": "pnpm run build && node --experimental-strip-types scripts/intercept-claude.ts --all",
|
|
68
68
|
"intercept:update": "pnpm run build && node --experimental-strip-types scripts/intercept-claude.ts --all --update",
|
|
69
|
+
"validate:oauth": "pnpm run build && node --experimental-strip-types scripts/validate-oauth-refresh.ts",
|
|
69
70
|
"lint": "oxlint && oxfmt --check .",
|
|
70
71
|
"lint:fix": "oxlint --fix . && oxfmt --write .",
|
|
71
72
|
"format": "oxfmt --write ."
|