diff --git a/packages/core/src/cross-spawn-spawner.ts b/packages/core/src/cross-spawn-spawner.ts index 6ea9022acf1d..941bc6f0924f 100644 --- a/packages/core/src/cross-spawn-spawner.ts +++ b/packages/core/src/cross-spawn-spawner.ts @@ -116,7 +116,7 @@ export const make = Effect.gen(function* () { Sink.isSink(x) ? "pipe" : x const stdin = (opts: ChildProcess.CommandOptions): ChildProcess.StdinConfig => { - const cfg: ChildProcess.StdinConfig = { stream: "pipe", encoding: "utf-8", endOnDone: true } + const cfg: ChildProcess.StdinConfig = { stream: "ignore", encoding: "utf-8", endOnDone: true } if (Predicate.isUndefined(opts.stdin)) return cfg if (typeof opts.stdin === "string") return { ...cfg, stream: opts.stdin } if (Stream.isStream(opts.stdin)) return { ...cfg, stream: opts.stdin } diff --git a/packages/core/src/tool/bash.ts b/packages/core/src/tool/bash.ts index 22423764bc67..df7f58f4d4b6 100644 --- a/packages/core/src/tool/bash.ts +++ b/packages/core/src/tool/bash.ts @@ -158,6 +158,8 @@ const layer = Layer.effectDiscard( const command = ChildProcess.make(input.command, [], { cwd: target.canonical, shell, + extendEnv: true, + env: { CI: "1", npm_config_yes: "true", GIT_TERMINAL_PROMPT: "0", NONINTERACTIVE: "1" }, stdin: "ignore", detached: process.platform !== "win32", forceKillAfter: Duration.seconds(3), diff --git a/packages/opencode/src/tool/shell.ts b/packages/opencode/src/tool/shell.ts index 1e4423e01774..bccbb0a8a575 100644 --- a/packages/opencode/src/tool/shell.ts +++ b/packages/opencode/src/tool/shell.ts @@ -291,10 +291,11 @@ const ask = Effect.fn("ShellTool.ask")(function* (ctx: Tool.Context, scan: Scan, }) function cmd(shell: string, command: string, cwd: string, env: NodeJS.ProcessEnv) { + const nonInteractiveEnv = { CI: "1", npm_config_yes: "true", GIT_TERMINAL_PROMPT: "0", NONINTERACTIVE: "1" } if (process.platform === "win32" && Shell.ps(shell)) { return ChildProcess.make(shell, ["-NoLogo", "-NoProfile", "-NonInteractive", "-Command", command], { cwd, - env, + env: { ...env, ...nonInteractiveEnv }, stdin: "ignore", detached: false, }) @@ -303,7 +304,7 @@ function cmd(shell: string, command: string, cwd: string, env: NodeJS.ProcessEnv return ChildProcess.make(command, [], { shell, cwd, - env, + env: { ...env, ...nonInteractiveEnv }, stdin: "ignore", detached: process.platform !== "win32", })