diff --git a/src/client.ts b/src/client.ts index 3a035f8..67d4dcf 100644 --- a/src/client.ts +++ b/src/client.ts @@ -126,6 +126,8 @@ export function createClient(config: { axios: axiosClient, socket, appId, + serverUrl, + token, }), cleanup: () => { socket.disconnect(); @@ -141,6 +143,8 @@ export function createClient(config: { axios: serviceRoleAxiosClient, socket, appId, + serverUrl, + token }), cleanup: () => { socket.disconnect(); diff --git a/src/modules/agents.ts b/src/modules/agents.ts index eef9ef0..d7f8a9a 100644 --- a/src/modules/agents.ts +++ b/src/modules/agents.ts @@ -2,17 +2,22 @@ import { RoomsSocket } from "../utils/socket-utils.js"; import { AgentConversation, AgentMessage } from "./agents.types.js"; import { AxiosInstance } from "axios"; import { ModelFilterParams } from "../types.js"; +import { getAccessToken } from "../utils/auth-utils.js"; export type AgentsModuleConfig = { axios: AxiosInstance; socket: ReturnType; appId: string; + serverUrl?: string; + token?: string; }; export function createAgentsModule({ axios, socket, appId, + serverUrl, + token, }: AgentsModuleConfig) { const baseURL = `/apps/${appId}/agents`; @@ -74,8 +79,16 @@ export function createAgentsModule({ }); }; - const generateUserWhatsAppLink = (agentName: string) => { - return axios.post(`/whatsapp/generate-user-link`, { agent_name: agentName }); + const getWhatsAppConnectURL = (agentName: string) => { + const baseUrl = `${serverUrl}/whatsapp/${appId}/${encodeURIComponent(agentName)}`; + const accessToken = token ?? getAccessToken(); + + if (accessToken) { + return `${baseUrl}?token=${accessToken}`; + } else { + // No token - URL will redirect to login automatically + return baseUrl; + } }; return { @@ -85,6 +98,6 @@ export function createAgentsModule({ createConversation, addMessage, subscribeToConversation, - generateUserWhatsAppLink, + getWhatsAppConnectURL, }; }