@elevenlabs/react 0.5.2 → 0.6.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 CHANGED
@@ -403,6 +403,43 @@ setMicMuted(true);
403
403
  setMicMuted(false);
404
404
  ```
405
405
 
406
+ ##### changeInputDevice
407
+
408
+ Switch the audio input device during an active voice conversation. This method is only available for voice conversations.
409
+
410
+ ```js
411
+ import { useConversation } from "@elevenlabs/react";
412
+
413
+ const { changeInputDevice } = useConversation();
414
+
415
+ // Change to a specific input device
416
+ await changeInputDevice({
417
+ sampleRate: 16000,
418
+ format: "pcm",
419
+ preferHeadphonesForIosDevices: true,
420
+ inputDeviceId: "your-device-id", // Optional: specific device ID
421
+ });
422
+ ```
423
+
424
+ ##### changeOutputDevice
425
+
426
+ Switch the audio output device during an active voice conversation. This method is only available for voice conversations.
427
+
428
+ ```js
429
+ import { useConversation } from "@elevenlabs/react";
430
+
431
+ const { changeOutputDevice } = useConversation();
432
+
433
+ // Change to a specific output device
434
+ await changeOutputDevice({
435
+ sampleRate: 16000,
436
+ format: "pcm",
437
+ outputDeviceId: "your-device-id", // Optional: specific device ID
438
+ });
439
+ ```
440
+
441
+ **Note:** Device switching only works for voice conversations. If no specific `deviceId` is provided, the browser will use its default device selection. You can enumerate available devices using the [MediaDevices.enumerateDevices()](https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices) API.
442
+
406
443
  ##### status
407
444
 
408
445
  A React state containing the current status of the conversation.
package/dist/index.d.ts CHANGED
@@ -1,8 +1,17 @@
1
- import { SessionConfig, Callbacks, Status, ClientToolsConfig, InputConfig } from "@elevenlabs/client";
1
+ import { SessionConfig, ClientToolsConfig, InputConfig, type Status, type Callbacks } from "@elevenlabs/client";
2
+ export type DeviceFormatConfig = {
3
+ format: "pcm" | "ulaw";
4
+ sampleRate: number;
5
+ outputDeviceId?: string;
6
+ };
7
+ export type DeviceInputConfig = {
8
+ preferHeadphonesForIosDevices?: boolean;
9
+ inputDeviceId?: string;
10
+ };
2
11
  export type Location = "us" | "global" | "eu-residency" | "in-residency";
3
12
  export declare function parseLocation(location?: string): Location;
4
13
  export declare function getOriginForLocation(location: Location): string;
5
- export type { Role, Mode, Status, SessionConfig, DisconnectionDetails, Language, VadScoreEvent, } from "@elevenlabs/client";
14
+ export type { Role, Mode, Status, SessionConfig, DisconnectionDetails, Language, VadScoreEvent, InputConfig, } from "@elevenlabs/client";
6
15
  export { postOverallFeedback } from "@elevenlabs/client";
7
16
  export type HookOptions = Partial<SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig & {
8
17
  serverLocation?: Location | string;
@@ -28,6 +37,8 @@ export declare function useConversation<T extends HookOptions & ControlledState>
28
37
  sendUserMessage: (text: string) => void;
29
38
  sendUserActivity: () => void;
30
39
  sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => void;
40
+ changeInputDevice: (config: DeviceFormatConfig & DeviceInputConfig) => Promise<any>;
41
+ changeOutputDevice: (config: DeviceFormatConfig) => Promise<any>;
31
42
  status: Status;
32
43
  canSendFeedback: boolean;
33
44
  micMuted: boolean | undefined;
package/dist/lib.cjs CHANGED
@@ -1,2 +1,2 @@
1
- var n=require("react"),e=require("@elevenlabs/client");function r(){return r=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var u in r)({}).hasOwnProperty.call(r,u)&&(n[u]=r[u])}return n},r.apply(null,arguments)}var u=["micMuted","volume","serverLocation"];function l(n){switch(void 0===n&&(n="us"),n){case"eu-residency":case"in-residency":case"us":case"global":return n;default:return console.warn("[ConversationalAI] Invalid server-location: "+n+'. Defaulting to "us"'),"us"}}function t(n){return{us:"wss://api.elevenlabs.io","eu-residency":"wss://api.eu.residency.elevenlabs.io","in-residency":"wss://api.in.residency.elevenlabs.io",global:"wss://api.elevenlabs.io"}[n]}Object.defineProperty(exports,"postOverallFeedback",{enumerable:!0,get:function(){return e.postOverallFeedback}}),exports.getOriginForLocation=t,exports.parseLocation=l,exports.useConversation=function(o){void 0===o&&(o={});var i=o.micMuted,s=o.volume,c=o.serverLocation,a=function(n,e){if(null==n)return{};var r={};for(var u in n)if({}.hasOwnProperty.call(n,u)){if(-1!==e.indexOf(u))continue;r[u]=n[u]}return r}(o,u),d=n.useRef(null),v=n.useRef(null),f=n.useState("disconnected"),g=f[0],p=f[1],C=n.useState(!1),b=C[0],h=C[1],m=n.useState("listening"),y=m[0],S=m[1];return n.useEffect(function(){var n;void 0!==i&&(null==d||null==(n=d.current)||n.setMicMuted(i))},[i]),n.useEffect(function(){var n;void 0!==s&&(null==d||null==(n=d.current)||n.setVolume({volume:s}))},[s]),n.useEffect(function(){return function(){var n;null==(n=d.current)||n.endSession()}},[]),{startSession:function(n){try{var u,o,f=function(u){return o?u:function(u,o){try{var f=(D=t(l((null==n?void 0:n.serverLocation)||c)),v.current=e.Conversation.startSession(r({},null!=a?a:{},null!=n?n:{},{origin:D,overrides:r({},null!=(g=null==a?void 0:a.overrides)?g:{},null!=(C=null==n?void 0:n.overrides)?C:{},{client:r({},null!=(b=null==a||null==(m=a.overrides)?void 0:m.client)?b:{},null!=(y=null==n||null==(M=n.overrides)?void 0:M.client)?y:{},{source:(null==n||null==(F=n.overrides)||null==(F=F.client)?void 0:F.source)||(null==a||null==(O=a.overrides)||null==(O=O.client)?void 0:O.source)||"react_sdk",version:(null==n||null==(k=n.overrides)||null==(k=k.client)?void 0:k.version)||(null==a||null==(P=a.overrides)||null==(P=P.client)?void 0:P.version)||"0.5.2"})}),onConnect:(null==n?void 0:n.onConnect)||(null==a?void 0:a.onConnect),onDisconnect:(null==n?void 0:n.onDisconnect)||(null==a?void 0:a.onDisconnect),onError:(null==n?void 0:n.onError)||(null==a?void 0:a.onError),onMessage:(null==n?void 0:n.onMessage)||(null==a?void 0:a.onMessage),onAudio:(null==n?void 0:n.onAudio)||(null==a?void 0:a.onAudio),onDebug:(null==n?void 0:n.onDebug)||(null==a?void 0:a.onDebug),onUnhandledClientToolCall:(null==n?void 0:n.onUnhandledClientToolCall)||(null==a?void 0:a.onUnhandledClientToolCall),onVadScore:(null==n?void 0:n.onVadScore)||(null==a?void 0:a.onVadScore),onModeChange:function(e){var r,u=e.mode;S(u),null==(r=(null==n?void 0:n.onModeChange)||(null==a?void 0:a.onModeChange))||r({mode:u})},onStatusChange:function(e){var r,u=e.status;p(u),null==(r=(null==n?void 0:n.onStatusChange)||(null==a?void 0:a.onStatusChange))||r({status:u})},onCanSendFeedbackChange:function(e){var r,u=e.canSendFeedback;h(u),null==(r=(null==n?void 0:n.onCanSendFeedbackChange)||(null==a?void 0:a.onCanSendFeedbackChange))||r({canSendFeedback:u})}})),Promise.resolve(v.current).then(function(n){return d.current=n,void 0!==i&&d.current.setMicMuted(i),void 0!==s&&d.current.setVolume({volume:s}),d.current.getId()}))}catch(n){return o(!0,n)}var g,C,b,m,y,M,F,O,k,P,D;return f&&f.then?f.then(o.bind(null,!1),o.bind(null,!0)):o(!1,f)}(0,function(n,e){if(v.current=null,n)throw e;return e})};if(null!=(u=d.current)&&u.isOpen())return Promise.resolve(d.current.getId());var g=function(){if(v.current)return Promise.resolve(v.current).then(function(n){var e=n.getId();return o=1,e})}();return Promise.resolve(g&&g.then?g.then(f):f(g))}catch(n){return Promise.reject(n)}},endSession:function(){try{var n=d.current;return d.current=null,Promise.resolve(null==n?void 0:n.endSession()).then(function(){})}catch(n){return Promise.reject(n)}},setVolume:function(n){var e;null==(e=d.current)||e.setVolume({volume:n.volume})},getInputByteFrequencyData:function(){var n;return null==(n=d.current)?void 0:n.getInputByteFrequencyData()},getOutputByteFrequencyData:function(){var n;return null==(n=d.current)?void 0:n.getOutputByteFrequencyData()},getInputVolume:function(){var n,e;return null!=(n=null==(e=d.current)?void 0:e.getInputVolume())?n:0},getOutputVolume:function(){var n,e;return null!=(n=null==(e=d.current)?void 0:e.getOutputVolume())?n:0},sendFeedback:function(n){var e;null==(e=d.current)||e.sendFeedback(n)},getId:function(){var n;return null==(n=d.current)?void 0:n.getId()},sendContextualUpdate:function(n){var e;null==(e=d.current)||e.sendContextualUpdate(n)},sendUserMessage:function(n){var e;null==(e=d.current)||e.sendUserMessage(n)},sendUserActivity:function(){var n;null==(n=d.current)||n.sendUserActivity()},sendMCPToolApprovalResult:function(n,e){var r;null==(r=d.current)||r.sendMCPToolApprovalResult(n,e)},status:g,canSendFeedback:b,micMuted:i,isSpeaking:"speaking"===y}};
1
+ var n=require("react"),e=require("@elevenlabs/client");function r(){return r=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var t in r)({}).hasOwnProperty.call(r,t)&&(n[t]=r[t])}return n},r.apply(null,arguments)}var t=["micMuted","volume","serverLocation"];function u(n){switch(void 0===n&&(n="us"),n){case"eu-residency":case"in-residency":case"us":case"global":return n;default:return console.warn("[ConversationalAI] Invalid server-location: "+n+'. Defaulting to "us"'),"us"}}function o(n){return{us:"wss://api.elevenlabs.io","eu-residency":"wss://api.eu.residency.elevenlabs.io","in-residency":"wss://api.in.residency.elevenlabs.io",global:"wss://api.elevenlabs.io"}[n]}Object.defineProperty(exports,"postOverallFeedback",{enumerable:!0,get:function(){return e.postOverallFeedback}}),exports.getOriginForLocation=o,exports.parseLocation=u,exports.useConversation=function(l){void 0===l&&(l={});var i=l.micMuted,c=l.volume,s=l.serverLocation,a=function(n,e){if(null==n)return{};var r={};for(var t in n)if({}.hasOwnProperty.call(n,t)){if(-1!==e.indexOf(t))continue;r[t]=n[t]}return r}(l,t),v=n.useRef(null),d=n.useRef(null),f=n.useState("disconnected"),g=f[0],h=f[1],p=n.useState(!1),m=p[0],b=p[1],C=n.useState("listening"),y=C[0],S=C[1];return n.useEffect(function(){var n;void 0!==i&&(null==v||null==(n=v.current)||n.setMicMuted(i))},[i]),n.useEffect(function(){var n;void 0!==c&&(null==v||null==(n=v.current)||n.setVolume({volume:c}))},[c]),n.useEffect(function(){return function(){var n;null==(n=v.current)||n.endSession()}},[]),{startSession:function(n){try{var t,l,f=function(t){return l?t:function(t,l){try{var f=(F=o(u((null==n?void 0:n.serverLocation)||s)),d.current=e.Conversation.startSession(r({},null!=a?a:{},null!=n?n:{},{origin:F,overrides:r({},null!=(g=null==a?void 0:a.overrides)?g:{},null!=(p=null==n?void 0:n.overrides)?p:{},{client:r({},null!=(m=null==a||null==(C=a.overrides)?void 0:C.client)?m:{},null!=(y=null==n||null==(D=n.overrides)?void 0:D.client)?y:{},{source:(null==n||null==(P=n.overrides)||null==(P=P.client)?void 0:P.source)||(null==a||null==(M=a.overrides)||null==(M=M.client)?void 0:M.source)||"react_sdk",version:(null==n||null==(O=n.overrides)||null==(O=O.client)?void 0:O.version)||(null==a||null==(w=a.overrides)||null==(w=w.client)?void 0:w.version)||"0.6.0"})}),onConnect:(null==n?void 0:n.onConnect)||(null==a?void 0:a.onConnect),onDisconnect:(null==n?void 0:n.onDisconnect)||(null==a?void 0:a.onDisconnect),onError:(null==n?void 0:n.onError)||(null==a?void 0:a.onError),onMessage:(null==n?void 0:n.onMessage)||(null==a?void 0:a.onMessage),onAudio:(null==n?void 0:n.onAudio)||(null==a?void 0:a.onAudio),onDebug:(null==n?void 0:n.onDebug)||(null==a?void 0:a.onDebug),onUnhandledClientToolCall:(null==n?void 0:n.onUnhandledClientToolCall)||(null==a?void 0:a.onUnhandledClientToolCall),onVadScore:(null==n?void 0:n.onVadScore)||(null==a?void 0:a.onVadScore),onModeChange:function(e){var r,t=e.mode;S(t),null==(r=(null==n?void 0:n.onModeChange)||(null==a?void 0:a.onModeChange))||r({mode:t})},onStatusChange:function(e){var r,t=e.status;h(t),null==(r=(null==n?void 0:n.onStatusChange)||(null==a?void 0:a.onStatusChange))||r({status:t})},onCanSendFeedbackChange:function(e){var r,t=e.canSendFeedback;b(t),null==(r=(null==n?void 0:n.onCanSendFeedbackChange)||(null==a?void 0:a.onCanSendFeedbackChange))||r({canSendFeedback:t})}})),Promise.resolve(d.current).then(function(n){return v.current=n,void 0!==i&&v.current.setMicMuted(i),void 0!==c&&v.current.setVolume({volume:c}),v.current.getId()}))}catch(n){return l(!0,n)}var g,p,m,C,y,D,P,M,O,w,F;return f&&f.then?f.then(l.bind(null,!1),l.bind(null,!0)):l(!1,f)}(0,function(n,e){if(d.current=null,n)throw e;return e})};if(null!=(t=v.current)&&t.isOpen())return Promise.resolve(v.current.getId());var g=function(){if(d.current)return Promise.resolve(d.current).then(function(n){var e=n.getId();return l=1,e})}();return Promise.resolve(g&&g.then?g.then(f):f(g))}catch(n){return Promise.reject(n)}},endSession:function(){try{var n=v.current;return v.current=null,Promise.resolve(null==n?void 0:n.endSession()).then(function(){})}catch(n){return Promise.reject(n)}},setVolume:function(n){var e;null==(e=v.current)||e.setVolume({volume:n.volume})},getInputByteFrequencyData:function(){var n;return null==(n=v.current)?void 0:n.getInputByteFrequencyData()},getOutputByteFrequencyData:function(){var n;return null==(n=v.current)?void 0:n.getOutputByteFrequencyData()},getInputVolume:function(){var n,e;return null!=(n=null==(e=v.current)?void 0:e.getInputVolume())?n:0},getOutputVolume:function(){var n,e;return null!=(n=null==(e=v.current)?void 0:e.getOutputVolume())?n:0},sendFeedback:function(n){var e;null==(e=v.current)||e.sendFeedback(n)},getId:function(){var n;return null==(n=v.current)?void 0:n.getId()},sendContextualUpdate:function(n){var e;null==(e=v.current)||e.sendContextualUpdate(n)},sendUserMessage:function(n){var e;null==(e=v.current)||e.sendUserMessage(n)},sendUserActivity:function(){var n;null==(n=v.current)||n.sendUserActivity()},sendMCPToolApprovalResult:function(n,e){var r;null==(r=v.current)||r.sendMCPToolApprovalResult(n,e)},changeInputDevice:function(n){try{var e,r=function(n){if(e)return n;throw new Error("Device switching is only available for voice conversations")},t=function(){if(v.current&&"changeInputDevice"in v.current)return Promise.resolve(v.current.changeInputDevice(n)).then(function(n){return e=1,n})}();return Promise.resolve(t&&t.then?t.then(r):r(t))}catch(n){return Promise.reject(n)}},changeOutputDevice:function(n){try{var e,r=function(n){if(e)return n;throw new Error("Device switching is only available for voice conversations")},t=function(){if(v.current&&"changeOutputDevice"in v.current)return Promise.resolve(v.current.changeOutputDevice(n)).then(function(n){return e=1,n})}();return Promise.resolve(t&&t.then?t.then(r):r(t))}catch(n){return Promise.reject(n)}},status:g,canSendFeedback:m,micMuted:i,isSpeaking:"speaking"===y}};
2
2
  //# sourceMappingURL=lib.cjs.map
package/dist/lib.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"lib.cjs","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.5.2\";\n","import { useEffect, useRef, useState } from \"react\";\nimport {\n Conversation,\n Mode,\n SessionConfig,\n Callbacks,\n Options,\n Status,\n ClientToolsConfig,\n InputConfig,\n VadScoreEvent,\n} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type Location = \"us\" | \"global\" | \"eu-residency\" | \"in-residency\";\n\nexport function parseLocation(location: string = \"us\"): Location {\n switch (location) {\n case \"eu-residency\":\n case \"in-residency\":\n case \"us\":\n case \"global\":\n return location;\n default:\n console.warn(\n `[ConversationalAI] Invalid server-location: ${location}. Defaulting to \"us\"`\n );\n return \"us\";\n }\n}\n\nexport function getOriginForLocation(location: Location): string {\n const originMap: Record<Location, string> = {\n us: \"wss://api.elevenlabs.io\",\n \"eu-residency\": \"wss://api.eu.residency.elevenlabs.io\",\n \"in-residency\": \"wss://api.in.residency.elevenlabs.io\",\n global: \"wss://api.elevenlabs.io\",\n };\n\n return originMap[location];\n}\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n VadScoreEvent,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig &\n HookCallbacks &\n ClientToolsConfig &\n InputConfig & {\n serverLocation?: Location | string;\n }\n>;\nexport type ControlledState = {\n micMuted?: boolean;\n volume?: number;\n};\nexport type HookCallbacks = Pick<\n Callbacks,\n | \"onConnect\"\n | \"onDisconnect\"\n | \"onError\"\n | \"onMessage\"\n | \"onAudio\"\n | \"onModeChange\"\n | \"onStatusChange\"\n | \"onCanSendFeedbackChange\"\n | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n | \"onVadScore\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, serverLocation, ...defaultOptions } = props;\n const conversationRef = useRef<Conversation | null>(null);\n const lockRef = useRef<Promise<Conversation> | null>(null);\n const [status, setStatus] = useState<Status>(\"disconnected\");\n const [canSendFeedback, setCanSendFeedback] = useState(false);\n const [mode, setMode] = useState<Mode>(\"listening\");\n\n useEffect(() => {\n if (micMuted !== undefined) {\n conversationRef?.current?.setMicMuted(micMuted);\n }\n }, [micMuted]);\n\n useEffect(() => {\n if (volume !== undefined) {\n conversationRef?.current?.setVolume({ volume });\n }\n }, [volume]);\n\n useEffect(() => {\n return () => {\n conversationRef.current?.endSession();\n };\n }, []);\n\n return {\n startSession: (async (options?: HookOptions) => {\n if (conversationRef.current?.isOpen()) {\n return conversationRef.current.getId();\n }\n\n if (lockRef.current) {\n const conversation = await lockRef.current;\n return conversation.getId();\n }\n\n try {\n const resolvedServerLocation = parseLocation(\n options?.serverLocation || serverLocation\n );\n const origin = getOriginForLocation(resolvedServerLocation);\n\n lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\n origin,\n overrides: {\n ...(defaultOptions?.overrides ?? {}),\n ...(options?.overrides ?? {}),\n client: {\n ...(defaultOptions?.overrides?.client ?? {}),\n ...(options?.overrides?.client ?? {}),\n source:\n options?.overrides?.client?.source ||\n defaultOptions?.overrides?.client?.source ||\n \"react_sdk\",\n version:\n options?.overrides?.client?.version ||\n defaultOptions?.overrides?.client?.version ||\n PACKAGE_VERSION,\n },\n },\n // Pass through user-provided callbacks\n onConnect: options?.onConnect || defaultOptions?.onConnect,\n onDisconnect: options?.onDisconnect || defaultOptions?.onDisconnect,\n onError: options?.onError || defaultOptions?.onError,\n onMessage: options?.onMessage || defaultOptions?.onMessage,\n onAudio: options?.onAudio || defaultOptions?.onAudio,\n onDebug: options?.onDebug || defaultOptions?.onDebug,\n onUnhandledClientToolCall:\n options?.onUnhandledClientToolCall ||\n defaultOptions?.onUnhandledClientToolCall,\n onVadScore: options?.onVadScore || defaultOptions?.onVadScore,\n onModeChange: ({ mode }) => {\n setMode(mode);\n (options?.onModeChange || defaultOptions?.onModeChange)?.({ mode });\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n (options?.onStatusChange || defaultOptions?.onStatusChange)?.({\n status,\n });\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(canSendFeedback);\n (\n options?.onCanSendFeedbackChange ||\n defaultOptions?.onCanSendFeedbackChange\n )?.({ canSendFeedback });\n },\n } as Options);\n\n conversationRef.current = await lockRef.current;\n // Persist controlled state between sessions\n if (micMuted !== undefined) {\n conversationRef.current.setMicMuted(micMuted);\n }\n if (volume !== undefined) {\n conversationRef.current.setVolume({ volume });\n }\n\n return conversationRef.current.getId();\n } finally {\n lockRef.current = null;\n }\n }) as T extends SessionConfig\n ? (options?: HookOptions) => Promise<string>\n : (options: SessionConfig & HookOptions) => Promise<string>,\n endSession: async () => {\n const conversation = conversationRef.current;\n conversationRef.current = null;\n await conversation?.endSession();\n },\n setVolume: ({ volume }: { volume: number }) => {\n conversationRef.current?.setVolume({ volume });\n },\n getInputByteFrequencyData: () => {\n return conversationRef.current?.getInputByteFrequencyData();\n },\n getOutputByteFrequencyData: () => {\n return conversationRef.current?.getOutputByteFrequencyData();\n },\n getInputVolume: () => {\n return conversationRef.current?.getInputVolume() ?? 0;\n },\n getOutputVolume: () => {\n return conversationRef.current?.getOutputVolume() ?? 0;\n },\n sendFeedback: (like: boolean) => {\n conversationRef.current?.sendFeedback(like);\n },\n getId: () => {\n return conversationRef.current?.getId();\n },\n sendContextualUpdate: (text: string) => {\n conversationRef.current?.sendContextualUpdate(text);\n },\n sendUserMessage: (text: string) => {\n conversationRef.current?.sendUserMessage(text);\n },\n sendUserActivity: () => {\n conversationRef.current?.sendUserActivity();\n },\n sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => {\n conversationRef.current?.sendMCPToolApprovalResult(\n toolCallId,\n isApproved\n );\n },\n status,\n canSendFeedback,\n micMuted,\n isSpeaking: mode === \"speaking\",\n };\n}\n\n// const con = useConversation({agentId: \"\"})\n"],"names":["parseLocation","location","console","warn","getOriginForLocation","us","global","props","micMuted","volume","serverLocation","defaultOptions","_objectWithoutPropertiesLoose","_excluded","conversationRef","useRef","lockRef","_useState","useState","status","setStatus","_useState2","canSendFeedback","setCanSendFeedback","_useState3","mode","setMode","useEffect","_conversationRef$curr","undefined","current","setMicMuted","_conversationRef$curr2","setVolume","_conversationRef$curr3","endSession","startSession","options","_conversationRef$curr4","_exit","_temp2","_result","origin","Conversation","_extends","overrides","_defaultOptions$overr","_options$overrides","client","_defaultOptions$overr2","_defaultOptions$overr3","_options$overrides$cl","_options$overrides2","source","_options$overrides3","_defaultOptions$overr4","version","_options$overrides4","_defaultOptions$overr5","onConnect","onDisconnect","onError","onMessage","onAudio","onDebug","onUnhandledClientToolCall","onVadScore","onModeChange","_ref","_ref2","onStatusChange","_ref3","_ref4","onCanSendFeedbackChange","_ref5","_ref6","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref7","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","isSpeaking"],"mappings":"+QACa,sDCgBGA,EAAcC,GAC5B,gBAD4BA,IAAAA,EAAmB,MACvCA,GACN,IAAK,eACL,IAAK,eACL,IAAK,KACL,IAAK,SACH,OAAOA,EACT,QAIE,OAHAC,QAAQC,KAAI,+CACqCF,EAA8B,wBAExE,KAEb,CAEgB,SAAAG,EAAqBH,GAQnC,MAP4C,CAC1CI,GAAI,0BACJ,eAAgB,uCAChB,eAAgB,uCAChBC,OAAQ,2BAGOL,EACnB,2MAyCEM,QAAA,IAAAA,IAAAA,EAAW,CAAO,GAElB,IAAQC,EAAwDD,EAAxDC,SAAUC,EAA8CF,EAA9CE,OAAQC,EAAsCH,EAAtCG,eAAmBC,6IAAcC,CAAKL,EAALM,GACrDC,EAAkBC,SAA4B,MAC9CC,EAAUD,EAAMA,OAA+B,MACrDE,EAA4BC,EAAQA,SAAS,gBAAtCC,EAAMF,KAAEG,EAASH,EACxB,GAAAI,EAA8CH,EAAAA,UAAS,GAAhDI,EAAeD,EAAA,GAAEE,EAAkBF,KAC1CG,EAAwBN,EAAQA,SAAO,aAAhCO,EAAID,EAAEE,GAAAA,EAAOF,EAAA,GAoBpB,OAlBAG,EAASA,UAAC,WACoBC,IAAAA,OAAXC,IAAbrB,IACa,MAAfM,GAAwB,OAATc,EAAfd,EAAiBgB,UAAjBF,EAA0BG,YAAYvB,GAE1C,EAAG,CAACA,IAEJmB,EAASA,UAAC,eACkBK,OAAXH,IAAXpB,IACa,MAAfK,GAAwB,OAATkB,EAAflB,EAAiBgB,UAAjBE,EAA0BC,UAAU,CAAExB,OAAAA,IAE1C,EAAG,CAACA,IAEJkB,EAASA,UAAC,WACR,kBAAYO,IAAAA,EACa,OAAvBA,EAAApB,EAAgBgB,UAAhBI,EAAyBC,YAC3B,CACF,EAAG,IAEI,CACLC,sBAAsBC,OAAyBC,IAAAA,EA6EpBC,EA7EoBC,EAAA,SAAAC,GAAA,OAAAF,EAAAE,2BAcrCC,EAAStC,EAHgBJ,GAC7BqC,MAAAA,OAAAA,EAAAA,EAAS3B,iBAAkBA,IAI7BM,EAAQc,QAAUa,EAAYA,aAACP,aAAYQ,EAAA,CAAA,EACrCjC,MAAAA,EAAAA,EAAkB,CAAE,QACpB0B,EAAAA,EAAW,CAAA,EAAE,CACjBK,OAAAA,EACAG,UAASD,EAAAE,CAAAA,EACsBA,OADtBA,EACW,MAAdnC,OAAc,EAAdA,EAAgBkC,WAASC,EAAI,CAAA,EACX,OADaC,EAC/BV,MAAAA,OAAAA,EAAAA,EAASQ,WAASE,EAAI,CAAE,EAC5BC,CAAAA,OAAMJ,EAAA,CAAA,EACiC,OADjCK,EACcC,MAAdvC,GAAAuC,OAAcA,EAAdvC,EAAgBkC,gBAAhBK,EAAAA,EAA2BF,QAAMC,EAAI,CAAA,EACXE,OADaA,EAChC,MAAPd,UAAOe,EAAPf,EAASQ,kBAATO,EAAoBJ,QAAMG,EAAI,CAAE,EACpCE,CAAAA,cACEhB,GAAkBiB,OAAXA,EAAPjB,EAASQ,YAATS,OAAkBA,EAAlBA,EAAoBN,aAApBM,EAAAA,EAA4BD,UACdE,MAAd5C,GAAyB4C,OAAXA,EAAd5C,EAAgBkC,YAAiB,OAARU,EAAzBA,EAA2BP,aAAM,EAAjCO,EAAmCF,SACnC,YACFG,SACSC,MAAPpB,GAAkBoB,OAAXA,EAAPpB,EAASQ,YAAiB,OAARY,EAAlBA,EAAoBT,aAAM,EAA1BS,EAA4BD,WACd,MAAd7C,GAAyB,OAAX+C,EAAd/C,EAAgBkC,YAAiB,OAARa,EAAzBA,EAA2BV,aAAM,EAAjCU,EAAmCF,UD7IpB,YCkJrBG,WAAkB,MAAPtB,OAAO,EAAPA,EAASsB,aAA2B,MAAdhD,OAAc,EAAdA,EAAgBgD,WACjDC,oBAAcvB,SAAAA,EAASuB,sBAAgBjD,SAAAA,EAAgBiD,cACvDC,eAASxB,SAAAA,EAASwB,WAAWlD,MAAAA,OAAAA,EAAAA,EAAgBkD,SAC7CC,WAAWzB,MAAAA,OAAAA,EAAAA,EAASyB,aAAanD,MAAAA,OAAAA,EAAAA,EAAgBmD,WACjDC,SAAgB,MAAP1B,OAAO,EAAPA,EAAS0B,WAAyB,MAAdpD,OAAc,EAAdA,EAAgBoD,SAC7CC,SAAgB,MAAP3B,OAAO,EAAPA,EAAS2B,iBAAWrD,SAAAA,EAAgBqD,SAC7CC,2BACE5B,MAAAA,OAAAA,EAAAA,EAAS4B,6BACTtD,MAAAA,OAAAA,EAAAA,EAAgBsD,2BAClBC,YAAmB,MAAP7B,OAAO,EAAPA,EAAS6B,cAA4B,MAAdvD,OAAc,EAAdA,EAAgBuD,YACnDC,aAAc,SAAFC,GAAeC,IAAAA,EAAV5C,EAAI2C,EAAJ3C,KACfC,EAAQD,GAC8C,OAAtD4C,SAAChC,SAAAA,EAAS8B,gBAAgBxD,MAAAA,OAAAA,EAAAA,EAAgBwD,gBAA1CE,EAA0D,CAAE5C,KAAAA,GAC9D,EACA6C,eAAgB,SAAFC,GAAiBC,IAAAA,EAAZrD,EAAMoD,EAANpD,OACjBC,EAAUD,UACVqD,GAAQ,MAAPnC,OAAO,EAAPA,EAASiC,kBAAgC,MAAd3D,OAAc,EAAdA,EAAgB2D,kBAA5CE,EAA8D,CAC5DrD,OAAAA,GAEJ,EACAsD,wBAAyB,SAAFC,GAA0B,IAAAC,EAArBrD,EAAeoD,EAAfpD,gBAC1BC,EAAmBD,UACnBqD,GACS,MAAPtC,OAAO,EAAPA,EAASoC,2BACK,MAAd9D,OAAc,EAAdA,EAAgB8D,2BAFlBE,EAGI,CAAErD,gBAAAA,GACR,KACYsD,QAAAC,QAEkB7D,EAAQc,SAAOgD,KAAAC,SAAAA,GAS/C,OATAjE,EAAgBgB,QAAOiD,OAENlD,IAAbrB,GACFM,EAAgBgB,QAAQC,YAAYvB,QAEvBqB,IAAXpB,GACFK,EAAgBgB,QAAQG,UAAU,CAAExB,OAAAA,IAG/BK,EAAgBgB,QAAQkD,OAAQ,gCAjErClC,EAAAC,EAAAE,EAAAC,EAAAC,EAAAC,EAAAE,EAAAC,EAAAE,EAAAC,EAIIhB,mEAdqCuC,GA4E5CC,SAAAA,EAAAC,GACwB,GAAvBnE,EAAQc,QAAU,KAAKoD,EAAA,MAAAC,EAAAA,OAAAA,CAAA,IA5EzB,GAAI7C,OAAJA,EAAIxB,EAAgBgB,UAAhBQ,EAAyB8C,SAC3B,OAAAR,QAAAC,QAAO/D,EAAgBgB,QAAQkD,SAChC,IAAAK,gBAEGrE,EAAQc,QAAO8C,OAAAA,QAAAC,QACU7D,EAAQc,SAAOgD,KAAA,SAApCQ,GAAYC,IAAAA,EACXD,EAAaN,eAAOzC,IAAAgD,CAAA,EAAA,IAAA,OAAAX,QAAAC,QAAAQ,GAAAA,EAAAP,KAAAO,EAAAP,KAAAtC,GAAAA,EAAA6C,GAwE/B,CAAC,MAAAG,UAAAZ,QAAAa,OAAAD,KAGDrD,sBAAU,IACR,IAAMmD,EAAexE,EAAgBgB,QACN,OAA/BhB,EAAgBgB,QAAU,KAAK8C,QAAAC,QACb,MAAZS,OAAY,EAAZA,EAAcnD,cAAY2C,KAAA,WAAA,EAClC,CAAC,MAAAU,UAAAZ,QAAAa,OAAAD,KACDvD,UAAW,SAAFyD,GAAqCC,IAAAA,EACrB,OAAvBA,EAAA7E,EAAgBgB,UAAhB6D,EAAyB1D,UAAU,CAAExB,OADnBiF,EAANjF,QAEd,EACAmF,0BAA2B,WAAK,IAAAC,EAC9B,cAAAA,EAAO/E,EAAgBgB,gBAAhB+D,EAAyBD,2BAClC,EACAE,2BAA4B,WAAKC,IAAAA,EAC/B,OAA8B,OAA9BA,EAAOjF,EAAgBgB,cAAO,EAAvBiE,EAAyBD,4BAClC,EACAE,eAAgB,WAAK,IAAAC,EAAAC,EACnB,OAAgDD,OAAhDA,EAAOC,OAAPA,EAAOpF,EAAgBgB,cAAhBoE,EAAAA,EAAyBF,kBAAgBC,EAAI,CACtD,EACAE,gBAAiB,eAAKC,EAAAC,EACpB,OAAiD,OAAjDD,EAAOC,OAAPA,EAAOvF,EAAgBgB,cAAhBuE,EAAAA,EAAyBF,mBAAiBC,EAAI,CACvD,EACAE,aAAc,SAACC,GAAiB,IAAAC,SAC9BA,EAAA1F,EAAgBgB,UAAhB0E,EAAyBF,aAAaC,EACxC,EACAvB,MAAO,WAAKyB,IAAAA,EACV,OAA8B,OAA9BA,EAAO3F,EAAgBgB,cAAO,EAAvB2E,EAAyBzB,OAClC,EACA0B,qBAAsB,SAACC,OAAgBC,EACrCA,OAAAA,EAAA9F,EAAgBgB,UAAhB8E,EAAyBF,qBAAqBC,EAChD,EACAE,gBAAiB,SAACF,GAAgBG,IAAAA,EAChCA,OAAAA,EAAAhG,EAAgBgB,UAAhBgF,EAAyBD,gBAAgBF,EAC3C,EACAI,iBAAkB,WAAKC,IAAAA,EACrBA,OAAAA,EAAAlG,EAAgBgB,UAAhBkF,EAAyBD,kBAC3B,EACAE,0BAA2B,SAACC,EAAoBC,GAAuB,IAAAC,EAC9C,OAAvBA,EAAAtG,EAAgBgB,UAAhBsF,EAAyBH,0BACvBC,EACAC,EAEJ,EACAhG,OAAAA,EACAG,gBAAAA,EACAd,SAAAA,EACA6G,WAAqB,aAAT5F,EAEhB"}
1
+ {"version":3,"file":"lib.cjs","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.6.0\";\n","import { useEffect, useRef, useState } from \"react\";\nimport {\n Conversation,\n SessionConfig,\n Options,\n ClientToolsConfig,\n InputConfig,\n type Mode,\n type Status,\n type Callbacks,\n type VadScoreEvent,\n} from \"@elevenlabs/client\";\n\n// Device configuration types for audio device switching\nexport type DeviceFormatConfig = {\n format: \"pcm\" | \"ulaw\";\n sampleRate: number;\n outputDeviceId?: string;\n};\n\nexport type DeviceInputConfig = {\n preferHeadphonesForIosDevices?: boolean;\n inputDeviceId?: string;\n};\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type Location = \"us\" | \"global\" | \"eu-residency\" | \"in-residency\";\n\nexport function parseLocation(location: string = \"us\"): Location {\n switch (location) {\n case \"eu-residency\":\n case \"in-residency\":\n case \"us\":\n case \"global\":\n return location;\n default:\n console.warn(\n `[ConversationalAI] Invalid server-location: ${location}. Defaulting to \"us\"`\n );\n return \"us\";\n }\n}\n\nexport function getOriginForLocation(location: Location): string {\n const originMap: Record<Location, string> = {\n us: \"wss://api.elevenlabs.io\",\n \"eu-residency\": \"wss://api.eu.residency.elevenlabs.io\",\n \"in-residency\": \"wss://api.in.residency.elevenlabs.io\",\n global: \"wss://api.elevenlabs.io\",\n };\n\n return originMap[location];\n}\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n VadScoreEvent,\n InputConfig,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig &\n HookCallbacks &\n ClientToolsConfig &\n InputConfig & {\n serverLocation?: Location | string;\n }\n>;\nexport type ControlledState = {\n micMuted?: boolean;\n volume?: number;\n};\nexport type HookCallbacks = Pick<\n Callbacks,\n | \"onConnect\"\n | \"onDisconnect\"\n | \"onError\"\n | \"onMessage\"\n | \"onAudio\"\n | \"onModeChange\"\n | \"onStatusChange\"\n | \"onCanSendFeedbackChange\"\n | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n | \"onVadScore\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, serverLocation, ...defaultOptions } = props;\n const conversationRef = useRef<Conversation | null>(null);\n const lockRef = useRef<Promise<Conversation> | null>(null);\n const [status, setStatus] = useState<Status>(\"disconnected\");\n const [canSendFeedback, setCanSendFeedback] = useState(false);\n const [mode, setMode] = useState<Mode>(\"listening\");\n\n useEffect(() => {\n if (micMuted !== undefined) {\n conversationRef?.current?.setMicMuted(micMuted);\n }\n }, [micMuted]);\n\n useEffect(() => {\n if (volume !== undefined) {\n conversationRef?.current?.setVolume({ volume });\n }\n }, [volume]);\n\n useEffect(() => {\n return () => {\n conversationRef.current?.endSession();\n };\n }, []);\n\n return {\n startSession: (async (options?: HookOptions) => {\n if (conversationRef.current?.isOpen()) {\n return conversationRef.current.getId();\n }\n\n if (lockRef.current) {\n const conversation = await lockRef.current;\n return conversation.getId();\n }\n\n try {\n const resolvedServerLocation = parseLocation(\n options?.serverLocation || serverLocation\n );\n const origin = getOriginForLocation(resolvedServerLocation);\n\n lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\n origin,\n overrides: {\n ...(defaultOptions?.overrides ?? {}),\n ...(options?.overrides ?? {}),\n client: {\n ...(defaultOptions?.overrides?.client ?? {}),\n ...(options?.overrides?.client ?? {}),\n source:\n options?.overrides?.client?.source ||\n defaultOptions?.overrides?.client?.source ||\n \"react_sdk\",\n version:\n options?.overrides?.client?.version ||\n defaultOptions?.overrides?.client?.version ||\n PACKAGE_VERSION,\n },\n },\n // Pass through user-provided callbacks\n onConnect: options?.onConnect || defaultOptions?.onConnect,\n onDisconnect: options?.onDisconnect || defaultOptions?.onDisconnect,\n onError: options?.onError || defaultOptions?.onError,\n onMessage: options?.onMessage || defaultOptions?.onMessage,\n onAudio: options?.onAudio || defaultOptions?.onAudio,\n onDebug: options?.onDebug || defaultOptions?.onDebug,\n onUnhandledClientToolCall:\n options?.onUnhandledClientToolCall ||\n defaultOptions?.onUnhandledClientToolCall,\n onVadScore: options?.onVadScore || defaultOptions?.onVadScore,\n onModeChange: ({ mode }) => {\n setMode(mode);\n (options?.onModeChange || defaultOptions?.onModeChange)?.({ mode });\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n (options?.onStatusChange || defaultOptions?.onStatusChange)?.({\n status,\n });\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(canSendFeedback);\n (\n options?.onCanSendFeedbackChange ||\n defaultOptions?.onCanSendFeedbackChange\n )?.({ canSendFeedback });\n },\n } as Options);\n\n conversationRef.current = await lockRef.current;\n // Persist controlled state between sessions\n if (micMuted !== undefined) {\n conversationRef.current.setMicMuted(micMuted);\n }\n if (volume !== undefined) {\n conversationRef.current.setVolume({ volume });\n }\n\n return conversationRef.current.getId();\n } finally {\n lockRef.current = null;\n }\n }) as T extends SessionConfig\n ? (options?: HookOptions) => Promise<string>\n : (options: SessionConfig & HookOptions) => Promise<string>,\n endSession: async () => {\n const conversation = conversationRef.current;\n conversationRef.current = null;\n await conversation?.endSession();\n },\n setVolume: ({ volume }: { volume: number }) => {\n conversationRef.current?.setVolume({ volume });\n },\n getInputByteFrequencyData: () => {\n return conversationRef.current?.getInputByteFrequencyData();\n },\n getOutputByteFrequencyData: () => {\n return conversationRef.current?.getOutputByteFrequencyData();\n },\n getInputVolume: () => {\n return conversationRef.current?.getInputVolume() ?? 0;\n },\n getOutputVolume: () => {\n return conversationRef.current?.getOutputVolume() ?? 0;\n },\n sendFeedback: (like: boolean) => {\n conversationRef.current?.sendFeedback(like);\n },\n getId: () => {\n return conversationRef.current?.getId();\n },\n sendContextualUpdate: (text: string) => {\n conversationRef.current?.sendContextualUpdate(text);\n },\n sendUserMessage: (text: string) => {\n conversationRef.current?.sendUserMessage(text);\n },\n sendUserActivity: () => {\n conversationRef.current?.sendUserActivity();\n },\n sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => {\n conversationRef.current?.sendMCPToolApprovalResult(\n toolCallId,\n isApproved\n );\n },\n changeInputDevice: async (\n config: DeviceFormatConfig & DeviceInputConfig\n ) => {\n if (\n conversationRef.current &&\n \"changeInputDevice\" in conversationRef.current\n ) {\n return await (\n conversationRef.current as unknown as {\n changeInputDevice: (config: any) => Promise<any>;\n }\n ).changeInputDevice(config);\n }\n throw new Error(\n \"Device switching is only available for voice conversations\"\n );\n },\n changeOutputDevice: async (config: DeviceFormatConfig) => {\n if (\n conversationRef.current &&\n \"changeOutputDevice\" in conversationRef.current\n ) {\n return await (\n conversationRef.current as unknown as {\n changeOutputDevice: (config: any) => Promise<any>;\n }\n ).changeOutputDevice(config);\n }\n throw new Error(\n \"Device switching is only available for voice conversations\"\n );\n },\n status,\n canSendFeedback,\n micMuted,\n isSpeaking: mode === \"speaking\",\n };\n}\n\n// const con = useConversation({agentId: \"\"})\n"],"names":["parseLocation","location","console","warn","getOriginForLocation","us","global","props","micMuted","volume","serverLocation","defaultOptions","_objectWithoutPropertiesLoose","_excluded","conversationRef","useRef","lockRef","_useState","useState","status","setStatus","_useState2","canSendFeedback","setCanSendFeedback","_useState3","mode","setMode","useEffect","_conversationRef$curr","undefined","current","setMicMuted","_conversationRef$curr2","setVolume","_conversationRef$curr3","endSession","startSession","options","_conversationRef$curr4","_exit","_temp2","_result","origin","Conversation","_extends","overrides","_defaultOptions$overr","_options$overrides","client","_defaultOptions$overr2","_defaultOptions$overr3","_options$overrides$cl","_options$overrides2","source","_options$overrides3","_defaultOptions$overr4","version","_options$overrides4","_defaultOptions$overr5","onConnect","onDisconnect","onError","onMessage","onAudio","onDebug","onUnhandledClientToolCall","onVadScore","onModeChange","_ref","_ref2","onStatusChange","_ref3","_ref4","onCanSendFeedbackChange","_ref5","_ref6","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref7","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","changeInputDevice","config","_temp4","_exit2","_result3","Error","_temp3","_await$conversationRe","changeOutputDevice","_exit3","_temp6","_result4","_temp5","_await$conversationRe2","isSpeaking"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{useRef as n,useState as e,useEffect as l}from"react";import{Conversation as r}from"@elevenlabs/client";export{postOverallFeedback}from"@elevenlabs/client";function u(){return u=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var l=arguments[e];for(var r in l)({}).hasOwnProperty.call(l,r)&&(n[r]=l[r])}return n},u.apply(null,arguments)}const o=["micMuted","volume","serverLocation"];function t(n="us"){switch(n){case"eu-residency":case"in-residency":case"us":case"global":return n;default:return console.warn(`[ConversationalAI] Invalid server-location: ${n}. Defaulting to "us"`),"us"}}function i(n){return{us:"wss://api.elevenlabs.io","eu-residency":"wss://api.eu.residency.elevenlabs.io","in-residency":"wss://api.in.residency.elevenlabs.io",global:"wss://api.elevenlabs.io"}[n]}function a(a={}){const{micMuted:s,volume:d,serverLocation:c}=a,v=function(n,e){if(null==n)return{};var l={};for(var r in n)if({}.hasOwnProperty.call(n,r)){if(-1!==e.indexOf(r))continue;l[r]=n[r]}return l}(a,o),g=n(null),p=n(null),[C,m]=e("disconnected"),[b,y]=e(!1),[f,S]=e("listening");return l(()=>{var n;void 0!==s&&(null==g||null==(n=g.current)||n.setMicMuted(s))},[s]),l(()=>{var n;void 0!==d&&(null==g||null==(n=g.current)||n.setVolume({volume:d}))},[d]),l(()=>()=>{var n;null==(n=g.current)||n.endSession()},[]),{startSession:async n=>{var e;if(null!=(e=g.current)&&e.isOpen())return g.current.getId();if(p.current)return(await p.current).getId();try{var l,o,a,C,b,f,M,h,F,k;const e=i(t((null==n?void 0:n.serverLocation)||c));return p.current=r.startSession(u({},null!=v?v:{},null!=n?n:{},{origin:e,overrides:u({},null!=(l=null==v?void 0:v.overrides)?l:{},null!=(o=null==n?void 0:n.overrides)?o:{},{client:u({},null!=(a=null==v||null==(C=v.overrides)?void 0:C.client)?a:{},null!=(b=null==n||null==(f=n.overrides)?void 0:f.client)?b:{},{source:(null==n||null==(M=n.overrides)||null==(M=M.client)?void 0:M.source)||(null==v||null==(h=v.overrides)||null==(h=h.client)?void 0:h.source)||"react_sdk",version:(null==n||null==(F=n.overrides)||null==(F=F.client)?void 0:F.version)||(null==v||null==(k=v.overrides)||null==(k=k.client)?void 0:k.version)||"0.5.2"})}),onConnect:(null==n?void 0:n.onConnect)||(null==v?void 0:v.onConnect),onDisconnect:(null==n?void 0:n.onDisconnect)||(null==v?void 0:v.onDisconnect),onError:(null==n?void 0:n.onError)||(null==v?void 0:v.onError),onMessage:(null==n?void 0:n.onMessage)||(null==v?void 0:v.onMessage),onAudio:(null==n?void 0:n.onAudio)||(null==v?void 0:v.onAudio),onDebug:(null==n?void 0:n.onDebug)||(null==v?void 0:v.onDebug),onUnhandledClientToolCall:(null==n?void 0:n.onUnhandledClientToolCall)||(null==v?void 0:v.onUnhandledClientToolCall),onVadScore:(null==n?void 0:n.onVadScore)||(null==v?void 0:v.onVadScore),onModeChange:({mode:e})=>{var l;S(e),null==(l=(null==n?void 0:n.onModeChange)||(null==v?void 0:v.onModeChange))||l({mode:e})},onStatusChange:({status:e})=>{var l;m(e),null==(l=(null==n?void 0:n.onStatusChange)||(null==v?void 0:v.onStatusChange))||l({status:e})},onCanSendFeedbackChange:({canSendFeedback:e})=>{var l;y(e),null==(l=(null==n?void 0:n.onCanSendFeedbackChange)||(null==v?void 0:v.onCanSendFeedbackChange))||l({canSendFeedback:e})}})),g.current=await p.current,void 0!==s&&g.current.setMicMuted(s),void 0!==d&&g.current.setVolume({volume:d}),g.current.getId()}finally{p.current=null}},endSession:async()=>{const n=g.current;g.current=null,await(null==n?void 0:n.endSession())},setVolume:({volume:n})=>{var e;null==(e=g.current)||e.setVolume({volume:n})},getInputByteFrequencyData:()=>{var n;return null==(n=g.current)?void 0:n.getInputByteFrequencyData()},getOutputByteFrequencyData:()=>{var n;return null==(n=g.current)?void 0:n.getOutputByteFrequencyData()},getInputVolume:()=>{var n,e;return null!=(n=null==(e=g.current)?void 0:e.getInputVolume())?n:0},getOutputVolume:()=>{var n,e;return null!=(n=null==(e=g.current)?void 0:e.getOutputVolume())?n:0},sendFeedback:n=>{var e;null==(e=g.current)||e.sendFeedback(n)},getId:()=>{var n;return null==(n=g.current)?void 0:n.getId()},sendContextualUpdate:n=>{var e;null==(e=g.current)||e.sendContextualUpdate(n)},sendUserMessage:n=>{var e;null==(e=g.current)||e.sendUserMessage(n)},sendUserActivity:()=>{var n;null==(n=g.current)||n.sendUserActivity()},sendMCPToolApprovalResult:(n,e)=>{var l;null==(l=g.current)||l.sendMCPToolApprovalResult(n,e)},status:C,canSendFeedback:b,micMuted:s,isSpeaking:"speaking"===f}}export{i as getOriginForLocation,t as parseLocation,a as useConversation};
1
+ import{useRef as n,useState as e,useEffect as l}from"react";import{Conversation as r}from"@elevenlabs/client";export{postOverallFeedback}from"@elevenlabs/client";function u(){return u=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var l=arguments[e];for(var r in l)({}).hasOwnProperty.call(l,r)&&(n[r]=l[r])}return n},u.apply(null,arguments)}const o=["micMuted","volume","serverLocation"];function t(n="us"){switch(n){case"eu-residency":case"in-residency":case"us":case"global":return n;default:return console.warn(`[ConversationalAI] Invalid server-location: ${n}. Defaulting to "us"`),"us"}}function i(n){return{us:"wss://api.elevenlabs.io","eu-residency":"wss://api.eu.residency.elevenlabs.io","in-residency":"wss://api.in.residency.elevenlabs.io",global:"wss://api.elevenlabs.io"}[n]}function a(a={}){const{micMuted:c,volume:s,serverLocation:d}=a,v=function(n,e){if(null==n)return{};var l={};for(var r in n)if({}.hasOwnProperty.call(n,r)){if(-1!==e.indexOf(r))continue;l[r]=n[r]}return l}(a,o),g=n(null),p=n(null),[y,h]=e("disconnected"),[C,b]=e(!1),[f,m]=e("listening");return l(()=>{var n;void 0!==c&&(null==g||null==(n=g.current)||n.setMicMuted(c))},[c]),l(()=>{var n;void 0!==s&&(null==g||null==(n=g.current)||n.setVolume({volume:s}))},[s]),l(()=>()=>{var n;null==(n=g.current)||n.endSession()},[]),{startSession:async n=>{var e;if(null!=(e=g.current)&&e.isOpen())return g.current.getId();if(p.current)return(await p.current).getId();try{var l,o,a,y,C,f,w,D,S,M;const e=i(t((null==n?void 0:n.serverLocation)||d));return p.current=r.startSession(u({},null!=v?v:{},null!=n?n:{},{origin:e,overrides:u({},null!=(l=null==v?void 0:v.overrides)?l:{},null!=(o=null==n?void 0:n.overrides)?o:{},{client:u({},null!=(a=null==v||null==(y=v.overrides)?void 0:y.client)?a:{},null!=(C=null==n||null==(f=n.overrides)?void 0:f.client)?C:{},{source:(null==n||null==(w=n.overrides)||null==(w=w.client)?void 0:w.source)||(null==v||null==(D=v.overrides)||null==(D=D.client)?void 0:D.source)||"react_sdk",version:(null==n||null==(S=n.overrides)||null==(S=S.client)?void 0:S.version)||(null==v||null==(M=v.overrides)||null==(M=M.client)?void 0:M.version)||"0.6.0"})}),onConnect:(null==n?void 0:n.onConnect)||(null==v?void 0:v.onConnect),onDisconnect:(null==n?void 0:n.onDisconnect)||(null==v?void 0:v.onDisconnect),onError:(null==n?void 0:n.onError)||(null==v?void 0:v.onError),onMessage:(null==n?void 0:n.onMessage)||(null==v?void 0:v.onMessage),onAudio:(null==n?void 0:n.onAudio)||(null==v?void 0:v.onAudio),onDebug:(null==n?void 0:n.onDebug)||(null==v?void 0:v.onDebug),onUnhandledClientToolCall:(null==n?void 0:n.onUnhandledClientToolCall)||(null==v?void 0:v.onUnhandledClientToolCall),onVadScore:(null==n?void 0:n.onVadScore)||(null==v?void 0:v.onVadScore),onModeChange:({mode:e})=>{var l;m(e),null==(l=(null==n?void 0:n.onModeChange)||(null==v?void 0:v.onModeChange))||l({mode:e})},onStatusChange:({status:e})=>{var l;h(e),null==(l=(null==n?void 0:n.onStatusChange)||(null==v?void 0:v.onStatusChange))||l({status:e})},onCanSendFeedbackChange:({canSendFeedback:e})=>{var l;b(e),null==(l=(null==n?void 0:n.onCanSendFeedbackChange)||(null==v?void 0:v.onCanSendFeedbackChange))||l({canSendFeedback:e})}})),g.current=await p.current,void 0!==c&&g.current.setMicMuted(c),void 0!==s&&g.current.setVolume({volume:s}),g.current.getId()}finally{p.current=null}},endSession:async()=>{const n=g.current;g.current=null,await(null==n?void 0:n.endSession())},setVolume:({volume:n})=>{var e;null==(e=g.current)||e.setVolume({volume:n})},getInputByteFrequencyData:()=>{var n;return null==(n=g.current)?void 0:n.getInputByteFrequencyData()},getOutputByteFrequencyData:()=>{var n;return null==(n=g.current)?void 0:n.getOutputByteFrequencyData()},getInputVolume:()=>{var n,e;return null!=(n=null==(e=g.current)?void 0:e.getInputVolume())?n:0},getOutputVolume:()=>{var n,e;return null!=(n=null==(e=g.current)?void 0:e.getOutputVolume())?n:0},sendFeedback:n=>{var e;null==(e=g.current)||e.sendFeedback(n)},getId:()=>{var n;return null==(n=g.current)?void 0:n.getId()},sendContextualUpdate:n=>{var e;null==(e=g.current)||e.sendContextualUpdate(n)},sendUserMessage:n=>{var e;null==(e=g.current)||e.sendUserMessage(n)},sendUserActivity:()=>{var n;null==(n=g.current)||n.sendUserActivity()},sendMCPToolApprovalResult:(n,e)=>{var l;null==(l=g.current)||l.sendMCPToolApprovalResult(n,e)},changeInputDevice:async n=>{if(g.current&&"changeInputDevice"in g.current)return await g.current.changeInputDevice(n);throw new Error("Device switching is only available for voice conversations")},changeOutputDevice:async n=>{if(g.current&&"changeOutputDevice"in g.current)return await g.current.changeOutputDevice(n);throw new Error("Device switching is only available for voice conversations")},status:y,canSendFeedback:C,micMuted:c,isSpeaking:"speaking"===f}}export{i as getOriginForLocation,t as parseLocation,a as useConversation};
2
2
  //# sourceMappingURL=lib.modern.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lib.modern.js","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.5.2\";\n","import { useEffect, useRef, useState } from \"react\";\nimport {\n Conversation,\n Mode,\n SessionConfig,\n Callbacks,\n Options,\n Status,\n ClientToolsConfig,\n InputConfig,\n VadScoreEvent,\n} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type Location = \"us\" | \"global\" | \"eu-residency\" | \"in-residency\";\n\nexport function parseLocation(location: string = \"us\"): Location {\n switch (location) {\n case \"eu-residency\":\n case \"in-residency\":\n case \"us\":\n case \"global\":\n return location;\n default:\n console.warn(\n `[ConversationalAI] Invalid server-location: ${location}. Defaulting to \"us\"`\n );\n return \"us\";\n }\n}\n\nexport function getOriginForLocation(location: Location): string {\n const originMap: Record<Location, string> = {\n us: \"wss://api.elevenlabs.io\",\n \"eu-residency\": \"wss://api.eu.residency.elevenlabs.io\",\n \"in-residency\": \"wss://api.in.residency.elevenlabs.io\",\n global: \"wss://api.elevenlabs.io\",\n };\n\n return originMap[location];\n}\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n VadScoreEvent,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig &\n HookCallbacks &\n ClientToolsConfig &\n InputConfig & {\n serverLocation?: Location | string;\n }\n>;\nexport type ControlledState = {\n micMuted?: boolean;\n volume?: number;\n};\nexport type HookCallbacks = Pick<\n Callbacks,\n | \"onConnect\"\n | \"onDisconnect\"\n | \"onError\"\n | \"onMessage\"\n | \"onAudio\"\n | \"onModeChange\"\n | \"onStatusChange\"\n | \"onCanSendFeedbackChange\"\n | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n | \"onVadScore\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, serverLocation, ...defaultOptions } = props;\n const conversationRef = useRef<Conversation | null>(null);\n const lockRef = useRef<Promise<Conversation> | null>(null);\n const [status, setStatus] = useState<Status>(\"disconnected\");\n const [canSendFeedback, setCanSendFeedback] = useState(false);\n const [mode, setMode] = useState<Mode>(\"listening\");\n\n useEffect(() => {\n if (micMuted !== undefined) {\n conversationRef?.current?.setMicMuted(micMuted);\n }\n }, [micMuted]);\n\n useEffect(() => {\n if (volume !== undefined) {\n conversationRef?.current?.setVolume({ volume });\n }\n }, [volume]);\n\n useEffect(() => {\n return () => {\n conversationRef.current?.endSession();\n };\n }, []);\n\n return {\n startSession: (async (options?: HookOptions) => {\n if (conversationRef.current?.isOpen()) {\n return conversationRef.current.getId();\n }\n\n if (lockRef.current) {\n const conversation = await lockRef.current;\n return conversation.getId();\n }\n\n try {\n const resolvedServerLocation = parseLocation(\n options?.serverLocation || serverLocation\n );\n const origin = getOriginForLocation(resolvedServerLocation);\n\n lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\n origin,\n overrides: {\n ...(defaultOptions?.overrides ?? {}),\n ...(options?.overrides ?? {}),\n client: {\n ...(defaultOptions?.overrides?.client ?? {}),\n ...(options?.overrides?.client ?? {}),\n source:\n options?.overrides?.client?.source ||\n defaultOptions?.overrides?.client?.source ||\n \"react_sdk\",\n version:\n options?.overrides?.client?.version ||\n defaultOptions?.overrides?.client?.version ||\n PACKAGE_VERSION,\n },\n },\n // Pass through user-provided callbacks\n onConnect: options?.onConnect || defaultOptions?.onConnect,\n onDisconnect: options?.onDisconnect || defaultOptions?.onDisconnect,\n onError: options?.onError || defaultOptions?.onError,\n onMessage: options?.onMessage || defaultOptions?.onMessage,\n onAudio: options?.onAudio || defaultOptions?.onAudio,\n onDebug: options?.onDebug || defaultOptions?.onDebug,\n onUnhandledClientToolCall:\n options?.onUnhandledClientToolCall ||\n defaultOptions?.onUnhandledClientToolCall,\n onVadScore: options?.onVadScore || defaultOptions?.onVadScore,\n onModeChange: ({ mode }) => {\n setMode(mode);\n (options?.onModeChange || defaultOptions?.onModeChange)?.({ mode });\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n (options?.onStatusChange || defaultOptions?.onStatusChange)?.({\n status,\n });\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(canSendFeedback);\n (\n options?.onCanSendFeedbackChange ||\n defaultOptions?.onCanSendFeedbackChange\n )?.({ canSendFeedback });\n },\n } as Options);\n\n conversationRef.current = await lockRef.current;\n // Persist controlled state between sessions\n if (micMuted !== undefined) {\n conversationRef.current.setMicMuted(micMuted);\n }\n if (volume !== undefined) {\n conversationRef.current.setVolume({ volume });\n }\n\n return conversationRef.current.getId();\n } finally {\n lockRef.current = null;\n }\n }) as T extends SessionConfig\n ? (options?: HookOptions) => Promise<string>\n : (options: SessionConfig & HookOptions) => Promise<string>,\n endSession: async () => {\n const conversation = conversationRef.current;\n conversationRef.current = null;\n await conversation?.endSession();\n },\n setVolume: ({ volume }: { volume: number }) => {\n conversationRef.current?.setVolume({ volume });\n },\n getInputByteFrequencyData: () => {\n return conversationRef.current?.getInputByteFrequencyData();\n },\n getOutputByteFrequencyData: () => {\n return conversationRef.current?.getOutputByteFrequencyData();\n },\n getInputVolume: () => {\n return conversationRef.current?.getInputVolume() ?? 0;\n },\n getOutputVolume: () => {\n return conversationRef.current?.getOutputVolume() ?? 0;\n },\n sendFeedback: (like: boolean) => {\n conversationRef.current?.sendFeedback(like);\n },\n getId: () => {\n return conversationRef.current?.getId();\n },\n sendContextualUpdate: (text: string) => {\n conversationRef.current?.sendContextualUpdate(text);\n },\n sendUserMessage: (text: string) => {\n conversationRef.current?.sendUserMessage(text);\n },\n sendUserActivity: () => {\n conversationRef.current?.sendUserActivity();\n },\n sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => {\n conversationRef.current?.sendMCPToolApprovalResult(\n toolCallId,\n isApproved\n );\n },\n status,\n canSendFeedback,\n micMuted,\n isSpeaking: mode === \"speaking\",\n };\n}\n\n// const con = useConversation({agentId: \"\"})\n"],"names":["_excluded","parseLocation","location","console","warn","getOriginForLocation","us","global","useConversation","props","micMuted","volume","serverLocation","defaultOptions","_objectWithoutPropertiesLoose","conversationRef","useRef","lockRef","status","setStatus","useState","canSendFeedback","setCanSendFeedback","mode","setMode","useEffect","_conversationRef$curr","undefined","current","setMicMuted","_conversationRef$curr2","setVolume","_conversationRef$curr3","endSession","startSession","async","_conversationRef$curr4","isOpen","getId","_defaultOptions$overr","_options$overrides","_defaultOptions$overr2","_defaultOptions$overr3","_options$overrides$cl","_options$overrides2","_options$overrides3","_defaultOptions$overr4","_options$overrides4","_defaultOptions$overr5","origin","options","Conversation","_extends","overrides","client","source","version","onConnect","onDisconnect","onError","onMessage","onAudio","onDebug","onUnhandledClientToolCall","onVadScore","onModeChange","_ref","onStatusChange","_ref2","onCanSendFeedbackChange","_ref3","conversation","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","isSpeaking"],"mappings":"0XACa,MCDbA,EAAA,CAAA,WAAA,SAAA,kBAiBgB,SAAAC,EAAcC,EAAmB,MAC/C,OAAQA,GACN,IAAK,eACL,IAAK,eACL,IAAK,KACL,IAAK,SACH,OAAOA,EACT,QAIE,OAHAC,QAAQC,KACN,+CAA+CF,yBAE1C,KAEb,CAEM,SAAUG,EAAqBH,GAQnC,MAP4C,CAC1CI,GAAI,0BACJ,eAAgB,uCAChB,eAAgB,uCAChBC,OAAQ,2BAGOL,EACnB,CAwCgB,SAAAM,EACdC,EAAW,CAAA,GAEX,MAAMC,SAAEA,EAAQC,OAAEA,EAAMC,eAAEA,GAAsCH,EAAnBI,6IAAcC,CAAKL,EAAKT,GAC/De,EAAkBC,EAA4B,MAC9CC,EAAUD,EAAqC,OAC9CE,EAAQC,GAAaC,EAAiB,iBACtCC,EAAiBC,GAAsBF,GAAS,IAChDG,EAAMC,GAAWJ,EAAe,aAoBvC,OAlBAK,EAAU,KACoB,IAAAC,OAAXC,IAAbjB,IACagB,MAAfX,UAAeW,EAAfX,EAAiBa,UAAjBF,EAA0BG,YAAYnB,KAEvC,CAACA,IAEJe,EAAU,KACkBK,IAAAA,OAAXH,IAAXhB,UACFI,GAAwB,OAATe,EAAff,EAAiBa,UAAjBE,EAA0BC,UAAU,CAAEpB,aAEvC,CAACA,IAEJc,EAAU,IACD,KAAKO,IAAAA,EACVA,OAAAA,EAAAjB,EAAgBa,UAAhBI,EAAyBC,cAE1B,IAEI,CACLC,aAAeC,UAAgC,IAAAC,EAC7C,GAA2B,OAA3BA,EAAIrB,EAAgBa,UAAhBQ,EAAyBC,SAC3B,OAAOtB,EAAgBa,QAAQU,QAGjC,GAAIrB,EAAQW,QAEV,aAD2BX,EAAQW,SACfU,QAGtB,QAAIC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACF,MAGMC,EAAS5C,EAHgBJ,GAC7BiD,MAAAA,OAAAA,EAAAA,EAAStC,iBAAkBA,IA+D7B,OA3DAK,EAAQW,QAAUuB,EAAajB,aAAYkB,EAAA,CAAA,EACrCvC,MAAAA,EAAAA,EAAkB,CAAE,EACb,MAAPqC,EAAAA,EAAW,CAAE,EAAA,CACjBD,SACAI,UAASD,EAAAb,CAAAA,SAAAA,EACH1B,MAAAA,OAAAA,EAAAA,EAAgBwC,WAASd,EAAI,CAAA,EACXC,OADaA,EACxB,MAAPU,OAAO,EAAPA,EAASG,WAASb,EAAI,CAAA,EAAE,CAC5Bc,OAAMF,EAAAX,CAAAA,EACiC,OADjCA,EACcC,MAAd7B,GAAyB,OAAX6B,EAAd7B,EAAgBwC,gBAAS,EAAzBX,EAA2BY,QAAMb,EAAI,CAAA,EACX,OADaE,EAChCC,MAAPM,GAAkB,OAAXN,EAAPM,EAASG,gBAAS,EAAlBT,EAAoBU,QAAMX,EAAI,GAAE,CACpCY,cACEL,GAAkB,OAAXL,EAAPK,EAASG,YAATR,OAAkBA,EAAlBA,EAAoBS,aAApBT,EAAAA,EAA4BU,UACd,MAAd1C,GAAyBiC,OAAXA,EAAdjC,EAAgBwC,YAAiB,OAARP,EAAzBA,EAA2BQ,aAAM,EAAjCR,EAAmCS,SACnC,YACFC,SACS,MAAPN,GAAkBH,OAAXA,EAAPG,EAASG,YAAiB,OAARN,EAAlBA,EAAoBO,aAAM,EAA1BP,EAA4BS,WACdR,MAAdnC,UAAcmC,EAAdnC,EAAgBwC,YAAiB,OAARL,EAAzBA,EAA2BM,aAAM,EAAjCN,EAAmCQ,UD7IpB,YCkJrBC,WAAWP,MAAAA,OAAAA,EAAAA,EAASO,aAA2B,MAAd5C,OAAc,EAAdA,EAAgB4C,WACjDC,cAAqB,MAAPR,OAAO,EAAPA,EAASQ,gBAAgB7C,MAAAA,OAAAA,EAAAA,EAAgB6C,cACvDC,SAAST,MAAAA,OAAAA,EAAAA,EAASS,iBAAW9C,SAAAA,EAAgB8C,SAC7CC,iBAAWV,SAAAA,EAASU,aAA2B,MAAd/C,OAAc,EAAdA,EAAgB+C,WACjDC,SAAgB,MAAPX,OAAO,EAAPA,EAASW,WAAWhD,MAAAA,OAAAA,EAAAA,EAAgBgD,SAC7CC,SAASZ,MAAAA,OAAAA,EAAAA,EAASY,WAAyB,MAAdjD,OAAc,EAAdA,EAAgBiD,SAC7CC,2BACS,MAAPb,OAAO,EAAPA,EAASa,6BACTlD,MAAAA,OAAAA,EAAAA,EAAgBkD,2BAClBC,YAAYd,MAAAA,OAAAA,EAAAA,EAASc,cAA4B,MAAdnD,OAAc,EAAdA,EAAgBmD,YACnDC,aAAcA,EAAG1C,WAAU,IAAA2C,EACzB1C,EAAQD,UACR2C,GAAQ,MAAPhB,OAAO,EAAPA,EAASe,gBAAgBpD,MAAAA,OAAAA,EAAAA,EAAgBoD,gBAA1CC,EAA0D,CAAE3C,UAE9D4C,eAAgBA,EAAGjD,aAAY,IAAAkD,EAC7BjD,EAAUD,GACgD,OAA1DkD,GAAClB,MAAAA,OAAAA,EAAAA,EAASiB,kBAAkBtD,MAAAA,OAAAA,EAAAA,EAAgBsD,kBAA5CC,EAA8D,CAC5DlD,YAGJmD,wBAAyBA,EAAGhD,sBAAqB,IAAAiD,EAC/ChD,EAAmBD,GAGsB,OAFzCiD,GACEpB,MAAAA,OAAAA,EAAAA,EAASmB,iCACTxD,SAAAA,EAAgBwD,2BAFlBC,EAGI,CAAEjD,wBAIVN,EAAgBa,cAAgBX,EAAQW,aAEvBD,IAAbjB,GACFK,EAAgBa,QAAQC,YAAYnB,QAEvBiB,IAAXhB,GACFI,EAAgBa,QAAQG,UAAU,CAAEpB,WAG/BI,EAAgBa,QAAQU,OACjC,CAAC,QACCrB,EAAQW,QAAU,IACpB,GAIFK,WAAYE,UACV,MAAMoC,EAAexD,EAAgBa,QACrCb,EAAgBa,QAAU,WACR,MAAZ2C,OAAY,EAAZA,EAActC,eAEtBF,UAAWA,EAAGpB,aAAgC,IAAA6D,EAC5CA,OAAAA,EAAAzD,EAAgBa,UAAhB4C,EAAyBzC,UAAU,CAAEpB,YAEvC8D,0BAA2BA,SAAKC,EAC9B,cAAAA,EAAO3D,EAAgBa,gBAAhB8C,EAAyBD,6BAElCE,2BAA4BA,KAAK,IAAAC,EAC/B,OAA8B,OAA9BA,EAAO7D,EAAgBa,cAAO,EAAvBgD,EAAyBD,8BAElCE,eAAgBA,KAAKC,IAAAA,EAAAC,EACnB,OAAgDD,OAAhDA,EAA8B,OAA9BC,EAAOhE,EAAgBa,cAAO,EAAvBmD,EAAyBF,kBAAgBC,EAAI,GAEtDE,gBAAiBA,KAAK,IAAAC,EAAAC,EACpB,OAAiD,OAAjDD,EAAOC,OAAPA,EAAOnE,EAAgBa,cAAhBsD,EAAAA,EAAyBF,mBAAiBC,EAAI,GAEvDE,aAAeC,IAAiBC,IAAAA,EAC9BA,OAAAA,EAAAtE,EAAgBa,UAAhByD,EAAyBF,aAAaC,IAExC9C,MAAOA,KAAK,IAAAgD,EACV,OAAOA,OAAPA,EAAOvE,EAAgBa,cAAhB0D,EAAAA,EAAyBhD,SAElCiD,qBAAuBC,IAAgB,IAAAC,EACd,OAAvBA,EAAA1E,EAAgBa,UAAhB6D,EAAyBF,qBAAqBC,IAEhDE,gBAAkBF,IAAgBG,IAAAA,EAChCA,OAAAA,EAAA5E,EAAgBa,UAAhB+D,EAAyBD,gBAAgBF,IAE3CI,iBAAkBA,KAAK,IAAAC,EACE,OAAvBA,EAAA9E,EAAgBa,UAAhBiE,EAAyBD,oBAE3BE,0BAA2BA,CAACC,EAAoBC,KAAuBC,IAAAA,EACrEA,OAAAA,EAAAlF,EAAgBa,UAAhBqE,EAAyBH,0BACvBC,EACAC,IAGJ9E,SACAG,kBACAX,WACAwF,WAAqB,aAAT3E,EAEhB"}
