opencode-claude-auth 0.7.3 → 0.7.4
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 +22 -0
- package/dist/betas.d.ts +7 -0
- package/dist/betas.d.ts.map +1 -0
- package/dist/betas.js +74 -0
- package/dist/betas.js.map +1 -0
- package/dist/credentials.d.ts +6 -0
- package/dist/credentials.d.ts.map +1 -0
- package/dist/credentials.js +97 -0
- package/dist/credentials.js.map +1 -0
- package/dist/index.d.ts +3 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -249
- package/dist/index.js.map +1 -1
- package/dist/transforms.d.ts +4 -0
- package/dist/transforms.d.ts.map +1 -0
- package/dist/transforms.js +79 -0
- package/dist/transforms.js.map +1 -0
- package/opencode-claude-auth.js +1 -0
- package/package.json +27 -4
- package/claude-auth-plugin.js +0 -1
package/README.md
CHANGED
|
@@ -47,6 +47,28 @@ Then add to the `plugin` array in your `opencode.json`:
|
|
|
47
47
|
|
|
48
48
|
Just run OpenCode. The plugin handles auth automatically — it reads your Claude Code credentials, provides them to the Anthropic API, and refreshes them in the background. If your credentials aren't OAuth-based, the plugin falls through to standard API key auth.
|
|
49
49
|
|
|
50
|
+
## Supported models
|
|
51
|
+
|
|
52
|
+
15 supported models. Run `npm run test:models` to verify against your account.
|
|
53
|
+
|
|
54
|
+
| Model |
|
|
55
|
+
|-------|
|
|
56
|
+
| claude-3-haiku-20240307 |
|
|
57
|
+
| claude-haiku-4-5 |
|
|
58
|
+
| claude-haiku-4-5-20251001 |
|
|
59
|
+
| claude-opus-4-0 |
|
|
60
|
+
| claude-opus-4-1 |
|
|
61
|
+
| claude-opus-4-1-20250805 |
|
|
62
|
+
| claude-opus-4-20250514 |
|
|
63
|
+
| claude-opus-4-5 |
|
|
64
|
+
| claude-opus-4-5-20251101 |
|
|
65
|
+
| claude-opus-4-6 |
|
|
66
|
+
| claude-sonnet-4-0 |
|
|
67
|
+
| claude-sonnet-4-20250514 |
|
|
68
|
+
| claude-sonnet-4-5 |
|
|
69
|
+
| claude-sonnet-4-5-20250929 |
|
|
70
|
+
| claude-sonnet-4-6 |
|
|
71
|
+
|
|
50
72
|
## Credential sources
|
|
51
73
|
|
|
52
74
|
The plugin checks these in order:
|
package/dist/betas.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const LONG_CONTEXT_BETAS: string[];
|
|
2
|
+
export declare function getExcludedBetas(modelId: string): Set<string>;
|
|
3
|
+
export declare function addExcludedBeta(modelId: string, beta: string): void;
|
|
4
|
+
export declare function isLongContextError(responseBody: string): boolean;
|
|
5
|
+
export declare function getNextBetaToExclude(modelId: string): string | null;
|
|
6
|
+
export declare function getModelBetas(modelId: string, excluded?: Set<string>): string[];
|
|
7
|
+
//# sourceMappingURL=betas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"betas.d.ts","sourceRoot":"","sources":["../src/betas.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,kBAAkB,UAA+D,CAAA;AAc9F,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,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAGhE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAQnE;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM,EAAE,CA+B/E"}
|
package/dist/betas.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
const DEFAULT_BETA_FLAGS = "claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,prompt-caching-scope-2026-01-05";
|
|
2
|
+
// Beta flags to try removing in order when "long context" errors occur
|
|
3
|
+
export const LONG_CONTEXT_BETAS = ["context-1m-2025-08-07", "interleaved-thinking-2025-05-14"];
|
|
4
|
+
function getRequiredBetas() {
|
|
5
|
+
return (process.env.ANTHROPIC_BETA_FLAGS ?? DEFAULT_BETA_FLAGS)
|
|
6
|
+
.split(",").map(s => s.trim()).filter(Boolean);
|
|
7
|
+
}
|
|
8
|
+
// Session-level cache of excluded beta flags per model (resets on process restart)
|
|
9
|
+
const excludedBetas = new Map();
|
|
10
|
+
// Track the last-seen beta flags env var and model to detect changes
|
|
11
|
+
let lastBetaFlagsEnv = process.env.ANTHROPIC_BETA_FLAGS;
|
|
12
|
+
let lastModelId;
|
|
13
|
+
export function getExcludedBetas(modelId) {
|
|
14
|
+
// Reset exclusions if user changed ANTHROPIC_BETA_FLAGS
|
|
15
|
+
const currentBetaFlags = process.env.ANTHROPIC_BETA_FLAGS;
|
|
16
|
+
if (currentBetaFlags !== lastBetaFlagsEnv) {
|
|
17
|
+
excludedBetas.clear();
|
|
18
|
+
lastBetaFlagsEnv = currentBetaFlags;
|
|
19
|
+
}
|
|
20
|
+
// Reset exclusions if user switched models (new model may support different betas)
|
|
21
|
+
if (lastModelId !== undefined && lastModelId !== modelId) {
|
|
22
|
+
excludedBetas.clear();
|
|
23
|
+
}
|
|
24
|
+
lastModelId = modelId;
|
|
25
|
+
return excludedBetas.get(modelId) ?? new Set();
|
|
26
|
+
}
|
|
27
|
+
export function addExcludedBeta(modelId, beta) {
|
|
28
|
+
const existing = excludedBetas.get(modelId) ?? new Set();
|
|
29
|
+
existing.add(beta);
|
|
30
|
+
excludedBetas.set(modelId, existing);
|
|
31
|
+
}
|
|
32
|
+
export function isLongContextError(responseBody) {
|
|
33
|
+
return responseBody.includes("Extra usage is required for long context requests")
|
|
34
|
+
|| responseBody.includes("long context beta is not yet available");
|
|
35
|
+
}
|
|
36
|
+
export function getNextBetaToExclude(modelId) {
|
|
37
|
+
const excluded = getExcludedBetas(modelId);
|
|
38
|
+
for (const beta of LONG_CONTEXT_BETAS) {
|
|
39
|
+
if (!excluded.has(beta)) {
|
|
40
|
+
return beta;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return null; // All long-context betas already excluded
|
|
44
|
+
}
|
|
45
|
+
export function getModelBetas(modelId, excluded) {
|
|
46
|
+
const betas = [...getRequiredBetas()];
|
|
47
|
+
const lower = modelId.toLowerCase();
|
|
48
|
+
// context-1m only for opus/sonnet 4.6+ models
|
|
49
|
+
if (lower.includes("opus") || lower.includes("sonnet")) {
|
|
50
|
+
const versionMatch = lower.match(/(opus|sonnet)-(\d+)-(\d+)/);
|
|
51
|
+
if (versionMatch) {
|
|
52
|
+
const major = parseInt(versionMatch[2], 10);
|
|
53
|
+
const minor = parseInt(versionMatch[3], 10);
|
|
54
|
+
// Date suffixes like 20250514 are not minor versions — treat as x.0
|
|
55
|
+
const effectiveMinor = minor > 99 ? 0 : minor;
|
|
56
|
+
if (major > 4 || (major === 4 && effectiveMinor >= 6)) {
|
|
57
|
+
betas.push("context-1m-2025-08-07");
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// If no version found (bare alias like "sonnet"), exclude 1M beta
|
|
61
|
+
}
|
|
62
|
+
// haiku doesn't get claude-code-20250219
|
|
63
|
+
if (lower.includes("haiku")) {
|
|
64
|
+
const idx = betas.indexOf("claude-code-20250219");
|
|
65
|
+
if (idx !== -1)
|
|
66
|
+
betas.splice(idx, 1);
|
|
67
|
+
}
|
|
68
|
+
// Filter out excluded betas (from previous failed requests due to long context errors)
|
|
69
|
+
if (excluded && excluded.size > 0) {
|
|
70
|
+
return betas.filter(beta => !excluded.has(beta));
|
|
71
|
+
}
|
|
72
|
+
return betas;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=betas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"betas.js","sourceRoot":"","sources":["../src/betas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ClaudeCredentials } from "./keychain.js";
|
|
2
|
+
export declare function syncAuthJson(creds: ClaudeCredentials): void;
|
|
3
|
+
export declare function refreshIfNeeded(): ClaudeCredentials | null;
|
|
4
|
+
export declare function getCachedCredentials(): ClaudeCredentials | null;
|
|
5
|
+
export type { ClaudeCredentials } from "./keychain.js";
|
|
6
|
+
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"AAIA,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAA;AA0C7E,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI,CAI3D;AAmBD,wBAAgB,eAAe,IAAI,iBAAiB,GAAG,IAAI,CAW1D;AAMD,wBAAgB,oBAAoB,IAAI,iBAAiB,GAAG,IAAI,CAoB/D;AAED,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
2
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
3
|
+
import { dirname, join } from "node:path";
|
|
4
|
+
import { homedir } from "node:os";
|
|
5
|
+
import { readClaudeCredentials } from "./keychain.js";
|
|
6
|
+
const CREDENTIAL_CACHE_TTL_MS = 30_000;
|
|
7
|
+
let cachedCredentials = null;
|
|
8
|
+
let cachedCredentialsAt = 0;
|
|
9
|
+
function getAuthJsonPaths() {
|
|
10
|
+
const xdgPath = join(homedir(), ".local", "share", "opencode", "auth.json");
|
|
11
|
+
if (process.platform === "win32") {
|
|
12
|
+
const appData = process.env.LOCALAPPDATA ?? join(homedir(), "AppData", "Local");
|
|
13
|
+
const localAppDataPath = join(appData, "opencode", "auth.json");
|
|
14
|
+
return [xdgPath, localAppDataPath];
|
|
15
|
+
}
|
|
16
|
+
return [xdgPath];
|
|
17
|
+
}
|
|
18
|
+
function syncToPath(authPath, creds) {
|
|
19
|
+
let auth = {};
|
|
20
|
+
if (existsSync(authPath)) {
|
|
21
|
+
const raw = readFileSync(authPath, "utf-8").trim();
|
|
22
|
+
if (raw) {
|
|
23
|
+
try {
|
|
24
|
+
auth = JSON.parse(raw);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
// Malformed file, start fresh
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
auth.anthropic = {
|
|
32
|
+
type: "oauth",
|
|
33
|
+
access: creds.accessToken,
|
|
34
|
+
refresh: creds.refreshToken,
|
|
35
|
+
expires: creds.expiresAt,
|
|
36
|
+
};
|
|
37
|
+
const dir = dirname(authPath);
|
|
38
|
+
if (!existsSync(dir)) {
|
|
39
|
+
mkdirSync(dir, { recursive: true });
|
|
40
|
+
}
|
|
41
|
+
writeFileSync(authPath, JSON.stringify(auth, null, 2), "utf-8");
|
|
42
|
+
}
|
|
43
|
+
export function syncAuthJson(creds) {
|
|
44
|
+
for (const authPath of getAuthJsonPaths()) {
|
|
45
|
+
syncToPath(authPath, creds);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function refreshViaCli() {
|
|
49
|
+
const maxAttempts = 2;
|
|
50
|
+
for (let i = 0; i < maxAttempts; i++) {
|
|
51
|
+
try {
|
|
52
|
+
execSync("claude -p . --model haiku", {
|
|
53
|
+
timeout: 60_000,
|
|
54
|
+
encoding: "utf-8",
|
|
55
|
+
env: { ...process.env, TERM: "dumb" },
|
|
56
|
+
stdio: "ignore",
|
|
57
|
+
});
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// Non-fatal: retry once, then give up
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
export function refreshIfNeeded() {
|
|
66
|
+
let creds = readClaudeCredentials();
|
|
67
|
+
if (creds && creds.expiresAt > Date.now() + 60_000) {
|
|
68
|
+
return creds;
|
|
69
|
+
}
|
|
70
|
+
refreshViaCli();
|
|
71
|
+
creds = readClaudeCredentials();
|
|
72
|
+
if (creds && creds.expiresAt > Date.now() + 60_000) {
|
|
73
|
+
return creds;
|
|
74
|
+
}
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
function isCredentialUsable(creds) {
|
|
78
|
+
return creds.expiresAt > Date.now() + 60_000;
|
|
79
|
+
}
|
|
80
|
+
export function getCachedCredentials() {
|
|
81
|
+
const now = Date.now();
|
|
82
|
+
if (cachedCredentials &&
|
|
83
|
+
now - cachedCredentialsAt < CREDENTIAL_CACHE_TTL_MS &&
|
|
84
|
+
isCredentialUsable(cachedCredentials)) {
|
|
85
|
+
return cachedCredentials;
|
|
86
|
+
}
|
|
87
|
+
const latest = refreshIfNeeded();
|
|
88
|
+
if (!latest) {
|
|
89
|
+
cachedCredentials = null;
|
|
90
|
+
cachedCredentialsAt = 0;
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
cachedCredentials = latest;
|
|
94
|
+
cachedCredentialsAt = now;
|
|
95
|
+
return latest;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../src/credentials.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
import type { Plugin } from "@opencode-ai/plugin";
|
|
2
|
-
|
|
2
|
+
export { getExcludedBetas, addExcludedBeta, getNextBetaToExclude, isLongContextError, getModelBetas, LONG_CONTEXT_BETAS } from "./betas.js";
|
|
3
|
+
export { transformBody, stripToolPrefix, transformResponseStream } from "./transforms.js";
|
|
4
|
+
export { getCachedCredentials, syncAuthJson, refreshIfNeeded, type ClaudeCredentials } from "./credentials.js";
|
|
3
5
|
type FetchFn = typeof fetch;
|
|
4
6
|
export declare function fetchWithRetry(input: RequestInfo | URL, init?: RequestInit, retries?: number, fetchImpl?: FetchFn): Promise<Response>;
|
|
5
|
-
export declare function isLongContextError(responseBody: string): boolean;
|
|
6
|
-
export declare function getCachedCredentials(): ClaudeCredentials | null;
|
|
7
7
|
export declare function buildRequestHeaders(input: RequestInfo | URL, init: RequestInit, accessToken: string, modelId?: string, excludedBetas?: Set<string>): Headers;
|
|
8
8
|
export declare function getBillingHeader(modelId: string): string;
|
|
9
|
-
export declare function getModelBetas(modelId: string, excluded?: Set<string>): string[];
|
|
10
|
-
export declare function transformBody(body: BodyInit | null | undefined): BodyInit | null | undefined;
|
|
11
|
-
export declare function stripToolPrefix(text: string): string;
|
|
12
|
-
export declare function transformResponseStream(response: Response): Response;
|
|
13
9
|
declare const plugin: Plugin;
|
|
14
10
|
export declare const ClaudeAuthPlugin: Plugin;
|
|
15
11
|
export default plugin;
|
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;AAMjD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC3I,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AACzF,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAa9G,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,CAcnB;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,CAuCT;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGxD;AAID,QAAA,MAAM,MAAM,EAAE,MA4Ib,CAAA;AAED,eAAO,MAAM,gBAAgB,QAAS,CAAA;AACtC,eAAe,MAAM,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,29 +1,18 @@
|
|
|
1
|
-
import { execSync } from "node:child_process";
|
|
2
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
3
|
-
import { dirname, join } from "node:path";
|
|
4
|
-
import { homedir } from "node:os";
|
|
5
1
|
import { readClaudeCredentials } from "./keychain.js";
|
|
2
|
+
import { getExcludedBetas, addExcludedBeta, getNextBetaToExclude, isLongContextError, getModelBetas, LONG_CONTEXT_BETAS } from "./betas.js";
|
|
3
|
+
import { transformBody, transformResponseStream } from "./transforms.js";
|
|
4
|
+
import { getCachedCredentials, syncAuthJson, refreshIfNeeded } from "./credentials.js";
|
|
5
|
+
export { getExcludedBetas, addExcludedBeta, getNextBetaToExclude, isLongContextError, getModelBetas, LONG_CONTEXT_BETAS } from "./betas.js";
|
|
6
|
+
export { transformBody, stripToolPrefix, transformResponseStream } from "./transforms.js";
|
|
7
|
+
export { getCachedCredentials, syncAuthJson, refreshIfNeeded } from "./credentials.js";
|
|
6
8
|
const SYSTEM_IDENTITY_PREFIX = "You are Claude Code, Anthropic's official CLI for Claude.";
|
|
7
|
-
const TOOL_PREFIX = "mcp_";
|
|
8
9
|
const DEFAULT_CC_VERSION = "2.1.80";
|
|
9
|
-
const DEFAULT_BETA_FLAGS = "claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,prompt-caching-scope-2026-01-05";
|
|
10
10
|
function getCliVersion() {
|
|
11
11
|
return process.env.ANTHROPIC_CLI_VERSION ?? DEFAULT_CC_VERSION;
|
|
12
12
|
}
|
|
13
13
|
function getUserAgent() {
|
|
14
14
|
return process.env.ANTHROPIC_USER_AGENT ?? `claude-cli/${getCliVersion()} (external, cli)`;
|
|
15
15
|
}
|
|
16
|
-
function getRequiredBetas() {
|
|
17
|
-
return (process.env.ANTHROPIC_BETA_FLAGS ?? DEFAULT_BETA_FLAGS)
|
|
18
|
-
.split(",").map(s => s.trim()).filter(Boolean);
|
|
19
|
-
}
|
|
20
|
-
const CREDENTIAL_CACHE_TTL_MS = 30_000;
|
|
21
|
-
// Beta flags to try removing in order when "long context" errors occur
|
|
22
|
-
const LONG_CONTEXT_BETAS = ["context-1m-2025-08-07", "interleaved-thinking-2025-05-14"];
|
|
23
|
-
let cachedCredentials = null;
|
|
24
|
-
let cachedCredentialsAt = 0;
|
|
25
|
-
// Session-level cache of excluded beta flags per model (resets on process restart)
|
|
26
|
-
const excludedBetas = new Map();
|
|
27
16
|
export async function fetchWithRetry(input, init, retries = 3, fetchImpl = fetch) {
|
|
28
17
|
for (let i = 0; i < retries; i++) {
|
|
29
18
|
const res = await fetchImpl(input, init);
|
|
@@ -39,132 +28,6 @@ export async function fetchWithRetry(input, init, retries = 3, fetchImpl = fetch
|
|
|
39
28
|
}
|
|
40
29
|
return fetchImpl(input, init);
|
|
41
30
|
}
|
|
42
|
-
function getAuthJsonPaths() {
|
|
43
|
-
const xdgPath = join(homedir(), ".local", "share", "opencode", "auth.json");
|
|
44
|
-
if (process.platform === "win32") {
|
|
45
|
-
const appData = process.env.LOCALAPPDATA ?? join(homedir(), "AppData", "Local");
|
|
46
|
-
const localAppDataPath = join(appData, "opencode", "auth.json");
|
|
47
|
-
// Write to both paths on Windows: some installs (Chocolatey, npm global)
|
|
48
|
-
// use the XDG-style path, others use %LOCALAPPDATA%. See #33.
|
|
49
|
-
return [xdgPath, localAppDataPath];
|
|
50
|
-
}
|
|
51
|
-
return [xdgPath];
|
|
52
|
-
}
|
|
53
|
-
function syncToPath(authPath, creds) {
|
|
54
|
-
let auth = {};
|
|
55
|
-
if (existsSync(authPath)) {
|
|
56
|
-
const raw = readFileSync(authPath, "utf-8").trim();
|
|
57
|
-
if (raw) {
|
|
58
|
-
try {
|
|
59
|
-
auth = JSON.parse(raw);
|
|
60
|
-
}
|
|
61
|
-
catch {
|
|
62
|
-
// Malformed file, start fresh
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
auth.anthropic = {
|
|
67
|
-
type: "oauth",
|
|
68
|
-
access: creds.accessToken,
|
|
69
|
-
refresh: creds.refreshToken,
|
|
70
|
-
expires: creds.expiresAt,
|
|
71
|
-
};
|
|
72
|
-
const dir = dirname(authPath);
|
|
73
|
-
if (!existsSync(dir)) {
|
|
74
|
-
mkdirSync(dir, { recursive: true });
|
|
75
|
-
}
|
|
76
|
-
writeFileSync(authPath, JSON.stringify(auth, null, 2), "utf-8");
|
|
77
|
-
}
|
|
78
|
-
function syncAuthJson(creds) {
|
|
79
|
-
for (const authPath of getAuthJsonPaths()) {
|
|
80
|
-
syncToPath(authPath, creds);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
function refreshViaCli() {
|
|
84
|
-
const maxAttempts = 2;
|
|
85
|
-
for (let i = 0; i < maxAttempts; i++) {
|
|
86
|
-
try {
|
|
87
|
-
execSync("claude -p . --model haiku", {
|
|
88
|
-
timeout: 60_000,
|
|
89
|
-
encoding: "utf-8",
|
|
90
|
-
env: { ...process.env, TERM: "dumb" },
|
|
91
|
-
stdio: "ignore",
|
|
92
|
-
});
|
|
93
|
-
return;
|
|
94
|
-
}
|
|
95
|
-
catch {
|
|
96
|
-
// Non-fatal: retry once, then give up
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
function refreshIfNeeded() {
|
|
101
|
-
let creds = readClaudeCredentials();
|
|
102
|
-
if (creds && creds.expiresAt > Date.now() + 60_000) {
|
|
103
|
-
return creds;
|
|
104
|
-
}
|
|
105
|
-
// Token is expired or near expiry, try CLI refresh
|
|
106
|
-
refreshViaCli();
|
|
107
|
-
creds = readClaudeCredentials();
|
|
108
|
-
if (creds && creds.expiresAt > Date.now() + 60_000) {
|
|
109
|
-
return creds;
|
|
110
|
-
}
|
|
111
|
-
return null;
|
|
112
|
-
}
|
|
113
|
-
function isCredentialUsable(creds) {
|
|
114
|
-
return creds.expiresAt > Date.now() + 60_000;
|
|
115
|
-
}
|
|
116
|
-
// Track the last-seen beta flags env var and model to detect changes
|
|
117
|
-
let lastBetaFlagsEnv = process.env.ANTHROPIC_BETA_FLAGS;
|
|
118
|
-
let lastModelId;
|
|
119
|
-
function getExcludedBetas(modelId) {
|
|
120
|
-
// Reset exclusions if user changed ANTHROPIC_BETA_FLAGS
|
|
121
|
-
const currentBetaFlags = process.env.ANTHROPIC_BETA_FLAGS;
|
|
122
|
-
if (currentBetaFlags !== lastBetaFlagsEnv) {
|
|
123
|
-
excludedBetas.clear();
|
|
124
|
-
lastBetaFlagsEnv = currentBetaFlags;
|
|
125
|
-
}
|
|
126
|
-
// Reset exclusions if user switched models (new model may support different betas)
|
|
127
|
-
if (lastModelId !== undefined && lastModelId !== modelId) {
|
|
128
|
-
excludedBetas.clear();
|
|
129
|
-
}
|
|
130
|
-
lastModelId = modelId;
|
|
131
|
-
return excludedBetas.get(modelId) ?? new Set();
|
|
132
|
-
}
|
|
133
|
-
function addExcludedBeta(modelId, beta) {
|
|
134
|
-
const existing = excludedBetas.get(modelId) ?? new Set();
|
|
135
|
-
existing.add(beta);
|
|
136
|
-
excludedBetas.set(modelId, existing);
|
|
137
|
-
}
|
|
138
|
-
export function isLongContextError(responseBody) {
|
|
139
|
-
return responseBody.includes("Extra usage is required for long context requests")
|
|
140
|
-
|| responseBody.includes("long context beta is not yet available");
|
|
141
|
-
}
|
|
142
|
-
function getNextBetaToExclude(modelId) {
|
|
143
|
-
const excluded = getExcludedBetas(modelId);
|
|
144
|
-
for (const beta of LONG_CONTEXT_BETAS) {
|
|
145
|
-
if (!excluded.has(beta)) {
|
|
146
|
-
return beta;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
return null; // All long-context betas already excluded
|
|
150
|
-
}
|
|
151
|
-
export function getCachedCredentials() {
|
|
152
|
-
const now = Date.now();
|
|
153
|
-
if (cachedCredentials &&
|
|
154
|
-
now - cachedCredentialsAt < CREDENTIAL_CACHE_TTL_MS &&
|
|
155
|
-
isCredentialUsable(cachedCredentials)) {
|
|
156
|
-
return cachedCredentials;
|
|
157
|
-
}
|
|
158
|
-
const latest = refreshIfNeeded();
|
|
159
|
-
if (!latest) {
|
|
160
|
-
cachedCredentials = null;
|
|
161
|
-
cachedCredentialsAt = 0;
|
|
162
|
-
return null;
|
|
163
|
-
}
|
|
164
|
-
cachedCredentials = latest;
|
|
165
|
-
cachedCredentialsAt = now;
|
|
166
|
-
return latest;
|
|
167
|
-
}
|
|
168
31
|
export function buildRequestHeaders(input, init, accessToken, modelId = "unknown", excludedBetas) {
|
|
169
32
|
const headers = new Headers();
|
|
170
33
|
if (input instanceof Request) {
|
|
@@ -206,112 +69,6 @@ export function getBillingHeader(modelId) {
|
|
|
206
69
|
const entrypoint = "cli";
|
|
207
70
|
return `cc_version=${getCliVersion()}.${modelId}; cc_entrypoint=${entrypoint}; cch=00000;`;
|
|
208
71
|
}
|
|
209
|
-
export function getModelBetas(modelId, excluded) {
|
|
210
|
-
const betas = [...getRequiredBetas()];
|
|
211
|
-
const lower = modelId.toLowerCase();
|
|
212
|
-
// context-1m only for opus/sonnet 4.6+ models
|
|
213
|
-
if (lower.includes("opus") || lower.includes("sonnet")) {
|
|
214
|
-
const versionMatch = lower.match(/(opus|sonnet)-(\d+)-(\d+)/);
|
|
215
|
-
if (versionMatch) {
|
|
216
|
-
const major = parseInt(versionMatch[2], 10);
|
|
217
|
-
const minor = parseInt(versionMatch[3], 10);
|
|
218
|
-
// Date suffixes like 20250514 are not minor versions — treat as x.0
|
|
219
|
-
const effectiveMinor = minor > 99 ? 0 : minor;
|
|
220
|
-
if (major > 4 || (major === 4 && effectiveMinor >= 6)) {
|
|
221
|
-
betas.push("context-1m-2025-08-07");
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
// If no version found (bare alias like "sonnet"), exclude 1M beta
|
|
225
|
-
}
|
|
226
|
-
// haiku doesn't get claude-code-20250219
|
|
227
|
-
if (lower.includes("haiku")) {
|
|
228
|
-
const idx = betas.indexOf("claude-code-20250219");
|
|
229
|
-
if (idx !== -1)
|
|
230
|
-
betas.splice(idx, 1);
|
|
231
|
-
}
|
|
232
|
-
// Filter out excluded betas (from previous failed requests due to long context errors)
|
|
233
|
-
if (excluded && excluded.size > 0) {
|
|
234
|
-
return betas.filter(beta => !excluded.has(beta));
|
|
235
|
-
}
|
|
236
|
-
return betas;
|
|
237
|
-
}
|
|
238
|
-
export function transformBody(body) {
|
|
239
|
-
if (typeof body !== "string") {
|
|
240
|
-
return body;
|
|
241
|
-
}
|
|
242
|
-
try {
|
|
243
|
-
const parsed = JSON.parse(body);
|
|
244
|
-
if (Array.isArray(parsed.tools)) {
|
|
245
|
-
parsed.tools = parsed.tools.map((tool) => ({
|
|
246
|
-
...tool,
|
|
247
|
-
name: tool.name ? `${TOOL_PREFIX}${tool.name}` : tool.name,
|
|
248
|
-
}));
|
|
249
|
-
}
|
|
250
|
-
if (Array.isArray(parsed.messages)) {
|
|
251
|
-
parsed.messages = parsed.messages.map((message) => {
|
|
252
|
-
if (!Array.isArray(message.content)) {
|
|
253
|
-
return message;
|
|
254
|
-
}
|
|
255
|
-
return {
|
|
256
|
-
...message,
|
|
257
|
-
content: message.content.map((block) => {
|
|
258
|
-
if (block.type !== "tool_use" || typeof block.name !== "string") {
|
|
259
|
-
return block;
|
|
260
|
-
}
|
|
261
|
-
return {
|
|
262
|
-
...block,
|
|
263
|
-
name: `${TOOL_PREFIX}${block.name}`,
|
|
264
|
-
};
|
|
265
|
-
}),
|
|
266
|
-
};
|
|
267
|
-
});
|
|
268
|
-
}
|
|
269
|
-
return JSON.stringify(parsed);
|
|
270
|
-
}
|
|
271
|
-
catch {
|
|
272
|
-
return body;
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
export function stripToolPrefix(text) {
|
|
276
|
-
return text.replace(/"name"\s*:\s*"mcp_([^"]+)"/g, '"name": "$1"');
|
|
277
|
-
}
|
|
278
|
-
export function transformResponseStream(response) {
|
|
279
|
-
if (!response.body) {
|
|
280
|
-
return response;
|
|
281
|
-
}
|
|
282
|
-
const reader = response.body.getReader();
|
|
283
|
-
const decoder = new TextDecoder();
|
|
284
|
-
const encoder = new TextEncoder();
|
|
285
|
-
let buffer = "";
|
|
286
|
-
const stream = new ReadableStream({
|
|
287
|
-
async pull(controller) {
|
|
288
|
-
for (;;) {
|
|
289
|
-
const boundary = buffer.indexOf("\n\n");
|
|
290
|
-
if (boundary !== -1) {
|
|
291
|
-
const completeEvent = buffer.slice(0, boundary + 2);
|
|
292
|
-
buffer = buffer.slice(boundary + 2);
|
|
293
|
-
controller.enqueue(encoder.encode(stripToolPrefix(completeEvent)));
|
|
294
|
-
return;
|
|
295
|
-
}
|
|
296
|
-
const { done, value } = await reader.read();
|
|
297
|
-
if (done) {
|
|
298
|
-
if (buffer) {
|
|
299
|
-
controller.enqueue(encoder.encode(stripToolPrefix(buffer)));
|
|
300
|
-
buffer = "";
|
|
301
|
-
}
|
|
302
|
-
controller.close();
|
|
303
|
-
return;
|
|
304
|
-
}
|
|
305
|
-
buffer += decoder.decode(value, { stream: true });
|
|
306
|
-
}
|
|
307
|
-
},
|
|
308
|
-
});
|
|
309
|
-
return new Response(stream, {
|
|
310
|
-
status: response.status,
|
|
311
|
-
statusText: response.statusText,
|
|
312
|
-
headers: response.headers,
|
|
313
|
-
});
|
|
314
|
-
}
|
|
315
72
|
const SYNC_INTERVAL = 5 * 60 * 1000; // 5 minutes
|
|
316
73
|
const plugin = async () => {
|
|
317
74
|
let creds = null;
|
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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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function transformBody(body: BodyInit | null | undefined): BodyInit | null | undefined;
|
|
2
|
+
export declare function stripToolPrefix(text: string): string;
|
|
3
|
+
export declare function transformResponseStream(response: Response): Response;
|
|
4
|
+
//# sourceMappingURL=transforms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transforms.d.ts","sourceRoot":"","sources":["../src/transforms.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,SAAS,GAAG,QAAQ,GAAG,IAAI,GAAG,SAAS,CA8C5F;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CA0CpE"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
const TOOL_PREFIX = "mcp_";
|
|
2
|
+
export function transformBody(body) {
|
|
3
|
+
if (typeof body !== "string") {
|
|
4
|
+
return body;
|
|
5
|
+
}
|
|
6
|
+
try {
|
|
7
|
+
const parsed = JSON.parse(body);
|
|
8
|
+
if (Array.isArray(parsed.tools)) {
|
|
9
|
+
parsed.tools = parsed.tools.map((tool) => ({
|
|
10
|
+
...tool,
|
|
11
|
+
name: tool.name ? `${TOOL_PREFIX}${tool.name}` : tool.name,
|
|
12
|
+
}));
|
|
13
|
+
}
|
|
14
|
+
if (Array.isArray(parsed.messages)) {
|
|
15
|
+
parsed.messages = parsed.messages.map((message) => {
|
|
16
|
+
if (!Array.isArray(message.content)) {
|
|
17
|
+
return message;
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
...message,
|
|
21
|
+
content: message.content.map((block) => {
|
|
22
|
+
if (block.type !== "tool_use" || typeof block.name !== "string") {
|
|
23
|
+
return block;
|
|
24
|
+
}
|
|
25
|
+
return {
|
|
26
|
+
...block,
|
|
27
|
+
name: `${TOOL_PREFIX}${block.name}`,
|
|
28
|
+
};
|
|
29
|
+
}),
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
return JSON.stringify(parsed);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return body;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export function stripToolPrefix(text) {
|
|
40
|
+
return text.replace(/"name"\s*:\s*"mcp_([^"]+)"/g, '"name": "$1"');
|
|
41
|
+
}
|
|
42
|
+
export function transformResponseStream(response) {
|
|
43
|
+
if (!response.body) {
|
|
44
|
+
return response;
|
|
45
|
+
}
|
|
46
|
+
const reader = response.body.getReader();
|
|
47
|
+
const decoder = new TextDecoder();
|
|
48
|
+
const encoder = new TextEncoder();
|
|
49
|
+
let buffer = "";
|
|
50
|
+
const stream = new ReadableStream({
|
|
51
|
+
async pull(controller) {
|
|
52
|
+
for (;;) {
|
|
53
|
+
const boundary = buffer.indexOf("\n\n");
|
|
54
|
+
if (boundary !== -1) {
|
|
55
|
+
const completeEvent = buffer.slice(0, boundary + 2);
|
|
56
|
+
buffer = buffer.slice(boundary + 2);
|
|
57
|
+
controller.enqueue(encoder.encode(stripToolPrefix(completeEvent)));
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const { done, value } = await reader.read();
|
|
61
|
+
if (done) {
|
|
62
|
+
if (buffer) {
|
|
63
|
+
controller.enqueue(encoder.encode(stripToolPrefix(buffer)));
|
|
64
|
+
buffer = "";
|
|
65
|
+
}
|
|
66
|
+
controller.close();
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
buffer += decoder.decode(value, { stream: true });
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
return new Response(stream, {
|
|
74
|
+
status: response.status,
|
|
75
|
+
statusText: response.statusText,
|
|
76
|
+
headers: response.headers,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=transforms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transforms.js","sourceRoot":"","sources":["../src/transforms.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ClaudeAuthPlugin, default } from "./dist/index.js";
|
package/package.json
CHANGED
|
@@ -1,20 +1,43 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-claude-auth",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.4",
|
|
4
4
|
"description": "OpenCode plugin that uses your Claude Code credentials — no separate login needed.",
|
|
5
5
|
"preferGlobal": true,
|
|
6
|
-
"main": "
|
|
7
|
-
"module": "
|
|
6
|
+
"main": "opencode-claude-auth.js",
|
|
7
|
+
"module": "opencode-claude-auth.js",
|
|
8
8
|
"types": "dist/index.d.ts",
|
|
9
9
|
"type": "module",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": {
|
|
12
|
+
"types": "./dist/index.d.ts",
|
|
13
|
+
"import": "./opencode-claude-auth.js"
|
|
14
|
+
},
|
|
15
|
+
"./claude-auth-plugin": {
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"import": "./dist/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./claude-auth-plugin.js": {
|
|
20
|
+
"types": "./dist/index.d.ts",
|
|
21
|
+
"import": "./dist/index.js"
|
|
22
|
+
},
|
|
23
|
+
"./opencode-claude-auth": {
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"import": "./dist/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./opencode-claude-auth.js": {
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"import": "./dist/index.js"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
10
32
|
"files": [
|
|
33
|
+
"opencode-claude-auth.js",
|
|
11
34
|
"dist",
|
|
12
|
-
"claude-auth-plugin.js",
|
|
13
35
|
"installation.md"
|
|
14
36
|
],
|
|
15
37
|
"scripts": {
|
|
16
38
|
"build": "tsc && cp src/anthropic-prompt.txt dist/",
|
|
17
39
|
"test": "node --test --experimental-strip-types src/**/*.test.ts",
|
|
40
|
+
"test:models": "npm run build && node scripts/test-models.ts",
|
|
18
41
|
"prepublishOnly": "npm run build && npm test"
|
|
19
42
|
},
|
|
20
43
|
"peerDependencies": {
|
package/claude-auth-plugin.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { ClaudeAuthPlugin, default } from "./dist/index.js"
|