@grant-vine/wunderkind 0.14.2 → 0.15.1

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wunderkind",
3
- "version": "0.14.2",
3
+ "version": "0.15.1",
4
4
  "description": "Wunderkind \u2014 specialist AI agents for any software product team, built as an oh-my-openagent addon",
5
5
  "main": "dist/index.js"
6
6
  }
package/README.md CHANGED
@@ -72,12 +72,14 @@ bunx @grant-vine/wunderkind install
72
72
  or
73
73
 
74
74
  The TUI will guide you through:
75
- 1. Installing oh-my-openagent if it isn't already (runs its own setup flow first).
75
+ 1. Checking for oh-my-openagent first, then auto-running `bunx oh-my-opencode install` when the upstream CLI is available and OMO is missing.
76
76
  2. Selecting the install scope (Global vs Project).
77
77
  3. Optionally configuring shared baseline defaults: region, industry, and data-protection regulations.
78
78
  4. Optionally initializing the current project immediately.
79
79
 
80
80
  > Note: upstream now prefers `oh-my-openagent` for plugin entries and OMO config basenames, while the npm package and CLI command still remain `oh-my-opencode`.
81
+ >
82
+ > Wunderkind now ships both `oh-my-openagent.jsonc` (canonical) and `oh-my-opencode.jsonc` (legacy compatibility) template assets. Prefer the canonical file for new setups.
81
83
 
82
84
  ### Non-interactive install
83
85
 
@@ -87,6 +89,8 @@ For CI/CD or scripted environments, use the `install` command with the `--no-tui
87
89
  > ```bash
88
90
  > bunx oh-my-opencode install --no-tui --claude=yes --gemini=no --copilot=yes
89
91
  > ```
92
+ > Wunderkind now performs this OMO readiness check up front during non-interactive `install` and `upgrade`, and exits early with the upstream install command when OMO is missing.
93
+ >
90
94
  > See the [oh-my-openagent docs](https://github.com/code-yeongyu/oh-my-openagent) for all available options.
91
95
 
92
96
  ```bash
@@ -28,6 +28,18 @@ export interface UpgradeArgs {
28
28
  primaryRegulation?: string;
29
29
  secondaryRegulation?: string;
30
30
  }
31
+ export declare function runOmoInstallerForTui(): {
32
+ success: boolean;
33
+ error?: string;
34
+ };
35
+ export declare function validateOmoPreflightForCli(): {
36
+ valid: boolean;
37
+ message?: string;
38
+ };
39
+ export declare function ensureOmoPreflightForTui(): {
40
+ ok: boolean;
41
+ message?: string;
42
+ };
31
43
  export declare function runCliInstaller(args: InstallArgs): Promise<number>;
32
44
  export declare function runCliUpgrade(args: UpgradeArgs): Promise<number>;
33
45
  //# sourceMappingURL=cli-installer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-installer.d.ts","sourceRoot":"","sources":["../../src/cli/cli-installer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAiB,YAAY,EAAE,MAAM,YAAY,CAAA;AAc1E,eAAO,MAAM,OAAO;;;;;;;;CAQnB,CAAA;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAKnD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE5E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CA8B9D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAE3F;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA8GxE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAwHtE"}