1
+ {"version":3,"file":"lib.modern.js","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.6.0\";\n","import { useEffect, useRef, useState } from \"react\";\nimport {\n Conversation,\n SessionConfig,\n Options,\n ClientToolsConfig,\n InputConfig,\n type Mode,\n type Status,\n type Callbacks,\n type VadScoreEvent,\n} from \"@elevenlabs/client\";\n\n// Device configuration types for audio device switching\nexport type DeviceFormatConfig = {\n format: \"pcm\" | \"ulaw\";\n sampleRate: number;\n outputDeviceId?: string;\n};\n\nexport type DeviceInputConfig = {\n preferHeadphonesForIosDevices?: boolean;\n inputDeviceId?: string;\n};\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type Location = \"us\" | \"global\" | \"eu-residency\" | \"in-residency\";\n\nexport function parseLocation(location: string = \"us\"): Location {\n switch (location) {\n case \"eu-residency\":\n case \"in-residency\":\n case \"us\":\n case \"global\":\n return location;\n default:\n console.warn(\n `[ConversationalAI] Invalid server-location: ${location}. Defaulting to \"us\"`\n );\n return \"us\";\n }\n}\n\nexport function getOriginForLocation(location: Location): string {\n const originMap: Record<Location, string> = {\n us: \"wss://api.elevenlabs.io\",\n \"eu-residency\": \"wss://api.eu.residency.elevenlabs.io\",\n \"in-residency\": \"wss://api.in.residency.elevenlabs.io\",\n global: \"wss://api.elevenlabs.io\",\n };\n\n return originMap[location];\n}\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n VadScoreEvent,\n InputConfig,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig &\n HookCallbacks &\n ClientToolsConfig &\n InputConfig & {\n serverLocation?: Location | string;\n }\n>;\nexport type ControlledState = {\n micMuted?: boolean;\n volume?: number;\n};\nexport type HookCallbacks = Pick<\n Callbacks,\n | \"onConnect\"\n | \"onDisconnect\"\n | \"onError\"\n | \"onMessage\"\n | \"onAudio\"\n | \"onModeChange\"\n | \"onStatusChange\"\n | \"onCanSendFeedbackChange\"\n | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n | \"onVadScore\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, serverLocation, ...defaultOptions } = props;\n const conversationRef = useRef<Conversation | null>(null);\n const lockRef = useRef<Promise<Conversation> | null>(null);\n const [status, setStatus] = useState<Status>(\"disconnected\");\n const [canSendFeedback, setCanSendFeedback] = useState(false);\n const [mode, setMode] = useState<Mode>(\"listening\");\n\n useEffect(() => {\n if (micMuted !== undefined) {\n conversationRef?.current?.setMicMuted(micMuted);\n }\n }, [micMuted]);\n\n useEffect(() => {\n if (volume !== undefined) {\n conversationRef?.current?.setVolume({ volume });\n }\n }, [volume]);\n\n useEffect(() => {\n return () => {\n conversationRef.current?.endSession();\n };\n }, []);\n\n return {\n startSession: (async (options?: HookOptions) => {\n if (conversationRef.current?.isOpen()) {\n return conversationRef.current.getId();\n }\n\n if (lockRef.current) {\n const conversation = await lockRef.current;\n return conversation.getId();\n }\n\n try {\n const resolvedServerLocation = parseLocation(\n options?.serverLocation || serverLocation\n );\n const origin = getOriginForLocation(resolvedServerLocation);\n\n lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\n origin,\n overrides: {\n ...(defaultOptions?.overrides ?? {}),\n ...(options?.overrides ?? {}),\n client: {\n ...(defaultOptions?.overrides?.client ?? {}),\n ...(options?.overrides?.client ?? {}),\n source:\n options?.overrides?.client?.source ||\n defaultOptions?.overrides?.client?.source ||\n \"react_sdk\",\n version:\n options?.overrides?.client?.version ||\n defaultOptions?.overrides?.client?.version ||\n PACKAGE_VERSION,\n },\n },\n // Pass through user-provided callbacks\n onConnect: options?.onConnect || defaultOptions?.onConnect,\n onDisconnect: options?.onDisconnect || defaultOptions?.onDisconnect,\n onError: options?.onError || defaultOptions?.onError,\n onMessage: options?.onMessage || defaultOptions?.onMessage,\n onAudio: options?.onAudio || defaultOptions?.onAudio,\n onDebug: options?.onDebug || defaultOptions?.onDebug,\n onUnhandledClientToolCall:\n options?.onUnhandledClientToolCall ||\n defaultOptions?.onUnhandledClientToolCall,\n onVadScore: options?.onVadScore || defaultOptions?.onVadScore,\n onModeChange: ({ mode }) => {\n setMode(mode);\n (options?.onModeChange || defaultOptions?.onModeChange)?.({ mode });\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n (options?.onStatusChange || defaultOptions?.onStatusChange)?.({\n status,\n });\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(canSendFeedback);\n (\n options?.onCanSendFeedbackChange ||\n defaultOptions?.onCanSendFeedbackChange\n )?.({ canSendFeedback });\n },\n } as Options);\n\n conversationRef.current = await lockRef.current;\n // Persist controlled state between sessions\n if (micMuted !== undefined) {\n conversationRef.current.setMicMuted(micMuted);\n }\n if (volume !== undefined) {\n conversationRef.current.setVolume({ volume });\n }\n\n return conversationRef.current.getId();\n } finally {\n lockRef.current = null;\n }\n }) as T extends SessionConfig\n ? (options?: HookOptions) => Promise<string>\n : (options: SessionConfig & HookOptions) => Promise<string>,\n endSession: async () => {\n const conversation = conversationRef.current;\n conversationRef.current = null;\n await conversation?.endSession();\n },\n setVolume: ({ volume }: { volume: number }) => {\n conversationRef.current?.setVolume({ volume });\n },\n getInputByteFrequencyData: () => {\n return conversationRef.current?.getInputByteFrequencyData();\n },\n getOutputByteFrequencyData: () => {\n return conversationRef.current?.getOutputByteFrequencyData();\n },\n getInputVolume: () => {\n return conversationRef.current?.getInputVolume() ?? 0;\n },\n getOutputVolume: () => {\n return conversationRef.current?.getOutputVolume() ?? 0;\n },\n sendFeedback: (like: boolean) => {\n conversationRef.current?.sendFeedback(like);\n },\n getId: () => {\n return conversationRef.current?.getId();\n },\n sendContextualUpdate: (text: string) => {\n conversationRef.current?.sendContextualUpdate(text);\n },\n sendUserMessage: (text: string) => {\n conversationRef.current?.sendUserMessage(text);\n },\n sendUserActivity: () => {\n conversationRef.current?.sendUserActivity();\n },\n sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => {\n conversationRef.current?.sendMCPToolApprovalResult(\n toolCallId,\n isApproved\n );\n },\n changeInputDevice: async (\n config: DeviceFormatConfig & DeviceInputConfig\n ) => {\n if (\n conversationRef.current &&\n \"changeInputDevice\" in conversationRef.current\n ) {\n return await (\n conversationRef.current as unknown as {\n changeInputDevice: (config: any) => Promise<any>;\n }\n ).changeInputDevice(config);\n }\n throw new Error(\n \"Device switching is only available for voice conversations\"\n );\n },\n changeOutputDevice: async (config: DeviceFormatConfig) => {\n if (\n conversationRef.current &&\n \"changeOutputDevice\" in conversationRef.current\n ) {\n return await (\n conversationRef.current as unknown as {\n changeOutputDevice: (config: any) => Promise<any>;\n }\n ).changeOutputDevice(config);\n }\n throw new Error(\n \"Device switching is only available for voice conversations\"\n );\n },\n status,\n canSendFeedback,\n micMuted,\n isSpeaking: mode === \"speaking\",\n };\n}\n\n// const con = useConversation({agentId: \"\"})\n"],"names":["_excluded","parseLocation","location","console","warn","getOriginForLocation","us","global","useConversation","props","micMuted","volume","serverLocation","defaultOptions","_objectWithoutPropertiesLoose","conversationRef","useRef","lockRef","status","setStatus","useState","canSendFeedback","setCanSendFeedback","mode","setMode","useEffect","_conversationRef$curr","undefined","current","setMicMuted","_conversationRef$curr2","setVolume","_conversationRef$curr3","endSession","startSession","async","_conversationRef$curr4","isOpen","getId","_defaultOptions$overr","_options$overrides","_defaultOptions$overr2","_defaultOptions$overr3","_options$overrides$cl","_options$overrides2","_options$overrides3","_defaultOptions$overr4","_options$overrides4","_defaultOptions$overr5","origin","options","Conversation","_extends","overrides","client","source","version","onConnect","onDisconnect","onError","onMessage","onAudio","onDebug","onUnhandledClientToolCall","onVadScore","onModeChange","_ref","onStatusChange","_ref2","onCanSendFeedbackChange","_ref3","conversation","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","changeInputDevice","config","Error","changeOutputDevice","isSpeaking"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{useRef as n,useState as e,useEffect as l}from"react";import{Conversation as r}from"@elevenlabs/client";export{postOverallFeedback}from"@elevenlabs/client";function u(){return u=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var l=arguments[e];for(var r in l)({}).hasOwnProperty.call(l,r)&&(n[r]=l[r])}return n},u.apply(null,arguments)}var o=["micMuted","volume","serverLocation"];function t(n){switch(void 0===n&&(n="us"),n){case"eu-residency":case"in-residency":case"us":case"global":return n;default:return console.warn("[ConversationalAI] Invalid server-location: "+n+'. Defaulting to "us"'),"us"}}function i(n){return{us:"wss://api.elevenlabs.io","eu-residency":"wss://api.eu.residency.elevenlabs.io","in-residency":"wss://api.in.residency.elevenlabs.io",global:"wss://api.elevenlabs.io"}[n]}function c(c){void 0===c&&(c={});var s=c.micMuted,a=c.volume,d=c.serverLocation,v=function(n,e){if(null==n)return{};var l={};for(var r in n)if({}.hasOwnProperty.call(n,r)){if(-1!==e.indexOf(r))continue;l[r]=n[r]}return l}(c,o),f=n(null),g=n(null),m=e("disconnected"),p=m[0],h=m[1],C=e(!1),b=C[0],y=C[1],S=e("listening"),M=S[0],F=S[1];return l(function(){var n;void 0!==s&&(null==f||null==(n=f.current)||n.setMicMuted(s))},[s]),l(function(){var n;void 0!==a&&(null==f||null==(n=f.current)||n.setVolume({volume:a}))},[a]),l(function(){return function(){var n;null==(n=f.current)||n.endSession()}},[]),{startSession:function(n){try{var e,l,o=function(e){return l?e:function(e,l){try{var o=(O=i(t((null==n?void 0:n.serverLocation)||d)),g.current=r.startSession(u({},null!=v?v:{},null!=n?n:{},{origin:O,overrides:u({},null!=(c=null==v?void 0:v.overrides)?c:{},null!=(m=null==n?void 0:n.overrides)?m:{},{client:u({},null!=(p=null==v||null==(C=v.overrides)?void 0:C.client)?p:{},null!=(b=null==n||null==(S=n.overrides)?void 0:S.client)?b:{},{source:(null==n||null==(M=n.overrides)||null==(M=M.client)?void 0:M.source)||(null==v||null==(k=v.overrides)||null==(k=k.client)?void 0:k.source)||"react_sdk",version:(null==n||null==(D=n.overrides)||null==(D=D.client)?void 0:D.version)||(null==v||null==(I=v.overrides)||null==(I=I.client)?void 0:I.version)||"0.5.2"})}),onConnect:(null==n?void 0:n.onConnect)||(null==v?void 0:v.onConnect),onDisconnect:(null==n?void 0:n.onDisconnect)||(null==v?void 0:v.onDisconnect),onError:(null==n?void 0:n.onError)||(null==v?void 0:v.onError),onMessage:(null==n?void 0:n.onMessage)||(null==v?void 0:v.onMessage),onAudio:(null==n?void 0:n.onAudio)||(null==v?void 0:v.onAudio),onDebug:(null==n?void 0:n.onDebug)||(null==v?void 0:v.onDebug),onUnhandledClientToolCall:(null==n?void 0:n.onUnhandledClientToolCall)||(null==v?void 0:v.onUnhandledClientToolCall),onVadScore:(null==n?void 0:n.onVadScore)||(null==v?void 0:v.onVadScore),onModeChange:function(e){var l,r=e.mode;F(r),null==(l=(null==n?void 0:n.onModeChange)||(null==v?void 0:v.onModeChange))||l({mode:r})},onStatusChange:function(e){var l,r=e.status;h(r),null==(l=(null==n?void 0:n.onStatusChange)||(null==v?void 0:v.onStatusChange))||l({status:r})},onCanSendFeedbackChange:function(e){var l,r=e.canSendFeedback;y(r),null==(l=(null==n?void 0:n.onCanSendFeedbackChange)||(null==v?void 0:v.onCanSendFeedbackChange))||l({canSendFeedback:r})}})),Promise.resolve(g.current).then(function(n){return f.current=n,void 0!==s&&f.current.setMicMuted(s),void 0!==a&&f.current.setVolume({volume:a}),f.current.getId()}))}catch(n){return l(!0,n)}var c,m,p,C,b,S,M,k,D,I,O;return o&&o.then?o.then(l.bind(null,!1),l.bind(null,!0)):l(!1,o)}(0,function(n,e){if(g.current=null,n)throw e;return e})};if(null!=(e=f.current)&&e.isOpen())return Promise.resolve(f.current.getId());var c=function(){if(g.current)return Promise.resolve(g.current).then(function(n){var e=n.getId();return l=1,e})}();return Promise.resolve(c&&c.then?c.then(o):o(c))}catch(n){return Promise.reject(n)}},endSession:function(){try{var n=f.current;return f.current=null,Promise.resolve(null==n?void 0:n.endSession()).then(function(){})}catch(n){return Promise.reject(n)}},setVolume:function(n){var e;null==(e=f.current)||e.setVolume({volume:n.volume})},getInputByteFrequencyData:function(){var n;return null==(n=f.current)?void 0:n.getInputByteFrequencyData()},getOutputByteFrequencyData:function(){var n;return null==(n=f.current)?void 0:n.getOutputByteFrequencyData()},getInputVolume:function(){var n,e;return null!=(n=null==(e=f.current)?void 0:e.getInputVolume())?n:0},getOutputVolume:function(){var n,e;return null!=(n=null==(e=f.current)?void 0:e.getOutputVolume())?n:0},sendFeedback:function(n){var e;null==(e=f.current)||e.sendFeedback(n)},getId:function(){var n;return null==(n=f.current)?void 0:n.getId()},sendContextualUpdate:function(n){var e;null==(e=f.current)||e.sendContextualUpdate(n)},sendUserMessage:function(n){var e;null==(e=f.current)||e.sendUserMessage(n)},sendUserActivity:function(){var n;null==(n=f.current)||n.sendUserActivity()},sendMCPToolApprovalResult:function(n,e){var l;null==(l=f.current)||l.sendMCPToolApprovalResult(n,e)},status:p,canSendFeedback:b,micMuted:s,isSpeaking:"speaking"===M}}export{i as getOriginForLocation,t as parseLocation,c as useConversation};
1
+ import{useRef as n,useState as e,useEffect as r}from"react";import{Conversation as t}from"@elevenlabs/client";export{postOverallFeedback}from"@elevenlabs/client";function u(){return u=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var t in r)({}).hasOwnProperty.call(r,t)&&(n[t]=r[t])}return n},u.apply(null,arguments)}var o=["micMuted","volume","serverLocation"];function l(n){switch(void 0===n&&(n="us"),n){case"eu-residency":case"in-residency":case"us":case"global":return n;default:return console.warn("[ConversationalAI] Invalid server-location: "+n+'. Defaulting to "us"'),"us"}}function i(n){return{us:"wss://api.elevenlabs.io","eu-residency":"wss://api.eu.residency.elevenlabs.io","in-residency":"wss://api.in.residency.elevenlabs.io",global:"wss://api.elevenlabs.io"}[n]}function c(c){void 0===c&&(c={});var s=c.micMuted,a=c.volume,v=c.serverLocation,d=function(n,e){if(null==n)return{};var r={};for(var t in n)if({}.hasOwnProperty.call(n,t)){if(-1!==e.indexOf(t))continue;r[t]=n[t]}return r}(c,o),f=n(null),g=n(null),h=e("disconnected"),m=h[0],p=h[1],b=e(!1),y=b[0],C=b[1],D=e("listening"),S=D[0],M=D[1];return r(function(){var n;void 0!==s&&(null==f||null==(n=f.current)||n.setMicMuted(s))},[s]),r(function(){var n;void 0!==a&&(null==f||null==(n=f.current)||n.setVolume({volume:a}))},[a]),r(function(){return function(){var n;null==(n=f.current)||n.endSession()}},[]),{startSession:function(n){try{var e,r,o=function(e){return r?e:function(e,r){try{var o=(O=i(l((null==n?void 0:n.serverLocation)||v)),g.current=t.startSession(u({},null!=d?d:{},null!=n?n:{},{origin:O,overrides:u({},null!=(c=null==d?void 0:d.overrides)?c:{},null!=(h=null==n?void 0:n.overrides)?h:{},{client:u({},null!=(m=null==d||null==(b=d.overrides)?void 0:b.client)?m:{},null!=(y=null==n||null==(D=n.overrides)?void 0:D.client)?y:{},{source:(null==n||null==(S=n.overrides)||null==(S=S.client)?void 0:S.source)||(null==d||null==(P=d.overrides)||null==(P=P.client)?void 0:P.source)||"react_sdk",version:(null==n||null==(w=n.overrides)||null==(w=w.client)?void 0:w.version)||(null==d||null==(I=d.overrides)||null==(I=I.client)?void 0:I.version)||"0.6.0"})}),onConnect:(null==n?void 0:n.onConnect)||(null==d?void 0:d.onConnect),onDisconnect:(null==n?void 0:n.onDisconnect)||(null==d?void 0:d.onDisconnect),onError:(null==n?void 0:n.onError)||(null==d?void 0:d.onError),onMessage:(null==n?void 0:n.onMessage)||(null==d?void 0:d.onMessage),onAudio:(null==n?void 0:n.onAudio)||(null==d?void 0:d.onAudio),onDebug:(null==n?void 0:n.onDebug)||(null==d?void 0:d.onDebug),onUnhandledClientToolCall:(null==n?void 0:n.onUnhandledClientToolCall)||(null==d?void 0:d.onUnhandledClientToolCall),onVadScore:(null==n?void 0:n.onVadScore)||(null==d?void 0:d.onVadScore),onModeChange:function(e){var r,t=e.mode;M(t),null==(r=(null==n?void 0:n.onModeChange)||(null==d?void 0:d.onModeChange))||r({mode:t})},onStatusChange:function(e){var r,t=e.status;p(t),null==(r=(null==n?void 0:n.onStatusChange)||(null==d?void 0:d.onStatusChange))||r({status:t})},onCanSendFeedbackChange:function(e){var r,t=e.canSendFeedback;C(t),null==(r=(null==n?void 0:n.onCanSendFeedbackChange)||(null==d?void 0:d.onCanSendFeedbackChange))||r({canSendFeedback:t})}})),Promise.resolve(g.current).then(function(n){return f.current=n,void 0!==s&&f.current.setMicMuted(s),void 0!==a&&f.current.setVolume({volume:a}),f.current.getId()}))}catch(n){return r(!0,n)}var c,h,m,b,y,D,S,P,w,I,O;return o&&o.then?o.then(r.bind(null,!1),r.bind(null,!0)):r(!1,o)}(0,function(n,e){if(g.current=null,n)throw e;return e})};if(null!=(e=f.current)&&e.isOpen())return Promise.resolve(f.current.getId());var c=function(){if(g.current)return Promise.resolve(g.current).then(function(n){var e=n.getId();return r=1,e})}();return Promise.resolve(c&&c.then?c.then(o):o(c))}catch(n){return Promise.reject(n)}},endSession:function(){try{var n=f.current;return f.current=null,Promise.resolve(null==n?void 0:n.endSession()).then(function(){})}catch(n){return Promise.reject(n)}},setVolume:function(n){var e;null==(e=f.current)||e.setVolume({volume:n.volume})},getInputByteFrequencyData:function(){var n;return null==(n=f.current)?void 0:n.getInputByteFrequencyData()},getOutputByteFrequencyData:function(){var n;return null==(n=f.current)?void 0:n.getOutputByteFrequencyData()},getInputVolume:function(){var n,e;return null!=(n=null==(e=f.current)?void 0:e.getInputVolume())?n:0},getOutputVolume:function(){var n,e;return null!=(n=null==(e=f.current)?void 0:e.getOutputVolume())?n:0},sendFeedback:function(n){var e;null==(e=f.current)||e.sendFeedback(n)},getId:function(){var n;return null==(n=f.current)?void 0:n.getId()},sendContextualUpdate:function(n){var e;null==(e=f.current)||e.sendContextualUpdate(n)},sendUserMessage:function(n){var e;null==(e=f.current)||e.sendUserMessage(n)},sendUserActivity:function(){var n;null==(n=f.current)||n.sendUserActivity()},sendMCPToolApprovalResult:function(n,e){var r;null==(r=f.current)||r.sendMCPToolApprovalResult(n,e)},changeInputDevice:function(n){try{var e,r=function(n){if(e)return n;throw new Error("Device switching is only available for voice conversations")},t=function(){if(f.current&&"changeInputDevice"in f.current)return Promise.resolve(f.current.changeInputDevice(n)).then(function(n){return e=1,n})}();return Promise.resolve(t&&t.then?t.then(r):r(t))}catch(n){return Promise.reject(n)}},changeOutputDevice:function(n){try{var e,r=function(n){if(e)return n;throw new Error("Device switching is only available for voice conversations")},t=function(){if(f.current&&"changeOutputDevice"in f.current)return Promise.resolve(f.current.changeOutputDevice(n)).then(function(n){return e=1,n})}();return Promise.resolve(t&&t.then?t.then(r):r(t))}catch(n){return Promise.reject(n)}},status:m,canSendFeedback:y,micMuted:s,isSpeaking:"speaking"===S}}export{i as getOriginForLocation,l as parseLocation,c as useConversation};
2
2
  //# sourceMappingURL=lib.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lib.module.js","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.5.2\";\n","import { useEffect, useRef, useState } from \"react\";\nimport {\n Conversation,\n Mode,\n SessionConfig,\n Callbacks,\n Options,\n Status,\n ClientToolsConfig,\n InputConfig,\n VadScoreEvent,\n} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type Location = \"us\" | \"global\" | \"eu-residency\" | \"in-residency\";\n\nexport function parseLocation(location: string = \"us\"): Location {\n switch (location) {\n case \"eu-residency\":\n case \"in-residency\":\n case \"us\":\n case \"global\":\n return location;\n default:\n console.warn(\n `[ConversationalAI] Invalid server-location: ${location}. Defaulting to \"us\"`\n );\n return \"us\";\n }\n}\n\nexport function getOriginForLocation(location: Location): string {\n const originMap: Record<Location, string> = {\n us: \"wss://api.elevenlabs.io\",\n \"eu-residency\": \"wss://api.eu.residency.elevenlabs.io\",\n \"in-residency\": \"wss://api.in.residency.elevenlabs.io\",\n global: \"wss://api.elevenlabs.io\",\n };\n\n return originMap[location];\n}\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n VadScoreEvent,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig &\n HookCallbacks &\n ClientToolsConfig &\n InputConfig & {\n serverLocation?: Location | string;\n }\n>;\nexport type ControlledState = {\n micMuted?: boolean;\n volume?: number;\n};\nexport type HookCallbacks = Pick<\n Callbacks,\n | \"onConnect\"\n | \"onDisconnect\"\n | \"onError\"\n | \"onMessage\"\n | \"onAudio\"\n | \"onModeChange\"\n | \"onStatusChange\"\n | \"onCanSendFeedbackChange\"\n | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n | \"onVadScore\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, serverLocation, ...defaultOptions } = props;\n const conversationRef = useRef<Conversation | null>(null);\n const lockRef = useRef<Promise<Conversation> | null>(null);\n const [status, setStatus] = useState<Status>(\"disconnected\");\n const [canSendFeedback, setCanSendFeedback] = useState(false);\n const [mode, setMode] = useState<Mode>(\"listening\");\n\n useEffect(() => {\n if (micMuted !== undefined) {\n conversationRef?.current?.setMicMuted(micMuted);\n }\n }, [micMuted]);\n\n useEffect(() => {\n if (volume !== undefined) {\n conversationRef?.current?.setVolume({ volume });\n }\n }, [volume]);\n\n useEffect(() => {\n return () => {\n conversationRef.current?.endSession();\n };\n }, []);\n\n return {\n startSession: (async (options?: HookOptions) => {\n if (conversationRef.current?.isOpen()) {\n return conversationRef.current.getId();\n }\n\n if (lockRef.current) {\n const conversation = await lockRef.current;\n return conversation.getId();\n }\n\n try {\n const resolvedServerLocation = parseLocation(\n options?.serverLocation || serverLocation\n );\n const origin = getOriginForLocation(resolvedServerLocation);\n\n lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\n origin,\n overrides: {\n ...(defaultOptions?.overrides ?? {}),\n ...(options?.overrides ?? {}),\n client: {\n ...(defaultOptions?.overrides?.client ?? {}),\n ...(options?.overrides?.client ?? {}),\n source:\n options?.overrides?.client?.source ||\n defaultOptions?.overrides?.client?.source ||\n \"react_sdk\",\n version:\n options?.overrides?.client?.version ||\n defaultOptions?.overrides?.client?.version ||\n PACKAGE_VERSION,\n },\n },\n // Pass through user-provided callbacks\n onConnect: options?.onConnect || defaultOptions?.onConnect,\n onDisconnect: options?.onDisconnect || defaultOptions?.onDisconnect,\n onError: options?.onError || defaultOptions?.onError,\n onMessage: options?.onMessage || defaultOptions?.onMessage,\n onAudio: options?.onAudio || defaultOptions?.onAudio,\n onDebug: options?.onDebug || defaultOptions?.onDebug,\n onUnhandledClientToolCall:\n options?.onUnhandledClientToolCall ||\n defaultOptions?.onUnhandledClientToolCall,\n onVadScore: options?.onVadScore || defaultOptions?.onVadScore,\n onModeChange: ({ mode }) => {\n setMode(mode);\n (options?.onModeChange || defaultOptions?.onModeChange)?.({ mode });\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n (options?.onStatusChange || defaultOptions?.onStatusChange)?.({\n status,\n });\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(canSendFeedback);\n (\n options?.onCanSendFeedbackChange ||\n defaultOptions?.onCanSendFeedbackChange\n )?.({ canSendFeedback });\n },\n } as Options);\n\n conversationRef.current = await lockRef.current;\n // Persist controlled state between sessions\n if (micMuted !== undefined) {\n conversationRef.current.setMicMuted(micMuted);\n }\n if (volume !== undefined) {\n conversationRef.current.setVolume({ volume });\n }\n\n return conversationRef.current.getId();\n } finally {\n lockRef.current = null;\n }\n }) as T extends SessionConfig\n ? (options?: HookOptions) => Promise<string>\n : (options: SessionConfig & HookOptions) => Promise<string>,\n endSession: async () => {\n const conversation = conversationRef.current;\n conversationRef.current = null;\n await conversation?.endSession();\n },\n setVolume: ({ volume }: { volume: number }) => {\n conversationRef.current?.setVolume({ volume });\n },\n getInputByteFrequencyData: () => {\n return conversationRef.current?.getInputByteFrequencyData();\n },\n getOutputByteFrequencyData: () => {\n return conversationRef.current?.getOutputByteFrequencyData();\n },\n getInputVolume: () => {\n return conversationRef.current?.getInputVolume() ?? 0;\n },\n getOutputVolume: () => {\n return conversationRef.current?.getOutputVolume() ?? 0;\n },\n sendFeedback: (like: boolean) => {\n conversationRef.current?.sendFeedback(like);\n },\n getId: () => {\n return conversationRef.current?.getId();\n },\n sendContextualUpdate: (text: string) => {\n conversationRef.current?.sendContextualUpdate(text);\n },\n sendUserMessage: (text: string) => {\n conversationRef.current?.sendUserMessage(text);\n },\n sendUserActivity: () => {\n conversationRef.current?.sendUserActivity();\n },\n sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => {\n conversationRef.current?.sendMCPToolApprovalResult(\n toolCallId,\n isApproved\n );\n },\n status,\n canSendFeedback,\n micMuted,\n isSpeaking: mode === \"speaking\",\n };\n}\n\n// const con = useConversation({agentId: \"\"})\n"],"names":["parseLocation","location","console","warn","getOriginForLocation","us","global","useConversation","props","micMuted","volume","serverLocation","defaultOptions","_objectWithoutPropertiesLoose","_excluded","conversationRef","useRef","lockRef","_useState","useState","status","setStatus","_useState2","canSendFeedback","setCanSendFeedback","_useState3","mode","setMode","useEffect","_conversationRef$curr","undefined","current","setMicMuted","_conversationRef$curr2","setVolume","_conversationRef$curr3","endSession","startSession","options","_conversationRef$curr4","_exit","_temp2","_result","origin","Conversation","_extends","overrides","_defaultOptions$overr","_options$overrides","client","_defaultOptions$overr2","_defaultOptions$overr3","_options$overrides$cl","_options$overrides2","source","_options$overrides3","_defaultOptions$overr4","version","_options$overrides4","_defaultOptions$overr5","onConnect","onDisconnect","onError","onMessage","onAudio","onDebug","onUnhandledClientToolCall","onVadScore","onModeChange","_ref","_ref2","onStatusChange","_ref3","_ref4","onCanSendFeedbackChange","_ref5","_ref6","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref7","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","isSpeaking"],"mappings":"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"}
1
+ {"version":3,"file":"lib.module.js","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.6.0\";\n","import { useEffect, useRef, useState } from \"react\";\nimport {\n Conversation,\n SessionConfig,\n Options,\n ClientToolsConfig,\n InputConfig,\n type Mode,\n type Status,\n type Callbacks,\n type VadScoreEvent,\n} from \"@elevenlabs/client\";\n\n// Device configuration types for audio device switching\nexport type DeviceFormatConfig = {\n format: \"pcm\" | \"ulaw\";\n sampleRate: number;\n outputDeviceId?: string;\n};\n\nexport type DeviceInputConfig = {\n preferHeadphonesForIosDevices?: boolean;\n inputDeviceId?: string;\n};\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type Location = \"us\" | \"global\" | \"eu-residency\" | \"in-residency\";\n\nexport function parseLocation(location: string = \"us\"): Location {\n switch (location) {\n case \"eu-residency\":\n case \"in-residency\":\n case \"us\":\n case \"global\":\n return location;\n default:\n console.warn(\n `[ConversationalAI] Invalid server-location: ${location}. Defaulting to \"us\"`\n );\n return \"us\";\n }\n}\n\nexport function getOriginForLocation(location: Location): string {\n const originMap: Record<Location, string> = {\n us: \"wss://api.elevenlabs.io\",\n \"eu-residency\": \"wss://api.eu.residency.elevenlabs.io\",\n \"in-residency\": \"wss://api.in.residency.elevenlabs.io\",\n global: \"wss://api.elevenlabs.io\",\n };\n\n return originMap[location];\n}\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n VadScoreEvent,\n InputConfig,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig &\n HookCallbacks &\n ClientToolsConfig &\n InputConfig & {\n serverLocation?: Location | string;\n }\n>;\nexport type ControlledState = {\n micMuted?: boolean;\n volume?: number;\n};\nexport type HookCallbacks = Pick<\n Callbacks,\n | \"onConnect\"\n | \"onDisconnect\"\n | \"onError\"\n | \"onMessage\"\n | \"onAudio\"\n | \"onModeChange\"\n | \"onStatusChange\"\n | \"onCanSendFeedbackChange\"\n | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n | \"onVadScore\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, serverLocation, ...defaultOptions } = props;\n const conversationRef = useRef<Conversation | null>(null);\n const lockRef = useRef<Promise<Conversation> | null>(null);\n const [status, setStatus] = useState<Status>(\"disconnected\");\n const [canSendFeedback, setCanSendFeedback] = useState(false);\n const [mode, setMode] = useState<Mode>(\"listening\");\n\n useEffect(() => {\n if (micMuted !== undefined) {\n conversationRef?.current?.setMicMuted(micMuted);\n }\n }, [micMuted]);\n\n useEffect(() => {\n if (volume !== undefined) {\n conversationRef?.current?.setVolume({ volume });\n }\n }, [volume]);\n\n useEffect(() => {\n return () => {\n conversationRef.current?.endSession();\n };\n }, []);\n\n return {\n startSession: (async (options?: HookOptions) => {\n if (conversationRef.current?.isOpen()) {\n return conversationRef.current.getId();\n }\n\n if (lockRef.current) {\n const conversation = await lockRef.current;\n return conversation.getId();\n }\n\n try {\n const resolvedServerLocation = parseLocation(\n options?.serverLocation || serverLocation\n );\n const origin = getOriginForLocation(resolvedServerLocation);\n\n lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\n origin,\n overrides: {\n ...(defaultOptions?.overrides ?? {}),\n ...(options?.overrides ?? {}),\n client: {\n ...(defaultOptions?.overrides?.client ?? {}),\n ...(options?.overrides?.client ?? {}),\n source:\n options?.overrides?.client?.source ||\n defaultOptions?.overrides?.client?.source ||\n \"react_sdk\",\n version:\n options?.overrides?.client?.version ||\n defaultOptions?.overrides?.client?.version ||\n PACKAGE_VERSION,\n },\n },\n // Pass through user-provided callbacks\n onConnect: options?.onConnect || defaultOptions?.onConnect,\n onDisconnect: options?.onDisconnect || defaultOptions?.onDisconnect,\n onError: options?.onError || defaultOptions?.onError,\n onMessage: options?.onMessage || defaultOptions?.onMessage,\n onAudio: options?.onAudio || defaultOptions?.onAudio,\n onDebug: options?.onDebug || defaultOptions?.onDebug,\n onUnhandledClientToolCall:\n options?.onUnhandledClientToolCall ||\n defaultOptions?.onUnhandledClientToolCall,\n onVadScore: options?.onVadScore || defaultOptions?.onVadScore,\n onModeChange: ({ mode }) => {\n setMode(mode);\n (options?.onModeChange || defaultOptions?.onModeChange)?.({ mode });\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n (options?.onStatusChange || defaultOptions?.onStatusChange)?.({\n status,\n });\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(canSendFeedback);\n (\n options?.onCanSendFeedbackChange ||\n defaultOptions?.onCanSendFeedbackChange\n )?.({ canSendFeedback });\n },\n } as Options);\n\n conversationRef.current = await lockRef.current;\n // Persist controlled state between sessions\n if (micMuted !== undefined) {\n conversationRef.current.setMicMuted(micMuted);\n }\n if (volume !== undefined) {\n conversationRef.current.setVolume({ volume });\n }\n\n return conversationRef.current.getId();\n } finally {\n lockRef.current = null;\n }\n }) as T extends SessionConfig\n ? (options?: HookOptions) => Promise<string>\n : (options: SessionConfig & HookOptions) => Promise<string>,\n endSession: async () => {\n const conversation = conversationRef.current;\n conversationRef.current = null;\n await conversation?.endSession();\n },\n setVolume: ({ volume }: { volume: number }) => {\n conversationRef.current?.setVolume({ volume });\n },\n getInputByteFrequencyData: () => {\n return conversationRef.current?.getInputByteFrequencyData();\n },\n getOutputByteFrequencyData: () => {\n return conversationRef.current?.getOutputByteFrequencyData();\n },\n getInputVolume: () => {\n return conversationRef.current?.getInputVolume() ?? 0;\n },\n getOutputVolume: () => {\n return conversationRef.current?.getOutputVolume() ?? 0;\n },\n sendFeedback: (like: boolean) => {\n conversationRef.current?.sendFeedback(like);\n },\n getId: () => {\n return conversationRef.current?.getId();\n },\n sendContextualUpdate: (text: string) => {\n conversationRef.current?.sendContextualUpdate(text);\n },\n sendUserMessage: (text: string) => {\n conversationRef.current?.sendUserMessage(text);\n },\n sendUserActivity: () => {\n conversationRef.current?.sendUserActivity();\n },\n sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => {\n conversationRef.current?.sendMCPToolApprovalResult(\n toolCallId,\n isApproved\n );\n },\n changeInputDevice: async (\n config: DeviceFormatConfig & DeviceInputConfig\n ) => {\n if (\n conversationRef.current &&\n \"changeInputDevice\" in conversationRef.current\n ) {\n return await (\n conversationRef.current as unknown as {\n changeInputDevice: (config: any) => Promise<any>;\n }\n ).changeInputDevice(config);\n }\n throw new Error(\n \"Device switching is only available for voice conversations\"\n );\n },\n changeOutputDevice: async (config: DeviceFormatConfig) => {\n if (\n conversationRef.current &&\n \"changeOutputDevice\" in conversationRef.current\n ) {\n return await (\n conversationRef.current as unknown as {\n changeOutputDevice: (config: any) => Promise<any>;\n }\n ).changeOutputDevice(config);\n }\n throw new Error(\n \"Device switching is only available for voice conversations\"\n );\n },\n status,\n canSendFeedback,\n micMuted,\n isSpeaking: mode === \"speaking\",\n };\n}\n\n// const con = useConversation({agentId: \"\"})\n"],"names":["parseLocation","location","console","warn","getOriginForLocation","us","global","useConversation","props","micMuted","volume","serverLocation","defaultOptions","_objectWithoutPropertiesLoose","_excluded","conversationRef","useRef","lockRef","_useState","useState","status","setStatus","_useState2","canSendFeedback","setCanSendFeedback","_useState3","mode","setMode","useEffect","_conversationRef$curr","undefined","current","setMicMuted","_conversationRef$curr2","setVolume","_conversationRef$curr3","endSession","startSession","options","_conversationRef$curr4","_exit","_temp2","_result","origin","Conversation","_extends","overrides","_defaultOptions$overr","_options$overrides","client","_defaultOptions$overr2","_defaultOptions$overr3","_options$overrides$cl","_options$overrides2","source","_options$overrides3","_defaultOptions$overr4","version","_options$overrides4","_defaultOptions$overr5","onConnect","onDisconnect","onError","onMessage","onAudio","onDebug","onUnhandledClientToolCall","onVadScore","onModeChange","_ref","_ref2","onStatusChange","_ref3","_ref4","onCanSendFeedbackChange","_ref5","_ref6","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref7","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","changeInputDevice","config","_temp4","_exit2","_result3","Error","_temp3","_await$conversationRe","changeOutputDevice","_exit3","_temp6","_result4","_temp5","_await$conversationRe2","isSpeaking"],"mappings":"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"}
package/dist/lib.umd.js CHANGED
@@ -1,2 +1,2 @@
1
- !function(n,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("react"),require("@elevenlabs/client")):"function"==typeof define&&define.amd?define(["exports","react","@elevenlabs/client"],e):e((n||self).react={},n.react,n.client)}(this,function(n,e,r){function u(){return u=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var u in r)({}).hasOwnProperty.call(r,u)&&(n[u]=r[u])}return n},u.apply(null,arguments)}var l=["micMuted","volume","serverLocation"];function t(n){switch(void 0===n&&(n="us"),n){case"eu-residency":case"in-residency":case"us":case"global":return n;default:return console.warn("[ConversationalAI] Invalid server-location: "+n+'. Defaulting to "us"'),"us"}}function o(n){return{us:"wss://api.elevenlabs.io","eu-residency":"wss://api.eu.residency.elevenlabs.io","in-residency":"wss://api.in.residency.elevenlabs.io",global:"wss://api.elevenlabs.io"}[n]}Object.defineProperty(n,"postOverallFeedback",{enumerable:!0,get:function(){return r.postOverallFeedback}}),n.getOriginForLocation=o,n.parseLocation=t,n.useConversation=function(n){void 0===n&&(n={});var i=n.micMuted,c=n.volume,s=n.serverLocation,a=function(n,e){if(null==n)return{};var r={};for(var u in n)if({}.hasOwnProperty.call(n,u)){if(-1!==e.indexOf(u))continue;r[u]=n[u]}return r}(n,l),d=e.useRef(null),v=e.useRef(null),f=e.useState("disconnected"),g=f[0],p=f[1],b=e.useState(!1),h=b[0],m=b[1],C=e.useState("listening"),y=C[0],S=C[1];return e.useEffect(function(){var n;void 0!==i&&(null==d||null==(n=d.current)||n.setMicMuted(i))},[i]),e.useEffect(function(){var n;void 0!==c&&(null==d||null==(n=d.current)||n.setVolume({volume:c}))},[c]),e.useEffect(function(){return function(){var n;null==(n=d.current)||n.endSession()}},[]),{startSession:function(n){try{var e,l,f=function(e){return l?e:function(e,l){try{var f=(D=o(t((null==n?void 0:n.serverLocation)||s)),v.current=r.Conversation.startSession(u({},null!=a?a:{},null!=n?n:{},{origin:D,overrides:u({},null!=(g=null==a?void 0:a.overrides)?g:{},null!=(b=null==n?void 0:n.overrides)?b:{},{client:u({},null!=(h=null==a||null==(C=a.overrides)?void 0:C.client)?h:{},null!=(y=null==n||null==(M=n.overrides)?void 0:M.client)?y:{},{source:(null==n||null==(F=n.overrides)||null==(F=F.client)?void 0:F.source)||(null==a||null==(O=a.overrides)||null==(O=O.client)?void 0:O.source)||"react_sdk",version:(null==n||null==(k=n.overrides)||null==(k=k.client)?void 0:k.version)||(null==a||null==(P=a.overrides)||null==(P=P.client)?void 0:P.version)||"0.5.2"})}),onConnect:(null==n?void 0:n.onConnect)||(null==a?void 0:a.onConnect),onDisconnect:(null==n?void 0:n.onDisconnect)||(null==a?void 0:a.onDisconnect),onError:(null==n?void 0:n.onError)||(null==a?void 0:a.onError),onMessage:(null==n?void 0:n.onMessage)||(null==a?void 0:a.onMessage),onAudio:(null==n?void 0:n.onAudio)||(null==a?void 0:a.onAudio),onDebug:(null==n?void 0:n.onDebug)||(null==a?void 0:a.onDebug),onUnhandledClientToolCall:(null==n?void 0:n.onUnhandledClientToolCall)||(null==a?void 0:a.onUnhandledClientToolCall),onVadScore:(null==n?void 0:n.onVadScore)||(null==a?void 0:a.onVadScore),onModeChange:function(e){var r,u=e.mode;S(u),null==(r=(null==n?void 0:n.onModeChange)||(null==a?void 0:a.onModeChange))||r({mode:u})},onStatusChange:function(e){var r,u=e.status;p(u),null==(r=(null==n?void 0:n.onStatusChange)||(null==a?void 0:a.onStatusChange))||r({status:u})},onCanSendFeedbackChange:function(e){var r,u=e.canSendFeedback;m(u),null==(r=(null==n?void 0:n.onCanSendFeedbackChange)||(null==a?void 0:a.onCanSendFeedbackChange))||r({canSendFeedback:u})}})),Promise.resolve(v.current).then(function(n){return d.current=n,void 0!==i&&d.current.setMicMuted(i),void 0!==c&&d.current.setVolume({volume:c}),d.current.getId()}))}catch(n){return l(!0,n)}var g,b,h,C,y,M,F,O,k,P,D;return f&&f.then?f.then(l.bind(null,!1),l.bind(null,!0)):l(!1,f)}(0,function(n,e){if(v.current=null,n)throw e;return e})};if(null!=(e=d.current)&&e.isOpen())return Promise.resolve(d.current.getId());var g=function(){if(v.current)return Promise.resolve(v.current).then(function(n){var e=n.getId();return l=1,e})}();return Promise.resolve(g&&g.then?g.then(f):f(g))}catch(n){return Promise.reject(n)}},endSession:function(){try{var n=d.current;return d.current=null,Promise.resolve(null==n?void 0:n.endSession()).then(function(){})}catch(n){return Promise.reject(n)}},setVolume:function(n){var e;null==(e=d.current)||e.setVolume({volume:n.volume})},getInputByteFrequencyData:function(){var n;return null==(n=d.current)?void 0:n.getInputByteFrequencyData()},getOutputByteFrequencyData:function(){var n;return null==(n=d.current)?void 0:n.getOutputByteFrequencyData()},getInputVolume:function(){var n,e;return null!=(n=null==(e=d.current)?void 0:e.getInputVolume())?n:0},getOutputVolume:function(){var n,e;return null!=(n=null==(e=d.current)?void 0:e.getOutputVolume())?n:0},sendFeedback:function(n){var e;null==(e=d.current)||e.sendFeedback(n)},getId:function(){var n;return null==(n=d.current)?void 0:n.getId()},sendContextualUpdate:function(n){var e;null==(e=d.current)||e.sendContextualUpdate(n)},sendUserMessage:function(n){var e;null==(e=d.current)||e.sendUserMessage(n)},sendUserActivity:function(){var n;null==(n=d.current)||n.sendUserActivity()},sendMCPToolApprovalResult:function(n,e){var r;null==(r=d.current)||r.sendMCPToolApprovalResult(n,e)},status:g,canSendFeedback:h,micMuted:i,isSpeaking:"speaking"===y}}});
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react"),require("@elevenlabs/client")):"function"==typeof define&&define.amd?define(["exports","react","@elevenlabs/client"],n):n((e||self).react={},e.react,e.client)}(this,function(e,n,r){function t(){return t=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},t.apply(null,arguments)}var u=["micMuted","volume","serverLocation"];function o(e){switch(void 0===e&&(e="us"),e){case"eu-residency":case"in-residency":case"us":case"global":return e;default:return console.warn("[ConversationalAI] Invalid server-location: "+e+'. Defaulting to "us"'),"us"}}function l(e){return{us:"wss://api.elevenlabs.io","eu-residency":"wss://api.eu.residency.elevenlabs.io","in-residency":"wss://api.in.residency.elevenlabs.io",global:"wss://api.elevenlabs.io"}[e]}Object.defineProperty(e,"postOverallFeedback",{enumerable:!0,get:function(){return r.postOverallFeedback}}),e.getOriginForLocation=l,e.parseLocation=o,e.useConversation=function(e){void 0===e&&(e={});var i=e.micMuted,c=e.volume,s=e.serverLocation,a=function(e,n){if(null==e)return{};var r={};for(var t in e)if({}.hasOwnProperty.call(e,t)){if(-1!==n.indexOf(t))continue;r[t]=e[t]}return r}(e,u),v=n.useRef(null),d=n.useRef(null),f=n.useState("disconnected"),g=f[0],h=f[1],p=n.useState(!1),m=p[0],b=p[1],y=n.useState("listening"),C=y[0],S=y[1];return n.useEffect(function(){var e;void 0!==i&&(null==v||null==(e=v.current)||e.setMicMuted(i))},[i]),n.useEffect(function(){var e;void 0!==c&&(null==v||null==(e=v.current)||e.setVolume({volume:c}))},[c]),n.useEffect(function(){return function(){var e;null==(e=v.current)||e.endSession()}},[]),{startSession:function(e){try{var n,u,f=function(n){return u?n:function(n,u){try{var f=(F=l(o((null==e?void 0:e.serverLocation)||s)),d.current=r.Conversation.startSession(t({},null!=a?a:{},null!=e?e:{},{origin:F,overrides:t({},null!=(g=null==a?void 0:a.overrides)?g:{},null!=(p=null==e?void 0:e.overrides)?p:{},{client:t({},null!=(m=null==a||null==(y=a.overrides)?void 0:y.client)?m:{},null!=(C=null==e||null==(D=e.overrides)?void 0:D.client)?C:{},{source:(null==e||null==(P=e.overrides)||null==(P=P.client)?void 0:P.source)||(null==a||null==(M=a.overrides)||null==(M=M.client)?void 0:M.source)||"react_sdk",version:(null==e||null==(O=e.overrides)||null==(O=O.client)?void 0:O.version)||(null==a||null==(w=a.overrides)||null==(w=w.client)?void 0:w.version)||"0.6.0"})}),onConnect:(null==e?void 0:e.onConnect)||(null==a?void 0:a.onConnect),onDisconnect:(null==e?void 0:e.onDisconnect)||(null==a?void 0:a.onDisconnect),onError:(null==e?void 0:e.onError)||(null==a?void 0:a.onError),onMessage:(null==e?void 0:e.onMessage)||(null==a?void 0:a.onMessage),onAudio:(null==e?void 0:e.onAudio)||(null==a?void 0:a.onAudio),onDebug:(null==e?void 0:e.onDebug)||(null==a?void 0:a.onDebug),onUnhandledClientToolCall:(null==e?void 0:e.onUnhandledClientToolCall)||(null==a?void 0:a.onUnhandledClientToolCall),onVadScore:(null==e?void 0:e.onVadScore)||(null==a?void 0:a.onVadScore),onModeChange:function(n){var r,t=n.mode;S(t),null==(r=(null==e?void 0:e.onModeChange)||(null==a?void 0:a.onModeChange))||r({mode:t})},onStatusChange:function(n){var r,t=n.status;h(t),null==(r=(null==e?void 0:e.onStatusChange)||(null==a?void 0:a.onStatusChange))||r({status:t})},onCanSendFeedbackChange:function(n){var r,t=n.canSendFeedback;b(t),null==(r=(null==e?void 0:e.onCanSendFeedbackChange)||(null==a?void 0:a.onCanSendFeedbackChange))||r({canSendFeedback:t})}})),Promise.resolve(d.current).then(function(e){return v.current=e,void 0!==i&&v.current.setMicMuted(i),void 0!==c&&v.current.setVolume({volume:c}),v.current.getId()}))}catch(e){return u(!0,e)}var g,p,m,y,C,D,P,M,O,w,F;return f&&f.then?f.then(u.bind(null,!1),u.bind(null,!0)):u(!1,f)}(0,function(e,n){if(d.current=null,e)throw n;return n})};if(null!=(n=v.current)&&n.isOpen())return Promise.resolve(v.current.getId());var g=function(){if(d.current)return Promise.resolve(d.current).then(function(e){var n=e.getId();return u=1,n})}();return Promise.resolve(g&&g.then?g.then(f):f(g))}catch(e){return Promise.reject(e)}},endSession:function(){try{var e=v.current;return v.current=null,Promise.resolve(null==e?void 0:e.endSession()).then(function(){})}catch(e){return Promise.reject(e)}},setVolume:function(e){var n;null==(n=v.current)||n.setVolume({volume:e.volume})},getInputByteFrequencyData:function(){var e;return null==(e=v.current)?void 0:e.getInputByteFrequencyData()},getOutputByteFrequencyData:function(){var e;return null==(e=v.current)?void 0:e.getOutputByteFrequencyData()},getInputVolume:function(){var e,n;return null!=(e=null==(n=v.current)?void 0:n.getInputVolume())?e:0},getOutputVolume:function(){var e,n;return null!=(e=null==(n=v.current)?void 0:n.getOutputVolume())?e:0},sendFeedback:function(e){var n;null==(n=v.current)||n.sendFeedback(e)},getId:function(){var e;return null==(e=v.current)?void 0:e.getId()},sendContextualUpdate:function(e){var n;null==(n=v.current)||n.sendContextualUpdate(e)},sendUserMessage:function(e){var n;null==(n=v.current)||n.sendUserMessage(e)},sendUserActivity:function(){var e;null==(e=v.current)||e.sendUserActivity()},sendMCPToolApprovalResult:function(e,n){var r;null==(r=v.current)||r.sendMCPToolApprovalResult(e,n)},changeInputDevice:function(e){try{var n,r=function(e){if(n)return e;throw new Error("Device switching is only available for voice conversations")},t=function(){if(v.current&&"changeInputDevice"in v.current)return Promise.resolve(v.current.changeInputDevice(e)).then(function(e){return n=1,e})}();return Promise.resolve(t&&t.then?t.then(r):r(t))}catch(e){return Promise.reject(e)}},changeOutputDevice:function(e){try{var n,r=function(e){if(n)return e;throw new Error("Device switching is only available for voice conversations")},t=function(){if(v.current&&"changeOutputDevice"in v.current)return Promise.resolve(v.current.changeOutputDevice(e)).then(function(e){return n=1,e})}();return Promise.resolve(t&&t.then?t.then(r):r(t))}catch(e){return Promise.reject(e)}},status:g,canSendFeedback:m,micMuted:i,isSpeaking:"speaking"===C}}});
2
2
  //# sourceMappingURL=lib.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lib.umd.js","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.5.2\";\n","import { useEffect, useRef, useState } from \"react\";\nimport {\n Conversation,\n Mode,\n SessionConfig,\n Callbacks,\n Options,\n Status,\n ClientToolsConfig,\n InputConfig,\n VadScoreEvent,\n} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type Location = \"us\" | \"global\" | \"eu-residency\" | \"in-residency\";\n\nexport function parseLocation(location: string = \"us\"): Location {\n switch (location) {\n case \"eu-residency\":\n case \"in-residency\":\n case \"us\":\n case \"global\":\n return location;\n default:\n console.warn(\n `[ConversationalAI] Invalid server-location: ${location}. Defaulting to \"us\"`\n );\n return \"us\";\n }\n}\n\nexport function getOriginForLocation(location: Location): string {\n const originMap: Record<Location, string> = {\n us: \"wss://api.elevenlabs.io\",\n \"eu-residency\": \"wss://api.eu.residency.elevenlabs.io\",\n \"in-residency\": \"wss://api.in.residency.elevenlabs.io\",\n global: \"wss://api.elevenlabs.io\",\n };\n\n return originMap[location];\n}\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n VadScoreEvent,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig &\n HookCallbacks &\n ClientToolsConfig &\n InputConfig & {\n serverLocation?: Location | string;\n }\n>;\nexport type ControlledState = {\n micMuted?: boolean;\n volume?: number;\n};\nexport type HookCallbacks = Pick<\n Callbacks,\n | \"onConnect\"\n | \"onDisconnect\"\n | \"onError\"\n | \"onMessage\"\n | \"onAudio\"\n | \"onModeChange\"\n | \"onStatusChange\"\n | \"onCanSendFeedbackChange\"\n | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n | \"onVadScore\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, serverLocation, ...defaultOptions } = props;\n const conversationRef = useRef<Conversation | null>(null);\n const lockRef = useRef<Promise<Conversation> | null>(null);\n const [status, setStatus] = useState<Status>(\"disconnected\");\n const [canSendFeedback, setCanSendFeedback] = useState(false);\n const [mode, setMode] = useState<Mode>(\"listening\");\n\n useEffect(() => {\n if (micMuted !== undefined) {\n conversationRef?.current?.setMicMuted(micMuted);\n }\n }, [micMuted]);\n\n useEffect(() => {\n if (volume !== undefined) {\n conversationRef?.current?.setVolume({ volume });\n }\n }, [volume]);\n\n useEffect(() => {\n return () => {\n conversationRef.current?.endSession();\n };\n }, []);\n\n return {\n startSession: (async (options?: HookOptions) => {\n if (conversationRef.current?.isOpen()) {\n return conversationRef.current.getId();\n }\n\n if (lockRef.current) {\n const conversation = await lockRef.current;\n return conversation.getId();\n }\n\n try {\n const resolvedServerLocation = parseLocation(\n options?.serverLocation || serverLocation\n );\n const origin = getOriginForLocation(resolvedServerLocation);\n\n lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\n origin,\n overrides: {\n ...(defaultOptions?.overrides ?? {}),\n ...(options?.overrides ?? {}),\n client: {\n ...(defaultOptions?.overrides?.client ?? {}),\n ...(options?.overrides?.client ?? {}),\n source:\n options?.overrides?.client?.source ||\n defaultOptions?.overrides?.client?.source ||\n \"react_sdk\",\n version:\n options?.overrides?.client?.version ||\n defaultOptions?.overrides?.client?.version ||\n PACKAGE_VERSION,\n },\n },\n // Pass through user-provided callbacks\n onConnect: options?.onConnect || defaultOptions?.onConnect,\n onDisconnect: options?.onDisconnect || defaultOptions?.onDisconnect,\n onError: options?.onError || defaultOptions?.onError,\n onMessage: options?.onMessage || defaultOptions?.onMessage,\n onAudio: options?.onAudio || defaultOptions?.onAudio,\n onDebug: options?.onDebug || defaultOptions?.onDebug,\n onUnhandledClientToolCall:\n options?.onUnhandledClientToolCall ||\n defaultOptions?.onUnhandledClientToolCall,\n onVadScore: options?.onVadScore || defaultOptions?.onVadScore,\n onModeChange: ({ mode }) => {\n setMode(mode);\n (options?.onModeChange || defaultOptions?.onModeChange)?.({ mode });\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n (options?.onStatusChange || defaultOptions?.onStatusChange)?.({\n status,\n });\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(canSendFeedback);\n (\n options?.onCanSendFeedbackChange ||\n defaultOptions?.onCanSendFeedbackChange\n )?.({ canSendFeedback });\n },\n } as Options);\n\n conversationRef.current = await lockRef.current;\n // Persist controlled state between sessions\n if (micMuted !== undefined) {\n conversationRef.current.setMicMuted(micMuted);\n }\n if (volume !== undefined) {\n conversationRef.current.setVolume({ volume });\n }\n\n return conversationRef.current.getId();\n } finally {\n lockRef.current = null;\n }\n }) as T extends SessionConfig\n ? (options?: HookOptions) => Promise<string>\n : (options: SessionConfig & HookOptions) => Promise<string>,\n endSession: async () => {\n const conversation = conversationRef.current;\n conversationRef.current = null;\n await conversation?.endSession();\n },\n setVolume: ({ volume }: { volume: number }) => {\n conversationRef.current?.setVolume({ volume });\n },\n getInputByteFrequencyData: () => {\n return conversationRef.current?.getInputByteFrequencyData();\n },\n getOutputByteFrequencyData: () => {\n return conversationRef.current?.getOutputByteFrequencyData();\n },\n getInputVolume: () => {\n return conversationRef.current?.getInputVolume() ?? 0;\n },\n getOutputVolume: () => {\n return conversationRef.current?.getOutputVolume() ?? 0;\n },\n sendFeedback: (like: boolean) => {\n conversationRef.current?.sendFeedback(like);\n },\n getId: () => {\n return conversationRef.current?.getId();\n },\n sendContextualUpdate: (text: string) => {\n conversationRef.current?.sendContextualUpdate(text);\n },\n sendUserMessage: (text: string) => {\n conversationRef.current?.sendUserMessage(text);\n },\n sendUserActivity: () => {\n conversationRef.current?.sendUserActivity();\n },\n sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => {\n conversationRef.current?.sendMCPToolApprovalResult(\n toolCallId,\n isApproved\n );\n },\n status,\n canSendFeedback,\n micMuted,\n isSpeaking: mode === \"speaking\",\n };\n}\n\n// const con = useConversation({agentId: \"\"})\n"],"names":["parseLocation","location","console","warn","getOriginForLocation","us","global","props","micMuted","volume","serverLocation","defaultOptions","_objectWithoutPropertiesLoose","_excluded","conversationRef","useRef","lockRef","_useState","useState","status","setStatus","_useState2","canSendFeedback","setCanSendFeedback","_useState3","mode","setMode","useEffect","_conversationRef$curr","undefined","current","setMicMuted","_conversationRef$curr2","setVolume","_conversationRef$curr3","endSession","startSession","options","_conversationRef$curr4","_exit","_temp2","_result","origin","Conversation","_extends","overrides","_defaultOptions$overr","_options$overrides","client","_defaultOptions$overr2","_defaultOptions$overr3","_options$overrides$cl","_options$overrides2","source","_options$overrides3","_defaultOptions$overr4","version","_options$overrides4","_defaultOptions$overr5","onConnect","onDisconnect","onError","onMessage","onAudio","onDebug","onUnhandledClientToolCall","onVadScore","onModeChange","_ref","_ref2","onStatusChange","_ref3","_ref4","onCanSendFeedbackChange","_ref5","_ref6","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref7","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","isSpeaking"],"mappings":"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"}
1
+ {"version":3,"file":"lib.umd.js","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.6.0\";\n","import { useEffect, useRef, useState } from \"react\";\nimport {\n Conversation,\n SessionConfig,\n Options,\n ClientToolsConfig,\n InputConfig,\n type Mode,\n type Status,\n type Callbacks,\n type VadScoreEvent,\n} from \"@elevenlabs/client\";\n\n// Device configuration types for audio device switching\nexport type DeviceFormatConfig = {\n format: \"pcm\" | \"ulaw\";\n sampleRate: number;\n outputDeviceId?: string;\n};\n\nexport type DeviceInputConfig = {\n preferHeadphonesForIosDevices?: boolean;\n inputDeviceId?: string;\n};\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type Location = \"us\" | \"global\" | \"eu-residency\" | \"in-residency\";\n\nexport function parseLocation(location: string = \"us\"): Location {\n switch (location) {\n case \"eu-residency\":\n case \"in-residency\":\n case \"us\":\n case \"global\":\n return location;\n default:\n console.warn(\n `[ConversationalAI] Invalid server-location: ${location}. Defaulting to \"us\"`\n );\n return \"us\";\n }\n}\n\nexport function getOriginForLocation(location: Location): string {\n const originMap: Record<Location, string> = {\n us: \"wss://api.elevenlabs.io\",\n \"eu-residency\": \"wss://api.eu.residency.elevenlabs.io\",\n \"in-residency\": \"wss://api.in.residency.elevenlabs.io\",\n global: \"wss://api.elevenlabs.io\",\n };\n\n return originMap[location];\n}\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n VadScoreEvent,\n InputConfig,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig &\n HookCallbacks &\n ClientToolsConfig &\n InputConfig & {\n serverLocation?: Location | string;\n }\n>;\nexport type ControlledState = {\n micMuted?: boolean;\n volume?: number;\n};\nexport type HookCallbacks = Pick<\n Callbacks,\n | \"onConnect\"\n | \"onDisconnect\"\n | \"onError\"\n | \"onMessage\"\n | \"onAudio\"\n | \"onModeChange\"\n | \"onStatusChange\"\n | \"onCanSendFeedbackChange\"\n | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n | \"onVadScore\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, serverLocation, ...defaultOptions } = props;\n const conversationRef = useRef<Conversation | null>(null);\n const lockRef = useRef<Promise<Conversation> | null>(null);\n const [status, setStatus] = useState<Status>(\"disconnected\");\n const [canSendFeedback, setCanSendFeedback] = useState(false);\n const [mode, setMode] = useState<Mode>(\"listening\");\n\n useEffect(() => {\n if (micMuted !== undefined) {\n conversationRef?.current?.setMicMuted(micMuted);\n }\n }, [micMuted]);\n\n useEffect(() => {\n if (volume !== undefined) {\n conversationRef?.current?.setVolume({ volume });\n }\n }, [volume]);\n\n useEffect(() => {\n return () => {\n conversationRef.current?.endSession();\n };\n }, []);\n\n return {\n startSession: (async (options?: HookOptions) => {\n if (conversationRef.current?.isOpen()) {\n return conversationRef.current.getId();\n }\n\n if (lockRef.current) {\n const conversation = await lockRef.current;\n return conversation.getId();\n }\n\n try {\n const resolvedServerLocation = parseLocation(\n options?.serverLocation || serverLocation\n );\n const origin = getOriginForLocation(resolvedServerLocation);\n\n lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\n origin,\n overrides: {\n ...(defaultOptions?.overrides ?? {}),\n ...(options?.overrides ?? {}),\n client: {\n ...(defaultOptions?.overrides?.client ?? {}),\n ...(options?.overrides?.client ?? {}),\n source:\n options?.overrides?.client?.source ||\n defaultOptions?.overrides?.client?.source ||\n \"react_sdk\",\n version:\n options?.overrides?.client?.version ||\n defaultOptions?.overrides?.client?.version ||\n PACKAGE_VERSION,\n },\n },\n // Pass through user-provided callbacks\n onConnect: options?.onConnect || defaultOptions?.onConnect,\n onDisconnect: options?.onDisconnect || defaultOptions?.onDisconnect,\n onError: options?.onError || defaultOptions?.onError,\n onMessage: options?.onMessage || defaultOptions?.onMessage,\n onAudio: options?.onAudio || defaultOptions?.onAudio,\n onDebug: options?.onDebug || defaultOptions?.onDebug,\n onUnhandledClientToolCall:\n options?.onUnhandledClientToolCall ||\n defaultOptions?.onUnhandledClientToolCall,\n onVadScore: options?.onVadScore || defaultOptions?.onVadScore,\n onModeChange: ({ mode }) => {\n setMode(mode);\n (options?.onModeChange || defaultOptions?.onModeChange)?.({ mode });\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n (options?.onStatusChange || defaultOptions?.onStatusChange)?.({\n status,\n });\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(canSendFeedback);\n (\n options?.onCanSendFeedbackChange ||\n defaultOptions?.onCanSendFeedbackChange\n )?.({ canSendFeedback });\n },\n } as Options);\n\n conversationRef.current = await lockRef.current;\n // Persist controlled state between sessions\n if (micMuted !== undefined) {\n conversationRef.current.setMicMuted(micMuted);\n }\n if (volume !== undefined) {\n conversationRef.current.setVolume({ volume });\n }\n\n return conversationRef.current.getId();\n } finally {\n lockRef.current = null;\n }\n }) as T extends SessionConfig\n ? (options?: HookOptions) => Promise<string>\n : (options: SessionConfig & HookOptions) => Promise<string>,\n endSession: async () => {\n const conversation = conversationRef.current;\n conversationRef.current = null;\n await conversation?.endSession();\n },\n setVolume: ({ volume }: { volume: number }) => {\n conversationRef.current?.setVolume({ volume });\n },\n getInputByteFrequencyData: () => {\n return conversationRef.current?.getInputByteFrequencyData();\n },\n getOutputByteFrequencyData: () => {\n return conversationRef.current?.getOutputByteFrequencyData();\n },\n getInputVolume: () => {\n return conversationRef.current?.getInputVolume() ?? 0;\n },\n getOutputVolume: () => {\n return conversationRef.current?.getOutputVolume() ?? 0;\n },\n sendFeedback: (like: boolean) => {\n conversationRef.current?.sendFeedback(like);\n },\n getId: () => {\n return conversationRef.current?.getId();\n },\n sendContextualUpdate: (text: string) => {\n conversationRef.current?.sendContextualUpdate(text);\n },\n sendUserMessage: (text: string) => {\n conversationRef.current?.sendUserMessage(text);\n },\n sendUserActivity: () => {\n conversationRef.current?.sendUserActivity();\n },\n sendMCPToolApprovalResult: (toolCallId: string, isApproved: boolean) => {\n conversationRef.current?.sendMCPToolApprovalResult(\n toolCallId,\n isApproved\n );\n },\n changeInputDevice: async (\n config: DeviceFormatConfig & DeviceInputConfig\n ) => {\n if (\n conversationRef.current &&\n \"changeInputDevice\" in conversationRef.current\n ) {\n return await (\n conversationRef.current as unknown as {\n changeInputDevice: (config: any) => Promise<any>;\n }\n ).changeInputDevice(config);\n }\n throw new Error(\n \"Device switching is only available for voice conversations\"\n );\n },\n changeOutputDevice: async (config: DeviceFormatConfig) => {\n if (\n conversationRef.current &&\n \"changeOutputDevice\" in conversationRef.current\n ) {\n return await (\n conversationRef.current as unknown as {\n changeOutputDevice: (config: any) => Promise<any>;\n }\n ).changeOutputDevice(config);\n }\n throw new Error(\n \"Device switching is only available for voice conversations\"\n );\n },\n status,\n canSendFeedback,\n micMuted,\n isSpeaking: mode === \"speaking\",\n };\n}\n\n// const con = useConversation({agentId: \"\"})\n"],"names":["parseLocation","location","console","warn","getOriginForLocation","us","global","props","micMuted","volume","serverLocation","defaultOptions","_objectWithoutPropertiesLoose","_excluded","conversationRef","useRef","lockRef","_useState","useState","status","setStatus","_useState2","canSendFeedback","setCanSendFeedback","_useState3","mode","setMode","useEffect","_conversationRef$curr","undefined","current","setMicMuted","_conversationRef$curr2","setVolume","_conversationRef$curr3","endSession","startSession","options","_conversationRef$curr4","_exit","_temp2","_result","origin","Conversation","_extends","overrides","_defaultOptions$overr","_options$overrides","client","_defaultOptions$overr2","_defaultOptions$overr3","_options$overrides$cl","_options$overrides2","source","_options$overrides3","_defaultOptions$overr4","version","_options$overrides4","_defaultOptions$overr5","onConnect","onDisconnect","onError","onMessage","onAudio","onDebug","onUnhandledClientToolCall","onVadScore","onModeChange","_ref","_ref2","onStatusChange","_ref3","_ref4","onCanSendFeedbackChange","_ref5","_ref6","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref7","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","changeInputDevice","config","_temp4","_exit2","_result3","Error","_temp3","_await$conversationRe","changeOutputDevice","_exit3","_temp6","_result4","_temp5","_await$conversationRe2","isSpeaking"],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const PACKAGE_VERSION = "0.5.2";
1
+ export declare const PACKAGE_VERSION = "0.6.0";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elevenlabs/react",
3
- "version": "0.5.2",
3
+ "version": "0.6.0",
4
4
  "description": "ElevenLabs React Library",
5
5
  "main": "./dist/lib.umd.js",
6
6
  "module": "./dist/lib.module.js",
@@ -19,7 +19,7 @@
19
19
  "author": "ElevenLabs",
20
20
  "license": "MIT",
21
21
  "dependencies": {
22
- "@elevenlabs/client": "0.5.2"
22
+ "@elevenlabs/client": "0.6.0"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "react": ">=16.8.0"