import { ACPClient } from "./client"; import type { ACPSettings } from "./types"; import { getActiveApiToken } from "../api/client"; /** * Build the RCS relay WebSocket URL for a given agent. * Uses UUID auth (same as /code/ pages). */ export function buildRelayUrl(agentId: string): string { const protocol = window.location.protocol === "https:" ? "wss:" : "ws:"; return `${protocol}//${window.location.host}/acp/relay/${agentId}`; } /** * Create an ACPClient that connects to an agent through the RCS relay. * The relay transparently forwards ACP protocol messages between * the frontend and the target acp-link instance. */ export function createRelayClient(agentId: string): ACPClient { const relayUrl = buildRelayUrl(agentId); const token = getActiveApiToken(); const settings: ACPSettings = token ? { proxyUrl: relayUrl, token } : { proxyUrl: relayUrl }; return new ACPClient(settings); }