@tagma/sdk 0.4.17 → 0.4.19
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/completions/output-check.d.ts.map +1 -1
- package/dist/completions/output-check.js +7 -3
- package/dist/completions/output-check.js.map +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +13 -2
- package/dist/registry.js.map +1 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +78 -10
- package/dist/runner.js.map +1 -1
- package/package.json +2 -2
- package/src/completions/output-check.ts +9 -3
- package/src/registry.ts +15 -2
- package/src/runner.ts +76 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-check.d.ts","sourceRoot":"","sources":["../../src/completions/output-check.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAiC,MAAM,UAAU,CAAC;AAKhF,eAAO,MAAM,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"output-check.d.ts","sourceRoot":"","sources":["../../src/completions/output-check.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAiC,MAAM,UAAU,CAAC;AAKhF,eAAO,MAAM,qBAAqB,EAAE,gBAsFnC,CAAC"}
|
|
@@ -3,12 +3,12 @@ const DEFAULT_TIMEOUT_MS = 30_000;
|
|
|
3
3
|
export const OutputCheckCompletion = {
|
|
4
4
|
name: 'output_check',
|
|
5
5
|
schema: {
|
|
6
|
-
description: 'Pipe task
|
|
6
|
+
description: 'Pipe the task output into a shell command; mark success when that command exits 0. For AI driver tasks the driver-normalized text is piped (not the raw NDJSON); command tasks see their raw stdout.',
|
|
7
7
|
fields: {
|
|
8
8
|
check: {
|
|
9
9
|
type: 'string',
|
|
10
10
|
required: true,
|
|
11
|
-
description: 'Shell command to run.
|
|
11
|
+
description: 'Shell command to run. The task output is piped to its stdin — normalizedOutput when the driver provides one, otherwise raw stdout.',
|
|
12
12
|
placeholder: "grep -q 'PASS'",
|
|
13
13
|
},
|
|
14
14
|
timeout: {
|
|
@@ -47,7 +47,11 @@ export const OutputCheckCompletion = {
|
|
|
47
47
|
try {
|
|
48
48
|
if (proc.stdin) {
|
|
49
49
|
try {
|
|
50
|
-
|
|
50
|
+
// Prefer driver-normalized text (e.g. concatenated message text for
|
|
51
|
+
// AI drivers that emit NDJSON). Falling back to raw stdout keeps
|
|
52
|
+
// command tasks and drivers without parseResult working.
|
|
53
|
+
const payload = result.normalizedOutput ?? result.stdout;
|
|
54
|
+
proc.stdin.write(payload);
|
|
51
55
|
proc.stdin.end(); // no await — consistent with runner.ts; proc.exited handles sync
|
|
52
56
|
}
|
|
53
57
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-check.js","sourceRoot":"","sources":["../../src/completions/output-check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEpD,MAAM,kBAAkB,GAAG,MAAM,CAAC;AAElC,MAAM,CAAC,MAAM,qBAAqB,GAAqB;IACrD,IAAI,EAAE,cAAc;IACpB,MAAM,EAAE;QACN,WAAW,
|
|
1
|
+
{"version":3,"file":"output-check.js","sourceRoot":"","sources":["../../src/completions/output-check.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,KAAK,UAAU,GAAG,YAAY,GAAG,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACf,MAAM,SAAS,CAAC;AAEjB,KAAK,UAAU,GAAG,YAAY,GAAG,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;AAoGrF,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,UAAU,GAAG,WAAW,CAAC;AAErE;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,UAAU,EACjD,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,GACT,cAAc,CA2BhB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAGhF;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,CAS1F;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1E;AAKD,eAAO,MAAM,cAAc,QAA4D,CAAC;AAExF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,IAAI,MAAM,CAE/D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAmB1E;AAED;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,EAAE,CAEjE"}
|
package/dist/registry.js
CHANGED
|
@@ -73,8 +73,19 @@ function validateContract(category, handler) {
|
|
|
73
73
|
}
|
|
74
74
|
break;
|
|
75
75
|
case 'middlewares':
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
// A middleware must provide at least one entry point. `enhanceDoc` is
|
|
77
|
+
// the structured PromptDocument API (preferred); `enhance` is the
|
|
78
|
+
// legacy string-in/string-out API the engine still supports for
|
|
79
|
+
// v0.x plugins. Requiring only `enhance` here rejects every built-in
|
|
80
|
+
// and every plugin written against the current types.
|
|
81
|
+
if (typeof h.enhanceDoc !== 'function' && typeof h.enhance !== 'function') {
|
|
82
|
+
throw new Error(`middlewares plugin "${h.name}" must export enhanceDoc() or enhance()`);
|
|
83
|
+
}
|
|
84
|
+
if (h.enhanceDoc !== undefined && typeof h.enhanceDoc !== 'function') {
|
|
85
|
+
throw new Error(`middlewares plugin "${h.name}".enhanceDoc must be a function or undefined`);
|
|
86
|
+
}
|
|
87
|
+
if (h.enhance !== undefined && typeof h.enhance !== 'function') {
|
|
88
|
+
throw new Error(`middlewares plugin "${h.name}".enhance must be a function or undefined`);
|
|
78
89
|
}
|
|
79
90
|
break;
|
|
80
91
|
}
|
package/dist/registry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAiCnE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAiCnE,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAoJD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAoClF;AAED,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,YAAY,GAAG,IAAI,EAC3B,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,UAAU,CAAC,CAiNrB;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,IAAI,GAAE,UAAe,GACpB,OAAO,CAAC,UAAU,CAAC,CAMrB"}
|
package/dist/runner.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { existsSync, statSync } from 'node:fs';
|
|
2
|
-
import { isAbsolute, join } from 'node:path';
|
|
1
|
+
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
2
|
+
import { dirname, isAbsolute, join, resolve as pathResolve } from 'node:path';
|
|
3
3
|
import { shellArgs } from './utils';
|
|
4
4
|
// Delay before escalating SIGTERM to SIGKILL when killing a timed-out process.
|
|
5
5
|
const SIGKILL_DELAY_MS = 3_000;
|
|
@@ -36,13 +36,23 @@ function killProcessTree(pid) {
|
|
|
36
36
|
* manually resolve the command against PATH + PATHEXT here so Drivers can
|
|
37
37
|
* keep using short names (`claude`, `npx`, etc.) cross-platform.
|
|
38
38
|
*
|
|
39
|
+
* We also auto-unwrap npm-generated .cmd shims into direct `node <js>`
|
|
40
|
+
* invocations. Spawning the .cmd routes argv through cmd.exe, which silently
|
|
41
|
+
* truncates any argv element at the first newline — a multi-line prompt
|
|
42
|
+
* reaches the child as just its first line. By targeting the underlying JS
|
|
43
|
+
* entry point directly we bypass cmd.exe entirely and newlines survive.
|
|
44
|
+
*
|
|
39
45
|
* Results are cached by (cmd, envPath) key so repeated spawns of the same
|
|
40
|
-
* command don't block the event loop with synchronous PATH scans.
|
|
46
|
+
* command don't block the event loop with synchronous PATH/shim scans.
|
|
41
47
|
*
|
|
42
48
|
* Returns the original name if resolution fails; Bun will raise the same
|
|
43
49
|
* ENOENT it would have otherwise.
|
|
44
50
|
*/
|
|
45
51
|
const RESOLVED_EXE_CACHE_MAX = 128;
|
|
52
|
+
// A cache entry is the replacement argv head for the command:
|
|
53
|
+
// - [path] — a single resolved executable (e.g. `foo.exe`)
|
|
54
|
+
// - [node, jsEntry] — an npm-shim unwrapped into `node <js>`
|
|
55
|
+
// - null — resolution failed, leave the original name
|
|
46
56
|
const resolvedExeCache = new Map();
|
|
47
57
|
/** Evict the oldest entry when the cache is at capacity. */
|
|
48
58
|
function evictIfFull() {
|
|
@@ -53,19 +63,76 @@ function evictIfFull() {
|
|
|
53
63
|
resolvedExeCache.delete(oldest);
|
|
54
64
|
}
|
|
55
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Parse an npm-generated .cmd shim and return the underlying JS entry path.
|
|
68
|
+
*
|
|
69
|
+
* npm's shim has the shape:
|
|
70
|
+
* "%_prog%" "%dp0%\node_modules\<pkg>\bin\<script>" %*
|
|
71
|
+
*
|
|
72
|
+
* We extract the second double-quoted path, substitute `%dp0%` with the
|
|
73
|
+
* wrapper's own directory, and return the absolute JS path. Returns null for
|
|
74
|
+
* anything that doesn't match the npm-shim pattern (user-written .cmd
|
|
75
|
+
* scripts, non-node tools, etc.), which keeps the caller on the .cmd path.
|
|
76
|
+
*/
|
|
77
|
+
function parseNpmCmdShim(wrapperPath) {
|
|
78
|
+
let contents;
|
|
79
|
+
try {
|
|
80
|
+
contents = readFileSync(wrapperPath, 'utf8');
|
|
81
|
+
}
|
|
82
|
+
catch {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
const execLine = contents
|
|
86
|
+
.split(/\r?\n/)
|
|
87
|
+
.find((l) => l.includes('%*') && l.includes('%dp0%'));
|
|
88
|
+
if (!execLine)
|
|
89
|
+
return null;
|
|
90
|
+
const quoted = execLine.match(/"([^"]+)"/g);
|
|
91
|
+
if (!quoted || quoted.length < 2)
|
|
92
|
+
return null;
|
|
93
|
+
const rawTarget = quoted[1].slice(1, -1); // strip surrounding quotes
|
|
94
|
+
const wrapperDir = dirname(wrapperPath);
|
|
95
|
+
// %dp0% expands to wrapper dir with a trailing backslash; strip either form.
|
|
96
|
+
const expanded = rawTarget.replace(/%dp0%\\?/i, '').replace(/\//g, '\\');
|
|
97
|
+
const abs = isAbsolute(expanded) ? expanded : pathResolve(wrapperDir, expanded);
|
|
98
|
+
return existsSync(abs) ? abs : null;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Given a resolved .cmd/.bat path, return the argv prefix that should be
|
|
102
|
+
* spawned instead. For npm shims this is `[node, js-entry]`; for everything
|
|
103
|
+
* else it's `[wrapperPath]` (unchanged, caller keeps using the wrapper).
|
|
104
|
+
*/
|
|
105
|
+
function unwrapCmdShim(wrapperPath) {
|
|
106
|
+
if (!/\.(cmd|bat)$/i.test(wrapperPath))
|
|
107
|
+
return [wrapperPath];
|
|
108
|
+
const jsEntry = parseNpmCmdShim(wrapperPath);
|
|
109
|
+
if (!jsEntry)
|
|
110
|
+
return [wrapperPath];
|
|
111
|
+
// Prefer node colocated with the wrapper (npm global bin often ships one).
|
|
112
|
+
const colocated = join(dirname(wrapperPath), 'node.exe');
|
|
113
|
+
const nodeExe = existsSync(colocated) ? colocated : 'node';
|
|
114
|
+
return [nodeExe, jsEntry];
|
|
115
|
+
}
|
|
56
116
|
function resolveWindowsExe(args, envPath) {
|
|
57
117
|
if (process.platform !== 'win32' || args.length === 0)
|
|
58
118
|
return args;
|
|
59
119
|
const cmd = args[0];
|
|
60
|
-
// Already a full path or has an extension → trust caller.
|
|
61
|
-
|
|
120
|
+
// Already a full path or has an extension → trust caller. We still attempt
|
|
121
|
+
// shim unwrapping when the caller handed us a bare .cmd/.bat so drivers
|
|
122
|
+
// that resolve the shim themselves still benefit from the cmd.exe bypass.
|
|
123
|
+
if (isAbsolute(cmd) || /\.[a-z0-9]+$/i.test(cmd)) {
|
|
124
|
+
if (/\.(cmd|bat)$/i.test(cmd) && existsSync(cmd)) {
|
|
125
|
+
const unwrapped = unwrapCmdShim(cmd);
|
|
126
|
+
if (unwrapped.length === 2)
|
|
127
|
+
return [...unwrapped, ...args.slice(1)];
|
|
128
|
+
}
|
|
62
129
|
return args;
|
|
130
|
+
}
|
|
63
131
|
const cacheKey = `${cmd}\x00${envPath}`;
|
|
64
132
|
if (resolvedExeCache.has(cacheKey)) {
|
|
65
|
-
// ?? null coerces undefined→null so
|
|
66
|
-
// check narrows it to string without a spurious 'undefined' arm.
|
|
133
|
+
// ?? null coerces undefined→null so the subsequent guard narrows cleanly.
|
|
67
134
|
const cached = resolvedExeCache.get(cacheKey) ?? null;
|
|
68
|
-
return cached !== null ? [cached, ...args.slice(1)] : args;
|
|
135
|
+
return cached !== null ? [...cached, ...args.slice(1)] : args;
|
|
69
136
|
}
|
|
70
137
|
const exts = (process.env.PATHEXT ?? '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC')
|
|
71
138
|
.split(';')
|
|
@@ -76,9 +143,10 @@ function resolveWindowsExe(args, envPath) {
|
|
|
76
143
|
const candidate = join(dir, cmd + ext);
|
|
77
144
|
try {
|
|
78
145
|
if (existsSync(candidate) && statSync(candidate).isFile()) {
|
|
146
|
+
const head = unwrapCmdShim(candidate);
|
|
79
147
|
evictIfFull();
|
|
80
|
-
resolvedExeCache.set(cacheKey,
|
|
81
|
-
return [
|
|
148
|
+
resolvedExeCache.set(cacheKey, head);
|
|
149
|
+
return [...head, ...args.slice(1)];
|
|
82
150
|
}
|
|
83
151
|
}
|
|
84
152
|
catch {
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,+EAA+E;AAC/E,MAAM,gBAAgB,GAAG,KAAK,CAAC;AAE/B;;;;;GAKG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;YAC1E,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACvD,+EAA+E;YAC/E,IAAI,MAAM,CAAC,QAAQ,KAAK,GAAG,EAAE,CAAC;gBAC5B,OAAO,CAAC,KAAK,CACX,qCAAqC,MAAM,CAAC,QAAQ,YAAY,GAAG,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CACxF,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mDAAmD;IACrD,CAAC;AACH,CAAC;AAOD;;;;;;;;;;;;GAYG;AACH,MAAM,sBAAsB,GAAG,GAAG,CAAC;AACnC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAyB,CAAC;AAE1D,4DAA4D;AAC5D,SAAS,WAAW;IAClB,IAAI,gBAAgB,CAAC,IAAI,IAAI,sBAAsB,EAAE,CAAC;QACpD,0EAA0E;QAC1E,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QACpD,IAAI,MAAM,KAAK,SAAS;YAAE,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAuB,EAAE,OAAe;IACjE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACnE,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;IACrB,0DAA0D;IAC1D,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAE9D,MAAM,QAAQ,GAAG,GAAG,GAAG,OAAO,OAAO,EAAE,CAAC;IACxC,IAAI,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,2EAA2E;QAC3E,iEAAiE;QACjE,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;QACtD,OAAO,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7D,CAAC;IAED,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,uDAAuD,CAAC;SAC1F,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEhD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;YACvC,IAAI,CAAC;gBACH,IAAI,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC1D,WAAW,EAAE,CAAC;oBACd,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;oBAC1C,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IACD,WAAW,EAAE,CAAC;IACd,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrC,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,UAAU,CAAC,MAAc,EAAE,UAAkB;IACpD,OAAO;QACL,QAAQ,EAAE,CAAC,CAAC;QACZ,MAAM,EAAE,EAAE;QACV,MAAM;QACN,UAAU,EAAE,IAAI;QAChB,UAAU;QACV,SAAS,EAAE,IAAI;QACf,gBAAgB,EAAE,IAAI;QACtB,WAAW,EAAE,aAAa;KAC3B,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAa,EAAE,UAAkB;IACjE,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,WAAW,UAAU,2BAA2B,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,6BAA6B,CAAC;IAC3H,CAAC;IACD,MAAM,CAAC,GAAG,IAA+B,CAAC;IAC1C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3B,OAAO,WAAW,UAAU,6CAA6C,OAAO,CAAC,CAAC,IAAI,qBAAqB,CAAC;IAC9G,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,WAAW,UAAU,kDAAkD,CAAC;IACjF,CAAC;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,WAAW,UAAU,qCAAqC,CAAC,aAAa,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC;QACrH,CAAC;IACH,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5D,OAAO,WAAW,UAAU,kEAAkE,CAAC;IACjG,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACrD,OAAO,WAAW,UAAU,4CAA4C,OAAO,CAAC,CAAC,GAAG,gCAAgC,CAAC;IACvH,CAAC;IACD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QACzD,OAAO,WAAW,UAAU,8CAA8C,OAAO,CAAC,CAAC,KAAK,gCAAgC,CAAC;IAC3H,CAAC;IACD,IAAI,CAAC,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;YAChE,OAAO,WAAW,UAAU,6DAA6D,CAAC;QAC5F,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAA8B,CAAC,EAAE,CAAC;YACtE,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC1B,OAAO,WAAW,UAAU,oCAAoC,CAAC,YAAY,OAAO,CAAC,mBAAmB,CAAC;YAC3G,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAAe,EACf,MAA2B,EAC3B,OAAmB,EAAE;IAErB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACnC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAChC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC;IAE5D,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,OAAO,UAAU,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;IACxD,CAAC;IAED,sEAAsE;IACtE,yEAAyE;IACzE,4EAA4E;IAC5E,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,WAAW,CAAC,CAAC;IAC7E,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAC,eAAe,EAAE,OAAO,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,SAAS,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC;IAC1D,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAE5F,yEAAyE;IACzE,IAAI,IAAkC,CAAC;IACvC,IAAI,CAAC;QACH,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,YAAwB,EAAE;YACzC,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,GAAG,EAAE,SAAS;YACd,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;SACvC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,0EAA0E;IAC1E,qEAAqE;IACrE,8DAA8D;IAC9D,sBAAsB;IACtB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,uCAAuC;QACzC,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,KAAK,GAAyC,IAAI,CAAC;IACvD,IAAI,UAAU,GAAyC,IAAI,CAAC;IAE5D,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,IAAI,UAAU;YAAE,OAAO;QACvB,UAAU,GAAG,IAAI,CAAC;QAElB,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACjC,sEAAsE;YACtE,oEAAoE;YACpE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACrB,+DAA+D;YAC/D,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC3B,IAAI,CAAC;oBACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACvB,CAAC;gBAAC,MAAM,CAAC;oBACP,oBAAoB;gBACtB,CAAC;YACH,CAAC,EAAE,gBAAgB,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,SAAS,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAC/B,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACtB,QAAQ,GAAG,IAAI,CAAC;YAChB,cAAc,EAAE,CAAC;QACnB,CAAC,EAAE,SAAS,CAAC,CAAC;IAChB,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,cAAc,EAAE,CAAC;IACvC,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,cAAc,EAAE,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,YAAY,GAAG,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAE/E,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACnD,IAAI,CAAC,MAAM;QACX,YAAY,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACtE,YAAY,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;KACvE,CAAC,CAAC;IAEH,0EAA0E;IAC1E,IAAI,KAAK;QAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,UAAU;QAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,MAAM;QAAE,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEzD,MAAM,UAAU,GAAG,OAAO,EAAE,CAAC;IAE7B,yEAAyE;IACzE,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,sEAAsE;IACtE,IAAI,UAAU,IAAI,QAAQ,EAAE,CAAC;QAC3B,OAAO;YACL,QAAQ,EAAE,CAAC,CAAC;YACZ,MAAM;YACN,MAAM;YACN,UAAU,EAAE,IAAI;YAChB,UAAU;YACV,SAAS,EAAE,IAAI;YACf,gBAAgB,EAAE,IAAI;YACtB,wEAAwE;YACxE,mEAAmE;YACnE,WAAW,EAAE,SAAS;SACvB,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,wEAAwE;IACxE,uEAAuE;IACvE,sEAAsE;IACtE,4DAA4D;IAC5D,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,gBAAgB,GAAkB,IAAI,CAAC;IAC3C,yEAAyE;IACzE,yEAAyE;IACzE,0EAA0E;IAC1E,qEAAqE;IACrE,yEAAyE;IACzE,IAAI,oBAAoB,GAAkB,IAAI,CAAC;IAC/C,IAAI,MAAM,EAAE,WAAW,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACrC,IAAI,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBACjF,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;gBAC7B,CAAC;gBACD,IAAI,OAAO,IAAI,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;oBAC9C,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAC3C,CAAC;gBACD,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;oBAC/B,oBAAoB;wBAClB,OAAO,IAAI,CAAC,kBAAkB,KAAK,QAAQ;4BACzC,CAAC,CAAC,IAAI,CAAC,kBAAkB;4BACzB,CAAC,CAAC,8CAA8C,CAAC;gBACvD,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,+DAA+D;YAC/D,mEAAmE;YACnE,oEAAoE;YACpE,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,IAAI,GAAG,sBAAsB,MAAM,CAAC,IAAI,wBAAwB,GAAG,EAAE,CAAC;YAC5E,OAAO;gBACL,QAAQ;gBACR,MAAM;gBACN,MAAM,EAAE,MAAM,GAAG,IAAI;gBACrB,UAAU,EAAE,IAAI;gBAChB,UAAU;gBACV,SAAS,EAAE,IAAI;gBACf,gBAAgB,EAAE,IAAI;gBACtB,qEAAqE;gBACrE,oEAAoE;gBACpE,mEAAmE;gBACnE,qEAAqE;gBACrE,+CAA+C;gBAC/C,WAAW,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc;aACpD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,qEAAqE;IACrE,8CAA8C;IAC9C,IAAI,oBAAoB,KAAK,IAAI,EAAE,CAAC;QAClC,OAAO;YACL,QAAQ,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;YACvC,MAAM;YACN,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,YAAY,oBAAoB,EAAE;YACzF,UAAU,EAAE,IAAI;YAChB,UAAU;YACV,SAAS;YACT,gBAAgB;YAChB,WAAW,EAAE,cAAc;SAC5B,CAAC;IACJ,CAAC;IACD,OAAO;QACL,QAAQ;QACR,MAAM;QACN,MAAM;QACN,UAAU,EAAE,IAAI;QAChB,UAAU;QACV,SAAS;QACT,gBAAgB;QAChB,qEAAqE;QACrE,qEAAqE;QACrE,WAAW,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc;KACpD,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAe,EACf,GAAW,EACX,OAAmB,EAAE;IAErB,MAAM,IAAI,GAAc;QACtB,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC;QACxB,GAAG;KACJ,CAAC;IACF,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tagma/sdk",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.19",
|
|
4
4
|
"description": "Local AI task orchestration engine — core SDK for tagma pipelines",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"release:publish": "bun scripts/release.ts --publish"
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@tagma/types": "0.2.
|
|
45
|
+
"@tagma/types": "0.2.9",
|
|
46
46
|
"js-yaml": "^4.1.0",
|
|
47
47
|
"chokidar": "^4.0.0"
|
|
48
48
|
},
|
|
@@ -6,12 +6,14 @@ const DEFAULT_TIMEOUT_MS = 30_000;
|
|
|
6
6
|
export const OutputCheckCompletion: CompletionPlugin = {
|
|
7
7
|
name: 'output_check',
|
|
8
8
|
schema: {
|
|
9
|
-
description:
|
|
9
|
+
description:
|
|
10
|
+
'Pipe the task output into a shell command; mark success when that command exits 0. For AI driver tasks the driver-normalized text is piped (not the raw NDJSON); command tasks see their raw stdout.',
|
|
10
11
|
fields: {
|
|
11
12
|
check: {
|
|
12
13
|
type: 'string',
|
|
13
14
|
required: true,
|
|
14
|
-
description:
|
|
15
|
+
description:
|
|
16
|
+
'Shell command to run. The task output is piped to its stdin — normalizedOutput when the driver provides one, otherwise raw stdout.',
|
|
15
17
|
placeholder: "grep -q 'PASS'",
|
|
16
18
|
},
|
|
17
19
|
timeout: {
|
|
@@ -59,7 +61,11 @@ export const OutputCheckCompletion: CompletionPlugin = {
|
|
|
59
61
|
try {
|
|
60
62
|
if (proc.stdin) {
|
|
61
63
|
try {
|
|
62
|
-
|
|
64
|
+
// Prefer driver-normalized text (e.g. concatenated message text for
|
|
65
|
+
// AI drivers that emit NDJSON). Falling back to raw stdout keeps
|
|
66
|
+
// command tasks and drivers without parseResult working.
|
|
67
|
+
const payload = result.normalizedOutput ?? result.stdout;
|
|
68
|
+
proc.stdin.write(payload);
|
|
63
69
|
proc.stdin.end(); // no await — consistent with runner.ts; proc.exited handles sync
|
|
64
70
|
} catch (err: unknown) {
|
|
65
71
|
// EPIPE is expected when the check process exits before reading all of stdin
|
package/src/registry.ts
CHANGED
|
@@ -89,8 +89,21 @@ function validateContract(category: PluginCategory, handler: unknown): void {
|
|
|
89
89
|
}
|
|
90
90
|
break;
|
|
91
91
|
case 'middlewares':
|
|
92
|
-
|
|
93
|
-
|
|
92
|
+
// A middleware must provide at least one entry point. `enhanceDoc` is
|
|
93
|
+
// the structured PromptDocument API (preferred); `enhance` is the
|
|
94
|
+
// legacy string-in/string-out API the engine still supports for
|
|
95
|
+
// v0.x plugins. Requiring only `enhance` here rejects every built-in
|
|
96
|
+
// and every plugin written against the current types.
|
|
97
|
+
if (typeof h.enhanceDoc !== 'function' && typeof h.enhance !== 'function') {
|
|
98
|
+
throw new Error(
|
|
99
|
+
`middlewares plugin "${h.name}" must export enhanceDoc() or enhance()`,
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
if (h.enhanceDoc !== undefined && typeof h.enhanceDoc !== 'function') {
|
|
103
|
+
throw new Error(`middlewares plugin "${h.name}".enhanceDoc must be a function or undefined`);
|
|
104
|
+
}
|
|
105
|
+
if (h.enhance !== undefined && typeof h.enhance !== 'function') {
|
|
106
|
+
throw new Error(`middlewares plugin "${h.name}".enhance must be a function or undefined`);
|
|
94
107
|
}
|
|
95
108
|
break;
|
|
96
109
|
}
|
package/src/runner.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { existsSync, statSync } from 'node:fs';
|
|
2
|
-
import { isAbsolute, join } from 'node:path';
|
|
1
|
+
import { existsSync, readFileSync, statSync } from 'node:fs';
|
|
2
|
+
import { dirname, isAbsolute, join, resolve as pathResolve } from 'node:path';
|
|
3
3
|
import type { SpawnSpec, DriverPlugin, TaskResult } from './types';
|
|
4
4
|
import { shellArgs } from './utils';
|
|
5
5
|
|
|
@@ -45,14 +45,24 @@ export interface RunOptions {
|
|
|
45
45
|
* manually resolve the command against PATH + PATHEXT here so Drivers can
|
|
46
46
|
* keep using short names (`claude`, `npx`, etc.) cross-platform.
|
|
47
47
|
*
|
|
48
|
+
* We also auto-unwrap npm-generated .cmd shims into direct `node <js>`
|
|
49
|
+
* invocations. Spawning the .cmd routes argv through cmd.exe, which silently
|
|
50
|
+
* truncates any argv element at the first newline — a multi-line prompt
|
|
51
|
+
* reaches the child as just its first line. By targeting the underlying JS
|
|
52
|
+
* entry point directly we bypass cmd.exe entirely and newlines survive.
|
|
53
|
+
*
|
|
48
54
|
* Results are cached by (cmd, envPath) key so repeated spawns of the same
|
|
49
|
-
* command don't block the event loop with synchronous PATH scans.
|
|
55
|
+
* command don't block the event loop with synchronous PATH/shim scans.
|
|
50
56
|
*
|
|
51
57
|
* Returns the original name if resolution fails; Bun will raise the same
|
|
52
58
|
* ENOENT it would have otherwise.
|
|
53
59
|
*/
|
|
54
60
|
const RESOLVED_EXE_CACHE_MAX = 128;
|
|
55
|
-
|
|
61
|
+
// A cache entry is the replacement argv head for the command:
|
|
62
|
+
// - [path] — a single resolved executable (e.g. `foo.exe`)
|
|
63
|
+
// - [node, jsEntry] — an npm-shim unwrapped into `node <js>`
|
|
64
|
+
// - null — resolution failed, leave the original name
|
|
65
|
+
const resolvedExeCache = new Map<string, readonly string[] | null>();
|
|
56
66
|
|
|
57
67
|
/** Evict the oldest entry when the cache is at capacity. */
|
|
58
68
|
function evictIfFull(): void {
|
|
@@ -63,18 +73,72 @@ function evictIfFull(): void {
|
|
|
63
73
|
}
|
|
64
74
|
}
|
|
65
75
|
|
|
76
|
+
/**
|
|
77
|
+
* Parse an npm-generated .cmd shim and return the underlying JS entry path.
|
|
78
|
+
*
|
|
79
|
+
* npm's shim has the shape:
|
|
80
|
+
* "%_prog%" "%dp0%\node_modules\<pkg>\bin\<script>" %*
|
|
81
|
+
*
|
|
82
|
+
* We extract the second double-quoted path, substitute `%dp0%` with the
|
|
83
|
+
* wrapper's own directory, and return the absolute JS path. Returns null for
|
|
84
|
+
* anything that doesn't match the npm-shim pattern (user-written .cmd
|
|
85
|
+
* scripts, non-node tools, etc.), which keeps the caller on the .cmd path.
|
|
86
|
+
*/
|
|
87
|
+
function parseNpmCmdShim(wrapperPath: string): string | null {
|
|
88
|
+
let contents: string;
|
|
89
|
+
try {
|
|
90
|
+
contents = readFileSync(wrapperPath, 'utf8');
|
|
91
|
+
} catch {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
const execLine = contents
|
|
95
|
+
.split(/\r?\n/)
|
|
96
|
+
.find((l) => l.includes('%*') && l.includes('%dp0%'));
|
|
97
|
+
if (!execLine) return null;
|
|
98
|
+
const quoted = execLine.match(/"([^"]+)"/g);
|
|
99
|
+
if (!quoted || quoted.length < 2) return null;
|
|
100
|
+
const rawTarget = quoted[1]!.slice(1, -1); // strip surrounding quotes
|
|
101
|
+
const wrapperDir = dirname(wrapperPath);
|
|
102
|
+
// %dp0% expands to wrapper dir with a trailing backslash; strip either form.
|
|
103
|
+
const expanded = rawTarget.replace(/%dp0%\\?/i, '').replace(/\//g, '\\');
|
|
104
|
+
const abs = isAbsolute(expanded) ? expanded : pathResolve(wrapperDir, expanded);
|
|
105
|
+
return existsSync(abs) ? abs : null;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Given a resolved .cmd/.bat path, return the argv prefix that should be
|
|
110
|
+
* spawned instead. For npm shims this is `[node, js-entry]`; for everything
|
|
111
|
+
* else it's `[wrapperPath]` (unchanged, caller keeps using the wrapper).
|
|
112
|
+
*/
|
|
113
|
+
function unwrapCmdShim(wrapperPath: string): readonly string[] {
|
|
114
|
+
if (!/\.(cmd|bat)$/i.test(wrapperPath)) return [wrapperPath];
|
|
115
|
+
const jsEntry = parseNpmCmdShim(wrapperPath);
|
|
116
|
+
if (!jsEntry) return [wrapperPath];
|
|
117
|
+
// Prefer node colocated with the wrapper (npm global bin often ships one).
|
|
118
|
+
const colocated = join(dirname(wrapperPath), 'node.exe');
|
|
119
|
+
const nodeExe = existsSync(colocated) ? colocated : 'node';
|
|
120
|
+
return [nodeExe, jsEntry];
|
|
121
|
+
}
|
|
122
|
+
|
|
66
123
|
function resolveWindowsExe(args: readonly string[], envPath: string): readonly string[] {
|
|
67
124
|
if (process.platform !== 'win32' || args.length === 0) return args;
|
|
68
125
|
const cmd = args[0]!;
|
|
69
|
-
// Already a full path or has an extension → trust caller.
|
|
70
|
-
|
|
126
|
+
// Already a full path or has an extension → trust caller. We still attempt
|
|
127
|
+
// shim unwrapping when the caller handed us a bare .cmd/.bat so drivers
|
|
128
|
+
// that resolve the shim themselves still benefit from the cmd.exe bypass.
|
|
129
|
+
if (isAbsolute(cmd) || /\.[a-z0-9]+$/i.test(cmd)) {
|
|
130
|
+
if (/\.(cmd|bat)$/i.test(cmd) && existsSync(cmd)) {
|
|
131
|
+
const unwrapped = unwrapCmdShim(cmd);
|
|
132
|
+
if (unwrapped.length === 2) return [...unwrapped, ...args.slice(1)];
|
|
133
|
+
}
|
|
134
|
+
return args;
|
|
135
|
+
}
|
|
71
136
|
|
|
72
137
|
const cacheKey = `${cmd}\x00${envPath}`;
|
|
73
138
|
if (resolvedExeCache.has(cacheKey)) {
|
|
74
|
-
// ?? null coerces undefined→null so
|
|
75
|
-
// check narrows it to string without a spurious 'undefined' arm.
|
|
139
|
+
// ?? null coerces undefined→null so the subsequent guard narrows cleanly.
|
|
76
140
|
const cached = resolvedExeCache.get(cacheKey) ?? null;
|
|
77
|
-
return cached !== null ? [cached, ...args.slice(1)] : args;
|
|
141
|
+
return cached !== null ? [...cached, ...args.slice(1)] : args;
|
|
78
142
|
}
|
|
79
143
|
|
|
80
144
|
const exts = (process.env.PATHEXT ?? '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC')
|
|
@@ -87,9 +151,10 @@ function resolveWindowsExe(args: readonly string[], envPath: string): readonly s
|
|
|
87
151
|
const candidate = join(dir, cmd + ext);
|
|
88
152
|
try {
|
|
89
153
|
if (existsSync(candidate) && statSync(candidate).isFile()) {
|
|
154
|
+
const head = unwrapCmdShim(candidate);
|
|
90
155
|
evictIfFull();
|
|
91
|
-
resolvedExeCache.set(cacheKey,
|
|
92
|
-
return [
|
|
156
|
+
resolvedExeCache.set(cacheKey, head);
|
|
157
|
+
return [...head, ...args.slice(1)];
|
|
93
158
|
}
|
|
94
159
|
} catch {
|
|
95
160
|
/* stat race — skip */
|