@convai/web-sdk 1.8.0-beta.8 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -213
- package/dist/core/ConvaiClient.d.ts +1 -190
- package/dist/core/ConvaiClient.d.ts.map +1 -1
- package/dist/core/ConvaiClient.js +286 -1306
- package/dist/core/ConvaiClient.js.map +1 -1
- package/dist/core/MessageHandler.d.ts +1 -19
- package/dist/core/MessageHandler.d.ts.map +1 -1
- package/dist/core/MessageHandler.js +27 -378
- package/dist/core/MessageHandler.js.map +1 -1
- package/dist/core/connectRequest.d.ts +4 -17
- package/dist/core/connectRequest.d.ts.map +1 -1
- package/dist/core/connectRequest.js +17 -28
- package/dist/core/connectRequest.js.map +1 -1
- package/dist/core/index.d.ts +1 -8
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -13
- package/dist/core/index.js.map +1 -1
- package/dist/core/logicalTurn.d.ts +6 -4
- package/dist/core/logicalTurn.d.ts.map +1 -1
- package/dist/core/logicalTurn.js +4 -29
- package/dist/core/logicalTurn.js.map +1 -1
- package/dist/core/modelOutput.d.ts.map +1 -1
- package/dist/core/modelOutput.js +2 -2
- package/dist/core/modelOutput.js.map +1 -1
- package/dist/core/types.d.ts +22 -860
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/embed/ConvaiChatElement.d.ts +1 -77
- package/dist/embed/ConvaiChatElement.d.ts.map +1 -1
- package/dist/embed/ConvaiChatElement.js +54 -433
- package/dist/embed/ConvaiChatElement.js.map +1 -1
- package/dist/embed/chat-embed-v1.js +35 -136
- package/dist/embed/chat-embed-v1.js.map +4 -4
- package/dist/react/components/ConvaiWidget.d.ts.map +1 -1
- package/dist/react/components/ConvaiWidget.js +1 -6
- package/dist/react/components/ConvaiWidget.js.map +1 -1
- package/dist/react/components/rtc-widget/components/AudioVisualizer.d.ts.map +1 -1
- package/dist/react/components/rtc-widget/components/AudioVisualizer.js +1 -28
- package/dist/react/components/rtc-widget/components/AudioVisualizer.js.map +1 -1
- package/dist/react/components/rtc-widget/components/MarkdownRenderer.d.ts +0 -7
- package/dist/react/components/rtc-widget/components/MarkdownRenderer.d.ts.map +1 -1
- package/dist/react/components/rtc-widget/components/MarkdownRenderer.js +46 -135
- package/dist/react/components/rtc-widget/components/MarkdownRenderer.js.map +1 -1
- package/dist/react/components/rtc-widget/components/UserMessage.js +1 -1
- package/dist/react/components/rtc-widget/components/UserMessage.js.map +1 -1
- package/dist/react/components/rtc-widget/components/conviComponents/VoiceModeOverlay.d.ts.map +1 -1
- package/dist/react/components/rtc-widget/components/conviComponents/VoiceModeOverlay.js +49 -93
- package/dist/react/components/rtc-widget/components/conviComponents/VoiceModeOverlay.js.map +1 -1
- package/dist/react/hooks/useConvaiClient.d.ts.map +1 -1
- package/dist/react/hooks/useConvaiClient.js +2 -17
- package/dist/react/hooks/useConvaiClient.js.map +1 -1
- package/dist/react/index.d.ts +1 -4
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +1 -8
- package/dist/react/index.js.map +1 -1
- package/dist/vanilla/AudioRenderer.d.ts +1 -3
- package/dist/vanilla/AudioRenderer.d.ts.map +1 -1
- package/dist/vanilla/AudioRenderer.js +2 -8
- package/dist/vanilla/AudioRenderer.js.map +1 -1
- package/dist/vanilla/ConvaiWidget.d.ts.map +1 -1
- package/dist/vanilla/ConvaiWidget.js +302 -1122
- package/dist/vanilla/ConvaiWidget.js.map +1 -1
- package/dist/vanilla/WidgetEventSubscriptions.d.ts +1 -1
- package/dist/vanilla/WidgetEventSubscriptions.d.ts.map +1 -1
- package/dist/vanilla/WidgetEventSubscriptions.js +0 -5
- package/dist/vanilla/WidgetEventSubscriptions.js.map +1 -1
- package/dist/vanilla/icons.d.ts.map +1 -1
- package/dist/vanilla/icons.js +15 -62
- package/dist/vanilla/icons.js.map +1 -1
- package/dist/vanilla/index.d.ts +2 -6
- package/dist/vanilla/index.d.ts.map +1 -1
- package/dist/vanilla/index.js +1 -5
- package/dist/vanilla/index.js.map +1 -1
- package/dist/vanilla/styles.d.ts +1 -18
- package/dist/vanilla/styles.d.ts.map +1 -1
- package/dist/vanilla/styles.js +29 -141
- package/dist/vanilla/styles.js.map +1 -1
- package/dist/vanilla/types.d.ts +0 -74
- package/dist/vanilla/types.d.ts.map +1 -1
- package/dist/vanilla/types.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +17 -44
- package/dist/core/CharacterRoster.d.ts +0 -84
- package/dist/core/CharacterRoster.d.ts.map +0 -1
- package/dist/core/CharacterRoster.js +0 -348
- package/dist/core/CharacterRoster.js.map +0 -1
- package/dist/core/CharacterVersionManager.d.ts +0 -100
- package/dist/core/CharacterVersionManager.d.ts.map +0 -1
- package/dist/core/CharacterVersionManager.js +0 -227
- package/dist/core/CharacterVersionManager.js.map +0 -1
- package/dist/core/ConvaiRoomError.d.ts +0 -48
- package/dist/core/ConvaiRoomError.d.ts.map +0 -1
- package/dist/core/ConvaiRoomError.js +0 -111
- package/dist/core/ConvaiRoomError.js.map +0 -1
- package/dist/core/SSESession.d.ts +0 -59
- package/dist/core/SSESession.d.ts.map +0 -1
- package/dist/core/SSESession.js +0 -289
- package/dist/core/SSESession.js.map +0 -1
- package/dist/core/characterReference.d.ts +0 -40
- package/dist/core/characterReference.d.ts.map +0 -1
- package/dist/core/characterReference.js +0 -72
- package/dist/core/characterReference.js.map +0 -1
- package/dist/core/rosterRequest.d.ts +0 -57
- package/dist/core/rosterRequest.d.ts.map +0 -1
- package/dist/core/rosterRequest.js +0 -210
- package/dist/core/rosterRequest.js.map +0 -1
- package/dist/utils/inlineMarkdown.d.ts +0 -60
- package/dist/utils/inlineMarkdown.d.ts.map +0 -1
- package/dist/utils/inlineMarkdown.js +0 -183
- package/dist/utils/inlineMarkdown.js.map +0 -1
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAyBA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc,EAAE,CAAC;IACjB,gBAAgB,EAAE,CAAC;IACnB,kBAAkB,EAAE,CAAC;IACrB,eAAe,EAAE,CAAC;IAClB,mBAAmB,EAAE,CAAC;IACtB,YAAY,EAAE,CAAC;IACf,cAAc,EAAE,CAAC;IACjB,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;IACZ,YAAY,EAAE,CAAC;CACP,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAA+B;IACxE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,oBAAoB,CAAC,cAAc;YACtC,OAAO,sCAAsC,CAAC;QAChD,KAAK,oBAAoB,CAAC,gBAAgB;YACxC,OAAO,mBAAmB,CAAC;QAC7B,KAAK,oBAAoB,CAAC,kBAAkB;YAC1C,OAAO,0CAA0C,CAAC;QACpD,KAAK,oBAAoB,CAAC,eAAe;YACvC,OAAO,yBAAyB,CAAC;QACnC,KAAK,oBAAoB,CAAC,mBAAmB;YAC3C,OAAO,kCAAkC,CAAC;QAC5C,KAAK,oBAAoB,CAAC,YAAY;YACpC,OAAO,+BAA+B,CAAC;QACzC,KAAK,oBAAoB,CAAC,cAAc;YACtC,OAAO,gBAAgB,CAAC;QAC1B,KAAK,oBAAoB,CAAC,YAAY;YACpC,OAAO,gBAAgB,CAAC;QAC1B,KAAK,oBAAoB,CAAC,SAAS;YACjC,OAAO,qCAAqC,CAAC;QAC/C,KAAK,oBAAoB,CAAC,YAAY;YACpC,OAAO,0BAA0B,CAAC;QACpC;YACE,OAAO,cAAc,CAAC;IAC1B,CAAC;AACH,CAAC","sourcesContent":["import { Room, DisconnectReason as LiveKitDisconnectReason } from 'livekit-client';\nimport type { CharacterVersionSelector } from \"./characterReference\";\nexport type { CharacterVersionSelector, CharacterReference } from \"./characterReference\";\nimport { BlendshapeQueue } from './BlendshapeQueue';\n\n/**\n * LiveKit disconnect reasons.\n * Helps determine why a participant was disconnected from the room.\n * \n * These values map to LiveKit's DisconnectReason enum:\n * - UNKNOWN_REASON (0): Unknown disconnect reason\n * - CLIENT_INITIATED (1): Client called disconnect() - intentional disconnect\n * - DUPLICATE_IDENTITY (2): Another client with the same identity joined the room\n * - SERVER_SHUTDOWN (3): LiveKit server is shutting down\n * - PARTICIPANT_REMOVED (4): Participant was removed by RemoveParticipant API\n * - ROOM_DELETED (5): Room was ended via DeleteRoom API\n * - STATE_MISMATCH (6): State mismatch between client and server\n * - JOIN_FAILURE (7): Failed to join the room\n * - MIGRATION (8): Participant moved to a different room\n * - SIGNAL_CLOSE (9): Signal connection was closed\n * \n * @see https://docs.livekit.io/reference/client-sdk-js/enums/DisconnectReason.html\n */\nexport type DisconnectReason = LiveKitDisconnectReason;\n\n/**\n * Export LiveKit's DisconnectReason enum values for easy access\n */\nexport const DisconnectReasonEnum = {\n UNKNOWN_REASON: 0,\n CLIENT_INITIATED: 1,\n DUPLICATE_IDENTITY: 2,\n SERVER_SHUTDOWN: 3,\n PARTICIPANT_REMOVED: 4,\n ROOM_DELETED: 5,\n STATE_MISMATCH: 6,\n JOIN_FAILURE: 7,\n MIGRATION: 8,\n SIGNAL_CLOSE: 9,\n} as const;\n\n/**\n * Get a human-readable message for a disconnect reason.\n * \n * @param reason - The disconnect reason code from LiveKit\n * @returns A human-readable message describing the disconnect reason\n * \n * @example\n * ```typescript\n * client.on('disconnect', (reason) => {\n * console.log(getDisconnectReasonMessage(reason));\n * // Output: \"User disconnected\"\n * });\n * ```\n */\nexport function getDisconnectReasonMessage(reason: DisconnectReason | null): string {\n if (reason === null) {\n return 'Connected';\n }\n\n switch (reason) {\n case DisconnectReasonEnum.UNKNOWN_REASON:\n return 'Network unavailable or unknown cause';\n case DisconnectReasonEnum.CLIENT_INITIATED:\n return 'User disconnected';\n case DisconnectReasonEnum.DUPLICATE_IDENTITY:\n return 'Another client with same identity joined';\n case DisconnectReasonEnum.SERVER_SHUTDOWN:\n return 'Server is shutting down';\n case DisconnectReasonEnum.PARTICIPANT_REMOVED:\n return 'Removed by RemoveParticipant API';\n case DisconnectReasonEnum.ROOM_DELETED:\n return 'Room ended via DeleteRoom API';\n case DisconnectReasonEnum.STATE_MISMATCH:\n return 'State mismatch';\n case DisconnectReasonEnum.JOIN_FAILURE:\n return 'Failed to join';\n case DisconnectReasonEnum.MIGRATION:\n return 'Participant moved to different room';\n case DisconnectReasonEnum.SIGNAL_CLOSE:\n return 'Signal connection closed';\n default:\n return 'Disconnected';\n }\n}\n\n/**\n * Dynamic information structure for passing real-time context to the character.\n * Pass a text description of the current dynamic context.\n * \n * @example\n * ```typescript\n * const dynamicInfo = \"Player health is low, in combat mode\";\n * ```\n */\nexport type DynamicInfo = string;\n\n/**\n * Minimal contract that ConvaiClient and AudioManager require from a WebSocket\n * session implementation. Defined here so core has zero import dependency on\n * the pipecat packages — the concrete class lives in the vanilla/websocket subpath.\n */\nexport interface IWebSocketSession {\n readonly isConnected: boolean;\n connectWithUrl(wsUrl: string): Promise<void>;\n disconnect(): Promise<void>;\n sendMessage(type: string, data: unknown): void;\n enableMic(enable: boolean): void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n on(event: string, listener: (...args: any[]) => void): () => void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n off(event: string, listener: (...args: any[]) => void): void;\n}\n\n/**\n * Factory function signature used to register a WebSocket transport implementation\n * via {@link ConvaiClient.registerWebSocketTransport}. Import\n * `@convai/web-sdk/vanilla/websocket` (or `@convai/web-sdk/react/websocket`) as a\n * side-effect to register the default Pipecat-based implementation.\n */\nexport type WebSocketSessionFactory = (\n onMessage: (payload: Uint8Array) => void,\n enableMic: boolean,\n) => IWebSocketSession;\n\n/**\n * Options for {@link IConvaiClient.uploadFile}.\n *\n * Supported formats: JPEG, PNG, GIF, WebP. Maximum file size: 10 MB.\n * Files are sent as raw binary over the WebRTC byte stream — not base64 encoded.\n */\nexport interface UploadFileOptions {\n /** Server routing topic. Defaults to `'file-upload'`. */\n topic?: string;\n /**\n * Progress callback. Called with an integer percentage (0–100) as the upload proceeds.\n */\n onProgress?: (progressPercent: number) => void;\n}\n\n/** Options for {@link IConvaiClient.sendUserTextMessage}. */\nexport interface SendUserTextMessageOptions {\n /**\n * Client-owned identifier used to correlate every canonical v2 model-output\n * envelope produced for this user turn. The value must be non-empty and at\n * most 128 UTF-8 bytes. It is currently carried by LiveKit/WebRTC sessions.\n */\n logicalTurnId?: string;\n}\n\n/**\n * Extra data returned in a server-response for specific event types.\n */\nexport interface ServerResponseExtras {\n // context-update extras\n token_count?: number;\n static_token_count?: number;\n runtime_token_count?: number;\n max_tokens?: number;\n static_max_tokens?: number;\n runtime_max_tokens?: number;\n remaining_tokens?: number;\n /** Full retained runtime dynamic context text after the update */\n content?: string;\n // tts-toggle extras\n enabled?: boolean;\n // stt-toggle extras\n muted?: boolean;\n // trigger-message extras\n trigger_name?: string;\n has_speak_tag?: boolean;\n // user_text_message extras\n text?: string;\n // kill-pipeline extras\n room_name?: string;\n // interaction-target / character-roster-update extras\n command_id?: string;\n room_session_id?: string;\n previous_membership_id?: string | null;\n active_membership_id?: string | null;\n previous_active_membership_id?: string | null;\n route_epoch?: number;\n roster_epoch?: number;\n changed?: boolean;\n added?: unknown[];\n removed_membership_ids?: string[];\n code?: string;\n // unknown-message-type error extras\n supported_types?: string[];\n // vision-status / vision-trigger extras\n vision_buffer?: VisionBufferStatus;\n requested_respond_mode?: RespondMode;\n actual_respond_mode?: RespondMode;\n requested_run_llm?: \"true\" | \"false\" | \"auto\";\n actual_run_llm?: \"true\" | \"false\" | \"auto\";\n llm_triggered?: boolean;\n downgraded?: boolean;\n downgrade_reason?: string | null;\n interrupted?: boolean;\n vision_frames_attached?: number;\n vision_image_tokens_est?: number;\n vision_detail_level?: string | null;\n vision_attach_outcome?: string;\n vision_source_participant?: string | null;\n attached_frame_pts?: number[];\n frame_binding?: string;\n frame_binding_error?: string | null;\n requested_frame_indices?: [number, number] | number[] | null;\n requested_frame_ids?: number[] | null;\n frame_indices_clamped?: boolean;\n frame_ids_stale_exempt?: boolean;\n [key: string]: unknown;\n}\n\n/**\n * Acknowledgment sent by the server for every client-to-server message.\n * Analogous to an HTTP response: use `status` to check success/failure and\n * `extras` for event-specific data such as context token counts.\n *\n * @example\n * ```typescript\n * client.on('serverResponse', (response) => {\n * if (response.event_type === 'context-update') {\n * const { remaining_tokens, max_tokens } = response.extras ?? {};\n * console.log(`Tokens remaining: ${remaining_tokens} / ${max_tokens}`);\n * }\n * if (response.status === 'error') {\n * console.error('Server error:', response.message);\n * }\n * });\n * ```\n */\nexport interface ServerResponse {\n /** The original client message type that triggered this response */\n event_type: string;\n /** Processing status */\n status: 'success' | 'error' | 'processing' | 'pending';\n /** Human-readable description of the result */\n message: string | null;\n /** Additional event-specific data */\n extras: ServerResponseExtras | null;\n}\n\n/**\n * Emitted when the server assigns an interaction ID to the session.\n * Store the interactionId for analytics or session tracking.\n */\nexport interface InteractionCreated {\n /** Unique identifier for this interaction session */\n interactionId: string;\n /** Character session identifier */\n characterSessionId: string;\n}\n\n/**\n * A single action the character performs, emitted via the `actionResponse`\n * event. When `target` is present the action is *parameterized* (the character\n * acts on a specific object/character); simple actions (e.g. `\"Wave\"`) omit it.\n */\nexport interface ConvaiAction {\n /** Base action name, e.g. `\"Move To\"`, `\"Pick Up\"`, `\"Wave\"`. */\n name: string;\n /**\n * The object or character the action targets — must match a name from\n * `actionConfig.objects[]` / `actionConfig.characters[]`. Absent for simple\n * (non-parameterized) actions.\n */\n target?: string;\n}\n\nexport type JsonPrimitive = string | number | boolean | null;\nexport type JsonValue = JsonPrimitive | JsonObject | JsonValue[];\nexport interface JsonObject {\n [key: string]: JsonValue;\n}\n\n/** A client-executed tool declared for action protocol v2. */\nexport interface ClientToolDeclaration {\n name: string;\n description: string;\n inputSchema: JsonObject;\n}\n\n/** A correlated tool call selected by the model. */\nexport interface ConvaiToolCall extends ConvaiAction {\n kind: \"tool_call\";\n id: string;\n arguments: JsonObject;\n}\n\nexport interface ProtocolCapabilitiesConfig {\n /** Opt in to correlated client tool calls. Omitted connections remain v1. */\n actionProtocolVersion?: 1 | 2;\n /** Opt in to canonical typed model output. Omitted connections remain v1. */\n modelOutputVersion?: 1 | 2;\n}\n\n/** One raw provider-output chunk emitted only by negotiated model output v2. */\nexport interface BotLlmTextRawEvent {\n text: string;\n logical_turn_id: string;\n /**\n * Core-owned identifier for the individual model invocation that produced\n * this chunk. Absent when connected to an older v2 Core.\n */\n output_id?: string;\n}\n\nexport interface ModelOutputMessageItem {\n type: \"message\";\n role: \"assistant\";\n channel: \"final\" | \"commentary\";\n content: string;\n}\n\nexport interface ModelOutputEmotionItem {\n type: \"emotion\";\n name: string;\n scale: 1 | 2 | 3;\n}\n\nexport interface ModelOutputSemanticActionItem {\n type: \"semantic_action\";\n id: string;\n name: string;\n target?: string | null;\n}\n\nexport interface ModelOutputToolCallItem {\n type: \"tool_call\";\n id: string;\n name: string;\n target?: string | null;\n arguments: JsonObject;\n}\n\nexport interface ModelOutputExtensionItem {\n type: \"extension\";\n schema: string;\n version: number;\n payload: JsonObject;\n fallback?: string | null;\n}\n\nexport type ModelOutputItem =\n | ModelOutputMessageItem\n | ModelOutputEmotionItem\n | ModelOutputSemanticActionItem\n | ModelOutputToolCallItem\n | ModelOutputExtensionItem;\n\nexport interface ModelOutputMessage {\n type: \"model-output\";\n version: 2;\n /**\n * Core-owned provider invocation id. Distinct projections from the same\n * invocation can share this value and are emitted in arrival order.\n */\n output_id: string;\n /**\n * Stable identifier shared by every output envelope for one logical turn.\n * Present values are non-empty and at most 128 UTF-8 bytes.\n */\n logical_turn_id?: string;\n format:\n | \"text\"\n | \"convai-combined-json\"\n | \"semantic-actions-json\"\n | \"client-tool-calls-json\";\n /** Exact provider/runtime output for diagnostics. Never execute this field. */\n raw: string;\n /** Core-validated renderable and executable semantic items. */\n items: ModelOutputItem[];\n final: true;\n}\n\nexport interface ModelOutputProtocolError {\n code: \"invalid_model_output\";\n message: string;\n}\n\nexport interface ActionResult {\n id: string;\n status: \"completed\" | \"error\" | \"cancelled\";\n output?: JsonValue;\n error?: JsonValue;\n characterSessionId?: string;\n}\n\n/** Successful server acknowledgement for one correlated action result. */\nexport interface ActionResultAck {\n toolCallId: string;\n status: \"success\";\n message: string | null;\n /** True when Core had already accepted the same terminal result. */\n idempotent: boolean;\n}\n\n/**\n * Controls acknowledgement waiting for\n * {@link IConvaiClient.sendActionResultAndWait}.\n */\nexport interface ActionResultAckOptions {\n /** Maximum wait for Core's acknowledgement. Defaults to 10 seconds. */\n timeoutMs?: number;\n /**\n * Cancels acknowledgement waiting. An already-aborted signal prevents\n * publication.\n */\n signal?: AbortSignal;\n}\n\n/** Machine-readable reason exposed by `ActionResultAckError`. */\nexport type ActionResultAckFailureReason =\n | \"server_error\"\n | \"publication_error\"\n | \"timeout\"\n | \"aborted\"\n | \"duplicate_in_flight\";\n\n/**\n * Payload of the `actionResponse` event. Actions execute sequentially; an\n * empty array is a valid \"no action\" turn.\n */\nexport interface ActionResponseEvent {\n actions: Array<ConvaiAction | ConvaiToolCall>;\n}\n\n/**\n * Options for updating the bot's temporary runtime context.\n * Provides flexible control over how context is managed during conversation.\n * \n * @example\n * ```typescript\n * // Append to existing context\n * client.updateContext({\n * text: \"User just completed dragon quest\",\n * mode: \"append\",\n * run_llm: \"false\"\n * });\n * \n * // Replace entire context\n * client.updateContext({\n * text: \"New game state: level 5, combat mode\",\n * mode: \"replace\",\n * run_llm: \"auto\"\n * });\n * \n * // Reset/clear context\n * client.updateContext({\n * mode: \"reset\"\n * });\n * ```\n */\nexport interface ContextUpdateOptions {\n /**\n * The context text to inject.\n * Required unless mode is \"reset\" or only current_attention_object is being updated.\n */\n text?: string;\n /**\n * How to apply the context:\n * - \"append\" (default): Add text to existing ephemeral context\n * - \"replace\": Replace existing ephemeral context with new text\n * - \"reset\": Clear ephemeral context; text is optional\n */\n mode?: \"append\" | \"replace\" | \"reset\";\n /**\n * Whether to trigger LLM response:\n * - \"true\": Always trigger a response from the bot and preempt active local playback\n * - \"false\": Never trigger a response\n * - \"auto\" (default): Server decides based on context without preempting active playback\n */\n run_llm?: \"true\" | \"false\" | \"auto\";\n /**\n * Optional respond-mode alias for backends that expose unified respond modes.\n * If `run_llm` is provided, it takes precedence.\n */\n respond_mode?: RespondMode;\n /**\n * The object the character should currently focus on.\n * Must match one of action_config.objects[].name.\n * Pass an empty string to clear current attention.\n */\n current_attention_object?: string;\n}\n\nexport type RespondMode = \"must_respond\" | \"auto\" | \"silent\";\n\nexport type RespondModality =\n | \"text\"\n | \"audio\"\n | \"vision\"\n | \"context_update\"\n | \"trigger\"\n | \"scene_metadata\";\n\nexport interface RespondModesConfig {\n text?: \"must_respond\";\n audio?: \"must_respond\";\n vision?: RespondMode;\n contextUpdate?: RespondMode;\n trigger?: RespondMode;\n sceneMetadata?: RespondMode;\n}\n\nexport interface VisionSamplingWindowConfig {\n count: number;\n intervalMs: number;\n}\n\nexport interface VisionInputConfig {\n /**\n * Enable unified vision context for this session.\n *\n * Defaults to true when enableVideo is true. Set false to keep the video\n * channel available while opting out of unified vision context.\n */\n enabled?: boolean;\n sampleIntervalSecs?: number;\n framesPerTurn?: number;\n bufferFrames?: number;\n samplingWindows?: VisionSamplingWindowConfig[];\n stalenessSeconds?: number;\n maxResolution?: number | null;\n replacePreviousVisionContext?: boolean;\n}\n\nexport interface VisionBufferStatus {\n enabled?: boolean;\n first_frame_pts?: number | null;\n last_frame_pts?: number | null;\n first_frame_index?: number | null;\n retained_frames?: number;\n buffer_frames?: number;\n frames_per_turn?: number;\n replace_previous_vision_context?: boolean;\n evicted_frames?: number;\n effective_fps?: number | null;\n selected_participant?: string | null;\n frames_admitted?: number;\n frames_dropped_foreign_source?: number;\n frames_dropped_inactive_source?: number;\n frames_dropped_rate_limited?: number;\n last_attach?: {\n vision_frames_attached?: number;\n vision_image_tokens_est?: number;\n vision_detail_level?: string | null;\n vision_attach_outcome?: string;\n vision_source_participant?: string | null;\n attached_frame_pts?: number[];\n };\n}\n\nexport interface VisionStatusOptions {\n updateId?: string;\n}\n\nexport interface VisionTriggerOptions {\n updateId?: string;\n text?: string;\n respondMode?: RespondMode;\n frameIndices?: [number, number];\n frameIds?: number[];\n}\n\nexport interface RespondModeUpdateOptions {\n updateId?: string;\n modality: RespondModality;\n mode: RespondMode;\n}\n\nexport interface UpdateSceneMetadataOptions {\n respondMode?: RespondMode;\n}\n\nexport type VisionSourceKind =\n | \"webcam\"\n | \"canvas\"\n | \"screen\"\n | \"custom\"\n // Backward-compatible aliases accepted by the existing SDK surface.\n | \"camera\"\n | \"screen_share\"\n | \"unknown\";\n\nexport interface VisionSourceState {\n active: boolean;\n source: VisionSourceKind | null;\n sourceName: string | null;\n trackState: MediaStreamTrackState | null;\n transport?: \"livekit\" | \"websocket\";\n reason?: string;\n}\n\nexport interface PublishCanvasOptions {\n fps?: number;\n name?: string;\n source?: VisionSourceKind;\n stopTrackOnUnpublish?: boolean;\n}\n\nexport interface PublishVideoTrackOptions {\n name?: string;\n source?: VisionSourceKind;\n /** WebSocket transport frame publish cadence. LiveKit publishes the track continuously. */\n fps?: number;\n stopTrackOnUnpublish?: boolean;\n}\n\nexport interface VisionSourceHandle {\n track: MediaStreamTrack;\n publication?: unknown;\n transport?: \"livekit\" | \"websocket\";\n sourceName: string;\n source: VisionSourceKind;\n stopTrackOnUnpublish: boolean;\n unpublish: () => Promise<void>;\n cleanup?: () => void;\n}\n\n/**\n * Audio processing settings for the microphone input.\n * These settings help optimize the audio quality and reduce interruptions.\n * @internal - This is a fixed configuration and should not be modified by users\n */\nexport interface AudioSettings {\n /** Enable echo cancellation to prevent audio feedback (default: true) */\n echoCancellation?: boolean;\n /** Enable noise suppression to reduce background noise (default: true) */\n noiseSuppression?: boolean;\n /** Enable automatic gain control for consistent volume (default: true) */\n autoGainControl?: boolean;\n /** Audio sample rate in Hz (default: 48000) */\n sampleRate?: number;\n /** Number of audio channels, 1 for mono, 2 for stereo (default: 1) */\n channelCount?: number;\n}\n\n/**\n * Configuration object for connecting to a Convai character.\n * \n * @example\n * ```typescript\n * const config: ConvaiConfig = {\n * apiKey: 'your-api-key',\n * characterId: 'your-character-id',\n * endUserId: 'user-uuid', // Optional: enables long-term memory and analytics\n * enableVideo: false, // If false, connection_type will be \"audio\"\n * };\n * ```\n */\nexport interface ConvaiConfig {\n /** Your Convai API key or Auth Token (at least one is required) */\n apiKey?: string;\n authToken?: string;\n /**\n * The Character ID to connect to (required).\n *\n * May also carry a version selector suffix (`<uuid>-draft`, `<uuid>-latest`,\n * `<uuid>-1.2`); `characterVersion` is the clearer way to say the same thing.\n *\n * Optional only because a multi-character room supplies `characters`\n * instead. Exactly one of the two is required, and a version selector is not\n * accepted inside a roster entry.\n */\n characterId?: string;\n /**\n * Which version of the character to run (optional).\n *\n * - `\"draft\"` — the editable draft, so you can test unreleased changes\n * - `\"latest\"` — the promoted latest release\n * - `\"1.2\"` / `\"1.2.3\"` — an immutable tagged version\n *\n * Omit it to let the runtime pick the effective latest revision, which is\n * also how characters that predate versioning behave. The selector is joined\n * to `characterId` on the wire as `<uuid>-<selector>`; `client.characterId`\n * keeps returning the bare UUID.\n *\n * @example\n * ```ts\n * const client = new ConvaiClient({\n * apiKey: 'YOUR_API_KEY',\n * characterId: 'YOUR_CHARACTER_ID',\n * characterVersion: 'draft',\n * });\n * ```\n */\n characterVersion?: CharacterVersionSelector | null;\n /**\n * Base URL of the Character REST platform used by `client.characterVersions`\n * (optional, defaults to `https://api2.convai.com`). Point it at\n * `https://api2-stg.convai.com` to author against staging.\n */\n characterApiUrl?: string;\n /**\n * Ordered roster of character instances for a multi-character room. Pass this\n * *instead of* `characterId` -- exactly one of the two is valid.\n *\n * Every entry becomes a distinct membership with its own actor, LiveKit\n * participant, voice, history and lifecycle. The same `characterId` may\n * appear more than once; each copy is an independent clone addressed by its\n * own `membershipId`. `characters[0]` is the initial active member.\n *\n * Roster rooms require the LiveKit transport, a nonblank `endUserId`, and the\n * `MULTI_CHARACTER_V0` entitlement on the publisher.\n *\n * @example\n * ```ts\n * const client = new ConvaiClient({\n * apiKey: 'YOUR_API_KEY',\n * endUserId: 'player-42',\n * characters: [\n * { characterId: GUIDE }, // initial active member\n * { characterId: ASSESSOR },\n * { characterId: GUIDE }, // a second, independent copy of GUIDE\n * ],\n * });\n * ```\n */\n characters?: ConvaiCharacterSpec[];\n /**\n * Publisher-scoped room grouping and topology key (1-128 chars of letters,\n * digits, hyphen or underscore). A matching create request reuses the\n * existing room; reusing the key with a different ordered roster, creator or\n * capacity is rejected with `ROSTER_FINGERPRINT_MISMATCH`. Reordering the\n * same characters counts as different, because it changes the initial member.\n *\n * This does not raise human capacity on its own -- see `maxNumParticipants`.\n */\n sharedSessionKey?: string;\n /**\n * Idempotency key for one logical connect (1-128 chars, same charset as\n * `sharedSessionKey`). Reuse it only when retrying with an identical payload:\n * within the replay window a completed attempt returns its original response\n * and token, while a changed payload or a still-running original is rejected.\n */\n connectAttemptId?: string;\n /**\n * Maximum number of distinct human speakers in a roster room. Characters do\n * not count toward it. Defaults to the server's value of 1, which admits no\n * second human -- raise it before expecting `joinRoom()` to succeed.\n */\n maxNumParticipants?: number;\n /**\n * Bounded retry when a roster room is still provisioning (409\n * `ROSTER_PROVISIONING_IN_PROGRESS`). Defaults to four attempts starting at\n * 500ms and doubling with jitter. Pass `false` to surface the error instead\n * and retry in application code.\n */\n rosterProvisioningRetry?: RosterProvisioningRetry | false;\n /** Temporary character state of mind sent as `state_of_mind` on connect. */\n stateOfMind?: string | null;\n /**\n * Stable identifier for the end user (optional).\n *\n * Any non-empty string is accepted. Use a value that uniquely identifies the\n * user across sessions — a UUID or email address are the most common choices:\n *\n * ```ts\n * endUserId: 'a1b2c3d4-...' // UUID (preferred)\n * endUserId: 'user@example.com' // email\n * endUserId: 'device-fingerprint' // any stable unique string\n * ```\n *\n * When provided:\n * - Enables long-term memory: character remembers context from previous sessions\n * - Enables per-user analytics and engagement tracking\n *\n * When omitted the session is anonymous — no memory, no cross-session tracking.\n */\n endUserId?: string;\n /** Optional metadata object for the end user (sent as end_user_metadata to the API) */\n endUserMetadata?: Record<string, unknown>;\n /** Custom Convai API URL (optional, defaults to production endpoint) */\n url?: string;\n /** Transport layer to use. Default: \"livekit\". */\n transport?: \"livekit\" | \"websocket\" | \"sse\";\n /** SSE interaction endpoint. Supplying this also selects the SSE transport when transport is omitted. */\n interactionApiUrl?: string;\n /** Explicit protocol opt-ins. Omit to preserve the legacy v1 wire contract. */\n capabilities?: ProtocolCapabilitiesConfig;\n /**\n * Character session ID (optional). Pass to resume an existing session;\n * otherwise populated from the connect API response after first connection.\n */\n characterSessionId?: string;\n /** \n * Enable video capability (default: false).\n * If true, connection_type will be \"video\" (supports audio, video, and screenshare).\n * If false, connection_type will be \"audio\" (audio only).\n */\n enableVideo?: boolean;\n /** \n * Start with video camera on when connecting (default: false).\n * Only works if enableVideo is true. If false, camera stays off until user enables it.\n */\n startWithVideoOn?: boolean;\n /** \n * Start with microphone on when connecting (default: false).\n * If false, microphone stays off until user enables it using audioControls.enableAudio().\n * Useful for text-only modes where you want to defer microphone permission until voice mode.\n */\n startWithAudioOn?: boolean;\n /**\n * Dynamic vision context controls for discrete vision-capable backends.\n * Defaults to enabled when enableVideo=true. Set\n * visionInputConfig.enabled=false to opt out while keeping the video channel.\n */\n visionInputConfig?: VisionInputConfig;\n /**\n * Controls whether Core injects its vision-state instructions into the model prompt.\n * Omit this option (or use `\"auto\"`) to preserve the existing runtime behavior.\n * Use `\"disabled\"` for metadata-only sessions that must not advertise or deny\n * visual perception.\n */\n visionPromptMode?: \"auto\" | \"disabled\";\n /** Connect-time respond-mode defaults by modality. */\n respondModes?: RespondModesConfig;\n /** Descriptive objects visible in the scene at connection time. */\n sceneDescription?: Array<{ name: string; description: string }>;\n /**\n * WebRTC ICE transport policy for the LiveKit connection (default: \"relay\").\n * \"relay\" forces TURN-only (reliable against Convai's hosted LiveKit which\n * provides TURN). Set \"all\" to also allow host/srflx candidates when the\n * LiveKit has no TURN server (e.g. local dev).\n */\n iceTransportPolicy?: RTCIceTransportPolicy;\n /** Enable text-to-speech audio generation (default: true) */\n ttsEnabled?: boolean;\n /** \n * Enable lipsync/facial animation blendshapes (default: false).\n * When true, sets blendshape_provider to \"neurosync\".\n * When false, sets blendshape_provider to \"none\" (no facial animation data).\n */\n enableLipsync?: boolean;\n /** Enable emotion detection and bot-emotion updates (default: false) */\n enableEmotion?: boolean;\n /** Blendshape configuration for facial animation format */\n blendshapeConfig?: {\n /** Format of blendshapes: \"arkit\" or \"mha\" (Meta Human Animation, default: \"mha\") */\n /**\n * Blendshape stream format (default: \"mha\"). Server-verified set:\n * - \"mha\" — 251 channels (Unreal MetaHuman Animation, CTRL_expressions_*)\n * - \"arkit\" — 61 channels (Apple ARKit names)\n * - \"cc4_extended\" — 170 channels (Reallusion CC4 ExpressionPlus)\n * - \"cc5_hd\" — accepted by the server but currently delivers no frames\n * - \"visemes\" — 15 channels (OVR viseme set)\n */\n format?: \"arkit\" | \"mha\" | \"cc4_extended\" | \"cc5_hd\" | \"visemes\";\n /** \n * Custom mapper function to transform incoming blendshapes.\n * Use this to map Convai blendshapes to your character's morph targets.\n * The function receives the raw blendshape array and should return a Float32Array.\n * \n * @example\n * ```typescript\n * import { createARKitNameMapper } from '@convai/web-sdk/lipsync-helpers';\n * \n * const mapper = createARKitNameMapper({\n * 'Character__Mouth_Open': ['Jaw_Open'],\n * 'Character__EyeL_Blink': ['Eye_Blink_L'],\n * }, 'optimized');\n * \n * const config = {\n * blendshapeConfig: {\n * format: 'arkit',\n * customMapper: mapper,\n * }\n * };\n * ```\n */\n customMapper?: (input: number[] | Float32Array) => Float32Array;\n /** \n * Buffer duration for blendshape frames in seconds (default: 1).\n * Controls how much time the server should wait after generating blendshapes before playing the audio.\n */\n frames_buffer_duration?: number;\n /**\n * Enable server ahead-delivery for NeuroSync chunks (default: true).\n *\n * Defaults to `true` when `enableLipsync` is on. The server may send\n * indexed blendshape chunks before audio playback, so use the SDK\n * BlendshapeQueue/player path, which handles owner-scoped cancellation and\n * buffered-frame drops on interruption.\n *\n * Set `false` to fall back to the legacy paced delivery path.\n */\n deliver_chunks_ahead?: boolean;\n /**\n * Requested ahead-delivery blendshape timeline FPS.\n * Applies to the ahead-delivery path, where chunks carry fps\n * metadata for the SDK player. The legacy paced path keeps its fixed 90fps\n * delivery cadence for backward compatibility while SDK playback remains on\n * the normal visual timeline.\n */\n output_fps?: number;\n };\n /** Emotion configuration for character emotional state (sent to server on connect) */\n emotionConfig?:\n | {\n /** LLM-based emotion detection — infers emotion from response context (default) */\n provider: \"llm\";\n }\n | {\n /** NRCLex word-level lexicon lookup */\n provider: \"nrclex\";\n /** Minimum word threshold for emotion detection */\n min_word_threshold?: number;\n /** Low intensity threshold (0–1) */\n low_intensity_threshold?: number;\n /** High intensity threshold (0–1) */\n high_intensity_threshold?: number;\n };\n /** Configuration for character actions and environmental context */\n actionConfig?: {\n /** List of action names the character can perform */\n actions: string[];\n /** Other characters present in the scene or conversation */\n characters: Array<{\n /** Character name */\n name: string;\n /** Character biography or description */\n bio: string;\n }>;\n /** Objects available in the scene or environment */\n objects: Array<{\n /** Object name */\n name: string;\n /** Object description or properties */\n description: string;\n }>;\n /** Name of the object the character is currently focused on. Must match one of objects[].name. */\n current_attention_object?: string;\n /** Client-executed tools available only when action protocol v2 is selected. */\n tools?: ClientToolDeclaration[];\n };\n /** \n * Dynamic contextual information about the current situation.\n * This can be updated during the conversation to provide real-time context.\n * Use the DynamicInfo type to pass flexible key-value pairs with a required \"text\" field.\n */\n dynamicInfo?: DynamicInfo;\n /**\n * Template key values for Narrative Design placeholder substitution,\n * sent as `narrative_template_keys` in the /connect request.\n *\n * Narrative Design section objectives and speak tags may contain\n * placeholders such as `{player_name}` or `{quest_item}`; they are replaced\n * with these values when the section is evaluated, so one narrative graph\n * can serve many personalized sessions. Keys are case-sensitive; missing\n * keys resolve to an empty string.\n *\n * To change the keys mid-session, call `updateTemplateKeys()` — it replaces\n * this same map at runtime (before the next trigger fires).\n *\n * @example\n * ```typescript\n * const client = new ConvaiClient({\n * apiKey: 'your-api-key',\n * characterId: 'your-character-id',\n * narrativeTemplateKeys: {\n * player_name: 'Alex',\n * location: 'Engineering Deck',\n * quest_item: 'oxygen generator',\n * },\n * });\n * ```\n */\n narrativeTemplateKeys?: Record<string, string>;\n /**\n * Keep dynamic info in context as a static prompt (default: false).\n * \n * When true:\n * - Dynamic info behaves as a static prompt sent to the LLM for that WebRTC connection\n * - Dynamic info persists throughout the session\n * - You need to set it again after disconnecting/reconnecting\n * \n * When false:\n * - Allows resetting and updating via updateContext() or updateDynamicInfo()\n * - Dynamic info can be changed during the session\n */\n keepInContext?: boolean;\n /** \n * Enable debug mode for additional logging and diagnostics (default: false).\n */\n debug?: boolean;\n /** Optional per-session response lifecycle contract override. */\n useResponseLifecycleContract?: boolean;\n /**\n * Keep links in the character's text output (default: server-side, currently off).\n *\n * Core-service flattens the LLM's markdown before streaming `bot-llm-text`,\n * which also drops link targets: `[Doc](https://…/a.pdf)` reaches the client\n * as `Doc`. With this on, the session preserves `[text](url)`, ``\n * and bare `http(s)://` URLs verbatim (trailing sentence punctuation stays\n * outside the URL, non-http(s) schemes are still stripped) while bold,\n * headings, tables and code are flattened as before. Speech is unaffected —\n * URLs are never read aloud.\n *\n * Both widgets render the preserved form as clickable links, with inline\n * previews for image and video URLs. If you render `chatMessages` yourself,\n * expect markdown links in `content` once this is on.\n *\n * Sent as `preserve_links_in_output` on `/connect`; omitted when undefined so\n * the server's own default applies. If you build the `/connect` request\n * server-side for `connectWithConnectionData()`, add the field there.\n *\n * @example\n * ```typescript\n * const client = new ConvaiClient({\n * apiKey: 'your-api-key',\n * characterId: 'your-character-id',\n * preserveLinksInOutput: true,\n * });\n * ```\n */\n preserveLinksInOutput?: boolean;\n /**\n * Log decoded RTVI data messages to the browser console (default: true).\n * Set to false to silence incoming and outgoing RTVI message logs.\n */\n logRtviMessages?: boolean;\n /** \n * Metadata about the invocation source and client information.\n * Used for analytics and debugging purposes.\n */\n invocationMetadata?: {\n /** Source of the invocation (e.g., \"web\", \"mobile\", \"unity\") */\n source?: string;\n /** Client SDK version */\n clientVersion?: string;\n /** Additional custom metadata */\n extraMetadata?: Record<string, unknown>;\n };\n}\n\n/** Optional metadata for a text interaction. */\nexport interface SendUserTextMessageOptions {\n /** Stable logical-turn identity used by clients that correlate responses. */\n logicalTurnId?: string;\n /** User-selected temporary emotion to apply before processing the text. */\n stateOfMind?: string | null;\n /** Latest request-scoped dynamic context to include in this same interaction. */\n dynamicInfo?: DynamicInfo;\n}\n\n/**\n * The body returned by POST /connect. The embed receives this from a\n * customer-hosted proxy route rather than fetching it directly.\n */\n/**\n * One ordered character instance requested for a multi-character room.\n *\n * Repeating a `characterId` is legal and intentional: each entry becomes an\n * independent clone with its own membership, session, participant and voice.\n */\nexport interface ConvaiCharacterSpec {\n /**\n * Bare character UUID. Version selectors (`<uuid>-draft`, `<uuid>-1.2`) are\n * accepted by single-character `characterId` but rejected inside a roster --\n * the runtime types roster entries as plain UUIDs.\n */\n characterId: string;\n /**\n * Resume this instance's prior conversation history. Must be unique across\n * the roster, and must belong to the same publisher, speaker and character.\n */\n characterSessionId?: string;\n}\n\n/**\n * Dispatch state of one roster member, as reported by `/connect`.\n *\n * These describe provisioning only and never readiness. A member becomes\n * usable when its own `bot-ready` arrives -- `dispatch_accepted` is not\n * `bot-ready`. The union deliberately has no member that could be mistaken for\n * a ready state; the separate `character-status` event carries those.\n */\nexport type CharacterProvisioningStatus =\n | \"dispatch_queued\"\n | \"dispatch_accepted\"\n | \"dispatch_failed\";\n\n/** One concrete character instance in a roster room. */\nexport interface ConvaiCharacterInstance {\n /** Primary key for this instance. Address members by this, never by `characterId`. */\n membershipId: string;\n /** The authored character this instance runs. Not unique across a roster. */\n characterId: string;\n /** Backend session for support correlation. */\n sessionId: string | null;\n /** This instance's conversation/history session. */\n characterSessionId: string | null;\n /** Stable LiveKit identity, always `character:{membershipId}`. */\n participantIdentity: string;\n /** True for `characters[0]`, the initially active member. */\n isInitial: boolean;\n provisioningStatus: CharacterProvisioningStatus;\n /**\n * The character's display name, when the runtime sends one. Saves a separate\n * `character/get` call just to label a member in the UI. Undocumented in the\n * published contract but returned by the live API, so treat it as optional.\n */\n displayName: string | null;\n /** Character description, when the runtime sends one. */\n description: string | null;\n /** Populated when `provisioningStatus` is `dispatch_failed`. */\n failureCode: string | null;\n /** True once this member's own `bot-ready` has arrived. */\n isReady: boolean;\n}\n\n/**\n * Server-owned snapshot of a multi-character room. Null for single-character\n * sessions.\n */\nexport interface ConvaiRoomSession {\n /** Durable room identity. Use it to join, and to correlate with support. */\n roomSessionId: string;\n roomName: string | null;\n /** Trace id of the `/connect` that produced this room. Quote it in bug reports. */\n requestTraceId: string | null;\n /** Membership currently authorised to consume user turns. */\n activeMembershipId: string | null;\n /** Monotonic version of the active target; fences target switches. */\n routeEpoch: number;\n /** Monotonic version of roster composition; fences add/remove. */\n rosterEpoch: number;\n /** True when at least one member already failed dispatch. */\n partialDispatch: boolean;\n characters: ConvaiCharacterInstance[];\n}\n\n/** Result of a successful target switch. */\nexport interface ActiveCharacterChange {\n /** Membership that was active before, or null. */\n previous: string | null;\n /** Membership now authorised to consume user turns, or null when all gates are closed. */\n active: string | null;\n routeEpoch: number;\n}\n\n/** Result of a successful roster mutation. */\nexport interface CharacterRosterChange {\n added: ConvaiCharacterInstance[];\n removed: ConvaiCharacterInstance[];\n /** The roster after the change. */\n characters: ConvaiCharacterInstance[];\n rosterEpoch: number;\n routeEpoch: number;\n activeMembershipId: string | null;\n}\n\n/** Options for adding and removing roster members on a live room. */\nexport interface UpdateCharacterRosterOptions {\n /** Members to add. Repeating an existing characterId creates another clone. */\n add?: ConvaiCharacterSpec[];\n /** Membership ids to remove. Never characterIds -- clones make those ambiguous. */\n remove?: string[];\n /**\n * Member to take over routing when the active one is removed. Must be a ready\n * member that survives the change. Chosen automatically when omitted.\n */\n replacementTarget?: string;\n}\n\n/** Options for joining an existing multi-character room. */\nexport interface JoinRoomOptions {\n /** Preferred locator. Exactly one of this or `sharedSessionKey`. */\n roomSessionId?: string;\n /** Publisher-scoped alternative locator. */\n sharedSessionKey?: string;\n /** Required and nonblank; identifies the joining human. */\n endUserId: string;\n endUserMetadata?: Record<string, unknown>;\n /** Idempotency key for retrying this join. */\n connectAttemptId?: string;\n}\n\n/**\n * Lifecycle transition of one roster member, after `/connect` has returned.\n *\n * `bot-ready` remains the readiness authority: do not enable interaction from a\n * `ready` status alone. This event's real job is reporting a member that was\n * added at runtime, or one whose dispatch failed in the background.\n */\nexport interface CharacterStatusEvent {\n status: \"starting\" | \"ready\" | \"failed\";\n membershipId: string;\n characterId: string;\n characterSessionId: string | null;\n participantIdentity: string;\n roomSessionId: string | null;\n rosterEpoch: number | null;\n /** Set when `status` is `failed`, e.g. `ACTOR_ASSIGNMENT_FAILED`. */\n failureCode: string | null;\n}\n\n/**\n * An audio track bound to the character instance that publishes it.\n *\n * In a multi-character room `membershipId` is always set -- a track that\n * cannot be attributed to a roster member is dropped, never surfaced against\n * the active character. In a single-character room it is null.\n */\nexport interface CharacterAudioTrackEvent {\n membershipId: string | null;\n characterId: string | null;\n /** LiveKit participant identity; `character:{membershipId}` in a roster. */\n participantIdentity: string;\n track: MediaStreamTrack;\n}\n\n/**\n * A finalized turn's usage/cost breakdown, streamed by the server after\n * {@link IConvaiClient.toggleUsageUpdates} enables it. The shape is\n * server-defined and informational; treat unknown fields as opaque.\n */\nexport type UsageUpdate = Record<string, unknown>;\n\n/**\n * Every event the client emits, with its payload.\n *\n * `on()` is typed against this map, so a listener for a known event gets its\n * payload inferred instead of `any`. The plain-string signature is kept so\n * existing callers and dynamic event names keep compiling, which also means a\n * misspelt literal is not a compile error. Payloads the server defines as\n * opaque blobs (blendshape frames, metrics, usage) are left as records rather\n * than guessed at.\n */\nexport interface ConvaiEventMap {\n connect: [];\n connected: [];\n disconnect: [reason: DisconnectReason | null];\n disconnected: [];\n error: [error: unknown];\n stateChange: [state: ConvaiClientState];\n botReady: [];\n characterSessionId: [characterSessionId: string];\n interactionCreated: [data: InteractionCreated];\n message: [message: ChatMessage];\n messagesChange: [messages: ChatMessage[]];\n userTranscriptionChange: [transcription: string];\n speakingChange: [isSpeaking: boolean];\n listeningChange: [isListening: boolean];\n botRespondingChange: [isResponding: boolean];\n turnEnd: [turn: { sessionId: number; duration: number; timestamp: number }];\n conversationStart: [\n start: { sessionId: number; userMessage: string; timestamp: number },\n ];\n emotionChange: [emotion: { emotion: string; scale?: number } | null];\n actionResponse: [data: ActionResponseEvent];\n serverResponse: [response: ServerResponse];\n botOutput: [data: { text: string; spoken: boolean; aggregatedBy: string }];\n botTtsText: [data: { text: string }];\n botTtsStarted: [];\n botTtsStopped: [];\n botTurnCompleted: [data: unknown];\n userMuteStarted: [];\n userMuteStopped: [];\n idleWarning: [data: { remainingSeconds: number | null }];\n llmNoResponse: [];\n metrics: [data: Record<string, unknown>];\n usageUpdate: [data: UsageUpdate];\n blendshapes: [data: Record<string, unknown>];\n blendshapeCancel: [data: Record<string, unknown>];\n blendshapeStatsReceived: [stats: Record<string, unknown>];\n botAudioTrack: [track: MediaStreamTrack];\n audioStateChange: [enabled: boolean];\n videoStateChange: [enabled: boolean];\n screenShareStateChange: [active: boolean];\n characterReady: [instance: ConvaiCharacterInstance | undefined];\n characterStatus: [status: CharacterStatusEvent];\n activeCharacterChange: [change: ActiveCharacterChange];\n rosterChange: [change: CharacterRosterChange];\n characterAudioTrack: [event: CharacterAudioTrackEvent];\n actionResultAck: [ack: ActionResultAck];\n modelOutputProtocolError: [data: ModelOutputProtocolError];\n modelOutput: [data: ModelOutputMessage];\n botLlmTextRaw: [data: BotLlmTextRawEvent];\n}\n\n/**\n * Preserve typed callbacks for known events while permitting callers that\n * intentionally enumerate runtime event names. A string literal outside the\n * map resolves to `never`, so misspellings still fail at compile time.\n */\nexport type ConvaiEventCallback<E extends string> =\n E extends keyof ConvaiEventMap\n ? (...args: ConvaiEventMap[E]) => void\n : string extends E\n ? (...args: any[]) => void\n : never;\n\n/** A transcript line inserted locally by {@link IConvaiClient.appendMessage}. */\nexport interface AppendMessageOptions {\n sender: \"user\" | \"bot\";\n content: string;\n /** Attribute the line to a roster member, in a multi-character room. */\n membershipId?: string;\n characterId?: string;\n}\n\n/** Bounded retry for a roster room that is still provisioning. */\nexport interface RosterProvisioningRetry {\n /** Total attempts including the first. Default 4. */\n attempts?: number;\n /** Delay before the second attempt; doubles with jitter. Default 500. */\n initialDelayMs?: number;\n}\n\nexport interface ConnectionData {\n /** LiveKit room URL, or the WebSocket URL when the transport is websocket. */\n room_url: string;\n /** LiveKit access token. Absent on the WebSocket transport. */\n token?: string;\n character_session_id?: string;\n end_user_id?: string;\n end_user_metadata?: Record<string, unknown>;\n}\n\n/** Options for connecting to a published text-chat session. */\nexport interface PublishedChatConnectOptions {\n /** Core API origin (defaults to the production realtime API). */\n url?: string;\n /**\n * WebRTC ICE transport policy (defaults to \"relay\" for Convai-hosted\n * LiveKit). Set \"all\" for a deployment that has no TURN server.\n */\n iceTransportPolicy?: RTCIceTransportPolicy;\n /** Cancels the grant exchange and tears down an in-progress connection. */\n signal?: AbortSignal;\n /**\n * Idempotency key for one logical connect. Reuse it only when retrying the\n * same launch token. The SDK generates one when this is omitted.\n */\n connectAttemptId?: string;\n}\n\n/**\n * Represents a single message in the chat conversation.\n * Different message types are used for various parts of the conversation flow.\n */\nexport interface ChatMessage {\n /** Unique identifier for the message */\n id: string;\n /**\n * Core-owned identifier for the individual model invocation that produced\n * this bot row. Absent for legacy sessions and older v2 Core versions.\n */\n outputId?: string;\n /**\n * Immutable logical turn id for correlated v2 user speech and bot text.\n * Absent for legacy sessions and uncorrelated messages.\n */\n logicalTurnId?: string;\n /** \n * Type of message:\n * - `user`: User's sent message\n * - `convai`: Character's response\n * - `user-transcription`: Real-time speech-to-text from user\n * - `bot-llm-text`: Character's LLM-generated text (token-by-token streaming)\n * - `bot-output`: Aggregated bot output (sentence/word-level chunks with spoken status)\n * - `emotion`: Character's emotional state\n * - `behavior-tree`: Behavior tree response\n * - `action`: Action execution\n * - `bot-emotion`: Bot emotional response\n * - `user-llm-text`: User text processed by LLM\n * - `interrupt-bot`: Interrupt the bot's current response\n * - `idle-warning`: Server idle-timeout warning; `content` holds remaining seconds as a numeric string (e.g. `\"45\"`)\n * - `llm-no-response`: LLM deliberately did not respond (abstain); `content` is always `\"\"`\n */\n type: 'user' | 'convai' | 'emotion' | 'behavior-tree' | 'action' | 'user-transcription' | 'bot-llm-text' | 'bot-output' | 'bot-emotion' | 'user-llm-text' | 'interrupt-bot' | 'idle-warning' | 'llm-no-response';\n /**\n * Which character instance produced this message, in a multi-character room.\n * Undefined in single-character sessions. Attribute UI to this, never to\n * `characterId` -- two clones of one character share a `characterId`.\n */\n membershipId?: string;\n /** The authored character behind {@link membershipId}. Not unique across a roster. */\n characterId?: string;\n /** The text content of the message */\n content: string;\n /** ISO timestamp string of when the message was created */\n timestamp: string;\n /** Whether this message is still streaming (mutable); false when finalized */\n isStreaming?: boolean;\n}\n\n/**\n * Represents a single metrics event from the server.\n * Multiple metrics may be received during a conversation.\n */\nexport interface ConvaiMetrics {\n /** Raw metrics data from the server */\n data: Record<string, unknown>;\n /** Timestamp when the metrics were received */\n timestamp: string;\n /** Unique identifier for this metrics event */\n id: string;\n}\n\n/**\n * Represents the current state of the Convai client connection and activity.\n * Use this to provide UI feedback about the conversation state.\n * \n * @example\n * ```typescript\n * const { state } = convaiClient;\n * \n * if (state.isConnected) {\n * console.log('Connected to character');\n * }\n * \n * if (state.isSpeaking) {\n * console.log('Character is speaking');\n * }\n * \n * // Or use the combined state\n * console.log(state.agentState); // 'listening' | 'thinking' | 'speaking'\n * \n * // Access end user information\n * console.log(state.endUserId); // 'user@example.com'\n * console.log(state.endUserMetadata); // { name: 'John', age: '30' }\n * \n * // Access metrics for the current conversation\n * console.log(state.metrics); // Array of metrics events\n * \n * // Check disconnect reason\n * if (state.disconnectReason !== null) {\n * console.log('Disconnected due to:', state.disconnectReason);\n * }\n * ```\n */\nexport interface ConvaiClientState {\n /** Whether the client is currently connected to Convai */\n isConnected: boolean;\n /** Whether a connection attempt is in progress */\n isConnecting: boolean;\n /** True from user-started-speaking until user-stopped-speaking (user is speaking, bot is listening). Priority below isSpeaking. */\n isListening: boolean;\n /** Whether the character is processing/thinking about a response */\n isThinking: boolean;\n /** Whether the character is currently speaking */\n isSpeaking: boolean;\n /** \n * Combined state indicator for the character's current activity.\n * Priority: speaking > listening (user speaking) > thinking > connected.\n */\n agentState: 'disconnected' | 'connected' | 'listening' | 'thinking' | 'speaking';\n /** Current bot emotion (name and optional scale). Updated when bot-emotion messages are received. */\n emotion: { emotion: string; scale?: number } | null;\n /** \n * End user ID returned from the connection response.\n * This is the actual end user ID used by the server (may differ from the one provided in config).\n */\n endUserId: string | null;\n /** \n * End user metadata returned from the connection response.\n * Contains additional information about the end user.\n */\n endUserMetadata: Record<string, unknown> | null;\n /** \n * Array of metrics events received during the current session.\n * Multiple metrics may be received per conversation.\n * Clears when resetSession() is called.\n */\n metrics: ConvaiMetrics[];\n /** \n * Disconnect reason from LiveKit when disconnected.\n * null when connected, otherwise contains the reason code.\n * Use this to differentiate between client-initiated disconnects and network/server issues.\n * \n * Notable reasons:\n * - CLIENT_INITIATED (1): User disconnected intentionally\n * - DUPLICATE_IDENTITY (2): Another client with same identity joined\n * - SERVER_SHUTDOWN (3): Server shutting down\n * - PARTICIPANT_REMOVED (4): Removed by API\n * - ROOM_DELETED (5): Room was ended\n * \n * Non-CLIENT_INITIATED reasons may indicate network disruptions where reconnection is appropriate.\n * \n * @see DisconnectReason\n */\n disconnectReason: DisconnectReason | null;\n /**\n * Character instances in a multi-character room, in roster order. Empty for\n * single-character sessions, so a check on `length` distinguishes the two.\n */\n characters: ConvaiCharacterInstance[];\n /**\n * Membership currently receiving user turns, or null. Only this member\n * consumes interaction input.\n */\n activeMembershipId: string | null;\n}\n\n/**\n * Audio control interface for managing microphone\n */\nexport interface AudioControls {\n isAudioEnabled: boolean;\n isAudioMuted: boolean;\n audioLevel: number;\n enableAudio: () => Promise<void>;\n disableAudio: () => Promise<void>;\n muteAudio: () => Promise<void>;\n unmuteAudio: () => Promise<void>;\n toggleAudio: () => Promise<void>;\n setAudioDevice: (deviceId: string) => Promise<void>;\n getAudioDevices: () => Promise<MediaDeviceInfo[]>;\n startAudioLevelMonitoring: () => void;\n stopAudioLevelMonitoring: () => void;\n // EventEmitter methods for React integration\n on: {\n <E extends keyof ConvaiEventMap>(\n event: E,\n callback: (...args: ConvaiEventMap[E]) => void,\n ): () => void;\n (event: string, callback: (...args: any[]) => void): () => void;\n };\n off: (event: string, callback: (...args: any[]) => void) => void;\n}\n\n/**\n * Video control interface for managing camera\n */\nexport interface VideoControls {\n isVideoEnabled: boolean;\n isVideoHidden: boolean;\n activeVisionSource: VisionSourceHandle | null;\n hasActiveVisionSource: boolean;\n visionSourceState: VisionSourceState;\n enableVideo: () => Promise<void>;\n disableVideo: () => Promise<void>;\n hideVideo: () => Promise<void>;\n showVideo: () => Promise<void>;\n toggleVideo: () => Promise<void>;\n setVideoDevice: (deviceId: string) => Promise<void>;\n getVideoDevices: () => Promise<MediaDeviceInfo[]>;\n setVideoQuality: (quality: 'low' | 'medium' | 'high') => Promise<void>;\n publishCanvas: (\n canvas: HTMLCanvasElement,\n options?: PublishCanvasOptions,\n ) => Promise<VisionSourceHandle>;\n publishVideoTrack: (\n track: MediaStreamTrack,\n options?: PublishVideoTrackOptions,\n ) => Promise<VisionSourceHandle>;\n unpublishVisionSource: (\n source?: VisionSourceHandle | MediaStreamTrack,\n ) => Promise<void>;\n // EventEmitter methods for React integration\n on: {\n <E extends keyof ConvaiEventMap>(\n event: E,\n callback: (...args: ConvaiEventMap[E]) => void,\n ): () => void;\n (event: string, callback: (...args: any[]) => void): () => void;\n };\n off: (event: string, callback: (...args: any[]) => void) => void;\n}\n\n/**\n * Screen share control interface\n */\nexport interface ScreenShareControls {\n isScreenShareEnabled: boolean;\n isScreenShareActive: boolean;\n enableScreenShare: () => Promise<void>;\n disableScreenShare: () => Promise<void>;\n toggleScreenShare: () => Promise<void>;\n enableScreenShareWithAudio: () => Promise<void>;\n getScreenShareTracks: () => Promise<any[]>;\n // EventEmitter methods for React integration\n on: {\n <E extends keyof ConvaiEventMap>(\n event: E,\n callback: (...args: ConvaiEventMap[E]) => void,\n ): () => void;\n (event: string, callback: (...args: any[]) => void): () => void;\n };\n off: (event: string, callback: (...args: any[]) => void) => void;\n}\n\n/**\n * Main Convai client interface.\n * Provides complete control over Convai character connections and interactions.\n * \n * @example\n * ```typescript\n * import { ConvaiClient } from '@convai/web-sdk/core';\n * \n * const client = new ConvaiClient();\n * \n * // Connect to character\n * await client.connect({\n * apiKey: 'your-api-key',\n * characterId: 'your-character-id',\n * endUserId: '-1' // Dev mode\n * });\n * \n * // Send a message\n * client.sendUserTextMessage('Hello!');\n * \n * // Listen for state changes\n * client.on('stateChange', (state) => {\n * console.log('State:', state);\n * });\n * \n * // Listen for messages\n * client.on('message', (message) => {\n * console.log('New message:', message);\n * });\n * ```\n */\n/**\n * Character Versioning API Types\n *\n * Shapes returned by the Character REST platform's `/character/versions/*`\n * routes. Field names are kept as the API sends them.\n */\n\n/** One immutable, tagged character version. */\nexport interface CharacterVersionInfo {\n /** Semantic tag, e.g. `\"1.2\"` or `\"1.2.3\"` */\n version: string;\n /** Immutable revision backing this tag */\n revision_id: string;\n /** Whether `latest` currently points at this tag */\n is_latest: boolean;\n created_by: string;\n /** ISO-8601 timestamp */\n created_at: string;\n is_deprecated: boolean;\n /** ISO-8601 timestamp, or null when not deprecated */\n deprecated_at: string | null;\n}\n\n/** Response from `CharacterVersionManager.list()`. */\nexport interface CharacterVersionList {\n /** Released versions, newest first as returned by the API */\n items: CharacterVersionInfo[];\n /** Revision `latest` resolves to, or null before any release */\n latest_revision_id: string | null;\n /** Tag `latest` points at, or null when latest is an unpromoted revision */\n latest_version: string | null;\n /** Editable draft revision, or null for a legacy character that has not been bootstrapped */\n draft_revision_id: string | null;\n /** Released revision the draft was branched from */\n draft_parent_revision_id: string | null;\n draft_parent_version: string | null;\n /** True when the draft differs from its released parent */\n has_unpublished_changes: boolean;\n /** True when `latest` points at a tagged version rather than a loose revision */\n latest_is_promoted: boolean;\n}\n\n/** Voice details attached to a resolved version when `includeRuntimeSettings` is set. */\nexport interface CharacterRuntimeVoice {\n voice_value: string;\n voice_name: string;\n provider: string;\n lang_codes: string[] | null;\n accessibility: string | null;\n gender: string | null;\n voice_data: Record<string, unknown> | null;\n}\n\n/** Live (unversioned) runtime settings returned alongside a resolved version. */\nexport interface CharacterRuntimeSettings {\n schema_version: 1;\n stt_provider: string | null;\n voice: CharacterRuntimeVoice | null;\n}\n\n/** Response from `CharacterVersionManager.resolve()`. */\nexport interface ResolvedCharacterVersion {\n character_id: string;\n /** The reference that was resolved, e.g. `<uuid>-draft` */\n requested_reference: string;\n /** Immutable revision, or null for a legacy character with no revision yet */\n revision_id: string | null;\n /** Tag when the reference resolved to a tagged version */\n version: string | null;\n is_latest: boolean;\n /** The full character configuration snapshot */\n payload: Record<string, unknown>;\n runtime_settings?: CharacterRuntimeSettings | null;\n}\n\n/** Options for `CharacterVersionManager.resolve()`. */\nexport interface ResolveCharacterVersionOptions {\n /**\n * Also return the live voice and STT settings (default: false).\n * Only a trusted service identity may ask for these; an API key is\n * answered with `403 Runtime settings require a trusted service identity`.\n */\n includeRuntimeSettings?: boolean;\n}\n\n/** Response from `CharacterVersionManager.bootstrap()`. */\nexport interface CharacterDraftBootstrapResult {\n character_id: string;\n draft_revision_id: string;\n /** False when the character already had a draft */\n created: boolean;\n}\n\n/** One side of a version comparison. */\nexport interface CharacterVersionDiffSide {\n /** The selector that was compared: `draft`, `latest`, or a tag */\n selector: string;\n revision_id: string | null;\n version: string | null;\n is_latest: boolean;\n}\n\n/** One field-level change in a raw diff. */\nexport interface CharacterVersionRawChange {\n /** JSON path into the character payload */\n path: string;\n change_type: \"added\" | \"removed\" | \"modified\";\n before?: unknown;\n after?: unknown;\n}\n\n/** One human-labelled change in a semantic diff; revertable one at a time. */\nexport interface CharacterVersionSemanticChange {\n change_id: string;\n semantic_key: string;\n label: string;\n category: string;\n change_type: \"added\" | \"removed\" | \"modified\";\n before?: unknown;\n after?: unknown;\n source_paths: string[];\n can_revert: boolean;\n revert_disabled_reason?: string | null;\n integrity_warning?: string | null;\n}\n\n/** Response from `CharacterVersionManager.diff()` with `view: \"raw\"` (the default). */\nexport interface CharacterVersionRawDiff {\n view?: \"raw\";\n character_id: string;\n from: CharacterVersionDiffSide;\n to: CharacterVersionDiffSide;\n change_count: number;\n changes: CharacterVersionRawChange[];\n}\n\n/** Response from `CharacterVersionManager.diff()` with `view: \"semantic\"`. */\nexport interface CharacterVersionSemanticDiff {\n view: \"semantic\";\n semantic_schema_version: number;\n character_id: string;\n from: CharacterVersionDiffSide;\n to: CharacterVersionDiffSide;\n draft_revision_id: string | null;\n change_count: number;\n changes: CharacterVersionSemanticChange[];\n}\n\nexport type CharacterVersionDiff = CharacterVersionRawDiff | CharacterVersionSemanticDiff;\n\n/** Options for `CharacterVersionManager.diff()`. */\nexport interface CharacterVersionDiffOptions {\n /** `\"raw\"` lists JSON paths; `\"semantic\"` groups them into labelled, revertable changes. Default `\"raw\"`. */\n view?: \"raw\" | \"semantic\";\n}\n\n/** Options for `CharacterVersionManager.create()`. */\nexport interface CreateCharacterVersionOptions {\n /** Point `latest` at the new version immediately (default: false) */\n makeLatest?: boolean;\n}\n\n/** Options for `CharacterVersionManager.revert()`. */\nexport interface RevertCharacterChangeOptions {\n /** Version the draft is being compared against — the change is reverted to this side */\n from: string;\n /** `change_id` from a semantic diff */\n changeId: string;\n /** Draft revision the caller last saw; the request fails if the draft moved */\n expectedDraftRevisionId: string;\n}\n\n/** Response from `CharacterVersionManager.revert()`. */\nexport interface RevertCharacterChangeResult {\n character_id: string;\n reverted_change_id: string;\n previous_draft_revision_id: string;\n /** The new draft revision after the revert */\n draft_revision_id: string;\n /** Semantic diff between `from` and the new draft */\n diff: CharacterVersionSemanticDiff;\n}\n\n/** Response from `CharacterVersionManager.discardDraft()`. */\nexport interface DiscardCharacterDraftResult {\n character_id: string;\n previous_draft_revision_id: string;\n /** The fresh draft, restored from its released parent */\n draft_revision_id: string;\n draft_parent_revision_id: string;\n draft_parent_version: string;\n}\n\n/** Response from `CharacterVersionManager.fork()`. */\nexport interface ForkCharacterVersionResult {\n character_id: string;\n /** Tag the draft was replaced with */\n source_version: string;\n draft_revision_id: string;\n latest_revision_id: string | null;\n has_unpublished_changes: boolean;\n}\n\n/** Options for constructing a `CharacterVersionManager` directly. */\nexport interface CharacterVersionManagerOptions {\n /** Bare character UUID (a suffixed reference is accepted and stripped) */\n characterId: string;\n /** Convai API key, sent as `CONVAI-API-KEY` */\n apiKey?: string;\n /** Convai personal access token, sent as `Authorization: Bearer` (alternative to `apiKey`) */\n personalAccessToken?: string;\n /** Character REST platform origin (default: `https://api2.convai.com`) */\n baseUrl?: string;\n /** Workspace scope, forwarded as `workspace_id` on every call */\n workspaceId?: string;\n}\n\n/**\n * Memory API Types\n * Types for Convai's long-term memory management APIs\n */\n\n/**\n * Memory object returned from the API\n */\nexport interface Memory {\n /** Unique memory identifier (UUID) */\n id: string;\n /** Memory text content */\n memory: string;\n /** ISO timestamp when the memory was created */\n created_at: string;\n /** ISO timestamp when the memory was last updated */\n updated_at: string;\n}\n\n/**\n * Memory event object from add operation\n */\nexport interface MemoryAddEvent {\n /** Memory identifier */\n id: string;\n /** Event type (always \"ADD\" for add operations) */\n event: 'ADD';\n /** Memory text content */\n memory: string;\n}\n\n/**\n * Request to add memories\n */\nexport interface MemoryAddRequest {\n /** Character UUID */\n character_id: string;\n /** End user identifier */\n end_user_id: string;\n /** Array of memory strings to add */\n memories: string[];\n}\n\n/**\n * Response from add memories operation\n */\nexport interface MemoryAddResponse {\n /** Array of added memories with their IDs */\n memories: MemoryAddEvent[];\n}\n\n/**\n * Request to list memories with pagination\n */\nexport interface MemoryListRequest {\n /** Character UUID */\n character_id: string;\n /** End user identifier */\n end_user_id: string;\n /** Page number (default: 1, clamped to 1-1000) */\n page?: number;\n /** Number of memories per page (default: 50, clamped to 1-100) */\n page_size?: number;\n}\n\n/**\n * Response from list memories operation\n */\nexport interface MemoryListResponse {\n /** Array of memories */\n memories: Memory[];\n /** Total count of memories for this character/user pair */\n total_count: number;\n /** Current page number */\n page: number;\n /** Number of memories per page */\n page_size: number;\n /** Whether there are more pages available */\n has_more: boolean;\n}\n\n/**\n * Request to get a single memory\n */\nexport interface MemoryGetRequest {\n /** Character UUID */\n character_id: string;\n /** End user identifier */\n end_user_id: string;\n /** Memory UUID to fetch */\n memory_id: string;\n}\n\n/**\n * Response from get memory operation\n */\nexport type MemoryGetResponse = Memory;\n\n/**\n * Request to delete a memory\n */\nexport interface MemoryDeleteRequest {\n /** Character UUID */\n character_id: string;\n /** End user identifier */\n end_user_id: string;\n /** Memory UUID to delete */\n memory_id: string;\n}\n\n/**\n * Response from delete memory operation\n */\nexport interface MemoryDeleteResponse {\n /** Success message */\n message: string;\n /** Memory ID that was deleted */\n memory_id: string;\n /** Whether the memory was successfully deleted */\n deleted: boolean;\n}\n\n/**\n * Request to delete all memories\n */\nexport interface MemoryDeleteAllRequest {\n /** Character UUID */\n character_id: string;\n /** End user identifier */\n end_user_id: string;\n}\n\n/**\n * Response from delete all memories operation\n */\nexport interface MemoryDeleteAllResponse {\n /** Status message (deletion is asynchronous) */\n message: string;\n /** Character ID for which memories are being deleted */\n character_id: string;\n /** End user ID for which memories are being deleted */\n end_user_id: string;\n}\n\n/**\n * Error response from Memory API\n */\nexport interface MemoryError {\n /** Error message */\n ERROR: string;\n /** Transaction reference ID for debugging */\n 'Reference ID': string;\n}\n\nexport interface IConvaiClient {\n /** Current connection and activity state of the client */\n readonly state: ConvaiClientState;\n \n /** \n * Connection type: \"text\" (no local media), \"audio\" (audio only), or\n * \"video\" (audio + video + screenshare).\n */\n readonly connectionType: 'audio' | 'video' | 'text' | null;\n\n /** Whether this client was last connected through a single-use publication grant. */\n readonly isPublishedChatSession?: boolean;\n \n /** API key used for the current connection, if apiKey was used (null otherwise) */\n readonly apiKey?: string | null;\n\n /** Auth token used for the current connection, if authToken was used (null otherwise) */\n readonly authToken?: string | null;\n\n /** Bare character UUID used for the current connection (null if not connected) */\n readonly characterId: string | null;\n\n /** Version selector in effect for the current connection (`draft`, `latest`, or a tag); null when unversioned or not connected */\n readonly characterVersion: CharacterVersionSelector | null;\n\n /** The reference sent to the runtime: `characterId` joined with `characterVersion` (null if not connected) */\n readonly characterReference: string | null;\n \n /** Internal LiveKit Room instance (for advanced usage) */\n readonly room: Room;\n \n /** Array of all chat messages in the current conversation */\n readonly chatMessages: ChatMessage[];\n \n /** Current real-time transcription of user speech */\n readonly userTranscription: string;\n \n /** Unique session ID for the current character conversation */\n readonly characterSessionId: string | null;\n\n /** Server trace ID for the most recent connection request, when provided. */\n readonly requestTraceId?: string | null;\n \n /** Whether the bot is ready to receive messages (true after bot-ready message) */\n readonly isBotReady: boolean;\n \n /** Audio control methods for managing microphone mute/unmute */\n readonly audioControls: AudioControls;\n \n /** Video control methods for enabling/disabling camera */\n readonly videoControls: VideoControls;\n \n /** Screen sharing control methods */\n readonly screenShareControls: ScreenShareControls;\n \n /** Blendshape queue for time-based lipsync synchronization */\n readonly blendshapeQueue: BlendshapeQueue;\n \n /** Incremental turn session ID used by conversation events (e.g. conversationStart, turnEnd) */\n readonly conversationSessionId: number;\n \n /** \n * Memory manager for long-term memory operations.\n * Returns null if no API key or end user ID is available.\n * \n * @example\n * ```typescript\n * const memoryManager = client.memoryManager;\n * if (memoryManager) {\n * const memories = await memoryManager.listMemories();\n * }\n * ```\n */\n readonly memoryManager: import('./MemoryManager').MemoryManager | null;\n\n /**\n * Character version manager for the configured character.\n *\n * Lists, compares, releases, promotes and discards character versions\n * through the Character REST platform. Available as soon as the client has\n * an `apiKey` and `characterId` — before connecting, so an app can pick a\n * version and then connect to it. Null without an API key.\n *\n * @example\n * ```typescript\n * const versions = client.characterVersions;\n * if (versions) {\n * const { items, draft_revision_id } = await versions.list();\n * await versions.create('1.0', { makeLatest: true });\n * }\n * ```\n */\n readonly characterVersions: import('./CharacterVersionManager').CharacterVersionManager | null;\n \n /** \n * Connect to a Convai character.\n */\n connect: (config?: ConvaiConfig) => Promise<void>;\n\n /**\n * Connect to a published text chat with a short-lived, single-use grant.\n *\n * Obtain the grant from the public publication endpoint immediately before\n * connecting. This path needs no API key or character ID in the browser and\n * creates a data-only, text-chat session. Request a fresh grant for every\n * later session or reconnect attempt.\n *\n * @example\n * ```ts\n * import { ConvaiClient } from '@convai/web-sdk/core'\n * import { requestPublishedChatGrant } from '@convai/web-sdk/embed'\n *\n * const client = new ConvaiClient()\n * const launchToken = await requestPublishedChatGrant(\n * 'https://character-api.example.com/chat-publications/PUBLICATION_ID/launch-grants',\n * )\n * await client.connectWithPublicationGrant(launchToken, {\n * url: 'https://realtime.example.com',\n * })\n * ```\n */\n connectWithPublicationGrant?: (\n launchToken: string,\n options?: PublishedChatConnectOptions,\n ) => Promise<void>;\n \n /**\n * Complete a connection from an already-fetched /connect response body.\n *\n * `connect()` fetches /connect and then calls this internally. Call it\n * directly when the response was obtained elsewhere — a server-side session\n * manager, or the embed's connect-proxy flow, where the API key must never\n * reach the browser.\n *\n * @example\n * // Server (customer's backend): holds the API key, calls Convai's\n * // /connect, and relays the response body verbatim.\n * // Browser: never sees the API key, only the relayed response.\n * const data = await fetch('/api/convai-connect', {\n * method: 'POST',\n * headers: { 'Content-Type': 'application/json' },\n * body: JSON.stringify({ characterId: 'your-character-id' }),\n * }).then(r => r.json())\n * await client.connectWithConnectionData(data)\n */\n connectWithConnectionData: (data: ConnectionData, config?: ConvaiConfig) => Promise<void>;\n /**\n * Join an existing multi-character room by `roomSessionId` or\n * `sharedSessionKey`. The roster is server-owned, so no character topology is\n * sent; joining never spawns, removes or repairs a character.\n *\n * @example\n * ```ts\n * await client.joinRoom({ roomSessionId: 'the-room-id', endUserId: 'player-99' })\n * ```\n */\n joinRoom: (options: JoinRoomOptions) => Promise<void>;\n /** Server-owned snapshot of a multi-character room (null when single-character) */\n readonly roomSession: ConvaiRoomSession | null;\n /** Character instances in roster order; empty for a single-character session */\n readonly characters: ConvaiCharacterInstance[];\n /** Membership currently receiving user turns, or null */\n readonly activeMembershipId: string | null;\n /**\n * Insert a message into the transcript locally, without sending it to the\n * character. Use it for client-side lines -- a greeting, a system notice,\n * replayed history -- that must appear in the chat but must never reach\n * the LLM or be billed as a turn. Not `sendUserTextMessage`: nothing is\n * transmitted. Returns the message that was added.\n *\n * @example\n * ```ts\n * client.appendMessage({ sender: 'bot', content: 'Welcome back!' })\n * ```\n */\n appendMessage: (message: AppendMessageOptions) => ChatMessage;\n /**\n * Opt in or out of `usageUpdate` events -- the server's per-turn usage and\n * cost breakdown. Informational only; billing is unaffected.\n *\n * @example\n * ```ts\n * client.toggleUsageUpdates(true)\n * client.on('usageUpdate', (u) => console.log(u))\n * ```\n */\n toggleUsageUpdates: (enabled: boolean) => void;\n /**\n * Route subsequent user turns to a different character instance. Pass null to\n * close every input gate so no member hears the user.\n *\n * Resolves on the server's acknowledgement. Retries once against the\n * server's authoritative epoch when another participant switched first.\n *\n * @example\n * ```ts\n * await client.setInteractionTarget(assessor.membershipId)\n * client.sendUserTextMessage('Now grade me.')\n * ```\n */\n setInteractionTarget: (membershipId: string | null) => Promise<ActiveCharacterChange>;\n /**\n * Add or remove character instances on a live room, without reconnecting.\n *\n * @example\n * ```ts\n * await client.updateCharacterRoster({ add: [{ characterId: NARRATOR }] })\n * ```\n */\n updateCharacterRoster: (\n options: UpdateCharacterRosterOptions,\n ) => Promise<CharacterRosterChange>;\n\n /** Disconnect from the current character session */\n disconnect: () => Promise<void>;\n \n /** Reconnect - disconnect and connect again using stored config */\n reconnect: () => Promise<void>;\n \n /** Reset the session ID to start a new conversation (clears history) */\n resetSession: () => void;\n \n /** Send a text message to the character */\n sendUserTextMessage: (text: string, options?: SendUserTextMessageOptions) => void;\n\n /** Return a correlated terminal result for a v2 client tool call. */\n sendActionResult: (result: ActionResult) => void;\n\n /**\n * Publish one correlated terminal result and wait for Core's matching\n * `server-response` acknowledgement.\n */\n sendActionResultAndWait: (\n result: ActionResult,\n options?: ActionResultAckOptions,\n ) => Promise<ActionResultAck>;\n \n /** \n * Send a trigger message to invoke specific character actions or responses.\n * @param triggerName - Name of the trigger to invoke\n * @param triggerMessage - Optional message to accompany the trigger\n */\n sendTriggerMessage: (triggerName?: string, triggerMessage?: string) => void;\n \n /**\n * Send an interrupt message to stop the bot's current response.\n * This can be used to interrupt the bot when the user wants to speak.\n */\n sendInterruptMessage: () => void;\n\n /**\n * Reset the server-side idle timer.\n * Call this on any user activity (clicks, UI interactions, etc.) to prevent\n * the session from being disconnected due to inactivity.\n * The server sends `user-idle-warning` events (via the `idleWarning` event) before\n * disconnecting; use this method to keep the session alive.\n */\n resetIdleTimer: () => void;\n \n /**\n * Replace the Narrative Design template keys on the live session.\n *\n * These are the same keys as the `narrativeTemplateKeys` config option\n * (which seeds them at `/connect`) — this method REPLACES the entire map\n * at runtime, so include every key you still need. New values apply when\n * the next section objective or speak tag is evaluated (i.e. set them\n * before firing the next narrative trigger).\n *\n * Requires a character with Narrative Design enabled; otherwise the server\n * acks `update-template-keys` with error \"Narrative design service not\n * available\". Placeholders use single braces (`{player_name}`), keys are\n * case-sensitive, and missing keys resolve to an empty string.\n *\n * @example\n * ```typescript\n * client.updateTemplateKeys({ player_name: 'Aria', quest_item: 'lantern' });\n * client.sendTriggerMessage('QuestUpdate');\n * ```\n */\n updateTemplateKeys: (templateKeys: { [key: string]: string }) => void;\n \n /** \n * Update dynamic information about the current context.\n * This helps the character understand the current situation.\n * Pass any key-value pairs you want, but \"text\" field is required.\n */\n updateDynamicInfo: (dynamicInfo: DynamicInfo) => void;\n \n /**\n * Update the bot's temporary runtime context in a unified way.\n * Provides flexible control over ephemeral context management.\n * \n * @param options - Context update configuration\n * \n * @example\n * ```typescript\n * // Append to context\n * client.updateContext({ \n * text: \"User completed quest\", \n * mode: \"append\",\n * run_llm: \"false\"\n * });\n * \n * // Replace context\n * client.updateContext({ \n * text: \"New game state\", \n * mode: \"replace\",\n * run_llm: \"auto\"\n * });\n * \n * // Clear context\n * client.updateContext({ mode: \"reset\" });\n * ```\n */\n updateContext: (options: ContextUpdateOptions) => void;\n\n /** Request a server ack containing the current vision buffer status. */\n visionStatus: (options?: VisionStatusOptions) => string | null;\n\n /** Attach buffered frames and optionally trigger a response. */\n visionTrigger: (options?: VisionTriggerOptions) => string | null;\n\n /** Update a session respond-mode default. */\n respondModeUpdate: (options: RespondModeUpdateOptions) => string | null;\n\n /**\n * Set or clear the character's temporary state of mind without triggering a response.\n * Pass `null` (or `\"neutral\"`) to clear it.\n */\n updateEmotion: (stateOfMind: string | null) => void;\n\n /**\n * Send descriptive scene updates so the bot knows what is visible or nearby.\n * Does not modify actionConfig.\n */\n updateSceneMetadata: (\n items: Array<{ name: string; description: string }>,\n options?: UpdateSceneMetadataOptions,\n ) => void;\n\n /**\n * Toggle text-to-speech on or off.\n * When disabled, character responses won't be spoken aloud.\n */\n toggleTts: (enabled: boolean) => void;\n \n /** \n * Toggle speech-to-text on or off.\n * When enabled, user speech is transcribed to text (e.g. for dictation).\n * When disabled, STT is off.\n */\n toggleStt: (enabled: boolean) => void;\n\n /**\n * Upload a file to the character via the LiveKit byte stream transport.\n * Only works when connected with the LiveKit transport.\n *\n * @param file - The File object to send\n * @param options - Optional upload options\n * @returns Promise that resolves when the upload is complete\n *\n * @example\n * ```typescript\n * await client.uploadFile(file, {\n * topic: 'file-upload',\n * onProgress: (pct) => console.log(`${pct}% uploaded`),\n * });\n * ```\n */\n uploadFile: (file: File, options?: UploadFileOptions) => Promise<void>;\n\n /**\n * Subscribe to an event\n * @param event Event name ('stateChange', 'message', 'connect', 'disconnect', 'error')\n * @param callback Callback function\n * @returns Unsubscribe function\n */\n on: <E extends string>(\n event: E,\n callback: ConvaiEventCallback<E>,\n ) => () => void;\n \n /**\n * Unsubscribe from an event\n * @param event Event name\n * @param callback Callback function to remove\n */\n off: <E extends string>(\n event: E,\n callback: ConvaiEventCallback<E>,\n ) => void;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAuBA;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,cAAc,EAAE,CAAC;IACjB,gBAAgB,EAAE,CAAC;IACnB,kBAAkB,EAAE,CAAC;IACrB,eAAe,EAAE,CAAC;IAClB,mBAAmB,EAAE,CAAC;IACtB,YAAY,EAAE,CAAC;IACf,cAAc,EAAE,CAAC;IACjB,YAAY,EAAE,CAAC;IACf,SAAS,EAAE,CAAC;IACZ,YAAY,EAAE,CAAC;CACP,CAAC;AAEX;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAA+B;IACxE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,oBAAoB,CAAC,cAAc;YACtC,OAAO,sCAAsC,CAAC;QAChD,KAAK,oBAAoB,CAAC,gBAAgB;YACxC,OAAO,mBAAmB,CAAC;QAC7B,KAAK,oBAAoB,CAAC,kBAAkB;YAC1C,OAAO,0CAA0C,CAAC;QACpD,KAAK,oBAAoB,CAAC,eAAe;YACvC,OAAO,yBAAyB,CAAC;QACnC,KAAK,oBAAoB,CAAC,mBAAmB;YAC3C,OAAO,kCAAkC,CAAC;QAC5C,KAAK,oBAAoB,CAAC,YAAY;YACpC,OAAO,+BAA+B,CAAC;QACzC,KAAK,oBAAoB,CAAC,cAAc;YACtC,OAAO,gBAAgB,CAAC;QAC1B,KAAK,oBAAoB,CAAC,YAAY;YACpC,OAAO,gBAAgB,CAAC;QAC1B,KAAK,oBAAoB,CAAC,SAAS;YACjC,OAAO,qCAAqC,CAAC;QAC/C,KAAK,oBAAoB,CAAC,YAAY;YACpC,OAAO,0BAA0B,CAAC;QACpC;YACE,OAAO,cAAc,CAAC;IAC1B,CAAC;AACH,CAAC","sourcesContent":["import { Room, DisconnectReason as LiveKitDisconnectReason } from 'livekit-client';\nimport { BlendshapeQueue } from './BlendshapeQueue';\n\n/**\n * LiveKit disconnect reasons.\n * Helps determine why a participant was disconnected from the room.\n * \n * These values map to LiveKit's DisconnectReason enum:\n * - UNKNOWN_REASON (0): Unknown disconnect reason\n * - CLIENT_INITIATED (1): Client called disconnect() - intentional disconnect\n * - DUPLICATE_IDENTITY (2): Another client with the same identity joined the room\n * - SERVER_SHUTDOWN (3): LiveKit server is shutting down\n * - PARTICIPANT_REMOVED (4): Participant was removed by RemoveParticipant API\n * - ROOM_DELETED (5): Room was ended via DeleteRoom API\n * - STATE_MISMATCH (6): State mismatch between client and server\n * - JOIN_FAILURE (7): Failed to join the room\n * - MIGRATION (8): Participant moved to a different room\n * - SIGNAL_CLOSE (9): Signal connection was closed\n * \n * @see https://docs.livekit.io/reference/client-sdk-js/enums/DisconnectReason.html\n */\nexport type DisconnectReason = LiveKitDisconnectReason;\n\n/**\n * Export LiveKit's DisconnectReason enum values for easy access\n */\nexport const DisconnectReasonEnum = {\n UNKNOWN_REASON: 0,\n CLIENT_INITIATED: 1,\n DUPLICATE_IDENTITY: 2,\n SERVER_SHUTDOWN: 3,\n PARTICIPANT_REMOVED: 4,\n ROOM_DELETED: 5,\n STATE_MISMATCH: 6,\n JOIN_FAILURE: 7,\n MIGRATION: 8,\n SIGNAL_CLOSE: 9,\n} as const;\n\n/**\n * Get a human-readable message for a disconnect reason.\n * \n * @param reason - The disconnect reason code from LiveKit\n * @returns A human-readable message describing the disconnect reason\n * \n * @example\n * ```typescript\n * client.on('disconnect', (reason) => {\n * console.log(getDisconnectReasonMessage(reason));\n * // Output: \"User disconnected\"\n * });\n * ```\n */\nexport function getDisconnectReasonMessage(reason: DisconnectReason | null): string {\n if (reason === null) {\n return 'Connected';\n }\n\n switch (reason) {\n case DisconnectReasonEnum.UNKNOWN_REASON:\n return 'Network unavailable or unknown cause';\n case DisconnectReasonEnum.CLIENT_INITIATED:\n return 'User disconnected';\n case DisconnectReasonEnum.DUPLICATE_IDENTITY:\n return 'Another client with same identity joined';\n case DisconnectReasonEnum.SERVER_SHUTDOWN:\n return 'Server is shutting down';\n case DisconnectReasonEnum.PARTICIPANT_REMOVED:\n return 'Removed by RemoveParticipant API';\n case DisconnectReasonEnum.ROOM_DELETED:\n return 'Room ended via DeleteRoom API';\n case DisconnectReasonEnum.STATE_MISMATCH:\n return 'State mismatch';\n case DisconnectReasonEnum.JOIN_FAILURE:\n return 'Failed to join';\n case DisconnectReasonEnum.MIGRATION:\n return 'Participant moved to different room';\n case DisconnectReasonEnum.SIGNAL_CLOSE:\n return 'Signal connection closed';\n default:\n return 'Disconnected';\n }\n}\n\n/**\n * Dynamic information structure for passing real-time context to the character.\n * Pass a text description of the current dynamic context.\n * \n * @example\n * ```typescript\n * const dynamicInfo = \"Player health is low, in combat mode\";\n * ```\n */\nexport type DynamicInfo = string;\n\n/**\n * Minimal contract that ConvaiClient and AudioManager require from a WebSocket\n * session implementation. Defined here so core has zero import dependency on\n * the pipecat packages — the concrete class lives in the vanilla/websocket subpath.\n */\nexport interface IWebSocketSession {\n readonly isConnected: boolean;\n connectWithUrl(wsUrl: string): Promise<void>;\n disconnect(): Promise<void>;\n sendMessage(type: string, data: unknown): void;\n enableMic(enable: boolean): void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n on(event: string, listener: (...args: any[]) => void): () => void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n off(event: string, listener: (...args: any[]) => void): void;\n}\n\n/**\n * Factory function signature used to register a WebSocket transport implementation\n * via {@link ConvaiClient.registerWebSocketTransport}. Import\n * `@convai/web-sdk/vanilla/websocket` (or `@convai/web-sdk/react/websocket`) as a\n * side-effect to register the default Pipecat-based implementation.\n */\nexport type WebSocketSessionFactory = (\n onMessage: (payload: Uint8Array) => void,\n enableMic: boolean,\n) => IWebSocketSession;\n\n/**\n * Options for {@link IConvaiClient.uploadFile}.\n *\n * Supported formats: JPEG, PNG, GIF, WebP. Maximum file size: 10 MB.\n * Files are sent as raw binary over the WebRTC byte stream — not base64 encoded.\n */\nexport interface UploadFileOptions {\n /** Server routing topic. Defaults to `'file-upload'`. */\n topic?: string;\n /**\n * Progress callback. Called with an integer percentage (0–100) as the upload proceeds.\n */\n onProgress?: (progressPercent: number) => void;\n}\n\n/** Options for {@link IConvaiClient.sendUserTextMessage}. */\nexport interface SendUserTextMessageOptions {\n /**\n * Client-owned identifier used to correlate every canonical v2 model-output\n * envelope produced for this user turn. The value must be non-empty and at\n * most 128 UTF-8 bytes. It is currently carried by LiveKit/WebRTC sessions.\n */\n logicalTurnId?: string;\n}\n\n/**\n * Extra data returned in a server-response for specific event types.\n */\nexport interface ServerResponseExtras {\n // context-update extras\n token_count?: number;\n static_token_count?: number;\n runtime_token_count?: number;\n max_tokens?: number;\n static_max_tokens?: number;\n runtime_max_tokens?: number;\n remaining_tokens?: number;\n /** Full retained runtime dynamic context text after the update */\n content?: string;\n // tts-toggle extras\n enabled?: boolean;\n // stt-toggle extras\n muted?: boolean;\n // trigger-message extras\n trigger_name?: string;\n has_speak_tag?: boolean;\n // user_text_message extras\n text?: string;\n // kill-pipeline extras\n room_name?: string;\n // unknown-message-type error extras\n supported_types?: string[];\n // vision-status / vision-trigger extras\n vision_buffer?: VisionBufferStatus;\n requested_respond_mode?: RespondMode;\n actual_respond_mode?: RespondMode;\n requested_run_llm?: \"true\" | \"false\" | \"auto\";\n actual_run_llm?: \"true\" | \"false\" | \"auto\";\n llm_triggered?: boolean;\n downgraded?: boolean;\n downgrade_reason?: string | null;\n interrupted?: boolean;\n vision_frames_attached?: number;\n vision_image_tokens_est?: number;\n vision_detail_level?: string | null;\n vision_attach_outcome?: string;\n vision_source_participant?: string | null;\n attached_frame_pts?: number[];\n frame_binding?: string;\n frame_binding_error?: string | null;\n requested_frame_indices?: [number, number] | number[] | null;\n requested_frame_ids?: number[] | null;\n frame_indices_clamped?: boolean;\n frame_ids_stale_exempt?: boolean;\n [key: string]: unknown;\n}\n\n/**\n * Acknowledgment sent by the server for every client-to-server message.\n * Analogous to an HTTP response: use `status` to check success/failure and\n * `extras` for event-specific data such as context token counts.\n *\n * @example\n * ```typescript\n * client.on('serverResponse', (response) => {\n * if (response.event_type === 'context-update') {\n * const { remaining_tokens, max_tokens } = response.extras ?? {};\n * console.log(`Tokens remaining: ${remaining_tokens} / ${max_tokens}`);\n * }\n * if (response.status === 'error') {\n * console.error('Server error:', response.message);\n * }\n * });\n * ```\n */\nexport interface ServerResponse {\n /** The original client message type that triggered this response */\n event_type: string;\n /** Processing status */\n status: 'success' | 'error' | 'processing' | 'pending';\n /** Human-readable description of the result */\n message: string | null;\n /** Additional event-specific data */\n extras: ServerResponseExtras | null;\n}\n\n/**\n * Emitted when the server assigns an interaction ID to the session.\n * Store the interactionId for analytics or session tracking.\n */\nexport interface InteractionCreated {\n /** Unique identifier for this interaction session */\n interactionId: string;\n /** Character session identifier */\n characterSessionId: string;\n}\n\n/**\n * A single action the character performs, emitted via the `actionResponse`\n * event. When `target` is present the action is *parameterized* (the character\n * acts on a specific object/character); simple actions (e.g. `\"Wave\"`) omit it.\n */\nexport interface ConvaiAction {\n /** Base action name, e.g. `\"Move To\"`, `\"Pick Up\"`, `\"Wave\"`. */\n name: string;\n /**\n * The object or character the action targets — must match a name from\n * `actionConfig.objects[]` / `actionConfig.characters[]`. Absent for simple\n * (non-parameterized) actions.\n */\n target?: string;\n}\n\nexport type JsonPrimitive = string | number | boolean | null;\nexport type JsonValue = JsonPrimitive | JsonObject | JsonValue[];\nexport interface JsonObject {\n [key: string]: JsonValue;\n}\n\n/** A client-executed tool declared for action protocol v2. */\nexport interface ClientToolDeclaration {\n name: string;\n description: string;\n inputSchema: JsonObject;\n}\n\n/** A correlated tool call selected by the model. */\nexport interface ConvaiToolCall extends ConvaiAction {\n kind: \"tool_call\";\n id: string;\n arguments: JsonObject;\n}\n\nexport interface ProtocolCapabilitiesConfig {\n /** Opt in to correlated client tool calls. Omitted connections remain v1. */\n actionProtocolVersion?: 1 | 2;\n /** Opt in to canonical typed model output. Omitted connections remain v1. */\n modelOutputVersion?: 1 | 2;\n /**\n * Select what Core streams through the existing `bot-llm-text` event.\n *\n * `\"raw\"` is an explicit opt-in to the complete user-visible provider output\n * before action/display parsing. Omit this field for the legacy filtered text\n * stream. `\"legacy\"` is available when an application needs to state that\n * choice explicitly.\n */\n botLlmTextMode?: \"legacy\" | \"raw\";\n}\n\nexport interface ModelOutputMessageItem {\n type: \"message\";\n role: \"assistant\";\n channel: \"final\" | \"commentary\";\n content: string;\n}\n\nexport interface ModelOutputEmotionItem {\n type: \"emotion\";\n name: string;\n scale: 1 | 2 | 3;\n}\n\nexport interface ModelOutputSemanticActionItem {\n type: \"semantic_action\";\n id: string;\n name: string;\n target?: string | null;\n}\n\nexport interface ModelOutputToolCallItem {\n type: \"tool_call\";\n id: string;\n name: string;\n target?: string | null;\n arguments: JsonObject;\n}\n\nexport interface ModelOutputExtensionItem {\n type: \"extension\";\n schema: string;\n version: number;\n payload: JsonObject;\n fallback?: string | null;\n}\n\nexport type ModelOutputItem =\n | ModelOutputMessageItem\n | ModelOutputEmotionItem\n | ModelOutputSemanticActionItem\n | ModelOutputToolCallItem\n | ModelOutputExtensionItem;\n\nexport interface ModelOutputMessage {\n type: \"model-output\";\n version: 2;\n output_id: string;\n /**\n * Stable identifier shared by every output envelope for one logical turn.\n * Present values are non-empty and at most 128 UTF-8 bytes.\n */\n logical_turn_id?: string;\n format:\n | \"text\"\n | \"convai-combined-json\"\n | \"semantic-actions-json\"\n | \"client-tool-calls-json\";\n /** Exact provider/runtime output for diagnostics. Never execute this field. */\n raw: string;\n /** Core-validated renderable and executable semantic items. */\n items: ModelOutputItem[];\n final: true;\n}\n\nexport interface ModelOutputProtocolError {\n code: \"invalid_model_output\";\n message: string;\n}\n\nexport interface ActionResult {\n id: string;\n status: \"completed\" | \"error\" | \"cancelled\";\n output?: JsonValue;\n error?: JsonValue;\n characterSessionId?: string;\n}\n\n/**\n * Payload of the `actionResponse` event. Actions execute sequentially; an\n * empty array is a valid \"no action\" turn.\n */\nexport interface ActionResponseEvent {\n actions: Array<ConvaiAction | ConvaiToolCall>;\n}\n\n/**\n * Options for updating the bot's temporary runtime context.\n * Provides flexible control over how context is managed during conversation.\n * \n * @example\n * ```typescript\n * // Append to existing context\n * client.updateContext({\n * text: \"User just completed dragon quest\",\n * mode: \"append\",\n * run_llm: \"false\"\n * });\n * \n * // Replace entire context\n * client.updateContext({\n * text: \"New game state: level 5, combat mode\",\n * mode: \"replace\",\n * run_llm: \"auto\"\n * });\n * \n * // Reset/clear context\n * client.updateContext({\n * mode: \"reset\"\n * });\n * ```\n */\nexport interface ContextUpdateOptions {\n /**\n * The context text to inject.\n * Required unless mode is \"reset\" or only current_attention_object is being updated.\n */\n text?: string;\n /**\n * How to apply the context:\n * - \"append\" (default): Add text to existing ephemeral context\n * - \"replace\": Replace existing ephemeral context with new text\n * - \"reset\": Clear ephemeral context; text is optional\n */\n mode?: \"append\" | \"replace\" | \"reset\";\n /**\n * Whether to trigger LLM response:\n * - \"true\": Always trigger a response from the bot and preempt active local playback\n * - \"false\": Never trigger a response\n * - \"auto\" (default): Server decides based on context without preempting active playback\n */\n run_llm?: \"true\" | \"false\" | \"auto\";\n /**\n * Optional respond-mode alias for backends that expose unified respond modes.\n * If `run_llm` is provided, it takes precedence.\n */\n respond_mode?: RespondMode;\n /**\n * The object the character should currently focus on.\n * Must match one of action_config.objects[].name.\n * Pass an empty string to clear current attention.\n */\n current_attention_object?: string;\n}\n\nexport type RespondMode = \"must_respond\" | \"auto\" | \"silent\";\n\nexport type RespondModality =\n | \"text\"\n | \"audio\"\n | \"vision\"\n | \"context_update\"\n | \"trigger\"\n | \"scene_metadata\";\n\nexport interface RespondModesConfig {\n text?: \"must_respond\";\n audio?: \"must_respond\";\n vision?: RespondMode;\n contextUpdate?: RespondMode;\n trigger?: RespondMode;\n sceneMetadata?: RespondMode;\n}\n\nexport interface VisionSamplingWindowConfig {\n count: number;\n intervalMs: number;\n}\n\nexport interface VisionInputConfig {\n /**\n * Enable unified vision context for this session.\n *\n * Defaults to true when enableVideo is true. Set false to keep the video\n * channel available while opting out of unified vision context.\n */\n enabled?: boolean;\n sampleIntervalSecs?: number;\n framesPerTurn?: number;\n bufferFrames?: number;\n samplingWindows?: VisionSamplingWindowConfig[];\n stalenessSeconds?: number;\n maxResolution?: number | null;\n replacePreviousVisionContext?: boolean;\n}\n\nexport interface VisionBufferStatus {\n enabled?: boolean;\n first_frame_pts?: number | null;\n last_frame_pts?: number | null;\n first_frame_index?: number | null;\n retained_frames?: number;\n buffer_frames?: number;\n frames_per_turn?: number;\n replace_previous_vision_context?: boolean;\n evicted_frames?: number;\n effective_fps?: number | null;\n selected_participant?: string | null;\n frames_admitted?: number;\n frames_dropped_foreign_source?: number;\n frames_dropped_inactive_source?: number;\n frames_dropped_rate_limited?: number;\n last_attach?: {\n vision_frames_attached?: number;\n vision_image_tokens_est?: number;\n vision_detail_level?: string | null;\n vision_attach_outcome?: string;\n vision_source_participant?: string | null;\n attached_frame_pts?: number[];\n };\n}\n\nexport interface VisionStatusOptions {\n updateId?: string;\n}\n\nexport interface VisionTriggerOptions {\n updateId?: string;\n text?: string;\n respondMode?: RespondMode;\n frameIndices?: [number, number];\n frameIds?: number[];\n}\n\nexport interface RespondModeUpdateOptions {\n updateId?: string;\n modality: RespondModality;\n mode: RespondMode;\n}\n\nexport interface UpdateSceneMetadataOptions {\n respondMode?: RespondMode;\n}\n\nexport type VisionSourceKind =\n | \"webcam\"\n | \"canvas\"\n | \"screen\"\n | \"custom\"\n // Backward-compatible aliases accepted by the existing SDK surface.\n | \"camera\"\n | \"screen_share\"\n | \"unknown\";\n\nexport interface VisionSourceState {\n active: boolean;\n source: VisionSourceKind | null;\n sourceName: string | null;\n trackState: MediaStreamTrackState | null;\n transport?: \"livekit\" | \"websocket\";\n reason?: string;\n}\n\nexport interface PublishCanvasOptions {\n fps?: number;\n name?: string;\n source?: VisionSourceKind;\n stopTrackOnUnpublish?: boolean;\n}\n\nexport interface PublishVideoTrackOptions {\n name?: string;\n source?: VisionSourceKind;\n /** WebSocket transport frame publish cadence. LiveKit publishes the track continuously. */\n fps?: number;\n stopTrackOnUnpublish?: boolean;\n}\n\nexport interface VisionSourceHandle {\n track: MediaStreamTrack;\n publication?: unknown;\n transport?: \"livekit\" | \"websocket\";\n sourceName: string;\n source: VisionSourceKind;\n stopTrackOnUnpublish: boolean;\n unpublish: () => Promise<void>;\n cleanup?: () => void;\n}\n\n/**\n * Audio processing settings for the microphone input.\n * These settings help optimize the audio quality and reduce interruptions.\n * @internal - This is a fixed configuration and should not be modified by users\n */\nexport interface AudioSettings {\n /** Enable echo cancellation to prevent audio feedback (default: true) */\n echoCancellation?: boolean;\n /** Enable noise suppression to reduce background noise (default: true) */\n noiseSuppression?: boolean;\n /** Enable automatic gain control for consistent volume (default: true) */\n autoGainControl?: boolean;\n /** Audio sample rate in Hz (default: 48000) */\n sampleRate?: number;\n /** Number of audio channels, 1 for mono, 2 for stereo (default: 1) */\n channelCount?: number;\n}\n\n/**\n * Configuration object for connecting to a Convai character.\n * \n * @example\n * ```typescript\n * const config: ConvaiConfig = {\n * apiKey: 'your-api-key',\n * characterId: 'your-character-id',\n * endUserId: 'user-uuid', // Optional: enables long-term memory and analytics\n * enableVideo: false, // If false, connection_type will be \"audio\"\n * };\n * ```\n */\nexport interface ConvaiConfig {\n /** Your Convai API key or Auth Token (at least one is required) */\n apiKey?: string;\n authToken?: string;\n /** The Character ID to connect to (required) */\n characterId: string;\n /** Temporary character state of mind sent as `state_of_mind` on connect. */\n stateOfMind?: string | null;\n /**\n * Stable identifier for the end user (optional).\n *\n * Any non-empty string is accepted. Use a value that uniquely identifies the\n * user across sessions — a UUID or email address are the most common choices:\n *\n * ```ts\n * endUserId: 'a1b2c3d4-...' // UUID (preferred)\n * endUserId: 'user@example.com' // email\n * endUserId: 'device-fingerprint' // any stable unique string\n * ```\n *\n * When provided:\n * - Enables long-term memory: character remembers context from previous sessions\n * - Enables per-user analytics and engagement tracking\n *\n * When omitted the session is anonymous — no memory, no cross-session tracking.\n */\n endUserId?: string;\n /** Optional metadata object for the end user (sent as end_user_metadata to the API) */\n endUserMetadata?: Record<string, unknown>;\n /** Custom Convai API URL (optional, defaults to production endpoint) */\n url?: string;\n /** Transport layer to use. Default: \"livekit\". Use \"websocket\" for Pipecat WebSocket transport. */\n transport?: \"livekit\" | \"websocket\";\n /** Explicit protocol opt-ins. Omit to preserve the legacy v1 wire contract. */\n capabilities?: ProtocolCapabilitiesConfig;\n /**\n * Character session ID (optional). Pass to resume an existing session;\n * otherwise populated from the connect API response after first connection.\n */\n characterSessionId?: string;\n /** \n * Enable video capability (default: false).\n * If true, connection_type will be \"video\" (supports audio, video, and screenshare).\n * If false, connection_type will be \"audio\" (audio only).\n */\n enableVideo?: boolean;\n /** \n * Start with video camera on when connecting (default: false).\n * Only works if enableVideo is true. If false, camera stays off until user enables it.\n */\n startWithVideoOn?: boolean;\n /** \n * Start with microphone on when connecting (default: false).\n * If false, microphone stays off until user enables it using audioControls.enableAudio().\n * Useful for text-only modes where you want to defer microphone permission until voice mode.\n */\n startWithAudioOn?: boolean;\n /**\n * Dynamic vision context controls for discrete vision-capable backends.\n * Defaults to enabled when enableVideo=true. Set\n * visionInputConfig.enabled=false to opt out while keeping the video channel.\n */\n visionInputConfig?: VisionInputConfig;\n /** Connect-time respond-mode defaults by modality. */\n respondModes?: RespondModesConfig;\n /** Enable text-to-speech audio generation (default: true) */\n ttsEnabled?: boolean;\n /** \n * Enable lipsync/facial animation blendshapes (default: false).\n * When true, sets blendshape_provider to \"neurosync\".\n * When false, sets blendshape_provider to \"none\" (no facial animation data).\n */\n enableLipsync?: boolean;\n /** Enable emotion detection and bot-emotion updates (default: false) */\n enableEmotion?: boolean;\n /** Blendshape configuration for facial animation format */\n blendshapeConfig?: {\n /** Format of blendshapes: \"arkit\" or \"mha\" (Meta Human Animation, default: \"mha\") */\n format?: \"arkit\" | \"mha\";\n /** \n * Custom mapper function to transform incoming blendshapes.\n * Use this to map Convai blendshapes to your character's morph targets.\n * The function receives the raw blendshape array and should return a Float32Array.\n * \n * @example\n * ```typescript\n * import { createARKitNameMapper } from '@convai/web-sdk/lipsync-helpers';\n * \n * const mapper = createARKitNameMapper({\n * 'Character__Mouth_Open': ['Jaw_Open'],\n * 'Character__EyeL_Blink': ['Eye_Blink_L'],\n * }, 'optimized');\n * \n * const config = {\n * blendshapeConfig: {\n * format: 'arkit',\n * customMapper: mapper,\n * }\n * };\n * ```\n */\n customMapper?: (input: number[] | Float32Array) => Float32Array;\n /** \n * Buffer duration for blendshape frames in seconds (default: 1).\n * Controls how much time the server should wait after generating blendshapes before playing the audio.\n */\n frames_buffer_duration?: number;\n /**\n * Enable server ahead-delivery for NeuroSync chunks.\n *\n * Defaults to `true` when `enableLipsync` is on. The server may send\n * indexed blendshape chunks before audio playback, so use the SDK\n * BlendshapeQueue/player path, which handles owner-scoped cancellation and\n * buffered-frame drops on interruption.\n *\n * Set `false` to fall back to the legacy paced delivery path.\n */\n deliver_chunks_ahead?: boolean;\n /**\n * Requested ahead-delivery blendshape timeline FPS.\n * Applies to the ahead-delivery path, where chunks carry fps\n * metadata for the SDK player. The legacy paced path keeps its fixed 90fps\n * delivery cadence for backward compatibility while SDK playback remains on\n * the normal visual timeline.\n */\n output_fps?: number;\n };\n /** Emotion configuration for character emotional state (sent to server on connect) */\n emotionConfig?:\n | {\n /** LLM-based emotion detection — infers emotion from response context (default) */\n provider: \"llm\";\n }\n | {\n /** NRCLex word-level lexicon lookup */\n provider: \"nrclex\";\n /** Minimum word threshold for emotion detection */\n min_word_threshold?: number;\n /** Low intensity threshold (0–1) */\n low_intensity_threshold?: number;\n /** High intensity threshold (0–1) */\n high_intensity_threshold?: number;\n };\n /** Configuration for character actions and environmental context */\n actionConfig?: {\n /** List of action names the character can perform */\n actions: string[];\n /** Other characters present in the scene or conversation */\n characters: Array<{\n /** Character name */\n name: string;\n /** Character biography or description */\n bio: string;\n }>;\n /** Objects available in the scene or environment */\n objects: Array<{\n /** Object name */\n name: string;\n /** Object description or properties */\n description: string;\n }>;\n /** Name of the object the character is currently focused on. Must match one of objects[].name. */\n current_attention_object?: string;\n /** Client-executed tools available only when action protocol v2 is selected. */\n tools?: ClientToolDeclaration[];\n };\n /** \n * Dynamic contextual information about the current situation.\n * This can be updated during the conversation to provide real-time context.\n * Use the DynamicInfo type to pass flexible key-value pairs with a required \"text\" field.\n */\n dynamicInfo?: DynamicInfo;\n /**\n * Template key values for Narrative Design placeholder substitution,\n * sent as `narrative_template_keys` in the /connect request.\n *\n * Narrative Design section objectives and speak tags may contain\n * placeholders such as `{player_name}` or `{quest_item}`; they are replaced\n * with these values when the section is evaluated, so one narrative graph\n * can serve many personalized sessions. Keys are case-sensitive; missing\n * keys resolve to an empty string.\n *\n * To change the keys mid-session, call `updateTemplateKeys()` — it replaces\n * this same map at runtime (before the next trigger fires).\n *\n * @example\n * ```typescript\n * const client = new ConvaiClient({\n * apiKey: 'your-api-key',\n * characterId: 'your-character-id',\n * narrativeTemplateKeys: {\n * player_name: 'Alex',\n * location: 'Engineering Deck',\n * quest_item: 'oxygen generator',\n * },\n * });\n * ```\n */\n narrativeTemplateKeys?: Record<string, string>;\n /**\n * Keep dynamic info in context as a static prompt (default: false).\n * \n * When true:\n * - Dynamic info behaves as a static prompt sent to the LLM for that WebRTC connection\n * - Dynamic info persists throughout the session\n * - You need to set it again after disconnecting/reconnecting\n * \n * When false:\n * - Allows resetting and updating via updateContext() or updateDynamicInfo()\n * - Dynamic info can be changed during the session\n */\n keepInContext?: boolean;\n /** \n * Enable debug mode for additional logging and diagnostics (default: false).\n */\n debug?: boolean;\n /**\n * Log decoded RTVI data messages to the browser console (default: true).\n * Set to false to silence incoming and outgoing RTVI message logs.\n */\n logRtviMessages?: boolean;\n /** \n * Metadata about the invocation source and client information.\n * Used for analytics and debugging purposes.\n */\n invocationMetadata?: {\n /** Source of the invocation (e.g., \"web\", \"mobile\", \"unity\") */\n source?: string;\n /** Client SDK version */\n clientVersion?: string;\n /** Additional custom metadata */\n extraMetadata?: Record<string, unknown>;\n };\n}\n\n/** Options for connecting to a published text-chat session. */\nexport interface PublishedChatConnectOptions {\n /** Core API origin (defaults to the production realtime API). */\n url?: string;\n /** Cancels the grant exchange and tears down an in-progress connection. */\n signal?: AbortSignal;\n /**\n * Idempotency key for one logical connect. Reuse it only when retrying the\n * same launch token. The SDK generates one when this is omitted.\n */\n connectAttemptId?: string;\n}\n\n/**\n * Represents a single message in the chat conversation.\n * Different message types are used for various parts of the conversation flow.\n */\nexport interface ChatMessage {\n /** Unique identifier for the message */\n id: string;\n /**\n * Client-owned logical turn id for a correlated v2 voice transcription.\n * Absent for legacy sessions and uncorrelated messages.\n */\n logicalTurnId?: string;\n /** \n * Type of message:\n * - `user`: User's sent message\n * - `convai`: Character's response\n * - `user-transcription`: Real-time speech-to-text from user\n * - `bot-llm-text`: Character's LLM-generated text (token-by-token streaming)\n * - `bot-output`: Aggregated bot output (sentence/word-level chunks with spoken status)\n * - `emotion`: Character's emotional state\n * - `behavior-tree`: Behavior tree response\n * - `action`: Action execution\n * - `bot-emotion`: Bot emotional response\n * - `user-llm-text`: User text processed by LLM\n * - `interrupt-bot`: Interrupt the bot's current response\n * - `idle-warning`: Server idle-timeout warning; `content` holds remaining seconds as a numeric string (e.g. `\"45\"`)\n * - `llm-no-response`: LLM deliberately did not respond (abstain); `content` is always `\"\"`\n */\n type: 'user' | 'convai' | 'emotion' | 'behavior-tree' | 'action' | 'user-transcription' | 'bot-llm-text' | 'bot-output' | 'bot-emotion' | 'user-llm-text' | 'interrupt-bot' | 'idle-warning' | 'llm-no-response';\n /** The text content of the message */\n content: string;\n /** ISO timestamp string of when the message was created */\n timestamp: string;\n /** Whether this message is still streaming (mutable); false when finalized */\n isStreaming?: boolean;\n}\n\n/**\n * Represents a single metrics event from the server.\n * Multiple metrics may be received during a conversation.\n */\nexport interface ConvaiMetrics {\n /** Raw metrics data from the server */\n data: Record<string, unknown>;\n /** Timestamp when the metrics were received */\n timestamp: string;\n /** Unique identifier for this metrics event */\n id: string;\n}\n\n/**\n * Represents the current state of the Convai client connection and activity.\n * Use this to provide UI feedback about the conversation state.\n * \n * @example\n * ```typescript\n * const { state } = convaiClient;\n * \n * if (state.isConnected) {\n * console.log('Connected to character');\n * }\n * \n * if (state.isSpeaking) {\n * console.log('Character is speaking');\n * }\n * \n * // Or use the combined state\n * console.log(state.agentState); // 'listening' | 'thinking' | 'speaking'\n * \n * // Access end user information\n * console.log(state.endUserId); // 'user@example.com'\n * console.log(state.endUserMetadata); // { name: 'John', age: '30' }\n * \n * // Access metrics for the current conversation\n * console.log(state.metrics); // Array of metrics events\n * \n * // Check disconnect reason\n * if (state.disconnectReason !== null) {\n * console.log('Disconnected due to:', state.disconnectReason);\n * }\n * ```\n */\nexport interface ConvaiClientState {\n /** Whether the client is currently connected to Convai */\n isConnected: boolean;\n /** Whether a connection attempt is in progress */\n isConnecting: boolean;\n /** True from user-started-speaking until user-stopped-speaking (user is speaking, bot is listening). Priority below isSpeaking. */\n isListening: boolean;\n /** Whether the character is processing/thinking about a response */\n isThinking: boolean;\n /** Whether the character is currently speaking */\n isSpeaking: boolean;\n /** \n * Combined state indicator for the character's current activity.\n * Priority: speaking > listening (user speaking) > thinking > connected.\n */\n agentState: 'disconnected' | 'connected' | 'listening' | 'thinking' | 'speaking';\n /** Current bot emotion (name and optional scale). Updated when bot-emotion messages are received. */\n emotion: { emotion: string; scale?: number } | null;\n /** \n * End user ID returned from the connection response.\n * This is the actual end user ID used by the server (may differ from the one provided in config).\n */\n endUserId: string | null;\n /** \n * End user metadata returned from the connection response.\n * Contains additional information about the end user.\n */\n endUserMetadata: Record<string, unknown> | null;\n /** \n * Array of metrics events received during the current session.\n * Multiple metrics may be received per conversation.\n * Clears when resetSession() is called.\n */\n metrics: ConvaiMetrics[];\n /** \n * Disconnect reason from LiveKit when disconnected.\n * null when connected, otherwise contains the reason code.\n * Use this to differentiate between client-initiated disconnects and network/server issues.\n * \n * Notable reasons:\n * - CLIENT_INITIATED (1): User disconnected intentionally\n * - DUPLICATE_IDENTITY (2): Another client with same identity joined\n * - SERVER_SHUTDOWN (3): Server shutting down\n * - PARTICIPANT_REMOVED (4): Removed by API\n * - ROOM_DELETED (5): Room was ended\n * \n * Non-CLIENT_INITIATED reasons may indicate network disruptions where reconnection is appropriate.\n * \n * @see DisconnectReason\n */\n disconnectReason: DisconnectReason | null;\n}\n\n/**\n * Audio control interface for managing microphone\n */\nexport interface AudioControls {\n isAudioEnabled: boolean;\n isAudioMuted: boolean;\n audioLevel: number;\n enableAudio: () => Promise<void>;\n disableAudio: () => Promise<void>;\n muteAudio: () => Promise<void>;\n unmuteAudio: () => Promise<void>;\n toggleAudio: () => Promise<void>;\n setAudioDevice: (deviceId: string) => Promise<void>;\n getAudioDevices: () => Promise<MediaDeviceInfo[]>;\n startAudioLevelMonitoring: () => void;\n stopAudioLevelMonitoring: () => void;\n // EventEmitter methods for React integration\n on: (event: string, callback: (...args: any[]) => void) => () => void;\n off: (event: string, callback: (...args: any[]) => void) => void;\n}\n\n/**\n * Video control interface for managing camera\n */\nexport interface VideoControls {\n isVideoEnabled: boolean;\n isVideoHidden: boolean;\n activeVisionSource: VisionSourceHandle | null;\n hasActiveVisionSource: boolean;\n visionSourceState: VisionSourceState;\n enableVideo: () => Promise<void>;\n disableVideo: () => Promise<void>;\n hideVideo: () => Promise<void>;\n showVideo: () => Promise<void>;\n toggleVideo: () => Promise<void>;\n setVideoDevice: (deviceId: string) => Promise<void>;\n getVideoDevices: () => Promise<MediaDeviceInfo[]>;\n setVideoQuality: (quality: 'low' | 'medium' | 'high') => Promise<void>;\n publishCanvas: (\n canvas: HTMLCanvasElement,\n options?: PublishCanvasOptions,\n ) => Promise<VisionSourceHandle>;\n publishVideoTrack: (\n track: MediaStreamTrack,\n options?: PublishVideoTrackOptions,\n ) => Promise<VisionSourceHandle>;\n unpublishVisionSource: (\n source?: VisionSourceHandle | MediaStreamTrack,\n ) => Promise<void>;\n // EventEmitter methods for React integration\n on: (event: string, callback: (...args: any[]) => void) => () => void;\n off: (event: string, callback: (...args: any[]) => void) => void;\n}\n\n/**\n * Screen share control interface\n */\nexport interface ScreenShareControls {\n isScreenShareEnabled: boolean;\n isScreenShareActive: boolean;\n enableScreenShare: () => Promise<void>;\n disableScreenShare: () => Promise<void>;\n toggleScreenShare: () => Promise<void>;\n enableScreenShareWithAudio: () => Promise<void>;\n getScreenShareTracks: () => Promise<any[]>;\n // EventEmitter methods for React integration\n on: (event: string, callback: (...args: any[]) => void) => () => void;\n off: (event: string, callback: (...args: any[]) => void) => void;\n}\n\n/**\n * Main Convai client interface.\n * Provides complete control over Convai character connections and interactions.\n * \n * @example\n * ```typescript\n * import { ConvaiClient } from '@convai/web-sdk/core';\n * \n * const client = new ConvaiClient();\n * \n * // Connect to character\n * await client.connect({\n * apiKey: 'your-api-key',\n * characterId: 'your-character-id',\n * endUserId: '-1' // Dev mode\n * });\n * \n * // Send a message\n * client.sendUserTextMessage('Hello!');\n * \n * // Listen for state changes\n * client.on('stateChange', (state) => {\n * console.log('State:', state);\n * });\n * \n * // Listen for messages\n * client.on('message', (message) => {\n * console.log('New message:', message);\n * });\n * ```\n */\n/**\n * Memory API Types\n * Types for Convai's long-term memory management APIs\n */\n\n/**\n * Memory object returned from the API\n */\nexport interface Memory {\n /** Unique memory identifier (UUID) */\n id: string;\n /** Memory text content */\n memory: string;\n /** ISO timestamp when the memory was created */\n created_at: string;\n /** ISO timestamp when the memory was last updated */\n updated_at: string;\n}\n\n/**\n * Memory event object from add operation\n */\nexport interface MemoryAddEvent {\n /** Memory identifier */\n id: string;\n /** Event type (always \"ADD\" for add operations) */\n event: 'ADD';\n /** Memory text content */\n memory: string;\n}\n\n/**\n * Request to add memories\n */\nexport interface MemoryAddRequest {\n /** Character UUID */\n character_id: string;\n /** End user identifier */\n end_user_id: string;\n /** Array of memory strings to add */\n memories: string[];\n}\n\n/**\n * Response from add memories operation\n */\nexport interface MemoryAddResponse {\n /** Array of added memories with their IDs */\n memories: MemoryAddEvent[];\n}\n\n/**\n * Request to list memories with pagination\n */\nexport interface MemoryListRequest {\n /** Character UUID */\n character_id: string;\n /** End user identifier */\n end_user_id: string;\n /** Page number (default: 1, clamped to 1-1000) */\n page?: number;\n /** Number of memories per page (default: 50, clamped to 1-100) */\n page_size?: number;\n}\n\n/**\n * Response from list memories operation\n */\nexport interface MemoryListResponse {\n /** Array of memories */\n memories: Memory[];\n /** Total count of memories for this character/user pair */\n total_count: number;\n /** Current page number */\n page: number;\n /** Number of memories per page */\n page_size: number;\n /** Whether there are more pages available */\n has_more: boolean;\n}\n\n/**\n * Request to get a single memory\n */\nexport interface MemoryGetRequest {\n /** Character UUID */\n character_id: string;\n /** End user identifier */\n end_user_id: string;\n /** Memory UUID to fetch */\n memory_id: string;\n}\n\n/**\n * Response from get memory operation\n */\nexport type MemoryGetResponse = Memory;\n\n/**\n * Request to delete a memory\n */\nexport interface MemoryDeleteRequest {\n /** Character UUID */\n character_id: string;\n /** End user identifier */\n end_user_id: string;\n /** Memory UUID to delete */\n memory_id: string;\n}\n\n/**\n * Response from delete memory operation\n */\nexport interface MemoryDeleteResponse {\n /** Success message */\n message: string;\n /** Memory ID that was deleted */\n memory_id: string;\n /** Whether the memory was successfully deleted */\n deleted: boolean;\n}\n\n/**\n * Request to delete all memories\n */\nexport interface MemoryDeleteAllRequest {\n /** Character UUID */\n character_id: string;\n /** End user identifier */\n end_user_id: string;\n}\n\n/**\n * Response from delete all memories operation\n */\nexport interface MemoryDeleteAllResponse {\n /** Status message (deletion is asynchronous) */\n message: string;\n /** Character ID for which memories are being deleted */\n character_id: string;\n /** End user ID for which memories are being deleted */\n end_user_id: string;\n}\n\n/**\n * Error response from Memory API\n */\nexport interface MemoryError {\n /** Error message */\n ERROR: string;\n /** Transaction reference ID for debugging */\n 'Reference ID': string;\n}\n\nexport interface IConvaiClient {\n /** Current connection and activity state of the client */\n readonly state: ConvaiClientState;\n \n /** \n * Connection type: \"text\" (no local media), \"audio\" (audio only), or\n * \"video\" (audio + video + screenshare).\n */\n readonly connectionType: 'audio' | 'video' | 'text' | null;\n\n /** Whether this client was last connected through a single-use publication grant. */\n readonly isPublishedChatSession?: boolean;\n \n /** API key used for the current connection, if apiKey was used (null otherwise) */\n readonly apiKey?: string | null;\n\n /** Auth token used for the current connection, if authToken was used (null otherwise) */\n readonly authToken?: string | null;\n\n /** Character ID used for the current connection (null if not connected) */\n readonly characterId: string | null;\n \n /** Internal LiveKit Room instance (for advanced usage) */\n readonly room: Room;\n \n /** Array of all chat messages in the current conversation */\n readonly chatMessages: ChatMessage[];\n \n /** Current real-time transcription of user speech */\n readonly userTranscription: string;\n \n /** Unique session ID for the current character conversation */\n readonly characterSessionId: string | null;\n\n /** Server trace ID for the most recent connection request, when provided. */\n readonly requestTraceId?: string | null;\n \n /** Whether the bot is ready to receive messages (true after bot-ready message) */\n readonly isBotReady: boolean;\n \n /** Audio control methods for managing microphone mute/unmute */\n readonly audioControls: AudioControls;\n \n /** Video control methods for enabling/disabling camera */\n readonly videoControls: VideoControls;\n \n /** Screen sharing control methods */\n readonly screenShareControls: ScreenShareControls;\n \n /** Blendshape queue for time-based lipsync synchronization */\n readonly blendshapeQueue: BlendshapeQueue;\n \n /** Incremental turn session ID used by conversation events (e.g. conversationStart, turnEnd) */\n readonly conversationSessionId: number;\n \n /** \n * Memory manager for long-term memory operations.\n * Returns null if no API key or end user ID is available.\n * \n * @example\n * ```typescript\n * const memoryManager = client.memoryManager;\n * if (memoryManager) {\n * const memories = await memoryManager.listMemories();\n * }\n * ```\n */\n readonly memoryManager: import('./MemoryManager').MemoryManager | null;\n \n /** \n * Connect to a Convai character.\n */\n connect: (config?: ConvaiConfig) => Promise<void>;\n\n /** Connect to a published text chat with a short-lived, single-use grant. */\n connectWithPublicationGrant?: (\n launchToken: string,\n options?: PublishedChatConnectOptions,\n ) => Promise<void>;\n \n /** Disconnect from the current character session */\n disconnect: () => Promise<void>;\n \n /** Reconnect - disconnect and connect again using stored config */\n reconnect: () => Promise<void>;\n \n /** Reset the session ID to start a new conversation (clears history) */\n resetSession: () => void;\n \n /** Send a text message to the character, optionally with a v2 turn id. */\n sendUserTextMessage: (\n text: string,\n options?: SendUserTextMessageOptions,\n ) => void;\n\n /** Return a correlated terminal result for a v2 client tool call. */\n sendActionResult: (result: ActionResult) => void;\n \n /** \n * Send a trigger message to invoke specific character actions or responses.\n * @param triggerName - Name of the trigger to invoke\n * @param triggerMessage - Optional message to accompany the trigger\n */\n sendTriggerMessage: (triggerName?: string, triggerMessage?: string) => void;\n \n /**\n * Send an interrupt message to stop the bot's current response.\n * This can be used to interrupt the bot when the user wants to speak.\n */\n sendInterruptMessage: () => void;\n\n /**\n * Reset the server-side idle timer.\n * Call this on any user activity (clicks, UI interactions, etc.) to prevent\n * the session from being disconnected due to inactivity.\n * The server sends `user-idle-warning` events (via the `idleWarning` event) before\n * disconnecting; use this method to keep the session alive.\n */\n resetIdleTimer: () => void;\n \n /**\n * Replace the Narrative Design template keys on the live session.\n *\n * These are the same keys as the `narrativeTemplateKeys` config option\n * (which seeds them at `/connect`) — this method REPLACES the entire map\n * at runtime, so include every key you still need. New values apply when\n * the next section objective or speak tag is evaluated (i.e. set them\n * before firing the next narrative trigger).\n *\n * Requires a character with Narrative Design enabled; otherwise the server\n * acks `update-template-keys` with error \"Narrative design service not\n * available\". Placeholders use single braces (`{player_name}`), keys are\n * case-sensitive, and missing keys resolve to an empty string.\n *\n * @example\n * ```typescript\n * client.updateTemplateKeys({ player_name: 'Aria', quest_item: 'lantern' });\n * client.sendTriggerMessage('QuestUpdate');\n * ```\n */\n updateTemplateKeys: (templateKeys: { [key: string]: string }) => void;\n \n /** \n * Update dynamic information about the current context.\n * This helps the character understand the current situation.\n * Pass any key-value pairs you want, but \"text\" field is required.\n */\n updateDynamicInfo: (dynamicInfo: DynamicInfo) => void;\n \n /**\n * Update the bot's temporary runtime context in a unified way.\n * Provides flexible control over ephemeral context management.\n * \n * @param options - Context update configuration\n * \n * @example\n * ```typescript\n * // Append to context\n * client.updateContext({ \n * text: \"User completed quest\", \n * mode: \"append\",\n * run_llm: \"false\"\n * });\n * \n * // Replace context\n * client.updateContext({ \n * text: \"New game state\", \n * mode: \"replace\",\n * run_llm: \"auto\"\n * });\n * \n * // Clear context\n * client.updateContext({ mode: \"reset\" });\n * ```\n */\n updateContext: (options: ContextUpdateOptions) => void;\n\n /** Request a server ack containing the current vision buffer status. */\n visionStatus: (options?: VisionStatusOptions) => string | null;\n\n /** Attach buffered frames and optionally trigger a response. */\n visionTrigger: (options?: VisionTriggerOptions) => string | null;\n\n /** Update a session respond-mode default. */\n respondModeUpdate: (options: RespondModeUpdateOptions) => string | null;\n\n /**\n * Set or clear the character's temporary state of mind without triggering a response.\n * Pass `null` (or `\"neutral\"`) to clear it.\n */\n updateEmotion: (stateOfMind: string | null) => void;\n\n /**\n * Send descriptive scene updates so the bot knows what is visible or nearby.\n * Does not modify actionConfig.\n */\n updateSceneMetadata: (\n items: Array<{ name: string; description: string }>,\n options?: UpdateSceneMetadataOptions,\n ) => void;\n\n /**\n * Toggle text-to-speech on or off.\n * When disabled, character responses won't be spoken aloud.\n */\n toggleTts: (enabled: boolean) => void;\n \n /** \n * Toggle speech-to-text on or off.\n * When enabled, user speech is transcribed to text (e.g. for dictation).\n * When disabled, STT is off.\n */\n toggleStt: (enabled: boolean) => void;\n\n /**\n * Upload a file to the character via the LiveKit byte stream transport.\n * Only works when connected with the LiveKit transport.\n *\n * @param file - The File object to send\n * @param options - Optional upload options\n * @returns Promise that resolves when the upload is complete\n *\n * @example\n * ```typescript\n * await client.uploadFile(file, {\n * topic: 'file-upload',\n * onProgress: (pct) => console.log(`${pct}% uploaded`),\n * });\n * ```\n */\n uploadFile: (file: File, options?: UploadFileOptions) => Promise<void>;\n\n /**\n * Subscribe to an event\n * @param event Event name ('stateChange', 'message', 'connect', 'disconnect', 'error')\n * @param callback Callback function\n * @returns Unsubscribe function\n */\n on: (event: string, callback: (...args: any[]) => void) => () => void;\n \n /**\n * Unsubscribe from an event\n * @param event Event name\n * @param callback Callback function to remove\n */\n off: (event: string, callback: (...args: any[]) => void) => void;\n}\n"]}
|
|
@@ -7,11 +7,6 @@ export declare class ConvaiChatElement extends HTMLElement {
|
|
|
7
7
|
private messages;
|
|
8
8
|
private descriptor;
|
|
9
9
|
private failureReported;
|
|
10
|
-
/** A session that could still produce a reply: set when the client is wired
|
|
11
|
-
* up, cleared when it ends. Not a wait flag — see `isAwaitingReply()`. */
|
|
12
|
-
private sessionLive;
|
|
13
|
-
private sessionId;
|
|
14
|
-
private retryVisible;
|
|
15
10
|
connectedCallback(): void;
|
|
16
11
|
disconnectedCallback(): void;
|
|
17
12
|
private requireAttribute;
|
|
@@ -19,83 +14,12 @@ export declare class ConvaiChatElement extends HTMLElement {
|
|
|
19
14
|
private start;
|
|
20
15
|
private fail;
|
|
21
16
|
private cleanupClient;
|
|
22
|
-
/**
|
|
23
|
-
* A host that already knows who the character is can seed the header through
|
|
24
|
-
* `display-name` and `image-url`, so the identity paints before the
|
|
25
|
-
* publication descriptor resolves. The fetched descriptor always wins.
|
|
26
|
-
*/
|
|
27
|
-
private displayName;
|
|
28
|
-
/** `null` is a valid descriptor value, so a loaded descriptor without an
|
|
29
|
-
* image clears the seed rather than falling back to it. */
|
|
30
|
-
private imageUrl;
|
|
31
17
|
private renderDescriptor;
|
|
32
|
-
/**
|
|
33
|
-
* The character's own avatar, reused as the icon beside each of its replies.
|
|
34
|
-
* Without an image this is the character's initial on the accent disc, not a
|
|
35
|
-
* bare `<img>` — which the avatar rule would paint as an empty disc.
|
|
36
|
-
*/
|
|
37
|
-
private avatarElement;
|
|
38
|
-
/**
|
|
39
|
-
* Whether the character owes a reply that has produced no text yet — the
|
|
40
|
-
* question the typing indicator asks.
|
|
41
|
-
*
|
|
42
|
-
* Derived from the message list on every render rather than tracked as
|
|
43
|
-
* state, because the list already records every event that starts or ends a
|
|
44
|
-
* wait: a send appends a `user-llm-text` row synchronously
|
|
45
|
-
* (`MessageHandler.addUserTextMessage`), a turn begins as an empty
|
|
46
|
-
* `bot-llm-text` row (`bot-llm-started`), the first token fills that row,
|
|
47
|
-
* and an abstain appends `llm-no-response`. Held as flags instead, each of
|
|
48
|
-
* those events needed its own handler and every one I missed was a bug:
|
|
49
|
-
* dots through an entire reply, no dots for a character-initiated greeting
|
|
50
|
-
* or a follow-up turn, dots forever after an abstain.
|
|
51
|
-
*
|
|
52
|
-
* The scan reads the unfiltered list: the rows that mark a turn's start and
|
|
53
|
-
* its abstain are exactly the ones the transcript hides. An empty bot row
|
|
54
|
-
* means the turn is open only while it is still streaming — `bot-llm-stopped`
|
|
55
|
-
* finalizes the row in place, so an empty finalized row is a turn that ended
|
|
56
|
-
* without text (an interrupt, or a stop before the first token).
|
|
57
|
-
*/
|
|
58
|
-
private isAwaitingReply;
|
|
59
|
-
/**
|
|
60
|
-
* Close the open turn in this element's own copy of the transcript.
|
|
61
|
-
*
|
|
62
|
-
* `sendInterruptMessage()` transmits the interrupt; it does not finalize the
|
|
63
|
-
* empty streaming row, which stays open until a `bot-llm-stopped` frame
|
|
64
|
-
* arrives — delayed, or never, if the acknowledgement is lost. The visitor
|
|
65
|
-
* asked the character to stop, so the wait ends with the click. A later
|
|
66
|
-
* `messagesChange` replaces this array wholesale, so nothing diverges.
|
|
67
|
-
*/
|
|
68
|
-
private finalizeOpenTurn;
|
|
69
|
-
private visibleMessages;
|
|
70
18
|
private renderMessages;
|
|
71
|
-
/** Opening state: who the visitor is talking to, not a bare instruction. */
|
|
72
|
-
private introElement;
|
|
73
|
-
private typingElement;
|
|
74
19
|
private setStatus;
|
|
75
20
|
private setError;
|
|
76
|
-
private setSessionId;
|
|
77
21
|
private updateControls;
|
|
78
|
-
private
|
|
79
|
-
/** Shows or hides Stop. The typing indicator no longer rides on this. */
|
|
80
|
-
private setResponding;
|
|
81
|
-
/** The session can no longer produce a reply: stop waiting, stop offering
|
|
82
|
-
* Stop, and redraw so the transcript agrees. */
|
|
83
|
-
private endSession;
|
|
84
|
-
/** Same `Author: text` shape the playground's Copy chat produces. */
|
|
85
|
-
private copyTranscript;
|
|
86
|
-
private writeToClipboard;
|
|
87
|
-
/**
|
|
88
|
-
* A published session is bound to the room it connected with: the character
|
|
89
|
-
* session id travels in the connect request, not in each `user_text_message`,
|
|
90
|
-
* so `ConvaiClient.resetSession()` would clear the transcript while the server
|
|
91
|
-
* kept the previous conversation. Reconnecting on a fresh launch grant is the
|
|
92
|
-
* only reset the published flow supports, and `start()` already tears the old
|
|
93
|
-
* client down before requesting one.
|
|
94
|
-
*/
|
|
95
|
-
private resetSession;
|
|
96
|
-
private retryElement;
|
|
97
|
-
/** Held as state, not a one-off append: a typing or message re-render would
|
|
98
|
-
* otherwise clear the only control left after a failed connection. */
|
|
22
|
+
private setResponseActive;
|
|
99
23
|
private showRetry;
|
|
100
24
|
private dispatch;
|
|
101
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConvaiChatElement.d.ts","sourceRoot":"","sources":["../../src/embed/ConvaiChatElement.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConvaiChatElement.d.ts","sourceRoot":"","sources":["../../src/embed/ConvaiChatElement.ts"],"names":[],"mappings":"AAiEA,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,eAAe,CAAS;IAEhC,iBAAiB,IAAI,IAAI;IAOzB,oBAAoB,IAAI,IAAI;IAO5B,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,WAAW;YA6CL,KAAK;YAyEL,IAAI;YAYJ,aAAa;IAO3B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,cAAc;IAwBtB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,QAAQ;CAKjB;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,GAAE,qBAAsC,GAC/C,IAAI,CAIN"}
|