@@ -4,6 +4,7 @@ import * as core from "../../../../../../core";
44import qs from "qs" ;
55import { ChatSocket } from "./Socket" ;
66import { SDK_VERSION } from "../../../../../../version" ;
7+ import { SessionSettings } from "../../../types/SessionSettings" ;
78
89export function createHostnameWithProtocol ( environment : string ) {
910 const protocol = / ( h t t p s | h t t p | w s s | w s ) : \/ \/ / . exec ( environment ) ;
@@ -44,6 +45,13 @@ export declare namespace Chat {
4445 /** ID of the Voice to use for this chat. If specified, will override the voice set in the Config */
4546 voiceId ?: string ;
4647
48+ sessionSettings ?: Pick <
49+ SessionSettings ,
50+ Exclude < keyof SessionSettings , "builtinTools" | "type" | "metadata" | "tools" >
51+ > & {
52+ eventLimit ?: number ;
53+ } ;
54+
4755 /** Extra query parameters sent at WebSocket connection */
4856 queryParams ?: Record < string , string | string [ ] | object | object [ ] > ;
4957 }
@@ -88,6 +96,60 @@ export class Chat {
8896 queryParams [ "voice_id" ] = args . voiceId ;
8997 }
9098
99+ if ( args . sessionSettings !== null && args . sessionSettings !== undefined ) {
100+ if ( args . sessionSettings . audio !== null && args . sessionSettings . audio !== undefined ) {
101+ if (
102+ args . sessionSettings . audio ?. channels !== null &&
103+ args . sessionSettings . audio ?. channels !== undefined
104+ ) {
105+ queryParams [ "session_settings[audio][channels]" ] = String ( args . sessionSettings . audio . channels ) ;
106+ }
107+ if (
108+ args . sessionSettings . audio ?. encoding !== null &&
109+ args . sessionSettings . audio ?. encoding !== undefined
110+ ) {
111+ queryParams [ "session_settings[audio][encoding]" ] = String ( args . sessionSettings . audio . encoding ) ;
112+ }
113+ if (
114+ args . sessionSettings . audio ?. sampleRate !== null &&
115+ args . sessionSettings . audio ?. sampleRate !== undefined
116+ ) {
117+ queryParams [ "session_settings[audio][sample_rate]" ] = String ( args . sessionSettings . audio . sampleRate ) ;
118+ }
119+ }
120+ if ( args . sessionSettings . context !== null && args . sessionSettings . context !== undefined ) {
121+ if ( args . sessionSettings ?. context ?. text !== null && args . sessionSettings ?. context ?. text !== undefined ) {
122+ queryParams [ "session_settings[context][text]" ] = String ( args . sessionSettings . context . text ) ;
123+ }
124+ if ( args . sessionSettings ?. context ?. type !== null && args . sessionSettings ?. context ?. type !== undefined ) {
125+ queryParams [ "session_settings[context][type]" ] = String ( args . sessionSettings . context . type ) ;
126+ }
127+ }
128+ if ( args . sessionSettings ?. customSessionId !== null && args . sessionSettings ?. customSessionId !== undefined ) {
129+ queryParams [ "session_settings[custom_session_id]" ] = String ( args . sessionSettings . customSessionId ) ;
130+ }
131+ if ( args . sessionSettings ?. eventLimit !== null && args . sessionSettings ?. eventLimit !== undefined ) {
132+ queryParams [ "session_settings[event_limit]" ] = String ( args . sessionSettings . eventLimit ) ;
133+ }
134+ if (
135+ args . sessionSettings ?. languageModelApiKey !== null &&
136+ args . sessionSettings ?. languageModelApiKey !== undefined
137+ ) {
138+ queryParams [ "session_settings[language_model_api_key]" ] = String (
139+ args . sessionSettings . languageModelApiKey ,
140+ ) ;
141+ }
142+ if ( args . sessionSettings ?. systemPrompt !== null && args . sessionSettings ?. systemPrompt !== undefined ) {
143+ queryParams [ "session_settings[system_prompt]" ] = String ( args . sessionSettings . systemPrompt ) ;
144+ }
145+ if ( args . sessionSettings ?. variables !== null && args . sessionSettings ?. variables !== undefined ) {
146+ queryParams [ "session_settings[variables]" ] = String ( args . sessionSettings . variables ) ;
147+ }
148+ if ( args . sessionSettings ?. voiceId !== null && args . sessionSettings ?. voiceId !== undefined ) {
149+ queryParams [ "session_settings[voice_id]" ] = String ( args . sessionSettings . voiceId ) ;
150+ }
151+ }
152+
91153 if ( args . queryParams !== null && args . queryParams !== undefined ) {
92154 for ( const [ name , value ] of Object . entries ( args . queryParams ) ) {
93155 queryParams [ name ] = value ;
0 commit comments