diff --git a/scripts/run-node.mjs b/scripts/run-node.mjs index 33492d5ee..dcb40dcbf 100644 --- a/scripts/run-node.mjs +++ b/scripts/run-node.mjs @@ -115,7 +115,11 @@ if (!shouldBuild()) { runNode(); } else { logRunner("Building TypeScript (dist is stale)."); - const build = spawn("pnpm", ["exec", compiler, ...projectArgs], { + const pnpmArgs = ["exec", compiler, ...projectArgs]; + const buildCmd = process.platform === "win32" ? "cmd.exe" : "pnpm"; + const buildArgs = + process.platform === "win32" ? ["/d", "/s", "/c", "pnpm", ...pnpmArgs] : pnpmArgs; + const build = spawn(buildCmd, buildArgs, { cwd, env, stdio: "inherit", diff --git a/src/cli/argv.ts b/src/cli/argv.ts index 5001881e7..bc7b60ac9 100644 --- a/src/cli/argv.ts +++ b/src/cli/argv.ts @@ -94,9 +94,13 @@ export function buildParseArgv(params: { : baseArgv[0]?.endsWith("clawdbot") ? baseArgv.slice(1) : baseArgv; - const executable = normalizedArgv[0]?.split(/[/\\]/).pop() ?? ""; + const executable = (normalizedArgv[0]?.split(/[/\\]/).pop() ?? "").toLowerCase(); const looksLikeNode = - normalizedArgv.length >= 2 && (executable === "node" || executable === "bun"); + normalizedArgv.length >= 2 && + (executable === "node" || + executable === "node.exe" || + executable === "bun" || + executable === "bun.exe"); if (looksLikeNode) return normalizedArgv; return ["node", programName || "clawdbot", ...normalizedArgv]; }