@botiverse/oar 0.66.0 → 0.66.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.
@@ -1,8 +1,9 @@
1
1
  export { resolveExecutable, resolveExecutableAll } from "./resolve.js";
2
+ export { isWindowsShim, parseWindowsShim, windowsSpawnTarget, type ResolvedShim } from "./windows-shim.js";
2
3
  export { isolatedOutput, runIsolated, type IsolatedResult } from "./isolated.js";
3
4
  export type { ExecutableResult, ExecutableRunner, ExecutableRunOptions } from "./run.js";
4
5
  export { runExecutable } from "./run.js";
5
6
  export { readExecutableVersion, type VersionReader } from "./version.js";
6
7
  export type { LineProcess, LineProcessOptions } from "./process.js";
7
- export { KILL_GRACE_MS, killGraceMs, killProcessTree, OWN_PROCESS_GROUP, requiresShell, signalProcessGroup, spawnLineProcess, trackOwnedProcess, } from "./process.js";
8
+ export { KILL_GRACE_MS, killGraceMs, killProcessTree, OWN_PROCESS_GROUP, signalProcessGroup, spawnLineProcess, trackOwnedProcess, } from "./process.js";
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACjF,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACzE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AACjF,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AACzE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAC"}
@@ -1,6 +1,7 @@
1
1
  export { resolveExecutable, resolveExecutableAll } from "./resolve.js";
2
+ export { isWindowsShim, parseWindowsShim, windowsSpawnTarget } from "./windows-shim.js";
2
3
  export { isolatedOutput, runIsolated } from "./isolated.js";
3
4
  export { runExecutable } from "./run.js";
4
5
  export { readExecutableVersion } from "./version.js";
5
- export { KILL_GRACE_MS, killGraceMs, killProcessTree, OWN_PROCESS_GROUP, requiresShell, signalProcessGroup, spawnLineProcess, trackOwnedProcess, } from "./process.js";
6
+ export { KILL_GRACE_MS, killGraceMs, killProcessTree, OWN_PROCESS_GROUP, signalProcessGroup, spawnLineProcess, trackOwnedProcess, } from "./process.js";
6
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/executable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAuB,MAAM,eAAe,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAsB,MAAM,cAAc,CAAC;AAEzE,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/shared/executable/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAqB,MAAM,mBAAmB,CAAC;AAC3G,OAAO,EAAE,cAAc,EAAE,WAAW,EAAuB,MAAM,eAAe,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAsB,MAAM,cAAc,CAAC;AAEzE,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,cAAc,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"isolated.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/isolated.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAwBD;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CAyChI;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9F"}
1
+ {"version":3,"file":"isolated.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/isolated.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAwBD;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,cAAc,CAAC,CA4ChI;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9F"}
@@ -1,5 +1,6 @@
1
1
  import spawn from "cross-spawn";
2
2
  import { killGraceMs, killProcessTree, OWN_PROCESS_GROUP, signalProcessGroup, trackOwnedProcess } from "./process.js";
3
+ import { windowsSpawnTarget } from "./windows-shim.js";
3
4
  const OUTPUT_LIMIT = 1024 * 1024;
4
5
  /** After the command itself exits, how long a process it left holding the output pipes may keep them. */
5
6
  const PIPE_DRAIN_MS = 2000;
