diff --git a/typescript/package-lock.json b/typescript/package-lock.json index 4233d18..a80175b 100644 --- a/typescript/package-lock.json +++ b/typescript/package-lock.json @@ -9,7 +9,7 @@ "version": "0.4.0", "license": "MIT", "dependencies": { - "@jambonz/schema": "^0.3.0", + "@jambonz/schema": "^0.3.5", "ajv": "^8.17.1", "ws": "^8.18.0" }, @@ -582,9 +582,9 @@ } }, "node_modules/@jambonz/schema": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@jambonz/schema/-/schema-0.3.0.tgz", - "integrity": "sha512-JqpsOK+ELDzbadPvgqZ42bhzL4Rk6pAdxgGZs3vay0oTJj0hYhpjXp6Yo2DzbBQz31Br8q2Vv4OzVZZYTmEQMg==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jambonz/schema/-/schema-0.3.5.tgz", + "integrity": "sha512-xHK0NcQWEtm+UmCdy87uegTHx6siCULgrGh8K+7SC0vl2Nrf5+tLcYLXpkp/5MMA1LlT2V8/ZuN/Fim139dMnQ==", "license": "MIT", "dependencies": { "ajv": "^8.17.1", diff --git a/typescript/package.json b/typescript/package.json index ceec509..cbcd0c5 100644 --- a/typescript/package.json +++ b/typescript/package.json @@ -95,7 +95,7 @@ "postpublish": "npm run clean-docs" }, "dependencies": { - "@jambonz/schema": "^0.3.0", + "@jambonz/schema": "^0.3.5", "ajv": "^8.17.1", "ws": "^8.18.0" }, diff --git a/typescript/src/types/verbs.ts b/typescript/src/types/verbs.ts index 8179337..cded898 100644 --- a/typescript/src/types/verbs.ts +++ b/typescript/src/types/verbs.ts @@ -326,6 +326,10 @@ export interface AgentVerb { mcpServers?: McpServerConfig[]; /** Seconds to wait after assistant finishes speaking before prompting user to respond. 0 disables. Default: 0. */ noResponseTimeout?: number; + /** Auto-adjust STT/TTS based on detected language. true=lock on first, 'always'=adapt every turn. */ + autoLockLanguage?: boolean | 'always'; + /** Per-language TTS overrides. Keys are BCP-47 codes (e.g., 'es', 'fr'). */ + languageConfig?: Record; } export interface ListenVerb { diff --git a/typescript/src/websocket/session.ts b/typescript/src/websocket/session.ts index 88ed915..532af77 100644 --- a/typescript/src/websocket/session.ts +++ b/typescript/src/websocket/session.ts @@ -360,6 +360,19 @@ export class Session extends EventEmitter { }); } + /** + * Reconfigure STT (speech-to-text) settings mid-call. + * Currently supports updating language hints for Deepgram Flux Multilingual. + * + * @param opts - STT reconfiguration options + * @param opts.languageHints - Array of BCP-47 language codes (e.g., ['en', 'es']). + * Pass empty array [] to clear hints and enable auto-detection. + * @param callSid - Optional call SID for targeting specific leg + */ + injectSttReconfigure(opts: { languageHints?: string[] }, callSid?: string): void { + this.injectCommand('stt:reconfigure', opts, callSid); + } + // --------------------------------------------------------------------------- // TTS Token Streaming // ---------------------------------------------------------------------------