diff --git a/server/packages/sandbox-agent/tests/v1_api.rs b/server/packages/sandbox-agent/tests/v1_api.rs index 9e5cc3b..fa572e6 100644 --- a/server/packages/sandbox-agent/tests/v1_api.rs +++ b/server/packages/sandbox-agent/tests/v1_api.rs @@ -135,6 +135,38 @@ fn write_executable(path: &Path, script: &str) { } } +fn write_fake_npm(path: &Path) { + write_executable( + path, + r#"#!/usr/bin/env sh +set -e +prefix="" +while [ "$#" -gt 0 ]; do + case "$1" in + install|--no-audit|--no-fund) + shift + ;; + --prefix) + prefix="$2" + shift 2 + ;; + *) + shift + ;; + esac +done +[ -n "$prefix" ] || exit 1 +mkdir -p "$prefix/node_modules/.bin" +for bin in claude-code-acp codex-acp amp-acp pi-acp cursor-agent-acp; do + echo '#!/usr/bin/env sh' > "$prefix/node_modules/.bin/$bin" + echo 'exit 0' >> "$prefix/node_modules/.bin/$bin" + chmod +x "$prefix/node_modules/.bin/$bin" +done +exit 0 +"#, + ); +} + fn serve_registry_once(document: Value) -> String { let listener = TcpListener::bind("127.0.0.1:0").expect("bind registry server"); let address = listener.local_addr().expect("registry address"); diff --git a/server/packages/sandbox-agent/tests/v1_api/control_plane.rs b/server/packages/sandbox-agent/tests/v1_api/control_plane.rs index 1728f8b..dc352ca 100644 --- a/server/packages/sandbox-agent/tests/v1_api/control_plane.rs +++ b/server/packages/sandbox-agent/tests/v1_api/control_plane.rs @@ -182,10 +182,7 @@ async fn lazy_install_runs_on_first_bootstrap() { .expect("create agent processes dir"); write_executable(&install_path.join("codex"), "#!/usr/bin/env sh\nexit 0\n"); fs::create_dir_all(install_path.join("bin")).expect("create bin dir"); - write_executable( - &install_path.join("bin").join("npx"), - "#!/usr/bin/env sh\nwhile IFS= read -r _line; do :; done\n", - ); + write_fake_npm(&install_path.join("bin").join("npm")); }); let original_path = std::env::var_os("PATH").unwrap_or_default();