fix: accept Muse and Devin across typed agent spawning
Typed agent spawning rejects muse and devin even though native spawn dispatch supports them. Add both to CliTypeSchema and OpenAPI, which also updates the derived TypeScript SDK request type, HTTP validation/error guidance, and MCP agent.add schema. Existing values, including opencode and grok, remain accepted.
Also fix the Rust registration helper's independent allowlist: OpenCode, Grok, Muse, and Devin hints/defaults now retain their identity instead of silently falling back to another CLI. Existing normalization and unknown-value fallback behavior are unchanged. README and release notes describe the supported values.
Validation:
- Added schema acceptance/rejection and OpenAPI parity tests; SDK compile-time union assertions included in
test:types; real engine dispatch tests for all nine CLIs and invalid-value tests; MCP forwarding/validation tests; Rust registration tests. - Local: changed TypeScript syntax checks, static enum/OpenAPI parity and Rust allowlist checks, and
git diff --checkpassed. - CI runs full lint/build/tests and Rust tests. This worktree has no dependencies, and the host has no Rust toolchain; no installs, Docker, or local builds were used.
Harness-list audit: no rejecting lists were left unfixed. site/index.html tool badges, site/hero-animation.js demo providers, and fleet-wire fixture capability examples remain unchanged because they are illustrative rather than validation lists. Native action dispatch is capability-driven and needs no new allowlist. Other language SDKs have no restrictive spawn CLI enum.
Need help on this PR? Tag @codesmith-bot with what you need.
[!NOTE]
Low Risk
Enum extension and registration allowlist fixes only; spawn dispatch stays capability-driven with no auth or data-path changes.
Overview
Adds muse and devin to typed agent spawn so HTTP POST /v1/agents/spawn, relay.agents.spawn(), and MCP agent.add accept the same nine CLIs the fleet already dispatches by capability—previously validation rejected those two despite native spawn support.
The change is centralized in CliTypeSchema in @relaycast/types, with OpenAPI and derived SDK types updated in lockstep. Rust registration now keeps opencode, grok, muse, and devin hints instead of silently normalizing them away to another harness.
Tests cover schema/OpenAPI parity, SDK compile-time unions, per-CLI HTTP dispatch, MCP forward/reject, and Rust hint preservation. README and changelogs document the full cli list.
Reviewed by Cursor Bugbot for commit 45fee5bb1f8537a95e623abdb9ebad55026555de. Bugbot is set up for automated code reviews on this repo. Configure here.