@elevenlabs/react 0.4.4 → 0.4.5
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/index.d.ts +6 -1
- package/dist/lib.cjs +1 -1
- package/dist/lib.cjs.map +1 -1
- package/dist/lib.modern.js +1 -1
- package/dist/lib.modern.js.map +1 -1
- package/dist/lib.module.js +1 -1
- package/dist/lib.module.js.map +1 -1
- package/dist/lib.umd.js +1 -1
- package/dist/lib.umd.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { SessionConfig, Callbacks, Status, ClientToolsConfig, InputConfig } from "@elevenlabs/client";
|
|
2
|
+
export type Location = "us" | "global" | "eu-residency" | "in-residency";
|
|
3
|
+
export declare function parseLocation(location?: string): Location;
|
|
4
|
+
export declare function getOriginForLocation(location: Location): string;
|
|
2
5
|
export type { Role, Mode, Status, SessionConfig, DisconnectionDetails, Language, } from "@elevenlabs/client";
|
|
3
6
|
export { postOverallFeedback } from "@elevenlabs/client";
|
|
4
|
-
export type HookOptions = Partial<SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig
|
|
7
|
+
export type HookOptions = Partial<SessionConfig & HookCallbacks & ClientToolsConfig & InputConfig & {
|
|
8
|
+
serverLocation?: Location | string;
|
|
9
|
+
}>;
|
|
5
10
|
export type ControlledState = {
|
|
6
11
|
micMuted?: boolean;
|
|
7
12
|
volume?: number;
|
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 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(
|
|
1
|
+
var n=require("react"),e=require("@elevenlabs/client");function r(){return r=Object.assign?Object.assign.bind():function(n){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var t in r)({}).hasOwnProperty.call(r,t)&&(n[t]=r[t])}return n},r.apply(null,arguments)}var t=["micMuted","volume","serverLocation"];function u(n){switch(void 0===n&&(n="us"),n){case"eu-residency":case"in-residency":case"us":case"global":return n;default:return console.warn("[ConversationalAI] Invalid server-location: "+n+'. Defaulting to "us"'),"us"}}function l(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=l,exports.parseLocation=u,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 t in n)if({}.hasOwnProperty.call(n,t)){if(-1!==e.indexOf(t))continue;r[t]=n[t]}return r}(o,t),d=n.useRef(null),v=n.useRef(null),f=n.useState("disconnected"),g=f[0],p=f[1],m=n.useState(!1),b=m[0],y=m[1],h=n.useState("listening"),C=h[0],M=h[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 t,o,f=function(t){return o?t:function(t,o){try{var f=(I=l(u((null==n?void 0:n.serverLocation)||c)),v.current=e.Conversation.startSession(r({},null!=a?a:{},null!=n?n:{},{origin:I,overrides:r({},null!=(g=null==a?void 0:a.overrides)?g:{},null!=(m=null==n?void 0:n.overrides)?m:{},{client:r({},null!=(b=null==a||null==(h=a.overrides)?void 0:h.client)?b:{},null!=(C=null==n||null==(O=n.overrides)?void 0:O.client)?C:{},{source:(null==n||null==(S=n.overrides)||null==(S=S.client)?void 0:S.source)||(null==a||null==(F=a.overrides)||null==(F=F.client)?void 0:F.source)||"react_sdk",version:(null==n||null==(P=n.overrides)||null==(P=P.client)?void 0:P.version)||(null==a||null==(D=a.overrides)||null==(D=D.client)?void 0:D.version)||"0.4.5"})}),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),onModeChange:function(n){M(n.mode)},onStatusChange:function(n){p(n.status)},onCanSendFeedbackChange:function(n){y(n.canSendFeedback)}})),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,m,b,h,C,O,S,F,P,D,I;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!=(t=d.current)&&t.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"===C}};
|
|
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.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
|
+
{"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.5\";\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 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} 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 | \"onDebug\"\n | \"onUnhandledClientToolCall\"\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 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":["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","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.modern.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
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(
|
|
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","serverLocation"];function o(e="us"){switch(e){case"eu-residency":case"in-residency":case"us":case"global":return e;default:return console.warn(`[ConversationalAI] Invalid server-location: ${e}. Defaulting to "us"`),"us"}}function i(e){return{us:"wss://api.elevenlabs.io","eu-residency":"wss://api.eu.residency.elevenlabs.io","in-residency":"wss://api.in.residency.elevenlabs.io",global:"wss://api.elevenlabs.io"}[e]}function s(s={}){const{micMuted:a,volume:c,serverLocation:d}=s,v=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}(s,t),g=e(null),p=e(null),[m,y]=n("disconnected"),[f,b]=n(!1),[C,M]=n("listening");return l(()=>{var e;void 0!==a&&(null==g||null==(e=g.current)||e.setMicMuted(a))},[a]),l(()=>{var e;void 0!==c&&(null==g||null==(e=g.current)||e.setVolume({volume:c}))},[c]),l(()=>()=>{var e;null==(e=g.current)||e.endSession()},[]),{startSession:async e=>{var n;if(null!=(n=g.current)&&n.isOpen())return g.current.getId();if(p.current)return(await p.current).getId();try{var l,t,s,m,f,C,w,D,I,O;const n=i(o((null==e?void 0:e.serverLocation)||d));return p.current=r.startSession(u({},null!=v?v:{},null!=e?e:{},{origin:n,overrides:u({},null!=(l=null==v?void 0:v.overrides)?l:{},null!=(t=null==e?void 0:e.overrides)?t:{},{client:u({},null!=(s=null==v||null==(m=v.overrides)?void 0:m.client)?s:{},null!=(f=null==e||null==(C=e.overrides)?void 0:C.client)?f:{},{source:(null==e||null==(w=e.overrides)||null==(w=w.client)?void 0:w.source)||(null==v||null==(D=v.overrides)||null==(D=D.client)?void 0:D.source)||"react_sdk",version:(null==e||null==(I=e.overrides)||null==(I=I.client)?void 0:I.version)||(null==v||null==(O=v.overrides)||null==(O=O.client)?void 0:O.version)||"0.4.5"})}),onConnect:(null==e?void 0:e.onConnect)||(null==v?void 0:v.onConnect),onDisconnect:(null==e?void 0:e.onDisconnect)||(null==v?void 0:v.onDisconnect),onError:(null==e?void 0:e.onError)||(null==v?void 0:v.onError),onMessage:(null==e?void 0:e.onMessage)||(null==v?void 0:v.onMessage),onAudio:(null==e?void 0:e.onAudio)||(null==v?void 0:v.onAudio),onDebug:(null==e?void 0:e.onDebug)||(null==v?void 0:v.onDebug),onUnhandledClientToolCall:(null==e?void 0:e.onUnhandledClientToolCall)||(null==v?void 0:v.onUnhandledClientToolCall),onModeChange:({mode:e})=>{M(e)},onStatusChange:({status:e})=>{y(e)},onCanSendFeedbackChange:({canSendFeedback:e})=>{b(e)}})),g.current=await p.current,void 0!==a&&g.current.setMicMuted(a),void 0!==c&&g.current.setVolume({volume:c}),g.current.getId()}finally{p.current=null}},endSession:async()=>{const e=g.current;g.current=null,await(null==e?void 0:e.endSession())},setVolume:({volume:e})=>{var n;null==(n=g.current)||n.setVolume({volume:e})},getInputByteFrequencyData:()=>{var e;return null==(e=g.current)?void 0:e.getInputByteFrequencyData()},getOutputByteFrequencyData:()=>{var e;return null==(e=g.current)?void 0:e.getOutputByteFrequencyData()},getInputVolume:()=>{var e,n;return null!=(e=null==(n=g.current)?void 0:n.getInputVolume())?e:0},getOutputVolume:()=>{var e,n;return null!=(e=null==(n=g.current)?void 0:n.getOutputVolume())?e:0},sendFeedback:e=>{var n;null==(n=g.current)||n.sendFeedback(e)},getId:()=>{var e;return null==(e=g.current)?void 0:e.getId()},sendContextualUpdate:e=>{var n;null==(n=g.current)||n.sendContextualUpdate(e)},sendUserMessage:e=>{var n;null==(n=g.current)||n.sendUserMessage(e)},sendUserActivity:()=>{var e;null==(e=g.current)||e.sendUserActivity()},sendMCPToolApprovalResult:(e,n)=>{var l;null==(l=g.current)||l.sendMCPToolApprovalResult(e,n)},status:m,canSendFeedback:f,micMuted:a,isSpeaking:"speaking"===C}}export{i as getOriginForLocation,o as parseLocation,s as useConversation};
|
|
2
2
|
//# sourceMappingURL=lib.modern.js.map
|
package/dist/lib.modern.js.map
CHANGED
|
@@ -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.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":"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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.5\";\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 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} 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 | \"onDebug\"\n | \"onUnhandledClientToolCall\"\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 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":["_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","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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"}
|
package/dist/lib.module.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useRef as n,useState as e,useEffect as r}from"react";import{Conversation as
|
|
1
|
+
import{useRef as n,useState as e,useEffect as r}from"react";import{Conversation as l}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 l in r)({}).hasOwnProperty.call(r,l)&&(n[l]=r[l])}return n},u.apply(null,arguments)}var t=["micMuted","volume","serverLocation"];function o(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 r={};for(var l in n)if({}.hasOwnProperty.call(n,l)){if(-1!==e.indexOf(l))continue;r[l]=n[l]}return r}(c,t),f=n(null),g=n(null),m=e("disconnected"),p=m[0],b=m[1],y=e(!1),h=y[0],C=y[1],M=e("listening"),D=M[0],I=M[1];return r(function(){var n;void 0!==s&&(null==f||null==(n=f.current)||n.setMicMuted(s))},[s]),r(function(){var n;void 0!==a&&(null==f||null==(n=f.current)||n.setVolume({volume:a}))},[a]),r(function(){return function(){var n;null==(n=f.current)||n.endSession()}},[]),{startSession:function(n){try{var e,r,t=function(e){return r?e:function(e,r){try{var t=(S=i(o((null==n?void 0:n.serverLocation)||d)),g.current=l.startSession(u({},null!=v?v:{},null!=n?n:{},{origin:S,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==(y=v.overrides)?void 0:y.client)?p:{},null!=(h=null==n||null==(M=n.overrides)?void 0:M.client)?h:{},{source:(null==n||null==(D=n.overrides)||null==(D=D.client)?void 0:D.source)||(null==v||null==(O=v.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==v||null==(F=v.overrides)||null==(F=F.client)?void 0:F.version)||"0.4.5"})}),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),onModeChange:function(n){I(n.mode)},onStatusChange:function(n){b(n.status)},onCanSendFeedbackChange:function(n){C(n.canSendFeedback)}})),Promise.resolve(g.current).then(function(n){return f.current=n,void 0!==s&&f.current.setMicMuted(s),void 0!==a&&f.current.setVolume({volume:a}),f.current.getId()}))}catch(n){return r(!0,n)}var c,m,p,y,h,M,D,O,P,F,S;return t&&t.then?t.then(r.bind(null,!1),r.bind(null,!0)):r(!1,t)}(0,function(n,e){if(g.current=null,n)throw e;return e})};if(null!=(e=f.current)&&e.isOpen())return Promise.resolve(f.current.getId());var c=function(){if(g.current)return Promise.resolve(g.current).then(function(n){var e=n.getId();return r=1,e})}();return Promise.resolve(c&&c.then?c.then(t):t(c))}catch(n){return Promise.reject(n)}},endSession:function(){try{var n=f.current;return f.current=null,Promise.resolve(null==n?void 0:n.endSession()).then(function(){})}catch(n){return Promise.reject(n)}},setVolume:function(n){var e;null==(e=f.current)||e.setVolume({volume:n.volume})},getInputByteFrequencyData:function(){var n;return null==(n=f.current)?void 0:n.getInputByteFrequencyData()},getOutputByteFrequencyData:function(){var n;return null==(n=f.current)?void 0:n.getOutputByteFrequencyData()},getInputVolume:function(){var n,e;return null!=(n=null==(e=f.current)?void 0:e.getInputVolume())?n:0},getOutputVolume:function(){var n,e;return null!=(n=null==(e=f.current)?void 0:e.getOutputVolume())?n:0},sendFeedback:function(n){var e;null==(e=f.current)||e.sendFeedback(n)},getId:function(){var n;return null==(n=f.current)?void 0:n.getId()},sendContextualUpdate:function(n){var e;null==(e=f.current)||e.sendContextualUpdate(n)},sendUserMessage:function(n){var e;null==(e=f.current)||e.sendUserMessage(n)},sendUserActivity:function(){var n;null==(n=f.current)||n.sendUserActivity()},sendMCPToolApprovalResult:function(n,e){var r;null==(r=f.current)||r.sendMCPToolApprovalResult(n,e)},status:p,canSendFeedback:h,micMuted:s,isSpeaking:"speaking"===D}}export{i as getOriginForLocation,o as parseLocation,c as useConversation};
|
|
2
2
|
//# sourceMappingURL=lib.module.js.map
|
package/dist/lib.module.js.map
CHANGED
|
@@ -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.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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"}
|
|
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.5\";\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 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} 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 | \"onDebug\"\n | \"onUnhandledClientToolCall\"\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 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":["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","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":"0XACa,6CCeG,SAAAA,EAAcC,GAC5B,YAD4BA,IAAAA,IAAAA,EAAmB,MACvCA,GACN,IAAK,eACL,IAAK,eACL,IAAK,KACL,IAAK,SACH,OAAOA,EACT,QAIE,OAHAC,QAAQC,KACyCF,+CAAAA,0BAE1C,KAEb,UAEgBG,EAAqBH,GAQnC,MAP4C,CAC1CI,GAAI,0BACJ,eAAgB,uCAChB,eAAgB,uCAChBC,OAAQ,2BAGOL,EACnB,CAmCgB,SAAAM,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,EAAEG,GAAAA,EAASH,KACxBI,EAA8CH,GAAS,GAAhDI,EAAeD,EAAEE,GAAAA,EAAkBF,KAC1CG,EAAwBN,EAAe,aAAhCO,EAAID,EAAA,GAAEE,EAAOF,KAoBpB,OAlBAG,EAAU,eACoBC,OAAXC,IAAbrB,IACa,MAAfM,GAAwB,OAATc,EAAfd,EAAiBgB,UAAjBF,EAA0BG,YAAYvB,GAE1C,EAAG,CAACA,IAEJmB,EAAU,WACkBK,IAAAA,OAAXH,IAAXpB,UACFK,GAAAkB,OAAeA,EAAflB,EAAiBgB,UAAjBE,EAA0BC,UAAU,CAAExB,OAAAA,IAE1C,EAAG,CAACA,IAEJkB,EAAU,WACR,OAAO,eAAKO,EACVA,OAAAA,EAAApB,EAAgBgB,UAAhBI,EAAyBC,YAC3B,CACF,EAAG,IAEI,CACLC,sBAAsBC,OAAyBC,IAAAA,EAoEpBC,EApEoBC,WAAAC,UAAAF,EAAAE,2BAcrCC,EAASvC,EAHgBJ,GAC7BsC,MAAAA,OAAAA,EAAAA,EAAS3B,iBAAkBA,IAI7BM,EAAQc,QAAUa,EAAaP,aAAYQ,EACrCjC,GAAAA,MAAAA,EAAAA,EAAkB,CAAA,QAClB0B,EAAAA,EAAW,GAAE,CACjBK,OAAAA,EACAG,UAASD,EAAA,CAAA,EACsB,OADtBE,QACHnC,SAAAA,EAAgBkC,WAASC,EAAI,CAAE,EACbC,OADaA,EACxB,MAAPV,OAAO,EAAPA,EAASQ,WAASE,EAAI,GAC1BC,CAAAA,OAAMJ,KACiCK,OADjCA,EACcC,MAAdvC,GAAyB,OAAXuC,EAAdvC,EAAgBkC,gBAAS,EAAzBK,EAA2BF,QAAMC,EAAI,GACXE,OADaA,EAChC,MAAPd,GAAkB,OAAXe,EAAPf,EAASQ,gBAAS,EAAlBO,EAAoBJ,QAAMG,EAAI,CAAE,EACpCE,CAAAA,QACSC,MAAPjB,GAAkBiB,OAAXA,EAAPjB,EAASQ,YAAiB,OAARS,EAAlBA,EAAoBN,aAAM,EAA1BM,EAA4BD,UACd,MAAd1C,UAAc4C,EAAd5C,EAAgBkC,YAAhBU,OAAyBA,EAAzBA,EAA2BP,aAA3BO,EAAAA,EAAmCF,SACnC,YACFG,SACS,MAAPnB,GAAkB,OAAXoB,EAAPpB,EAASQ,mBAASY,EAAlBA,EAAoBT,eAApBS,EAA4BD,WACdE,MAAd/C,GAAyB,OAAX+C,EAAd/C,EAAgBkC,YAAiB,OAARa,EAAzBA,EAA2BV,aAAM,EAAjCU,EAAmCF,UDvIpB,YC4IrBG,iBAAWtB,SAAAA,EAASsB,mBAAahD,SAAAA,EAAgBgD,WACjDC,cAAcvB,MAAAA,OAAAA,EAAAA,EAASuB,gBAA8B,MAAdjD,OAAc,EAAdA,EAAgBiD,cACvDC,SAAgB,MAAPxB,OAAO,EAAPA,EAASwB,WAAWlD,MAAAA,OAAAA,EAAAA,EAAgBkD,SAC7CC,WAAkB,MAAPzB,OAAO,EAAPA,EAASyB,aAA2B,MAAdnD,OAAc,EAAdA,EAAgBmD,WACjDC,SAAS1B,MAAAA,OAAAA,EAAAA,EAAS0B,WAAyB,MAAdpD,OAAc,EAAdA,EAAgBoD,SAC7CC,eAAS3B,SAAAA,EAAS2B,WAAWrD,MAAAA,OAAAA,EAAAA,EAAgBqD,SAC7CC,2BACS,MAAP5B,OAAO,EAAPA,EAAS4B,mCACTtD,SAAAA,EAAgBsD,2BAClBC,aAAc,SAAFC,GACVzC,EADmByC,EAAJ1C,KAEjB,EACA2C,eAAgB,SAAFC,GACZjD,EADuBiD,EAANlD,OAEnB,EACAmD,wBAAyB,SAAFC,GACrBhD,EADyCgD,EAAfjD,gBAE5B,KACYkD,QAAAC,QAEkBzD,EAAQc,SAAO4C,KAAAC,SAAAA,GAS/C,OATA7D,EAAgBgB,QAAO6C,OAEN9C,IAAbrB,GACFM,EAAgBgB,QAAQC,YAAYvB,QAEvBqB,IAAXpB,GACFK,EAAgBgB,QAAQG,UAAU,CAAExB,OAAAA,IAG/BK,EAAgBgB,QAAQ8C,OAAQ,4BAxDrC,IAAA9B,EAAAC,EAAAE,EAAAC,EAAAC,EAAAC,EAAAE,EAAAC,EAAAE,EAAAC,EAIIhB,mEAdqCmC,CAUzC,EAyDH,SAAAC,EAAAC,GACwB,GAAvB/D,EAAQc,QAAU,KAAKgD,EAAAC,MAAAA,EAAAA,OAAAA,CAAA,IAnEzB,GAAIzC,OAAJA,EAAIxB,EAAgBgB,UAAhBQ,EAAyB0C,SAC3B,OAAAR,QAAAC,QAAO3D,EAAgBgB,QAAQ8C,SAChC,IAAAK,gBAEGjE,EAAQc,QAAO,OAAA0C,QAAAC,QACUzD,EAAQc,SAAO4C,KAAA,SAApCQ,GAAYC,IAAAA,EACXD,EAAaN,eAAOrC,IAAA4C,CAAA,EAAA,IAAA,OAAAX,QAAAC,QAAAQ,GAAAA,EAAAP,KAAAO,EAAAP,KAAAlC,GAAAA,EAAAyC,GA+D/B,CAAC,MAAAG,UAAAZ,QAAAa,OAAAD,EAE4D,CAAA,EAC7DjD,WAAUA,eACR,IAAM+C,EAAepE,EAAgBgB,QACN,OAA/BhB,EAAgBgB,QAAU,KAAK0C,QAAAC,cACzBS,SAAAA,EAAc/C,cAAYuC,KAClC,WAAA,EAAA,CAAC,MAAAU,GAAA,OAAAZ,QAAAa,OAAAD,KACDnD,UAAW,SAAFqD,GAAqCC,IAAAA,EAC5CA,OAAAA,EAAAzE,EAAgBgB,UAAhByD,EAAyBtD,UAAU,CAAExB,OADnB6E,EAAN7E,QAEd,EACA+E,0BAA2B,eAAKC,EAC9B,OAAOA,OAAPA,EAAO3E,EAAgBgB,cAAhB2D,EAAAA,EAAyBD,2BAClC,EACAE,2BAA4B,WAAK,IAAAC,EAC/B,OAAOA,OAAPA,EAAO7E,EAAgBgB,cAAhB6D,EAAAA,EAAyBD,4BAClC,EACAE,eAAgB,eAAKC,EAAAC,EACnB,OAAgDD,OAAhDA,SAAAC,EAAOhF,EAAgBgB,gBAAhBgE,EAAyBF,kBAAgBC,EAAI,CACtD,EACAE,gBAAiB,WAAKC,IAAAA,EAAAC,EACpB,OAAiDD,OAAjDA,SAAAC,EAAOnF,EAAgBgB,gBAAhBmE,EAAyBF,mBAAiBC,EAAI,CACvD,EACAE,aAAc,SAACC,GAAiBC,IAAAA,SAC9BA,EAAAtF,EAAgBgB,UAAhBsE,EAAyBF,aAAaC,EACxC,EACAvB,MAAO,eAAKyB,EACV,OAAOA,OAAPA,EAAOvF,EAAgBgB,cAAhBuE,EAAAA,EAAyBzB,OAClC,EACA0B,qBAAsB,SAACC,GAAgB,IAAAC,EACd,OAAvBA,EAAA1F,EAAgBgB,UAAhB0E,EAAyBF,qBAAqBC,EAChD,EACAE,gBAAiB,SAACF,OAAgBG,EAChCA,OAAAA,EAAA5F,EAAgBgB,UAAhB4E,EAAyBD,gBAAgBF,EAC3C,EACAI,iBAAkB,WAAKC,IAAAA,SACrBA,EAAA9F,EAAgBgB,UAAhB8E,EAAyBD,kBAC3B,EACAE,0BAA2B,SAACC,EAAoBC,GAAuB,IAAAC,EACrEA,OAAAA,EAAAlG,EAAgBgB,UAAhBkF,EAAyBH,0BACvBC,EACAC,EAEJ,EACA5F,OAAAA,EACAG,gBAAAA,EACAd,SAAAA,EACAyG,WAAqB,aAATxF,EAEhB"}
|
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,
|
|
1
|
+
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react"),require("@elevenlabs/client")):"function"==typeof define&&define.amd?define(["exports","react","@elevenlabs/client"],n):n((e||self).react={},e.react,e.client)}(this,function(e,n,r){function t(){return t=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)({}).hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e},t.apply(null,arguments)}var u=["micMuted","volume","serverLocation"];function l(e){switch(void 0===e&&(e="us"),e){case"eu-residency":case"in-residency":case"us":case"global":return e;default:return console.warn("[ConversationalAI] Invalid server-location: "+e+'. Defaulting to "us"'),"us"}}function o(e){return{us:"wss://api.elevenlabs.io","eu-residency":"wss://api.eu.residency.elevenlabs.io","in-residency":"wss://api.in.residency.elevenlabs.io",global:"wss://api.elevenlabs.io"}[e]}Object.defineProperty(e,"postOverallFeedback",{enumerable:!0,get:function(){return r.postOverallFeedback}}),e.getOriginForLocation=o,e.parseLocation=l,e.useConversation=function(e){void 0===e&&(e={});var i=e.micMuted,c=e.volume,s=e.serverLocation,a=function(e,n){if(null==e)return{};var r={};for(var t in e)if({}.hasOwnProperty.call(e,t)){if(-1!==n.indexOf(t))continue;r[t]=e[t]}return r}(e,u),d=n.useRef(null),v=n.useRef(null),f=n.useState("disconnected"),g=f[0],p=f[1],b=n.useState(!1),m=b[0],y=b[1],h=n.useState("listening"),C=h[0],M=h[1];return n.useEffect(function(){var e;void 0!==i&&(null==d||null==(e=d.current)||e.setMicMuted(i))},[i]),n.useEffect(function(){var e;void 0!==c&&(null==d||null==(e=d.current)||e.setVolume({volume:c}))},[c]),n.useEffect(function(){return function(){var e;null==(e=d.current)||e.endSession()}},[]),{startSession:function(e){try{var n,u,f=function(n){return u?n:function(n,u){try{var f=(I=o(l((null==e?void 0:e.serverLocation)||s)),v.current=r.Conversation.startSession(t({},null!=a?a:{},null!=e?e:{},{origin:I,overrides:t({},null!=(g=null==a?void 0:a.overrides)?g:{},null!=(b=null==e?void 0:e.overrides)?b:{},{client:t({},null!=(m=null==a||null==(h=a.overrides)?void 0:h.client)?m:{},null!=(C=null==e||null==(O=e.overrides)?void 0:O.client)?C:{},{source:(null==e||null==(S=e.overrides)||null==(S=S.client)?void 0:S.source)||(null==a||null==(F=a.overrides)||null==(F=F.client)?void 0:F.source)||"react_sdk",version:(null==e||null==(P=e.overrides)||null==(P=P.client)?void 0:P.version)||(null==a||null==(D=a.overrides)||null==(D=D.client)?void 0:D.version)||"0.4.5"})}),onConnect:(null==e?void 0:e.onConnect)||(null==a?void 0:a.onConnect),onDisconnect:(null==e?void 0:e.onDisconnect)||(null==a?void 0:a.onDisconnect),onError:(null==e?void 0:e.onError)||(null==a?void 0:a.onError),onMessage:(null==e?void 0:e.onMessage)||(null==a?void 0:a.onMessage),onAudio:(null==e?void 0:e.onAudio)||(null==a?void 0:a.onAudio),onDebug:(null==e?void 0:e.onDebug)||(null==a?void 0:a.onDebug),onUnhandledClientToolCall:(null==e?void 0:e.onUnhandledClientToolCall)||(null==a?void 0:a.onUnhandledClientToolCall),onModeChange:function(e){M(e.mode)},onStatusChange:function(e){p(e.status)},onCanSendFeedbackChange:function(e){y(e.canSendFeedback)}})),Promise.resolve(v.current).then(function(e){return d.current=e,void 0!==i&&d.current.setMicMuted(i),void 0!==c&&d.current.setVolume({volume:c}),d.current.getId()}))}catch(e){return u(!0,e)}var g,b,m,h,C,O,S,F,P,D,I;return f&&f.then?f.then(u.bind(null,!1),u.bind(null,!0)):u(!1,f)}(0,function(e,n){if(v.current=null,e)throw n;return n})};if(null!=(n=d.current)&&n.isOpen())return Promise.resolve(d.current.getId());var g=function(){if(v.current)return Promise.resolve(v.current).then(function(e){var n=e.getId();return u=1,n})}();return Promise.resolve(g&&g.then?g.then(f):f(g))}catch(e){return Promise.reject(e)}},endSession:function(){try{var e=d.current;return d.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=d.current)||n.setVolume({volume:e.volume})},getInputByteFrequencyData:function(){var e;return null==(e=d.current)?void 0:e.getInputByteFrequencyData()},getOutputByteFrequencyData:function(){var e;return null==(e=d.current)?void 0:e.getOutputByteFrequencyData()},getInputVolume:function(){var e,n;return null!=(e=null==(n=d.current)?void 0:n.getInputVolume())?e:0},getOutputVolume:function(){var e,n;return null!=(e=null==(n=d.current)?void 0:n.getOutputVolume())?e:0},sendFeedback:function(e){var n;null==(n=d.current)||n.sendFeedback(e)},getId:function(){var e;return null==(e=d.current)?void 0:e.getId()},sendContextualUpdate:function(e){var n;null==(n=d.current)||n.sendContextualUpdate(e)},sendUserMessage:function(e){var n;null==(n=d.current)||n.sendUserMessage(e)},sendUserActivity:function(){var e;null==(e=d.current)||e.sendUserActivity()},sendMCPToolApprovalResult:function(e,n){var r;null==(r=d.current)||r.sendMCPToolApprovalResult(e,n)},status:g,canSendFeedback:m,micMuted:i,isSpeaking:"speaking"===C}}});
|
|
2
2
|
//# sourceMappingURL=lib.umd.js.map
|
package/dist/lib.umd.js.map
CHANGED
|
@@ -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.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
|
+
{"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.5\";\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 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} 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 | \"onDebug\"\n | \"onUnhandledClientToolCall\"\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 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":["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","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.
|
|
1
|
+
export declare const PACKAGE_VERSION = "0.4.5";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elevenlabs/react",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.5",
|
|
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.
|
|
22
|
+
"@elevenlabs/client": "0.4.4"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"react": ">=16.8.0"
|