better-opencode-openai-codex-auth 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/config/README.md +19 -93
  2. package/config/opencode-modern.json +149 -42
  3. package/dist/index.d.ts +0 -12
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +195 -94
  6. package/dist/index.js.map +1 -1
  7. package/dist/lib/account-pool.d.ts +29 -3
  8. package/dist/lib/account-pool.d.ts.map +1 -1
  9. package/dist/lib/account-pool.js +210 -47
  10. package/dist/lib/account-pool.js.map +1 -1
  11. package/dist/lib/auth/auth.d.ts +55 -4
  12. package/dist/lib/auth/auth.d.ts.map +1 -1
  13. package/dist/lib/auth/auth.js +130 -6
  14. package/dist/lib/auth/auth.js.map +1 -1
  15. package/dist/lib/auth/ui/account-menu.d.ts +50 -0
  16. package/dist/lib/auth/ui/account-menu.d.ts.map +1 -0
  17. package/dist/lib/auth/ui/account-menu.js +258 -0
  18. package/dist/lib/auth/ui/account-menu.js.map +1 -0
  19. package/dist/lib/auth/ui/ansi.d.ts +23 -0
  20. package/dist/lib/auth/ui/ansi.d.ts.map +1 -0
  21. package/dist/lib/auth/ui/ansi.js +37 -0
  22. package/dist/lib/auth/ui/ansi.js.map +1 -0
  23. package/dist/lib/auth/ui/confirm.d.ts +2 -0
  24. package/dist/lib/auth/ui/confirm.d.ts.map +1 -0
  25. package/dist/lib/auth/ui/confirm.js +8 -0
  26. package/dist/lib/auth/ui/confirm.js.map +1 -0
  27. package/dist/lib/auth/ui/select.d.ts +21 -0
  28. package/dist/lib/auth/ui/select.d.ts.map +1 -0
  29. package/dist/lib/auth/ui/select.js +208 -0
  30. package/dist/lib/auth/ui/select.js.map +1 -0
  31. package/dist/lib/constants.d.ts +51 -3
  32. package/dist/lib/constants.d.ts.map +1 -1
  33. package/dist/lib/constants.js +55 -3
  34. package/dist/lib/constants.js.map +1 -1
  35. package/dist/lib/refresh-queue.d.ts +56 -0
  36. package/dist/lib/refresh-queue.d.ts.map +1 -0
  37. package/dist/lib/refresh-queue.js +148 -0
  38. package/dist/lib/refresh-queue.js.map +1 -0
  39. package/dist/lib/request/fetch-helpers.d.ts +2 -1
  40. package/dist/lib/request/fetch-helpers.d.ts.map +1 -1
  41. package/dist/lib/request/fetch-helpers.js +23 -3
  42. package/dist/lib/request/fetch-helpers.js.map +1 -1
  43. package/dist/lib/types.d.ts +18 -2
  44. package/dist/lib/types.d.ts.map +1 -1
  45. package/package.json +1 -2
  46. package/scripts/install-opencode-codex-auth.js +7 -27
  47. package/config/opencode-legacy.json +0 -571
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Proactive Token Refresh Queue (#8)
3
+ *
4
+ * Runs as a background timer and refreshes OAuth tokens that are approaching
5
+ * expiry. This ensures user requests are never blocked by an in-flight token
6
+ * refresh — the pool always has fresh credentials ready.
7
+ *
8
+ * Adapted from the LLM-API-Key-Proxy pattern used in
9
+ * NoeFabris/opencode-antigravity-auth, stripped of Google-specific logic.
10
+ *
11
+ * Key properties:
12
+ * - Non-blocking: runs independently of the request path
13
+ * - Serialized: only one refresh pass runs at a time (no concurrent storms)
14
+ * - Per-account: skips expired or already-up-to-date tokens
15
+ * - Configurable: buffer window and check interval are tunable
16
+ */
17
+ import { refreshAccessTokenShared } from "./auth/auth.js";
18
+ import { logDebug, logWarn } from "./logger.js";
19
+ export const DEFAULT_PROACTIVE_REFRESH_CONFIG = {
20
+ enabled: true,
21
+ bufferSeconds: 1800, // 30 minutes before expiry
22
+ checkIntervalSeconds: 300, // check every 5 minutes
23
+ };
24
+ /**
25
+ * Proactive Token Refresh Queue.
26
+ *
27
+ * Usage:
28
+ * const queue = new ProactiveRefreshQueue(accountPool);
29
+ * queue.start();
30
+ * // ... plugin runs ...
31
+ * queue.stop(); // optional, on process exit
32
+ */
33
+ export class ProactiveRefreshQueue {
34
+ config;
35
+ pool;
36
+ isRunning = false;
37
+ isRefreshing = false;
38
+ intervalHandle = null;
39
+ constructor(pool, config) {
40
+ this.pool = pool;
41
+ this.config = { ...DEFAULT_PROACTIVE_REFRESH_CONFIG, ...config };
42
+ }
43
+ /**
44
+ * Start the background refresh loop.
45
+ * An initial check runs 5 s after start (letting things settle).
46
+ */
47
+ start() {
48
+ if (this.isRunning || !this.config.enabled)
49
+ return;
50
+ this.isRunning = true;
51
+ // Initial check after a short settling delay
52
+ setTimeout(() => {
53
+ if (this.isRunning) {
54
+ this.runRefreshCheck().catch((err) => {
55
+ logWarn("ProactiveRefreshQueue: initial check failed", err);
56
+ });
57
+ }
58
+ }, 5_000);
59
+ // Periodic checks
60
+ const intervalMs = this.config.checkIntervalSeconds * 1000;
61
+ this.intervalHandle = setInterval(() => {
62
+ this.runRefreshCheck().catch((err) => {
63
+ logWarn("ProactiveRefreshQueue: periodic check failed", err);
64
+ });
65
+ }, intervalMs);
66
+ logDebug("ProactiveRefreshQueue started", {
67
+ checkIntervalSeconds: this.config.checkIntervalSeconds,
68
+ bufferSeconds: this.config.bufferSeconds,
69
+ });
70
+ }
71
+ stop() {
72
+ if (!this.isRunning)
73
+ return;
74
+ this.isRunning = false;
75
+ if (this.intervalHandle) {
76
+ clearInterval(this.intervalHandle);
77
+ this.intervalHandle = null;
78
+ }
79
+ logDebug("ProactiveRefreshQueue stopped");
80
+ }
81
+ /** Whether the queue is currently running */
82
+ get running() {
83
+ return this.isRunning;
84
+ }
85
+ // ---------------------------------------------------------------------------
86
+ needsRefresh(account) {
87
+ if (!account.expires)
88
+ return false;
89
+ const bufferMs = this.config.bufferSeconds * 1000;
90
+ return account.expires <= Date.now() + bufferMs;
91
+ }
92
+ isAlreadyExpired(account) {
93
+ if (!account.expires)
94
+ return false;
95
+ return account.expires <= Date.now();
96
+ }
97
+ async runRefreshCheck() {
98
+ if (this.isRefreshing)
99
+ return; // previous pass still running
100
+ this.isRefreshing = true;
101
+ try {
102
+ const accounts = this.pool.getAccounts().filter((a) => {
103
+ // Skip accounts that are already expired — let the main fetch loop handle those
104
+ if (this.isAlreadyExpired(a))
105
+ return false;
106
+ return this.needsRefresh(a);
107
+ });
108
+ if (accounts.length === 0)
109
+ return;
110
+ logDebug(`ProactiveRefreshQueue: refreshing ${accounts.length} account(s)`);
111
+ // Refresh serially — prevents concurrent refresh storms
112
+ for (const account of accounts) {
113
+ if (!this.isRunning)
114
+ break; // stopped mid-pass
115
+ try {
116
+ const result = await refreshAccessTokenShared(account.accountId, account.refresh);
117
+ if (result.type === "success") {
118
+ this.pool.replaceAuth(account.accountId, result.access, result.refresh, result.expires);
119
+ try {
120
+ this.pool.save();
121
+ }
122
+ catch {
123
+ // Non-fatal — token is already updated in memory
124
+ }
125
+ logDebug("ProactiveRefreshQueue: refreshed account", {
126
+ accountId: account.accountId,
127
+ });
128
+ }
129
+ else {
130
+ logWarn("ProactiveRefreshQueue: refresh failed for account", {
131
+ accountId: account.accountId,
132
+ });
133
+ }
134
+ }
135
+ catch (err) {
136
+ logWarn("ProactiveRefreshQueue: unexpected error refreshing account", {
137
+ accountId: account.accountId,
138
+ error: err instanceof Error ? err.message : String(err),
139
+ });
140
+ }
141
+ }
142
+ }
143
+ finally {
144
+ this.isRefreshing = false;
145
+ }
146
+ }
147
+ }
148
+ //# sourceMappingURL=refresh-queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refresh-queue.js","sourceRoot":"","sources":["../../lib/refresh-queue.ts"],"names":[],"mappings":"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"}
@@ -25,7 +25,8 @@ export declare function refreshAndUpdateToken(currentAuth: Auth, client: Opencod
25
25
  */
26
26
  export declare function extractRequestUrl(input: Request | string | URL): string;
27
27
  /**
28
- * Rewrites OpenAI API URLs to Codex backend URLs
28
+ * Rewrites OpenAI API URLs to Codex backend URLs.
29
+ * Handles both the Responses API path and the Chat Completions compat path (#7).
29
30
  * @param url - Original URL
30
31
  * @returns Rewritten URL for Codex backend
31
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-helpers.d.ts","sourceRoot":"","sources":["../../../lib/request/fetch-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAY3D;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAEtD;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAC1C,WAAW,EAAE,IAAI,EACjB,MAAM,EAAE,cAAc,GACpB,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,CAIvE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC7C,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,UAAU,EACtB,SAAS,UAAO,GACd,OAAO,CAAC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,GAAG,SAAS,CAAC,CA0DtE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAkBT;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACrC,QAAQ,EAAE,QAAQ,GACnB,OAAO,CAAC,QAAQ,CAAC,CAUnB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACvC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,OAAO,GACrB,OAAO,CAAC,QAAQ,CAAC,CAcnB"}
1
+ {"version":3,"file":"fetch-helpers.d.ts","sourceRoot":"","sources":["../../../lib/request/fetch-helpers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAMvD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAY3D;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAEtD;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAC1C,WAAW,EAAE,IAAI,EACjB,MAAM,EAAE,cAAc,GACpB,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,CAIvE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiBtD;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAC7C,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,UAAU,EACtB,SAAS,UAAO,GACd,OAAO,CAAC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,GAAG,SAAS,CAAC,CA0DtE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAC9B,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,OAAO,CAqBT;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CACrC,QAAQ,EAAE,QAAQ,GACnB,OAAO,CAAC,QAAQ,CAAC,CAUnB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACvC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,OAAO,GACrB,OAAO,CAAC,QAAQ,CAAC,CAcnB"}
@@ -59,12 +59,29 @@ export function extractRequestUrl(input) {
59
59
  return input.url;
60
60
  }
61
61
  /**
62
- * Rewrites OpenAI API URLs to Codex backend URLs
62
+ * Rewrites OpenAI API URLs to Codex backend URLs.
63
+ * Handles both the Responses API path and the Chat Completions compat path (#7).
63
64
  * @param url - Original URL
64
65
  * @returns Rewritten URL for Codex backend
65
66
  */
66
67
  export function rewriteUrlForCodex(url) {
67
- return url.replace(URL_PATHS.RESPONSES, URL_PATHS.CODEX_RESPONSES);
68
+ // /v1/responses or /responses → /codex/responses
69
+ if (url.includes(URL_PATHS.RESPONSES)) {
70
+ return url.replace(URL_PATHS.RESPONSES, URL_PATHS.CODEX_RESPONSES);
71
+ }
72
+ // /chat/completions (Chat Completions compat layer) → codex endpoint
73
+ if (url.includes(URL_PATHS.CHAT_COMPLETIONS)) {
74
+ try {
75
+ const parsed = new URL(url);
76
+ parsed.pathname = URL_PATHS.CODEX_RESPONSES;
77
+ return parsed.toString();
78
+ }
79
+ catch {
80
+ // Fallback for relative paths
81
+ return url.replace(URL_PATHS.CHAT_COMPLETIONS, URL_PATHS.CODEX_RESPONSES);
82
+ }
83
+ }
84
+ return url;
68
85
  }
69
86
  /**
70
87
  * Transforms request body and logs the transformation
@@ -141,12 +158,15 @@ export function createCodexHeaders(init, accountId, accessToken, opts) {
141
158
  headers.set(OPENAI_HEADERS.ORIGINATOR, OPENAI_HEADER_VALUES.ORIGINATOR_CODEX);
142
159
  const cacheKey = opts?.promptCacheKey;
143
160
  if (cacheKey) {
161
+ // Use prompt_cache_key for both conversation and session tracking
144
162
  headers.set(OPENAI_HEADERS.CONVERSATION_ID, cacheKey);
145
163
  headers.set(OPENAI_HEADERS.SESSION_ID, cacheKey);
146
164
  }
147
165
  else {
166
+ // No explicit cache key — remove conversation_id but preserve session_id
167
+ // if it was already injected by the chat.headers hook (#4: platform session ID)
148
168
  headers.delete(OPENAI_HEADERS.CONVERSATION_ID);
149
- headers.delete(OPENAI_HEADERS.SESSION_ID);
169
+ // session_id is left as-is (may have been set to input.sessionID by chat.headers hook)
150
170
  }
151
171
  headers.set("accept", "text/event-stream");
152
172
  return headers;
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-helpers.js","sourceRoot":"","sources":["../../../lib/request/fetch-helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch-helpers.js","sourceRoot":"","sources":["../../../lib/request/fetch-helpers.ts"],"names":[],"mappings":"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"}
@@ -19,9 +19,15 @@ export interface AccountPoolEntry {
19
19
  email?: string;
20
20
  lastUsed?: number;
21
21
  rateLimitedUntil?: number;
22
+ /** Timestamp until which this account is cooling down after consecutive auth failures */
23
+ coolingDownUntil?: number;
24
+ /** Number of consecutive auth/token-refresh failures (resets after FAILURE_RESET_MS) */
25
+ consecutiveFailures?: number;
26
+ /** Timestamp of the most recent failure, used for TTL-based counter reset */
27
+ lastFailureAt?: number;
22
28
  }
23
29
  export interface AccountPoolStorage {
24
- version: 1;
30
+ version: 2;
25
31
  activeIndex: number;
26
32
  accounts: AccountPoolEntry[];
27
33
  }
@@ -90,6 +96,8 @@ export interface TokenSuccess {
90
96
  access: string;
91
97
  refresh: string;
92
98
  expires: number;
99
+ /** id_token JWT returned by OpenAI — contains chatgpt_account_id as a dedicated claim */
100
+ id_token?: string;
93
101
  }
94
102
  /**
95
103
  * Token exchange failure result
@@ -109,12 +117,20 @@ export interface ParsedAuthInput {
109
117
  state?: string;
110
118
  }
111
119
  /**
112
- * JWT payload with ChatGPT account info
120
+ * JWT payload with ChatGPT account info.
121
+ * The account ID may be present at the root OR nested under the openai auth claim.
113
122
  */
114
123
  export interface JWTPayload {
124
+ /** Direct account ID claim (first-party opencode uses this as primary lookup) */
125
+ chatgpt_account_id?: string;
126
+ /** Nested claim used by some token variants */
115
127
  "https://api.openai.com/auth"?: {
116
128
  chatgpt_account_id?: string;
117
129
  };
130
+ /** Org-based fallback when chatgpt_account_id is absent */
131
+ organizations?: Array<{
132
+ id: string;
133
+ }>;
118
134
  [key: string]: unknown;
119
135
  }
120
136
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../lib/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "better-opencode-openai-codex-auth",
3
- "version": "0.1.2",
3
+ "version": "0.1.3",
4
4
  "description": "OpenAI ChatGPT (Codex backend) OAuth auth plugin for opencode - use your ChatGPT Plus/Pro subscription instead of API credits",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -64,7 +64,6 @@
64
64
  },
