mirror of
https://github.com/OpenRouterTeam/spawn.git
synced 2026-04-28 03:49:31 +00:00
feat: reorder agents and remove NanoClaw (#1477)
* feat: add ZeroClaw agent (14.9k stars, native OpenRouter support) Add ZeroClaw — a Rust-based autonomous AI assistant framework by Harvard/MIT/Sundai.Club communities — across all 8 clouds. Scripts: local, hetzner, digitalocean, fly, aws, gcp, daytona, sprite Install: bootstrap.sh with --install-rust + --install-system-deps Config: zeroclaw onboard --provider openrouter (via agent_configure) Env: OPENROUTER_API_KEY + ZEROCLAW_PROVIDER=openrouter (native support) Launch: zeroclaw agent Note: ZeroClaw compiles from Rust source (~5-10 min build time). A build-time warning is shown to set expectations. Also update test/mock-curl-script.sh to stub zeroclaw install URLs and add zeroclaw to mock agent binaries in test/mock.sh. Bump CLI version 0.5.8 → 0.5.9. Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> * feat: reorder agents and remove NanoClaw New agent order: claude → openclaw → zeroclaw → codex → opencode → kilocode - Remove NanoClaw (8 scripts + manifest entry + matrix entries + README row) - Reorder manifest.json agents section to match new order - Reorder matrix entries by cloud (local/hetzner/fly/aws/daytona/digitalocean/gcp/sprite) with agents in new order within each cloud block - Update README matrix table row order - Update test/mock.sh mock agent binary list to match - Bump CLI version 0.5.9 → 0.5.10 Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
f7458952b0
commit
a67d83ed38
21 changed files with 360 additions and 406 deletions
|
|
@ -164,7 +164,7 @@ If an agent fails to install or launch on a cloud:
|
|||
|---|---|---|---|---|---|---|---|---|
|
||||
| [**Claude Code**](https://claude.ai) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| [**OpenClaw**](https://github.com/OpenRouterTeam/openclaw) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| [**NanoClaw**](https://github.com/gavrielc/nanoclaw) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| [**ZeroClaw**](https://github.com/zeroclaw-labs/zeroclaw) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| [**Codex CLI**](https://github.com/openai/codex) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| [**OpenCode**](https://github.com/opencode-ai/opencode) | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
| [**Kilo Code**](https://github.com/Kilo-Org/kilocode) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
||||
|
|
|
|||
|
|
@ -1,38 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
# Source common functions - try local file first, fall back to remote
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
# shellcheck source=aws/lib/common.sh
|
||||
if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then
|
||||
source "${SCRIPT_DIR}/lib/common.sh"
|
||||
else
|
||||
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/aws/lib/common.sh)"
|
||||
fi
|
||||
|
||||
log_info "NanoClaw on AWS Lightsail"
|
||||
echo ""
|
||||
|
||||
agent_install() {
|
||||
log_step "Installing Docker (required by NanoClaw on Linux)..."
|
||||
cloud_run "command -v docker >/dev/null || (curl -fsSL https://get.docker.com | sudo sh && sudo usermod -aG docker \$(whoami))"
|
||||
log_step "Installing tsx..."
|
||||
cloud_run "source ~/.bashrc && bun install -g tsx"
|
||||
log_step "Cloning and building nanoclaw..."
|
||||
cloud_run "git clone https://github.com/gavrielc/nanoclaw.git ~/nanoclaw && cd ~/nanoclaw && npm install && npm run build"
|
||||
log_info "NanoClaw installed"
|
||||
}
|
||||
agent_env_vars() {
|
||||
generate_env_config \
|
||||
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ANTHROPIC_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ANTHROPIC_BASE_URL=https://openrouter.ai/api"
|
||||
}
|
||||
agent_configure() {
|
||||
local dotenv_content
|
||||
dotenv_content=$(printf 'ANTHROPIC_API_KEY=%s\nANTHROPIC_BASE_URL=https://openrouter.ai/api\n' "${OPENROUTER_API_KEY}")
|
||||
upload_config_file cloud_upload cloud_run "${dotenv_content}" "\$HOME/nanoclaw/.env"
|
||||
}
|
||||
agent_launch_cmd() { echo 'cd ~/nanoclaw && source ~/.zshrc && npm run dev'; }
|
||||
|
||||
spawn_agent "NanoClaw"
|
||||
37
aws/zeroclaw.sh
Normal file
37
aws/zeroclaw.sh
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
# Source common functions - try local file first, fall back to remote
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then
|
||||
source "${SCRIPT_DIR}/lib/common.sh"
|
||||
else
|
||||
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/aws/lib/common.sh)"
|
||||
fi
|
||||
|
||||
log_info "ZeroClaw on AWS Lightsail"
|
||||
echo ""
|
||||
log_warn "Note: ZeroClaw is built from Rust source and may take 5-10 minutes to compile."
|
||||
echo ""
|
||||
|
||||
agent_install() {
|
||||
install_agent "ZeroClaw" \
|
||||
"curl -LsSf https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/main/scripts/install.sh | bash -s -- --install-rust --install-system-deps" \
|
||||
cloud_run
|
||||
}
|
||||
|
||||
agent_env_vars() {
|
||||
generate_env_config \
|
||||
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ZEROCLAW_PROVIDER=openrouter"
|
||||
}
|
||||
|
||||
agent_configure() {
|
||||
cloud_run 'source ~/.spawnrc 2>/dev/null; export PATH="$HOME/.cargo/bin:$PATH"; zeroclaw onboard --api-key "${OPENROUTER_API_KEY}" --provider openrouter'
|
||||
}
|
||||
|
||||
agent_launch_cmd() {
|
||||
echo 'source ~/.cargo/env 2>/dev/null; source ~/.spawnrc 2>/dev/null; zeroclaw agent'
|
||||
}
|
||||
|
||||
spawn_agent "ZeroClaw"
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@openrouter/spawn",
|
||||
"version": "0.5.8",
|
||||
"version": "0.5.10",
|
||||
"type": "module",
|
||||
"bin": {
|
||||
"spawn": "cli.js"
|
||||
|
|
|
|||
|
|
@ -1,47 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
# Source common functions - try local file first, fall back to remote
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then
|
||||
source "${SCRIPT_DIR}/lib/common.sh"
|
||||
else
|
||||
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/daytona/lib/common.sh)"
|
||||
fi
|
||||
|
||||
log_info "NanoClaw on Daytona"
|
||||
echo ""
|
||||
|
||||
agent_install() {
|
||||
log_step "Installing Docker (required by NanoClaw on Linux)..."
|
||||
cloud_run "command -v docker >/dev/null || (curl -fsSL https://get.docker.com | sudo sh && sudo usermod -aG docker \$(whoami))"
|
||||
log_step "Installing tsx..."
|
||||
cloud_run "source ~/.bashrc && bun install -g tsx"
|
||||
log_step "Cloning and building nanoclaw..."
|
||||
cloud_run "git clone https://github.com/gavrielc/nanoclaw.git ~/nanoclaw && cd ~/nanoclaw && npm install && npm run build"
|
||||
log_info "NanoClaw installed"
|
||||
}
|
||||
|
||||
agent_env_vars() {
|
||||
generate_env_config \
|
||||
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ANTHROPIC_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ANTHROPIC_BASE_URL=https://openrouter.ai/api"
|
||||
}
|
||||
|
||||
agent_configure() {
|
||||
local dotenv_content
|
||||
dotenv_content=$(printf 'ANTHROPIC_API_KEY=%s\nANTHROPIC_BASE_URL=https://openrouter.ai/api\n' "${OPENROUTER_API_KEY}")
|
||||
upload_config_file cloud_upload cloud_run "${dotenv_content}" "\$HOME/nanoclaw/.env"
|
||||
}
|
||||
|
||||
agent_launch_cmd() {
|
||||
echo 'cd ~/nanoclaw && source ~/.zshrc && npm run dev'
|
||||
}
|
||||
|
||||
agent_pre_launch() {
|
||||
log_info "You will need to scan a WhatsApp QR code to authenticate."
|
||||
echo ""
|
||||
}
|
||||
|
||||
spawn_agent "NanoClaw"
|
||||
37
daytona/zeroclaw.sh
Normal file
37
daytona/zeroclaw.sh
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
# Source common functions - try local file first, fall back to remote
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then
|
||||
source "${SCRIPT_DIR}/lib/common.sh"
|
||||
else
|
||||
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/daytona/lib/common.sh)"
|
||||
fi
|
||||
|
||||
log_info "ZeroClaw on Daytona"
|
||||
echo ""
|
||||
log_warn "Note: ZeroClaw is built from Rust source and may take 5-10 minutes to compile."
|
||||
echo ""
|
||||
|
||||
agent_install() {
|
||||
install_agent "ZeroClaw" \
|
||||
"curl -LsSf https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/main/scripts/install.sh | bash -s -- --install-rust --install-system-deps" \
|
||||
cloud_run
|
||||
}
|
||||
|
||||
agent_env_vars() {
|
||||
generate_env_config \
|
||||
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ZEROCLAW_PROVIDER=openrouter"
|
||||
}
|
||||
|
||||
agent_configure() {
|
||||
cloud_run 'source ~/.spawnrc 2>/dev/null; export PATH="$HOME/.cargo/bin:$PATH"; zeroclaw onboard --api-key "${OPENROUTER_API_KEY}" --provider openrouter'
|
||||
}
|
||||
|
||||
agent_launch_cmd() {
|
||||
echo 'source ~/.cargo/env 2>/dev/null; source ~/.spawnrc 2>/dev/null; zeroclaw agent'
|
||||
}
|
||||
|
||||
spawn_agent "ZeroClaw"
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
# Source common functions - try local file first, fall back to remote
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
# shellcheck source=digitalocean/lib/common.sh
|
||||
if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then
|
||||
source "${SCRIPT_DIR}/lib/common.sh"
|
||||
else
|
||||
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/digitalocean/lib/common.sh)"
|
||||
fi
|
||||
|
||||
log_info "NanoClaw on DigitalOcean"
|
||||
echo ""
|
||||
|
||||
agent_install() {
|
||||
log_step "Installing Docker (required by NanoClaw on Linux)..."
|
||||
cloud_run "command -v docker >/dev/null || (curl -fsSL https://get.docker.com | sh)"
|
||||
log_step "Installing tsx..."
|
||||
cloud_run "source ~/.bashrc && bun install -g tsx"
|
||||
log_step "Cloning and building nanoclaw..."
|
||||
cloud_run "git clone https://github.com/gavrielc/nanoclaw.git ~/nanoclaw && cd ~/nanoclaw && npm install && npm run build"
|
||||
log_info "NanoClaw installed"
|
||||
}
|
||||
agent_env_vars() {
|
||||
generate_env_config \
|
||||
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ANTHROPIC_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ANTHROPIC_BASE_URL=https://openrouter.ai/api"
|
||||
}
|
||||
agent_configure() {
|
||||
local dotenv_content
|
||||
dotenv_content=$(printf 'ANTHROPIC_API_KEY=%s\nANTHROPIC_BASE_URL=https://openrouter.ai/api\n' "${OPENROUTER_API_KEY}")
|
||||
upload_config_file cloud_upload cloud_run "${dotenv_content}" "\$HOME/nanoclaw/.env"
|
||||
}
|
||||
agent_launch_cmd() { echo 'cd ~/nanoclaw && source ~/.zshrc && npm run dev'; }
|
||||
|
||||
spawn_agent "NanoClaw"
|
||||
37
digitalocean/zeroclaw.sh
Normal file
37
digitalocean/zeroclaw.sh
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
# Source common functions - try local file first, fall back to remote
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then
|
||||
source "${SCRIPT_DIR}/lib/common.sh"
|
||||
else
|
||||
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/digitalocean/lib/common.sh)"
|
||||
fi
|
||||
|
||||
log_info "ZeroClaw on DigitalOcean"
|
||||
echo ""
|
||||
log_warn "Note: ZeroClaw is built from Rust source and may take 5-10 minutes to compile."
|
||||
echo ""
|
||||
|
||||
agent_install() {
|
||||
install_agent "ZeroClaw" \
|
||||
"curl -LsSf https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/main/scripts/install.sh | bash -s -- --install-rust --install-system-deps" \
|
||||
cloud_run
|
||||
}
|
||||
|
||||
agent_env_vars() {
|
||||
generate_env_config \
|
||||
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ZEROCLAW_PROVIDER=openrouter"
|
||||
}
|
||||
|
||||
agent_configure() {
|
||||
cloud_run 'source ~/.spawnrc 2>/dev/null; export PATH="$HOME/.cargo/bin:$PATH"; zeroclaw onboard --api-key "${OPENROUTER_API_KEY}" --provider openrouter'
|
||||
}
|
||||
|
||||
agent_launch_cmd() {
|
||||
echo 'source ~/.cargo/env 2>/dev/null; source ~/.spawnrc 2>/dev/null; zeroclaw agent'
|
||||
}
|
||||
|
||||
spawn_agent "ZeroClaw"
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
# Source common functions - try local file first, fall back to remote
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
if [[ -f "$SCRIPT_DIR/lib/common.sh" ]]; then
|
||||
source "$SCRIPT_DIR/lib/common.sh"
|
||||
else
|
||||
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/fly/lib/common.sh)"
|
||||
fi
|
||||
|
||||
log_info "NanoClaw on Fly.io"
|
||||
echo ""
|
||||
|
||||
agent_install() {
|
||||
log_step "Installing Docker (required by NanoClaw on Linux)..."
|
||||
cloud_run "command -v docker >/dev/null || (curl -fsSL https://get.docker.com | sh)"
|
||||
log_step "Installing tsx..."
|
||||
cloud_run "source ~/.bashrc && bun install -g tsx"
|
||||
log_step "Cloning and building nanoclaw..."
|
||||
cloud_run "git clone https://github.com/gavrielc/nanoclaw.git ~/nanoclaw && cd ~/nanoclaw && npm install && npm run build"
|
||||
log_info "NanoClaw installed"
|
||||
}
|
||||
|
||||
agent_env_vars() {
|
||||
generate_env_config \
|
||||
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ANTHROPIC_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ANTHROPIC_BASE_URL=https://openrouter.ai/api"
|
||||
}
|
||||
|
||||
agent_configure() {
|
||||
local dotenv_content
|
||||
dotenv_content=$(printf 'ANTHROPIC_API_KEY=%s\nANTHROPIC_BASE_URL=https://openrouter.ai/api\n' "${OPENROUTER_API_KEY}")
|
||||
upload_config_file cloud_upload cloud_run "${dotenv_content}" "\$HOME/nanoclaw/.env"
|
||||
}
|
||||
|
||||
agent_launch_cmd() {
|
||||
echo 'cd ~/nanoclaw && source ~/.zshrc && npm run dev'
|
||||
}
|
||||
|
||||
agent_pre_launch() {
|
||||
log_info "You will need to scan a WhatsApp QR code to authenticate."
|
||||
echo ""
|
||||
}
|
||||
|
||||
spawn_agent "NanoClaw"
|
||||
37
fly/zeroclaw.sh
Normal file
37
fly/zeroclaw.sh
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
# Source common functions - try local file first, fall back to remote
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
if [[ -f "$SCRIPT_DIR/lib/common.sh" ]]; then
|
||||
source "$SCRIPT_DIR/lib/common.sh"
|
||||
else
|
||||
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/fly/lib/common.sh)"
|
||||
fi
|
||||
|
||||
log_info "ZeroClaw on Fly.io"
|
||||
echo ""
|
||||
log_warn "Note: ZeroClaw is built from Rust source and may take 5-10 minutes to compile."
|
||||
echo ""
|
||||
|
||||
agent_install() {
|
||||
install_agent "ZeroClaw" \
|
||||
"curl -LsSf https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/main/scripts/install.sh | bash -s -- --install-rust --install-system-deps" \
|
||||
cloud_run
|
||||
}
|
||||
|
||||
agent_env_vars() {
|
||||
generate_env_config \
|
||||
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ZEROCLAW_PROVIDER=openrouter"
|
||||
}
|
||||
|
||||
agent_configure() {
|
||||
cloud_run 'source ~/.spawnrc 2>/dev/null; export PATH="$HOME/.cargo/bin:$PATH"; zeroclaw onboard --api-key "${OPENROUTER_API_KEY}" --provider openrouter'
|
||||
}
|
||||
|
||||
agent_launch_cmd() {
|
||||
echo 'source ~/.cargo/env 2>/dev/null; source ~/.spawnrc 2>/dev/null; zeroclaw agent'
|
||||
}
|
||||
|
||||
spawn_agent "ZeroClaw"
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
# Source common functions - try local file first, fall back to remote
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
# shellcheck source=gcp/lib/common.sh
|
||||
if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then
|
||||
source "${SCRIPT_DIR}/lib/common.sh"
|
||||
else
|
||||
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/gcp/lib/common.sh)"
|
||||
fi
|
||||
|
||||
log_info "NanoClaw on GCP Compute Engine"
|
||||
echo ""
|
||||
|
||||
agent_install() {
|
||||
log_step "Installing Docker (required by NanoClaw on Linux)..."
|
||||
cloud_run "command -v docker >/dev/null || (curl -fsSL https://get.docker.com | sudo sh && sudo usermod -aG docker \$(whoami))"
|
||||
log_step "Installing tsx..."
|
||||
cloud_run "source ~/.bashrc && bun install -g tsx"
|
||||
log_step "Cloning and building nanoclaw..."
|
||||
cloud_run "git clone https://github.com/gavrielc/nanoclaw.git ~/nanoclaw && cd ~/nanoclaw && npm install && npm run build"
|
||||
log_info "NanoClaw installed"
|
||||
}
|
||||
agent_env_vars() {
|
||||
generate_env_config \
|
||||
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ANTHROPIC_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ANTHROPIC_BASE_URL=https://openrouter.ai/api"
|
||||
}
|
||||
agent_configure() {
|
||||
local dotenv_content
|
||||
dotenv_content=$(printf 'ANTHROPIC_API_KEY=%s\nANTHROPIC_BASE_URL=https://openrouter.ai/api\n' "${OPENROUTER_API_KEY}")
|
||||
upload_config_file cloud_upload cloud_run "${dotenv_content}" "\$HOME/nanoclaw/.env"
|
||||
}
|
||||
agent_launch_cmd() { echo 'cd ~/nanoclaw && source ~/.zshrc && npm run dev'; }
|
||||
|
||||
spawn_agent "NanoClaw"
|
||||
37
gcp/zeroclaw.sh
Normal file
37
gcp/zeroclaw.sh
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
# Source common functions - try local file first, fall back to remote
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then
|
||||
source "${SCRIPT_DIR}/lib/common.sh"
|
||||
else
|
||||
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/gcp/lib/common.sh)"
|
||||
fi
|
||||
|
||||
log_info "ZeroClaw on GCP Compute Engine"
|
||||
echo ""
|
||||
log_warn "Note: ZeroClaw is built from Rust source and may take 5-10 minutes to compile."
|
||||
echo ""
|
||||
|
||||
agent_install() {
|
||||
install_agent "ZeroClaw" \
|
||||
"curl -LsSf https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/main/scripts/install.sh | bash -s -- --install-rust --install-system-deps" \
|
||||
cloud_run
|
||||
}
|
||||
|
||||
agent_env_vars() {
|
||||
generate_env_config \
|
||||
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ZEROCLAW_PROVIDER=openrouter"
|
||||
}
|
||||
|
||||
agent_configure() {
|
||||
cloud_run 'source ~/.spawnrc 2>/dev/null; export PATH="$HOME/.cargo/bin:$PATH"; zeroclaw onboard --api-key "${OPENROUTER_API_KEY}" --provider openrouter'
|
||||
}
|
||||
|
||||
agent_launch_cmd() {
|
||||
echo 'source ~/.cargo/env 2>/dev/null; source ~/.spawnrc 2>/dev/null; zeroclaw agent'
|
||||
}
|
||||
|
||||
spawn_agent "ZeroClaw"
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
# Source common functions - try local file first, fall back to remote
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
# shellcheck source=hetzner/lib/common.sh
|
||||
if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then
|
||||
source "${SCRIPT_DIR}/lib/common.sh"
|
||||
else
|
||||
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/hetzner/lib/common.sh)"
|
||||
fi
|
||||
|
||||
log_info "NanoClaw on Hetzner Cloud"
|
||||
echo ""
|
||||
|
||||
agent_install() {
|
||||
log_step "Installing Docker (required by NanoClaw on Linux)..."
|
||||
cloud_run "command -v docker >/dev/null || (curl -fsSL https://get.docker.com | sh)"
|
||||
log_step "Installing tsx..."
|
||||
cloud_run "source ~/.bashrc && bun install -g tsx"
|
||||
log_step "Cloning and building nanoclaw..."
|
||||
cloud_run "git clone https://github.com/gavrielc/nanoclaw.git ~/nanoclaw && cd ~/nanoclaw && npm install && npm run build"
|
||||
log_info "NanoClaw installed"
|
||||
}
|
||||
agent_env_vars() {
|
||||
generate_env_config \
|
||||
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ANTHROPIC_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ANTHROPIC_BASE_URL=https://openrouter.ai/api"
|
||||
}
|
||||
agent_configure() {
|
||||
local dotenv_content
|
||||
dotenv_content=$(printf 'ANTHROPIC_API_KEY=%s\nANTHROPIC_BASE_URL=https://openrouter.ai/api\n' "${OPENROUTER_API_KEY}")
|
||||
upload_config_file cloud_upload cloud_run "${dotenv_content}" "\$HOME/nanoclaw/.env"
|
||||
}
|
||||
agent_launch_cmd() { echo 'cd ~/nanoclaw && source ~/.zshrc && npm run dev'; }
|
||||
|
||||
spawn_agent "NanoClaw"
|
||||
38
hetzner/zeroclaw.sh
Normal file
38
hetzner/zeroclaw.sh
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
# Source common functions - try local file first, fall back to remote
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
# shellcheck source=hetzner/lib/common.sh
|
||||
if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then
|
||||
source "${SCRIPT_DIR}/lib/common.sh"
|
||||
else
|
||||
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/hetzner/lib/common.sh)"
|
||||
fi
|
||||
|
||||
log_info "ZeroClaw on Hetzner Cloud"
|
||||
echo ""
|
||||
log_warn "Note: ZeroClaw is built from Rust source and may take 5-10 minutes to compile."
|
||||
echo ""
|
||||
|
||||
agent_install() {
|
||||
install_agent "ZeroClaw" \
|
||||
"curl -LsSf https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/main/scripts/install.sh | bash -s -- --install-rust --install-system-deps" \
|
||||
cloud_run
|
||||
}
|
||||
|
||||
agent_env_vars() {
|
||||
generate_env_config \
|
||||
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ZEROCLAW_PROVIDER=openrouter"
|
||||
}
|
||||
|
||||
agent_configure() {
|
||||
cloud_run 'source ~/.spawnrc 2>/dev/null; export PATH="$HOME/.cargo/bin:$PATH"; zeroclaw onboard --api-key "${OPENROUTER_API_KEY}" --provider openrouter'
|
||||
}
|
||||
|
||||
agent_launch_cmd() {
|
||||
echo 'source ~/.cargo/env 2>/dev/null; source ~/.spawnrc 2>/dev/null; zeroclaw agent'
|
||||
}
|
||||
|
||||
spawn_agent "ZeroClaw"
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
# Source common functions - try local file first, fall back to remote
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then
|
||||
source "${SCRIPT_DIR}/lib/common.sh"
|
||||
else
|
||||
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/local/lib/common.sh)"
|
||||
fi
|
||||
|
||||
log_info "NanoClaw on local machine"
|
||||
echo ""
|
||||
|
||||
agent_install() {
|
||||
log_step "Installing tsx..."
|
||||
cloud_run "command -v bun &>/dev/null && bun install -g tsx || npm install -g tsx"
|
||||
log_step "Cloning and building nanoclaw..."
|
||||
cloud_run "test -d ~/nanoclaw || (git clone https://github.com/gavrielc/nanoclaw.git ~/nanoclaw && cd ~/nanoclaw && npm install && npm run build)"
|
||||
log_info "NanoClaw installed"
|
||||
}
|
||||
|
||||
agent_env_vars() {
|
||||
generate_env_config \
|
||||
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ANTHROPIC_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ANTHROPIC_BASE_URL=https://openrouter.ai/api"
|
||||
}
|
||||
|
||||
agent_configure() {
|
||||
local dotenv_content
|
||||
dotenv_content=$(printf 'ANTHROPIC_API_KEY=%s\nANTHROPIC_BASE_URL=https://openrouter.ai/api\n' "${OPENROUTER_API_KEY}")
|
||||
upload_config_file cloud_upload cloud_run "${dotenv_content}" "\$HOME/nanoclaw/.env"
|
||||
}
|
||||
|
||||
agent_launch_cmd() {
|
||||
echo 'cd ~/nanoclaw && source ~/.zshrc 2>/dev/null; npm run dev'
|
||||
}
|
||||
|
||||
agent_pre_launch() {
|
||||
log_info "You will need to scan a WhatsApp QR code to authenticate."
|
||||
echo ""
|
||||
}
|
||||
|
||||
spawn_agent "NanoClaw"
|
||||
42
local/zeroclaw.sh
Normal file
42
local/zeroclaw.sh
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
# Source common functions - try local file first, fall back to remote
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then
|
||||
source "${SCRIPT_DIR}/lib/common.sh"
|
||||
else
|
||||
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/local/lib/common.sh)"
|
||||
fi
|
||||
|
||||
log_info "ZeroClaw on local machine"
|
||||
echo ""
|
||||
log_warn "Note: ZeroClaw is built from Rust source and may take 5-10 minutes to compile."
|
||||
echo ""
|
||||
|
||||
agent_install() {
|
||||
install_agent "ZeroClaw" \
|
||||
"curl -LsSf https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/main/scripts/install.sh | bash -s -- --install-rust" \
|
||||
cloud_run
|
||||
}
|
||||
|
||||
agent_env_vars() {
|
||||
generate_env_config \
|
||||
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ZEROCLAW_PROVIDER=openrouter"
|
||||
}
|
||||
|
||||
agent_configure() {
|
||||
cloud_run 'source ~/.spawnrc 2>/dev/null; export PATH="$HOME/.cargo/bin:$PATH"; zeroclaw onboard --api-key "${OPENROUTER_API_KEY}" --provider openrouter'
|
||||
}
|
||||
|
||||
agent_launch_cmd() {
|
||||
if [[ -n "${SPAWN_PROMPT:-}" ]]; then
|
||||
local escaped; escaped=$(printf '%q' "${SPAWN_PROMPT}")
|
||||
printf 'source ~/.cargo/env 2>/dev/null; source ~/.spawnrc 2>/dev/null; zeroclaw agent -m %s' "${escaped}"
|
||||
else
|
||||
echo 'source ~/.cargo/env 2>/dev/null; source ~/.spawnrc 2>/dev/null; zeroclaw agent'
|
||||
fi
|
||||
}
|
||||
|
||||
spawn_agent "ZeroClaw"
|
||||
116
manifest.json
116
manifest.json
|
|
@ -49,28 +49,18 @@
|
|||
},
|
||||
"featured_cloud": ["fly"]
|
||||
},
|
||||
"nanoclaw": {
|
||||
"name": "NanoClaw",
|
||||
"description": "WhatsApp-based AI agent",
|
||||
"url": "https://github.com/gavrielc/nanoclaw",
|
||||
"install": "git clone https://github.com/gavrielc/nanoclaw.git ~/nanoclaw && cd ~/nanoclaw && npm install && npm run build",
|
||||
"launch": "cd ~/nanoclaw && npm run dev",
|
||||
"deps": [
|
||||
"tsx"
|
||||
],
|
||||
"zeroclaw": {
|
||||
"name": "ZeroClaw",
|
||||
"description": "Fast, small, fully autonomous AI assistant infrastructure — deploy anywhere, swap anything",
|
||||
"url": "https://github.com/zeroclaw-labs/zeroclaw",
|
||||
"install": "curl -LsSf https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/main/scripts/install.sh | bash -s -- --install-rust --install-system-deps",
|
||||
"launch": "zeroclaw agent",
|
||||
"env": {
|
||||
"OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}",
|
||||
"ANTHROPIC_API_KEY": "${OPENROUTER_API_KEY}",
|
||||
"ANTHROPIC_BASE_URL": "https://openrouter.ai/api"
|
||||
"ZEROCLAW_PROVIDER": "openrouter"
|
||||
},
|
||||
"dotenv": {
|
||||
"path": "~/nanoclaw/.env",
|
||||
"values": {
|
||||
"ANTHROPIC_API_KEY": "${OPENROUTER_API_KEY}"
|
||||
}
|
||||
},
|
||||
"notes": "Requires WhatsApp QR code scan for authentication",
|
||||
"featured_cloud": ["fly"]
|
||||
"notes": "Rust-based agent framework built by Harvard/MIT/Sundai.Club communities. Natively supports OpenRouter via OPENROUTER_API_KEY + ZEROCLAW_PROVIDER=openrouter. Requires compilation from source (~5-10 min).",
|
||||
"featured_cloud": ["hetzner", "fly"]
|
||||
},
|
||||
"codex": {
|
||||
"name": "Codex CLI",
|
||||
|
|
@ -232,53 +222,53 @@
|
|||
}
|
||||
},
|
||||
"matrix": {
|
||||
"sprite/claude": "implemented",
|
||||
"sprite/openclaw": "implemented",
|
||||
"sprite/nanoclaw": "implemented",
|
||||
"hetzner/claude": "implemented",
|
||||
"hetzner/openclaw": "implemented",
|
||||
"hetzner/nanoclaw": "implemented",
|
||||
"digitalocean/claude": "implemented",
|
||||
"digitalocean/openclaw": "implemented",
|
||||
"digitalocean/nanoclaw": "implemented",
|
||||
"sprite/codex": "implemented",
|
||||
"hetzner/codex": "implemented",
|
||||
"digitalocean/codex": "implemented",
|
||||
"aws/claude": "implemented",
|
||||
"aws/openclaw": "implemented",
|
||||
"aws/nanoclaw": "implemented",
|
||||
"aws/codex": "implemented",
|
||||
"gcp/claude": "implemented",
|
||||
"gcp/openclaw": "implemented",
|
||||
"gcp/nanoclaw": "implemented",
|
||||
"gcp/codex": "implemented",
|
||||
"fly/claude": "implemented",
|
||||
"fly/openclaw": "implemented",
|
||||
"fly/nanoclaw": "implemented",
|
||||
"fly/codex": "implemented",
|
||||
"sprite/opencode": "implemented",
|
||||
"hetzner/opencode": "implemented",
|
||||
"digitalocean/opencode": "implemented",
|
||||
"aws/opencode": "implemented",
|
||||
"gcp/opencode": "implemented",
|
||||
"fly/opencode": "implemented",
|
||||
"daytona/claude": "implemented",
|
||||
"daytona/openclaw": "implemented",
|
||||
"daytona/nanoclaw": "implemented",
|
||||
"daytona/codex": "implemented",
|
||||
"daytona/opencode": "implemented",
|
||||
"sprite/kilocode": "implemented",
|
||||
"hetzner/kilocode": "implemented",
|
||||
"digitalocean/kilocode": "implemented",
|
||||
"aws/kilocode": "implemented",
|
||||
"gcp/kilocode": "implemented",
|
||||
"fly/kilocode": "implemented",
|
||||
"daytona/kilocode": "implemented",
|
||||
"local/claude": "implemented",
|
||||
"local/openclaw": "implemented",
|
||||
"local/nanoclaw": "implemented",
|
||||
"local/zeroclaw": "implemented",
|
||||
"local/codex": "implemented",
|
||||
"local/opencode": "missing",
|
||||
"local/kilocode": "implemented"
|
||||
"local/kilocode": "implemented",
|
||||
"hetzner/claude": "implemented",
|
||||
"hetzner/openclaw": "implemented",
|
||||
"hetzner/zeroclaw": "implemented",
|
||||
"hetzner/codex": "implemented",
|
||||
"hetzner/opencode": "implemented",
|
||||
"hetzner/kilocode": "implemented",
|
||||
"fly/claude": "implemented",
|
||||
"fly/openclaw": "implemented",
|
||||
"fly/zeroclaw": "implemented",
|
||||
"fly/codex": "implemented",
|
||||
"fly/opencode": "implemented",
|
||||
"fly/kilocode": "implemented",
|
||||
"aws/claude": "implemented",
|
||||
"aws/openclaw": "implemented",
|
||||
"aws/zeroclaw": "implemented",
|
||||
"aws/codex": "implemented",
|
||||
"aws/opencode": "implemented",
|
||||
"aws/kilocode": "implemented",
|
||||
"daytona/claude": "implemented",
|
||||
"daytona/openclaw": "implemented",
|
||||
"daytona/zeroclaw": "implemented",
|
||||
"daytona/codex": "implemented",
|
||||
"daytona/opencode": "implemented",
|
||||
"daytona/kilocode": "implemented",
|
||||
"digitalocean/claude": "implemented",
|
||||
"digitalocean/openclaw": "implemented",
|
||||
"digitalocean/zeroclaw": "implemented",
|
||||
"digitalocean/codex": "implemented",
|
||||
"digitalocean/opencode": "implemented",
|
||||
"digitalocean/kilocode": "implemented",
|
||||
"gcp/claude": "implemented",
|
||||
"gcp/openclaw": "implemented",
|
||||
"gcp/zeroclaw": "implemented",
|
||||
"gcp/codex": "implemented",
|
||||
"gcp/opencode": "implemented",
|
||||
"gcp/kilocode": "implemented",
|
||||
"sprite/claude": "implemented",
|
||||
"sprite/openclaw": "implemented",
|
||||
"sprite/zeroclaw": "implemented",
|
||||
"sprite/codex": "implemented",
|
||||
"sprite/opencode": "implemented",
|
||||
"sprite/kilocode": "implemented"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,47 +0,0 @@
|
|||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
# Source common functions - try local file first, fall back to remote
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then
|
||||
source "${SCRIPT_DIR}/lib/common.sh"
|
||||
else
|
||||
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/sprite/lib/common.sh)"
|
||||
fi
|
||||
|
||||
log_info "NanoClaw on Sprite"
|
||||
echo ""
|
||||
|
||||
agent_install() {
|
||||
log_step "Installing Docker (required by NanoClaw on Linux)..."
|
||||
cloud_run "command -v docker >/dev/null || (curl -fsSL https://get.docker.com | sh)"
|
||||
log_step "Installing tsx..."
|
||||
cloud_run "source ~/.bashrc && bun install -g tsx"
|
||||
log_step "Cloning and building nanoclaw..."
|
||||
cloud_run "git clone https://github.com/gavrielc/nanoclaw.git ~/nanoclaw && cd ~/nanoclaw && npm install && npm run build"
|
||||
log_info "NanoClaw installed"
|
||||
}
|
||||
|
||||
agent_env_vars() {
|
||||
generate_env_config \
|
||||
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ANTHROPIC_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ANTHROPIC_BASE_URL=https://openrouter.ai/api"
|
||||
}
|
||||
|
||||
agent_configure() {
|
||||
local dotenv_content
|
||||
dotenv_content=$(printf 'ANTHROPIC_API_KEY=%s\nANTHROPIC_BASE_URL=https://openrouter.ai/api\n' "${OPENROUTER_API_KEY}")
|
||||
upload_config_file cloud_upload cloud_run "${dotenv_content}" "\$HOME/nanoclaw/.env"
|
||||
}
|
||||
|
||||
agent_launch_cmd() {
|
||||
echo 'cd ~/nanoclaw && source ~/.zshrc && npm run dev'
|
||||
}
|
||||
|
||||
agent_pre_launch() {
|
||||
log_info "You will need to scan a WhatsApp QR code to authenticate."
|
||||
echo ""
|
||||
}
|
||||
|
||||
spawn_agent "NanoClaw"
|
||||
37
sprite/zeroclaw.sh
Normal file
37
sprite/zeroclaw.sh
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/bash
|
||||
set -eo pipefail
|
||||
|
||||
# Source common functions - try local file first, fall back to remote
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" 2>/dev/null && pwd)"
|
||||
if [[ -f "${SCRIPT_DIR}/lib/common.sh" ]]; then
|
||||
source "${SCRIPT_DIR}/lib/common.sh"
|
||||
else
|
||||
eval "$(curl -fsSL https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/sprite/lib/common.sh)"
|
||||
fi
|
||||
|
||||
log_info "ZeroClaw on Sprite"
|
||||
echo ""
|
||||
log_warn "Note: ZeroClaw is built from Rust source and may take 5-10 minutes to compile."
|
||||
echo ""
|
||||
|
||||
agent_install() {
|
||||
install_agent "ZeroClaw" \
|
||||
"curl -LsSf https://raw.githubusercontent.com/zeroclaw-labs/zeroclaw/main/scripts/install.sh | bash -s -- --install-rust --install-system-deps" \
|
||||
cloud_run
|
||||
}
|
||||
|
||||
agent_env_vars() {
|
||||
generate_env_config \
|
||||
"OPENROUTER_API_KEY=${OPENROUTER_API_KEY}" \
|
||||
"ZEROCLAW_PROVIDER=openrouter"
|
||||
}
|
||||
|
||||
agent_configure() {
|
||||
cloud_run 'source ~/.spawnrc 2>/dev/null; export PATH="$HOME/.cargo/bin:$PATH"; zeroclaw onboard --api-key "${OPENROUTER_API_KEY}" --provider openrouter'
|
||||
}
|
||||
|
||||
agent_launch_cmd() {
|
||||
echo 'source ~/.cargo/env 2>/dev/null; source ~/.spawnrc 2>/dev/null; zeroclaw agent'
|
||||
}
|
||||
|
||||
spawn_agent "ZeroClaw"
|
||||
|
|
@ -34,7 +34,7 @@ _parse_args() {
|
|||
_maybe_inject_error() {
|
||||
[ -n "${MOCK_ERROR_SCENARIO:-}" ] || return 1
|
||||
case "$URL" in
|
||||
*openrouter.ai*|*raw.githubusercontent.com*|*claude.ai/install*|*bun.sh*|*nodesource*|*opencode*|*pip.pypa.io*|*get.docker.com*|*npmjs.org*|*github.com/*/releases*)
|
||||
*openrouter.ai*|*raw.githubusercontent.com*|*claude.ai/install*|*bun.sh*|*nodesource*|*opencode*|*zeroclaw*|*pip.pypa.io*|*get.docker.com*|*npmjs.org*|*github.com/*/releases*)
|
||||
return 1 ;;
|
||||
esac
|
||||
case "${MOCK_ERROR_SCENARIO}" in
|
||||
|
|
@ -65,7 +65,7 @@ _maybe_inject_error() {
|
|||
|
||||
_handle_special_urls() {
|
||||
case "$URL" in
|
||||
*claude.ai/install*|*bun.sh*|*nodesource*|*opencode*install*|\
|
||||
*claude.ai/install*|*bun.sh*|*nodesource*|*opencode*install*|*zeroclaw*install*|\
|
||||
*pip.pypa.io*|*get.docker.com*|*install.python-poetry.org*|\
|
||||
*npmjs.org*|*deb.nodesource.com*|*github.com/*/releases*|*cli.github.com*)
|
||||
printf '#!/bin/bash\nexit 0\n'
|
||||
|
|
|
|||
|
|
@ -243,7 +243,7 @@ MOCK
|
|||
|
||||
setup_mock_agents() {
|
||||
# Agent binaries
|
||||
_create_logging_mock claude codex opencode kilocode openclaw nanoclaw q
|
||||
_create_logging_mock claude openclaw zeroclaw codex opencode kilocode q
|
||||
|
||||
# Tools used during agent install and file upload
|
||||
_create_logging_mock pip pip3 npm npx bun node openssl shred cargo go git base64
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue