@indy2kro/agentenv 1.0.1 → 1.1.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.
- package/dist/adapters/agent-dirs.d.ts +29 -0
- package/dist/adapters/agent-dirs.d.ts.map +1 -0
- package/dist/adapters/agent-dirs.js +46 -0
- package/dist/adapters/agent-dirs.js.map +1 -0
- package/dist/adapters/base.d.ts +7 -1
- package/dist/adapters/base.d.ts.map +1 -1
- package/dist/adapters/base.js.map +1 -1
- package/dist/adapters/claude.d.ts.map +1 -1
- package/dist/adapters/claude.js +18 -10
- package/dist/adapters/claude.js.map +1 -1
- package/dist/adapters/cline.d.ts.map +1 -1
- package/dist/adapters/cline.js +2 -2
- package/dist/adapters/cline.js.map +1 -1
- package/dist/adapters/codex.d.ts.map +1 -1
- package/dist/adapters/codex.js +3 -2
- package/dist/adapters/codex.js.map +1 -1
- package/dist/adapters/copilot.d.ts.map +1 -1
- package/dist/adapters/copilot.js +3 -4
- package/dist/adapters/copilot.js.map +1 -1
- package/dist/adapters/cursor.d.ts.map +1 -1
- package/dist/adapters/cursor.js +7 -6
- package/dist/adapters/cursor.js.map +1 -1
- package/dist/adapters/detect.d.ts.map +1 -1
- package/dist/adapters/detect.js +1 -0
- package/dist/adapters/detect.js.map +1 -1
- package/dist/adapters/gemini.d.ts.map +1 -1
- package/dist/adapters/gemini.js +2 -2
- package/dist/adapters/gemini.js.map +1 -1
- package/dist/adapters/index.d.ts +4 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +21 -0
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/opencode.d.ts.map +1 -1
- package/dist/adapters/opencode.js +2 -2
- package/dist/adapters/opencode.js.map +1 -1
- package/dist/adapters/rtk-delegation.d.ts.map +1 -1
- package/dist/adapters/rtk-delegation.js +16 -1
- package/dist/adapters/rtk-delegation.js.map +1 -1
- package/dist/adapters/vibe.d.ts.map +1 -1
- package/dist/adapters/vibe.js +2 -2
- package/dist/adapters/vibe.js.map +1 -1
- package/dist/adapters/windsurf.d.ts.map +1 -1
- package/dist/adapters/windsurf.js +2 -2
- package/dist/adapters/windsurf.js.map +1 -1
- package/dist/cli/exit.d.ts +17 -6
- package/dist/cli/exit.d.ts.map +1 -1
- package/dist/cli/exit.js +17 -7
- package/dist/cli/exit.js.map +1 -1
- package/dist/commands/apply.d.ts +77 -0
- package/dist/commands/apply.d.ts.map +1 -1
- package/dist/commands/apply.js +202 -27
- package/dist/commands/apply.js.map +1 -1
- package/dist/commands/config-edit.d.ts +33 -0
- package/dist/commands/config-edit.d.ts.map +1 -0
- package/dist/commands/config-edit.js +216 -0
- package/dist/commands/config-edit.js.map +1 -0
- package/dist/commands/doctor.d.ts +57 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +233 -59
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/setup.d.ts +4 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +58 -5
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +40 -16
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/uninstall.d.ts +78 -1
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +329 -31
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.d.ts +51 -0
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +172 -71
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/wizard.d.ts +27 -1
- package/dist/commands/wizard.d.ts.map +1 -1
- package/dist/commands/wizard.js +48 -31
- package/dist/commands/wizard.js.map +1 -1
- package/dist/config/schema.d.ts +28 -3
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +206 -54
- package/dist/config/schema.js.map +1 -1
- package/dist/config/scopes.d.ts +4 -2
- package/dist/config/scopes.d.ts.map +1 -1
- package/dist/config/scopes.js +23 -4
- package/dist/config/scopes.js.map +1 -1
- package/dist/generate/agentsmd.d.ts +54 -0
- package/dist/generate/agentsmd.d.ts.map +1 -1
- package/dist/generate/agentsmd.js +222 -143
- package/dist/generate/agentsmd.js.map +1 -1
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/integrations/render.d.ts.map +1 -1
- package/dist/integrations/render.js +25 -10
- package/dist/integrations/render.js.map +1 -1
- package/dist/integrations/superpowers.d.ts.map +1 -1
- package/dist/integrations/superpowers.js +2 -0
- package/dist/integrations/superpowers.js.map +1 -1
- package/dist/shell/detector.d.ts +63 -5
- package/dist/shell/detector.d.ts.map +1 -1
- package/dist/shell/detector.js +253 -65
- package/dist/shell/detector.js.map +1 -1
- package/dist/toolchain/gh.d.ts.map +1 -1
- package/dist/toolchain/gh.js +1 -0
- package/dist/toolchain/gh.js.map +1 -1
- package/dist/toolchain/mise.d.ts +7 -0
- package/dist/toolchain/mise.d.ts.map +1 -1
- package/dist/toolchain/mise.js +20 -3
- package/dist/toolchain/mise.js.map +1 -1
- package/dist/toolchain/rtk.d.ts +71 -3
- package/dist/toolchain/rtk.d.ts.map +1 -1
- package/dist/toolchain/rtk.js +115 -7
- package/dist/toolchain/rtk.js.map +1 -1
- package/dist/ui/output.d.ts.map +1 -1
- package/dist/ui/output.js +10 -2
- package/dist/ui/output.js.map +1 -1
- package/dist/ui/spinner.d.ts +15 -3
- package/dist/ui/spinner.d.ts.map +1 -1
- package/dist/ui/spinner.js +52 -4
- package/dist/ui/spinner.js.map +1 -1
- package/dist/ui/theme.d.ts +27 -1
- package/dist/ui/theme.d.ts.map +1 -1
- package/dist/ui/theme.js +73 -8
- package/dist/ui/theme.js.map +1 -1
- package/dist/utils/fs-retry.d.ts +16 -0
- package/dist/utils/fs-retry.d.ts.map +1 -1
- package/dist/utils/fs-retry.js +28 -0
- package/dist/utils/fs-retry.js.map +1 -1
- package/package.json +6 -5
package/dist/commands/doctor.js
CHANGED
|
@@ -6,8 +6,9 @@ import { isQuiet, LOGO, resolveResultLine, setQuietEnabled, shouldPrintBanner, }
|
|
|
6
6
|
import { theme } from '../ui/theme.js';
|
|
7
7
|
import { BINARY_MAP, getEnabledAgents, loadConfig, TOOL_KEYS, validateConfig, } from '../config/schema.js';
|
|
8
8
|
import { findConfigPath, userConfigDir } from '../config/scopes.js';
|
|
9
|
-
import { bashExecutable, detectShell } from '../shell/detector.js';
|
|
10
|
-
import { getInstalledToolState, getMiseVersion, getShimsDirValue, isMiseInstalled, miseGlobalConfigPath, miseInstallInstructions, shimsDir, shimsDirOnPath, toolAvailabilityClassification, } from '../toolchain/mise.js';
|
|
9
|
+
import { bashExecutable, checkAgentShellConfiguration, detectShell, generateGitBashPathAddition, gitInstallRoot, NATIVE_UNIX_TOOLS, preferredGitBashLauncher, readPersistentWindowsPath, resolveOnWindowsPath, } from '../shell/detector.js';
|
|
10
|
+
import { getInstalledToolState, getMiseVersion, getShimsDirValue, isMiseInstalled, miseGlobalConfigPath, miseInstallInstructions, PINNED_TOOL_VERSIONS, shimsDir, shimsDirOnPath, toolAvailabilityClassification, } from '../toolchain/mise.js';
|
|
11
|
+
import { checkRtkInstallation } from '../toolchain/rtk.js';
|
|
11
12
|
const STATUS_COLOR = {
|
|
12
13
|
ok: theme.ok,
|
|
13
14
|
warn: theme.warn,
|
|
@@ -52,21 +53,137 @@ export function renderDoctor(sections, options = {}) {
|
|
|
52
53
|
function norm(p) {
|
|
53
54
|
return path.resolve(p).replace(/\\/g, '/').toLowerCase();
|
|
54
55
|
}
|
|
55
|
-
|
|
56
|
+
/**
|
|
57
|
+
* Whether a section whose static title starts with `label` should be built,
|
|
58
|
+
* given the raw --section filter. Only skippable for a name-based filter — a
|
|
59
|
+
* numeric (index-based) filter can't be resolved without building the
|
|
60
|
+
* (conditionally-present-RTK-section) list first, so those still gather
|
|
61
|
+
* everything, correctly if not faster.
|
|
62
|
+
*/
|
|
63
|
+
export function wantsDoctorSection(sectionFilter, label) {
|
|
64
|
+
if (sectionFilter === undefined || /^\d+$/.test(sectionFilter))
|
|
65
|
+
return true;
|
|
66
|
+
return label.toLowerCase().startsWith(sectionFilter.toLowerCase());
|
|
67
|
+
}
|
|
68
|
+
/** Agents whose Tier 0 fix writes a per-user shell override (see detector.ts). */
|
|
69
|
+
const SHELL_MANAGED_AGENTS = ['claude_code', 'codex_cli', 'opencode'];
|
|
70
|
+
const SHELL_FIX_HINT = 'run `agentenv apply --shell-fix always`';
|
|
71
|
+
/**
|
|
72
|
+
* How GNU tools resolve for agents that run commands through PowerShell/cmd
|
|
73
|
+
* rather than Git Bash, using the persistent PATH a fresh Windows shell gets.
|
|
74
|
+
* Windows' own find.exe winning is expected (Git's dirs belong after
|
|
75
|
+
* System32 so cmd keeps working) and only noted, never warned about.
|
|
76
|
+
*/
|
|
77
|
+
export function nativeUnixToolsItem(gitBashPath, pathVar, exists, pathExt = process.env.PATHEXT) {
|
|
78
|
+
// win32 semantics on every host, so this is testable off Windows.
|
|
79
|
+
const winNorm = (p) => path.win32.normalize(p).toLowerCase();
|
|
80
|
+
const root = gitInstallRoot(gitBashPath);
|
|
81
|
+
const gitDirs = root
|
|
82
|
+
? [
|
|
83
|
+
path.win32.join(root, 'usr', 'bin'),
|
|
84
|
+
path.win32.join(root, 'mingw64', 'bin'),
|
|
85
|
+
path.win32.join(root, 'bin'),
|
|
86
|
+
].map(winNorm)
|
|
87
|
+
: [];
|
|
88
|
+
const missing = [];
|
|
89
|
+
const shadowed = [];
|
|
90
|
+
const shadowingDirs = new Set();
|
|
91
|
+
const notes = [];
|
|
92
|
+
for (const tool of NATIVE_UNIX_TOOLS) {
|
|
93
|
+
const resolved = resolveOnWindowsPath(tool, pathVar, pathExt, exists);
|
|
94
|
+
if (!resolved) {
|
|
95
|
+
missing.push(tool);
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
const dir = winNorm(path.win32.dirname(resolved));
|
|
99
|
+
if (gitDirs.includes(dir))
|
|
100
|
+
continue;
|
|
101
|
+
if (tool === 'find' && /\\windows\\system32$/.test(dir)) {
|
|
102
|
+
notes.push('find → Windows find.exe (expected; agents should use fd)');
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
shadowed.push(`${tool} → ${resolved}`);
|
|
106
|
+
shadowingDirs.add(path.win32.dirname(resolved));
|
|
107
|
+
}
|
|
108
|
+
const label = 'Unix tools in PowerShell/cmd';
|
|
109
|
+
if (missing.length === 0 && shadowed.length === 0) {
|
|
110
|
+
return {
|
|
111
|
+
status: 'ok',
|
|
112
|
+
label,
|
|
113
|
+
detail: ['resolve to Git for Windows', ...notes].join('; '),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
const problems = [...shadowed, ...(missing.length > 0 ? [`missing: ${missing.join(', ')}`] : [])];
|
|
117
|
+
const addition = generateGitBashPathAddition(gitBashPath);
|
|
118
|
+
const onPath = new Set(pathVar.split(';').map((entry) => winNorm(entry.trim())));
|
|
119
|
+
const gitOnPath = addition !== '' && addition.split(';').every((dir) => onPath.has(winNorm(dir)));
|
|
120
|
+
let fix;
|
|
121
|
+
if (gitOnPath && shadowingDirs.size > 0) {
|
|
122
|
+
// Git's dirs are already there, just later: adding them again won't help.
|
|
123
|
+
fix = `Git's dirs are on PATH but come after ${[...shadowingDirs].join(', ')} — remove or move those entries (system PATH is searched before user PATH)`;
|
|
124
|
+
}
|
|
125
|
+
else if (addition) {
|
|
126
|
+
fix = `add ${addition} to your user PATH (after System32) for agents not routed to Git Bash`;
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
fix = "add Git for Windows' usr\\bin to your user PATH for agents not routed to Git Bash";
|
|
130
|
+
}
|
|
131
|
+
return { status: 'warn', label, detail: [...problems, ...notes, fix].join('; ') };
|
|
132
|
+
}
|
|
133
|
+
/** Whether an agent's configured shell (Tier 0 override) actually works. */
|
|
134
|
+
export function agentShellItem(agent, info, exists) {
|
|
135
|
+
const label = `${agent} shell`;
|
|
136
|
+
if (!info.isConfigured || !info.shell) {
|
|
137
|
+
return { status: 'warn', label, detail: `not pointed at Git Bash — ${SHELL_FIX_HINT}` };
|
|
138
|
+
}
|
|
139
|
+
if (!exists(info.shell)) {
|
|
140
|
+
return { status: 'warn', label, detail: `${info.shell} does not exist — ${SHELL_FIX_HINT}` };
|
|
141
|
+
}
|
|
142
|
+
const launcher = preferredGitBashLauncher(info.shell, exists);
|
|
143
|
+
if (launcher) {
|
|
144
|
+
return {
|
|
145
|
+
status: 'warn',
|
|
146
|
+
label,
|
|
147
|
+
detail: `${info.shell} is the raw MSYS bash (GNU tools missing from non-login shells); switch to ${launcher} — ${SHELL_FIX_HINT}`,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
return { status: 'ok', label, detail: info.shell };
|
|
151
|
+
}
|
|
152
|
+
export function gatherDoctor(sectionFilter, deps = {}) {
|
|
153
|
+
const detectShellFn = deps.detectShell ?? detectShell;
|
|
154
|
+
const existsSync = deps.existsSync ?? fs.existsSync;
|
|
155
|
+
const readFileSync = deps.readFileSync ?? fs.readFileSync;
|
|
156
|
+
const isMiseInstalledFn = deps.isMiseInstalled ?? isMiseInstalled;
|
|
157
|
+
const getMiseVersionFn = deps.getMiseVersion ?? getMiseVersion;
|
|
158
|
+
const miseGlobalConfigPathFn = deps.miseGlobalConfigPath ?? miseGlobalConfigPath;
|
|
159
|
+
const shimsDirFn = deps.shimsDir ?? shimsDir;
|
|
160
|
+
const shimsDirOnPathFn = deps.shimsDirOnPath ?? shimsDirOnPath;
|
|
161
|
+
const findConfigPathFn = deps.findConfigPath ?? findConfigPath;
|
|
162
|
+
const userConfigDirFn = deps.userConfigDir ?? userConfigDir;
|
|
163
|
+
const loadConfigFn = deps.loadConfig ?? loadConfig;
|
|
164
|
+
const getInstalledToolStateFn = deps.getInstalledToolState ?? getInstalledToolState;
|
|
165
|
+
const toolAvailabilityClassificationFn = deps.toolAvailabilityClassification ?? toolAvailabilityClassification;
|
|
166
|
+
const checkRtkInstallationFn = deps.checkRtkInstallation ?? checkRtkInstallation;
|
|
167
|
+
const isAgentInstalledFn = deps.isAgentInstalled ?? isAgentInstalled;
|
|
168
|
+
const platform = deps.platform ?? process.platform;
|
|
169
|
+
const readPersistentPathFn = deps.readPersistentPath ?? readPersistentWindowsPath;
|
|
170
|
+
const checkAgentShellFn = deps.checkAgentShellConfiguration ?? checkAgentShellConfiguration;
|
|
56
171
|
const sections = [];
|
|
172
|
+
const wants = (label) => wantsDoctorSection(sectionFilter, label);
|
|
57
173
|
// System level
|
|
58
|
-
const shell =
|
|
174
|
+
const shell = detectShellFn();
|
|
59
175
|
const system = [
|
|
60
176
|
{ status: 'ok', label: 'OS', detail: `${process.platform} (${process.arch})` },
|
|
61
177
|
];
|
|
62
178
|
system.push({ status: 'ok', label: 'Shell', detail: shell.currentShell });
|
|
63
|
-
if (
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
179
|
+
if (platform === 'win32') {
|
|
180
|
+
const bashExe = shell.gitBashPath ? bashExecutable(shell.gitBashPath, existsSync) : undefined;
|
|
181
|
+
if (shell.gitBashPath && bashExe && existsSync(bashExe)) {
|
|
182
|
+
system.push({ status: 'ok', label: 'Git Bash', detail: bashExe });
|
|
183
|
+
const persistentPath = readPersistentPathFn();
|
|
184
|
+
if (persistentPath !== undefined) {
|
|
185
|
+
system.push(nativeUnixToolsItem(shell.gitBashPath, persistentPath, existsSync));
|
|
186
|
+
}
|
|
70
187
|
}
|
|
71
188
|
else {
|
|
72
189
|
system.push({
|
|
@@ -79,8 +196,8 @@ function gatherDoctor() {
|
|
|
79
196
|
sections.push({ title: 'System', items: system });
|
|
80
197
|
// Mise + shims
|
|
81
198
|
const miseItems = [];
|
|
82
|
-
if (
|
|
83
|
-
miseItems.push({ status: 'ok', label: 'mise', detail:
|
|
199
|
+
if (isMiseInstalledFn()) {
|
|
200
|
+
miseItems.push({ status: 'ok', label: 'mise', detail: getMiseVersionFn() });
|
|
84
201
|
}
|
|
85
202
|
else {
|
|
86
203
|
miseItems.push({
|
|
@@ -96,32 +213,32 @@ function gatherDoctor() {
|
|
|
96
213
|
sections.push({ title: 'Mise', items: miseItems });
|
|
97
214
|
return sections;
|
|
98
215
|
}
|
|
99
|
-
const globalConfigPath =
|
|
216
|
+
const globalConfigPath = miseGlobalConfigPathFn();
|
|
100
217
|
let globalConfig = null;
|
|
101
|
-
if (
|
|
102
|
-
globalConfig =
|
|
218
|
+
if (existsSync(globalConfigPath))
|
|
219
|
+
globalConfig = readFileSync(globalConfigPath, 'utf-8');
|
|
103
220
|
const shimsValue = globalConfig === null ? null : getShimsDirValue(globalConfig);
|
|
104
|
-
const expected = norm(
|
|
221
|
+
const expected = norm(shimsDirFn());
|
|
105
222
|
if (shimsValue && norm(shimsValue) === expected) {
|
|
106
|
-
miseItems.push({ status: 'ok', label: 'shims_dir', detail:
|
|
223
|
+
miseItems.push({ status: 'ok', label: 'shims_dir', detail: shimsDirFn() });
|
|
107
224
|
}
|
|
108
225
|
else {
|
|
109
226
|
miseItems.push({
|
|
110
227
|
status: 'fail',
|
|
111
228
|
label: 'shims_dir',
|
|
112
|
-
detail: `not set to ${
|
|
229
|
+
detail: `not set to ${shimsDirFn()} in ${globalConfigPath} — run \`agentenv apply\``,
|
|
113
230
|
});
|
|
114
231
|
}
|
|
115
232
|
miseItems.push({
|
|
116
|
-
status:
|
|
233
|
+
status: shimsDirOnPathFn() ? 'ok' : 'warn',
|
|
117
234
|
label: 'shims on PATH',
|
|
118
|
-
detail:
|
|
119
|
-
?
|
|
120
|
-
: `${
|
|
235
|
+
detail: shimsDirOnPathFn()
|
|
236
|
+
? shimsDirFn()
|
|
237
|
+
: `${shimsDirFn()} is not on PATH — add it so the shims resolve`,
|
|
121
238
|
});
|
|
122
239
|
sections.push({ title: 'Mise', items: miseItems });
|
|
123
240
|
// Config
|
|
124
|
-
const configPath =
|
|
241
|
+
const configPath = findConfigPathFn();
|
|
125
242
|
if (!configPath) {
|
|
126
243
|
sections.push({
|
|
127
244
|
title: 'Config',
|
|
@@ -135,13 +252,13 @@ function gatherDoctor() {
|
|
|
135
252
|
});
|
|
136
253
|
return sections;
|
|
137
254
|
}
|
|
138
|
-
const scope = norm(configPath) === norm(path.join(
|
|
255
|
+
const scope = norm(configPath) === norm(path.join(userConfigDirFn(), 'agentenv.toml')) ? 'user' : 'project';
|
|
139
256
|
const configItems = [
|
|
140
257
|
{ status: 'ok', label: 'file', detail: `${configPath} (${scope} scope)` },
|
|
141
258
|
];
|
|
142
259
|
let config;
|
|
143
260
|
try {
|
|
144
|
-
config =
|
|
261
|
+
config = loadConfigFn(configPath, { layerUserConfig: true });
|
|
145
262
|
}
|
|
146
263
|
catch (error) {
|
|
147
264
|
configItems.push({
|
|
@@ -163,31 +280,38 @@ function gatherDoctor() {
|
|
|
163
280
|
configItems.push({ status: 'warn', label: 'warning', detail: warning });
|
|
164
281
|
}
|
|
165
282
|
sections.push({ title: 'Config', items: configItems });
|
|
166
|
-
// Tools
|
|
283
|
+
// Tools — the section (and its title, which needs no probing) is always
|
|
284
|
+
// present, but the actual mise probing (getInstalledToolState, one call
|
|
285
|
+
// per configured tool) only runs when this section could be selected —
|
|
286
|
+
// skipped entirely otherwise. A skipped section's items are never
|
|
287
|
+
// shown: --section always resolves by title, and a non-matching section's
|
|
288
|
+
// contents are discarded by filterDoctorSections below.
|
|
167
289
|
const tools = config.tools ?? {};
|
|
168
290
|
const enabledTools = TOOL_KEYS.filter((key) => tools[key] === true);
|
|
169
|
-
// Same verdict as apply's verify step: a tool apply itself skips (no mise
|
|
170
|
-
// fallback on this platform) or installs-but-needs-a-fresh-shell is never a
|
|
171
|
-
// doctor failure here, only a genuinely-missing one is.
|
|
172
|
-
const installedState = getInstalledToolState();
|
|
173
291
|
const toolItems = [];
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
292
|
+
if (wants('Tools')) {
|
|
293
|
+
// Same verdict as apply's verify step: a tool apply itself skips (no
|
|
294
|
+
// mise fallback on this platform) or installs-but-needs-a-fresh-shell is
|
|
295
|
+
// never a doctor failure here, only a genuinely-missing one is.
|
|
296
|
+
const installedState = getInstalledToolStateFn();
|
|
297
|
+
for (const key of enabledTools) {
|
|
298
|
+
const binary = BINARY_MAP[key];
|
|
299
|
+
const status = toolAvailabilityClassificationFn(key, binary, installedState);
|
|
300
|
+
const item = { status: 'ok', label: `${binary} (${key})`, detail: '' };
|
|
301
|
+
if (status === 'needs-new-terminal') {
|
|
302
|
+
item.status = 'warn';
|
|
303
|
+
item.detail = 'installed via mise; open a new terminal';
|
|
304
|
+
}
|
|
305
|
+
else if (status === 'manual') {
|
|
306
|
+
item.status = 'warn';
|
|
307
|
+
item.detail = 'not managed by mise; install manually';
|
|
308
|
+
}
|
|
309
|
+
else if (status === 'missing') {
|
|
310
|
+
item.status = 'fail';
|
|
311
|
+
item.detail = 'not on PATH — run `mise install` in this project';
|
|
312
|
+
}
|
|
313
|
+
toolItems.push(item);
|
|
181
314
|
}
|
|
182
|
-
else if (status === 'manual') {
|
|
183
|
-
item.status = 'warn';
|
|
184
|
-
item.detail = 'not managed by mise; install manually';
|
|
185
|
-
}
|
|
186
|
-
else if (status === 'missing') {
|
|
187
|
-
item.status = 'fail';
|
|
188
|
-
item.detail = 'not on PATH — run `mise install` in this project';
|
|
189
|
-
}
|
|
190
|
-
toolItems.push(item);
|
|
191
315
|
}
|
|
192
316
|
sections.push({
|
|
193
317
|
title: `Tools (${enabledTools.length} configured)`,
|
|
@@ -195,16 +319,65 @@ function gatherDoctor() {
|
|
|
195
319
|
? toolItems
|
|
196
320
|
: [{ status: 'warn', label: 'none', detail: 'no tools enabled' }],
|
|
197
321
|
});
|
|
198
|
-
//
|
|
322
|
+
// RTK — every agent's hook depends on it, and RTK.md itself warns about a
|
|
323
|
+
// name collision with the unrelated "reachingforthejack/rtk" (Rust Type
|
|
324
|
+
// Kit), so this is worth its own check rather than folding into Tools.
|
|
325
|
+
// The section's presence still only depends on config, not on --section;
|
|
326
|
+
// only the rtk subprocess probing is skippable.
|
|
327
|
+
if (config.rtk?.enabled === true || tools.rtk === true) {
|
|
328
|
+
const rtkItems = [];
|
|
329
|
+
if (wants('RTK')) {
|
|
330
|
+
const rtkInfo = checkRtkInstallationFn(path.dirname(configPath));
|
|
331
|
+
if (!rtkInfo.resolvedPath) {
|
|
332
|
+
rtkItems.push({
|
|
333
|
+
status: 'fail',
|
|
334
|
+
label: 'rtk',
|
|
335
|
+
detail: 'not found via `mise which rtk` or on PATH — run `agentenv apply`',
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
else {
|
|
339
|
+
rtkItems.push({ status: 'ok', label: 'rtk', detail: rtkInfo.resolvedPath });
|
|
340
|
+
const pinned = PINNED_TOOL_VERSIONS.rtk;
|
|
341
|
+
if (rtkInfo.version) {
|
|
342
|
+
const detail = pinned && !rtkInfo.version.includes(pinned)
|
|
343
|
+
? `${rtkInfo.version} (agentenv pins ${pinned})`
|
|
344
|
+
: rtkInfo.version;
|
|
345
|
+
rtkItems.push({ status: 'ok', label: 'version', detail });
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
rtkItems.push({ status: 'warn', label: 'version', detail: '`rtk --version` failed' });
|
|
349
|
+
}
|
|
350
|
+
rtkItems.push({
|
|
351
|
+
status: rtkInfo.gainOk ? 'ok' : 'fail',
|
|
352
|
+
label: 'rtk gain',
|
|
353
|
+
detail: rtkInfo.gainOk
|
|
354
|
+
? 'responds correctly'
|
|
355
|
+
: "failed — this may be the unrelated 'reachingforthejack/rtk' (Rust Type Kit), not agentenv's rtk; see RTK.md",
|
|
356
|
+
});
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
sections.push({ title: 'RTK', items: rtkItems });
|
|
360
|
+
}
|
|
361
|
+
// Agents — the per-agent isAgentInstalled() probes (each a subprocess
|
|
362
|
+
// spawn) are skipped entirely when --section filters elsewhere;
|
|
363
|
+
// the section itself, and its cheap title (just enabled-agent count), are
|
|
364
|
+
// always present.
|
|
199
365
|
const agents = getEnabledAgents(config);
|
|
200
366
|
const agentItems = [];
|
|
201
|
-
|
|
202
|
-
const
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
367
|
+
if (wants('Agents')) {
|
|
368
|
+
for (const agent of agents) {
|
|
369
|
+
const installed = isAgentInstalledFn(agent);
|
|
370
|
+
agentItems.push({
|
|
371
|
+
status: installed ? 'ok' : 'warn',
|
|
372
|
+
label: `${agent} (${AGENT_COMMANDS[agent][0]})`,
|
|
373
|
+
detail: installed
|
|
374
|
+
? ''
|
|
375
|
+
: 'CLI not found on PATH — install it or disable the agent in config',
|
|
376
|
+
});
|
|
377
|
+
if (platform === 'win32' && SHELL_MANAGED_AGENTS.includes(agent)) {
|
|
378
|
+
agentItems.push(agentShellItem(agent, checkAgentShellFn(agent), existsSync));
|
|
379
|
+
}
|
|
380
|
+
}
|
|
208
381
|
}
|
|
209
382
|
sections.push({
|
|
210
383
|
title: `Agents (${agents.length} enabled)`,
|
|
@@ -246,15 +419,16 @@ export const doctorCommand = new Command()
|
|
|
246
419
|
.description('Diagnose the machine: mise, shims, config, tools and agents (read-only)')
|
|
247
420
|
.option('--json', 'emit a machine-readable JSON document on stdout')
|
|
248
421
|
.option('--section <index|name>', 'only run one report section (1-based section index or title prefix)')
|
|
249
|
-
.action((options) => {
|
|
422
|
+
.action((options, command) => {
|
|
250
423
|
const json = options.json === true;
|
|
251
424
|
if (json)
|
|
252
425
|
setQuietEnabled(true);
|
|
253
|
-
const gathered = gatherDoctor();
|
|
426
|
+
const gathered = gatherDoctor(options.section);
|
|
254
427
|
const sections = options.section === undefined ? gathered : filterDoctorSections(gathered, options.section);
|
|
255
428
|
if (sections === undefined) {
|
|
256
|
-
|
|
257
|
-
|
|
429
|
+
// Invalid argument, not an operational failure — docs/guides/exit-codes.md
|
|
430
|
+
// reserves exit 2 for this across every command.
|
|
431
|
+
command.error(`No doctor section matched "${options.section}". Sections: ${gathered.map((section, index) => `${index + 1}: ${section.title}`).join(', ')}`);
|
|
258
432
|
return;
|
|
259
433
|
}
|
|
260
434
|
const payload = doctorToJson(sections);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doctor.js","sourceRoot":"","sources":["../../src/commands/doctor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EACL,OAAO,EACP,IAAI,EACJ,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,cAAc,GACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,WAAW,EACX,2BAA2B,EAC3B,cAAc,EACd,iBAAiB,EACjB,wBAAwB,EACxB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,QAAQ,EACR,cAAc,EACd,8BAA8B,GAC/B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAe3D,MAAM,YAAY,GAAmD;IACnE,EAAE,EAAE,KAAK,CAAC,EAAE;IACZ,IAAI,EAAE,KAAK,CAAC,IAAI;IAChB,IAAI,EAAE,KAAK,CAAC,IAAI;CACjB,CAAC;AASF,MAAM,UAAU,YAAY,CAAC,QAAyB;IACpD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC;IACjG,OAAO;QACL,OAAO,EAAE,QAAQ;QACjB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;QAC/B,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,QAAyB,EACzB,GAAW;IAEX,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC1B,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACtE,OAAO,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAC1C,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAC1D,CAAC;IACF,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,QAAyB,EACzB,UAAwC,EAAE;IAE1C,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,cAAc,KAAK,KAAK,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACtC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC7F,KAAK,CAAC,IAAI,CACR,KAAK,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/F,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,IAAI,CAAC,CAAS;IACrB,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;AAC3D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,aAAiC,EAAE,KAAa;IACjF,IAAI,aAAa,KAAK,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5E,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,CAAC;AACrE,CAAC;AA+BD,kFAAkF;AAClF,MAAM,oBAAoB,GAAe,CAAC,aAAa,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC;AAElF,MAAM,cAAc,GAAG,yCAAyC,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,WAAmB,EACnB,OAAe,EACf,MAAsC,EACtC,UAA8B,OAAO,CAAC,GAAG,CAAC,OAAO;IAEjD,kEAAkE;IAClE,MAAM,OAAO,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7E,MAAM,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI;QAClB,CAAC,CAAC;YACE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC;YACvC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC;SAC7B,CAAC,GAAG,CAAC,OAAO,CAAC;QAChB,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,SAAS;QACX,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClD,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,SAAS;QACpC,IAAI,IAAI,KAAK,MAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;YACvE,SAAS;QACX,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,MAAM,QAAQ,EAAE,CAAC,CAAC;QACvC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,KAAK,GAAG,8BAA8B,CAAC;IAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClD,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,KAAK;YACL,MAAM,EAAE,CAAC,4BAA4B,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;SAC5D,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClG,MAAM,QAAQ,GAAG,2BAA2B,CAAC,WAAW,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACjF,MAAM,SAAS,GAAG,QAAQ,KAAK,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAClG,IAAI,GAAW,CAAC;IAChB,IAAI,SAAS,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACxC,0EAA0E;QAC1E,GAAG,GAAG,yCAAyC,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,4EAA4E,CAAC;IAC3J,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,GAAG,GAAG,OAAO,QAAQ,uEAAuE,CAAC;IAC/F,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,mFAAmF,CAAC;IAC5F,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,EAAE,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AACpF,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,cAAc,CAC5B,KAAe,EACf,IAA+C,EAC/C,MAAsC;IAEtC,MAAM,KAAK,GAAG,GAAG,KAAK,QAAQ,CAAC;IAC/B,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACtC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA6B,cAAc,EAAE,EAAE,CAAC;IAC1F,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,qBAAqB,cAAc,EAAE,EAAE,CAAC;IAC/F,CAAC;IACD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC9D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,MAAM;YACd,KAAK;YACL,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,8EAA8E,QAAQ,MAAM,cAAc,EAAE;SAClI,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,aAAsB,EAAE,OAAyB,EAAE;IAC9E,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC,UAAU,CAAC;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,YAAY,CAAC;IAC1D,MAAM,iBAAiB,GAAG,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC;IAClE,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC;IAC/D,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,IAAI,oBAAoB,CAAC;IACjF,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC;IAC7C,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC;IAC/D,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC;IAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC;IAC5D,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC;IACnD,MAAM,uBAAuB,GAAG,IAAI,CAAC,qBAAqB,IAAI,qBAAqB,CAAC;IACpF,MAAM,gCAAgC,GACpC,IAAI,CAAC,8BAA8B,IAAI,8BAA8B,CAAC;IACxE,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,IAAI,oBAAoB,CAAC;IACjF,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACnD,MAAM,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,IAAI,yBAAyB,CAAC;IAClF,MAAM,iBAAiB,GAAG,IAAI,CAAC,4BAA4B,IAAI,4BAA4B,CAAC;IAE5F,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,MAAM,KAAK,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,kBAAkB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAEnF,eAAe;IACf,MAAM,KAAK,GAAG,aAAa,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAiB;QAC3B,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAI,GAAG,EAAE;KAC/E,CAAC;IACF,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;IAC1E,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9F,IAAI,KAAK,CAAC,WAAW,IAAI,OAAO,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;YAClE,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;YAC9C,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;gBACjC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,WAAW,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE,sEAAsE;aAC/E,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAElD,eAAe;IACf,MAAM,SAAS,GAAiB,EAAE,CAAC;IACnC,IAAI,iBAAiB,EAAE,EAAE,CAAC;QACxB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;SAAM,CAAC;QACN,SAAS,CAAC,IAAI,CAAC;YACb,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;QACH,SAAS,CAAC,IAAI,CAAC;YACb,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,uBAAuB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;SAC5C,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QACnD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,gBAAgB,GAAG,sBAAsB,EAAE,CAAC;IAClD,IAAI,YAAY,GAAkB,IAAI,CAAC;IACvC,IAAI,UAAU,CAAC,gBAAgB,CAAC;QAAE,YAAY,GAAG,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IACzF,MAAM,UAAU,GAAG,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACjF,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACpC,IAAI,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChD,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;SAAM,CAAC;QACN,SAAS,CAAC,IAAI,CAAC;YACb,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,cAAc,UAAU,EAAE,OAAO,gBAAgB,2BAA2B;SACrF,CAAC,CAAC;IACL,CAAC;IACD,SAAS,CAAC,IAAI,CAAC;QACb,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;QAC1C,KAAK,EAAE,eAAe;QACtB,MAAM,EAAE,gBAAgB,EAAE;YACxB,CAAC,CAAC,UAAU,EAAE;YACd,CAAC,CAAC,GAAG,UAAU,EAAE,+CAA+C;KACnE,CAAC,CAAC;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAEnD,SAAS;IACT,MAAM,UAAU,GAAG,gBAAgB,EAAE,CAAC;IACtC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE;gBACL;oBACE,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,eAAe;oBACtB,MAAM,EAAE,gDAAgD;iBACzD;aACF;SACF,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GACT,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAChG,MAAM,WAAW,GAAiB;QAChC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,KAAK,KAAK,SAAS,EAAE;KAC1E,CAAC;IAEF,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,IAAI,CAAC;YACf,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC/D,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;QACvD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC5F,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC;IAEvD,wEAAwE;IACxE,wEAAwE;IACxE,uEAAuE;IACvE,kEAAkE;IAClE,0EAA0E;IAC1E,wDAAwD;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IACjC,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC;IACpE,MAAM,SAAS,GAAiB,EAAE,CAAC;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACnB,qEAAqE;QACrE,yEAAyE;QACzE,gEAAgE;QAChE,MAAM,cAAc,GAAG,uBAAuB,EAAE,CAAC;QACjD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,gCAAgC,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,CAAC,CAAC;YAC7E,MAAM,IAAI,GAAe,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,GAAG,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACnF,IAAI,MAAM,KAAK,oBAAoB,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;gBACrB,IAAI,CAAC,MAAM,GAAG,yCAAyC,CAAC;YAC1D,CAAC;iBAAM,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;gBACrB,IAAI,CAAC,MAAM,GAAG,uCAAuC,CAAC;YACxD,CAAC;iBAAM,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;gBACrB,IAAI,CAAC,MAAM,GAAG,kDAAkD,CAAC;YACnE,CAAC;YACD,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC;QACZ,KAAK,EAAE,UAAU,YAAY,CAAC,MAAM,cAAc;QAClD,KAAK,EACH,SAAS,CAAC,MAAM,GAAG,CAAC;YAClB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC;KACtE,CAAC,CAAC;IAEH,0EAA0E;IAC1E,wEAAwE;IACxE,uEAAuE;IACvE,yEAAyE;IACzE,gDAAgD;IAChD,IAAI,MAAM,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;QACvD,MAAM,QAAQ,GAAiB,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACjB,MAAM,OAAO,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;YACjE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;gBAC1B,QAAQ,CAAC,IAAI,CAAC;oBACZ,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,kEAAkE;iBAC3E,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;gBAC5E,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC;gBACxC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpB,MAAM,MAAM,GACV,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;wBACzC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,mBAAmB,MAAM,GAAG;wBAChD,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;oBACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,wBAAwB,EAAE,CAAC,CAAC;gBACxF,CAAC;gBACD,QAAQ,CAAC,IAAI,CAAC;oBACZ,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;oBACtC,KAAK,EAAE,UAAU;oBACjB,MAAM,EAAE,OAAO,CAAC,MAAM;wBACpB,CAAC,CAAC,oBAAoB;wBACtB,CAAC,CAAC,6GAA6G;iBAClH,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,sEAAsE;IACtE,gEAAgE;IAChE,0EAA0E;IAC1E,kBAAkB;IAClB,MAAM,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,UAAU,GAAiB,EAAE,CAAC;IACpC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,kBAAkB,CAAC,KAAiB,CAAC,CAAC;YACxD,UAAU,CAAC,IAAI,CAAC;gBACd,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;gBACjC,KAAK,EAAE,GAAG,KAAK,KAAK,cAAc,CAAC,KAAiB,CAAC,CAAC,CAAC,CAAC,GAAG;gBAC3D,MAAM,EAAE,SAAS;oBACf,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,mEAAmE;aACxE,CAAC,CAAC;YACH,IAAI,QAAQ,KAAK,OAAO,IAAI,oBAAoB,CAAC,QAAQ,CAAC,KAAiB,CAAC,EAAE,CAAC;gBAC7E,UAAU,CAAC,IAAI,CACb,cAAc,CAAC,KAAiB,EAAE,iBAAiB,CAAC,KAAiB,CAAC,EAAE,UAAU,CAAC,CACpF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC;QACZ,KAAK,EAAE,WAAW,MAAM,CAAC,MAAM,WAAW;QAC1C,KAAK,EACH,UAAU,CAAC,MAAM,GAAG,CAAC;YACnB,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC;KACvE,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,aAAa,CAAC,OAAmB;IACxC,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACvC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACjC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;gBAAE,SAAS,IAAI,CAAC,CAAC;iBACtC,IAAI,IAAI,CAAC,MAAM,KAAK,MAAM;gBAAE,SAAS,IAAI,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO;YACL,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,GAAG,SAAS,WAAW,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,QAAQ;YACnE,OAAO,EAAE,8DAA8D;SACxE,CAAC;IACJ,CAAC;IACD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO;YACL,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,sBAAsB;YAChC,OAAO,EAAE,GAAG,SAAS,WAAW,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,0BAA0B;SACrF,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,EAAE;KACvC,IAAI,CAAC,QAAQ,CAAC;KACd,WAAW,CAAC,yEAAyE,CAAC;KACtF,MAAM,CAAC,QAAQ,EAAE,iDAAiD,CAAC;KACnE,MAAM,CACL,wBAAwB,EACxB,qEAAqE,CACtE;KACA,MAAM,CAAC,CAAC,OAA6C,EAAE,OAAgB,EAAE,EAAE;IAC1E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC;IACnC,IAAI,IAAI;QAAE,eAAe,CAAC,IAAI,CAAC,CAAC;IAEhC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,QAAQ,GACZ,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7F,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,2EAA2E;QAC3E,iDAAiD;QACjD,OAAO,CAAC,KAAK,CACX,8BAA8B,OAAO,CAAC,OAAO,gBAAgB,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7I,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE;YACpC,cAAc,EAAE,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC;SAC5E,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC;QAAE,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC"}
|
package/dist/commands/setup.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ export interface SaveAndApplyDeps {
|
|
|
19
19
|
successMessage?: string;
|
|
20
20
|
/** Epoch ms the whole command started, for the end-of-run timing line. */
|
|
21
21
|
startedAt?: number;
|
|
22
|
+
/** Generate files only — no `mise install`, no verification. */
|
|
23
|
+
skipMiseInstall?: boolean;
|
|
22
24
|
}
|
|
23
25
|
/** Save the config and apply it, mirroring the shared setup tail. */
|
|
24
26
|
export declare function saveAndApply(config: AgentenvConfig, file: string, deps?: SaveAndApplyDeps): Promise<void>;
|
|
@@ -34,6 +36,8 @@ interface SetupCommandOptions {
|
|
|
34
36
|
export interface UnattendedSetupDeps extends SaveAndApplyDeps {
|
|
35
37
|
misePrereqCheckDeps?: MisePrereqCheckDeps;
|
|
36
38
|
}
|
|
39
|
+
/** --scope only steers unattended (--yes) setup; the interactive wizard has no scope prompt yet. */
|
|
40
|
+
export declare function interactiveScopeIgnoredWarning(scope: ScopeValue | undefined): string | undefined;
|
|
37
41
|
/**
|
|
38
42
|
* Unattended, single-command setup: `agentenv setup --yes`. Resolves the
|
|
39
43
|
* configuration from, in priority order:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,OAAO,KAAK,EAAY,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAmBhD,UAAU,mBAAmB;IAC3B,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAavE;AAED,MAAM,WAAW,gBAAgB;IAC/B,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,OAAO,kBAAkB,CAAC;IAC/C,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,qEAAqE;AACrE,wBAAsB,YAAY,CAChC,MAAM,EAAE,cAAc,EACtB,IAAI,EAAE,MAAM,EACZ,IAAI,GAAE,gBAAqB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAoCf;AAED,UAAU,mBAAmB;IAC3B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;CAC3C;AAeD,oGAAoG;AACpG,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAMhG;AAaD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,mBAAmB,EAC5B,IAAI,GAAE,mBAAwB,GAC7B,OAAO,CAAC,IAAI,CAAC,CA8Gf;AAED,eAAO,MAAM,YAAY,SA6BrB,CAAC"}
|
package/dist/commands/setup.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import * as fs from 'fs';
|
|
3
|
+
import * as path from 'path';
|
|
3
4
|
import { detectInstalledAgents } from '../adapters/detect.js';
|
|
4
5
|
import { loadConfig, saveConfig, validateConfig } from '../config/schema.js';
|
|
5
|
-
import { configFilePath, findConfigPath, parseScopeFlag
|
|
6
|
+
import { configFilePath, findConfigPath, parseScopeFlag } from '../config/scopes.js';
|
|
6
7
|
import { applyConfiguration } from './apply.js';
|
|
7
8
|
import { runConfigWizard } from './wizard.js';
|
|
8
9
|
import { AGENT_OPTIONS, buildDefaultSimpleConfig, parseAgentsInput } from '../wizard/build.js';
|
|
@@ -40,10 +41,15 @@ export async function saveAndApply(config, file, deps = {}) {
|
|
|
40
41
|
saveConfig(config, file);
|
|
41
42
|
console.log(`Saved configuration: ${file}\n`);
|
|
42
43
|
const apply = deps.applyConfiguration ?? applyConfiguration;
|
|
44
|
+
// `file` is always the actual agentenv.toml being applied — including when
|
|
45
|
+
// findConfigPath()'s upward search (FEAT-05) found it in an ancestor
|
|
46
|
+
// directory — so its own directory is the base dir, not a re-derivation
|
|
47
|
+
// from config.scope that assumes cwd for "project".
|
|
43
48
|
const result = await withSpinner('Applying configuration...', (spinner) =>
|
|
44
49
|
// setup already printed the prereq line above, so tell apply not to repeat it.
|
|
45
|
-
apply(config,
|
|
50
|
+
apply(config, path.dirname(file), {
|
|
46
51
|
skipPrereqMessage: true,
|
|
52
|
+
skipMiseInstall: deps.skipMiseInstall,
|
|
47
53
|
onMiseInstall: {
|
|
48
54
|
onStart: () => {
|
|
49
55
|
spinner.stop();
|
|
@@ -62,6 +68,34 @@ export async function saveAndApply(config, file, deps = {}) {
|
|
|
62
68
|
}
|
|
63
69
|
printResult('ok', deps.successMessage ?? 'Setup complete!', undefined, elapsedMs);
|
|
64
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* `--agents`/`--superpowers` only take effect when unattendedSetup builds a
|
|
73
|
+
* fresh default config; reusing an existing agentenv.toml (the common case)
|
|
74
|
+
* applies it as-is, silently dropping whatever the caller typed unless we
|
|
75
|
+
* say so here.
|
|
76
|
+
*/
|
|
77
|
+
function ignoredUnattendedFlags(options) {
|
|
78
|
+
const ignored = [];
|
|
79
|
+
if (options.agents !== undefined)
|
|
80
|
+
ignored.push('--agents');
|
|
81
|
+
if (options.superpowers !== undefined)
|
|
82
|
+
ignored.push('--superpowers');
|
|
83
|
+
return ignored;
|
|
84
|
+
}
|
|
85
|
+
/** --scope only steers unattended (--yes) setup; the interactive wizard has no scope prompt yet. */
|
|
86
|
+
export function interactiveScopeIgnoredWarning(scope) {
|
|
87
|
+
if (scope === undefined)
|
|
88
|
+
return undefined;
|
|
89
|
+
return (`--scope is ignored by the interactive wizard (only --yes uses it); ` +
|
|
90
|
+
`run \`agentenv setup --yes --scope ${scope}\` for unattended setup at that scope.`);
|
|
91
|
+
}
|
|
92
|
+
function warnIgnoredFlags(options, file) {
|
|
93
|
+
const ignored = ignoredUnattendedFlags(options);
|
|
94
|
+
if (ignored.length === 0)
|
|
95
|
+
return;
|
|
96
|
+
console.warn(theme.warn(`Note: reusing the existing config at ${file}; ignoring ${ignored.join(', ')} ` +
|
|
97
|
+
`(edit the file directly to change ${ignored.length === 1 ? 'it' : 'them'}).`));
|
|
98
|
+
}
|
|
65
99
|
/**
|
|
66
100
|
* Unattended, single-command setup: `agentenv setup --yes`. Resolves the
|
|
67
101
|
* configuration from, in priority order:
|
|
@@ -82,7 +116,7 @@ export async function unattendedSetup(options, deps = {}) {
|
|
|
82
116
|
let file;
|
|
83
117
|
if (options.config) {
|
|
84
118
|
try {
|
|
85
|
-
config = loadConfig(options.config);
|
|
119
|
+
config = loadConfig(options.config, { layerUserConfig: true });
|
|
86
120
|
}
|
|
87
121
|
catch (error) {
|
|
88
122
|
console.error(theme.fail(error instanceof Error ? error.message : String(error)));
|
|
@@ -102,12 +136,20 @@ export async function unattendedSetup(options, deps = {}) {
|
|
|
102
136
|
file = configFilePath(scope);
|
|
103
137
|
if (fs.existsSync(file)) {
|
|
104
138
|
printConfigPath(file);
|
|
105
|
-
|
|
139
|
+
try {
|
|
140
|
+
config = loadConfig(file, { layerUserConfig: true });
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
console.error(theme.fail(error instanceof Error ? error.message : String(error)));
|
|
144
|
+
process.exitCode = 1;
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
106
147
|
const report = validateConfig(config);
|
|
107
148
|
if (!reportValidation(report, 'Configuration invalid — not applying.')) {
|
|
108
149
|
process.exitCode = 1;
|
|
109
150
|
return;
|
|
110
151
|
}
|
|
152
|
+
warnIgnoredFlags(options, file);
|
|
111
153
|
}
|
|
112
154
|
else if (options.scope === undefined) {
|
|
113
155
|
// No config at the preferred scope and the user didn't ask for a
|
|
@@ -117,12 +159,20 @@ export async function unattendedSetup(options, deps = {}) {
|
|
|
117
159
|
if (nearest) {
|
|
118
160
|
printConfigPath(nearest);
|
|
119
161
|
file = nearest;
|
|
120
|
-
|
|
162
|
+
try {
|
|
163
|
+
config = loadConfig(nearest, { layerUserConfig: true });
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
console.error(theme.fail(error instanceof Error ? error.message : String(error)));
|
|
167
|
+
process.exitCode = 1;
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
121
170
|
const report = validateConfig(config);
|
|
122
171
|
if (!reportValidation(report, 'Configuration invalid — not applying.')) {
|
|
123
172
|
process.exitCode = 1;
|
|
124
173
|
return;
|
|
125
174
|
}
|
|
175
|
+
warnIgnoredFlags(options, file);
|
|
126
176
|
}
|
|
127
177
|
}
|
|
128
178
|
if (config === undefined) {
|
|
@@ -180,6 +230,9 @@ export const setupCommand = new Command()
|
|
|
180
230
|
await unattendedSetup({ ...options, scope: scope.scope });
|
|
181
231
|
return;
|
|
182
232
|
}
|
|
233
|
+
const scopeWarning = interactiveScopeIgnoredWarning(scope.scope);
|
|
234
|
+
if (scopeWarning)
|
|
235
|
+
console.warn(theme.warn(scopeWarning));
|
|
183
236
|
await runConfigWizard();
|
|
184
237
|
});
|
|
185
238
|
//# sourceMappingURL=setup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|