@elevenlabs/react 0.5.0 → 0.5.2

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/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.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,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 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}};
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.0\";\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.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":"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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.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;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: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};
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.0\";\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":"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"}
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":"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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.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: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 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};
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.0\";\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":"0XACa,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,UAwCgBM,EACdC,QAAA,IAAAA,IAAAA,EAAW,CAAO,GAElB,IAAQC,EAAwDD,EAAxDC,SAAUC,EAA8CF,EAA9CE,OAAQC,EAAsCH,EAAtCG,eAAmBC,6IAAcC,CAAKL,EAALM,GACrDC,EAAkBC,EAA4B,MAC9CC,EAAUD,EAAqC,MACrDE,EAA4BC,EAAiB,gBAAtCC,EAAMF,KAAEG,EAASH,EACxB,GAAAI,EAA8CH,GAAS,GAAhDI,EAAeD,EAAA,GAAEE,EAAkBF,KAC1CG,EAAwBN,EAAe,aAAhCO,EAAID,EAAEE,GAAAA,EAAOF,EAAA,GAoBpB,OAlBAG,EAAU,WACoBC,IAAAA,OAAXC,IAAbrB,IACa,MAAfM,GAAwB,OAATc,EAAfd,EAAiBgB,UAAjBF,EAA0BG,YAAYvB,GAE1C,EAAG,CAACA,IAEJmB,EAAU,eACkBK,OAAXH,IAAXpB,IACa,MAAfK,GAAwB,OAATkB,EAAflB,EAAiBgB,UAAjBE,EAA0BC,UAAU,CAAExB,OAAAA,IAE1C,EAAG,CAACA,IAEJkB,EAAU,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,EAASvC,EAHgBJ,GAC7BsC,MAAAA,OAAAA,EAAAA,EAAS3B,iBAAkBA,IAI7BM,EAAQc,QAAUa,EAAaP,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.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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"}
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.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,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(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}}});
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.0\";\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":"whBACa,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,mLAyCEM,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.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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"}
package/dist/version.d.ts CHANGED
@@ -1 +1 @@
1
- export declare const PACKAGE_VERSION = "0.5.0";
1
+ export declare const PACKAGE_VERSION = "0.5.2";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elevenlabs/react",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
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.0"
22
+ "@elevenlabs/client": "0.5.2"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "react": ">=16.8.0"
@@ -39,13 +39,13 @@
39
39
  },
40
40
  "scripts": {
41
41
  "generate-version": "printf \"// This file is auto-generated during build\\nexport const PACKAGE_VERSION = \\\"%s\\\";\\n\" \"$npm_package_version\" > src/version.ts",
42
- "prebuild": "npm run generate-version",
42
+ "prebuild": "pnpm run generate-version",
43
43
  "build": "BROWSERSLIST_ENV=modern microbundle --jsx React.createElement --jsxFragment React.Fragment --jsxImportSource react src/index.ts",
44
44
  "clean": "rm -rf ./dist",
45
- "dev": "npm run clean && npm run generate-version && BROWSERSLIST_ENV=development microbundle --jsx React.createElement --jsxFragment React.Fragment --jsxImportSource react src/index.ts -w -f modern",
46
- "lint": "npm run lint:ts && npm run lint:es && npm run lint:prettier",
45
+ "dev": "pnpm run clean && pnpm run generate-version && BROWSERSLIST_ENV=development microbundle --jsx React.createElement --jsxFragment React.Fragment --jsxImportSource react src/index.ts -w -f modern",
46
+ "lint": "pnpm run lint:ts && pnpm run lint:es && pnpm run lint:prettier",
47
47
  "lint:ts": "tsc --noEmit --skipLibCheck",
48
- "lint:es": "npx eslint .",
48
+ "lint:es": "pnpm exec eslint .",
49
49
  "lint:prettier": "prettier 'src/**/*.ts' --check",
50
50
  "test": "jest"
51
51
  }