@indy2kro/agentenv 0.3.1 → 0.4.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/README.md +1 -0
- package/dist/commands/apply.d.ts +2 -0
- package/dist/commands/apply.d.ts.map +1 -1
- package/dist/commands/apply.js +16 -18
- package/dist/commands/apply.js.map +1 -1
- package/dist/commands/setup.d.ts +2 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +13 -21
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/shell-fix.d.ts +29 -0
- package/dist/commands/shell-fix.d.ts.map +1 -0
- package/dist/commands/shell-fix.js +107 -0
- package/dist/commands/shell-fix.js.map +1 -0
- package/dist/commands/uninstall.d.ts.map +1 -1
- package/dist/commands/uninstall.js +11 -17
- package/dist/commands/uninstall.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +12 -11
- package/dist/commands/update.js.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/shell/detector.d.ts +26 -1
- package/dist/shell/detector.d.ts.map +1 -1
- package/dist/shell/detector.js +235 -1
- package/dist/shell/detector.js.map +1 -1
- package/dist/shell/shell-fix-state.d.ts +43 -0
- package/dist/shell/shell-fix-state.d.ts.map +1 -0
- package/dist/shell/shell-fix-state.js +70 -0
- package/dist/shell/shell-fix-state.js.map +1 -0
- package/dist/toolchain/mise.d.ts +63 -17
- package/dist/toolchain/mise.d.ts.map +1 -1
- package/dist/toolchain/mise.js +109 -26
- package/dist/toolchain/mise.js.map +1 -1
- package/dist/ui/report.d.ts +35 -0
- package/dist/ui/report.d.ts.map +1 -0
- package/dist/ui/report.js +64 -0
- package/dist/ui/report.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.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,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAuB,MAAM,qBAAqB,CAAC;AAClG,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,GAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuQpC,eAAO,MAAM,aAAa,SASP,CAAC"}
|
package/dist/commands/update.js
CHANGED
|
@@ -4,9 +4,11 @@ import * as path from 'path';
|
|
|
4
4
|
import { loadConfig, validateConfig } from '../config/schema.js';
|
|
5
5
|
import { configFilePath, findConfigPath, resolveScopeDir } from '../config/scopes.js';
|
|
6
6
|
import { ensureGlobalShimsDir, getMiseVersion, getUpgradeableTools, isMiseInstalled, miseActivationHint, miseInstallInstructions, runMiseSelfUpdate, runMiseUpgrade, shimsDir, shimsDirOnPath, toolAvailabilityLine, trustMiseToml, verifyHintNeeded, verifySummaryLine, verifyToolAvailability, } from '../toolchain/mise.js';
|
|
7
|
-
import { renderLogo
|
|
7
|
+
import { renderLogo } from '../ui/output.js';
|
|
8
|
+
import { printConfigPath, printResult, reportValidation } from '../ui/report.js';
|
|
8
9
|
import { normalizeOutput } from '../utils/output.js';
|
|
9
10
|
async function doUpdate(options) {
|
|
11
|
+
const startedAt = Date.now();
|
|
10
12
|
if (!isMiseInstalled()) {
|
|
11
13
|
console.error('agentenv update requires mise, but mise was not found.');
|
|
12
14
|
for (const line of miseInstallInstructions())
|
|
@@ -34,7 +36,7 @@ async function doUpdate(options) {
|
|
|
34
36
|
return;
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
|
-
|
|
39
|
+
printConfigPath(configPath);
|
|
38
40
|
let config;
|
|
39
41
|
try {
|
|
40
42
|
config = loadConfig(configPath);
|
|
@@ -45,11 +47,7 @@ async function doUpdate(options) {
|
|
|
45
47
|
return;
|
|
46
48
|
}
|
|
47
49
|
const report = validateConfig(config);
|
|
48
|
-
|
|
49
|
-
console.log(`warning: ${warning}`);
|
|
50
|
-
if (report.errors.length > 0) {
|
|
51
|
-
for (const error of report.errors)
|
|
52
|
-
console.error(`error: ${error}`);
|
|
50
|
+
if (!reportValidation(report, 'Configuration invalid — not applying.')) {
|
|
53
51
|
process.exitCode = 1;
|
|
54
52
|
return;
|
|
55
53
|
}
|
|
@@ -134,7 +132,10 @@ async function doUpdate(options) {
|
|
|
134
132
|
failed = true;
|
|
135
133
|
}
|
|
136
134
|
}
|
|
137
|
-
const availability = verifyToolAvailability(config
|
|
135
|
+
const availability = verifyToolAvailability(config, {
|
|
136
|
+
cwd: scopeDir,
|
|
137
|
+
miseTomlPath: path.join(scopeDir, 'mise.toml'),
|
|
138
|
+
});
|
|
138
139
|
console.log(` ${verifySummaryLine(availability)}`);
|
|
139
140
|
for (const tool of availability)
|
|
140
141
|
console.log(` ${toolAvailabilityLine(tool)}`);
|
|
@@ -149,13 +150,13 @@ async function doUpdate(options) {
|
|
|
149
150
|
}
|
|
150
151
|
if (failed) {
|
|
151
152
|
process.exitCode = 1;
|
|
152
|
-
|
|
153
|
+
printResult('fail', 'Update failed', 'one or more tools could not be upgraded — see the messages above', Date.now() - startedAt);
|
|
153
154
|
}
|
|
154
155
|
else if (dryRun) {
|
|
155
|
-
|
|
156
|
+
printResult('ok', 'Dry run complete', 'no changes were made', Date.now() - startedAt);
|
|
156
157
|
}
|
|
157
158
|
else {
|
|
158
|
-
|
|
159
|
+
printResult('ok', 'Update complete!', 'tools are up to date', Date.now() - startedAt);
|
|
159
160
|
}
|
|
160
161
|
// Optional file watching mode
|
|
161
162
|
if (options.watch && doTools) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.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,UAAU,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAEjE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtF,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -12,6 +12,7 @@ import { updateCommand } from './commands/update.js';
|
|
|
12
12
|
import { doctorCommand } from './commands/doctor.js';
|
|
13
13
|
import { uninstallCommand } from './commands/uninstall.js';
|
|
14
14
|
import { completionCommand } from './commands/completion.js';
|
|
15
|
+
import { shellFixCommand } from './commands/shell-fix.js';
|
|
15
16
|
import { setColorEnabled } from './ui/theme.js';
|
|
16
17
|
import { setQuietEnabled } from './ui/output.js';
|
|
17
18
|
import { installExitOverride } from './cli/exit.js';
|
|
@@ -42,6 +43,7 @@ program.addCommand(updateCommand);
|
|
|
42
43
|
program.addCommand(doctorCommand);
|
|
43
44
|
program.addCommand(uninstallCommand);
|
|
44
45
|
program.addCommand(completionCommand);
|
|
46
|
+
program.addCommand(shellFixCommand);
|
|
45
47
|
// After addCommand, so the override is installed on every subcommand too.
|
|
46
48
|
installExitOverride(program);
|
|
47
49
|
program.parseAsync(process.argv).catch((error) => {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAEnG,iBAAiB;AACjB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,wEAAwE,CAAC;KACrF,OAAO,CAAC,OAAO,CAAC;KAChB,wBAAwB,EAAE;KAC1B,MAAM,CAAC,YAAY,EAAE,2DAA2D,CAAC;KACjF,MAAM,CAAC,aAAa,EAAE,qDAAqD,CAAC;KAC5E,MAAM,CAAC,SAAS,EAAE,gEAAgE,CAAC,CAAC;AAEvF,yEAAyE;AACzE,6EAA6E;AAC7E,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,aAAa,EAAE,EAAE;IACxD,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,eAAe,EAAwC,CAAC;IAC/F,IAAI,KAAK,KAAK,KAAK;QAAE,eAAe,CAAC,KAAK,CAAC,CAAC;IAC5C,eAAe,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;AAClC,CAAC,CAAC,CAAC;AAEH,eAAe;AACf,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/shell/detector.d.ts
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Detects the shell environment and ensures POSIX compatibility on Windows
|
|
4
4
|
*/
|
|
5
5
|
import type { AgentKey } from '../config/schema.js';
|
|
6
|
+
import { type ShellFixStateEntry } from './shell-fix-state.js';
|
|
6
7
|
export declare const POSIX_UTILITIES: string[];
|
|
7
8
|
export declare const GIT_BASH_PATHS: string[];
|
|
8
9
|
export interface ShellInfo {
|
|
@@ -50,6 +51,15 @@ export interface ShellFixResult {
|
|
|
50
51
|
file: string;
|
|
51
52
|
action: ShellFixAction;
|
|
52
53
|
message: string;
|
|
54
|
+
/** Present for created/updated writes: the record used by `shell-fix --revert`. */
|
|
55
|
+
state?: ShellFixStateEntry;
|
|
56
|
+
}
|
|
57
|
+
export type ShellFixRevertAction = 'removed' | 'reverted' | 'skipped' | 'absent';
|
|
58
|
+
export interface ShellFixRevertResult {
|
|
59
|
+
agent: AgentKey;
|
|
60
|
+
file: string;
|
|
61
|
+
action: ShellFixRevertAction;
|
|
62
|
+
message: string;
|
|
53
63
|
}
|
|
54
64
|
/**
|
|
55
65
|
* Resolve the full path to bash.exe from a detected Git Bash directory.
|
|
@@ -74,7 +84,7 @@ export declare function applyAgentShellFix(agent: AgentKey, bashExe: string, hom
|
|
|
74
84
|
* Fix shell configuration for Windows and macOS
|
|
75
85
|
* This is a Tier 0 fix - ensures POSIX utilities are available
|
|
76
86
|
*/
|
|
77
|
-
export declare function fixShellConfiguration(_baseDir?: string, agents?: AgentKey[], complex?: boolean): {
|
|
87
|
+
export declare function fixShellConfiguration(_baseDir?: string, agents?: AgentKey[], complex?: boolean, statePath?: string): {
|
|
78
88
|
success: boolean;
|
|
79
89
|
message: string;
|
|
80
90
|
gitBashPath?: string;
|
|
@@ -95,4 +105,19 @@ export declare function checkAgentShellConfiguration(agent: AgentKey, home?: str
|
|
|
95
105
|
shell?: string;
|
|
96
106
|
needsFix: boolean;
|
|
97
107
|
};
|
|
108
|
+
/**
|
|
109
|
+
* Remove the `shell_path` line that setTomlWindowsShellPath writes and, if that
|
|
110
|
+
* leaves the `[windows]` section empty, the section header too. Returns the
|
|
111
|
+
* content unchanged when no `shell_path` line is present.
|
|
112
|
+
*/
|
|
113
|
+
export declare function removeTomlWindowsShellPath(content: string): string;
|
|
114
|
+
/**
|
|
115
|
+
* Undo the Tier 0 agent shell fixes recorded by previous applies. Each entry is
|
|
116
|
+
* reverted only when the file still holds the value agentenv set; a value the
|
|
117
|
+
* user changed afterwards is left untouched and reported as skipped, and the
|
|
118
|
+
* manifest retains that entry so a later run can retry. Clears the manifest
|
|
119
|
+
* once nothing is left to revert. With `dryRun`, reports what it would do
|
|
120
|
+
* without touching any file or the manifest.
|
|
121
|
+
*/
|
|
122
|
+
export declare function revertShellFixes(statePath?: string, dryRun?: boolean): ShellFixRevertResult[];
|
|
98
123
|
//# sourceMappingURL=detector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/shell/detector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/shell/detector.ts"],"names":[],"mappings":"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"}
|
package/dist/shell/detector.js
CHANGED
|
@@ -8,6 +8,7 @@ import * as winPath from 'path/win32';
|
|
|
8
8
|
import * as child_process from 'child_process';
|
|
9
9
|
import { AGENT_KEYS } from '../config/schema.js';
|
|
10
10
|
import { pathContainsDir } from '../toolchain/mise.js';
|
|
11
|
+
import { clearShellFixState, mergeShellFixEntries, readShellFixState, shellFixStatePath, writeShellFixState, } from './shell-fix-state.js';
|
|
11
12
|
// Well-known POSIX utilities that should be available
|
|
12
13
|
export const POSIX_UTILITIES = [
|
|
13
14
|
'grep',
|
|
@@ -354,6 +355,9 @@ export function generateMacOSGNUPathAddition(gnubinPath) {
|
|
|
354
355
|
}
|
|
355
356
|
// Export the installation function for use by other modules
|
|
356
357
|
export { installGNUCoreutilsMacOS };
|
|
358
|
+
function priorField(key, previous) {
|
|
359
|
+
return { key, previous };
|
|
360
|
+
}
|
|
357
361
|
/**
|
|
358
362
|
* Resolve the full path to bash.exe from a detected Git Bash directory.
|
|
359
363
|
* Handles both the `usr\bin` form and the plain `bin` form Git for Windows ships.
|
|
@@ -420,6 +424,12 @@ function patchClaudeShellFix(bashExe, home) {
|
|
|
420
424
|
file,
|
|
421
425
|
action: 'created',
|
|
422
426
|
message: `Set CLAUDE_CODE_GIT_BASH_PATH in ${file}`,
|
|
427
|
+
state: {
|
|
428
|
+
agent: 'claude_code',
|
|
429
|
+
file,
|
|
430
|
+
createdFile: true,
|
|
431
|
+
fields: [priorField('env.CLAUDE_CODE_GIT_BASH_PATH', null)],
|
|
432
|
+
},
|
|
423
433
|
};
|
|
424
434
|
}
|
|
425
435
|
try {
|
|
@@ -438,6 +448,7 @@ function patchClaudeShellFix(bashExe, home) {
|
|
|
438
448
|
if (env[bashKey] === bashExe) {
|
|
439
449
|
return { agent: 'claude_code', file, action: 'unchanged', message: `Already set in ${file}` };
|
|
440
450
|
}
|
|
451
|
+
const previous = typeof env[bashKey] === 'string' ? env[bashKey] : null;
|
|
441
452
|
env[bashKey] = bashExe;
|
|
442
453
|
settings.env = env;
|
|
443
454
|
fs.writeFileSync(file, JSON.stringify(settings, null, 2));
|
|
@@ -446,6 +457,12 @@ function patchClaudeShellFix(bashExe, home) {
|
|
|
446
457
|
file,
|
|
447
458
|
action: 'updated',
|
|
448
459
|
message: `Set CLAUDE_CODE_GIT_BASH_PATH in ${file}`,
|
|
460
|
+
state: {
|
|
461
|
+
agent: 'claude_code',
|
|
462
|
+
file,
|
|
463
|
+
createdFile: false,
|
|
464
|
+
fields: [priorField('env.CLAUDE_CODE_GIT_BASH_PATH', previous)],
|
|
465
|
+
},
|
|
449
466
|
};
|
|
450
467
|
}
|
|
451
468
|
function patchCodexShellFix(bashExe, home) {
|
|
@@ -459,6 +476,12 @@ function patchCodexShellFix(bashExe, home) {
|
|
|
459
476
|
file,
|
|
460
477
|
action: 'created',
|
|
461
478
|
message: `Set [windows] shell_path in ${file}`,
|
|
479
|
+
state: {
|
|
480
|
+
agent: 'codex_cli',
|
|
481
|
+
file,
|
|
482
|
+
createdFile: true,
|
|
483
|
+
fields: [priorField('[windows].shell_path', null)],
|
|
484
|
+
},
|
|
462
485
|
};
|
|
463
486
|
}
|
|
464
487
|
const original = fs.readFileSync(file, 'utf-8');
|
|
@@ -472,6 +495,12 @@ function patchCodexShellFix(bashExe, home) {
|
|
|
472
495
|
file,
|
|
473
496
|
action: 'updated',
|
|
474
497
|
message: `Set [windows] shell_path in ${file}`,
|
|
498
|
+
state: {
|
|
499
|
+
agent: 'codex_cli',
|
|
500
|
+
file,
|
|
501
|
+
createdFile: false,
|
|
502
|
+
fields: [priorField('[windows].shell_path', readTomlWindowsShellPath(original) ?? null)],
|
|
503
|
+
},
|
|
475
504
|
};
|
|
476
505
|
}
|
|
477
506
|
function patchOpenCodeShellFix(bashExe, home) {
|
|
@@ -484,6 +513,12 @@ function patchOpenCodeShellFix(bashExe, home) {
|
|
|
484
513
|
file,
|
|
485
514
|
action: 'created',
|
|
486
515
|
message: `Set shell/defaultShell in ${file}`,
|
|
516
|
+
state: {
|
|
517
|
+
agent: 'opencode',
|
|
518
|
+
file,
|
|
519
|
+
createdFile: true,
|
|
520
|
+
fields: [priorField('shell', null), priorField('defaultShell', null)],
|
|
521
|
+
},
|
|
487
522
|
};
|
|
488
523
|
}
|
|
489
524
|
let config;
|
|
@@ -501,6 +536,8 @@ function patchOpenCodeShellFix(bashExe, home) {
|
|
|
501
536
|
if (config.shell === bashExe && config.defaultShell === bashExe) {
|
|
502
537
|
return { agent: 'opencode', file, action: 'unchanged', message: `Already set in ${file}` };
|
|
503
538
|
}
|
|
539
|
+
const priorShell = typeof config.shell === 'string' ? config.shell : null;
|
|
540
|
+
const priorDefault = typeof config.defaultShell === 'string' ? config.defaultShell : null;
|
|
504
541
|
config.shell = bashExe;
|
|
505
542
|
config.defaultShell = bashExe;
|
|
506
543
|
fs.writeFileSync(file, JSON.stringify(config, null, 2));
|
|
@@ -509,6 +546,12 @@ function patchOpenCodeShellFix(bashExe, home) {
|
|
|
509
546
|
file,
|
|
510
547
|
action: 'updated',
|
|
511
548
|
message: `Set shell/defaultShell in ${file}`,
|
|
549
|
+
state: {
|
|
550
|
+
agent: 'opencode',
|
|
551
|
+
file,
|
|
552
|
+
createdFile: false,
|
|
553
|
+
fields: [priorField('shell', priorShell), priorField('defaultShell', priorDefault)],
|
|
554
|
+
},
|
|
512
555
|
};
|
|
513
556
|
}
|
|
514
557
|
/**
|
|
@@ -538,11 +581,29 @@ function setTomlWindowsShellPath(content, valueLine) {
|
|
|
538
581
|
lines.splice(windowsSectionIndex + 1, 0, valueLine);
|
|
539
582
|
return lines.join('\n');
|
|
540
583
|
}
|
|
584
|
+
/**
|
|
585
|
+
* Persist the revert records for the files an apply actually changed. Best
|
|
586
|
+
* effort: a failure to record must never fail the apply itself.
|
|
587
|
+
*/
|
|
588
|
+
function recordShellFixState(results, bashExe, statePath) {
|
|
589
|
+
const entries = results
|
|
590
|
+
.map((result) => result.state)
|
|
591
|
+
.filter((entry) => entry !== undefined);
|
|
592
|
+
if (entries.length === 0)
|
|
593
|
+
return;
|
|
594
|
+
try {
|
|
595
|
+
const existing = readShellFixState(statePath);
|
|
596
|
+
writeShellFixState(mergeShellFixEntries(existing, entries, bashExe), statePath);
|
|
597
|
+
}
|
|
598
|
+
catch {
|
|
599
|
+
// Recording is advisory; the fix itself already succeeded.
|
|
600
|
+
}
|
|
601
|
+
}
|
|
541
602
|
/**
|
|
542
603
|
* Fix shell configuration for Windows and macOS
|
|
543
604
|
* This is a Tier 0 fix - ensures POSIX utilities are available
|
|
544
605
|
*/
|
|
545
|
-
export function fixShellConfiguration(_baseDir = '.', agents = [...AGENT_KEYS], complex = process.stdin.isTTY === true) {
|
|
606
|
+
export function fixShellConfiguration(_baseDir = '.', agents = [...AGENT_KEYS], complex = process.stdin.isTTY === true, statePath = shellFixStatePath()) {
|
|
546
607
|
if (process.platform === 'win32') {
|
|
547
608
|
const shellInfo = detectShell();
|
|
548
609
|
if (shellInfo.isPosixCompatible) {
|
|
@@ -570,6 +631,7 @@ export function fixShellConfiguration(_baseDir = '.', agents = [...AGENT_KEYS],
|
|
|
570
631
|
const home = process.env.HOME || process.env.USERPROFILE || '';
|
|
571
632
|
const results = agents.map((agent) => applyAgentShellFix(agent, bashExe, home));
|
|
572
633
|
const written = results.filter((result) => result.action === 'created' || result.action === 'updated');
|
|
634
|
+
recordShellFixState(written, bashExe, statePath);
|
|
573
635
|
const message = written.length > 0
|
|
574
636
|
? `Current shell (${shellInfo.currentShell}) is not POSIX-compatible; pointed agents at Git Bash (${bashExe})`
|
|
575
637
|
: `Git Bash detected at ${bashExe}; agent shell config already up to date`;
|
|
@@ -752,4 +814,176 @@ function checkOpenCodeShell(home) {
|
|
|
752
814
|
return { isConfigured: false, needsFix: true };
|
|
753
815
|
}
|
|
754
816
|
}
|
|
817
|
+
/**
|
|
818
|
+
* Remove the `shell_path` line that setTomlWindowsShellPath writes and, if that
|
|
819
|
+
* leaves the `[windows]` section empty, the section header too. Returns the
|
|
820
|
+
* content unchanged when no `shell_path` line is present.
|
|
821
|
+
*/
|
|
822
|
+
export function removeTomlWindowsShellPath(content) {
|
|
823
|
+
const lines = content.split(/\r?\n/);
|
|
824
|
+
const shellPathIndex = lines.findIndex((line) => /^shell_path\s*=/.test(line.trim()));
|
|
825
|
+
if (shellPathIndex === -1)
|
|
826
|
+
return content;
|
|
827
|
+
lines.splice(shellPathIndex, 1);
|
|
828
|
+
const headerIndex = lines.findIndex((line) => line.trim() === '[windows]');
|
|
829
|
+
if (headerIndex !== -1) {
|
|
830
|
+
let empty = true;
|
|
831
|
+
for (let i = headerIndex + 1; i < lines.length; i++) {
|
|
832
|
+
const trimmed = lines[i].trim();
|
|
833
|
+
if (/^\[.*]$/.test(trimmed))
|
|
834
|
+
break;
|
|
835
|
+
if (trimmed !== '') {
|
|
836
|
+
empty = false;
|
|
837
|
+
break;
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
if (empty)
|
|
841
|
+
lines.splice(headerIndex, 1);
|
|
842
|
+
}
|
|
843
|
+
while (lines.length > 0 && lines[lines.length - 1].trim() === '')
|
|
844
|
+
lines.pop();
|
|
845
|
+
return lines.length > 0 ? `${lines.join('\n')}\n` : '';
|
|
846
|
+
}
|
|
847
|
+
function revertResult(entry, action, message) {
|
|
848
|
+
return { agent: entry.agent, file: entry.file, action, message };
|
|
849
|
+
}
|
|
850
|
+
function restoreClaudeShellFix(entry, bashExe, dryRun) {
|
|
851
|
+
if (!fs.existsSync(entry.file)) {
|
|
852
|
+
return revertResult(entry, 'absent', `${entry.file} is already gone`);
|
|
853
|
+
}
|
|
854
|
+
let settings;
|
|
855
|
+
try {
|
|
856
|
+
settings = JSON.parse(fs.readFileSync(entry.file, 'utf-8'));
|
|
857
|
+
}
|
|
858
|
+
catch {
|
|
859
|
+
return revertResult(entry, 'skipped', `${entry.file} is not valid JSON; leaving it untouched`);
|
|
860
|
+
}
|
|
861
|
+
const env = (settings.env ?? {});
|
|
862
|
+
const key = 'CLAUDE_CODE_GIT_BASH_PATH';
|
|
863
|
+
if (env[key] === undefined) {
|
|
864
|
+
return revertResult(entry, 'absent', `No agentenv shell override in ${entry.file}`);
|
|
865
|
+
}
|
|
866
|
+
if (env[key] !== bashExe) {
|
|
867
|
+
return revertResult(entry, 'skipped', `${entry.file}: CLAUDE_CODE_GIT_BASH_PATH changed after agentenv set it; leaving it untouched`);
|
|
868
|
+
}
|
|
869
|
+
const previous = entry.fields.find((field) => field.key === 'env.CLAUDE_CODE_GIT_BASH_PATH')?.previous ?? null;
|
|
870
|
+
if (previous === null)
|
|
871
|
+
delete env[key];
|
|
872
|
+
else
|
|
873
|
+
env[key] = previous;
|
|
874
|
+
if (Object.keys(env).length === 0)
|
|
875
|
+
delete settings.env;
|
|
876
|
+
if (entry.createdFile && Object.keys(settings).length === 0) {
|
|
877
|
+
if (!dryRun)
|
|
878
|
+
fs.rmSync(entry.file, { force: true });
|
|
879
|
+
return revertResult(entry, 'removed', `Removed ${entry.file} (created by agentenv)`);
|
|
880
|
+
}
|
|
881
|
+
if (!dryRun)
|
|
882
|
+
fs.writeFileSync(entry.file, JSON.stringify(settings, null, 2));
|
|
883
|
+
return revertResult(entry, 'reverted', `Restored ${entry.file}`);
|
|
884
|
+
}
|
|
885
|
+
function restoreCodexShellFix(entry, bashExe, dryRun) {
|
|
886
|
+
if (!fs.existsSync(entry.file)) {
|
|
887
|
+
return revertResult(entry, 'absent', `${entry.file} is already gone`);
|
|
888
|
+
}
|
|
889
|
+
const content = fs.readFileSync(entry.file, 'utf-8');
|
|
890
|
+
const current = readTomlWindowsShellPath(content);
|
|
891
|
+
if (current === undefined) {
|
|
892
|
+
return revertResult(entry, 'absent', `No agentenv shell override in ${entry.file}`);
|
|
893
|
+
}
|
|
894
|
+
if (current !== bashExe) {
|
|
895
|
+
return revertResult(entry, 'skipped', `${entry.file}: [windows] shell_path changed after agentenv set it; leaving it untouched`);
|
|
896
|
+
}
|
|
897
|
+
const next = removeTomlWindowsShellPath(content);
|
|
898
|
+
if (entry.createdFile && next.trim() === '') {
|
|
899
|
+
if (!dryRun)
|
|
900
|
+
fs.rmSync(entry.file, { force: true });
|
|
901
|
+
return revertResult(entry, 'removed', `Removed ${entry.file} (created by agentenv)`);
|
|
902
|
+
}
|
|
903
|
+
if (next !== content && !dryRun)
|
|
904
|
+
fs.writeFileSync(entry.file, next);
|
|
905
|
+
return revertResult(entry, 'reverted', `Restored ${entry.file}`);
|
|
906
|
+
}
|
|
907
|
+
function restoreOpenCodeShellFix(entry, bashExe, dryRun) {
|
|
908
|
+
if (!fs.existsSync(entry.file)) {
|
|
909
|
+
return revertResult(entry, 'absent', `${entry.file} is already gone`);
|
|
910
|
+
}
|
|
911
|
+
let config;
|
|
912
|
+
try {
|
|
913
|
+
config = JSON.parse(fs.readFileSync(entry.file, 'utf-8'));
|
|
914
|
+
}
|
|
915
|
+
catch {
|
|
916
|
+
return revertResult(entry, 'skipped', `${entry.file} is not valid JSON; leaving it untouched`);
|
|
917
|
+
}
|
|
918
|
+
let changed = false;
|
|
919
|
+
let drifted = false;
|
|
920
|
+
for (const key of ['shell', 'defaultShell']) {
|
|
921
|
+
if (config[key] === undefined)
|
|
922
|
+
continue;
|
|
923
|
+
if (config[key] !== bashExe) {
|
|
924
|
+
drifted = true;
|
|
925
|
+
continue;
|
|
926
|
+
}
|
|
927
|
+
const previous = entry.fields.find((field) => field.key === key)?.previous ?? null;
|
|
928
|
+
if (previous === null)
|
|
929
|
+
delete config[key];
|
|
930
|
+
else
|
|
931
|
+
config[key] = previous;
|
|
932
|
+
changed = true;
|
|
933
|
+
}
|
|
934
|
+
if (!changed && !drifted) {
|
|
935
|
+
return revertResult(entry, 'absent', `No agentenv shell override in ${entry.file}`);
|
|
936
|
+
}
|
|
937
|
+
if (drifted && !changed) {
|
|
938
|
+
return revertResult(entry, 'skipped', `${entry.file}: shell/defaultShell changed after agentenv set it; leaving it untouched`);
|
|
939
|
+
}
|
|
940
|
+
if (entry.createdFile && Object.keys(config).length === 0) {
|
|
941
|
+
if (!dryRun)
|
|
942
|
+
fs.rmSync(entry.file, { force: true });
|
|
943
|
+
return revertResult(entry, 'removed', `Removed ${entry.file} (created by agentenv)`);
|
|
944
|
+
}
|
|
945
|
+
if (changed && !dryRun)
|
|
946
|
+
fs.writeFileSync(entry.file, JSON.stringify(config, null, 2));
|
|
947
|
+
return revertResult(entry, 'reverted', `Restored ${entry.file}`);
|
|
948
|
+
}
|
|
949
|
+
function revertShellFixEntry(entry, bashExe, dryRun) {
|
|
950
|
+
switch (entry.agent) {
|
|
951
|
+
case 'claude_code':
|
|
952
|
+
return restoreClaudeShellFix(entry, bashExe, dryRun);
|
|
953
|
+
case 'codex_cli':
|
|
954
|
+
return restoreCodexShellFix(entry, bashExe, dryRun);
|
|
955
|
+
case 'opencode':
|
|
956
|
+
return restoreOpenCodeShellFix(entry, bashExe, dryRun);
|
|
957
|
+
default:
|
|
958
|
+
return revertResult(entry, 'skipped', `${entry.agent}: no revert handler`);
|
|
959
|
+
}
|
|
960
|
+
}
|
|
961
|
+
/**
|
|
962
|
+
* Undo the Tier 0 agent shell fixes recorded by previous applies. Each entry is
|
|
963
|
+
* reverted only when the file still holds the value agentenv set; a value the
|
|
964
|
+
* user changed afterwards is left untouched and reported as skipped, and the
|
|
965
|
+
* manifest retains that entry so a later run can retry. Clears the manifest
|
|
966
|
+
* once nothing is left to revert. With `dryRun`, reports what it would do
|
|
967
|
+
* without touching any file or the manifest.
|
|
968
|
+
*/
|
|
969
|
+
export function revertShellFixes(statePath = shellFixStatePath(), dryRun = false) {
|
|
970
|
+
const state = readShellFixState(statePath);
|
|
971
|
+
if (!state)
|
|
972
|
+
return [];
|
|
973
|
+
const results = [];
|
|
974
|
+
const remaining = [];
|
|
975
|
+
for (const entry of state.entries) {
|
|
976
|
+
const result = revertShellFixEntry(entry, state.bashExe, dryRun);
|
|
977
|
+
results.push(result);
|
|
978
|
+
if (result.action === 'skipped')
|
|
979
|
+
remaining.push(entry);
|
|
980
|
+
}
|
|
981
|
+
if (dryRun)
|
|
982
|
+
return results;
|
|
983
|
+
if (remaining.length === 0)
|
|
984
|
+
clearShellFixState(statePath);
|
|
985
|
+
else
|
|
986
|
+
writeShellFixState({ ...state, entries: remaining }, statePath);
|
|
987
|
+
return results;
|
|
988
|
+
}
|
|
755
989
|
//# sourceMappingURL=detector.js.map
|