@@ -27,7 +28,10 @@ function stopTree(child) {
27
28
  * or left running after it.
28
29
  */
29
30
  export async function runIsolated(command, args, options) {
30
- const child = spawn(command, [...args], {
31
+ // On Windows a `.cmd`/`.bat` shim resolves to the Node interpreter and
32
+ // script it wraps, so no argument reaches `cmd.exe` (windows-shim.ts).
33
+ const target = windowsSpawnTarget(command, args);
34
+ const child = spawn(target.command, [...target.args], {
31
35
  env: options.env,
32
36
  stdio: ["ignore", "pipe", "pipe"],
33
37
  detached: OWN_PROCESS_GROUP,
@@ -1 +1 @@
1
- {"version":3,"file":"isolated.js","sourceRoot":"","sources":["../../../src/shared/executable/isolated.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"isolated.js","sourceRoot":"","sources":["../../../src/shared/executable/isolated.ts"],"names":[],"mappings":"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"}
@@ -96,11 +96,11 @@ export interface LineProcess {
96
96
  * alone when the walk fails.
97
97
  */
98
98
  export declare function killProcessTree(child: ChildProcess): void;
99
- /** Windows npm shims need a shell for one-shot execFile calls. */
100
- export declare function requiresShell(command: string, platform: NodeJS.Platform): boolean;
101
99
  /**
102
- * Spawn through cross-spawn so Windows .cmd shims preserve multi-word args.
103
- * Line parsing is attached lazily; protocol SDKs can consume the raw streams.
100
+ * Spawn through cross-spawn. On Windows a `.cmd`/`.bat` shim is first
101
+ * resolved to the Node interpreter and script it wraps, so a shim's arguments
102
+ * never reach `cmd.exe` (windows-shim.ts). Line parsing is attached lazily;
103
+ * protocol SDKs can consume the raw streams.
104
104
  */
105
105
  export declare function spawnLineProcess(command: string, args: readonly string[], options?: LineProcessOptions): LineProcess;
106
106
  //# sourceMappingURL=process.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAuD,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEhH,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,QAAS,CAAC;AAEpC;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAIxE;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,SAA+B,CAAC;AAE9D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAWpF;AAED,8EAA8E;AAC9E,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,kEAAkE;IAClE,WAAW,IAAI,kBAAkB,CAAC;IAClC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,yEAAyE;IACzE,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC9C,+DAA+D;IAC/D,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IACrD;;;;;;;OAOG;IACH,IAAI,IAAI,IAAI,CAAC;IACb,yGAAyG;IACzG,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;CAC5D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAWzD;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAEjF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,kBAAuB,GAC/B,WAAW,CAqJb"}
1
+ {"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/process.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAuD,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEhH,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAI7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IACjC;;;;;;;;;OASG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,QAAS,CAAC;AAEpC;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,CAIxE;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,SAA+B,CAAC;AAE9D;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAWpF;AAED,8EAA8E;AAC9E,MAAM,WAAW,WAAW;IAC1B,8EAA8E;IAC9E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,kEAAkE;IAClE,WAAW,IAAI,kBAAkB,CAAC;IAClC,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,yEAAyE;IACzE,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IAC9C,+DAA+D;IAC/D,MAAM,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,CAAC;IACrD;;;;;;;OAOG;IACH,IAAI,IAAI,IAAI,CAAC;IACb,yGAAyG;IACzG,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC;CAC5D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAWzD;AAGD;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,GAAE,kBAAuB,GAC/B,WAAW,CAsJb"}
@@ -5,6 +5,7 @@ import { nativeError, spawnChecked, spawnFailure, StderrTail } from "./diagnosti
5
5
  import { trackOwnedProcess } from "./ownership.js";
6
6
  import { treeResourcesReader } from "./process-resources.js";
7
7
  import { descendantsOf, killEntries, readProcessTable } from "./process-tree.js";
8
+ import { windowsSpawnTarget } from "./windows-shim.js";
8
9
  export { trackOwnedProcess } from "./ownership.js";
9
10
  /**
10
11
  * How long a process asked to stop (SIGTERM) gets before it is killed outright
@@ -75,16 +76,15 @@ export function killProcessTree(child) {
75
76
  });
76
77
  trackOwnedProcess(killer);
77
78
  }
78
- /** Windows npm shims need a shell for one-shot execFile calls. */
79
- export function requiresShell(command, platform) {
80
- return platform === "win32" && /\.(?:cmd|bat)$/iu.test(command);
81
- }
82
79
  /**
83
- * Spawn through cross-spawn so Windows .cmd shims preserve multi-word args.
84
- * Line parsing is attached lazily; protocol SDKs can consume the raw streams.
80
+ * Spawn through cross-spawn. On Windows a `.cmd`/`.bat` shim is first
81
+ * resolved to the Node interpreter and script it wraps, so a shim's arguments
82
+ * never reach `cmd.exe` (windows-shim.ts). Line parsing is attached lazily;
83
+ * protocol SDKs can consume the raw streams.
85
84
  */
86
85
  export function spawnLineProcess(command, args, options = {}) {
87
- const child = spawnChecked(() => spawn(command, [...args], {
86
+ const target = windowsSpawnTarget(command, args);
87
+ const child = spawnChecked(() => spawn(target.command, [...target.args], {
88
88
  ...(options.cwd === undefined ? {} : { cwd: options.cwd }),
89
89
  env: options.env ?? process.env,
90
90
  stdio: ["pipe", "pipe", "pipe"],
@@ -1 +1 @@
1
- {"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/shared/executable/process.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["../../../src/shared/executable/process.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/run.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEpF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,MAAM,gBAAgB,GAAG,CAC7B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,oBAAoB,KAC3B,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAI/B,eAAO,MAAM,aAAa,EAAE,gBAgF3B,CAAC"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/run.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGpF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,MAAM,gBAAgB,GAAG,CAC7B,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,oBAAoB,KAC3B,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAI/B,eAAO,MAAM,aAAa,EAAE,gBAqF3B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { spawn } from "node:child_process";
2
- import { killGraceMs, OWN_PROCESS_GROUP, requiresShell, signalProcessGroup, trackOwnedProcess } from "./process.js";
2
+ import { killGraceMs, OWN_PROCESS_GROUP, signalProcessGroup, trackOwnedProcess } from "./process.js";
3
3
  import { nativeError, stderrTail } from "./diagnostics.js";
4
+ import { isWindowsShim, windowsSpawnTarget } from "./windows-shim.js";
4
5
  const OUTPUT_LIMIT = 2 * 1024 * 1024;
5
6
  export const runExecutable = async (executable, args, options = {}) => {
6
7
  const timeoutMs = options.timeoutMs ?? 15_000;
@@ -38,12 +39,17 @@ export const runExecutable = async (executable, args, options = {}) => {
38
39
  if (!Number.isInteger(timeoutMs) || timeoutMs < 0) {
39
40
  throw Object.assign(new RangeError("timeoutMs must be a nonnegative integer"), { code: "ERR_OUT_OF_RANGE" });
40
41
  }
41
- const child = spawn(executable, [...args], {
42
+ // On Windows a `.cmd`/`.bat` shim OAR can read resolves to the Node
43
+ // interpreter and script it wraps, so no argument reaches `cmd.exe`
44
+ // (windows-shim.ts); a shim it cannot read is still launched, which
45
+ // `node:child_process` only does for a `.cmd`/`.bat` through a shell.
46
+ // Off Windows, the inputs unchanged and no shell.
47
+ const target = windowsSpawnTarget(executable, args);
48
+ const child = spawn(target.command, [...target.args], {
42
49
  cwd: options.cwd, env: options.env,
43
50
  stdio: ["pipe", "pipe", "pipe"],
44
51
  detached: OWN_PROCESS_GROUP,
45
- // Keep the existing .cmd/.bat resolution on Windows.
46
- shell: requiresShell(executable, process.platform),
52
+ shell: process.platform === "win32" && isWindowsShim(target.command),
47
53
  });
48
54
  trackOwnedProcess(child);
49
55
  // An exited group leader can leave descendants holding the pipes.
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/shared/executable/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACpH,OAAO,EAAE,WAAW,EAAE,UAAU,EAA2B,MAAM,kBAAkB,CAAC;AAwBpF,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;AAErC,MAAM,CAAC,MAAM,aAAa,GAAqB,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,EAAE,EAAE,EAAE;IACtF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC;IAC9C,wEAAwE;IACxE,mEAAmE;IACnE,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,EAAE;QAC7D,IAAI,MAAM,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,MAAM,GAAW,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,OAAO,GAA0C,IAAI,CAAC;QAC1D,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,KAAK,GAA0B,IAAI,CAAC;QACxC,IAAI,UAAU,GAA0B,IAAI,CAAC;QAC7C,MAAM,QAAQ,GAAG,CAAC,IAAmB,EAAE,MAA6B,EAAQ,EAAE;YAC5E,YAAY,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;YACjC,YAAY,CAAC,UAAU,IAAI,SAAS,CAAC,CAAC;YACtC,OAAO,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,EAAE,GAAG,IAAI,KAAK,CAAC,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC;YACzE,MAAM,QAAQ,GAAG,EAAE,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACjE,OAAO,CAAC;gBACN,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ;gBAC9E,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;wBAC3B,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;wBAC7D,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAClC,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;qBAChD,EAAE,CAAC;aACL,CAAC,CAAC;QACL,CAAC,CAAC;QACF,IAAI,IAAI,GAAwB,IAAI,CAAC;QACrC,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,2BAA2B,EAAE,CAAC;YACxE,IAAI,EAAE,EAAE,CAAC;QACX,CAAC,CAAC;QACF,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClD,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,yCAAyC,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;YAC/G,CAAC;YACD,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;gBACzC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG;gBAClC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;gBAC/B,QAAQ,EAAE,iBAAiB;gBAC3B,qDAAqD;gBACrD,KAAK,EAAE,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC;aACnD,CAAC,CAAC;YACH,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzB,kEAAkE;YAClE,kEAAkE;YAClE,IAAI,GAAG,GAAS,EAAE;gBAChB,IAAI,OAAO,EAAE,CAAC;oBAAC,OAAO;gBAAC,CAAC;gBACxB,OAAO,GAAG,IAAI,CAAC;gBACf,YAAY,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;gBACjC,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBACrC,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC;gBACxF,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC,CAAC;YACF,MAAM,MAAM,GAAG,CAAC,MAAc,EAAE,KAAa,EAAE,MAAc,EAAU,EAAE;gBACvE,MAAM,SAAS,GAAG,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChF,IAAI,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;oBAC7B,OAAO,KAAK,EAAE,IAAI,EAAE,mCAAmC,EAAE,OAAO,EAAE,GAAG,MAAM,4BAA4B,EAAE,CAAC;oBAC1G,IAAI,EAAE,EAAE,CAAC;gBACX,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;YACF,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1F,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1F,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,GAAG,OAAO,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9B,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;gBACpE,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,CAAC;YACD,OAAO,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE,IAAI,OAAO,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,EAAE,CAAC;gBAAC,OAAO,EAAE,CAAC;YAAC,CAAC;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,EAAE,CAAC;gBAAC,MAAM,KAAK,CAAC;YAAC,CAAC;YAC/C,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/shared/executable/run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /** What to spawn in place of a shim: the interpreter and the arguments that go before the caller's own. */
2
+ export interface ResolvedShim {
3
+ readonly command: string;
4
+ readonly prefixArgs: readonly string[];
5
+ }
6
+ /** Whether a resolved command is a Windows shell shim (`.cmd`/`.bat`), the only commands that go through `cmd.exe`. */
7
+ export declare function isWindowsShim(command: string): boolean;
8
+ /**
9
+ * What a global package-manager shim (`.cmd`/`.bat`) would run, or null when
10
+ * the text is not a shim shape we recognize. npm and pnpm both wrap a
11
+ * package's `bin`, naming every path relative to the shim's own directory
12
+ * (`%dp0%` / `%~dp0`) and forwarding exactly `%*`:
13
+ * - a native binary (claude's `claude.exe`) runs directly;
14
+ * - a Node script (codex's `codex.js`) runs with the shim's own `node.exe`
15
+ * when it sits beside the shim, else `node` from PATH.
16
+ *
17
+ * Recognized by the shim-relative target alone, so npm's and pnpm's differing
18
+ * boilerplate both match, while an absolute target or extra fixed arguments
19
+ * (a hand-rolled `.cmd`) do not and the caller launches it unchanged. Pure:
20
+ * `shimExists` decides whether the bundled `node.exe` is present (the real
21
+ * check is the file system; a test passes its own). The caller spawns
22
+ * `command` with `[...prefixArgs, ...callerArgs]` and no shell.
23
+ */
24
+ export declare function parseWindowsShim(shimPath: string, text: string, shimExists: (candidate: string) => boolean): ResolvedShim | null;
25
+ /**
26
+ * The command and arguments to spawn, with no shell, when a `.cmd`/`.bat`
27
+ * shim can be read as the Node CLI it wraps: the interpreter and script it
28
+ * would run, with the shim's own arguments ahead of the caller's, so nothing
29
+ * reaches `cmd.exe`. Off Windows, for a non-shim command, or for a shim this
30
+ * cannot read as a Node CLI, the inputs unchanged, so the caller spawns as
31
+ * before (cross-spawn's shim handling). `resolve` finds a bare command on
32
+ * PATH (its own default).
33
+ */
34
+ export declare function windowsSpawnTarget(command: string, args: readonly string[], platform?: NodeJS.Platform, resolve?: (name: string) => string | null): {
35
+ readonly command: string;
36
+ readonly args: readonly string[];
37
+ };
38
+ //# sourceMappingURL=windows-shim.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows-shim.d.ts","sourceRoot":"","sources":["../../../src/shared/executable/windows-shim.ts"],"names":[],"mappings":"AAyBA,2GAA2G;AAC3G,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AAMD,uHAAuH;AACvH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAsBD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,GAAG,YAAY,GAAG,IAAI,CAiBhI;AAWD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,OAAO,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,IAAwB,GAC3D;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,CAWhE"}
@@ -0,0 +1,91 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import path from "node:path";
3
+ import { resolveExecutable } from "./resolve.js";
4
+ const SHIM = /\.(?:cmd|bat)$/iu;
5
+ const SCRIPT = /\.(?:c|m)?js$/iu;
6
+ const NATIVE = /\.(?:exe|com)$/iu;
7
+ /** Whether a resolved command is a Windows shell shim (`.cmd`/`.bat`), the only commands that go through `cmd.exe`. */
8
+ export function isWindowsShim(command) {
9
+ return SHIM.test(command);
10
+ }
11
+ /** Every double-quoted token in the shim text, in order. */
12
+ function quotedTokens(text) {
13
+ return [...text.matchAll(/"([^"]*)"/gu)].map((match) => match[1] ?? "");
14
+ }
15
+ /** A token naming the shim's own directory: npm's `%dp0%` or pnpm's `%~dp0`. */
16
+ function isShimRelative(token) {
17
+ return /%(?:~)?dp0%?/iu.test(token);
18
+ }
19
+ /** Replace a shim's own-directory variable (`%dp0%` or `%~dp0`) and normalize to a Windows path. */
20
+ function expand(token, shimDir) {
21
+ return path.win32.normalize(token.replaceAll(/%dp0%|%~dp0/giu, `${shimDir}\\`));
22
+ }
23
+ /** `node` from a shim, bare or shim-relative; not the script it runs. */
24
+ function isNodeBinary(candidate) {
25
+ return /(?:^|[\\/])node\.exe$/iu.test(candidate);
26
+ }
27
+ /**
28
+ * What a global package-manager shim (`.cmd`/`.bat`) would run, or null when
29
+ * the text is not a shim shape we recognize. npm and pnpm both wrap a
30
+ * package's `bin`, naming every path relative to the shim's own directory
31
+ * (`%dp0%` / `%~dp0`) and forwarding exactly `%*`:
32
+ * - a native binary (claude's `claude.exe`) runs directly;
33
+ * - a Node script (codex's `codex.js`) runs with the shim's own `node.exe`
34
+ * when it sits beside the shim, else `node` from PATH.
35
+ *
36
+ * Recognized by the shim-relative target alone, so npm's and pnpm's differing
37
+ * boilerplate both match, while an absolute target or extra fixed arguments
38
+ * (a hand-rolled `.cmd`) do not and the caller launches it unchanged. Pure:
39
+ * `shimExists` decides whether the bundled `node.exe` is present (the real
40
+ * check is the file system; a test passes its own). The caller spawns
41
+ * `command` with `[...prefixArgs, ...callerArgs]` and no shell.
42
+ */
43
+ export function parseWindowsShim(shimPath, text, shimExists) {
44
+ if (!text.includes("%*")) {
45
+ return null;
46
+ }
47
+ const shimDir = path.win32.dirname(shimPath);
48
+ const relative = [...new Set(quotedTokens(text).filter((token) => isShimRelative(token)).map((token) => expand(token, shimDir)))];
49
+ // The shim's own `node.exe` is the interpreter, not the target it runs.
50
+ const scripts = relative.filter((candidate) => SCRIPT.test(candidate));
51
+ const natives = relative.filter((candidate) => NATIVE.test(candidate) && !isNodeBinary(candidate));
52
+ if (scripts.length === 1 && natives.length === 0) {
53
+ const bundledNode = path.win32.join(shimDir, "node.exe");
54
+ return { command: shimExists(bundledNode) ? bundledNode : "node", prefixArgs: [scripts[0] ?? ""] };
55
+ }
56
+ if (natives.length === 1 && scripts.length === 0) {
57
+ return { command: natives[0] ?? "", prefixArgs: [] };
58
+ }
59
+ return null;
60
+ }
61
+ /** A shim's text, or null when it cannot be read. */
62
+ function readShim(shimPath) {
63
+ try {
64
+ return readFileSync(shimPath, "utf8");
65
+ }
66
+ catch {
67
+ return null;
68
+ }
69
+ }
70
+ /**
71
+ * The command and arguments to spawn, with no shell, when a `.cmd`/`.bat`
72
+ * shim can be read as the Node CLI it wraps: the interpreter and script it
73
+ * would run, with the shim's own arguments ahead of the caller's, so nothing
74
+ * reaches `cmd.exe`. Off Windows, for a non-shim command, or for a shim this
75
+ * cannot read as a Node CLI, the inputs unchanged, so the caller spawns as
76
+ * before (cross-spawn's shim handling). `resolve` finds a bare command on
77
+ * PATH (its own default).
78
+ */
79
+ export function windowsSpawnTarget(command, args, platform = process.platform, resolve = resolveExecutable) {
80
+ if (platform !== "win32") {
81
+ return { command, args };
82
+ }
83
+ const resolved = isWindowsShim(command) ? command : resolve(command);
84
+ if (resolved === null || !isWindowsShim(resolved)) {
85
+ return { command, args };
86
+ }
87
+ const text = readShim(resolved);
88
+ const shim = text === null ? null : parseWindowsShim(resolved, text, existsSync);
89
+ return shim === null ? { command, args } : { command: shim.command, args: [...shim.prefixArgs, ...args] };
90
+ }
91
+ //# sourceMappingURL=windows-shim.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"windows-shim.js","sourceRoot":"","sources":["../../../src/shared/executable/windows-shim.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@botiverse/oar",
3
- "version": "0.66.0",
3
+ "version": "0.66.1",
4
4
  "description": "A programming interface for all agent harnesses: provider-independent contracts for controlling and observing agent runtimes",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",