27 lines
916 B
TypeScript
27 lines
916 B
TypeScript
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)
|
|
}
|