@zelari/core 1.7.0 → 1.7.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/dist/core/tools/builtin/shell.d.ts.map +1 -1
- package/dist/core/tools/builtin/shell.js +28 -1
- package/dist/core/tools/builtin/shell.js.map +1 -1
- package/dist/core/tools/builtin/shellResolver.d.ts +11 -0
- package/dist/core/tools/builtin/shellResolver.d.ts.map +1 -1
- package/dist/core/tools/builtin/shellResolver.js +50 -14
- package/dist/core/tools/builtin/shellResolver.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/builtin/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/builtin/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAqB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAyBzE,QAAA,MAAM,cAAc;;;;iBAIlB,CAAC;AAEH,KAAK,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE/C,UAAU,UAAU;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,oGAAoG;IACpG,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAYD,eAAO,MAAM,QAAQ,EAAE,cAAc,CAAC,QAAQ,EAAE,UAAU,CAuFzD,CAAC"}
|
|
@@ -1,7 +1,31 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { spawn } from 'node:child_process';
|
|
3
|
+
import { dirname } from 'node:path';
|
|
3
4
|
import { typedOk, typedErr } from '../toolTypes.js';
|
|
4
5
|
import { resolveShell } from './shellResolver.js';
|
|
6
|
+
/**
|
|
7
|
+
* Ensure the directory of the running node binary is on PATH so agent shell
|
|
8
|
+
* commands (npm, tsc, node) resolve even when Git Bash inherits a thinner Path.
|
|
9
|
+
*/
|
|
10
|
+
function withNodeDirOnPath(base) {
|
|
11
|
+
const env = { ...base };
|
|
12
|
+
try {
|
|
13
|
+
const nodeDir = dirname(process.execPath);
|
|
14
|
+
if (!nodeDir)
|
|
15
|
+
return env;
|
|
16
|
+
const sep = process.platform === 'win32' ? ';' : ':';
|
|
17
|
+
const current = env.PATH ?? env.Path ?? '';
|
|
18
|
+
const parts = current.split(sep).filter((p) => p.length > 0);
|
|
19
|
+
const has = parts.some((p) => p.toLowerCase() === nodeDir.toLowerCase());
|
|
20
|
+
if (!has) {
|
|
21
|
+
env.PATH = `${nodeDir}${sep}${current}`;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
// best-effort
|
|
26
|
+
}
|
|
27
|
+
return env;
|
|
28
|
+
}
|
|
5
29
|
const BashArgsSchema = z.object({
|
|
6
30
|
command: z.string().min(1),
|
|
7
31
|
cwd: z.string().optional(),
|
|
@@ -36,7 +60,10 @@ export const bashTool = {
|
|
|
36
60
|
// into non-interactive mode; stdin 'ignore' makes the rest fail FAST
|
|
37
61
|
// with EOF instead of hanging on a prompt until the timeout (live test:
|
|
38
62
|
// `npm create vite` in a non-empty dir prompted → "Operation cancelled").
|
|
39
|
-
const baseEnv = {
|
|
63
|
+
const baseEnv = withNodeDirOnPath({
|
|
64
|
+
...process.env,
|
|
65
|
+
CI: process.env.CI ?? '1',
|
|
66
|
+
});
|
|
40
67
|
const env = resolved.isBash
|
|
41
68
|
? { ...baseEnv, MSYSTEM: process.env.MSYSTEM ?? 'MINGW64' }
|
|
42
69
|
: baseEnv;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../../src/core/tools/builtin/shell.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAuB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;CACpE,CAAC,CAAC;AAqBH,4EAA4E;AAC5E,MAAM,qBAAqB,GAAG,wEAAwE,CAAC;AAEvG,MAAM,gBAAgB,GACpB,uFAAuF;IACvF,2EAA2E;IAC3E,+GAA+G;IAC/G,mGAAmG;IACnG,6CAA6C,CAAC;AAEhD,MAAM,CAAC,MAAM,QAAQ,GAAyC;IAC5D,IAAI,EAAE,MAAM;IACZ,WAAW,EACT,mNAAmN;QACnN,uSAAuS;IACzS,WAAW,EAAE,CAAC,SAAS,CAAC;IACxB,SAAS,EAAE,KAAK;IAChB,WAAW,EAAE,cAAc;IAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAC3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;YAChC,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;YAEhC,yEAAyE;YACzE,yEAAyE;YACzE,qEAAqE;YACrE,0EAA0E;YAC1E,yEAAyE;YACzE,IAAI,KAA+B,CAAC;YACpC,yEAAyE;YACzE,qEAAqE;YACrE,wEAAwE;YACxE,0EAA0E;YAC1E,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../../../src/core/tools/builtin/shell.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,17 @@ export interface ResolvedShell {
|
|
|
14
14
|
/** True when `shell` is a real bash binary (spawn via `-c`, POSIX semantics). */
|
|
15
15
|
isBash: boolean;
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* True when `p` is the Windows Subsystem for Linux bash *launcher*, not Git Bash.
|
|
19
|
+
*
|
|
20
|
+
* `where bash` on a machine without Git for Windows often returns
|
|
21
|
+
* `C:\Windows\System32\bash.exe` (or the WindowsApps stub). That binary enters
|
|
22
|
+
* a Linux distro with a Linux PATH — Windows `node`/`npm` are invisible, so the
|
|
23
|
+
* agent cannot run builds. Never treat WSL as the agent shell.
|
|
24
|
+
*
|
|
25
|
+
* Kept in lockstep with `src/cli/utils/prereqChecks.ts`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function isWslBashPath(p: string): boolean;
|
|
17
28
|
/**
|
|
18
29
|
* Resolve the shell to use for command execution. Memoized per-process.
|
|
19
30
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shellResolver.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/builtin/shellResolver.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,aAAa;IAC5B;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,uFAAuF;IACvF,GAAG,EAAE,MAAM,CAAC;IACZ,iFAAiF;IACjF,MAAM,EAAE,OAAO,CAAC;CACjB;AAaD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,cAAc,UAAQ,GAAG,aAAa,CA4BlE;AA6CD,4CAA4C;AAC5C,wBAAgB,2BAA2B,IAAI,IAAI,CAGlD"}
|
|
1
|
+
{"version":3,"file":"shellResolver.d.ts","sourceRoot":"","sources":["../../../../src/core/tools/builtin/shellResolver.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,aAAa;IAC5B;;;;;;;;OAQG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,uFAAuF;IACvF,GAAG,EAAE,MAAM,CAAC;IACZ,iFAAiF;IACjF,MAAM,EAAE,OAAO,CAAC;CACjB;AAaD;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAQhD;AAWD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,cAAc,UAAQ,GAAG,aAAa,CA4BlE;AA6CD,4CAA4C;AAC5C,wBAAgB,2BAA2B,IAAI,IAAI,CAGlD"}
|
|
@@ -38,6 +38,40 @@ const STANDARD_BASH_PATHS = [
|
|
|
38
38
|
];
|
|
39
39
|
let memoized = null;
|
|
40
40
|
let warnedFallback = false;
|
|
41
|
+
/**
|
|
42
|
+
* True when `p` is the Windows Subsystem for Linux bash *launcher*, not Git Bash.
|
|
43
|
+
*
|
|
44
|
+
* `where bash` on a machine without Git for Windows often returns
|
|
45
|
+
* `C:\Windows\System32\bash.exe` (or the WindowsApps stub). That binary enters
|
|
46
|
+
* a Linux distro with a Linux PATH — Windows `node`/`npm` are invisible, so the
|
|
47
|
+
* agent cannot run builds. Never treat WSL as the agent shell.
|
|
48
|
+
*
|
|
49
|
+
* Kept in lockstep with `src/cli/utils/prereqChecks.ts`.
|
|
50
|
+
*/
|
|
51
|
+
export function isWslBashPath(p) {
|
|
52
|
+
if (!p || typeof p !== 'string')
|
|
53
|
+
return false;
|
|
54
|
+
// Normalize separators + case for win32 path matching.
|
|
55
|
+
const n = p.replace(/\//g, '\\').toLowerCase();
|
|
56
|
+
if (n.includes('\\windows\\system32\\bash.exe'))
|
|
57
|
+
return true;
|
|
58
|
+
if (n.includes('\\windows\\syswow64\\bash.exe'))
|
|
59
|
+
return true;
|
|
60
|
+
if (n.includes('\\windowsapps\\bash.exe'))
|
|
61
|
+
return true;
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
/** Accept only a real (non-WSL) bash path that exists on disk. */
|
|
65
|
+
function acceptBashPath(p) {
|
|
66
|
+
if (!p || p.trim().length === 0)
|
|
67
|
+
return null;
|
|
68
|
+
const trimmed = p.trim();
|
|
69
|
+
if (isWslBashPath(trimmed))
|
|
70
|
+
return null;
|
|
71
|
+
if (!existsSyncSafe(trimmed))
|
|
72
|
+
return null;
|
|
73
|
+
return trimmed;
|
|
74
|
+
}
|
|
41
75
|
/**
|
|
42
76
|
* Resolve the shell to use for command execution. Memoized per-process.
|
|
43
77
|
*
|
|
@@ -70,29 +104,31 @@ export function resolveShell(forceReResolve = false) {
|
|
|
70
104
|
}
|
|
71
105
|
/** Detection chain for a bash binary on win32. Returns the path or null. */
|
|
72
106
|
function resolveBashWindows() {
|
|
73
|
-
// 1. Explicit override.
|
|
74
|
-
const
|
|
75
|
-
if (
|
|
76
|
-
return
|
|
77
|
-
}
|
|
107
|
+
// 1. Explicit override (WSL launchers rejected — see isWslBashPath).
|
|
108
|
+
const fromEnv = acceptBashPath(process.env.ZELARI_SHELL);
|
|
109
|
+
if (fromEnv)
|
|
110
|
+
return fromEnv;
|
|
78
111
|
// 2. SHELL env var (set by Git Bash / MSYS2 sessions).
|
|
79
|
-
const
|
|
80
|
-
if (
|
|
81
|
-
return
|
|
82
|
-
}
|
|
112
|
+
const fromSession = acceptBashPath(process.env.SHELL);
|
|
113
|
+
if (fromSession)
|
|
114
|
+
return fromSession;
|
|
83
115
|
// 3. Standard install paths.
|
|
84
116
|
for (const p of STANDARD_BASH_PATHS) {
|
|
85
|
-
|
|
86
|
-
|
|
117
|
+
const accepted = acceptBashPath(p);
|
|
118
|
+
if (accepted)
|
|
119
|
+
return accepted;
|
|
87
120
|
}
|
|
88
121
|
// 4. `where bash` — PATH lookup. `where` ships with Windows (a real .exe,
|
|
89
122
|
// so no shell needed — and shell:true + args array is deprecated, DEP0190).
|
|
123
|
+
// Skip WSL launchers; prefer a later non-WSL hit if any.
|
|
90
124
|
try {
|
|
91
125
|
const result = spawnSync('where', ['bash'], { encoding: 'utf-8', windowsHide: true });
|
|
92
126
|
if (result.status === 0 && result.stdout) {
|
|
93
|
-
const
|
|
94
|
-
|
|
95
|
-
|
|
127
|
+
for (const line of result.stdout.split(/\r?\n/)) {
|
|
128
|
+
const accepted = acceptBashPath(line);
|
|
129
|
+
if (accepted)
|
|
130
|
+
return accepted;
|
|
131
|
+
}
|
|
96
132
|
}
|
|
97
133
|
}
|
|
98
134
|
catch {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shellResolver.js","sourceRoot":"","sources":["../../../../src/core/tools/builtin/shellResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAmB/C,iEAAiE;AACjE,MAAM,mBAAmB,GAAG;IAC1B,uCAAuC;IACvC,4CAA4C;IAC5C,6CAA6C;IAC7C,kDAAkD;CACnD,CAAC;AAEF,IAAI,QAAQ,GAAyB,IAAI,CAAC;AAC1C,IAAI,cAAc,GAAG,KAAK,CAAC;AAE3B;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,cAAc,GAAG,KAAK;IACjD,IAAI,QAAQ,IAAI,CAAC,cAAc;QAAE,OAAO,QAAQ,CAAC;IAEjD,qEAAqE;IACrE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,QAAQ,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;QAC1D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,kCAAkC;IAClC,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,IAAI,KAAK,EAAE,CAAC;QACV,QAAQ,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,KAAK,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAClE,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,0EAA0E;IAC1E,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,cAAc,GAAG,IAAI,CAAC;QACtB,sCAAsC;QACtC,OAAO,CAAC,KAAK,CACX,yEAAyE;YACvE,yEAAyE;YACzE,mEAAmE,CACtE,CAAC;IACJ,CAAC;IACD,QAAQ,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC1D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,4EAA4E;AAC5E,SAAS,kBAAkB;IACzB,
|
|
1
|
+
{"version":3,"file":"shellResolver.js","sourceRoot":"","sources":["../../../../src/core/tools/builtin/shellResolver.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zelari/core",
|
|
3
|
-
"version": "1.7.
|
|
3
|
+
"version": "1.7.1",
|
|
4
4
|
"description": "Zelari Code core library — provider-neutral agent loop (AgentHarness), multi-agent council orchestration, and built-in skills. Used by the zelari-code CLI; consumable by other agent frontends.",
|
|
5
5
|
"author": "N-THEM Studio",
|
|
6
6
|
"license": "MIT",
|