mirror of
https://github.com/OpenRouterTeam/spawn.git
synced 2026-04-28 03:49:31 +00:00
fix(e2e): double GCP cloud-init wait timeout to 10 minutes for Node install (#2713)
* chore: update agent GitHub star counts * chore: update agent GitHub star counts * chore: update agent GitHub star counts * chore: update agent GitHub star counts * chore: update agent GitHub star counts * chore: update agent GitHub star counts * chore: update agent GitHub star counts * chore: update agent GitHub star counts * chore: update agent GitHub star counts * chore: update agent GitHub star counts * chore: update agent GitHub star counts * chore: update agent GitHub star counts * chore: update agent GitHub star counts * chore: update agent GitHub star counts * chore: update agent GitHub star counts * chore: update agent GitHub star counts * fix(gcp): double cloud-init wait timeout to 120 attempts (10 min) GCP startup scripts installing Node.js 22 via `n` from curl take longer than 5 min on cold starts. The previous 60-attempt (5 min) poll timed out with "Startup script may not have completed, continuing..." and proceeded to run `npm install -g @kilocode/cli` before npm was available, causing `npm: command not found` errors. Increase `maxAttempts` from 60 to 120 (10 min) in `waitForCloudInit` to give the Node install enough time to complete on GCP cold starts. Confirmed by E2E run: GCP kilocode failed with npm not found after all 60 poll attempts exhausted; all other GCP agents passed (they don't need Node). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: spawn-qa-bot <qa@openrouter.ai> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
34785a9a63
commit
0e5bfd830b
3 changed files with 94 additions and 34 deletions
124
manifest.json
124
manifest.json
|
|
@ -28,19 +28,26 @@
|
|||
}
|
||||
},
|
||||
"icon": "https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/assets/agents/claude.png",
|
||||
"featured_cloud": ["digitalocean", "sprite"],
|
||||
"featured_cloud": [
|
||||
"digitalocean",
|
||||
"sprite"
|
||||
],
|
||||
"creator": "Anthropic",
|
||||
"repo": "anthropics/claude-code",
|
||||
"license": "Proprietary",
|
||||
"created": "2025-02",
|
||||
"added": "2025-06",
|
||||
"github_stars": 73410,
|
||||
"stars_updated": "2026-03-04",
|
||||
"github_stars": 79093,
|
||||
"stars_updated": "2026-03-17",
|
||||
"language": "Shell",
|
||||
"runtime": "node",
|
||||
"category": "cli",
|
||||
"tagline": "Anthropic's AI coding agent — plan, build, and ship code across your entire codebase",
|
||||
"tags": ["coding", "terminal", "agentic"]
|
||||
"tags": [
|
||||
"coding",
|
||||
"terminal",
|
||||
"agentic"
|
||||
]
|
||||
},
|
||||
"openclaw": {
|
||||
"name": "OpenClaw",
|
||||
|
|
@ -61,19 +68,26 @@
|
|||
}
|
||||
},
|
||||
"icon": "https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/assets/agents/openclaw.png",
|
||||
"featured_cloud": ["digitalocean", "sprite"],
|
||||
"featured_cloud": [
|
||||
"digitalocean",
|
||||
"sprite"
|
||||
],
|
||||
"creator": "OpenClaw",
|
||||
"repo": "openclaw/openclaw",
|
||||
"license": "MIT",
|
||||
"created": "2025-11",
|
||||
"added": "2025-11",
|
||||
"github_stars": 256970,
|
||||
"stars_updated": "2026-03-04",
|
||||
"github_stars": 319742,
|
||||
"stars_updated": "2026-03-17",
|
||||
"language": "TypeScript",
|
||||
"runtime": "bun",
|
||||
"category": "tui",
|
||||
"tagline": "Your personal AI — any channel, any model, from the terminal",
|
||||
"tags": ["coding", "tui", "gateway"]
|
||||
"tags": [
|
||||
"coding",
|
||||
"tui",
|
||||
"gateway"
|
||||
]
|
||||
},
|
||||
"zeroclaw": {
|
||||
"name": "ZeroClaw",
|
||||
|
|
@ -99,19 +113,27 @@
|
|||
},
|
||||
"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).",
|
||||
"icon": "https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/assets/agents/zeroclaw.png",
|
||||
"featured_cloud": ["digitalocean", "sprite"],
|
||||
"featured_cloud": [
|
||||
"digitalocean",
|
||||
"sprite"
|
||||
],
|
||||
"creator": "Sundai.Club",
|
||||
"repo": "zeroclaw-labs/zeroclaw",
|
||||
"license": "Apache-2.0",
|
||||
"created": "2026-02",
|
||||
"added": "2025-12",
|
||||
"github_stars": 21867,
|
||||
"stars_updated": "2026-03-04",
|
||||
"github_stars": 27636,
|
||||
"stars_updated": "2026-03-17",
|
||||
"language": "Rust",
|
||||
"runtime": "binary",
|
||||
"category": "cli",
|
||||
"tagline": "Fast, small, fully autonomous AI infrastructure — deploy anywhere, swap anything",
|
||||
"tags": ["coding", "terminal", "rust", "autonomous"]
|
||||
"tags": [
|
||||
"coding",
|
||||
"terminal",
|
||||
"rust",
|
||||
"autonomous"
|
||||
]
|
||||
},
|
||||
"codex": {
|
||||
"name": "Codex CLI",
|
||||
|
|
@ -126,19 +148,26 @@
|
|||
},
|
||||
"notes": "Works with OpenRouter via OPENAI_BASE_URL override pointing to openrouter.ai/api/v1",
|
||||
"icon": "https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/assets/agents/codex.png",
|
||||
"featured_cloud": ["digitalocean", "sprite"],
|
||||
"featured_cloud": [
|
||||
"digitalocean",
|
||||
"sprite"
|
||||
],
|
||||
"creator": "OpenAI",
|
||||
"repo": "openai/codex",
|
||||
"license": "Apache-2.0",
|
||||
"created": "2025-04",
|
||||
"added": "2025-07",
|
||||
"github_stars": 62925,
|
||||
"stars_updated": "2026-03-04",
|
||||
"github_stars": 65879,
|
||||
"stars_updated": "2026-03-17",
|
||||
"language": "Rust",
|
||||
"runtime": "binary",
|
||||
"category": "cli",
|
||||
"tagline": "OpenAI's lightweight coding agent for the terminal",
|
||||
"tags": ["coding", "terminal", "openai"]
|
||||
"tags": [
|
||||
"coding",
|
||||
"terminal",
|
||||
"openai"
|
||||
]
|
||||
},
|
||||
"opencode": {
|
||||
"name": "OpenCode",
|
||||
|
|
@ -151,19 +180,26 @@
|
|||
},
|
||||
"notes": "Natively supports OpenRouter via OPENROUTER_API_KEY env var. Go-based TUI using Bubble Tea.",
|
||||
"icon": "https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/assets/agents/opencode.png",
|
||||
"featured_cloud": ["digitalocean", "sprite"],
|
||||
"featured_cloud": [
|
||||
"digitalocean",
|
||||
"sprite"
|
||||
],
|
||||
"creator": "SST",
|
||||
"repo": "sst/opencode",
|
||||
"license": "MIT",
|
||||
"created": "2025-04",
|
||||
"added": "2025-08",
|
||||
"github_stars": 115408,
|
||||
"stars_updated": "2026-03-04",
|
||||
"github_stars": 123981,
|
||||
"stars_updated": "2026-03-17",
|
||||
"language": "TypeScript",
|
||||
"runtime": "go",
|
||||
"category": "tui",
|
||||
"tagline": "The open-source AI coding agent",
|
||||
"tags": ["coding", "tui", "go"]
|
||||
"tags": [
|
||||
"coding",
|
||||
"tui",
|
||||
"go"
|
||||
]
|
||||
},
|
||||
"kilocode": {
|
||||
"name": "Kilo Code",
|
||||
|
|
@ -178,19 +214,27 @@
|
|||
},
|
||||
"notes": "Natively supports OpenRouter as a provider via KILO_PROVIDER_TYPE=openrouter. CLI installable via npm as @kilocode/cli, invocable as 'kilocode' or 'kilo'.",
|
||||
"icon": "https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/assets/agents/kilocode.png",
|
||||
"featured_cloud": ["digitalocean", "sprite"],
|
||||
"featured_cloud": [
|
||||
"digitalocean",
|
||||
"sprite"
|
||||
],
|
||||
"creator": "Kilo-Org",
|
||||
"repo": "Kilo-Org/kilocode",
|
||||
"license": "MIT",
|
||||
"created": "2025-03",
|
||||
"added": "2025-09",
|
||||
"github_stars": 16172,
|
||||
"stars_updated": "2026-03-04",
|
||||
"github_stars": 16813,
|
||||
"stars_updated": "2026-03-17",
|
||||
"language": "TypeScript",
|
||||
"runtime": "node",
|
||||
"category": "cli",
|
||||
"tagline": "All-in-one AI coding platform — 100+ providers, one CLI",
|
||||
"tags": ["coding", "terminal", "agentic", "engineering"]
|
||||
"tags": [
|
||||
"coding",
|
||||
"terminal",
|
||||
"agentic",
|
||||
"engineering"
|
||||
]
|
||||
},
|
||||
"hermes": {
|
||||
"name": "Hermes Agent",
|
||||
|
|
@ -205,19 +249,27 @@
|
|||
},
|
||||
"notes": "Natively supports OpenRouter via OPENROUTER_API_KEY. Also works via OPENAI_BASE_URL + OPENAI_API_KEY for OpenAI-compatible mode. Installs Python 3.11 via uv.",
|
||||
"icon": "https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/assets/agents/hermes.png",
|
||||
"featured_cloud": ["digitalocean", "sprite"],
|
||||
"featured_cloud": [
|
||||
"digitalocean",
|
||||
"sprite"
|
||||
],
|
||||
"creator": "Nous Research",
|
||||
"repo": "NousResearch/hermes-agent",
|
||||
"license": "MIT",
|
||||
"created": "2025-06",
|
||||
"added": "2026-02",
|
||||
"github_stars": 1617,
|
||||
"stars_updated": "2026-03-04",
|
||||
"github_stars": 8365,
|
||||
"stars_updated": "2026-03-17",
|
||||
"language": "Python",
|
||||
"runtime": "python",
|
||||
"category": "cli",
|
||||
"tagline": "Persistent AI agent with memory, tools, and multi-platform messaging",
|
||||
"tags": ["agent", "messaging", "memory", "tools"]
|
||||
"tags": [
|
||||
"agent",
|
||||
"messaging",
|
||||
"memory",
|
||||
"tools"
|
||||
]
|
||||
},
|
||||
"junie": {
|
||||
"name": "Junie",
|
||||
|
|
@ -231,19 +283,27 @@
|
|||
},
|
||||
"notes": "Natively supports OpenRouter via JUNIE_OPENROUTER_API_KEY. Subagent tasks may require GPT-4.1 Mini, GPT-4.1, or GPT-5 models to be enabled on your OpenRouter account.",
|
||||
"icon": "https://raw.githubusercontent.com/OpenRouterTeam/spawn/main/assets/agents/junie.png",
|
||||
"featured_cloud": ["digitalocean", "sprite"],
|
||||
"featured_cloud": [
|
||||
"digitalocean",
|
||||
"sprite"
|
||||
],
|
||||
"creator": "JetBrains",
|
||||
"repo": "JetBrains/junie",
|
||||
"license": "Proprietary",
|
||||
"created": "2026-03",
|
||||
"added": "2026-03",
|
||||
"github_stars": 5000,
|
||||
"stars_updated": "2026-03-07",
|
||||
"github_stars": 107,
|
||||
"stars_updated": "2026-03-17",
|
||||
"language": "TypeScript",
|
||||
"runtime": "node",
|
||||
"category": "cli",
|
||||
"tagline": "JetBrains' AI coding agent — BYOK with OpenRouter, IDE-quality intelligence in the terminal",
|
||||
"tags": ["coding", "terminal", "jetbrains", "byok"]
|
||||
"tags": [
|
||||
"coding",
|
||||
"terminal",
|
||||
"jetbrains",
|
||||
"byok"
|
||||
]
|
||||
}
|
||||
},
|
||||
"clouds": {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@openrouter/spawn",
|
||||
"version": "0.20.9",
|
||||
"version": "0.20.10",
|
||||
"type": "module",
|
||||
"bin": {
|
||||
"spawn": "cli.js"
|
||||
|
|
|
|||
|
|
@ -899,7 +899,7 @@ async function waitForSsh(maxAttempts = 36): Promise<void> {
|
|||
});
|
||||
}
|
||||
|
||||
export async function waitForCloudInit(maxAttempts = 60): Promise<void> {
|
||||
export async function waitForCloudInit(maxAttempts = 120): Promise<void> {
|
||||
await waitForSsh();
|
||||
|
||||
logStep("Waiting for startup script completion...");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue