From b1672002cc1595aecb98cde04364465350a15a65 Mon Sep 17 00:00:00 2001 From: Ofek Simhi <158498125+osimhi213@users.noreply.github.com> Date: Thu, 26 Mar 2026 14:33:51 +0200 Subject: [PATCH] Refactor/session transport config (#344) * Refactor/session transport config * pass lint --- .../agent-manager/connect-to-manager.test.ts | 4 +++- .../agent-manager/connect-to-manager.ts | 4 +++- src/services/streaming-manager/factory.test.ts | 8 ++++++-- src/services/streaming-manager/factory.ts | 4 ++-- .../streaming-manager/livekit-manager.test.ts | 17 +++++++++++++---- .../streaming-manager/livekit-manager.ts | 3 +-- src/types/stream/streams-v2.ts | 4 +++- 7 files changed, 31 insertions(+), 13 deletions(-) diff --git a/src/services/agent-manager/connect-to-manager.test.ts b/src/services/agent-manager/connect-to-manager.test.ts index e8f653c8..4b678c3b 100644 --- a/src/services/agent-manager/connect-to-manager.test.ts +++ b/src/services/agent-manager/connect-to-manager.test.ts @@ -611,7 +611,9 @@ describe('connect-to-manager', () => { expressiveAgent, { version: StreamApiVersion.V2, - transport_provider: TransportProvider.Livekit, + transport: { + provider: TransportProvider.Livekit, + }, }, expect.not.objectContaining({ chatId: expect.anything(), diff --git a/src/services/agent-manager/connect-to-manager.ts b/src/services/agent-manager/connect-to-manager.ts index 53f1924b..09e85095 100644 --- a/src/services/agent-manager/connect-to-manager.ts +++ b/src/services/agent-manager/connect-to-manager.ts @@ -34,7 +34,9 @@ import { createChat } from '../chat'; const ChatPrefix = 'cht'; function getAgentStreamV2Options(): CreateSessionV2Options { return { - transport_provider: TransportProvider.Livekit, + transport: { + provider: TransportProvider.Livekit, + }, }; } diff --git a/src/services/streaming-manager/factory.test.ts b/src/services/streaming-manager/factory.test.ts index 1c6c118a..6765c463 100644 --- a/src/services/streaming-manager/factory.test.ts +++ b/src/services/streaming-manager/factory.test.ts @@ -92,7 +92,9 @@ describe('createStreamingManager', () => { }); const v2StreamOptions: CreateSessionV2Options = { - transport_provider: TransportProvider.Livekit, + transport: { + provider: TransportProvider.Livekit, + }, chat_persist: true, }; @@ -115,7 +117,9 @@ describe('createStreamingManager', () => { }); const v2StreamOptions: CreateSessionV2Options = { - transport_provider: TransportProvider.Livekit, + transport: { + provider: TransportProvider.Livekit, + }, chat_persist: true, }; diff --git a/src/services/streaming-manager/factory.ts b/src/services/streaming-manager/factory.ts index 207b3954..05915c3d 100644 --- a/src/services/streaming-manager/factory.ts +++ b/src/services/streaming-manager/factory.ts @@ -34,12 +34,12 @@ export async function createStreamingManager( case StreamApiVersion.V2: { const { version, ...createStreamOptions } = streamOptions; - switch (createStreamOptions.transport_provider) { + switch (createStreamOptions.transport.provider) { case TransportProvider.Livekit: const { createLiveKitStreamingManager } = await import('./livekit-manager'); return createLiveKitStreamingManager(agentId, createStreamOptions, options); default: - throw new Error(`Unsupported transport provider: ${createStreamOptions.transport_provider}`); + throw new Error(`Unsupported transport provider: ${createStreamOptions.transport.provider}`); } } diff --git a/src/services/streaming-manager/livekit-manager.test.ts b/src/services/streaming-manager/livekit-manager.test.ts index 1f508632..118fa076 100644 --- a/src/services/streaming-manager/livekit-manager.test.ts +++ b/src/services/streaming-manager/livekit-manager.test.ts @@ -5,6 +5,7 @@ import { StreamEvents, StreamingManagerOptions, StreamingState, + TransportProvider, } from '../../types/index'; import { createLiveKitStreamingManager } from './livekit-manager'; @@ -268,7 +269,9 @@ describe('LiveKit Streaming Manager - Microphone Stream', () => { agentId = TEST_AGENT_ID; sessionOptions = { chat_persist: true, - transport_provider: 'livekit' as any, + transport: { + provider: TransportProvider.Livekit, + }, }; options = StreamingManagerOptionsFactory.build(); }); @@ -809,7 +812,9 @@ describe('LiveKit Streaming Manager - Camera Stream', () => { agentId = TEST_AGENT_ID; sessionOptions = { chat_persist: true, - transport_provider: 'livekit' as any, + transport: { + provider: TransportProvider.Livekit, + }, }; options = StreamingManagerOptionsFactory.build(); }); @@ -1034,7 +1039,9 @@ describe('LiveKit Streaming Manager - Disconnect Behavior', () => { agentId = TEST_AGENT_ID; sessionOptions = { chat_persist: true, - transport_provider: 'livekit' as any, + transport: { + provider: TransportProvider.Livekit, + }, }; options = StreamingManagerOptionsFactory.build(); }); @@ -1126,7 +1133,9 @@ describe('LiveKit Streaming Manager - Tool Events and Activity State', () => { agentId = TEST_AGENT_ID; sessionOptions = { chat_persist: true, - transport_provider: 'livekit' as any, + transport: { + provider: TransportProvider.Livekit, + }, }; options = StreamingManagerOptionsFactory.build(); }); diff --git a/src/services/streaming-manager/livekit-manager.ts b/src/services/streaming-manager/livekit-manager.ts index 9dc8caf4..6bd24cfa 100644 --- a/src/services/streaming-manager/livekit-manager.ts +++ b/src/services/streaming-manager/livekit-manager.ts @@ -12,7 +12,6 @@ import { StreamType, ToolCallingPayload, ToolResultPayload, - TransportProvider, } from '@sdk/types'; import { ChatProgress } from '@sdk/types/entities/agents/manager'; import { noop } from '@sdk/utils'; @@ -133,7 +132,7 @@ export async function createLiveKitStreamingManager