Background
The provider-agnostic harness abstraction needs additional first-party cloud choices. Sprites provides a native WebSocket-capable proxy through a Sprite’s single http_port, making it suitable for the standard Claude Code and Codex bridge flow. Sprites is the first-priority provider in the proposed rollout.
Feature Request
Add the first-party @ai-sdk/sandbox-sprites package using the provider/session shape and lifecycle conventions established by @ai-sdk/sandbox-vercel, while keeping Sprites-specific behavior out of the core harness and adapters.
Bind the bridge service through the Sprite’s single proxied http_port. Implement getPortUrl so it returns the corresponding directly dialable wss://<name>-<suffix>.sprites.app/ URL and keeps that URL stable across client reconnects and reattachment to the existing sandbox session.
A stock ws client must connect using the returned URL plus ?agent_bridge_token=${encodeURIComponent(token)}. The complete parameter name and encoded value must reach the in-sandbox WebSocket upgrade unchanged. The connection must require no provider-specific client, custom headers, initialization frame, or application-level handshake.
Verify that Claude Code and Codex consume the provider identically through their existing getPortUrl flow, without provider-specific adapter branches. setNetworkPolicy and setPorts remain optional and must not gate bridge capability. If the complete contract cannot be maintained, the provider must not be advertised or selected as bridge-capable and may only support non-bridge flows.
Related Issues
Extracted from #16100
Background
The provider-agnostic harness abstraction needs additional first-party cloud choices. Sprites provides a native WebSocket-capable proxy through a Sprite’s single
http_port, making it suitable for the standard Claude Code and Codex bridge flow. Sprites is the first-priority provider in the proposed rollout.Feature Request
Add the first-party
@ai-sdk/sandbox-spritespackage using the provider/session shape and lifecycle conventions established by@ai-sdk/sandbox-vercel, while keeping Sprites-specific behavior out of the core harness and adapters.Bind the bridge service through the Sprite’s single proxied
http_port. ImplementgetPortUrlso it returns the corresponding directly dialablewss://<name>-<suffix>.sprites.app/URL and keeps that URL stable across client reconnects and reattachment to the existing sandbox session.A stock
wsclient must connect using the returned URL plus?agent_bridge_token=${encodeURIComponent(token)}. The complete parameter name and encoded value must reach the in-sandbox WebSocket upgrade unchanged. The connection must require no provider-specific client, custom headers, initialization frame, or application-level handshake.Verify that Claude Code and Codex consume the provider identically through their existing
getPortUrlflow, without provider-specific adapter branches.setNetworkPolicyandsetPortsremain optional and must not gate bridge capability. If the complete contract cannot be maintained, the provider must not be advertised or selected as bridge-capable and may only support non-bridge flows.Related Issues
Extracted from #16100