/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/palai-hume-voice-react@0.1.19-beta.2/dist/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
"use strict";var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__export=(e,r)=>{for(var t in r)__defProp(e,t,{get:r[t],enumerable:!0})},__copyProps=(e,r,t,o)=>{if(r&&"object"==typeof r||"function"==typeof r)for(let n of __getOwnPropNames(r))__hasOwnProp.call(e,n)||n===t||__defProp(e,n,{get:()=>r[n],enumerable:!(o=__getOwnPropDesc(r,n))||o.enumerable});return e},__toESM=(e,r,t)=>(t=null!=e?__create(__getProtoOf(e)):{},__copyProps(!r&&e&&e.__esModule?t:__defProp(t,"default",{value:e,enumerable:!0}),e)),__toCommonJS=e=>__copyProps(__defProp({},"__esModule",{value:!0}),e),src_exports={};__export(src_exports,{AudioEncoding:()=>AudioEncoding,Channels:()=>Channels,LanguageModelOption:()=>LanguageModelOption,SocketFailedToParseMessageError:()=>SocketFailedToParseMessageError,SocketUnknownMessageError:()=>SocketUnknownMessageError,TTSService:()=>TTSService,TimeSliceSchema:()=>TimeSliceSchema,VoiceProvider:()=>VoiceProvider,VoiceReadyState:()=>VoiceReadyState,isSocketFailedToParseMessageError:()=>isSocketFailedToParseMessageError,isSocketUnknownMessageError:()=>isSocketUnknownMessageError,parseMessageData:()=>parseMessageData,parseMessageType:()=>parseMessageType,useMicrophone:()=>useMicrophone,useSoundPlayer:()=>useSoundPlayer,useVoice:()=>useVoice,useVoiceClient:()=>useVoiceClient}),module.exports=__toCommonJS(src_exports);var import_hume=require("hume"),import_meyda=__toESM(require("meyda")),import_react=require("react");function generateEmptyFft(){return Array.from({length:24}).map((()=>0))}var useMicrophone=e=>{const{streamRef:r,onAudioCaptured:t,onError:o,withMicrophone:n}=e,[s,a]=(0,import_react.useState)(!1),c=(0,import_react.useRef)(s),[u,i]=(0,import_react.useState)(generateEmptyFft()),l=(0,import_react.useRef)(null),p=(0,import_react.useRef)(null),m=(0,import_react.useRef)(null),d=(0,import_react.useRef)(null),_=(0,import_react.useRef)(t);_.current=t;const g=(0,import_react.useCallback)((e=>{if(!n)return;e.data.arrayBuffer().then((e=>{e.byteLength>0&&_.current?.(e)})).catch((e=>{console.log(e)}))}),[n]),f=(0,import_react.useCallback)((()=>{if(!n)return;const e=r.current;if(!e)throw new Error("No stream connected");const t=new AudioContext;m.current=t;const o=t.createMediaStreamSource(e);try{l.current=import_meyda.default.createMeydaAnalyzer({audioContext:t,source:o,featureExtractors:["loudness"],callback:e=>{const r=e.loudness.specific||[];i((()=>Array.from(r)))}}),l.current.start()}catch(e){const r=e instanceof Error?e.message:"Unknown error";console.error(`Failed to start mic analyzer: ${r}`)}const s=p.current;if(!s)throw new Error("No MimeType specified");d.current=new MediaRecorder(e,{mimeType:s}),d.current.addEventListener("dataavailable",g),d.current.start(100)}),[g,r,n]),y=(0,import_react.useCallback)((()=>{if(n)try{l.current&&(l.current.stop(),l.current=null),m.current&&m.current.close().then((()=>{m.current=null})).catch((()=>null)),d.current?.stop(),d.current?.removeEventListener("dataavailable",g),d.current=null,r.current?.getTracks().forEach((e=>e.stop())),a(!1)}catch(e){const r=e instanceof Error?e.message:"Unknown error";o(`Error stopping microphone: ${r}`),console.log(e)}}),[g,o,r,n]),S=(0,import_react.useCallback)((()=>{n&&(l.current&&(l.current.stop(),i(generateEmptyFft())),r.current?.getTracks().forEach((e=>{e.enabled=!1})),c.current=!0,a(!0))}),[r,n]),k=(0,import_react.useCallback)((()=>{n&&(l.current&&l.current.start(),r.current?.getTracks().forEach((e=>{e.enabled=!0})),c.current=!1,a(!1))}),[r,n]);return(0,import_react.useEffect)((()=>{if(!n)return;const e=(0,import_hume.getBrowserSupportedMimeType)();e.success?p.current=e.mimeType:o(e.error.message)}),[o,n]),(0,import_react.useEffect)((()=>{if(n)return()=>{try{d.current?.stop(),d.current?.removeEventListener("dataavailable",g),l.current&&(l.current.stop(),l.current=null),r.current?.getTracks().forEach((e=>e.stop())),r.current=null}catch(e){console.log(e)}}}),[g,r,n]),{start:f,stop:y,mute:S,unmute:k,isMuted:s,fft:u}},import_hume2=require("hume"),import_react2=require("react"),barkCenterFrequencies=[50,150,250,350,450,570,700,840,1e3,1170,1370,1600,1850,2150,2500,2900,3400,4e3,4800,5800,7e3,8500,10500,13500],minValue=0,maxValue=255;function convertLinearFrequenciesToBark(e,r){const t=r/2/e.length;return barkCenterFrequencies.map((r=>{const o=Math.round(r/t);return o>=0&&o<e.length?((e[o]??0)-minValue)/(maxValue-minValue)*2:0}))}var useSoundPlayer=e=>{const[r,t]=(0,import_react2.useState)(!1),[o,n]=(0,import_react2.useState)(!1),[s,a]=(0,import_react2.useState)(generateEmptyFft()),c=(0,import_react2.useRef)(null),u=(0,import_react2.useRef)(null),i=(0,import_react2.useRef)(null),l=(0,import_react2.useRef)(!1),p=(0,import_react2.useRef)([]),[m,d]=(0,import_react2.useState)(0),_=(0,import_react2.useRef)(!1),g=(0,import_react2.useRef)(null),f=(0,import_react2.useRef)(null),y=(0,import_react2.useRef)(e.onPlayAudio);y.current=e.onPlayAudio;const S=(0,import_react2.useRef)(e.onStopAudio);S.current=e.onStopAudio;const k=(0,import_react2.useRef)(e.onError);k.current=e.onError;const h=(0,import_react2.useCallback)((()=>{if(null===u.current||null===c.current)return void k.current("Audio environment is not initialized");if(0===p.current.length||_.current)return void d(0);const e=p.current.shift();if(d(p.current.length),!e)return;_.current=!0,t(!0);const r=c.current.createBufferSource();r.buffer=e.buffer,r.connect(u.current),g.current=r;f.current=window.setInterval((()=>{try{const e=r.buffer?.sampleRate;if(!u.current||void 0===e)return;const t=new Uint8Array(u.current.frequencyBinCount);u.current.getByteFrequencyData(t);const o=convertLinearFrequenciesToBark(t,e);a((()=>o))}catch(e){a(generateEmptyFft())}}),5),r.start(0),y.current(e.id),r.onended=()=>{f.current&&clearInterval(f.current),a(generateEmptyFft()),r.disconnect(),_.current=!1,t(!1),S.current(e.id),g.current=null,h()}}),[]),E=(0,import_react2.useCallback)((()=>{const e=new AudioContext;c.current=e;const r=e.createAnalyser(),t=e.createGain();r.fftSize=2048,r.connect(t),t.connect(e.destination),u.current=r,i.current=t,l.current=!0}),[]),M=(0,import_react2.useCallback)((async e=>{if(l.current&&c.current)try{const r=(0,import_hume2.convertBase64ToBlob)(e.data,"audio/mp3"),t=await r.arrayBuffer(),o=await c.current.decodeAudioData(t);p.current.push({id:e.id,buffer:o}),d(p.current.length),1===p.current.length&&h()}catch(e){const r=e instanceof Error?e.message:"Unknown error";k.current(`Failed to add clip to queue: ${r}`)}else k.current("Audio player has not been initialized")}),[h]),C=(0,import_react2.useCallback)((()=>{l.current=!1,_.current=!1,t(!1),n(!1),f.current&&window.clearInterval(f.current),g.current&&(g.current.disconnect(),g.current=null),u.current&&(u.current.disconnect(),u.current=null),c.current&&c.current.close().then((()=>{c.current=null})).catch((()=>null)),p.current=[],d(0),a(generateEmptyFft())}),[]),w=(0,import_react2.useCallback)((()=>{g.current&&(g.current.stop(),g.current=null),p.current=[],d(0),_.current=!1,t(!1),a(generateEmptyFft())}),[]);return{addToQueue:M,fft:s,initPlayer:E,isPlaying:r,isAudioMuted:o,muteAudio:(0,import_react2.useCallback)((()=>{i.current&&c.current&&(i.current.gain.setValueAtTime(0,c.current.currentTime),n(!0))}),[]),unmuteAudio:(0,import_react2.useCallback)((()=>{i.current&&c.current&&(i.current.gain.setValueAtTime(1,c.current.currentTime),n(!1))}),[]),stopAll:C,clearQueue:w,queueLength:m}},import_hume3=require("hume"),import_react3=require("react"),isNever=e=>{},VoiceReadyState=(e=>(e.IDLE="idle",e.CONNECTING="connecting",e.OPEN="open",e.CLOSED="closed",e))(VoiceReadyState||{}),useVoiceClient=e=>{const r=(0,import_react3.useRef)(null),[t,o]=(0,import_react3.useState)("idle"),n=(0,import_react3.useRef)(e.onAudioMessage);n.current=e.onAudioMessage;const s=(0,import_react3.useRef)(e.onMessage);s.current=e.onMessage;const a=(0,import_react3.useRef)(e.onToolCall);a.current=e.onToolCall;const c=(0,import_react3.useRef)(e.onError);c.current=e.onError;const u=(0,import_react3.useRef)(e.onOpen);u.current=e.onOpen;const i=(0,import_react3.useRef)(e.onClose);i.current=e.onClose;const l=(0,import_react3.useCallback)((e=>new Promise(((t,l)=>{const p=new import_hume3.HumeClient("apiKey"===e.auth.type?{apiKey:e.auth.value,environment:e.hostname}:{accessToken:e.auth.value,environment:e.hostname});r.current=p.empathicVoice.chat.connect(e),r.current.on("open",(()=>{u.current?.(),o("open"),t("open")})),r.current.on("message",(e=>{if("audio_output"!==e.type)if("assistant_message"!==e.type&&"user_message"!==e.type&&"user_interruption"!==e.type&&"error"!==e.type&&"tool_response"!==e.type&&"tool_error"!==e.type&&"chat_metadata"!==e.type&&"assistant_end"!==e.type){if("tool_call"===e.type){const t={...e,receivedAt:new Date};return s.current?.(t),void(e.toolType===import_hume3.Hume.empathicVoice.ToolType.Function&&a.current?.({...t,toolType:"function"},{success:e=>({type:"tool_response",toolCallId:t.toolCallId,content:JSON.stringify(e)}),error:({error:e,code:r,level:o,content:n})=>({type:"tool_error",toolCallId:t.toolCallId,error:e,code:r,level:null!==o?"warn":void 0,content:n})}).then((e=>{"tool_response"===e.type?r.current?.sendToolResponseMessage(e):"tool_error"===e.type?r.current?.sendToolErrorMessage(e):c.current?.("Invalid response from tool call")})))}isNever(e)}else{const r={...e,receivedAt:new Date};s.current?.(r)}else{const r={...e,receivedAt:new Date};n.current?.(r)}})),r.current.on("close",(e=>{i.current?.(e),o("closed")})),r.current.on("error",(e=>{const r=e instanceof Error?e.message:"Unknown error";c.current?.(r,e instanceof Error?e:void 0),l(e)})),o("connecting")}))),[]),p=(0,import_react3.useCallback)((()=>{o("idle"),r.current?.close()}),[]),m=(0,import_react3.useCallback)((e=>{if("open"!==t)throw new Error("Socket is not open");r.current?.sendSessionSettings(e)}),[t]),d=(0,import_react3.useCallback)((e=>{if("open"!==t)throw new Error("Socket is not open");r.current?.socket?.send(e)}),[t]),_=(0,import_react3.useCallback)((e=>{if("open"!==t)throw new Error("Socket is not open");r.current?.sendUserInput(e)}),[t]),g=(0,import_react3.useCallback)((e=>{if("open"!==t)throw new Error("Socket is not open");r.current?.sendAssistantInput({text:e})}),[t]),f=(0,import_react3.useCallback)((e=>{if("open"!==t)throw new Error("Socket is not open");"tool_error"===e.type?r.current?.sendToolErrorMessage(e):r.current?.sendToolResponseMessage(e)}),[t]),y=(0,import_react3.useCallback)((()=>{if("open"!==t)throw new Error("Socket is not open");r.current?.pauseAssistant({})}),[t]),S=(0,import_react3.useCallback)((()=>{if("open"!==t)throw new Error("Socket is not open");r.current?.resumeAssistant({})}),[t]);return{readyState:t,sendSessionSettings:m,sendAudio:d,connect:l,disconnect:p,sendUserInput:_,sendAssistantInput:g,sendToolMessage:f,sendPauseAssistantMessage:y,sendResumeAssistantMessage:S}},import_react8=require("react"),noop=()=>{},import_date_fns=require("date-fns"),import_react4=require("react"),useCallDuration=()=>{const e=(0,import_react4.useRef)(null),r=(0,import_react4.useRef)(null),[t,o]=(0,import_react4.useState)(null),n=(0,import_react4.useCallback)((()=>{r.current=Date.now(),o("00:00:00"),e.current=window.setInterval((()=>{if(r.current){const e=(0,import_date_fns.intervalToDuration)({start:r.current,end:Date.now()}),t=(e.hours??0).toString().padStart(2,"0"),n=(e.minutes??0).toString().padStart(2,"0"),s=(e.seconds??0).toString().padStart(2,"0");o(`${t}:${n}:${s}`)}}),500)}),[]),s=(0,import_react4.useCallback)((()=>{e.current&&(window.clearInterval(e.current),e.current=null)}),[]),a=(0,import_react4.useCallback)((()=>{o(null)}),[]);return(0,import_react4.useEffect)((()=>()=>{e.current&&(window.clearInterval(e.current),e.current=null)}),[]),{timestamp:t,start:n,stop:s,reset:a}},import_hume4=require("hume"),import_react5=require("react"),useEncoding=({withMicrophone:e}={withMicrophone:!0})=>{const[r,t]=(0,import_react5.useState)("prompt"),o=(0,import_react5.useRef)(null),n=(0,import_react5.useCallback)((async()=>{if(!e)return t("granted"),"granted";try{const e=await(0,import_hume4.getAudioStream)();return t("granted"),o.current=e,(0,import_hume4.checkForAudioTracks)(e),"granted"}catch(e){return t("denied"),o.current=null,"denied"}}),[e]);return{streamRef:o,getStream:n,permission:r}},import_react6=require("react"),keepLastN=(e,r)=>r.length<=e?r:r.slice(r.length-e),useMessages=({sendMessageToParent:e,messageHistoryLimit:r})=>{const[t,o]=(0,import_react6.useState)({}),[n,s]=(0,import_react6.useState)([]),[a,c]=(0,import_react6.useState)(null),[u,i]=(0,import_react6.useState)(null),[l,p]=(0,import_react6.useState)(null);return{createConnectMessage:(0,import_react6.useCallback)((()=>{s((e=>e.concat([{type:"socket_connected",receivedAt:new Date}])))}),[]),createDisconnectMessage:(0,import_react6.useCallback)((e=>{s((r=>r.concat([{type:"socket_disconnected",code:e.code,reason:e.reason,receivedAt:new Date}])))}),[]),onMessage:(0,import_react6.useCallback)((t=>{switch(t.type){case"assistant_message":o((e=>({...e,[`${t.id}`]:t})));break;case"user_message":e?.(t),!1===t.interim&&(i(t),s((e=>keepLastN(r,e.concat([t])))));break;case"user_interruption":case"error":case"tool_call":case"tool_response":case"tool_error":case"assistant_end":e?.(t),s((e=>keepLastN(r,e.concat([t]))));break;case"chat_metadata":e?.(t),s((e=>keepLastN(r,e.concat([t])))),p(t)}}),[r,e]),onPlayAudio:(0,import_react6.useCallback)((n=>{const a=t[n];a&&(e?.(a),c(a),s((e=>keepLastN(r,e.concat([a])))),o((e=>{const r={...e};return delete r[n],r})))}),[t,e,r]),clearMessages:(0,import_react6.useCallback)((()=>{s([]),c(null),i(null),o({})}),[]),messages:n,lastVoiceMessage:a,lastUserMessage:u,chatMetadata:l}},import_react7=require("react"),useToolStatus=()=>{const[e,r]=(0,import_react7.useState)({});return{store:e,addToStore:(0,import_react7.useCallback)((e=>{r((r=>{const t={...r[e.toolCallId]};return"tool_call"===e.type&&(t.call=e),"tool_response"!==e.type&&"tool_error"!==e.type||(t.resolved=e),{...r,[e.toolCallId]:t}}))}),[]),clearStore:(0,import_react7.useCallback)((()=>{r({})}),[])}},import_jsx_runtime=require("react/jsx-runtime"),VoiceContext=(0,import_react8.createContext)(null),useVoice=()=>{const e=(0,import_react8.useContext)(VoiceContext);if(!e)throw new Error("useVoice must be used within an VoiceProvider");return e},VoiceProvider=({children:e,clearMessagesOnDisconnect:r=!0,messageHistoryLimit:t=100,sessionSettings:o,verboseTranscription:n=!0,withMicrophone:s=!0,...a})=>{const{timestamp:c,start:u,stop:i}=useCallDuration(),[l,p]=(0,import_react8.useState)({value:"disconnected"}),[m,d]=(0,import_react8.useState)(!1),[_,g]=(0,import_react8.useState)(null),f=null!==_,y="mic_error"===_?.type,S="socket_error"===_?.type,k="audio_error"===_?.type,h=(0,import_react8.useRef)(a.onError??noop);h.current=a.onError??noop;const E=(0,import_react8.useRef)(a.onClose??noop);E.current=a.onClose??noop;const M=(0,import_react8.useRef)(a.onMessage??noop);M.current=a.onMessage??noop;const C=(0,import_react8.useRef)(a.onAudioStart??noop);C.current=a.onAudioStart??noop;const w=(0,import_react8.useRef)(a.onAudioEnd??noop);w.current=a.onAudioEnd??noop;const b=(0,import_react8.useRef)(a.onInterruption??noop);b.current=a.onInterruption??noop;const A=useToolStatus(),T=useMessages({sendMessageToParent:M.current,messageHistoryLimit:t}),v=(0,import_react8.useCallback)((e=>{g(e),null!==e&&h.current?.(e)}),[]),P=(0,import_react8.useCallback)(((e,r)=>{i(),v({type:"socket_error",message:e,error:r})}),[i,v]),R=a,O=useSoundPlayer({onError:e=>{v({type:"audio_error",message:e})},onPlayAudio:e=>{T.onPlayAudio(e),C.current(e)},onStopAudio:e=>{w.current(e)}}),{streamRef:U,getStream:L,permission:D}=useEncoding({withMicrophone:s}),V=useVoiceClient({onAudioMessage:e=>{O.addToQueue(e)},onMessage:(0,import_react8.useCallback)((e=>{T.onMessage(e),"user_interruption"!==e.type&&"user_message"!==e.type||(O.isPlaying&&b.current(e),O.clearQueue()),"tool_call"!==e.type&&"tool_response"!==e.type&&"tool_error"!==e.type||A.addToStore(e)}),[T,O,A]),onError:P,onOpen:(0,import_react8.useCallback)((()=>{u(),T.createConnectMessage(),a.onOpen?.()}),[T,a,u]),onClose:(0,import_react8.useCallback)((e=>{i(),T.createDisconnectMessage(e),E.current?.(e)}),[T,i]),onToolCall:a.onToolCall}),{sendAudio:I,sendUserInput:F,sendAssistantInput:N,sendSessionSettings:q,sendToolMessage:x,sendPauseAssistantMessage:B,sendResumeAssistantMessage:j}=V,z=useMicrophone({streamRef:U,withMicrophone:s,onAudioCaptured:(0,import_react8.useCallback)((e=>{try{I(e)}catch(e){const r=e instanceof Error?e.message:"Unknown error";v({type:"socket_error",message:r})}}),[I,v]),onError:(0,import_react8.useCallback)((e=>{v({type:"mic_error",message:e})}),[v])}),{clearQueue:G}=O,H=(0,import_react8.useCallback)((()=>{try{B(),d(!0)}catch(e){const r=e instanceof Error?e.message:"Unknown error";v({type:"socket_error",message:r})}G()}),[B,G,v]),$=(0,import_react8.useCallback)((()=>{try{j(),d(!1)}catch(e){const r=e instanceof Error?e.message:"Unknown error";v({type:"socket_error",message:r})}}),[j,v]),K=(0,import_react8.useCallback)((async()=>{if(v(null),p({value:"connecting"}),s){if("denied"===await L()){const e={type:"mic_error",message:"Microphone permission denied"};return v(e),Promise.reject(e)}}try{await V.connect({...R,verboseTranscription:!0})}catch(e){const r={type:"socket_error",message:"We could not connect to the voice. Please try again."};return v(r),Promise.reject(r)}try{const e=s?[z.start(),O.initPlayer()]:[O.initPlayer()];(await Promise.allSettled(e)).every((e=>"fulfilled"===e.status))&&p({value:"connected"})}catch(e){const r={type:"audio_error",message:e instanceof Error?e.message:"We could not connect to audio. Please try again."};v(r)}}),[V,R,L,z,O,v,s]),Q=(0,import_react8.useCallback)((()=>{"closed"!==V.readyState&&V.disconnect(),O.stopAll(),z.stop(),r&&T.clearMessages(),A.clearStore(),d(!1)}),[V,O,z,r,A,T]),W=(0,import_react8.useCallback)((e=>{"denied"===D&&p({value:"error",reason:"Microphone permission denied"}),i(),Q(),"error"===l.value||e||p({value:"disconnected"})}),[D,i,Q,l.value]);(0,import_react8.useEffect)((()=>{null!==_&&"error"!==l.value&&"disconnected"!==l.value&&(p({value:"error",reason:_.message}),Q())}),[l.value,W,Q,_]),(0,import_react8.useEffect)((()=>()=>{Q()}),[]);const J=(0,import_react8.useCallback)((e=>{try{F(e)}catch(e){const r=e instanceof Error?e.message:"Unknown error";v({type:"socket_error",message:r})}}),[F,v]),X=(0,import_react8.useCallback)((e=>{try{N(e)}catch(e){const r=e instanceof Error?e.message:"Unknown error";v({type:"socket_error",message:r})}}),[N,v]),Y=(0,import_react8.useCallback)((e=>{try{q(e)}catch(e){const r=e instanceof Error?e.message:"Unknown error";v({type:"socket_error",message:r})}}),[q,v]);(0,import_react8.useEffect)((()=>{"open"===V.readyState&&void 0!==o&&Object.keys(o).length>0&&q(o)}),[V.readyState,q,o]);const Z=(0,import_react8.useCallback)((e=>{try{x(e)}catch(e){const r=e instanceof Error?e.message:"Unknown error";v({type:"socket_error",message:r})}}),[x,v]),ee=(0,import_react8.useMemo)((()=>({connect:K,disconnect:W,fft:O.fft,micFft:z.fft,isMuted:z.isMuted,isAudioMuted:O.isAudioMuted,isPlaying:O.isPlaying,messages:T.messages,lastVoiceMessage:T.lastVoiceMessage,lastUserMessage:T.lastUserMessage,clearMessages:T.clearMessages,mute:z.mute,muteAudio:O.muteAudio,readyState:V.readyState,sendUserInput:J,sendAssistantInput:X,sendSessionSettings:Y,pauseAssistant:H,resumeAssistant:$,sendToolMessage:Z,status:l,unmute:z.unmute,unmuteAudio:O.unmuteAudio,error:_,isAudioError:k,isError:f,isMicrophoneError:y,isSocketError:S,callDurationTimestamp:c,toolStatusStore:A.store,chatMetadata:T.chatMetadata,playerQueueLength:O.queueLength,isPaused:m})),[K,W,O.fft,O.isAudioMuted,O.isPlaying,O.muteAudio,O.unmuteAudio,O.queueLength,z.fft,z.isMuted,z.mute,z.unmute,T.messages,T.lastVoiceMessage,T.lastUserMessage,T.clearMessages,T.chatMetadata,V.readyState,J,X,Y,H,$,Z,l,_,k,f,y,S,c,A.store,m]);return(0,import_jsx_runtime.jsx)(VoiceContext.Provider,{value:ee,children:e})},SocketUnknownMessageError=class extends Error{constructor(e){super("Unknown message type."+(e?" "+e:"")),this.name="SocketUnknownMessageError"}},isSocketUnknownMessageError=e=>e instanceof SocketUnknownMessageError,SocketFailedToParseMessageError=class extends Error{constructor(e){super("Failed to parse message from socket."+(e?" "+e:"")),this.name="SocketFailedToParseMessageError"}},isSocketFailedToParseMessageError=e=>e instanceof SocketFailedToParseMessageError,import_empathicVoice=require("hume/serialization/resources/empathicVoice/index.js"),import_zod=__toESM(require("zod")),AudioMessageSchema=import_zod.default.object({type:import_zod.default.literal("audio"),data:import_zod.default.instanceof(ArrayBuffer)}).transform((e=>Object.assign(e,{receivedAt:new Date}))),parseAudioMessage=async e=>e.arrayBuffer().then((e=>({type:"audio",data:e,receivedAt:new Date}))).catch((()=>null)),parseMessageData=async e=>{if(e instanceof Blob){const r=await parseAudioMessage(e);return r?{success:!0,message:r}:{success:!1,error:new SocketFailedToParseMessageError("Received blob was unable to be converted to ArrayBuffer.")}}if("string"!=typeof e)return{success:!1,error:new SocketFailedToParseMessageError(`Expected a string but received ${typeof e}.`)};const r=import_empathicVoice.SubscribeEvent.parse(e);return r.ok?{success:!0,message:r.value}:{success:!1,error:new SocketUnknownMessageError("Received JSON was not a known message type.")}},parseMessageType=async e=>{const r=e.data;return parseMessageData(r)},Channels=(e=>(e[e.MONO=1]="MONO",e[e.STEREO=2]="STEREO",e))(Channels||{}),AudioEncoding=(e=>(e.LINEAR16="linear16",e.OPUS="opus",e))(AudioEncoding||{}),LanguageModelOption=(e=>(e.CLAUDE_3_OPUS="CLAUDE_3_OPUS",e.CLAUDE_3_SONNET="CLAUDE_3_SONNET",e.CLAUDE_3_HAIKU="CLAUDE_3_HAIKU",e.CLAUDE_21="CLAUDE_21",e.CLAUDE_INSTANT_12="CLAUDE_INSTANT_12",e.GPT_4_TURBO_PREVIEW="GPT_4_TURBO_PREVIEW",e.GPT_35_TURBO_0125="GPT_35_TURBO_0125",e.GPT_35_TURBO="GPT_35_TURBO",e.FIREWORKS_MIXTRAL_8X7B="FIREWORKS_MIXTRAL_8X7B",e))(LanguageModelOption||{}),import_zod2=__toESM(require("zod")),TimeSliceSchema=import_zod2.default.object({begin:import_zod2.default.number(),end:import_zod2.default.number()}),TTSService=(e=>(e.DEFAULT="hume_ai",e.ELEVEN_LABS="eleven_labs",e.PLAY_HT="play_ht",e))(TTSService||{});
//# sourceMappingURL=/sm/e361a87daf5ce2c5ba2e06f4f6f3f852293712bd6e4375d1130e291e31647889.map