@indy2kro/agentenv 0.1.2 → 0.2.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/README.md +105 -46
- package/dist/adapters/cline.d.ts +9 -0
- package/dist/adapters/cline.d.ts.map +1 -0
- package/dist/adapters/cline.js +19 -0
- package/dist/adapters/cline.js.map +1 -0
- package/dist/adapters/cursor.d.ts +9 -0
- package/dist/adapters/cursor.d.ts.map +1 -0
- package/dist/adapters/cursor.js +19 -0
- package/dist/adapters/cursor.js.map +1 -0
- package/dist/adapters/detect.d.ts +1 -1
- package/dist/adapters/detect.d.ts.map +1 -1
- package/dist/adapters/detect.js +6 -1
- package/dist/adapters/detect.js.map +1 -1
- package/dist/adapters/gemini.d.ts +9 -0
- package/dist/adapters/gemini.d.ts.map +1 -0
- package/dist/adapters/gemini.js +19 -0
- package/dist/adapters/gemini.js.map +1 -0
- package/dist/adapters/index.d.ts +6 -0
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +6 -0
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/rtk-delegation.d.ts +28 -0
- package/dist/adapters/rtk-delegation.d.ts.map +1 -0
- package/dist/adapters/rtk-delegation.js +102 -0
- package/dist/adapters/rtk-delegation.js.map +1 -0
- package/dist/adapters/vibe.d.ts +9 -0
- package/dist/adapters/vibe.d.ts.map +1 -0
- package/dist/adapters/vibe.js +19 -0
- package/dist/adapters/vibe.js.map +1 -0
- package/dist/adapters/windsurf.d.ts +9 -0
- package/dist/adapters/windsurf.d.ts.map +1 -0
- package/dist/adapters/windsurf.js +19 -0
- package/dist/adapters/windsurf.js.map +1 -0
- package/dist/commands/apply.d.ts +9 -0
- package/dist/commands/apply.d.ts.map +1 -1
- package/dist/commands/apply.js +57 -21
- package/dist/commands/apply.js.map +1 -1
- package/dist/commands/configure.d.ts +2 -1
- package/dist/commands/configure.d.ts.map +1 -1
- package/dist/commands/configure.js +71 -16
- package/dist/commands/configure.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +9 -3
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/setup.d.ts +39 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +43 -23
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/status.d.ts +6 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +83 -21
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +67 -9
- package/dist/commands/update.js.map +1 -1
- package/dist/config/schema.d.ts +26 -2
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +142 -43
- package/dist/config/schema.js.map +1 -1
- package/dist/generate/agentsmd.d.ts.map +1 -1
- package/dist/generate/agentsmd.js +10 -0
- package/dist/generate/agentsmd.js.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/index.d.ts +1 -0
- package/dist/integrations/index.d.ts.map +1 -1
- package/dist/integrations/index.js +1 -0
- package/dist/integrations/index.js.map +1 -1
- package/dist/integrations/render.d.ts +15 -0
- package/dist/integrations/render.d.ts.map +1 -0
- package/dist/integrations/render.js +51 -0
- package/dist/integrations/render.js.map +1 -0
- package/dist/integrations/superpowers.d.ts.map +1 -1
- package/dist/integrations/superpowers.js +3 -1
- package/dist/integrations/superpowers.js.map +1 -1
- package/dist/shell/detector.d.ts +9 -3
- package/dist/shell/detector.d.ts.map +1 -1
- package/dist/shell/detector.js +147 -101
- package/dist/shell/detector.js.map +1 -1
- package/dist/toolchain/fallbacks.d.ts.map +1 -1
- package/dist/toolchain/fallbacks.js +8 -3
- package/dist/toolchain/fallbacks.js.map +1 -1
- package/dist/toolchain/mise.d.ts +106 -6
- package/dist/toolchain/mise.d.ts.map +1 -1
- package/dist/toolchain/mise.js +248 -89
- package/dist/toolchain/mise.js.map +1 -1
- package/dist/toolchain/rtk.d.ts.map +1 -1
- package/dist/toolchain/rtk.js +6 -0
- package/dist/toolchain/rtk.js.map +1 -1
- package/dist/ui/spinner.d.ts +19 -0
- package/dist/ui/spinner.d.ts.map +1 -0
- package/dist/ui/spinner.js +27 -0
- package/dist/ui/spinner.js.map +1 -0
- package/dist/ui/theme.d.ts +22 -0
- package/dist/ui/theme.d.ts.map +1 -0
- package/dist/ui/theme.js +42 -0
- package/dist/ui/theme.js.map +1 -0
- package/dist/utils/fs-retry.d.ts +46 -0
- package/dist/utils/fs-retry.d.ts.map +1 -0
- package/dist/utils/fs-retry.js +94 -0
- package/dist/utils/fs-retry.js.map +1 -0
- package/dist/utils/output.d.ts +16 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +20 -0
- package/dist/utils/output.js.map +1 -0
- package/dist/wizard/build.d.ts +2 -1
- package/dist/wizard/build.d.ts.map +1 -1
- package/dist/wizard/build.js +8 -7
- package/dist/wizard/build.js.map +1 -1
- package/package.json +4 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rendering helpers for integration results, shared by `apply` and `status`.
|
|
3
|
+
*/
|
|
4
|
+
import type { IntegrationAgentState, IntegrationResult } from './base.js';
|
|
5
|
+
/** Render a single integration/agent pair as a one-line status string. */
|
|
6
|
+
export declare function integrationStateLine(state: IntegrationAgentState): string;
|
|
7
|
+
/**
|
|
8
|
+
* Render an IntegrationResult into display lines: agent states first, then
|
|
9
|
+
* the native commands that were run, changed files, and warnings. Errors are
|
|
10
|
+
* intentionally excluded — callers decide how to surface them.
|
|
11
|
+
*/
|
|
12
|
+
export declare function integrationResultLines(result: IntegrationResult): string[];
|
|
13
|
+
/** Render the gh auth result as a single display line. */
|
|
14
|
+
export declare function ghAuthLine(status: 'authenticated' | 'unauthenticated' | 'unknown' | 'not_installed'): string;
|
|
15
|
+
//# sourceMappingURL=render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/integrations/render.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAS1E,0EAA0E;AAC1E,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAIzE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAU1E;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,CACxB,MAAM,EAAE,eAAe,GAAG,iBAAiB,GAAG,SAAS,GAAG,eAAe,GACxE,MAAM,CAkBR"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rendering helpers for integration results, shared by `apply` and `status`.
|
|
3
|
+
*/
|
|
4
|
+
const STATE_GLYPH = {
|
|
5
|
+
installed: '✓',
|
|
6
|
+
missing: '✗',
|
|
7
|
+
unsupported: '·',
|
|
8
|
+
drifted: '!',
|
|
9
|
+
};
|
|
10
|
+
/** Render a single integration/agent pair as a one-line status string. */
|
|
11
|
+
export function integrationStateLine(state) {
|
|
12
|
+
const glyph = STATE_GLYPH[state.state];
|
|
13
|
+
const detail = state.detail ? ` (${state.detail})` : '';
|
|
14
|
+
return `${glyph} ${state.agent}: ${state.state}${detail}`;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Render an IntegrationResult into display lines: agent states first, then
|
|
18
|
+
* the native commands that were run, changed files, and warnings. Errors are
|
|
19
|
+
* intentionally excluded — callers decide how to surface them.
|
|
20
|
+
*/
|
|
21
|
+
export function integrationResultLines(result) {
|
|
22
|
+
const lines = result.agents.map(integrationStateLine);
|
|
23
|
+
if (result.nativeCommands.length > 0) {
|
|
24
|
+
lines.push(`ran: ${result.nativeCommands.join('; ')}`);
|
|
25
|
+
}
|
|
26
|
+
if (result.changedFiles.length > 0) {
|
|
27
|
+
lines.push(`wrote: ${result.changedFiles.join(', ')}`);
|
|
28
|
+
}
|
|
29
|
+
for (const warning of result.warnings)
|
|
30
|
+
lines.push(`warning: ${warning}`);
|
|
31
|
+
return lines;
|
|
32
|
+
}
|
|
33
|
+
/** Render the gh auth result as a single display line. */
|
|
34
|
+
export function ghAuthLine(status) {
|
|
35
|
+
const glyph = status === 'authenticated'
|
|
36
|
+
? '✓'
|
|
37
|
+
: status === 'unauthenticated'
|
|
38
|
+
? '✗'
|
|
39
|
+
: status === 'not_installed'
|
|
40
|
+
? '·'
|
|
41
|
+
: '?';
|
|
42
|
+
const label = status === 'authenticated'
|
|
43
|
+
? 'authenticated'
|
|
44
|
+
: status === 'unauthenticated'
|
|
45
|
+
? 'not authenticated'
|
|
46
|
+
: status === 'not_installed'
|
|
47
|
+
? 'gh not installed'
|
|
48
|
+
: 'unknown';
|
|
49
|
+
return `${glyph} github.com: ${label}`;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/integrations/render.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,WAAW,GAAmD;IAClE,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,GAAG;IACZ,WAAW,EAAE,GAAG;IAChB,OAAO,EAAE,GAAG;CACb,CAAC;AAEF,0EAA0E;AAC1E,MAAM,UAAU,oBAAoB,CAAC,KAA4B;IAC/D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAyB;IAC9D,MAAM,KAAK,GAAa,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAChE,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,OAAO,EAAE,CAAC,CAAC;IACzE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,UAAU,CACxB,MAAyE;IAEzE,MAAM,KAAK,GACT,MAAM,KAAK,eAAe;QACxB,CAAC,CAAC,GAAG;QACL,CAAC,CAAC,MAAM,KAAK,iBAAiB;YAC5B,CAAC,CAAC,GAAG;YACL,CAAC,CAAC,MAAM,KAAK,eAAe;gBAC1B,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,GAAG,CAAC;IACd,MAAM,KAAK,GACT,MAAM,KAAK,eAAe;QACxB,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,MAAM,KAAK,iBAAiB;YAC5B,CAAC,CAAC,mBAAmB;YACrB,CAAC,CAAC,MAAM,KAAK,eAAe;gBAC1B,CAAC,CAAC,kBAAkB;gBACpB,CAAC,CAAC,SAAS,CAAC;IACpB,OAAO,GAAG,KAAK,gBAAgB,KAAK,EAAE,CAAC;AACzC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"superpowers.d.ts","sourceRoot":"","sources":["../../src/integrations/superpowers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAY,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAyB,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9F,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAC3E,eAAO,MAAM,qBAAqB,wCAAwC,CAAC;AAW3E,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8DAA8D;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,sBAAsB,CAAC;AA6BtF,UAAU,MAAM;IACd,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,MAAM,CAAC;IAC1D,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CACnE;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAQD,qBAAa,kBAAmB,YAAW,kBAAkB;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,IAAI,GAAE,sBAA2B;IAK7C,OAAO,IAAI,MAAM;IAIjB,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO;IAIzD,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,gBAAgB;IAmClB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"superpowers.d.ts","sourceRoot":"","sources":["../../src/integrations/superpowers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,KAAK,EAAY,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAyB,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9F,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAC3E,eAAO,MAAM,qBAAqB,wCAAwC,CAAC;AAW3E,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,8DAA8D;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,KAAK,sBAAsB,CAAC;AA6BtF,UAAU,MAAM;IACd,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,MAAM,CAAC;IAC1D,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACvD,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;CACnE;AAED,MAAM,WAAW,sBAAsB;IACrC,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAQD,qBAAa,kBAAmB,YAAW,kBAAkB;IAC3D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAkB;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,IAAI,GAAE,sBAA2B;IAK7C,OAAO,IAAI,MAAM;IAIjB,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO;IAIzD,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,gBAAgB;IAmClB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA2B1F,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAI1F,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,GAAG,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAmEhG"}
|
|
@@ -110,7 +110,9 @@ export class SuperpowersAdapter {
|
|
|
110
110
|
}
|
|
111
111
|
async detect(baseDir, config) {
|
|
112
112
|
const scope = resolveIntegrationScope({}, config);
|
|
113
|
-
const requestedAgents = config?.agents ?? [
|
|
113
|
+
const requestedAgents = config?.agents ?? [
|
|
114
|
+
...AGENT_KEYS,
|
|
115
|
+
];
|
|
114
116
|
const result = {
|
|
115
117
|
name: this.getName(),
|
|
116
118
|
source: config?.source,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"superpowers.js","sourceRoot":"","sources":["../../src/integrations/superpowers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"superpowers.js","sourceRoot":"","sources":["../../src/integrations/superpowers.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,aAAa,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAI1E,MAAM,CAAC,MAAM,4BAA4B,GAAG,8BAA8B,CAAC;AAC3E,MAAM,CAAC,MAAM,qBAAqB,GAAG,qCAAqC,CAAC;AAE3E,MAAM,oBAAoB,GAAsC;IAC9D,SAAS,EACP,yJAAyJ;IAC3J,OAAO,EACL,+RAA+R;IACjS,QAAQ,EACN,gMAAgM;CACnM,CAAC;AAYF,MAAM,sBAAsB,GAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;IAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC;IAChG,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE;YACvD,GAAG;YACH,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM;YACvB,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,EAAE;SAC5B,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,IAAI;YACd,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;SACzD,CAAC;IACJ,CAAC;AACH,CAAC,CAAC;AAoBF,MAAM,OAAO,kBAAkB;IAI7B,YAAY,OAA+B,EAAE;QAC3C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,sBAAsB,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,SAAS,CAAC,MAAqC;QAC7C,OAAO,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAClC,CAAC;IAEO,UAAU,CAAC,OAAe;QAChC,sEAAsE;QACtE,wEAAwE;QACxE,6DAA6D;QAC7D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;IACzF,CAAC;IAEO,UAAU,CAAC,OAAe;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,SAAS,CAAC;QACpD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAsB,CAAC;QAClF,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,OAAe,EAAE,MAAyB;QAC5D,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC;IAEO,gBAAgB,CACtB,OAAe,EACf,MAAqC;QAErC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC5C,OAAO;gBACL,KAAK,EAAE,aAAa;gBACpB,KAAK,EAAE,aAAa;gBACpB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,8BAA8B;aACtD,CAAC;QACJ,CAAC;QAED,yEAAyE;QACzE,wEAAwE;QACxE,iBAAiB;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QACpE,IAAI,CAAC,SAAS;YAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QAElE,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,MAAM,EAAE,GAAG,CAAC;QACjC,IAAI,MAAM,IAAI,YAAY,IAAI,MAAM,CAAC,GAAG,KAAK,YAAY,EAAE,CAAC;YAC1D,OAAO;gBACL,KAAK,EAAE,aAAa;gBACpB,KAAK,EAAE,SAAS;gBAChB,MAAM,EAAE,gBAAgB,MAAM,CAAC,GAAG,qBAAqB,YAAY,EAAE;aACtE,CAAC;QACJ,CAAC;QACD,OAAO;YACL,KAAK,EAAE,aAAa;YACpB,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,4BAA4B;SACpE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,MAAqC;QACjE,MAAM,KAAK,GAAG,uBAAuB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QAClD,MAAM,eAAe,GAAgB,MAAM,EAAE,MAAiC,IAAI;YAChF,GAAG,UAAU;SACd,CAAC;QACF,MAAM,MAAM,GAAsB;YAChC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;YACpB,MAAM,EAAE,MAAM,EAAE,MAAM;YACtB,GAAG,EAAE,MAAM,EAAE,GAAG;YAChB,KAAK;YACL,MAAM,EAAE,EAAE;YACV,YAAY,EAAE,EAAE;YAChB,cAAc,EAAE,EAAE;YAClB,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;SACX,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;gBAC5B,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACzF,SAAS;YACX,CAAC;YACD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,MAAqC;QACjE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAe,EAAE,MAAqC;QAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;YAAE,OAAO,QAAQ,CAAC;QAE7C,MAAM,GAAG,GAAG,MAAM,EAAE,GAAG,CAAC;QACxB,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;YAC5B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;YACtF,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzC,IAAI,UAAU,CAAC,KAAK,KAAK,aAAa;gBAAE,SAAS;YAEjD,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gBAChC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CACpB,qIAAqI,CACtI,CAAC;gBACF,SAAS;YACX,CAAC;YAED,IAAI,UAAU,CAAC,KAAK,KAAK,WAAW;gBAAE,SAAS;YAE/C,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC;YAClD,MAAM,eAAe,GAAG;gBACtB,QAAQ;gBACR,aAAa;gBACb,KAAK;gBACL,GAAG,4BAA4B,IAAI,GAAG,EAAE;aACzC,CAAC;YACF,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YACnE,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACpE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC5B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAClB,yCAAyC,cAAc,CAAC,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,CAC1F,CAAC;gBACF,SAAS;YACX,CAAC;YAED,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,qBAAqB,EAAE,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5F,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAC3D,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;gBACxB,QAAQ,CAAC,MAAM,CAAC,IAAI,CAClB,iCAAiC,UAAU,CAAC,MAAM,IAAI,UAAU,CAAC,MAAM,EAAE,CAC1E,CAAC;gBACF,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAsB;gBAChC,GAAG;gBACH,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAClC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;YACrD,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC;YAC/B,UAAU,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,EAAE,CAAC;QAC1E,CAAC;QAED,IAAI,MAAM,CAAC,uBAAuB,KAAK,IAAI,EAAE,CAAC;YAC5C,QAAQ,CAAC,QAAQ,CAAC,IAAI,CACpB,+FAA+F,CAChG,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF"}
|
package/dist/shell/detector.d.ts
CHANGED
|
@@ -74,7 +74,7 @@ export declare function applyAgentShellFix(agent: AgentKey, bashExe: string, hom
|
|
|
74
74
|
* Fix shell configuration for Windows and macOS
|
|
75
75
|
* This is a Tier 0 fix - ensures POSIX utilities are available
|
|
76
76
|
*/
|
|
77
|
-
export declare function fixShellConfiguration(_baseDir?: string, agents?: AgentKey[]): {
|
|
77
|
+
export declare function fixShellConfiguration(_baseDir?: string, agents?: AgentKey[], complex?: boolean): {
|
|
78
78
|
success: boolean;
|
|
79
79
|
message: string;
|
|
80
80
|
gitBashPath?: string;
|
|
@@ -82,9 +82,15 @@ export declare function fixShellConfiguration(_baseDir?: string, agents?: AgentK
|
|
|
82
82
|
results?: ShellFixResult[];
|
|
83
83
|
};
|
|
84
84
|
/**
|
|
85
|
-
* Check
|
|
85
|
+
* Check whether a specific agent's own config already points it at a POSIX
|
|
86
|
+
* (bash) shell — i.e. whether Tier 0's per-agent fix (applyAgentShellFix) has
|
|
87
|
+
* actually taken effect for that agent. Reads exactly the field each
|
|
88
|
+
* patch*ShellFix writes, so this stays in sync with what `apply` can affect;
|
|
89
|
+
* it deliberately does not look at the current process's own shell/env,
|
|
90
|
+
* since that's the interactive shell the user is running agentenv from, not
|
|
91
|
+
* the target agent's configuration.
|
|
86
92
|
*/
|
|
87
|
-
export declare function checkAgentShellConfiguration(agent: string): {
|
|
93
|
+
export declare function checkAgentShellConfiguration(agent: AgentKey, home?: string): {
|
|
88
94
|
isConfigured: boolean;
|
|
89
95
|
shell?: string;
|
|
90
96
|
needsFix: boolean;
|
|
@@ -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":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIpD,eAAO,MAAM,eAAe,UAgB3B,CAAC;AAGF,eAAO,MAAM,cAAc,UAK1B,CAAC;AAEF,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,SAAS,CA6EvC;AA4HD;;;GAGG;AACH,iBAAS,wBAAwB,IAAI,MAAM,GAAG,SAAS,CAiCtD;AA4BD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,SAAS,GAAG;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAkDA;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CASvE;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMvE;AAGD,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAEpC,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAS1D;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,cAAc,CA4BjG;AAoJD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,GAAE,MAAY,EACtB,MAAM,GAAE,QAAQ,EAAoB,EACpC,OAAO,GAAE,OAAsC,GAC9C;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,cAAc,EAAE,CAAC;CAC5B,CA2FA;AAED;;;;;;;;GAQG;AACH,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,QAAQ,EACf,IAAI,GAAE,MAA0D,GAC/D;IAAE,YAAY,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAiB9D"}
|
package/dist/shell/detector.js
CHANGED
|
@@ -7,6 +7,7 @@ import * as path from 'path';
|
|
|
7
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
|
+
import { pathContainsDir } from '../toolchain/mise.js';
|
|
10
11
|
// Well-known POSIX utilities that should be available
|
|
11
12
|
export const POSIX_UTILITIES = [
|
|
12
13
|
'grep',
|
|
@@ -54,10 +55,12 @@ export function detectShell() {
|
|
|
54
55
|
isPosixCompatible = isGitBash;
|
|
55
56
|
// Find Git Bash path (used by the Tier 0 fix even when the current shell
|
|
56
57
|
// is PowerShell/cmd, so agents get pointed at a real POSIX shell).
|
|
58
|
+
// Use path.resolve() to handle paths with spaces properly.
|
|
57
59
|
for (const gitPath of GIT_BASH_PATHS) {
|
|
58
60
|
try {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
+
const resolvedPath = path.resolve(gitPath);
|
|
62
|
+
if (fs.existsSync(resolvedPath)) {
|
|
63
|
+
gitBashPath = resolvedPath;
|
|
61
64
|
break;
|
|
62
65
|
}
|
|
63
66
|
}
|
|
@@ -79,9 +82,11 @@ export function detectShell() {
|
|
|
79
82
|
else {
|
|
80
83
|
// Try to get the gnubin path if coreutils are installed
|
|
81
84
|
try {
|
|
82
|
-
const
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
const result = child_process.spawnSync('brew', ['--prefix', 'coreutils'], {
|
|
86
|
+
encoding: 'utf-8',
|
|
87
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
88
|
+
});
|
|
89
|
+
const prefix = result.stdout.trim();
|
|
85
90
|
gnubinPath = path.join(prefix, 'libexec', 'gnubin');
|
|
86
91
|
}
|
|
87
92
|
catch {
|
|
@@ -156,11 +161,10 @@ function checkGitBash() {
|
|
|
156
161
|
if (shell.toLowerCase().includes('bash')) {
|
|
157
162
|
return true;
|
|
158
163
|
}
|
|
159
|
-
// Check PATH for Git Bash directories
|
|
164
|
+
// Check PATH for Git Bash directories (spaces-safe, case-folded on win32)
|
|
160
165
|
const pathEnv = process.env.PATH || '';
|
|
161
|
-
const pathParts = pathEnv.split(';');
|
|
162
166
|
for (const gitPath of GIT_BASH_PATHS) {
|
|
163
|
-
if (
|
|
167
|
+
if (pathContainsDir(pathEnv, gitPath)) {
|
|
164
168
|
return true;
|
|
165
169
|
}
|
|
166
170
|
}
|
|
@@ -187,7 +191,11 @@ function checkGNUCoreutils() {
|
|
|
187
191
|
// First, get the resolved path - this will follow shell function aliases.
|
|
188
192
|
// Then invoke the binary directly rather than building a shell string so
|
|
189
193
|
// paths containing spaces keep working reliably.
|
|
190
|
-
const
|
|
194
|
+
const grepResult = child_process.spawnSync('sh', ['-c', 'command -v grep'], {
|
|
195
|
+
encoding: 'utf-8',
|
|
196
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
197
|
+
});
|
|
198
|
+
const grepPath = grepResult.stdout.trim();
|
|
191
199
|
child_process.spawnSync(grepPath, ['-P', '--version'], { stdio: 'ignore' });
|
|
192
200
|
return true;
|
|
193
201
|
}
|
|
@@ -196,7 +204,11 @@ function checkGNUCoreutils() {
|
|
|
196
204
|
}
|
|
197
205
|
// Check for GNU sed via resolved path
|
|
198
206
|
try {
|
|
199
|
-
const
|
|
207
|
+
const sedResult = child_process.spawnSync('sh', ['-c', 'command -v sed'], {
|
|
208
|
+
encoding: 'utf-8',
|
|
209
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
210
|
+
});
|
|
211
|
+
const sedPath = sedResult.stdout.trim();
|
|
200
212
|
// GNU sed supports --version; BSD sed does not
|
|
201
213
|
child_process.spawnSync(sedPath, ['--version'], { stdio: 'ignore' });
|
|
202
214
|
return true;
|
|
@@ -220,21 +232,25 @@ function installGNUCoreutilsMacOS() {
|
|
|
220
232
|
}
|
|
221
233
|
try {
|
|
222
234
|
// Check if Homebrew is installed
|
|
223
|
-
child_process.
|
|
235
|
+
child_process.spawnSync('sh', ['-c', 'command -v brew'], { stdio: 'ignore' });
|
|
224
236
|
// Install coreutils, gnu-sed, grep, findutils, gawk if not already installed
|
|
225
237
|
const packages = ['coreutils', 'gnu-sed', 'grep', 'findutils', 'gawk'];
|
|
226
238
|
for (const pkg of packages) {
|
|
227
239
|
try {
|
|
228
240
|
// Check if already installed
|
|
229
|
-
child_process.
|
|
241
|
+
child_process.spawnSync('brew', ['list', '--formula', pkg], { stdio: 'ignore' });
|
|
230
242
|
}
|
|
231
243
|
catch {
|
|
232
244
|
// Not installed, install it
|
|
233
|
-
child_process.
|
|
245
|
+
child_process.spawnSync('brew', ['install', '--quiet', pkg], { stdio: 'ignore' });
|
|
234
246
|
}
|
|
235
247
|
}
|
|
236
248
|
// Get the gnubin path from coreutils
|
|
237
|
-
const
|
|
249
|
+
const result = child_process.spawnSync('brew', ['--prefix', 'coreutils'], {
|
|
250
|
+
encoding: 'utf-8',
|
|
251
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
252
|
+
});
|
|
253
|
+
const prefix = result.stdout.trim();
|
|
238
254
|
const gnubinPath = path.join(prefix, 'libexec', 'gnubin');
|
|
239
255
|
return gnubinPath;
|
|
240
256
|
}
|
|
@@ -253,11 +269,11 @@ function checkMissingUtilities(isPosixCompatible) {
|
|
|
253
269
|
for (const util of POSIX_UTILITIES) {
|
|
254
270
|
try {
|
|
255
271
|
// Try to find the utility
|
|
256
|
-
child_process.
|
|
272
|
+
child_process.spawnSync('cmd.exe', ['/c', `where ${util}`], { stdio: 'ignore', shell: true });
|
|
257
273
|
}
|
|
258
274
|
catch {
|
|
259
275
|
try {
|
|
260
|
-
child_process.
|
|
276
|
+
child_process.spawnSync('sh', ['-c', `which ${util}`], { stdio: 'ignore' });
|
|
261
277
|
}
|
|
262
278
|
catch {
|
|
263
279
|
missing.push(util);
|
|
@@ -378,7 +394,18 @@ export function applyAgentShellFix(agent, bashExe, home) {
|
|
|
378
394
|
agent,
|
|
379
395
|
file: '',
|
|
380
396
|
action: 'skipped',
|
|
381
|
-
message:
|
|
397
|
+
message: "copilot: no change needed — Copilot follows Git Bash's SHELL env var, and the Git Bash bin dirs already on PATH cover this in Git Bash",
|
|
398
|
+
};
|
|
399
|
+
case 'gemini_cli':
|
|
400
|
+
case 'cursor':
|
|
401
|
+
case 'windsurf':
|
|
402
|
+
case 'cline':
|
|
403
|
+
case 'vibe':
|
|
404
|
+
return {
|
|
405
|
+
agent,
|
|
406
|
+
file: '',
|
|
407
|
+
action: 'skipped',
|
|
408
|
+
message: `${agent}: rtk delegation agent (no Tier 0 override needed)`,
|
|
382
409
|
};
|
|
383
410
|
}
|
|
384
411
|
}
|
|
@@ -515,7 +542,7 @@ function setTomlWindowsShellPath(content, valueLine) {
|
|
|
515
542
|
* Fix shell configuration for Windows and macOS
|
|
516
543
|
* This is a Tier 0 fix - ensures POSIX utilities are available
|
|
517
544
|
*/
|
|
518
|
-
export function fixShellConfiguration(_baseDir = '.', agents = [...AGENT_KEYS]) {
|
|
545
|
+
export function fixShellConfiguration(_baseDir = '.', agents = [...AGENT_KEYS], complex = process.stdin.isTTY === true) {
|
|
519
546
|
if (process.platform === 'win32') {
|
|
520
547
|
const shellInfo = detectShell();
|
|
521
548
|
if (shellInfo.isPosixCompatible) {
|
|
@@ -527,8 +554,16 @@ export function fixShellConfiguration(_baseDir = '.', agents = [...AGENT_KEYS])
|
|
|
527
554
|
}
|
|
528
555
|
if (!shellInfo.gitBashPath) {
|
|
529
556
|
return {
|
|
530
|
-
success:
|
|
531
|
-
message: 'Git Bash not found
|
|
557
|
+
success: true,
|
|
558
|
+
message: 'Git Bash not found on PATH; install Git for Windows to enable Tier 0 shell fixes',
|
|
559
|
+
};
|
|
560
|
+
}
|
|
561
|
+
// Non-TTY/test shell: skip file writes, just report the state
|
|
562
|
+
if (!complex) {
|
|
563
|
+
return {
|
|
564
|
+
success: true,
|
|
565
|
+
message: `Tier 0: checked; would fix ${agents.length} agent shell(s) in an interactive terminal — skipped (non-TTY)`,
|
|
566
|
+
gitBashPath: shellInfo.gitBashPath,
|
|
532
567
|
};
|
|
533
568
|
}
|
|
534
569
|
const bashExe = bashExecutable(shellInfo.gitBashPath);
|
|
@@ -583,127 +618,138 @@ export function fixShellConfiguration(_baseDir = '.', agents = [...AGENT_KEYS])
|
|
|
583
618
|
};
|
|
584
619
|
}
|
|
585
620
|
/**
|
|
586
|
-
* Check
|
|
621
|
+
* Check whether a specific agent's own config already points it at a POSIX
|
|
622
|
+
* (bash) shell — i.e. whether Tier 0's per-agent fix (applyAgentShellFix) has
|
|
623
|
+
* actually taken effect for that agent. Reads exactly the field each
|
|
624
|
+
* patch*ShellFix writes, so this stays in sync with what `apply` can affect;
|
|
625
|
+
* it deliberately does not look at the current process's own shell/env,
|
|
626
|
+
* since that's the interactive shell the user is running agentenv from, not
|
|
627
|
+
* the target agent's configuration.
|
|
587
628
|
*/
|
|
588
|
-
export function checkAgentShellConfiguration(agent) {
|
|
589
|
-
if (process.platform !== 'win32') {
|
|
590
|
-
return {
|
|
591
|
-
isConfigured: true,
|
|
592
|
-
needsFix: false,
|
|
593
|
-
};
|
|
594
|
-
}
|
|
595
|
-
// Agent-specific shell configuration check
|
|
629
|
+
export function checkAgentShellConfiguration(agent, home = process.env.HOME || process.env.USERPROFILE || '') {
|
|
596
630
|
switch (agent) {
|
|
597
631
|
case 'claude_code':
|
|
598
|
-
|
|
599
|
-
return checkClaudeCodeShell();
|
|
632
|
+
return checkClaudeCodeShell(home);
|
|
600
633
|
case 'codex_cli':
|
|
601
|
-
return checkCodexShell();
|
|
634
|
+
return checkCodexShell(home);
|
|
602
635
|
case 'copilot':
|
|
603
636
|
return checkCopilotShell();
|
|
604
637
|
case 'opencode':
|
|
605
|
-
return checkOpenCodeShell();
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
638
|
+
return checkOpenCodeShell(home);
|
|
639
|
+
case 'gemini_cli':
|
|
640
|
+
case 'cursor':
|
|
641
|
+
case 'windsurf':
|
|
642
|
+
case 'cline':
|
|
643
|
+
case 'vibe':
|
|
644
|
+
return { isConfigured: true, needsFix: false };
|
|
611
645
|
}
|
|
612
646
|
}
|
|
647
|
+
function isBashPath(value) {
|
|
648
|
+
return typeof value === 'string' && value.length > 0;
|
|
649
|
+
}
|
|
613
650
|
/**
|
|
614
|
-
* Check Claude Code shell configuration
|
|
651
|
+
* Check Claude Code shell configuration: reads env.CLAUDE_CODE_GIT_BASH_PATH,
|
|
652
|
+
* the exact field patchClaudeShellFix writes.
|
|
615
653
|
*/
|
|
616
|
-
function checkClaudeCodeShell() {
|
|
654
|
+
function checkClaudeCodeShell(home) {
|
|
617
655
|
try {
|
|
618
|
-
const home = process.env.HOME || process.env.USERPROFILE || '';
|
|
619
656
|
const settingsPath = path.join(home, '.claude', 'settings.json');
|
|
620
657
|
if (fs.existsSync(settingsPath)) {
|
|
621
|
-
const
|
|
622
|
-
const
|
|
623
|
-
|
|
658
|
+
const settings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8'));
|
|
659
|
+
const env = (settings.env ?? {});
|
|
660
|
+
const bashPath = env.CLAUDE_CODE_GIT_BASH_PATH;
|
|
661
|
+
if (isBashPath(bashPath)) {
|
|
624
662
|
return {
|
|
625
663
|
isConfigured: true,
|
|
626
|
-
shell:
|
|
627
|
-
needsFix: !
|
|
664
|
+
shell: bashPath,
|
|
665
|
+
needsFix: !bashPath.toLowerCase().includes('bash'),
|
|
628
666
|
};
|
|
629
667
|
}
|
|
630
668
|
}
|
|
631
|
-
return {
|
|
632
|
-
isConfigured: false,
|
|
633
|
-
needsFix: true,
|
|
634
|
-
};
|
|
669
|
+
return { isConfigured: false, needsFix: true };
|
|
635
670
|
}
|
|
636
671
|
catch {
|
|
637
|
-
return {
|
|
638
|
-
isConfigured: false,
|
|
639
|
-
needsFix: true,
|
|
640
|
-
};
|
|
672
|
+
return { isConfigured: false, needsFix: true };
|
|
641
673
|
}
|
|
642
674
|
}
|
|
643
675
|
/**
|
|
644
|
-
*
|
|
676
|
+
* Extract the `shell_path` value from a Codex config.toml's [windows]
|
|
677
|
+
* section, matching what setTomlWindowsShellPath writes.
|
|
645
678
|
*/
|
|
646
|
-
function
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
}
|
|
679
|
+
function readTomlWindowsShellPath(content) {
|
|
680
|
+
const lines = content.split(/\r?\n/);
|
|
681
|
+
let inWindowsSection = false;
|
|
682
|
+
for (const raw of lines) {
|
|
683
|
+
const trimmed = raw.trim();
|
|
684
|
+
if (/^\[.*]$/.test(trimmed)) {
|
|
685
|
+
inWindowsSection = trimmed === '[windows]';
|
|
686
|
+
continue;
|
|
687
|
+
}
|
|
688
|
+
if (inWindowsSection) {
|
|
689
|
+
// valueLine is built via JSON.stringify(bashExe) (patchCodexShellFix),
|
|
690
|
+
// so a JSON-compatible quoted-string parse reverses it correctly.
|
|
691
|
+
const match = /^shell_path\s*=\s*("(?:[^"\\]|\\.)*")$/.exec(trimmed);
|
|
692
|
+
if (match) {
|
|
693
|
+
try {
|
|
694
|
+
return JSON.parse(match[1]);
|
|
695
|
+
}
|
|
696
|
+
catch {
|
|
697
|
+
return undefined;
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
}
|
|
655
701
|
}
|
|
656
|
-
return
|
|
657
|
-
isConfigured: false,
|
|
658
|
-
needsFix: true,
|
|
659
|
-
};
|
|
702
|
+
return undefined;
|
|
660
703
|
}
|
|
661
704
|
/**
|
|
662
|
-
* Check
|
|
705
|
+
* Check Codex CLI shell configuration: reads [windows] shell_path from
|
|
706
|
+
* config.toml, the exact field patchCodexShellFix writes.
|
|
663
707
|
*/
|
|
664
|
-
function
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
708
|
+
function checkCodexShell(home) {
|
|
709
|
+
try {
|
|
710
|
+
const configPath = path.join(home, '.codex', 'config.toml');
|
|
711
|
+
if (fs.existsSync(configPath)) {
|
|
712
|
+
const shellPath = readTomlWindowsShellPath(fs.readFileSync(configPath, 'utf-8'));
|
|
713
|
+
if (isBashPath(shellPath)) {
|
|
714
|
+
return {
|
|
715
|
+
isConfigured: true,
|
|
716
|
+
shell: shellPath,
|
|
717
|
+
needsFix: !shellPath.toLowerCase().includes('bash'),
|
|
718
|
+
};
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
return { isConfigured: false, needsFix: true };
|
|
673
722
|
}
|
|
674
|
-
|
|
675
|
-
isConfigured: false,
|
|
676
|
-
|
|
677
|
-
|
|
723
|
+
catch {
|
|
724
|
+
return { isConfigured: false, needsFix: true };
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
/**
|
|
728
|
+
* GitHub Copilot has no per-file shell override (see applyAgentShellFix) —
|
|
729
|
+
* it follows the SHELL env var, which Tier 0's Git Bash PATH entries already
|
|
730
|
+
* cover, so there is nothing here for `apply` to fix.
|
|
731
|
+
*/
|
|
732
|
+
function checkCopilotShell() {
|
|
733
|
+
return { isConfigured: true, needsFix: false };
|
|
678
734
|
}
|
|
679
735
|
/**
|
|
680
|
-
* Check OpenCode shell configuration
|
|
736
|
+
* Check OpenCode shell configuration: reads `shell`, the exact field
|
|
737
|
+
* patchOpenCodeShellFix writes.
|
|
681
738
|
*/
|
|
682
|
-
function checkOpenCodeShell() {
|
|
739
|
+
function checkOpenCodeShell(home) {
|
|
683
740
|
try {
|
|
684
|
-
const home = process.env.HOME || process.env.USERPROFILE || '';
|
|
685
741
|
const configPath = path.join(home, '.config', 'opencode', 'opencode.json');
|
|
686
742
|
if (fs.existsSync(configPath)) {
|
|
687
|
-
const
|
|
688
|
-
const
|
|
689
|
-
if (
|
|
690
|
-
return {
|
|
691
|
-
isConfigured: true,
|
|
692
|
-
shell: config.shell,
|
|
693
|
-
needsFix: !config.shell.toLowerCase().includes('bash'),
|
|
694
|
-
};
|
|
743
|
+
const config = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
744
|
+
const shell = config.shell;
|
|
745
|
+
if (isBashPath(shell)) {
|
|
746
|
+
return { isConfigured: true, shell, needsFix: !shell.toLowerCase().includes('bash') };
|
|
695
747
|
}
|
|
696
748
|
}
|
|
697
|
-
return {
|
|
698
|
-
isConfigured: false,
|
|
699
|
-
needsFix: true,
|
|
700
|
-
};
|
|
749
|
+
return { isConfigured: false, needsFix: true };
|
|
701
750
|
}
|
|
702
751
|
catch {
|
|
703
|
-
return {
|
|
704
|
-
isConfigured: false,
|
|
705
|
-
needsFix: true,
|
|
706
|
-
};
|
|
752
|
+
return { isConfigured: false, needsFix: true };
|
|
707
753
|
}
|
|
708
754
|
}
|
|
709
755
|
//# sourceMappingURL=detector.js.map
|