@elevenlabs/react 0.4.2 → 0.4.4

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 e=require("react"),n=require("@elevenlabs/client");function r(){return r=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},r.apply(null,arguments)}var t=["micMuted","volume"];Object.defineProperty(exports,"postOverallFeedback",{enumerable:!0,get:function(){return n.postOverallFeedback}}),exports.useConversation=function(u){void 0===u&&(u={});var l=u.micMuted,o=u.volume,i=function(e,n){if(null==e)return{};var r={};for(var t in e)if({}.hasOwnProperty.call(e,t)){if(-1!==n.indexOf(t))continue;r[t]=e[t]}return r}(u,t),c=e.useRef(null),s=e.useRef(null),a=e.useState("disconnected"),v=a[0],d=a[1],f=e.useState(!1),m=f[0],p=f[1],g=e.useState("listening"),h=g[0],y=g[1];return e.useEffect(function(){var e;void 0!==l&&(null==c||null==(e=c.current)||e.setMicMuted(l))},[l]),e.useEffect(function(){var e;void 0!==o&&(null==c||null==(e=c.current)||e.setVolume({volume:o}))},[o]),e.useEffect(function(){return function(){var e;null==(e=c.current)||e.endSession()}},[]),{startSession:function(e){try{var t,u,a=function(t){return u?t:function(t,u){try{var a=(s.current=n.Conversation.startSession(r({},null!=i?i:{},null!=e?e:{},{overrides:r({},null!=(v=null==i?void 0:i.overrides)?v:{},null!=(f=null==e?void 0:e.overrides)?f:{},{client:r({},null!=(m=null==i||null==(g=i.overrides)?void 0:g.client)?m:{},null!=(h=null==e||null==(b=e.overrides)?void 0:b.client)?h:{},{source:(null==e||null==(O=e.overrides)||null==(O=O.client)?void 0:O.source)||(null==i||null==(S=i.overrides)||null==(S=S.client)?void 0:S.source)||"react_sdk",version:(null==e||null==(M=e.overrides)||null==(M=M.client)?void 0:M.version)||(null==i||null==(P=i.overrides)||null==(P=P.client)?void 0:P.version)||"0.4.2"})}),onModeChange:function(e){y(e.mode)},onStatusChange:function(e){d(e.status)},onCanSendFeedbackChange:function(e){p(e.canSendFeedback)}})),Promise.resolve(s.current).then(function(e){return c.current=e,void 0!==l&&c.current.setMicMuted(l),void 0!==o&&c.current.setVolume({volume:o}),c.current.getId()}))}catch(e){return u(!0,e)}var v,f,m,g,h,b,O,S,M,P;return a&&a.then?a.then(u.bind(null,!1),u.bind(null,!0)):u(!1,a)}(0,function(e,n){if(s.current=null,e)throw n;return n})};if(null!=(t=c.current)&&t.isOpen())return Promise.resolve(c.current.getId());var v=function(){if(s.current)return Promise.resolve(s.current).then(function(e){var n=e.getId();return u=1,n})}();return Promise.resolve(v&&v.then?v.then(a):a(v))}catch(e){return Promise.reject(e)}},endSession:function(){try{var e=c.current;return c.current=null,Promise.resolve(null==e?void 0:e.endSession()).then(function(){})}catch(e){return Promise.reject(e)}},setVolume:function(e){var n;null==(n=c.current)||n.setVolume({volume:e.volume})},getInputByteFrequencyData:function(){var e;return null==(e=c.current)?void 0:e.getInputByteFrequencyData()},getOutputByteFrequencyData:function(){var e;return null==(e=c.current)?void 0:e.getOutputByteFrequencyData()},getInputVolume:function(){var e,n;return null!=(e=null==(n=c.current)?void 0:n.getInputVolume())?e:0},getOutputVolume:function(){var e,n;return null!=(e=null==(n=c.current)?void 0:n.getOutputVolume())?e:0},sendFeedback:function(e){var n;null==(n=c.current)||n.sendFeedback(e)},getId:function(){var e;return null==(e=c.current)?void 0:e.getId()},sendContextualUpdate:function(e){var n;null==(n=c.current)||n.sendContextualUpdate(e)},sendUserMessage:function(e){var n;null==(n=c.current)||n.sendUserMessage(e)},sendUserActivity:function(){var e;null==(e=c.current)||e.sendUserActivity()},sendMCPToolApprovalResult:function(e,n){var r;null==(r=c.current)||r.sendMCPToolApprovalResult(e,n)},status:v,canSendFeedback:m,micMuted:l,isSpeaking:"speaking"===h}};
1
+ var n=require("react"),e=require("@elevenlabs/client");function r(){return r=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var t in r)({}).hasOwnProperty.call(r,t)&&(n[t]=r[t])}return n},r.apply(null,arguments)}var t=["micMuted","volume"];Object.defineProperty(exports,"postOverallFeedback",{enumerable:!0,get:function(){return e.postOverallFeedback}}),exports.useConversation=function(u){void 0===u&&(u={});var l=u.micMuted,o=u.volume,i=function(n,e){if(null==n)return{};var r={};for(var t in n)if({}.hasOwnProperty.call(n,t)){if(-1!==e.indexOf(t))continue;r[t]=n[t]}return r}(u,t),c=n.useRef(null),s=n.useRef(null),a=n.useState("disconnected"),d=a[0],v=a[1],f=n.useState(!1),g=f[0],m=f[1],p=n.useState("listening"),h=p[0],b=p[1];return n.useEffect(function(){var n;void 0!==l&&(null==c||null==(n=c.current)||n.setMicMuted(l))},[l]),n.useEffect(function(){var n;void 0!==o&&(null==c||null==(n=c.current)||n.setVolume({volume:o}))},[o]),n.useEffect(function(){return function(){var n;null==(n=c.current)||n.endSession()}},[]),{startSession:function(n){try{var t,u,a=function(t){return u?t:function(t,u){try{var a=(s.current=e.Conversation.startSession(r({},null!=i?i:{},null!=n?n:{},{overrides:r({},null!=(d=null==i?void 0:i.overrides)?d:{},null!=(f=null==n?void 0:n.overrides)?f:{},{client:r({},null!=(g=null==i||null==(p=i.overrides)?void 0:p.client)?g:{},null!=(h=null==n||null==(y=n.overrides)?void 0:y.client)?h:{},{source:(null==n||null==(C=n.overrides)||null==(C=C.client)?void 0:C.source)||(null==i||null==(M=i.overrides)||null==(M=M.client)?void 0:M.source)||"react_sdk",version:(null==n||null==(O=n.overrides)||null==(O=O.client)?void 0:O.version)||(null==i||null==(S=i.overrides)||null==(S=S.client)?void 0:S.version)||"0.4.4"})}),onConnect:null==n?void 0:n.onConnect,onDisconnect:null==n?void 0:n.onDisconnect,onError:null==n?void 0:n.onError,onMessage:null==n?void 0:n.onMessage,onAudio:null==n?void 0:n.onAudio,onDebug:null==n?void 0:n.onDebug,onUnhandledClientToolCall:null==n?void 0:n.onUnhandledClientToolCall,onModeChange:function(n){b(n.mode)},onStatusChange:function(n){v(n.status)},onCanSendFeedbackChange:function(n){m(n.canSendFeedback)}})),Promise.resolve(s.current).then(function(n){return c.current=n,void 0!==l&&c.current.setMicMuted(l),void 0!==o&&c.current.setVolume({volume:o}),c.current.getId()}))}catch(n){return u(!0,n)}var d,f,g,p,h,y,C,M,O,S;return a&&a.then?a.then(u.bind(null,!1),u.bind(null,!0)):u(!1,a)}(0,function(n,e){if(s.current=null,n)throw e;return e})};if(null!=(t=c.current)&&t.isOpen())return Promise.resolve(c.current.getId());var d=function(){if(s.current)return Promise.resolve(s.current).then(function(n){var e=n.getId();return u=1,e})}();return Promise.resolve(d&&d.then?d.then(a):a(d))}catch(n){return Promise.reject(n)}},endSession:function(){try{var n=c.current;return c.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=c.current)||e.setVolume({volume:n.volume})},getInputByteFrequencyData:function(){var n;return null==(n=c.current)?void 0:n.getInputByteFrequencyData()},getOutputByteFrequencyData:function(){var n;return null==(n=c.current)?void 0:n.getOutputByteFrequencyData()},getInputVolume:function(){var n,e;return null!=(n=null==(e=c.current)?void 0:e.getInputVolume())?n:0},getOutputVolume:function(){var n,e;return null!=(n=null==(e=c.current)?void 0:e.getOutputVolume())?n:0},sendFeedback:function(n){var e;null==(e=c.current)||e.sendFeedback(n)},getId:function(){var n;return null==(n=c.current)?void 0:n.getId()},sendContextualUpdate:function(n){var e;null==(e=c.current)||e.sendContextualUpdate(n)},sendUserMessage:function(n){var e;null==(e=c.current)||e.sendUserMessage(n)},sendUserActivity:function(){var n;null==(n=c.current)||n.sendUserActivity()},sendMCPToolApprovalResult:function(n,e){var r;null==(r=c.current)||r.sendMCPToolApprovalResult(n,e)},status:d,canSendFeedback:g,micMuted:l,isSpeaking:"speaking"===h}};
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.4.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} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig\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 | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, ...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 lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\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 onModeChange: ({ mode }) => {\n setMode(mode);\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(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":["props","micMuted","volume","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","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","onModeChange","_ref","onStatusChange","_ref2","onCanSendFeedbackChange","_ref3","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref4","_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.4.4\";\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} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig\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 | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, ...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 lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\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,\n onDisconnect: options?.onDisconnect,\n onError: options?.onError,\n onMessage: options?.onMessage,\n onAudio: options?.onAudio,\n onDebug: options?.onDebug,\n onUnhandledClientToolCall: options?.onUnhandledClientToolCall,\n onModeChange: ({ mode }) => {\n setMode(mode);\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(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":["props","micMuted","volume","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","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","onModeChange","_ref","onStatusChange","_ref2","onCanSendFeedbackChange","_ref3","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref4","_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 e,useState as n,useEffect as r}from"react";import{Conversation as l}from"@elevenlabs/client";export{postOverallFeedback}from"@elevenlabs/client";function t(){return t=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var l in r)({}).hasOwnProperty.call(r,l)&&(e[l]=r[l])}return e},t.apply(null,arguments)}const u=["micMuted","volume"];function o(o={}){const{micMuted:i,volume:s}=o,a=function(e,n){if(null==e)return{};var r={};for(var l in e)if({}.hasOwnProperty.call(e,l)){if(-1!==n.indexOf(l))continue;r[l]=e[l]}return r}(o,u),c=e(null),d=e(null),[v,p]=n("disconnected"),[g,m]=n(!1),[f,y]=n("listening");return r(()=>{var e;void 0!==i&&(null==c||null==(e=c.current)||e.setMicMuted(i))},[i]),r(()=>{var e;void 0!==s&&(null==c||null==(e=c.current)||e.setVolume({volume:s}))},[s]),r(()=>()=>{var e;null==(e=c.current)||e.endSession()},[]),{startSession:async e=>{var n;if(null!=(n=c.current)&&n.isOpen())return c.current.getId();if(d.current)return(await d.current).getId();try{var r,u,o,v,g,f,M,b,O,F;return d.current=l.startSession(t({},null!=a?a:{},null!=e?e:{},{overrides:t({},null!=(r=null==a?void 0:a.overrides)?r:{},null!=(u=null==e?void 0:e.overrides)?u:{},{client:t({},null!=(o=null==a||null==(v=a.overrides)?void 0:v.client)?o:{},null!=(g=null==e||null==(f=e.overrides)?void 0:f.client)?g:{},{source:(null==e||null==(M=e.overrides)||null==(M=M.client)?void 0:M.source)||(null==a||null==(b=a.overrides)||null==(b=b.client)?void 0:b.source)||"react_sdk",version:(null==e||null==(O=e.overrides)||null==(O=O.client)?void 0:O.version)||(null==a||null==(F=a.overrides)||null==(F=F.client)?void 0:F.version)||"0.4.2"})}),onModeChange:({mode:e})=>{y(e)},onStatusChange:({status:e})=>{p(e)},onCanSendFeedbackChange:({canSendFeedback:e})=>{m(e)}})),c.current=await d.current,void 0!==i&&c.current.setMicMuted(i),void 0!==s&&c.current.setVolume({volume:s}),c.current.getId()}finally{d.current=null}},endSession:async()=>{const e=c.current;c.current=null,await(null==e?void 0:e.endSession())},setVolume:({volume:e})=>{var n;null==(n=c.current)||n.setVolume({volume:e})},getInputByteFrequencyData:()=>{var e;return null==(e=c.current)?void 0:e.getInputByteFrequencyData()},getOutputByteFrequencyData:()=>{var e;return null==(e=c.current)?void 0:e.getOutputByteFrequencyData()},getInputVolume:()=>{var e,n;return null!=(e=null==(n=c.current)?void 0:n.getInputVolume())?e:0},getOutputVolume:()=>{var e,n;return null!=(e=null==(n=c.current)?void 0:n.getOutputVolume())?e:0},sendFeedback:e=>{var n;null==(n=c.current)||n.sendFeedback(e)},getId:()=>{var e;return null==(e=c.current)?void 0:e.getId()},sendContextualUpdate:e=>{var n;null==(n=c.current)||n.sendContextualUpdate(e)},sendUserMessage:e=>{var n;null==(n=c.current)||n.sendUserMessage(e)},sendUserActivity:()=>{var e;null==(e=c.current)||e.sendUserActivity()},sendMCPToolApprovalResult:(e,n)=>{var r;null==(r=c.current)||r.sendMCPToolApprovalResult(e,n)},status:v,canSendFeedback:g,micMuted:i,isSpeaking:"speaking"===f}}export{o as useConversation};
1
+ import{useRef as e,useState as n,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(e){for(var n=1;n<arguments.length;n++){var l=arguments[n];for(var r in l)({}).hasOwnProperty.call(l,r)&&(e[r]=l[r])}return e},u.apply(null,arguments)}const t=["micMuted","volume"];function o(o={}){const{micMuted:i,volume:s}=o,a=function(e,n){if(null==e)return{};var l={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==n.indexOf(r))continue;l[r]=e[r]}return l}(o,t),c=e(null),d=e(null),[v,g]=n("disconnected"),[p,m]=n(!1),[f,y]=n("listening");return l(()=>{var e;void 0!==i&&(null==c||null==(e=c.current)||e.setMicMuted(i))},[i]),l(()=>{var e;void 0!==s&&(null==c||null==(e=c.current)||e.setVolume({volume:s}))},[s]),l(()=>()=>{var e;null==(e=c.current)||e.endSession()},[]),{startSession:async e=>{var n;if(null!=(n=c.current)&&n.isOpen())return c.current.getId();if(d.current)return(await d.current).getId();try{var l,t,o,v,p,f,C,M,b,O;return d.current=r.startSession(u({},null!=a?a:{},null!=e?e:{},{overrides:u({},null!=(l=null==a?void 0:a.overrides)?l:{},null!=(t=null==e?void 0:e.overrides)?t:{},{client:u({},null!=(o=null==a||null==(v=a.overrides)?void 0:v.client)?o:{},null!=(p=null==e||null==(f=e.overrides)?void 0:f.client)?p:{},{source:(null==e||null==(C=e.overrides)||null==(C=C.client)?void 0:C.source)||(null==a||null==(M=a.overrides)||null==(M=M.client)?void 0:M.source)||"react_sdk",version:(null==e||null==(b=e.overrides)||null==(b=b.client)?void 0:b.version)||(null==a||null==(O=a.overrides)||null==(O=O.client)?void 0:O.version)||"0.4.4"})}),onConnect:null==e?void 0:e.onConnect,onDisconnect:null==e?void 0:e.onDisconnect,onError:null==e?void 0:e.onError,onMessage:null==e?void 0:e.onMessage,onAudio:null==e?void 0:e.onAudio,onDebug:null==e?void 0:e.onDebug,onUnhandledClientToolCall:null==e?void 0:e.onUnhandledClientToolCall,onModeChange:({mode:e})=>{y(e)},onStatusChange:({status:e})=>{g(e)},onCanSendFeedbackChange:({canSendFeedback:e})=>{m(e)}})),c.current=await d.current,void 0!==i&&c.current.setMicMuted(i),void 0!==s&&c.current.setVolume({volume:s}),c.current.getId()}finally{d.current=null}},endSession:async()=>{const e=c.current;c.current=null,await(null==e?void 0:e.endSession())},setVolume:({volume:e})=>{var n;null==(n=c.current)||n.setVolume({volume:e})},getInputByteFrequencyData:()=>{var e;return null==(e=c.current)?void 0:e.getInputByteFrequencyData()},getOutputByteFrequencyData:()=>{var e;return null==(e=c.current)?void 0:e.getOutputByteFrequencyData()},getInputVolume:()=>{var e,n;return null!=(e=null==(n=c.current)?void 0:n.getInputVolume())?e:0},getOutputVolume:()=>{var e,n;return null!=(e=null==(n=c.current)?void 0:n.getOutputVolume())?e:0},sendFeedback:e=>{var n;null==(n=c.current)||n.sendFeedback(e)},getId:()=>{var e;return null==(e=c.current)?void 0:e.getId()},sendContextualUpdate:e=>{var n;null==(n=c.current)||n.sendContextualUpdate(e)},sendUserMessage:e=>{var n;null==(n=c.current)||n.sendUserMessage(e)},sendUserActivity:()=>{var e;null==(e=c.current)||e.sendUserActivity()},sendMCPToolApprovalResult:(e,n)=>{var l;null==(l=c.current)||l.sendMCPToolApprovalResult(e,n)},status:v,canSendFeedback:p,micMuted:i,isSpeaking:"speaking"===f}}export{o 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.4.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} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig\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 | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, ...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 lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\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 onModeChange: ({ mode }) => {\n setMode(mode);\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(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":["useConversation","props","micMuted","volume","defaultOptions","_objectWithoutPropertiesLoose","_excluded","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","Conversation","_extends","options","overrides","client","source","version","onModeChange","onStatusChange","onCanSendFeedbackChange","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.4.4\";\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} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig\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 | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, ...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 lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\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,\n onDisconnect: options?.onDisconnect,\n onError: options?.onError,\n onMessage: options?.onMessage,\n onAudio: options?.onAudio,\n onDebug: options?.onDebug,\n onUnhandledClientToolCall: options?.onUnhandledClientToolCall,\n onModeChange: ({ mode }) => {\n setMode(mode);\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(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":["useConversation","props","micMuted","volume","defaultOptions","_objectWithoutPropertiesLoose","_excluded","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","Conversation","_extends","options","overrides","client","source","version","onConnect","onDisconnect","onError","onMessage","onAudio","onDebug","onUnhandledClientToolCall","onModeChange","onStatusChange","onCanSendFeedbackChange","conversation","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","isSpeaking"],"mappings":"0XACa,8BCyCG,SAAAA,EACdC,EAAW,CAAO,GAElB,MAAMC,SAAEA,EAAQC,OAAEA,GAA8BF,EAAnBG,6IAAcC,CAAKJ,EAAKK,GAC/CC,EAAkBC,EAA4B,MAC9CC,EAAUD,EAAqC,OAC9CE,EAAQC,GAAaC,EAAiB,iBACtCC,EAAiBC,GAAsBF,GAAS,IAChDG,EAAMC,GAAWJ,EAAe,aAoBvC,OAlBAK,EAAU,SACoBC,OAAXC,IAAbjB,IACa,MAAfK,GAAAW,OAAeA,EAAfX,EAAiBa,UAAjBF,EAA0BG,YAAYnB,KAEvC,CAACA,IAEJe,EAAU,KACkBK,IAAAA,OAAXH,IAAXhB,IACa,MAAfI,GAAAe,OAAeA,EAAff,EAAiBa,UAAjBE,EAA0BC,UAAU,CAAEpB,aAEvC,CAACA,IAEJc,EAAU,IACD,KAAK,IAAAO,EACa,OAAvBA,EAAAjB,EAAgBa,UAAhBI,EAAyBC,cAE1B,IAEI,CACLC,aAAeC,UAAgCC,IAAAA,EAC7C,GAAIA,OAAJA,EAAIrB,EAAgBa,UAAhBQ,EAAyBC,SAC3B,OAAOtB,EAAgBa,QAAQU,QAGjC,GAAIrB,EAAQW,QAEV,aAD2BX,EAAQW,SACfU,QAGtB,IAAI,IAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAgDF,OA/CA/B,EAAQW,QAAUqB,EAAaf,aAAYgB,EACrCtC,CAAAA,EAAAA,MAAAA,EAAAA,EAAkB,CAAE,EACpBuC,MAAAA,EAAAA,EAAW,CAAE,EACjBC,CAAAA,UAASF,EAAAX,CAAAA,SAAAA,EACH3B,MAAAA,OAAAA,EAAAA,EAAgBwC,WAASb,EAAI,CAAA,EACX,OADaC,EACxB,MAAPW,OAAO,EAAPA,EAASC,WAASZ,EAAI,CAAE,EAAA,CAC5Ba,OAAMH,EAAA,CAAA,SAAAT,EACc,MAAd7B,GAAA8B,OAAcA,EAAd9B,EAAgBwC,gBAAhBV,EAAAA,EAA2BW,QAAMZ,EAAI,CAAE,EACb,OADaE,EAChC,MAAPQ,GAAkB,OAAXP,EAAPO,EAASC,gBAAS,EAAlBR,EAAoBS,QAAMV,EAAI,CAAE,EAAA,CACpCW,cACEH,GAAkB,OAAXN,EAAPM,EAASC,YAATP,OAAkBA,EAAlBA,EAAoBQ,aAApBR,EAAAA,EAA4BS,UACdR,MAAdlC,GAAyB,OAAXkC,EAAdlC,EAAgBwC,YAAhBN,OAAyBA,EAAzBA,EAA2BO,aAA3BP,EAAAA,EAAmCQ,SACnC,YACFC,SACSR,MAAPI,GAAkBJ,OAAXA,EAAPI,EAASC,YAAiB,OAARL,EAAlBA,EAAoBM,aAAM,EAA1BN,EAA4BQ,WACd,MAAd3C,GAAyB,OAAXoC,EAAdpC,EAAgBwC,YAAhBJ,OAAyBA,EAAzBA,EAA2BK,aAA3BL,EAAAA,EAAmCO,UDhGpB,YCqGrBC,UAAkB,MAAPL,OAAO,EAAPA,EAASK,UACpBC,aAAcN,MAAAA,OAAAA,EAAAA,EAASM,aACvBC,QAAgB,MAAPP,OAAO,EAAPA,EAASO,QAClBC,UAAkB,MAAPR,OAAO,EAAPA,EAASQ,UACpBC,QAAST,MAAAA,OAAAA,EAAAA,EAASS,QAClBC,QAAgB,MAAPV,OAAO,EAAPA,EAASU,QAClBC,0BAA2BX,MAAAA,OAAAA,EAAAA,EAASW,0BACpCC,aAAcA,EAAGxC,WACfC,EAAQD,IAEVyC,eAAgBA,EAAG9C,aACjBC,EAAUD,IAEZ+C,wBAAyBA,EAAG5C,sBAC1BC,EAAmBD,OAIvBN,EAAgBa,cAAgBX,EAAQW,aAEvBD,IAAbjB,GACFK,EAAgBa,QAAQC,YAAYnB,QAEvBiB,IAAXhB,GACFI,EAAgBa,QAAQG,UAAU,CAAEpB,WAG/BI,EAAgBa,QAAQU,OACjC,CAAC,QACCrB,EAAQW,QAAU,IACpB,GAIFK,WAAYE,UACV,MAAM+B,EAAenD,EAAgBa,QACrCb,EAAgBa,QAAU,WACR,MAAZsC,OAAY,EAAZA,EAAcjC,eAEtBF,UAAWA,EAAGpB,aAAgCwD,IAAAA,EAC5CA,OAAAA,EAAApD,EAAgBa,UAAhBuC,EAAyBpC,UAAU,CAAEpB,YAEvCyD,0BAA2BA,KAAKC,IAAAA,EAC9B,OAA8B,OAA9BA,EAAOtD,EAAgBa,cAAO,EAAvByC,EAAyBD,6BAElCE,2BAA4BA,KAAK,IAAAC,EAC/B,OAA8B,OAA9BA,EAAOxD,EAAgBa,cAAO,EAAvB2C,EAAyBD,8BAElCE,eAAgBA,KAAKC,IAAAA,EAAAC,EACnB,OAAgD,OAAhDD,EAA8B,OAA9BC,EAAO3D,EAAgBa,cAAO,EAAvB8C,EAAyBF,kBAAgBC,EAAI,GAEtDE,gBAAiBA,KAAKC,IAAAA,EAAAC,EACpB,OAAiD,OAAjDD,EAA8B,OAA9BC,EAAO9D,EAAgBa,cAAO,EAAvBiD,EAAyBF,mBAAiBC,EAAI,GAEvDE,aAAeC,IAAiBC,IAAAA,EACP,OAAvBA,EAAAjE,EAAgBa,UAAhBoD,EAAyBF,aAAaC,IAExCzC,MAAOA,KAAK,IAAA2C,EACV,OAA8B,OAA9BA,EAAOlE,EAAgBa,cAAO,EAAvBqD,EAAyB3C,SAElC4C,qBAAuBC,IAAgB,IAAAC,EACrCA,OAAAA,EAAArE,EAAgBa,UAAhBwD,EAAyBF,qBAAqBC,IAEhDE,gBAAkBF,IAAgB,IAAAG,EACT,OAAvBA,EAAAvE,EAAgBa,UAAhB0D,EAAyBD,gBAAgBF,IAE3CI,iBAAkBA,KAAK,IAAAC,EACE,OAAvBA,EAAAzE,EAAgBa,UAAhB4D,EAAyBD,oBAE3BE,0BAA2BA,CAACC,EAAoBC,KAAuB,IAAAC,EAC9C,OAAvBA,EAAA7E,EAAgBa,UAAhBgE,EAAyBH,0BACvBC,EACAC,IAGJzE,SACAG,kBACAX,WACAmF,WAAqB,aAATtE,EAEhB"}
@@ -1,2 +1,2 @@
1
- import{useRef as n,useState as e,useEffect as r}from"react";import{Conversation as t}from"@elevenlabs/client";export{postOverallFeedback}from"@elevenlabs/client";function u(){return u=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var t in r)({}).hasOwnProperty.call(r,t)&&(n[t]=r[t])}return n},u.apply(null,arguments)}var l=["micMuted","volume"];function o(o){void 0===o&&(o={});var i=o.micMuted,c=o.volume,s=function(n,e){if(null==n)return{};var r={};for(var t in n)if({}.hasOwnProperty.call(n,t)){if(-1!==e.indexOf(t))continue;r[t]=n[t]}return r}(o,l),a=n(null),v=n(null),d=e("disconnected"),f=d[0],m=d[1],p=e(!1),g=p[0],h=p[1],y=e("listening"),b=y[0],M=y[1];return r(function(){var n;void 0!==i&&(null==a||null==(n=a.current)||n.setMicMuted(i))},[i]),r(function(){var n;void 0!==c&&(null==a||null==(n=a.current)||n.setVolume({volume:c}))},[c]),r(function(){return function(){var n;null==(n=a.current)||n.endSession()}},[]),{startSession:function(n){try{var e,r,l=function(e){return r?e:function(e,r){try{var l=(v.current=t.startSession(u({},null!=s?s:{},null!=n?n:{},{overrides:u({},null!=(o=null==s?void 0:s.overrides)?o:{},null!=(d=null==n?void 0:n.overrides)?d:{},{client:u({},null!=(f=null==s||null==(p=s.overrides)?void 0:p.client)?f:{},null!=(g=null==n||null==(y=n.overrides)?void 0:y.client)?g:{},{source:(null==n||null==(b=n.overrides)||null==(b=b.client)?void 0:b.source)||(null==s||null==(O=s.overrides)||null==(O=O.client)?void 0:O.source)||"react_sdk",version:(null==n||null==(P=n.overrides)||null==(P=P.client)?void 0:P.version)||(null==s||null==(F=s.overrides)||null==(F=F.client)?void 0:F.version)||"0.4.2"})}),onModeChange:function(n){M(n.mode)},onStatusChange:function(n){m(n.status)},onCanSendFeedbackChange:function(n){h(n.canSendFeedback)}})),Promise.resolve(v.current).then(function(n){return a.current=n,void 0!==i&&a.current.setMicMuted(i),void 0!==c&&a.current.setVolume({volume:c}),a.current.getId()}))}catch(n){return r(!0,n)}var o,d,f,p,g,y,b,O,P,F;return l&&l.then?l.then(r.bind(null,!1),r.bind(null,!0)):r(!1,l)}(0,function(n,e){if(v.current=null,n)throw e;return e})};if(null!=(e=a.current)&&e.isOpen())return Promise.resolve(a.current.getId());var o=function(){if(v.current)return Promise.resolve(v.current).then(function(n){var e=n.getId();return r=1,e})}();return Promise.resolve(o&&o.then?o.then(l):l(o))}catch(n){return Promise.reject(n)}},endSession:function(){try{var n=a.current;return a.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=a.current)||e.setVolume({volume:n.volume})},getInputByteFrequencyData:function(){var n;return null==(n=a.current)?void 0:n.getInputByteFrequencyData()},getOutputByteFrequencyData:function(){var n;return null==(n=a.current)?void 0:n.getOutputByteFrequencyData()},getInputVolume:function(){var n,e;return null!=(n=null==(e=a.current)?void 0:e.getInputVolume())?n:0},getOutputVolume:function(){var n,e;return null!=(n=null==(e=a.current)?void 0:e.getOutputVolume())?n:0},sendFeedback:function(n){var e;null==(e=a.current)||e.sendFeedback(n)},getId:function(){var n;return null==(n=a.current)?void 0:n.getId()},sendContextualUpdate:function(n){var e;null==(e=a.current)||e.sendContextualUpdate(n)},sendUserMessage:function(n){var e;null==(e=a.current)||e.sendUserMessage(n)},sendUserActivity:function(){var n;null==(n=a.current)||n.sendUserActivity()},sendMCPToolApprovalResult:function(n,e){var r;null==(r=a.current)||r.sendMCPToolApprovalResult(n,e)},status:f,canSendFeedback:g,micMuted:i,isSpeaking:"speaking"===b}}export{o as useConversation};
1
+ import{useRef as n,useState as e,useEffect as r}from"react";import{Conversation as t}from"@elevenlabs/client";export{postOverallFeedback}from"@elevenlabs/client";function u(){return u=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var t in r)({}).hasOwnProperty.call(r,t)&&(n[t]=r[t])}return n},u.apply(null,arguments)}var l=["micMuted","volume"];function o(o){void 0===o&&(o={});var i=o.micMuted,c=o.volume,s=function(n,e){if(null==n)return{};var r={};for(var t in n)if({}.hasOwnProperty.call(n,t)){if(-1!==e.indexOf(t))continue;r[t]=n[t]}return r}(o,l),d=n(null),a=n(null),v=e("disconnected"),f=v[0],m=v[1],g=e(!1),p=g[0],h=g[1],y=e("listening"),b=y[0],C=y[1];return r(function(){var n;void 0!==i&&(null==d||null==(n=d.current)||n.setMicMuted(i))},[i]),r(function(){var n;void 0!==c&&(null==d||null==(n=d.current)||n.setVolume({volume:c}))},[c]),r(function(){return function(){var n;null==(n=d.current)||n.endSession()}},[]),{startSession:function(n){try{var e,r,l=function(e){return r?e:function(e,r){try{var l=(a.current=t.startSession(u({},null!=s?s:{},null!=n?n:{},{overrides:u({},null!=(o=null==s?void 0:s.overrides)?o:{},null!=(v=null==n?void 0:n.overrides)?v:{},{client:u({},null!=(f=null==s||null==(g=s.overrides)?void 0:g.client)?f:{},null!=(p=null==n||null==(y=n.overrides)?void 0:y.client)?p:{},{source:(null==n||null==(b=n.overrides)||null==(b=b.client)?void 0:b.source)||(null==s||null==(M=s.overrides)||null==(M=M.client)?void 0:M.source)||"react_sdk",version:(null==n||null==(O=n.overrides)||null==(O=O.client)?void 0:O.version)||(null==s||null==(P=s.overrides)||null==(P=P.client)?void 0:P.version)||"0.4.4"})}),onConnect:null==n?void 0:n.onConnect,onDisconnect:null==n?void 0:n.onDisconnect,onError:null==n?void 0:n.onError,onMessage:null==n?void 0:n.onMessage,onAudio:null==n?void 0:n.onAudio,onDebug:null==n?void 0:n.onDebug,onUnhandledClientToolCall:null==n?void 0:n.onUnhandledClientToolCall,onModeChange:function(n){C(n.mode)},onStatusChange:function(n){m(n.status)},onCanSendFeedbackChange:function(n){h(n.canSendFeedback)}})),Promise.resolve(a.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 r(!0,n)}var o,v,f,g,p,y,b,M,O,P;return l&&l.then?l.then(r.bind(null,!1),r.bind(null,!0)):r(!1,l)}(0,function(n,e){if(a.current=null,n)throw e;return e})};if(null!=(e=d.current)&&e.isOpen())return Promise.resolve(d.current.getId());var o=function(){if(a.current)return Promise.resolve(a.current).then(function(n){var e=n.getId();return r=1,e})}();return Promise.resolve(o&&o.then?o.then(l):l(o))}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:f,canSendFeedback:p,micMuted:i,isSpeaking:"speaking"===b}}export{o 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.4.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} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig\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 | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, ...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 lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\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 onModeChange: ({ mode }) => {\n setMode(mode);\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(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":["useConversation","props","micMuted","volume","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","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","onModeChange","_ref","onStatusChange","_ref2","onCanSendFeedbackChange","_ref3","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref4","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","isSpeaking"],"mappings":"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"}
1
+ {"version":3,"file":"lib.module.js","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.4.4\";\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} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig\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 | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, ...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 lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\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,\n onDisconnect: options?.onDisconnect,\n onError: options?.onError,\n onMessage: options?.onMessage,\n onAudio: options?.onAudio,\n onDebug: options?.onDebug,\n onUnhandledClientToolCall: options?.onUnhandledClientToolCall,\n onModeChange: ({ mode }) => {\n setMode(mode);\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(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":["useConversation","props","micMuted","volume","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","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","onModeChange","_ref","onStatusChange","_ref2","onCanSendFeedbackChange","_ref3","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref4","_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(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react"),require("@elevenlabs/client")):"function"==typeof define&&define.amd?define(["exports","react","@elevenlabs/client"],n):n((e||self).react={},e.react,e.client)}(this,function(e,n,t){function r(){return r=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},r.apply(null,arguments)}var u=["micMuted","volume"];Object.defineProperty(e,"postOverallFeedback",{enumerable:!0,get:function(){return t.postOverallFeedback}}),e.useConversation=function(e){void 0===e&&(e={});var l=e.micMuted,o=e.volume,i=function(e,n){if(null==e)return{};var t={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==n.indexOf(r))continue;t[r]=e[r]}return t}(e,u),c=n.useRef(null),s=n.useRef(null),a=n.useState("disconnected"),d=a[0],v=a[1],f=n.useState(!1),p=f[0],m=f[1],g=n.useState("listening"),y=g[0],h=g[1];return n.useEffect(function(){var e;void 0!==l&&(null==c||null==(e=c.current)||e.setMicMuted(l))},[l]),n.useEffect(function(){var e;void 0!==o&&(null==c||null==(e=c.current)||e.setVolume({volume:o}))},[o]),n.useEffect(function(){return function(){var e;null==(e=c.current)||e.endSession()}},[]),{startSession:function(e){try{var n,u,a=function(n){return u?n:function(n,u){try{var a=(s.current=t.Conversation.startSession(r({},null!=i?i:{},null!=e?e:{},{overrides:r({},null!=(d=null==i?void 0:i.overrides)?d:{},null!=(f=null==e?void 0:e.overrides)?f:{},{client:r({},null!=(p=null==i||null==(g=i.overrides)?void 0:g.client)?p:{},null!=(y=null==e||null==(b=e.overrides)?void 0:b.client)?y:{},{source:(null==e||null==(O=e.overrides)||null==(O=O.client)?void 0:O.source)||(null==i||null==(S=i.overrides)||null==(S=S.client)?void 0:S.source)||"react_sdk",version:(null==e||null==(M=e.overrides)||null==(M=M.client)?void 0:M.version)||(null==i||null==(P=i.overrides)||null==(P=P.client)?void 0:P.version)||"0.4.2"})}),onModeChange:function(e){h(e.mode)},onStatusChange:function(e){v(e.status)},onCanSendFeedbackChange:function(e){m(e.canSendFeedback)}})),Promise.resolve(s.current).then(function(e){return c.current=e,void 0!==l&&c.current.setMicMuted(l),void 0!==o&&c.current.setVolume({volume:o}),c.current.getId()}))}catch(e){return u(!0,e)}var d,f,p,g,y,b,O,S,M,P;return a&&a.then?a.then(u.bind(null,!1),u.bind(null,!0)):u(!1,a)}(0,function(e,n){if(s.current=null,e)throw n;return n})};if(null!=(n=c.current)&&n.isOpen())return Promise.resolve(c.current.getId());var d=function(){if(s.current)return Promise.resolve(s.current).then(function(e){var n=e.getId();return u=1,n})}();return Promise.resolve(d&&d.then?d.then(a):a(d))}catch(e){return Promise.reject(e)}},endSession:function(){try{var e=c.current;return c.current=null,Promise.resolve(null==e?void 0:e.endSession()).then(function(){})}catch(e){return Promise.reject(e)}},setVolume:function(e){var n;null==(n=c.current)||n.setVolume({volume:e.volume})},getInputByteFrequencyData:function(){var e;return null==(e=c.current)?void 0:e.getInputByteFrequencyData()},getOutputByteFrequencyData:function(){var e;return null==(e=c.current)?void 0:e.getOutputByteFrequencyData()},getInputVolume:function(){var e,n;return null!=(e=null==(n=c.current)?void 0:n.getInputVolume())?e:0},getOutputVolume:function(){var e,n;return null!=(e=null==(n=c.current)?void 0:n.getOutputVolume())?e:0},sendFeedback:function(e){var n;null==(n=c.current)||n.sendFeedback(e)},getId:function(){var e;return null==(e=c.current)?void 0:e.getId()},sendContextualUpdate:function(e){var n;null==(n=c.current)||n.sendContextualUpdate(e)},sendUserMessage:function(e){var n;null==(n=c.current)||n.sendUserMessage(e)},sendUserActivity:function(){var e;null==(e=c.current)||e.sendUserActivity()},sendMCPToolApprovalResult:function(e,n){var t;null==(t=c.current)||t.sendMCPToolApprovalResult(e,n)},status:d,canSendFeedback:p,micMuted:l,isSpeaking:"speaking"===y}}});
1
+ !function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react"),require("@elevenlabs/client")):"function"==typeof define&&define.amd?define(["exports","react","@elevenlabs/client"],n):n((e||self).react={},e.react,e.client)}(this,function(e,n,t){function r(){return r=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)({}).hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},r.apply(null,arguments)}var u=["micMuted","volume"];Object.defineProperty(e,"postOverallFeedback",{enumerable:!0,get:function(){return t.postOverallFeedback}}),e.useConversation=function(e){void 0===e&&(e={});var l=e.micMuted,o=e.volume,i=function(e,n){if(null==e)return{};var t={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==n.indexOf(r))continue;t[r]=e[r]}return t}(e,u),c=n.useRef(null),s=n.useRef(null),a=n.useState("disconnected"),d=a[0],v=a[1],f=n.useState(!1),g=f[0],p=f[1],m=n.useState("listening"),h=m[0],b=m[1];return n.useEffect(function(){var e;void 0!==l&&(null==c||null==(e=c.current)||e.setMicMuted(l))},[l]),n.useEffect(function(){var e;void 0!==o&&(null==c||null==(e=c.current)||e.setVolume({volume:o}))},[o]),n.useEffect(function(){return function(){var e;null==(e=c.current)||e.endSession()}},[]),{startSession:function(e){try{var n,u,a=function(n){return u?n:function(n,u){try{var a=(s.current=t.Conversation.startSession(r({},null!=i?i:{},null!=e?e:{},{overrides:r({},null!=(d=null==i?void 0:i.overrides)?d:{},null!=(f=null==e?void 0:e.overrides)?f:{},{client:r({},null!=(g=null==i||null==(m=i.overrides)?void 0:m.client)?g:{},null!=(h=null==e||null==(y=e.overrides)?void 0:y.client)?h:{},{source:(null==e||null==(C=e.overrides)||null==(C=C.client)?void 0:C.source)||(null==i||null==(M=i.overrides)||null==(M=M.client)?void 0:M.source)||"react_sdk",version:(null==e||null==(O=e.overrides)||null==(O=O.client)?void 0:O.version)||(null==i||null==(S=i.overrides)||null==(S=S.client)?void 0:S.version)||"0.4.4"})}),onConnect:null==e?void 0:e.onConnect,onDisconnect:null==e?void 0:e.onDisconnect,onError:null==e?void 0:e.onError,onMessage:null==e?void 0:e.onMessage,onAudio:null==e?void 0:e.onAudio,onDebug:null==e?void 0:e.onDebug,onUnhandledClientToolCall:null==e?void 0:e.onUnhandledClientToolCall,onModeChange:function(e){b(e.mode)},onStatusChange:function(e){v(e.status)},onCanSendFeedbackChange:function(e){p(e.canSendFeedback)}})),Promise.resolve(s.current).then(function(e){return c.current=e,void 0!==l&&c.current.setMicMuted(l),void 0!==o&&c.current.setVolume({volume:o}),c.current.getId()}))}catch(e){return u(!0,e)}var d,f,g,m,h,y,C,M,O,S;return a&&a.then?a.then(u.bind(null,!1),u.bind(null,!0)):u(!1,a)}(0,function(e,n){if(s.current=null,e)throw n;return n})};if(null!=(n=c.current)&&n.isOpen())return Promise.resolve(c.current.getId());var d=function(){if(s.current)return Promise.resolve(s.current).then(function(e){var n=e.getId();return u=1,n})}();return Promise.resolve(d&&d.then?d.then(a):a(d))}catch(e){return Promise.reject(e)}},endSession:function(){try{var e=c.current;return c.current=null,Promise.resolve(null==e?void 0:e.endSession()).then(function(){})}catch(e){return Promise.reject(e)}},setVolume:function(e){var n;null==(n=c.current)||n.setVolume({volume:e.volume})},getInputByteFrequencyData:function(){var e;return null==(e=c.current)?void 0:e.getInputByteFrequencyData()},getOutputByteFrequencyData:function(){var e;return null==(e=c.current)?void 0:e.getOutputByteFrequencyData()},getInputVolume:function(){var e,n;return null!=(e=null==(n=c.current)?void 0:n.getInputVolume())?e:0},getOutputVolume:function(){var e,n;return null!=(e=null==(n=c.current)?void 0:n.getOutputVolume())?e:0},sendFeedback:function(e){var n;null==(n=c.current)||n.sendFeedback(e)},getId:function(){var e;return null==(e=c.current)?void 0:e.getId()},sendContextualUpdate:function(e){var n;null==(n=c.current)||n.sendContextualUpdate(e)},sendUserMessage:function(e){var n;null==(n=c.current)||n.sendUserMessage(e)},sendUserActivity:function(){var e;null==(e=c.current)||e.sendUserActivity()},sendMCPToolApprovalResult:function(e,n){var t;null==(t=c.current)||t.sendMCPToolApprovalResult(e,n)},status:d,canSendFeedback:g,micMuted:l,isSpeaking:"speaking"===h}}});
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.4.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} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig\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 | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, ...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 lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\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 onModeChange: ({ mode }) => {\n setMode(mode);\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(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":["props","micMuted","volume","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","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","onModeChange","_ref","onStatusChange","_ref2","onCanSendFeedbackChange","_ref3","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref4","_conversationRef$curr5","getInputByteFrequencyData","_conversationRef$curr6","getOutputByteFrequencyData","_conversationRef$curr7","getInputVolume","_conversationRef$curr8","_conversationRef$curr9","getOutputVolume","_conversationRef$curr0","_conversationRef$curr1","sendFeedback","like","_conversationRef$curr10","_conversationRef$curr11","sendContextualUpdate","text","_conversationRef$curr12","sendUserMessage","_conversationRef$curr13","sendUserActivity","_conversationRef$curr14","sendMCPToolApprovalResult","toolCallId","isApproved","_conversationRef$curr15","isSpeaking"],"mappings":"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"}
1
+ {"version":3,"file":"lib.umd.js","sources":["../src/version.ts","../src/index.ts"],"sourcesContent":["// This file is auto-generated during build\nexport const PACKAGE_VERSION = \"0.4.4\";\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} from \"@elevenlabs/client\";\n\nimport { PACKAGE_VERSION } from \"./version\";\n\nexport type {\n Role,\n Mode,\n Status,\n SessionConfig,\n DisconnectionDetails,\n Language,\n} from \"@elevenlabs/client\";\nexport { postOverallFeedback } from \"@elevenlabs/client\";\n\nexport type HookOptions = Partial<\n SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig\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 | \"onDebug\"\n | \"onUnhandledClientToolCall\"\n>;\n\nexport function useConversation<T extends HookOptions & ControlledState>(\n props: T = {} as T\n) {\n const { micMuted, volume, ...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 lockRef.current = Conversation.startSession({\n ...(defaultOptions ?? {}),\n ...(options ?? {}),\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,\n onDisconnect: options?.onDisconnect,\n onError: options?.onError,\n onMessage: options?.onMessage,\n onAudio: options?.onAudio,\n onDebug: options?.onDebug,\n onUnhandledClientToolCall: options?.onUnhandledClientToolCall,\n onModeChange: ({ mode }) => {\n setMode(mode);\n },\n onStatusChange: ({ status }) => {\n setStatus(status);\n },\n onCanSendFeedbackChange: ({ canSendFeedback }) => {\n setCanSendFeedback(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":["props","micMuted","volume","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","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","onModeChange","_ref","onStatusChange","_ref2","onCanSendFeedbackChange","_ref3","Promise","resolve","then","_lockRef$current","getId","_finallyRethrows","_wasThrown","_result2","isOpen","_temp","conversation","_conversation$getId","e","reject","_ref4","_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.4.2";
1
+ export declare const PACKAGE_VERSION = "0.4.4";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elevenlabs/react",
3
- "version": "0.4.2",
3
+ "version": "0.4.4",
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.4.2"
22
+ "@elevenlabs/client": "0.4.3"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "react": ">=16.8.0"