Agents SDK (TypeScript)
npx @buildinternet/releases get elevenlabs-agents-sdk-typescriptOn screens narrower than 768px the chat now always opens fullscreen and the header's resize button is replaced by a close button; add mobile-fullscreen="false" to the embed to keep the previous compact behavior, and widgets with always-expanded are unaffected. Carousels now show one dot per card, center the selected card, and scroll freely on touch screens with smaller cards and no arrows.
Text chat now shows animated typing dots while the agent is working on a reply, and rich-content carousels show a page indicator with previous/next arrows. Carousels now appear in voice calls while the agent is still speaking.
A new opt-in stripAudioTags session option removes expressive audio tags such as [laughs] from agent messages passed to onMessage and onAgentResponseCorrection, and the stripAudioTags helper is now exported. Stripped text no longer lines up character-for-character with onAudioAlignment timings, so leave the option off if you rely on them.
Carousel card buttons remain clickable after the conversation moves on, so users can return to a product shown earlier.
New onAudioAlignmentPlayback callback fires with { event_id, alignment } when an aligned audio chunk starts playing, for syncing text with speech; it is not called on WebRTC connections. Dependency @elevenlabs/client bumped to 1.29.0.
Voice call transcripts now appear in step with the agent's speech using the audio's character alignment, and if the agent is interrupted only what was said is kept. Resuming a persistent text conversation no longer asks the user to accept terms again.
A new persistent-session attribute stores the resume token per agent, keeps the transcript, reopens the chat on load, and resumes when the sheet opens, the page returns to the foreground, or the next message is sent. The connection closes cleanly while the page is hidden, End chat forgets the conversation, and workspaces without persistent sessions fall back to a plain conversation.
Quick replies now appear below the first message in voice calls, with tighter rich content spacing and button padding.
Scribe.connect() and useScribe() in microphone mode accept a previousText option sent with the first audio chunk to give the model context such as existing document text for casing, punctuation, and sentence continuation. Custom libsamplerate bundle paths are now passed to MediaDeviceOutput so output resampling matches MediaDeviceInput.
Carousel rich content shows scrollable item cards with images, subtitles, descriptions, and actions, remaining in the transcript after a reply while their actions are removed. Added an optional confirmation dialog before ending a chat or call via the end-confirmation attribute or end_confirmation_enabled config, and rich content now appears in voice calls when the transcript is visible.
Scribe.connect() accepts a transcriptEdit natural-language instruction (max 2000 characters) sent as the transcript_edit query param, which cannot be combined with entityDetection, and dispatches an edited_transcript message carrying text and edited_text; useScribe() exposes the same option with an onEditedTranscript callback and editedText on committed transcripts. Fixed useScribe dropping the secondaryLanguages and filterBackgroundAudio options, which are now forwarded on the realtime WebSocket URL.
The convai widget transcript now renders attachments from agent messages, showing images inline for https image URLs and download links otherwise, and attachment-only replies with no text no longer get dropped. Stable response IDs prevent a resent reply from rendering twice during a turn, and the crossed-out phone icon is replaced with a stop button and End chat tooltip for text-only conversations.
Fixed replies after a tool call, including procedure-issued ones, rendering twice by matching canonical agent responses to the stream segment they belong to rather than segment arrival order. Streamed agent replies now keep markdown formatting, and streamed chat parts are ignored in voice conversations.