65
65
  "dependencies": {
66
66
  "@openauthjs/openauth": "^0.4.3",
67
- "hono": "^4.12.7",
68
67
  "jsonc-parser": "^3.3.1",
69
68
  "zod": "^4.3.6"
70
69
  },
@@ -11,15 +11,12 @@ const PLUGIN_NAME = "better-opencode-openai-codex-auth";
11
11
  const args = new Set(process.argv.slice(2));
12
12
 
13
13
  if (args.has("--help") || args.has("-h")) {
14
- console.log(`Usage: ${PLUGIN_NAME} [--modern|--legacy] [--uninstall] [--all] [--dry-run] [--no-cache-clear]\n\n` +
14
+ console.log(`Usage: ${PLUGIN_NAME} [--uninstall] [--all] [--dry-run] [--no-cache-clear]\n\n` +
15
15
  "Default behavior:\n" +
16
- " - Installs/updates global config at ~/.config/opencode/opencode.jsonc (falls back to .json)\n" +
17
- " - Uses modern config (variants) by default\n" +
16
+ " - Installs/updates global config at ~/.config/opencode/opencode.jsonc\n" +
18
17
  " - Ensures plugin is unpinned (latest)\n" +
19
18
  " - Clears OpenCode plugin cache\n\n" +
20
19
  "Options:\n" +
21
- " --modern Force modern config (default)\n" +
22
- " --legacy Use legacy config (older OpenCode versions)\n" +
23
20
  " --uninstall Remove plugin + OpenAI config entries from global config\n" +
24
21
  " --all With --uninstall, also remove tokens, logs, and cached instructions\n" +
25
22
  " --dry-run Show actions without writing\n" +
@@ -28,8 +25,6 @@ if (args.has("--help") || args.has("-h")) {
28
25
  process.exit(0);
29
26
  }
30
27
 
31
- const useLegacy = args.has("--legacy");
32
- const useModern = args.has("--modern") || !useLegacy;
33
28
  const uninstallRequested = args.has("--uninstall") || args.has("--all");
34
29
  const uninstallAll = args.has("--all");
35
30
  const dryRun = args.has("--dry-run");
@@ -37,11 +32,7 @@ const skipCacheClear = args.has("--no-cache-clear");
37
32
 
38
33
  const scriptDir = dirname(fileURLToPath(import.meta.url));
39
34
  const repoRoot = resolve(scriptDir, "..");
40
- const templatePath = join(
41
- repoRoot,
42
- "config",
43
- useLegacy ? "opencode-legacy.json" : "opencode-modern.json"
44
- );
35
+ const templatePath = join(repoRoot, "config", "opencode-modern.json");
45
36
 
46
37
  const configDir = join(homedir(), ".config", "opencode");
47
38
  const configPathJson = join(configDir, "opencode.json");
@@ -117,19 +108,10 @@ function mergeOpenAIConfig(existingOpenAI, templateOpenAI) {
117
108
  }
118
109
 
119
110
  async function getKnownModelIds() {
120
- const legacyTemplate = await readJson(
121
- join(repoRoot, "config", "opencode-legacy.json"),
122
- );
123
111
  const modernTemplate = await readJson(
124
112
  join(repoRoot, "config", "opencode-modern.json"),
125
113
  );
126
- const legacyModels = Object.keys(
127
- legacyTemplate?.provider?.openai?.models || {},
128
- );
129
- const modernModels = Object.keys(
130
- modernTemplate?.provider?.openai?.models || {},
131
- );
132
- return new Set([...legacyModels, ...modernModels]);
114
+ return new Set(Object.keys(modernTemplate?.provider?.openai?.models || {}));
133
115
  }
134
116
 
135
117
  function formatJson(obj) {
@@ -407,7 +389,7 @@ async function main() {
407
389
  }
408
390
 
409
391
  if (dryRun) {
410
- log(`[dry-run] Would write ${configPath} using ${useLegacy ? "legacy" : "modern"} config`);
392
+ log(`[dry-run] Would write ${configPath}`);
411
393
  } else {
412
394
  await mkdir(configDir, { recursive: true });
413
395
  if (nextContent && configExists) {
@@ -415,16 +397,14 @@ async function main() {
415
397
  } else {
416
398
  await writeFile(configPath, formatJson(nextConfig), "utf-8");
417
399
  }
418
- log(`Wrote ${configPath} (${useLegacy ? "legacy" : "modern"} config)`);
400
+ log(`Wrote ${configPath}`);
419
401
  }
420
402
 
421
403
  await clearCache();
422
404
 
423
405
  log("\nDone. Restart OpenCode to (re)install the plugin.");
424
406
  log("Example: opencode");
425
- if (useLegacy) {
426
- log("Note: Legacy config requires OpenCode v1.0.209 or older.");
427
- }
407
+
428
408
  }
429
409
 
430
410
  main().catch((error) => {