@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.
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +5 -1
- package/dist/cli/cli-installer.d.ts +12 -0
- package/dist/cli/cli-installer.d.ts.map +1 -1
- package/dist/cli/cli-installer.js +88 -1
- package/dist/cli/cli-installer.js.map +1 -1
- package/dist/cli/config-manager/index.d.ts +3 -1
- package/dist/cli/config-manager/index.d.ts.map +1 -1
- package/dist/cli/config-manager/index.js +182 -39
- package/dist/cli/config-manager/index.js.map +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +40 -43
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/tui-installer.d.ts.map +1 -1
- package/dist/cli/tui-installer.js +20 -1
- package/dist/cli/tui-installer.js.map +1 -1
- package/dist/cli/types.d.ts +25 -0
- package/dist/cli/types.d.ts.map +1 -1
- package/oh-my-openagent.jsonc +77 -0
- package/oh-my-opencode.jsonc +81 -0
- package/package.json +12 -4
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.
|
|
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":"
|
|
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 {
|
|
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":"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"}
|
|
1
|
+
{"version":3,"file":"cli-installer.js","sourceRoot":"","sources":["../../src/cli/cli-installer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,YAAY,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,EAClB,yBAAyB,EACzB,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,SAAS,wBAAwB;IAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,QAAQ,CAAC,EAAE;QAC7D,QAAQ,EAAE,MAAM;QAChB,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,IAAI,GAAG,EAAE;KACrB,CAAC,CAAA;IAEF,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,CAAA;AAC7C,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAE;QAC9D,KAAK,EAAE,SAAS;KACjB,CAAC,CAAA;IAEF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;IACxD,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,6CAA6C,MAAM,CAAC,MAAM,IAAI,SAAS,EAAE,EAAE,CAAA;IAC7G,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;AAC1B,CAAC;AAED,MAAM,UAAU,0BAA0B;IACxC,MAAM,SAAS,GAAG,yBAAyB,EAAE,CAAA;IAC7C,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;IACxB,CAAC;IAED,OAAO;QACL,KAAK,EAAE,KAAK;QACZ,OAAO,EACL,iFAAiF;YACjF,GAAG,SAAS,CAAC,QAAQ,+BAA+B,SAAS,CAAC,oBAAoB,EAAE;KACvF,CAAA;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,SAA8B;IAC/D,IAAI,SAAS,CAAC,oBAAoB,EAAE,CAAC;QACnC,YAAY,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAA;IAC9C,CAAC;IACD,IAAI,SAAS,CAAC,kBAAkB,EAAE,CAAC;QACjC,YAAY,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAA;IAC5C,CAAC;IACD,IAAI,SAAS,CAAC,iBAAiB,EAAE,CAAC;QAChC,YAAY,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAA;IAC3C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,MAAM,SAAS,GAAG,yBAAyB,EAAE,CAAA;IAC7C,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IACrB,CAAC;IAED,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAC;QAChC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EACL,6DAA6D,SAAS,CAAC,QAAQ,IAAI;gBACnF,OAAO,SAAS,CAAC,yBAAyB,oCAAoC;SACjF,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,qBAAqB,EAAE,CAAA;IACtC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EACL,2CAA2C,SAAS,CAAC,QAAQ,IAAI;gBACjE,GAAG,MAAM,CAAC,KAAK,IAAI,OAAO,SAAS,CAAC,yBAAyB,sBAAsB,EAAE;SACxF,CAAA;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,yBAAyB,EAAE,CAAA;IACtD,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,CAAC;QAClC,OAAO;YACL,EAAE,EAAE,KAAK;YACT,OAAO,EACL,2EAA2E;gBAC3E,OAAO,kBAAkB,CAAC,yBAAyB,sBAAsB;SAC5E,CAAA;IACH,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;AACrB,CAAC;AAED,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,YAAY,GAAG,0BAA0B,EAAE,CAAA;IACjD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QACxB,UAAU,CAAC,YAAY,CAAC,OAAO,IAAI,8EAA8E,CAAC,CAAA;QAClH,OAAO,CAAC,CAAA;IACV,CAAC;IACD,MAAM,YAAY,GAAG,yBAAyB,EAAE,CAAA;IAChD,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;IACrB,yBAAyB,CAAC,YAAY,CAAC,CAAA;IAEvC,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;IACD,MAAM,YAAY,GAAG,0BAA0B,EAAE,CAAA;IACjD,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QACxB,UAAU,CAAC,YAAY,CAAC,OAAO,IAAI,qEAAqE,CAAC,CAAA;QACzG,OAAO,CAAC,CAAA;IACV,CAAC;IACD,MAAM,YAAY,GAAG,yBAAyB,EAAE,CAAA;IAEhD,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;IACjB,yBAAyB,CAAC,YAAY,CAAC,CAAA;IAEvC,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,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":"AAYA,OAAO,KAAK,EAGV,iBAAiB,EAKjB,cAAc,EAEd,YAAY,EACZ,aAAa,EAEb,YAAY,EAKZ,iBAAiB,EACjB,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;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cli/config-manager/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -176,19 +176,28 @@ export function resolveOpenCodeConfigPath(scope) {
|
|
|
176
176
|
}
|
|
177
177
|
function resolveOmoConfigPath() {
|
|
178
178
|
const paths = resolveConfigManagerPaths();
|
|
179
|
-
|
|
180
|
-
|
|
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 (
|
|
183
|
-
return { path: paths.
|
|
191
|
+
if (canonicalJsoncExists) {
|
|
192
|
+
return { path: paths.omoConfigJsonc, format: "jsonc", source: "oh-my-openagent.jsonc", legacyPath };
|
|
184
193
|
}
|
|
185
|
-
if (
|
|
186
|
-
return { path: paths.
|
|
194
|
+
if (legacyJsonExists) {
|
|
195
|
+
return { path: paths.omoLegacyConfigJson, format: "json", source: "oh-my-opencode.json", legacyPath: null };
|
|
187
196
|
}
|
|
188
|
-
if (
|
|
189
|
-
return { path: paths.
|
|
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
|
|
242
|
-
latestVersion
|
|
243
|
-
pinnedVersion
|
|
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
|
|
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:
|
|
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) =>
|
|
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
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
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
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
const
|
|
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
|
|
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
|
|
480
|
+
currentVersion,
|
|
414
481
|
registeredEntry,
|
|
415
482
|
registeredVersion: normalizeDependencyVersion(registeredEntry),
|
|
416
|
-
loadedVersion: loaded.version,
|
|
483
|
+
loadedVersion: packageInfo.loaded.version,
|
|
417
484
|
configPath,
|
|
418
|
-
|
|
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"));
|