oc-codex-multi-auth 6.10.1 → 6.11.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.
@@ -2,10 +2,10 @@ import { createHash } from "node:crypto";
2
2
  import { extractAccountId } from "./accounts.js";
3
3
  import { getFetchTimeoutMs, loadPluginConfig } from "./config.js";
4
4
  import { CODEX_BASE_URL, PLUGIN_NAME } from "./constants.js";
5
- import { createUsageRequestTimeoutError } from "./error-sentinels.js";
5
+ import { createDeactivatedWorkspaceError, createUsageRequestTimeoutError, } from "./error-sentinels.js";
6
6
  import { logWarn } from "./logger.js";
7
7
  import { queuedRefresh } from "./refresh-queue.js";
8
- import { createCodexHeaders } from "./request/fetch-helpers.js";
8
+ import { createCodexHeaders, isDeactivatedWorkspaceError, isInvalidatedAuthTokenError, } from "./request/fetch-helpers.js";
9
9
  import { withAccountStorageTransaction, } from "./storage.js";
10
10
  const usageErrorBodyMaxChars = 4096;
11
11
  export function getUsageLeftPercent(usedPercent) {
@@ -232,6 +232,21 @@ export async function fetchCodexUsage(params) {
232
232
  if (controller.signal.aborted) {
233
233
  throw createUsageRequestTimeoutError();
234
234
  }
235
+ let errorBody = bodyText;
236
+ try {
237
+ errorBody = bodyText ? JSON.parse(bodyText) : undefined;
238
+ }
239
+ catch {
240
+ // Keep non-JSON bodies available to the shared error matchers.
241
+ }
242
+ if (params.normalizeAccountErrors &&
243
+ isDeactivatedWorkspaceError(errorBody, response.status)) {
244
+ throw createDeactivatedWorkspaceError();
245
+ }
246
+ if (params.normalizeAccountErrors &&
247
+ isInvalidatedAuthTokenError(errorBody, response.status)) {
248
+ throw new Error("Your authentication token has been invalidated. Please try signing in again.");
249
+ }
235
250
  throw new Error(sanitizeCodexApiErrorMessage(response.status, bodyText));
236
251
  }
237
252
  return (await response.json());
@@ -1 +1 @@
1
- {"version":3,"file":"codex-usage.js","sourceRoot":"","sources":["../../lib/codex-usage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-usage.js","sourceRoot":"","sources":["../../lib/codex-usage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oc-codex-multi-auth",
3
- "version": "6.10.1",
3
+ "version": "6.11.0",
4
4
  "description": "OpenCode plugin for ChatGPT Plus/Pro OAuth with Codex/GPT-5 routing, multi-account rotation, account switching, health checks, diagnostics, and recovery tools",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -124,7 +124,7 @@
124
124
  "@opencode-ai/plugin": "^1.14.22",
125
125
  "@opentui/core": "0.2.6",
126
126
  "@opentui/solid": "0.2.6",
127
- "hono": "4.12.26",
127
+ "hono": "4.12.32",
128
128
  "proper-lockfile": "^4.1.2",
129
129
  "solid-js": "^1.9.11",
130
130
  "web-tree-sitter": "^0.25.10",
@@ -133,18 +133,20 @@
133
133
  "overrides": {
134
134
  "esbuild": "^0.28.1",
135
135
  "flatted": "3.4.2",
136
- "hono": "4.12.26",
136
+ "hono": "4.12.32",
137
137
  "rollup": "4.60.0",
138
138
  "vite": "^7.3.5",
139
139
  "yaml": "^2.8.3",
140
140
  "@babel/core": "^7.29.6",
141
141
  "ajv@<6.14.0": "^6.14.0",
142
- "brace-expansion@>=2.0.0 <=2.0.2": "^2.0.3",
143
- "brace-expansion@>=5.0.0 <5.0.6": "^5.0.6",
142
+ "brace-expansion": "^5.0.8",
143
+ "seroval@<=1.5.2": "^1.5.6",
144
+ "seroval-plugins@<=1.5.2": "^1.5.6",
144
145
  "minimatch@<9.0.7": "^9.0.7",
145
146
  "minimatch@>=10.0.0 <10.2.3": "^10.2.3",
146
147
  "picomatch@<2.3.2": "^2.3.2",
147
148
  "picomatch@>=4.0.0 <4.0.4": "^4.0.4",
149
+ "postcss@<8.5.24": "^8.5.24",
148
150
  "@typescript-eslint/typescript-estree": {
149
151
  "minimatch": "^9.0.7"
150
152
  },
@@ -15,11 +15,13 @@ const STALE_MANAGED_MODEL_KEYS = new Set([
15
15
  ]);
16
16
  const STANDALONE_COMMANDS = new Set(["doctor", "status", "list", "limits", "dashboard", "health", "diag", "warm"]);
17
17
  const INSTALLER_COMMANDS = new Set(["install"]);
18
+ const UPDATE_COMMANDS = new Set(["update"]);
18
19
 
19
20
  function splitCommandArgv(argv) {
20
21
  const [first, ...rest] = argv;
21
22
  if (!first) return { kind: "install", argv };
22
23
  if (INSTALLER_COMMANDS.has(first)) return { kind: "install", argv: rest };
24
+ if (UPDATE_COMMANDS.has(first)) return { kind: "update", argv: rest };
23
25
  if (STANDALONE_COMMANDS.has(first)) return { kind: "standalone", command: first, argv: rest };
24
26
  if (first.startsWith("-")) return { kind: "install", argv };
25
27
  return { kind: "unknown", command: first, argv: rest };
@@ -76,7 +78,8 @@ export function isDirectRunPath(argvPath, modulePath, resolveRealPath = realpath
76
78
  function printHelp() {
77
79
  console.log(`Usage: ${PACKAGE_NAME} [command] [options]\n\n` +
78
80
  "Commands:\n" +
79
- " install Install/update OpenCode config (default with no command)\n" +
81
+ " install Register plugin entries (default with no command)\n" +
82
+ " update Refresh the cached package without changing OpenCode config\n" +
80
83
  " doctor Run local account/config diagnostics\n" +
81
84
  " status Show account/config status\n" +
82
85
  " list List configured accounts\n" +
@@ -85,14 +88,16 @@ function printHelp() {
85
88
  " health Check local token/account health\n" +
86
89
  " diag Alias for doctor --deep\n" +
87
90
  " warm Open every enabled account's usage window now (one request each)\n\n" +
88
- `Installer usage: ${PACKAGE_NAME} [--modern|--full|--legacy] [--dry-run] [--no-cache-clear]\n\n` +
91
+ `Installer usage: ${PACKAGE_NAME} install [--plugin-only|--modern|--full|--legacy] [--dry-run] [--no-cache-clear]\n` +
92
+ `Updater usage: ${PACKAGE_NAME} update [--dry-run]\n\n` +
89
93
  "Default behavior:\n" +
90
- " - Installs/updates global config at ~/.config/opencode/opencode.json\n" +
94
+ " - Registers plugin entries without changing provider.openai\n" +
91
95
  " - Enables the prompt status bar TUI plugin at ~/.config/opencode/tui.json\n" +
92
- " - Uses compact UI config by default (12 base OAuth models + variant picker presets)\n" +
96
+ " - Installs model catalogs only with --modern, --full, or --legacy\n" +
93
97
  " - Ensures plugin is unpinned (latest)\n" +
94
98
  " - Clears OpenCode plugin cache\n\n" +
95
99
  "Options:\n" +
100
+ " --plugin-only Register plugins without changing provider.openai\n" +
96
101
  " --modern Force compact modern config (12 base OAuth models + --variant presets)\n" +
97
102
  " --full Install compact base models plus 53 explicit selector entries\n" +
98
103
  " --legacy Force explicit legacy config (53 preset model entries)\n" +
@@ -139,7 +144,10 @@ function buildPaths(homeDir) {
139
144
  tuiConfigPath: join(configDir, "tui.json"),
140
145
  cacheDir,
141
146
  cacheNodeModulesPaths: getManagedPackageNames().map((name) => join(cacheDir, "node_modules", name)),
142
- cachePackagePaths: getManagedPackageNames().map((name) => join(cacheDir, "packages", `${name}@latest`)),
147
+ cachePackagePaths: getManagedPackageNames().flatMap((name) => [
148
+ join(cacheDir, "packages", name),
149
+ join(cacheDir, "packages", `${name}@latest`),
150
+ ]),
143
151
  cacheBunLock: join(cacheDir, "bun.lock"),
144
152
  cachePackageJson: join(cacheDir, "package.json"),
145
153
  modernTemplatePath,
@@ -158,21 +166,40 @@ function parseCliArgs(argv = process.argv.slice(2)) {
158
166
  const requestedModern = args.has("--modern");
159
167
  const requestedFull = args.has("--full");
160
168
  const requestedLegacy = args.has("--legacy");
169
+ const explicitPluginOnly = args.has("--plugin-only");
161
170
 
162
171
  const requestedModes = [requestedModern, requestedFull, requestedLegacy]
163
172
  .filter(Boolean).length;
164
173
  if (requestedModes > 1) {
165
174
  throw new Error("Choose only one of --modern, --full, or --legacy.");
166
175
  }
176
+ if (explicitPluginOnly && requestedModes > 0) {
177
+ throw new Error("--plugin-only cannot be combined with --modern, --full, or --legacy.");
178
+ }
179
+ const pluginOnly = explicitPluginOnly || requestedModes === 0;
167
180
 
168
181
  return {
169
182
  wantsHelp: false,
170
183
  dryRun: args.has("--dry-run"),
171
184
  skipCacheClear: args.has("--no-cache-clear"),
185
+ pluginOnly,
172
186
  configMode: requestedFull ? "full" : requestedLegacy ? "legacy" : "modern",
173
187
  };
174
188
  }
175
189
 
190
+ function parseUpdateArgs(argv) {
191
+ const args = new Set(argv);
192
+ const supported = new Set(["--dry-run", "--help", "-h"]);
193
+ const unknown = argv.find((arg) => !supported.has(arg));
194
+ if (unknown) {
195
+ throw new Error(`Unknown option for update command: ${unknown}`);
196
+ }
197
+ return {
198
+ wantsHelp: args.has("--help") || args.has("-h"),
199
+ dryRun: args.has("--dry-run"),
200
+ };
201
+ }
202
+
176
203
  function normalizePluginEntryForMatch(entry) {
177
204
  const trimmed = entry.trim();
178
205
  let normalized = trimmed.toLowerCase();
@@ -602,6 +629,51 @@ function formatConfigDiff(existingConfig, nextConfig) {
602
629
  return lines.join("\n");
603
630
  }
604
631
 
632
+ function formatRedactedConfigDiff(existingConfig, nextConfig) {
633
+ const missing = Symbol("missing");
634
+ const changes = [];
635
+ const visit = (existing, next, path) => {
636
+ if (existing === missing) {
637
+ changes.push(`+ ${path}`);
638
+ return;
639
+ }
640
+ if (next === missing) {
641
+ changes.push(`- ${path}`);
642
+ return;
643
+ }
644
+ if (Object.is(existing, next)) return;
645
+
646
+ if (Array.isArray(existing) && Array.isArray(next)) {
647
+ const length = Math.max(existing.length, next.length);
648
+ for (let index = 0; index < length; index += 1) {
649
+ visit(
650
+ index < existing.length ? existing[index] : missing,
651
+ index < next.length ? next[index] : missing,
652
+ `${path}[${index}]`,
653
+ );
654
+ }
655
+ return;
656
+ }
657
+
658
+ if (isPlainObject(existing) && isPlainObject(next)) {
659
+ const keys = new Set([...Object.keys(existing), ...Object.keys(next)]);
660
+ for (const key of keys) {
661
+ visit(
662
+ Object.hasOwn(existing, key) ? existing[key] : missing,
663
+ Object.hasOwn(next, key) ? next[key] : missing,
664
+ `${path}.${key}`,
665
+ );
666
+ }
667
+ return;
668
+ }
669
+
670
+ changes.push(`~ ${path}`);
671
+ };
672
+
673
+ visit(existingConfig === undefined ? missing : existingConfig, nextConfig, "$");
674
+ return changes.length > 0 ? changes.join("\n") : "(no changes)";
675
+ }
676
+
605
677
  function mergeFullTemplate(modernTemplate, legacyTemplate) {
606
678
  const modernModels = modernTemplate.provider?.openai?.models ?? {};
607
679
  const legacyModels = legacyTemplate.provider?.openai?.models ?? {};
@@ -657,6 +729,28 @@ async function renameWithWindowsRetry(sourcePath, destinationPath) {
657
729
  }
658
730
  }
659
731
 
732
+ async function removeWithWindowsRetry(path, options) {
733
+ let lastError = null;
734
+
735
+ for (let attempt = 0; attempt < WINDOWS_RENAME_RETRY_ATTEMPTS; attempt += 1) {
736
+ try {
737
+ await rm(path, options);
738
+ return;
739
+ } catch (error) {
740
+ if (isWindowsLockError(error)) {
741
+ lastError = error;
742
+ await delay(WINDOWS_RENAME_RETRY_BASE_DELAY_MS * 2 ** attempt);
743
+ continue;
744
+ }
745
+ throw error;
746
+ }
747
+ }
748
+
749
+ if (lastError) {
750
+ throw lastError;
751
+ }
752
+ }
753
+
660
754
  async function writeFileAtomic(filePath, content) {
661
755
  const uniqueSuffix = `${Date.now()}.${Math.random().toString(36).slice(2, 8)}`;
662
756
  const tempPath = `${filePath}.${uniqueSuffix}.tmp`;
@@ -784,12 +878,12 @@ async function clearCache(paths, dryRun, skipCacheClear) {
784
878
  log(`[dry-run] Would remove ${paths.cacheBunLock}`);
785
879
  } else {
786
880
  for (const cacheNodeModulesPath of paths.cacheNodeModulesPaths) {
787
- await rm(cacheNodeModulesPath, { recursive: true, force: true });
881
+ await removeWithWindowsRetry(cacheNodeModulesPath, { recursive: true, force: true });
788
882
  }
789
883
  for (const cachePackagePath of paths.cachePackagePaths) {
790
- await rm(cachePackagePath, { recursive: true, force: true });
884
+ await removeWithWindowsRetry(cachePackagePath, { recursive: true, force: true });
791
885
  }
792
- await rm(paths.cacheBunLock, { force: true });
886
+ await removeWithWindowsRetry(paths.cacheBunLock, { force: true });
793
887
  }
794
888
 
795
889
  await removePluginFromCachePackage(paths, dryRun);
@@ -804,20 +898,37 @@ export async function runInstaller(argv = process.argv.slice(2), options = {}) {
804
898
  printHelp();
805
899
  throw new Error(`Unknown command: ${split.command}`);
806
900
  }
901
+ const { env = process.env } = options;
902
+ const paths = buildPaths(resolveHomeDirectory(env));
903
+ if (split.kind === "update") {
904
+ const parsedUpdate = parseUpdateArgs(split.argv);
905
+ if (parsedUpdate.wantsHelp) {
906
+ printHelp();
907
+ return { exitCode: 0, action: "help" };
908
+ }
909
+ await clearCache(paths, parsedUpdate.dryRun, false);
910
+ log(`\n${parsedUpdate.dryRun ? "Dry run complete." : "Cache cleared."} Restart OpenCode to install the latest plugin.`);
911
+ return {
912
+ exitCode: 0,
913
+ action: "update",
914
+ dryRun: Boolean(parsedUpdate.dryRun),
915
+ };
916
+ }
807
917
  const parsed = parseCliArgs(split.argv);
808
918
  if (parsed.wantsHelp) {
809
919
  printHelp();
810
920
  return { exitCode: 0, action: "help" };
811
921
  }
812
922
 
813
- const { env = process.env } = options;
814
- const { configMode, dryRun, skipCacheClear } = parsed;
815
- const paths = buildPaths(resolveHomeDirectory(env));
816
- const requiredTemplatePaths = configMode === "modern"
817
- ? [paths.modernTemplatePath]
818
- : configMode === "legacy"
819
- ? [paths.legacyTemplatePath]
820
- : [paths.modernTemplatePath, paths.legacyTemplatePath];
923
+ const { configMode, dryRun, skipCacheClear, pluginOnly } = parsed;
924
+ const effectiveConfigMode = pluginOnly ? "plugin-only" : configMode;
925
+ const requiredTemplatePaths = pluginOnly
926
+ ? []
927
+ : configMode === "modern"
928
+ ? [paths.modernTemplatePath]
929
+ : configMode === "legacy"
930
+ ? [paths.legacyTemplatePath]
931
+ : [paths.modernTemplatePath, paths.legacyTemplatePath];
821
932
 
822
933
  for (const templatePath of requiredTemplatePaths) {
823
934
  if (!existsSync(templatePath)) {
@@ -825,40 +936,51 @@ export async function runInstaller(argv = process.argv.slice(2), options = {}) {
825
936
  }
826
937
  }
827
938
 
828
- const template = await loadTemplate(configMode, paths);
939
+ const template = pluginOnly
940
+ ? { $schema: "https://opencode.ai/config.json", plugin: [PACKAGE_NAME] }
941
+ : await loadTemplate(configMode, paths);
829
942
  template.plugin = [PACKAGE_NAME];
830
943
  const modelKeysToRemove = new Set(STALE_MANAGED_MODEL_KEYS);
831
- if (configMode === "modern") {
944
+ if (!pluginOnly && configMode === "modern") {
832
945
  for (const key of getTemplateModelKeys(await readJson(paths.legacyTemplatePath))) {
833
946
  modelKeysToRemove.add(key);
834
947
  }
835
948
  }
836
- if (configMode === "legacy") {
949
+ if (!pluginOnly && configMode === "legacy") {
837
950
  for (const key of getTemplateModelKeys(await readJson(paths.modernTemplatePath))) {
838
951
  modelKeysToRemove.add(key);
839
952
  }
840
953
  }
841
954
 
842
- let nextConfig = template;
955
+ let nextConfig = pluginOnly
956
+ ? { $schema: template.$schema, plugin: [PACKAGE_NAME] }
957
+ : template;
843
958
  let existingConfig;
844
959
  if (existsSync(paths.configPath)) {
845
- const backupPath = await backupConfig(paths.configPath, dryRun);
846
- log(`${dryRun ? "[dry-run] Would create backup" : "Backup created"}: ${backupPath}`);
847
-
848
960
  try {
849
961
  const existing = await readJson(paths.configPath);
962
+ if (!isPlainObject(existing)) {
963
+ throw new Error("config root must be a JSON object");
964
+ }
850
965
  existingConfig = existing;
851
966
  const merged = { ...existing };
852
967
  merged.plugin = normalizePluginList(existing.plugin);
853
- const provider = (existing.provider && typeof existing.provider === "object")
854
- ? { ...existing.provider }
855
- : {};
856
- provider.openai = mergeOpenaiProvider(existing.provider?.openai, template.provider?.openai, {
857
- modelKeysToRemove,
858
- });
859
- merged.provider = provider;
968
+ if (!pluginOnly) {
969
+ const provider = (existing.provider && typeof existing.provider === "object")
970
+ ? { ...existing.provider }
971
+ : {};
972
+ provider.openai = mergeOpenaiProvider(existing.provider?.openai, template.provider?.openai, {
973
+ modelKeysToRemove,
974
+ });
975
+ merged.provider = provider;
976
+ }
860
977
  nextConfig = merged;
861
978
  } catch (error) {
979
+ if (pluginOnly) {
980
+ throw new Error(
981
+ `Could not parse existing config (${formatErrorForLog(error)}). Refusing to replace it in --plugin-only mode.`,
982
+ );
983
+ }
862
984
  log(`Warning: Could not parse existing config (${formatErrorForLog(error)}). Replacing with template.`);
863
985
  existingConfig = undefined;
864
986
  nextConfig = template;
@@ -870,14 +992,19 @@ export async function runInstaller(argv = process.argv.slice(2), options = {}) {
870
992
  let nextTuiConfig = mergeTuiConfig(undefined);
871
993
  let existingTuiConfig;
872
994
  if (existsSync(paths.tuiConfigPath)) {
873
- const backupPath = await backupConfig(paths.tuiConfigPath, dryRun);
874
- log(`${dryRun ? "[dry-run] Would create backup" : "Backup created"}: ${backupPath}`);
875
-
876
995
  try {
877
996
  const existing = await readJson(paths.tuiConfigPath);
997
+ if (!isPlainObject(existing)) {
998
+ throw new Error("TUI config root must be a JSON object");
999
+ }
878
1000
  existingTuiConfig = existing;
879
1001
  nextTuiConfig = mergeTuiConfig(existing);
880
1002
  } catch (error) {
1003
+ if (pluginOnly) {
1004
+ throw new Error(
1005
+ `Could not parse existing TUI config (${formatErrorForLog(error)}). Refusing to replace it in --plugin-only mode.`,
1006
+ );
1007
+ }
881
1008
  log(`Warning: Could not parse existing TUI config (${formatErrorForLog(error)}). Replacing with minimal TUI config.`);
882
1009
  existingTuiConfig = undefined;
883
1010
  nextTuiConfig = mergeTuiConfig(undefined);
@@ -886,40 +1013,60 @@ export async function runInstaller(argv = process.argv.slice(2), options = {}) {
886
1013
  log("No existing TUI config found. Creating new global TUI config.");
887
1014
  }
888
1015
 
1016
+ const configChanged = existingConfig === undefined || formatJson(existingConfig) !== formatJson(nextConfig);
1017
+ const tuiConfigChanged = existingTuiConfig === undefined || formatJson(existingTuiConfig) !== formatJson(nextTuiConfig);
889
1018
  let wrote = false;
890
1019
  if (dryRun) {
891
- log(`[dry-run] Would write ${paths.configPath} using ${configMode} config`);
1020
+ log(`[dry-run] ${configChanged ? "Would write" : "Would leave unchanged"} ${paths.configPath} using ${effectiveConfigMode} config`);
892
1021
  log(`[dry-run] Diff for ${paths.configPath}:`);
893
- log(formatConfigDiff(existingConfig, nextConfig));
894
- log(`[dry-run] Would write ${paths.tuiConfigPath} with the TUI status plugin`);
1022
+ log(formatRedactedConfigDiff(existingConfig, nextConfig));
1023
+ log(`[dry-run] ${tuiConfigChanged ? "Would write" : "Would leave unchanged"} ${paths.tuiConfigPath} with the TUI status plugin`);
895
1024
  log(`[dry-run] Diff for ${paths.tuiConfigPath}:`);
896
- log(formatConfigDiff(existingTuiConfig, nextTuiConfig));
1025
+ log(formatRedactedConfigDiff(existingTuiConfig, nextTuiConfig));
897
1026
  } else {
898
- await writeFileAtomic(paths.configPath, formatJson(nextConfig));
899
- await writeFileAtomic(paths.tuiConfigPath, formatJson(nextTuiConfig));
900
- wrote = true;
901
- log(`Wrote ${paths.configPath} (${configMode} config)`);
902
- log(`Wrote ${paths.tuiConfigPath} (TUI status plugin)`);
1027
+ if (configChanged) {
1028
+ if (existsSync(paths.configPath)) {
1029
+ const backupPath = await backupConfig(paths.configPath, false);
1030
+ log(`Backup created: ${backupPath}`);
1031
+ }
1032
+ await writeFileAtomic(paths.configPath, formatJson(nextConfig));
1033
+ wrote = true;
1034
+ log(`Wrote ${paths.configPath} (${effectiveConfigMode} config)`);
1035
+ } else {
1036
+ log(`Left ${paths.configPath} unchanged`);
1037
+ }
1038
+ if (tuiConfigChanged) {
1039
+ if (existsSync(paths.tuiConfigPath)) {
1040
+ const backupPath = await backupConfig(paths.tuiConfigPath, false);
1041
+ log(`Backup created: ${backupPath}`);
1042
+ }
1043
+ await writeFileAtomic(paths.tuiConfigPath, formatJson(nextTuiConfig));
1044
+ wrote = true;
1045
+ log(`Wrote ${paths.tuiConfigPath} (TUI status plugin)`);
1046
+ } else {
1047
+ log(`Left ${paths.tuiConfigPath} unchanged`);
1048
+ }
903
1049
  }
904
1050
 
905
1051
  await clearCache(paths, dryRun, skipCacheClear);
906
1052
 
907
1053
  log("\nDone. Restart OpenCode to (re)install the plugin.");
908
1054
  log("Example: opencode");
909
- if (configMode === "modern") {
1055
+ if (!pluginOnly && configMode === "modern") {
910
1056
  log("Note: Modern config intentionally shows 12 base OAuth model entries; use the variant picker for reasoning presets.");
911
1057
  }
912
- if (configMode === "legacy") {
1058
+ if (!pluginOnly && configMode === "legacy") {
913
1059
  log("Note: Legacy config writes 53 explicit preset entries and is also safe for older OpenCode versions.");
914
1060
  }
915
- if (configMode === "full") {
1061
+ if (!pluginOnly && configMode === "full") {
916
1062
  log("Note: Full config installs both compact base models and explicit preset entries for direct selector IDs.");
917
1063
  }
918
1064
 
919
1065
  return {
920
1066
  exitCode: 0,
921
1067
  action: "install",
922
- configMode,
1068
+ configMode: effectiveConfigMode,
1069
+ pluginOnly,
923
1070
  configPath: paths.configPath,
924
1071
  tuiConfigPath: paths.tuiConfigPath,
925
1072
  dryRun: Boolean(dryRun),
@@ -932,10 +1079,12 @@ export const __test = {
932
1079
  backupConfig,
933
1080
  copyFileWithWindowsRetry,
934
1081
  formatConfigDiff,
1082
+ formatRedactedConfigDiff,
935
1083
  mergeFullTemplate,
936
1084
  mergeOpenaiProvider,
937
1085
  mergeTuiConfig,
938
1086
  parseCliArgs,
1087
+ removeWithWindowsRetry,
939
1088
  runStandaloneCommand,
940
1089
  splitCommandArgv,
941
1090
  writeFileAtomic,