fix: sprite npm PATH resolution and gateway timeout (#1484)

* fix: sprite npm PATH resolution and gateway timeout

Sprites use nvm-managed node, so npm global bin is at
/.sprite/languages/node/nvm/.../bin/ which isn't in default PATH.
Dynamically resolve $(npm prefix -g)/bin in install, launch, and
gateway commands for all sprite agents.

Also increase openclaw gateway timeout from 30s to 60s — gateway
starts slowly on sprites but TUI connects once ready.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix: add opencode bin dir to PATH in sprite launch command

OpenCode installs to $HOME/.opencode/bin/ which isn't in the sprite's
default PATH or the npm prefix path.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Ahmed Abushagur 2026-02-19 13:49:52 -08:00 committed by GitHub
parent 87d6fdd240
commit a063fe61cd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 10 additions and 10 deletions

View file

@ -3208,7 +3208,7 @@ setup_openclaw_config() {
start_openclaw_gateway() {
local run_callback="${1}"
log_step "Starting OpenClaw gateway daemon..."
${run_callback} "source ~/.spawnrc 2>/dev/null; export PATH=\$HOME/.bun/bin:/.sprite/languages/bun/bin:\$HOME/.local/bin:\$PATH; if command -v setsid >/dev/null 2>&1; then setsid openclaw gateway > /tmp/openclaw-gateway.log 2>&1 < /dev/null & else nohup openclaw gateway > /tmp/openclaw-gateway.log 2>&1 < /dev/null & fi"
${run_callback} "source ~/.spawnrc 2>/dev/null; export PATH=\$(npm prefix -g 2>/dev/null)/bin:\$HOME/.bun/bin:/.sprite/languages/bun/bin:\$HOME/.local/bin:\$PATH; if command -v setsid >/dev/null 2>&1; then setsid openclaw gateway > /tmp/openclaw-gateway.log 2>&1 < /dev/null & else nohup openclaw gateway > /tmp/openclaw-gateway.log 2>&1 < /dev/null & fi"
}
# Wait for OpenClaw gateway to be ready
@ -3221,7 +3221,7 @@ start_openclaw_gateway() {
# 0 if gateway starts successfully, 1 if timeout
wait_for_openclaw_gateway() {
local run_callback="${1}"
local max_wait=30
local max_wait=60
local elapsed=0
log_step "Waiting for OpenClaw gateway to start..."

View file

@ -13,7 +13,7 @@ log_info "Codex CLI on Sprite"
echo ""
agent_install() {
install_agent "Codex CLI" "npm install -g @openai/codex" cloud_run
install_agent "Codex CLI" "export PATH=\$(npm prefix -g 2>/dev/null)/bin:\$PATH && npm install -g @openai/codex" cloud_run
}
agent_env_vars() {
@ -24,7 +24,7 @@ agent_env_vars() {
}
agent_launch_cmd() {
echo 'source ~/.spawnrc 2>/dev/null; export PATH=$HOME/.bun/bin:/.sprite/languages/bun/bin:$PATH; codex'
echo 'source ~/.spawnrc 2>/dev/null; export PATH=$(npm prefix -g 2>/dev/null)/bin:$HOME/.bun/bin:/.sprite/languages/bun/bin:$PATH; codex'
}
spawn_agent "Codex CLI"

View file

@ -13,7 +13,7 @@ log_info "Kilo Code on Sprite"
echo ""
agent_install() {
install_agent "Kilo Code" "npm install -g @kilocode/cli" cloud_run
install_agent "Kilo Code" "export PATH=\$(npm prefix -g 2>/dev/null)/bin:\$PATH && npm install -g @kilocode/cli" cloud_run
}
agent_env_vars() {
@ -24,7 +24,7 @@ agent_env_vars() {
}
agent_launch_cmd() {
echo 'source ~/.spawnrc 2>/dev/null; export PATH=$HOME/.bun/bin:/.sprite/languages/bun/bin:$PATH; kilocode'
echo 'source ~/.spawnrc 2>/dev/null; export PATH=$(npm prefix -g 2>/dev/null)/bin:$HOME/.bun/bin:/.sprite/languages/bun/bin:$PATH; kilocode'
}
spawn_agent "Kilo Code"

View file

@ -16,8 +16,8 @@ AGENT_MODEL_PROMPT=1
AGENT_MODEL_DEFAULT="openrouter/auto"
agent_install() {
# npm global bin may not be in PATH on sprites — find it and persist to .spawnrc
install_agent "openclaw" "export PATH=\$HOME/.bun/bin:/.sprite/languages/bun/bin:\$PATH && npm install -g openclaw && NPM_BIN=\$(npm bin -g 2>/dev/null) && echo \"export PATH=\$NPM_BIN:\\\$PATH\" >> ~/.spawnrc && export PATH=\$NPM_BIN:\$PATH && command -v openclaw" cloud_run
# npm global prefix on sprites is under nvm — bin dir is not in default PATH
install_agent "openclaw" "export PATH=\$(npm prefix -g 2>/dev/null)/bin:\$HOME/.bun/bin:/.sprite/languages/bun/bin:\$PATH && npm install -g openclaw && command -v openclaw" cloud_run
}
agent_env_vars() {
@ -37,7 +37,7 @@ agent_pre_launch() {
}
agent_launch_cmd() {
echo 'source ~/.spawnrc 2>/dev/null; export PATH=$HOME/.bun/bin:/.sprite/languages/bun/bin:$PATH; openclaw tui'
echo 'source ~/.spawnrc 2>/dev/null; export PATH=$(npm prefix -g 2>/dev/null)/bin:$HOME/.bun/bin:/.sprite/languages/bun/bin:$PATH; openclaw tui'
}
spawn_agent "OpenClaw"

View file

@ -22,7 +22,7 @@ agent_env_vars() {
}
agent_launch_cmd() {
echo 'source ~/.spawnrc 2>/dev/null; export PATH=$HOME/.bun/bin:/.sprite/languages/bun/bin:$PATH; opencode'
echo 'source ~/.spawnrc 2>/dev/null; export PATH=$HOME/.opencode/bin:$(npm prefix -g 2>/dev/null)/bin:$HOME/.bun/bin:/.sprite/languages/bun/bin:$PATH; opencode'
}
spawn_agent "OpenCode"