1
+ {"version":3,"file":"cli-installer.d.ts","sourceRoot":"","sources":["../../src/cli/cli-installer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAiB,YAAY,EAAuB,MAAM,YAAY,CAAA;AAe/F,eAAO,MAAM,OAAO;;;;;;;;CAQnB,CAAA;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAKnD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE5E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CA8B9D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAE3F;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAYD,wBAAgB,qBAAqB,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAc5E;AAED,wBAAgB,0BAA0B,IAAI;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAYjF;AAcD,wBAAgB,wBAAwB,IAAI;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAoC5E;AAED,wBAAsB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAqHxE;AAED,wBAAsB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CA+HtE"}
@@ -1,5 +1,6 @@
1
1
  import color from "picocolors";
2
- import { addPluginToOpenCodeConfig, detectCurrentConfig, detectLegacyConfig, getDefaultGlobalConfig, readWunderkindConfigForScope, writeNativeAgentFiles, writeNativeCommandFiles, writeNativeSkillFiles, writeWunderkindConfig, } from "./config-manager/index.js";
2
+ import { spawnSync } from "node:child_process";
3
+ import { addPluginToOpenCodeConfig, detectCurrentConfig, detectLegacyConfig, detectOmoInstallReadiness, getDefaultGlobalConfig, readWunderkindConfigForScope, writeNativeAgentFiles, writeNativeCommandFiles, writeNativeSkillFiles, writeWunderkindConfig, } from "./config-manager/index.js";
3
4
  import { addAiTracesToGitignore } from "./gitignore-manager.js";
4
5
  export const SYMBOLS = {
5
6
  check: color.green("[OK]"),
@@ -57,6 +58,78 @@ export function printBox(content, title) {
57
58
  export function validateNonTuiArgs(_args) {
58
59
  return { valid: true, errors: [] };
59
60
  }
61
+ function canAutoBootstrapOmoInTui() {
62
+ const result = spawnSync("bunx", ["oh-my-opencode", "--help"], {
63
+ encoding: "utf8",
64
+ timeout: 1500,
65
+ maxBuffer: 1024 * 32,
66
+ });
67
+ return !result.error && result.status === 0;
68
+ }
69
+ export function runOmoInstallerForTui() {
70
+ const result = spawnSync("bunx", ["oh-my-opencode", "install"], {
71
+ stdio: "inherit",
72
+ });
73
+ if (result.error) {
74
+ return { success: false, error: String(result.error) };
75
+ }
76
+ if (result.status !== 0) {
77
+ return { success: false, error: `oh-my-opencode install exited with status ${result.status ?? "unknown"}` };
78
+ }
79
+ return { success: true };
80
+ }
81
+ export function validateOmoPreflightForCli() {
82
+ const readiness = detectOmoInstallReadiness();
83
+ if (readiness.installed) {
84
+ return { valid: true };
85
+ }
86
+ return {
87
+ valid: false,
88
+ message: `oh-my-openagent must already be installed before running non-interactive mode. ` +
89
+ `${readiness.guidance}. Install it first with:\n ${readiness.nonTuiInstallCommand}`,
90
+ };
91
+ }
92
+ function printOmoReadinessWarnings(readiness) {
93
+ if (readiness.staleOverrideWarning) {
94
+ printWarning(readiness.staleOverrideWarning);
95
+ }
96
+ if (readiness.versionSkewWarning) {
97
+ printWarning(readiness.versionSkewWarning);
98
+ }
99
+ if (readiness.dualConfigWarning) {
100
+ printWarning(readiness.dualConfigWarning);
101
+ }
102
+ }
103
+ export function ensureOmoPreflightForTui() {
104
+ const readiness = detectOmoInstallReadiness();
105
+ if (readiness.installed) {
106
+ return { ok: true };
107
+ }
108
+ if (!canAutoBootstrapOmoInTui()) {
109
+ return {
110
+ ok: false,
111
+ message: `oh-my-openagent is required before installing Wunderkind. ${readiness.guidance}. ` +
112
+ `Run ${readiness.interactiveInstallCommand} first, then rerun this installer.`,
113
+ };
114
+ }
115
+ const result = runOmoInstallerForTui();
116
+ if (!result.success) {
117
+ return {
118
+ ok: false,
119
+ message: `Could not auto-install oh-my-openagent. ${readiness.guidance}. ` +
120
+ `${result.error ?? `Run ${readiness.interactiveInstallCommand} manually and retry.`}`,
121
+ };
122
+ }
123
+ const refreshedReadiness = detectOmoInstallReadiness();
124
+ if (!refreshedReadiness.installed) {
125
+ return {
126
+ ok: false,
127
+ message: `oh-my-openagent still was not detected after the upstream installer ran. ` +
128
+ `Run ${refreshedReadiness.interactiveInstallCommand} manually and retry.`,
129
+ };
130
+ }
131
+ return { ok: true };
132
+ }
60
133
  export async function runCliInstaller(args) {
61
134
  const validation = validateNonTuiArgs(args);
62
135
  if (!validation.valid) {
@@ -75,8 +148,15 @@ export async function runCliInstaller(args) {
75
148
  printError("Legacy config found at project root wunderkind.config.jsonc — move it to .wunderkind/wunderkind.config.jsonc");
76
149
  return 1;
77
150
  }
151
+ const omoPreflight = validateOmoPreflightForCli();
152
+ if (!omoPreflight.valid) {
153
+ printError(omoPreflight.message ?? "oh-my-openagent must be installed before running wunderkind install --no-tui");
154
+ return 1;
155
+ }
156
+ const omoReadiness = detectOmoInstallReadiness();
78
157
  const isUpdate = args.scope === "project" ? detected.projectInstalled === true : detected.globalInstalled === true;
79
158
  printHeader(isUpdate);
159
+ printOmoReadinessWarnings(omoReadiness);
80
160
  const totalSteps = 3;
81
161
  let step = 1;
82
162
  const config = {
@@ -156,6 +236,12 @@ export async function runCliUpgrade(args) {
156
236
  printError("Legacy config found at project root wunderkind.config.jsonc — move it to .wunderkind/wunderkind.config.jsonc");
157
237
  return 1;
158
238
  }
239
+ const omoPreflight = validateOmoPreflightForCli();
240
+ if (!omoPreflight.valid) {
241
+ printError(omoPreflight.message ?? "oh-my-openagent must be installed before running wunderkind upgrade");
242
+ return 1;
243
+ }
244
+ const omoReadiness = detectOmoInstallReadiness();
159
245
  const installedInScope = args.scope === "project" ? detected.projectInstalled === true : detected.globalInstalled === true;
160
246
  if (!installedInScope) {
161
247
  printHeader(false);
@@ -165,6 +251,7 @@ export async function runCliUpgrade(args) {
165
251
  return 1;
166
252
  }
167
253
  printHeader(true);
254
+ printOmoReadinessWarnings(omoReadiness);
168
255
  const defaults = getDefaultGlobalConfig();
169
256
  const persisted = readWunderkindConfigForScope(args.scope) ?? {};
170
257
  const effectiveBaseline = args.scope === "project"
@@ -1 +1 @@
1
- {"version":3,"file":"cli-installer.js","sourceRoot":"","sources":["../../src/cli/cli-installer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAA;AAE9B,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,EAC5B,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAA;AAE/D,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;IAC1B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;IACvB,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;IACtB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;IACvB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;IACzB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;CACxB,CAAA;AAED,MAAM,UAAU,WAAW,CAAC,QAAiB;IAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;IAC5C,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,kBAAkB,IAAI,GAAG,CAAC,CAAC,CAAC,CAAA;IACpE,OAAO,CAAC,GAAG,EAAE,CAAA;AACf,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,KAAa,EAAE,OAAe;IACpE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC,IAAI,OAAO,EAAE,CAAC,CAAA;AAC9D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,EAAE,CAAC,CAAA;AAC5C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;AACvD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,EAAE,CAAC,CAAA;AAC3C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,KAAc;IACtD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACjC,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAA;IACzD,MAAM,QAAQ,GACZ,IAAI,CAAC,GAAG,CACN,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAC5D,KAAK,EAAE,MAAM,IAAI,CAAC,CACnB,GAAG,CAAC,CAAA;IACP,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;IAE9C,OAAO,CAAC,GAAG,EAAE,CAAA;IACb,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;YACb,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC;YACxB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAClD,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CACjB,CAAA;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;QAC9C,MAAM,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAA;QAC1C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACrF,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACrD,OAAO,CAAC,GAAG,EAAE,CAAA;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAkB;IACnD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CAAA;AACpC,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,IAAiB;IACrD,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAC3C,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;QACtB,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,UAAU,CAAC,oBAAoB,CAAC,CAAA;QAChC,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAA;QAC3C,CAAC;QACD,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,SAAS,CACP,kHAAkH,CACnH,CAAA;QACD,OAAO,CAAC,GAAG,EAAE,CAAA;QACb,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAA;IACtC,IAAI,kBAAkB,EAAE,EAAE,CAAC;QACzB,UAAU,CAAC,8GAA8G,CAAC,CAAA;QAC1H,OAAO,CAAC,CAAA;IACV,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,KAAK,IAAI,CAAA;IAElH,WAAW,CAAC,QAAQ,CAAC,CAAA;IAErB,MAAM,UAAU,GAAG,CAAC,CAAA;IACpB,IAAI,IAAI,GAAG,CAAC,CAAA;IAEZ,MAAM,MAAM,GAAkB;QAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ;QAClD,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,EAAE;QAClD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,QAAQ,CAAC,iBAAiB,IAAI,EAAE;QAC7E,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,QAAQ,CAAC,mBAAmB,IAAI,EAAE;QACnF,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,YAAY,EAAE,QAAQ,CAAC,YAAY;QACnC,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB;QAC/C,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;QACjD,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;QAC3C,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,eAAe,EAAE,QAAQ,CAAC,eAAe;KAC1C,CAAA;IAED,SAAS,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,yCAAyC,CAAC,CAAA;IACxE,MAAM,YAAY,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1B,UAAU,CAAC,WAAW,YAAY,CAAC,KAAK,EAAE,CAAC,CAAA;QAC3C,OAAO,CAAC,CAAA;IACV,CAAC;IACD,YAAY,CAAC,UAAU,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAEhH,SAAS,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,qCAAqC,CAAC,CAAA;IACpE,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAC9D,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAC1B,UAAU,CAAC,WAAW,YAAY,CAAC,KAAK,EAAE,CAAC,CAAA;QAC3C,OAAO,CAAC,CAAA;IACV,CAAC;IACD,YAAY,CAAC,kBAAkB,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAErF,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5D,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;QAChC,UAAU,CAAC,uCAAuC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAA;QAC7E,OAAO,CAAC,CAAA;IACV,CAAC;IACD,YAAY,CAAC,yBAAyB,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAElG,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAA;IACtD,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAClC,UAAU,CAAC,yCAAyC,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAA;QACjF,OAAO,CAAC,CAAA;IACV,CAAC;IACD,YAAY,CAAC,kCAAkC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAE7G,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5D,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;QAChC,UAAU,CAAC,uCAAuC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAA;QAC7E,OAAO,CAAC,CAAA;IACV,CAAC;IACD,YAAY,CAAC,yBAAyB,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAElG,SAAS,CAAC,IAAI,EAAE,EAAE,UAAU,EAAE,+CAA+C,CAAC,CAAA;IAC9E,MAAM,eAAe,GAAG,sBAAsB,EAAE,CAAA;IAChD,IAAI,eAAe,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,YAAY,CAAC,wBAAwB,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC1E,CAAC;IACD,IAAI,eAAe,CAAC,KAAK,EAAE,CAAC;QAC1B,YAAY,CAAC,gCAAgC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAA;IACvE,CAAC;IAED,QAAQ,CACN;QACE,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;QACtE,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE;QAClG,KAAK,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE;QAC1G,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;KACtH;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,EACb,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,uBAAuB,CAC7D,CAAA;IAED,OAAO,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,EAAE,CAAC,CAAA;IACzH,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;IACxD,OAAO,CAAC,GAAG,EAAE,CAAA;IAEb,OAAO,CAAC,CAAA;AACV,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAiB;IACnD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,CAAA;IACtC,IAAI,kBAAkB,EAAE,EAAE,CAAC;QACzB,UAAU,CAAC,8GAA8G,CAAC,CAAA;QAC1H,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,KAAK,IAAI,CAAA;IAC1H,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,WAAW,CAAC,KAAK,CAAC,CAAA;QAClB,UAAU,CACR,IAAI,CAAC,KAAK,KAAK,SAAS;YACtB,CAAC,CAAC,sGAAsG;YACxG,CAAC,CAAC,oGAAoG,CACzG,CAAA;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,WAAW,CAAC,IAAI,CAAC,CAAA;IAEjB,MAAM,QAAQ,GAAG,sBAAsB,EAAE,CAAA;IACzC,MAAM,SAAS,GAAG,4BAA4B,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;IAChE,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS;QAChD,CAAC,CAAC;YACE,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;SAClD;QACH,CAAC,CAAC;YACE,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM;YAC3C,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,QAAQ,CAAC,QAAQ;YACjD,iBAAiB,EAAE,SAAS,CAAC,iBAAiB,IAAI,QAAQ,CAAC,iBAAiB;YAC5E,mBAAmB,EAAE,SAAS,CAAC,mBAAmB,IAAI,QAAQ,CAAC,mBAAmB;SACnF,CAAA;IACL,MAAM,UAAU,GAAG;QACjB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,iBAAiB,CAAC,MAAM;QAC/C,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,iBAAiB,CAAC,QAAQ;QACrD,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,IAAI,iBAAiB,CAAC,iBAAiB;QAChF,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,IAAI,iBAAiB,CAAC,mBAAmB;KACvF,CAAA;IAED,MAAM,MAAM,GACV,UAAU,CAAC,MAAM,KAAK,iBAAiB,CAAC,MAAM;QAC9C,UAAU,CAAC,QAAQ,KAAK,iBAAiB,CAAC,QAAQ;QAClD,UAAU,CAAC,iBAAiB,KAAK,iBAAiB,CAAC,iBAAiB;QACpE,UAAU,CAAC,mBAAmB,KAAK,iBAAiB,CAAC,mBAAmB,CAAA;IAE1E,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QACzB,SAAS,CAAC,2CAA2C,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAA;QACxE,SAAS,CAAC,+CAA+C,CAAC,CAAA;QAC1D,SAAS,CAAC,2CAA2C,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAA;QACxE,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC3C,SAAS,CAAC,+CAA+C,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAA;QAC9E,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAC3C,MAAM,cAAc,GAAkB;YACpC,GAAG,SAAS;YACZ,GAAG,QAAQ;YACX,GAAG,UAAU;SACd,CAAA;QAED,MAAM,YAAY,GAAG,qBAAqB,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;QAEtE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1B,UAAU,CAAC,WAAW,YAAY,CAAC,KAAK,EAAE,CAAC,CAAA;YAC3C,OAAO,CAAC,CAAA;QACV,CAAC;QAED,YAAY,CAAC,GAAG,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,YAAY,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAClJ,CAAC;IAED,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5D,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;QAChC,UAAU,CAAC,yCAAyC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAA;QAC/E,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,oBAAoB,GAAG,uBAAuB,EAAE,CAAA;IACtD,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAClC,UAAU,CAAC,2CAA2C,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAA;QACnF,OAAO,CAAC,CAAA;IACV,CAAC;IAED,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC5D,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,CAAC;QAChC,UAAU,CAAC,yCAAyC,kBAAkB,CAAC,KAAK,EAAE,CAAC,CAAA;QAC/E,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,kBAAkB,KAAK,oBAAoB,EAAE,CAAC;QAErF,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,kBAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACxE,mBAAmB,CAAC,YAAY,CAAC,GAAG,CAAC,oBAAoB,EAAE,GAAG,CAAC,CAAA;QAC/D,MAAM,EAAE,oBAAoB,EAAE,GAAG,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAqB,CAAA;QAC7F,MAAM,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;IAC3C,CAAC;IAED,YAAY,CAAC,2BAA2B,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IACpG,YAAY,CAAC,oCAAoC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IAC/G,YAAY,CAAC,2BAA2B,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA;IACpG,QAAQ,CACN;QACE,KAAK,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QACnE,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC1E,KAAK,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE;QACtG,KAAK,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,IAAI,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,EAAE;QAC9G,UAAU,CAAC,mBAAmB;YAC5B,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE;YACzF,CAAC,CAAC,EAAE;KACP;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC,EACb,kBAAkB,CACnB,CAAA;IAED,OAAO,CAAC,CAAA;AACV,CAAC"}
1
+ {"version":3,"file":"cli-installer.js","sourceRoot":"","sources":["../../src/cli/cli-installer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ConfigMergeResult, DetectedConfig, GlobalConfig, InstallConfig, InstallScope, BaselineConfigKey, PluginVersionInfo, ProjectConfig } from "../types.js";
1
+ import type { ConfigMergeResult, DetectedConfig, GlobalConfig, InstallConfig, InstallScope, BaselineConfigKey, OmoInstallReadiness, OmoFreshnessSummary, PluginVersionInfo, ProjectConfig } from "../types.js";
2
2
  interface ConfigManagerPathOverride {
3
3
  cwd?: string;
4
4
  home?: string;
@@ -16,6 +16,8 @@ export declare function resolveOpenCodeConfigPath(scope: InstallScope): {
16
16
  export declare function detectPluginVersionInfo(packageName: string): PluginVersionInfo;
17
17
  export declare function detectWunderkindVersionInfo(): PluginVersionInfo;
18
18
  export declare function detectOmoVersionInfo(): PluginVersionInfo;
19
+ export declare function detectOmoInstallReadiness(): OmoInstallReadiness;
20
+ export declare function summarizeOmoFreshness(versionInfo: PluginVersionInfo): OmoFreshnessSummary;
19
21
  export interface ConfigSourceMarker {
20
22
  marker: "●" | "○";
21
23
  sourceLabel: "project override" | "inherited default";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/config-manager/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/config-manager/index.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAGV,iBAAiB,EAKjB,cAAc,EAEd,YAAY,EACZ,aAAa,EAEb,YAAY,EAKZ,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EAId,MAAM,aAAa,CAAA;AA0CpB,UAAU,yBAAyB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAqDD,wBAAgB,sCAAsC,CAAC,QAAQ,EAAE,yBAAyB,GAAG,IAAI,CAchG;AAED,wBAAgB,wCAAwC,IAAI,IAAI,CAE/D;AA0ED,wBAAgB,uBAAuB,IAAI,aAAa,CAEvD;AAED,wBAAgB,sBAAsB,IAAI,YAAY,CAErD;AAED,wBAAgB,uBAAuB,IAAI,aAAa,CAEvD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,YAAY,GAAG;IAC9D,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IACjC,MAAM,EAAE,eAAe,GAAG,gBAAgB,GAAG,aAAa,GAAG,cAAc,GAAG,SAAS,CAAA;CACxF,CAsBA;AA4SD,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,CAkB9E;AAED,wBAAgB,2BAA2B,IAAI,iBAAiB,CAE/D;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAyDxD;AAED,wBAAgB,yBAAyB,IAAI,mBAAmB,CAsB/D;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,iBAAiB,GAAG,mBAAmB,CA+DzF;AAuBD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,GAAG,GAAG,GAAG,CAAA;IACjB,WAAW,EAAE,kBAAkB,GAAG,mBAAmB,CAAA;CACtD;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,OAAO,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,WAAW,EAAE,OAAO,CAAA;IACpB,YAAY,EAAE,OAAO,CAAA;IACrB,kBAAkB,EAAE,OAAO,CAAA;CAC5B;AAYD,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,MAAM,GAAG,uBAAuB,CAyBlF;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,kBAAkB,CAKlI;AA0ED,wBAAgB,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAkBpE;AAED,wBAAgB,0BAA0B,IAAI,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,CAIzE;AAED,wBAAgB,2BAA2B,IAAI,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAI3E;AAiHD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,YAAY,GAAG,iBAAiB,CAWnF;AAED,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC,GAAG,iBAAiB,CAe7G;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI,CAa/F;AAED,wBAAgB,mBAAmB,IAAI,cAAc,CAoEpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,YAAY,GAAG,iBAAiB,CA0ChF;AAED,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,aAAa,EAAE,KAAK,EAAE,YAAY,GAAG,iBAAiB,CAS1G;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,YAAY,GAAG,iBAAiB,CAoCnF;AAEH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,CAIrE;AAgED,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAMpD;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,EAAE,CAIvE;AAYD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,iBAAiB,CAa5E;AAED,wBAAgB,uBAAuB,IAAI,iBAAiB,CA8B3D;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,YAAY,GAAG,iBAAiB,CAa5E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAY1I;AAED,wBAAgB,wBAAwB,IAAI;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAMzH;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAO1I;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,iBAAiB,CAsB7E;AAED,wBAAgB,wBAAwB,IAAI,iBAAiB,CAsB5D;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,iBAAiB,CAsB7E;AAED,wBAAgB,4BAA4B,IAAI,iBAAiB,CAgBhE"}
@@ -176,19 +176,28 @@ export function resolveOpenCodeConfigPath(scope) {
176
176
  }
177
177
  function resolveOmoConfigPath() {
178
178
  const paths = resolveConfigManagerPaths();
179
- if (existsSync(paths.omoLegacyConfigJson)) {
180
- return { path: paths.omoLegacyConfigJson, format: "json", source: "oh-my-opencode.json" };
179
+ const canonicalJsonExists = existsSync(paths.omoConfigJson);
180
+ const canonicalJsoncExists = existsSync(paths.omoConfigJsonc);
181
+ const legacyJsonExists = existsSync(paths.omoLegacyConfigJson);
182
+ const legacyJsoncExists = existsSync(paths.omoLegacyConfigJsonc);
183
+ const legacyPath = legacyJsonExists
184
+ ? paths.omoLegacyConfigJson
185
+ : legacyJsoncExists
186
+ ? paths.omoLegacyConfigJsonc
187
+ : null;
188
+ if (canonicalJsonExists) {
189
+ return { path: paths.omoConfigJson, format: "json", source: "oh-my-openagent.json", legacyPath };
181
190
  }
182
- if (existsSync(paths.omoLegacyConfigJsonc)) {
183
- return { path: paths.omoLegacyConfigJsonc, format: "jsonc", source: "oh-my-opencode.jsonc" };
191
+ if (canonicalJsoncExists) {
192
+ return { path: paths.omoConfigJsonc, format: "jsonc", source: "oh-my-openagent.jsonc", legacyPath };
184
193
  }
185
- if (existsSync(paths.omoConfigJson)) {
186
- return { path: paths.omoConfigJson, format: "json", source: "oh-my-openagent.json" };
194
+ if (legacyJsonExists) {
195
+ return { path: paths.omoLegacyConfigJson, format: "json", source: "oh-my-opencode.json", legacyPath: null };
187
196
  }
188
- if (existsSync(paths.omoConfigJsonc)) {
189
- return { path: paths.omoConfigJsonc, format: "jsonc", source: "oh-my-openagent.jsonc" };
197
+ if (legacyJsoncExists) {
198
+ return { path: paths.omoLegacyConfigJsonc, format: "jsonc", source: "oh-my-opencode.jsonc", legacyPath: null };
190
199
  }
191
- return { path: null, format: "none", source: "default" };
200
+ return { path: null, format: "none", source: "default", legacyPath: null };
192
201
  }
193
202
  function parseConfig(path) {
194
203
  try {
@@ -236,11 +245,18 @@ function parseOmoFreshnessJson(stdoutValue) {
236
245
  const status = record.status;
237
246
  if (!isOmoFreshnessStatus(status))
238
247
  return null;
248
+ const currentVersion = typeof record.currentVersion === "string"
249
+ ? record.currentVersion
250
+ : typeof record.pluginVersion === "string"
251
+ ? record.pluginVersion
252
+ : null;
253
+ const latestVersion = typeof record.latestVersion === "string" ? record.latestVersion : null;
254
+ const pinnedVersion = typeof record.pinnedVersion === "string" ? record.pinnedVersion : null;
239
255
  return {
240
256
  status,
241
- currentVersion: typeof record.currentVersion === "string" ? record.currentVersion : null,
242
- latestVersion: typeof record.latestVersion === "string" ? record.latestVersion : null,
243
- pinnedVersion: typeof record.pinnedVersion === "string" ? record.pinnedVersion : null,
257
+ currentVersion,
258
+ latestVersion,
259
+ pinnedVersion,
244
260
  renderedOutput: null,
245
261
  };
246
262
  }
@@ -248,10 +264,17 @@ function parseOmoFreshnessJson(stdoutValue) {
248
264
  return null;
249
265
  }
250
266
  }
251
- function detectOmoFreshnessInfo(cwd, fallbackVersion) {
267
+ function detectOmoFreshnessInfo(cwd) {
268
+ const runtimeContext = resolveConfigManagerRuntimeContext();
269
+ const spawnEnv = {
270
+ ...process.env,
271
+ HOME: runtimeContext.home,
272
+ USERPROFILE: runtimeContext.home,
273
+ XDG_CONFIG_HOME: join(runtimeContext.home, ".config"),
274
+ };
252
275
  const baseInfo = {
253
276
  status: "unknown",
254
- currentVersion: fallbackVersion,
277
+ currentVersion: null,
255
278
  latestVersion: null,
256
279
  pinnedVersion: null,
257
280
  renderedOutput: null,
@@ -260,6 +283,7 @@ function detectOmoFreshnessInfo(cwd, fallbackVersion) {
260
283
  encoding: "utf8",
261
284
  timeout: 750,
262
285
  maxBuffer: 1024 * 32,
286
+ env: spawnEnv,
263
287
  });
264
288
  if (jsonResult.error)
265
289
  return baseInfo;
@@ -269,7 +293,6 @@ function detectOmoFreshnessInfo(cwd, fallbackVersion) {
269
293
  if (parsed.status !== "outdated") {
270
294
  return {
271
295
  ...parsed,
272
- currentVersion: parsed.currentVersion ?? fallbackVersion,
273
296
  renderedOutput: null,
274
297
  };
275
298
  }
@@ -277,11 +300,11 @@ function detectOmoFreshnessInfo(cwd, fallbackVersion) {
277
300
  encoding: "utf8",
278
301
  timeout: 750,
279
302
  maxBuffer: 1024 * 32,
303
+ env: spawnEnv,
280
304
  });
281
305
  const renderedOutput = textResult.error ? "" : typeof textResult.stdout === "string" ? stripAnsi(textResult.stdout).trim() : "";
282
306
  return {
283
307
  ...parsed,
284
- currentVersion: parsed.currentVersion ?? fallbackVersion,
285
308
  renderedOutput: renderedOutput !== "" ? renderedOutput : null,
286
309
  };
287
310
  }
@@ -292,7 +315,15 @@ function normalizeDependencyVersion(entry) {
292
315
  return match?.[0] ?? null;
293
316
  }
294
317
  function findPluginEntry(entries, packageName) {
295
- return entries.find((entry) => entry === packageName || entry.startsWith(`${packageName}@`) || entry.startsWith(`file://`)) ?? null;
318
+ return (entries.find((entry) => {
319
+ if (entry === packageName || entry.startsWith(`${packageName}@`)) {
320
+ return true;
321
+ }
322
+ if (!entry.startsWith("file://")) {
323
+ return false;
324
+ }
325
+ return entry.includes(`/${packageName}`) || entry.endsWith(packageName);
326
+ }) ?? null);
296
327
  }
297
328
  function detectLoadedPackageVersion(packageName) {
298
329
  const paths = resolveConfigManagerPaths();
@@ -325,6 +356,34 @@ function detectLoadedPackageSources(packageName) {
325
356
  },
326
357
  };
327
358
  }
359
+ function getOmoLoadedPackageInfo(options) {
360
+ const candidateNames = [
361
+ options.preferredPackageName,
362
+ OMO_CANONICAL_PACKAGE_NAME,
363
+ OMO_LEGACY_PACKAGE_NAME,
364
+ ].filter((value, index, array) => value !== null && array.indexOf(value) === index);
365
+ for (const packageName of candidateNames) {
366
+ const loaded = detectLoadedPackageVersion(packageName);
367
+ const loadedSources = detectLoadedPackageSources(packageName);
368
+ const hasLoadedPackage = loaded.version !== null || loaded.packagePath !== null;
369
+ const hasSources = loadedSources.global.packagePath !== null || loadedSources.cache.packagePath !== null;
370
+ if (hasLoadedPackage || hasSources) {
371
+ return {
372
+ loaded,
373
+ loadedSources,
374
+ packageNameUsed: packageName,
375
+ };
376
+ }
377
+ }
378
+ return {
379
+ loaded: { version: null, packagePath: null },
380
+ loadedSources: {
381
+ global: { version: null, packagePath: null },
382
+ cache: { version: null, packagePath: null },
383
+ },
384
+ packageNameUsed: null,
385
+ };
386
+ }
328
387
  function compareVersions(left, right) {
329
388
  const normalize = (value) => {
330
389
  const match = value.match(/^(\d+)\.(\d+)\.(\d+)/);
@@ -385,43 +444,127 @@ export function detectOmoVersionInfo() {
385
444
  const omoConfigResolution = resolveOmoConfigPath();
386
445
  const openCodeConfigResolution = resolveOpenCodeConfigPath("global");
387
446
  const configPath = omoConfigResolution.path;
388
- const config = configPath
389
- ? parseConfig(configPath)
390
- : existsSync(openCodeConfigResolution.path)
391
- ? parseConfig(openCodeConfigResolution.path)
392
- : null;
393
- const plugins = (config?.plugin ?? []);
447
+ const omoConfig = configPath ? parseConfig(configPath) : null;
448
+ const openCodeConfig = existsSync(openCodeConfigResolution.path) ? parseConfig(openCodeConfigResolution.path) : null;
449
+ const omoPlugins = (omoConfig?.plugin ?? []);
450
+ const openCodePlugins = (openCodeConfig?.plugin ?? []);
451
+ const plugins = omoPlugins.length > 0 ? omoPlugins : openCodePlugins;
394
452
  const registeredCanonicalEntry = findPluginEntry(plugins, OMO_CANONICAL_PACKAGE_NAME);
395
453
  const registeredLegacyEntry = findPluginEntry(plugins, OMO_LEGACY_PACKAGE_NAME);
396
454
  const registeredEntry = registeredCanonicalEntry ?? registeredLegacyEntry;
397
- const loadedCanonical = detectLoadedPackageVersion(OMO_CANONICAL_PACKAGE_NAME);
398
- const loadedLegacy = detectLoadedPackageVersion(OMO_LEGACY_PACKAGE_NAME);
399
- const loadedCanonicalSources = detectLoadedPackageSources(OMO_CANONICAL_PACKAGE_NAME);
400
- const loadedLegacySources = detectLoadedPackageSources(OMO_LEGACY_PACKAGE_NAME);
401
- const loaded = loadedCanonical.version !== null || loadedCanonical.packagePath !== null ? loadedCanonical : loadedLegacy;
402
- const loadedSources = loadedCanonicalSources.global.packagePath !== null || loadedCanonicalSources.cache.packagePath !== null
403
- ? loadedCanonicalSources
404
- : loadedLegacySources;
455
+ const preferredPackageName = registeredCanonicalEntry
456
+ ? OMO_CANONICAL_PACKAGE_NAME
457
+ : registeredLegacyEntry
458
+ ? OMO_LEGACY_PACKAGE_NAME
459
+ : null;
460
+ const packageInfo = getOmoLoadedPackageInfo({ preferredPackageName });
405
461
  const staleOverrideWarning = buildStaleOverrideWarning({
406
- packageName: OMO_CANONICAL_PACKAGE_NAME,
407
- globalVersion: loadedSources.global.version,
408
- cacheVersion: loadedSources.cache.version,
462
+ packageName: packageInfo.packageNameUsed ?? OMO_CANONICAL_PACKAGE_NAME,
463
+ globalVersion: packageInfo.loadedSources.global.version,
464
+ cacheVersion: packageInfo.loadedSources.cache.version,
409
465
  });
410
- const freshness = registeredEntry !== null ? detectOmoFreshnessInfo(resolveConfigManagerRuntimeContext().cwd, loaded.version) : null;
466
+ const freshness = registeredEntry !== null
467
+ ? detectOmoFreshnessInfo(resolveConfigManagerRuntimeContext().cwd)
468
+ : null;
469
+ const currentVersion = freshness?.currentVersion ?? null;
470
+ const versionSkewWarning = currentVersion !== null &&
471
+ packageInfo.loaded.version !== null &&
472
+ compareVersions(currentVersion, packageInfo.loaded.version) !== 0
473
+ ? `upstream get-local-version reports ${currentVersion} but the loaded ${packageInfo.packageNameUsed ?? OMO_CANONICAL_PACKAGE_NAME} package is ${packageInfo.loaded.version}`
474
+ : null;
475
+ const dualConfigWarning = omoConfigResolution.legacyPath !== null && configPath !== null
476
+ ? `canonical ${omoConfigResolution.source} is being used while legacy config still exists at ${omoConfigResolution.legacyPath}`
477
+ : null;
411
478
  return {
412
479
  packageName: OMO_CANONICAL_PACKAGE_NAME,
413
- currentVersion: null,
480
+ currentVersion,
414
481
  registeredEntry,
415
482
  registeredVersion: normalizeDependencyVersion(registeredEntry),
416
- loadedVersion: loaded.version,
483
+ loadedVersion: packageInfo.loaded.version,
417
484
  configPath,
418
- loadedPackagePath: loaded.packagePath,
485
+ configSource: omoConfigResolution.source,
486
+ legacyConfigPath: omoConfigResolution.legacyPath,
487
+ loadedPackagePath: packageInfo.loaded.packagePath,
419
488
  registered: registeredEntry !== null,
420
- loadedSources,
489
+ loadedSources: packageInfo.loadedSources,
421
490
  staleOverrideWarning,
491
+ versionSkewWarning,
492
+ dualConfigWarning,
422
493
  freshness,
423
494
  };
424
495
  }
496
+ export function detectOmoInstallReadiness() {
497
+ const versionInfo = detectOmoVersionInfo();
498
+ const installed = versionInfo.registered;
499
+ const freshnessSummary = summarizeOmoFreshness(versionInfo);
500
+ return {
501
+ installed,
502
+ registered: versionInfo.registered,
503
+ loadedVersion: versionInfo.loadedVersion,
504
+ configPath: versionInfo.configPath,
505
+ configSource: versionInfo.configSource ?? null,
506
+ legacyConfigPath: versionInfo.legacyConfigPath ?? null,
507
+ staleOverrideWarning: versionInfo.staleOverrideWarning ?? null,
508
+ versionSkewWarning: versionInfo.versionSkewWarning ?? null,
509
+ dualConfigWarning: versionInfo.dualConfigWarning ?? null,
510
+ freshness: versionInfo.freshness ?? null,
511
+ freshnessSummary,
512
+ interactiveInstallCommand: "bunx oh-my-opencode install",
513
+ nonTuiInstallCommand: "bunx oh-my-opencode install --no-tui --claude=yes --gemini=no --copilot=yes",
514
+ guidance: "upstream now prefers oh-my-openagent for plugin/config naming, but the package and CLI command still remain oh-my-opencode",
515
+ };
516
+ }
517
+ export function summarizeOmoFreshness(versionInfo) {
518
+ const freshness = versionInfo.freshness;
519
+ if (!versionInfo.registered) {
520
+ return {
521
+ state: "not-detected",
522
+ guidance: "oh-my-openagent plugin/config naming was not detected — keep using the oh-my-opencode package/CLI for installs until upstream renames those too.",
523
+ };
524
+ }
525
+ if (versionInfo.staleOverrideWarning) {
526
+ return {
527
+ state: "stale-override",
528
+ guidance: "A stale global oh-my-openagent install is likely overriding a newer cache copy — refresh the global install and restart OpenCode.",
529
+ };
530
+ }
531
+ if (versionInfo.versionSkewWarning) {
532
+ return {
533
+ state: "version-skew",
534
+ guidance: "oh-my-openagent reports a newer current version than the package OpenCode appears to have loaded — rerun `bunx oh-my-opencode install`, then restart OpenCode so the active plugin matches upstream.",
535
+ };
536
+ }
537
+ if (!freshness || freshness.status === "unknown" || freshness.status === "error") {
538
+ return {
539
+ state: "not-verified",
540
+ guidance: "Latest oh-my-openagent plugin/config naming freshness could not be verified — use `bunx oh-my-opencode get-local-version` for upstream update advice while the package/CLI still use oh-my-opencode.",
541
+ };
542
+ }
543
+ if (freshness.status === "up-to-date") {
544
+ return {
545
+ state: "up-to-date",
546
+ guidance: "oh-my-openagent is already up to date.",
547
+ };
548
+ }
549
+ if (freshness.status === "outdated") {
550
+ const upgradeCommand = freshness.renderedOutput?.split("\n").find((lineValue) => lineValue.includes("Run:"));
551
+ return {
552
+ state: "update-available",
553
+ guidance: upgradeCommand ??
554
+ "An oh-my-openagent plugin/config update is available — run `bunx oh-my-opencode get-local-version` for the recommended command.",
555
+ };
556
+ }
557
+ if (freshness.status === "local-dev") {
558
+ return {
559
+ state: "local-dev",
560
+ guidance: "oh-my-openagent is running in local development mode — upstream update checks are informational only.",
561
+ };
562
+ }
563
+ return {
564
+ state: "pinned",
565
+ guidance: "oh-my-openagent is pinned, so automatic upgrade advice is intentionally suppressed upstream.",
566
+ };
567
+ }
425
568
  function parseWunderkindConfig(path) {
426
569
  try {
427
570
  const parsed = parseJsonc(readFileSync(path, "utf-8"));