@kivox/client 0.1.0-beta.30 → 0.1.0-beta.31

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 CHANGED
@@ -1024,9 +1024,7 @@ declare class ConversationSession {
1024
1024
  */
1025
1025
  close(): void;
1026
1026
  }
1027
- type ConversationConnectParams = ConversationSessionConfig & {
1028
- /** The unique ID of the agent to connect to */
1029
- agentId: string
1027
+ type ConversationConnectParams = Omit<ClientHandshake, "type"> & ConversationSessionConfig & {
1030
1028
  /** Optional callback invoked during the initial handshake phase */
1031
1029
  onConnection?: (event: ServerConnectionMessage) => void
1032
1030
  };
package/dist/index.js CHANGED
@@ -3,4 +3,4 @@ var r1=Object.defineProperty;var o1=($)=>$;function e1($,Q){this[$]=o1.bind(null
3
3
  `)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from($){return $ instanceof this?$:new this($)}static concat($,...Q){let Y=new this($);return Q.forEach((Z)=>Y.set(Z)),Y}static accessor($){let Y=(this[A1]=this[A1]={accessors:{}}).accessors,Z=this.prototype;function G(W){let z=Q0(W);if(!Y[z])Z5(Z,W),Y[z]=!0}return X.isArray($)?$.forEach(G):G($),this}}Y0.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);X.reduceDescriptors(Y0.prototype,({value:$},Q)=>{let Y=Q[0].toUpperCase()+Q.slice(1);return{get:()=>$,set(Z){this[Y]=Z}}});X.freezeMethods(Y0);var q=Y0;function Z0($,Q){let Y=this||i,Z=Q||Y,G=q.from(Z.headers),W=Z.data;return X.forEach($,function(J){W=J.call(Y,W,G.normalize(),Q?Q.status:void 0)}),G.normalize(),W}function G0($){return!!($&&$.__CANCEL__)}class k1 extends P{constructor($,Q,Y){super($==null?"canceled":$,P.ERR_CANCELED,Q,Y);this.name="CanceledError",this.__CANCEL__=!0}}var b=k1;function z0($,Q,Y){let Z=Y.config.validateStatus;if(!Y.status||!Z||Z(Y.status))$(Y);else Q(new P("Request failed with status code "+Y.status,[P.ERR_BAD_REQUEST,P.ERR_BAD_RESPONSE][Math.floor(Y.status/100)-4],Y.config,Y.request,Y))}function u0($){let Q=/^([-+\w]{1,25})(:?\/\/|:)/.exec($);return Q&&Q[1]||""}function G5($,Q){$=$||10;let Y=Array($),Z=Array($),G=0,W=0,z;return Q=Q!==void 0?Q:1000,function(V){let N=Date.now(),M=Z[W];if(!z)z=N;Y[G]=V,Z[G]=N;let L=W,w=0;while(L!==G)w+=Y[L++],L=L%$;if(G=(G+1)%$,G===W)W=(W+1)%$;if(N-z<Q)return;let _=M&&N-M;return _?Math.round(w*1000/_):void 0}}var x1=G5;function z5($,Q){let Y=0,Z=1000/Q,G,W,z=(N,M=Date.now())=>{if(Y=M,G=null,W)clearTimeout(W),W=null;$(...N)};return[(...N)=>{let M=Date.now(),L=M-Y;if(L>=Z)z(N,M);else if(G=N,!W)W=setTimeout(()=>{W=null,z(G)},Z-L)},()=>G&&z(G)]}var j1=z5;var t=($,Q,Y=3)=>{let Z=0,G=x1(50,250);return j1((W)=>{let z=W.loaded,J=W.lengthComputable?W.total:void 0,V=z-Z,N=G(V),M=z<=J;Z=z;let L={loaded:z,total:J,progress:J?z/J:void 0,bytes:V,rate:N?N:void 0,estimated:N&&J&&M?(J-z)/N:void 0,event:W,lengthComputable:J!=null,[Q?"download":"upload"]:!0};$(L)},Y)},c0=($,Q)=>{let Y=$!=null;return[(Z)=>Q[0]({lengthComputable:Y,total:$,loaded:Z}),Q[1]]},d0=($)=>(...Q)=>X.asap(()=>$(...Q));var y1=F.hasStandardBrowserEnv?(($,Q)=>(Y)=>{return Y=new URL(Y,F.origin),$.protocol===Y.protocol&&$.host===Y.host&&(Q||$.port===Y.port)})(new URL(F.origin),F.navigator&&/(msie|trident)/i.test(F.navigator.userAgent)):()=>!0;var b1=F.hasStandardBrowserEnv?{write($,Q,Y,Z,G,W,z){if(typeof document>"u")return;let J=[`${$}=${encodeURIComponent(Q)}`];if(X.isNumber(Y))J.push(`expires=${new Date(Y).toUTCString()}`);if(X.isString(Z))J.push(`path=${Z}`);if(X.isString(G))J.push(`domain=${G}`);if(W===!0)J.push("secure");if(X.isString(z))J.push(`SameSite=${z}`);document.cookie=J.join("; ")},read($){if(typeof document>"u")return null;let Q=document.cookie.match(new RegExp("(?:^|; )"+$+"=([^;]*)"));return Q?decodeURIComponent(Q[1]):null},remove($){this.write($,"",Date.now()-86400000,"/")}}:{write(){},read(){return null},remove(){}};function l0($){if(typeof $!=="string")return!1;return/^([a-z][a-z\d+\-.]*:)?\/\//i.test($)}function p0($,Q){return Q?$.replace(/\/?\/$/,"")+"/"+Q.replace(/^\/+/,""):$}function X0($,Q,Y){let Z=!l0(Q);if($&&(Z||Y==!1))return p0($,Q);return Q}var v1=($)=>$ instanceof q?{...$}:$;function y($,Q){Q=Q||{};let Y={};function Z(N,M,L,w){if(X.isPlainObject(N)&&X.isPlainObject(M))return X.merge.call({caseless:w},N,M);else if(X.isPlainObject(M))return X.merge({},M);else if(X.isArray(M))return M.slice();return M}function G(N,M,L,w){if(!X.isUndefined(M))return Z(N,M,L,w);else if(!X.isUndefined(N))return Z(void 0,N,L,w)}function W(N,M){if(!X.isUndefined(M))return Z(void 0,M)}function z(N,M){if(!X.isUndefined(M))return Z(void 0,M);else if(!X.isUndefined(N))return Z(void 0,N)}function J(N,M,L){if(L in Q)return Z(N,M);else if(L in $)return Z(void 0,N)}let V={url:W,method:W,data:W,baseURL:z,transformRequest:z,transformResponse:z,paramsSerializer:z,timeout:z,timeoutMessage:z,withCredentials:z,withXSRFToken:z,adapter:z,responseType:z,xsrfCookieName:z,xsrfHeaderName:z,onUploadProgress:z,onDownloadProgress:z,decompress:z,maxContentLength:z,maxBodyLength:z,beforeRedirect:z,transport:z,httpAgent:z,httpsAgent:z,cancelToken:z,socketPath:z,responseEncoding:z,validateStatus:J,headers:(N,M,L)=>G(v1(N),v1(M),L,!0)};return X.forEach(Object.keys({...$,...Q}),function(M){if(M==="__proto__"||M==="constructor"||M==="prototype")return;let L=X.hasOwnProp(V,M)?V[M]:G,w=L($[M],Q[M],M);X.isUndefined(w)&&L!==J||(Y[M]=w)}),Y}var U0=($)=>{let Q=y({},$),{data:Y,withXSRFToken:Z,xsrfHeaderName:G,xsrfCookieName:W,headers:z,auth:J}=Q;if(Q.headers=z=q.from(z),Q.url=$0(X0(Q.baseURL,Q.url,Q.allowAbsoluteUrls),$.params,$.paramsSerializer),J)z.set("Authorization","Basic "+btoa((J.username||"")+":"+(J.password?unescape(encodeURIComponent(J.password)):"")));if(X.isFormData(Y)){if(F.hasStandardBrowserEnv||F.hasStandardBrowserWebWorkerEnv)z.setContentType(void 0);else if(X.isFunction(Y.getHeaders)){let V=Y.getHeaders(),N=["content-type","content-length"];Object.entries(V).forEach(([M,L])=>{if(N.includes(M.toLowerCase()))z.set(M,L)})}}if(F.hasStandardBrowserEnv){if(Z&&X.isFunction(Z)&&(Z=Z(Q)),Z||Z!==!1&&y1(Q.url)){let V=G&&W&&b1.read(W);if(V)z.set(G,V)}}return Q};var X5=typeof XMLHttpRequest<"u",m1=X5&&function($){return new Promise(function(Y,Z){let G=U0($),W=G.data,z=q.from(G.headers).normalize(),{responseType:J,onUploadProgress:V,onDownloadProgress:N}=G,M,L,w,_,K;function I(){_&&_(),K&&K(),G.cancelToken&&G.cancelToken.unsubscribe(M),G.signal&&G.signal.removeEventListener("abort",M)}let H=new XMLHttpRequest;H.open(G.method.toUpperCase(),G.url,!0),H.timeout=G.timeout;function R(){if(!H)return;let S=q.from("getAllResponseHeaders"in H&&H.getAllResponseHeaders()),x={data:!J||J==="text"||J==="json"?H.responseText:H.response,status:H.status,statusText:H.statusText,headers:S,config:$,request:H};z0(function(A){Y(A),I()},function(A){Z(A),I()},x),H=null}if("onloadend"in H)H.onloadend=R;else H.onreadystatechange=function(){if(!H||H.readyState!==4)return;if(H.status===0&&!(H.responseURL&&H.responseURL.indexOf("file:")===0))return;setTimeout(R)};if(H.onabort=function(){if(!H)return;Z(new P("Request aborted",P.ECONNABORTED,$,H)),H=null},H.onerror=function(E){let x=E&&E.message?E.message:"Network Error",g=new P(x,P.ERR_NETWORK,$,H);g.event=E||null,Z(g),H=null},H.ontimeout=function(){let E=G.timeout?"timeout of "+G.timeout+"ms exceeded":"timeout exceeded",x=G.transitional||n;if(G.timeoutErrorMessage)E=G.timeoutErrorMessage;Z(new P(E,x.clarifyTimeoutError?P.ETIMEDOUT:P.ECONNABORTED,$,H)),H=null},W===void 0&&z.setContentType(null),"setRequestHeader"in H)X.forEach(z.toJSON(),function(E,x){H.setRequestHeader(x,E)});if(!X.isUndefined(G.withCredentials))H.withCredentials=!!G.withCredentials;if(J&&J!=="json")H.responseType=G.responseType;if(N)[w,K]=t(N,!0),H.addEventListener("progress",w);if(V&&H.upload)[L,_]=t(V),H.upload.addEventListener("progress",L),H.upload.addEventListener("loadend",_);if(G.cancelToken||G.signal){if(M=(S)=>{if(!H)return;Z(!S||S.type?new b(null,$,H):S),H.abort(),H=null},G.cancelToken&&G.cancelToken.subscribe(M),G.signal)G.signal.aborted?M():G.signal.addEventListener("abort",M)}let C=u0(G.url);if(C&&F.protocols.indexOf(C)===-1){Z(new P("Unsupported protocol "+C+":",P.ERR_BAD_REQUEST,$));return}H.send(W||null)})};var W5=($,Q)=>{let{length:Y}=$=$?$.filter(Boolean):[];if(Q||Y){let Z=new AbortController,G,W=function(N){if(!G){G=!0,J();let M=N instanceof Error?N:this.reason;Z.abort(M instanceof P?M:new b(M instanceof Error?M.message:M))}},z=Q&&setTimeout(()=>{z=null,W(new P(`timeout of ${Q}ms exceeded`,P.ETIMEDOUT))},Q),J=()=>{if($)z&&clearTimeout(z),z=null,$.forEach((N)=>{N.unsubscribe?N.unsubscribe(W):N.removeEventListener("abort",W)}),$=null};$.forEach((N)=>N.addEventListener("abort",W));let{signal:V}=Z;return V.unsubscribe=()=>X.asap(J),V}},h1=W5;var J5=function*($,Q){let Y=$.byteLength;if(!Q||Y<Q){yield $;return}let Z=0,G;while(Z<Y)G=Z+Q,yield $.slice(Z,G),Z=G},N5=async function*($,Q){for await(let Y of M5($))yield*J5(Y,Q)},M5=async function*($){if($[Symbol.asyncIterator]){yield*$;return}let Q=$.getReader();try{for(;;){let{done:Y,value:Z}=await Q.read();if(Y)break;yield Z}}finally{await Q.cancel()}},n0=($,Q,Y,Z)=>{let G=N5($,Q),W=0,z,J=(V)=>{if(!z)z=!0,Z&&Z(V)};return new ReadableStream({async pull(V){try{let{done:N,value:M}=await G.next();if(N){J(),V.close();return}let L=M.byteLength;if(Y){let w=W+=L;Y(w)}V.enqueue(new Uint8Array(M))}catch(N){throw J(N),N}},cancel(V){return J(V),G.return()}},{highWaterMark:2})};var f1=65536,{isFunction:R0}=X,K5=(({Request:$,Response:Q})=>({Request:$,Response:Q}))(X.global),{ReadableStream:g1,TextEncoder:u1}=X.global,c1=($,...Q)=>{try{return!!$(...Q)}catch(Y){return!1}},V5=($)=>{$=X.merge.call({skipUndefined:!0},K5,$);let{fetch:Q,Request:Y,Response:Z}=$,G=Q?R0(Q):typeof fetch==="function",W=R0(Y),z=R0(Z);if(!G)return!1;let J=G&&R0(g1),V=G&&(typeof u1==="function"?((K)=>(I)=>K.encode(I))(new u1):async(K)=>new Uint8Array(await new Y(K).arrayBuffer())),N=W&&J&&c1(()=>{let K=!1,I=new Y(F.origin,{body:new g1,method:"POST",get duplex(){return K=!0,"half"}}).headers.has("Content-Type");return K&&!I}),M=z&&J&&c1(()=>X.isReadableStream(new Z("").body)),L={stream:M&&((K)=>K.body)};G&&(()=>{["text","arrayBuffer","blob","formData","stream"].forEach((K)=>{!L[K]&&(L[K]=(I,H)=>{let R=I&&I[K];if(R)return R.call(I);throw new P(`Response type '${K}' is not supported`,P.ERR_NOT_SUPPORT,H)})})})();let w=async(K)=>{if(K==null)return 0;if(X.isBlob(K))return K.size;if(X.isSpecCompliantForm(K))return(await new Y(F.origin,{method:"POST",body:K}).arrayBuffer()).byteLength;if(X.isArrayBufferView(K)||X.isArrayBuffer(K))return K.byteLength;if(X.isURLSearchParams(K))K=K+"";if(X.isString(K))return(await V(K)).byteLength},_=async(K,I)=>{let H=X.toFiniteNumber(K.getContentLength());return H==null?w(I):H};return async(K)=>{let{url:I,method:H,data:R,signal:C,cancelToken:S,timeout:E,onDownloadProgress:x,onUploadProgress:g,responseType:A,headers:T0,withCredentials:M0="same-origin",fetchOptions:Z1}=U0(K),G1=Q||fetch;A=A?(A+"").toLowerCase():"text";let K0=h1([C,S&&S.toAbortSignal()],E),a=null,u=K0&&K0.unsubscribe&&(()=>{K0.unsubscribe()}),z1;try{if(g&&N&&H!=="get"&&H!=="head"&&(z1=await _(T0,R))!==0){let m=new Y(I,{method:"POST",body:R,duplex:"half"}),d;if(X.isFormData(R)&&(d=m.headers.get("content-type")))T0.setContentType(d);if(m.body){let[C0,V0]=c0(z1,t(d0(g)));R=n0(m.body,f1,C0,V0)}}if(!X.isString(M0))M0=M0?"include":"omit";let O=W&&"credentials"in Y.prototype,X1={...Z1,signal:K0,method:H.toUpperCase(),headers:T0.normalize().toJSON(),body:R,duplex:"half",credentials:O?M0:void 0};a=W&&new Y(I,X1);let v=await(W?G1(a,Z1):G1(I,X1)),W1=M&&(A==="stream"||A==="response");if(M&&(x||W1&&u)){let m={};["status","statusText","headers"].forEach((J1)=>{m[J1]=v[J1]});let d=X.toFiniteNumber(v.headers.get("content-length")),[C0,V0]=x&&c0(d,t(d0(x),!0))||[];v=new Z(n0(v.body,f1,C0,()=>{V0&&V0(),u&&u()}),m)}A=A||"text";let s1=await L[X.findKey(L,A)||"text"](v,K);return!W1&&u&&u(),await new Promise((m,d)=>{z0(m,d,{data:s1,headers:q.from(v.headers),status:v.status,statusText:v.statusText,config:K,request:a})})}catch(O){if(u&&u(),O&&O.name==="TypeError"&&/Load failed|fetch/i.test(O.message))throw Object.assign(new P("Network Error",P.ERR_NETWORK,K,a,O&&O.response),{cause:O.cause||O});throw P.from(O,O&&O.code,K,a,O&&O.response)}}},H5=new Map,i0=($)=>{let Q=$&&$.env||{},{fetch:Y,Request:Z,Response:G}=Q,W=[Z,G,Y],z=W.length,J=z,V,N,M=H5;while(J--)V=W[J],N=M.get(V),N===void 0&&M.set(V,N=J?new Map:V5(Q)),M=N;return N},K8=i0();var t0={http:I0,xhr:m1,fetch:{get:i0}};X.forEach(t0,($,Q)=>{if($){try{Object.defineProperty($,"name",{value:Q})}catch(Y){}Object.defineProperty($,"adapterName",{value:Q})}});var d1=($)=>`- ${$}`,P5=($)=>X.isFunction($)||$===null||$===!1;function L5($,Q){$=X.isArray($)?$:[$];let{length:Y}=$,Z,G,W={};for(let z=0;z<Y;z++){Z=$[z];let J;if(G=Z,!P5(Z)){if(G=t0[(J=String(Z)).toLowerCase()],G===void 0)throw new P(`Unknown adapter '${J}'`)}if(G&&(X.isFunction(G)||(G=G.get(Q))))break;W[J||"#"+z]=G}if(!G){let z=Object.entries(W).map(([V,N])=>`adapter ${V} `+(N===!1?"is not supported by the environment":"is not available in the build")),J=Y?z.length>1?`since :
4
4
  `+z.map(d1).join(`
5
5
  `):" "+d1(z[0]):"as no adapter specified";throw new P("There is no suitable adapter to dispatch the request "+J,"ERR_NOT_SUPPORT")}return G}var q0={getAdapter:L5,adapters:t0};function a0($){if($.cancelToken)$.cancelToken.throwIfRequested();if($.signal&&$.signal.aborted)throw new b(null,$)}function S0($){if(a0($),$.headers=q.from($.headers),$.data=Z0.call($,$.transformRequest),["post","put","patch"].indexOf($.method)!==-1)$.headers.setContentType("application/x-www-form-urlencoded",!1);return q0.getAdapter($.adapter||i.adapter,$)($).then(function(Z){return a0($),Z.data=Z0.call($,$.transformResponse,Z),Z.headers=q.from(Z.headers),Z},function(Z){if(!G0(Z)){if(a0($),Z&&Z.response)Z.response.data=Z0.call($,$.transformResponse,Z.response),Z.response.headers=q.from(Z.response.headers)}return Promise.reject(Z)})}var D0="1.13.6";var E0={};["object","boolean","number","function","string","symbol"].forEach(($,Q)=>{E0[$]=function(Z){return typeof Z===$||"a"+(Q<1?"n ":" ")+$}});var l1={};E0.transitional=function(Q,Y,Z){function G(W,z){return"[Axios v"+D0+"] Transitional option '"+W+"'"+z+(Z?". "+Z:"")}return(W,z,J)=>{if(Q===!1)throw new P(G(z," has been removed"+(Y?" in "+Y:"")),P.ERR_DEPRECATED);if(Y&&!l1[z])l1[z]=!0,console.warn(G(z," has been deprecated since v"+Y+" and will be removed in the near future"));return Q?Q(W,z,J):!0}};E0.spelling=function(Q){return(Y,Z)=>{return console.warn(`${Z} is likely a misspelling of ${Q}`),!0}};function I5($,Q,Y){if(typeof $!=="object")throw new P("options must be an object",P.ERR_BAD_OPTION_VALUE);let Z=Object.keys($),G=Z.length;while(G-- >0){let W=Z[G],z=Q[W];if(z){let J=$[W],V=J===void 0||z(J,W,$);if(V!==!0)throw new P("option "+W+" must be "+V,P.ERR_BAD_OPTION_VALUE);continue}if(Y!==!0)throw new P("Unknown option "+W,P.ERR_BAD_OPTION)}}var W0={assertOptions:I5,validators:E0};var k=W0.validators;class J0{constructor($){this.defaults=$||{},this.interceptors={request:new y0,response:new y0}}async request($,Q){try{return await this._request($,Q)}catch(Y){if(Y instanceof Error){let Z={};Error.captureStackTrace?Error.captureStackTrace(Z):Z=Error();let G=Z.stack?Z.stack.replace(/^.+\n/,""):"";try{if(!Y.stack)Y.stack=G;else if(G&&!String(Y.stack).endsWith(G.replace(/^.+\n.+\n/,"")))Y.stack+=`
6
- `+G}catch(W){}}throw Y}}_request($,Q){if(typeof $==="string")Q=Q||{},Q.url=$;else Q=$||{};Q=y(this.defaults,Q);let{transitional:Y,paramsSerializer:Z,headers:G}=Q;if(Y!==void 0)W0.assertOptions(Y,{silentJSONParsing:k.transitional(k.boolean),forcedJSONParsing:k.transitional(k.boolean),clarifyTimeoutError:k.transitional(k.boolean),legacyInterceptorReqResOrdering:k.transitional(k.boolean)},!1);if(Z!=null)if(X.isFunction(Z))Q.paramsSerializer={serialize:Z};else W0.assertOptions(Z,{encode:k.function,serialize:k.function},!0);if(Q.allowAbsoluteUrls!==void 0);else if(this.defaults.allowAbsoluteUrls!==void 0)Q.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls;else Q.allowAbsoluteUrls=!0;W0.assertOptions(Q,{baseUrl:k.spelling("baseURL"),withXsrfToken:k.spelling("withXSRFToken")},!0),Q.method=(Q.method||this.defaults.method||"get").toLowerCase();let W=G&&X.merge(G.common,G[Q.method]);G&&X.forEach(["delete","get","head","post","put","patch","common"],(_)=>{delete G[_]}),Q.headers=q.concat(W,G);let z=[],J=!0;this.interceptors.request.forEach(function(K){if(typeof K.runWhen==="function"&&K.runWhen(Q)===!1)return;J=J&&K.synchronous;let I=Q.transitional||n;if(I&&I.legacyInterceptorReqResOrdering)z.unshift(K.fulfilled,K.rejected);else z.push(K.fulfilled,K.rejected)});let V=[];this.interceptors.response.forEach(function(K){V.push(K.fulfilled,K.rejected)});let N,M=0,L;if(!J){let _=[S0.bind(this),void 0];_.unshift(...z),_.push(...V),L=_.length,N=Promise.resolve(Q);while(M<L)N=N.then(_[M++],_[M++]);return N}L=z.length;let w=Q;while(M<L){let _=z[M++],K=z[M++];try{w=_(w)}catch(I){K.call(this,I);break}}try{N=S0.call(this,w)}catch(_){return Promise.reject(_)}M=0,L=V.length;while(M<L)N=N.then(V[M++],V[M++]);return N}getUri($){$=y(this.defaults,$);let Q=X0($.baseURL,$.url,$.allowAbsoluteUrls);return $0(Q,$.params,$.paramsSerializer)}}X.forEach(["delete","get","head","options"],function(Q){J0.prototype[Q]=function(Y,Z){return this.request(y(Z||{},{method:Q,url:Y,data:(Z||{}).data}))}});X.forEach(["post","put","patch"],function(Q){function Y(Z){return function(W,z,J){return this.request(y(J||{},{method:Q,headers:Z?{"Content-Type":"multipart/form-data"}:{},url:W,data:z}))}}J0.prototype[Q]=Y(),J0.prototype[Q+"Form"]=Y(!0)});var N0=J0;class s0{constructor($){if(typeof $!=="function")throw TypeError("executor must be a function.");let Q;this.promise=new Promise(function(G){Q=G});let Y=this;this.promise.then((Z)=>{if(!Y._listeners)return;let G=Y._listeners.length;while(G-- >0)Y._listeners[G](Z);Y._listeners=null}),this.promise.then=(Z)=>{let G,W=new Promise((z)=>{Y.subscribe(z),G=z}).then(Z);return W.cancel=function(){Y.unsubscribe(G)},W},$(function(G,W,z){if(Y.reason)return;Y.reason=new b(G,W,z),Q(Y.reason)})}throwIfRequested(){if(this.reason)throw this.reason}subscribe($){if(this.reason){$(this.reason);return}if(this._listeners)this._listeners.push($);else this._listeners=[$]}unsubscribe($){if(!this._listeners)return;let Q=this._listeners.indexOf($);if(Q!==-1)this._listeners.splice(Q,1)}toAbortSignal(){let $=new AbortController,Q=(Y)=>{$.abort(Y)};return this.subscribe(Q),$.signal.unsubscribe=()=>this.unsubscribe(Q),$.signal}static source(){let $;return{token:new s0(function(Z){$=Z}),cancel:$}}}var p1=s0;function r0($){return function(Y){return $.apply(null,Y)}}function o0($){return X.isObject($)&&$.isAxiosError===!0}var e0={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(e0).forEach(([$,Q])=>{e0[Q]=$});var n1=e0;function i1($){let Q=new N0($),Y=s(N0.prototype.request,Q);return X.extend(Y,N0.prototype,Q,{allOwnKeys:!0}),X.extend(Y,Q,null,{allOwnKeys:!0}),Y.create=function(G){return i1(y($,G))},Y}var U=i1(i);U.Axios=N0;U.CanceledError=b;U.CancelToken=p1;U.isCancel=G0;U.VERSION=D0;U.toFormData=h;U.AxiosError=P;U.Cancel=U.CanceledError;U.all=function(Q){return Promise.all(Q)};U.spread=r0;U.isAxiosError=o0;U.mergeConfig=y;U.AxiosHeaders=q;U.formToJSON=($)=>w0(X.isHTMLForm($)?new FormData($):$);U.getAdapter=q0.getAdapter;U.HttpStatusCode=n1;U.default=U;var B=U;var $1={};N1($1,{updateTemplate:()=>o5,updateOrgMember:()=>i5,updateOrg:()=>u5,updateCurrentUserEmail:()=>G2,updateCurrentUser:()=>Q2,updateAgentStatus:()=>E5,updateAgent:()=>q5,signup:()=>j5,revokeApiKey:()=>C5,removeOrgMember:()=>n5,logoutAll:()=>A5,logout:()=>x5,login:()=>k5,listUserTemplates:()=>z2,listUserAgents:()=>Y2,listOrgs:()=>m5,listOrgTemplates:()=>t5,listOrgMembers:()=>l5,listOrgAgents:()=>c5,listMessages:()=>v5,listConversations:()=>D5,listApiKeys:()=>O5,getUser:()=>W2,getTemplate:()=>r5,getOrg:()=>g5,getCurrentUser:()=>$2,getConversation:()=>b5,getAgent:()=>R5,deleteTemplate:()=>s5,deleteOrg:()=>f5,deleteCurrentUser:()=>e5,deleteConversation:()=>y5,deleteAgent:()=>U5,createUserTemplate:()=>X2,createUserAgent:()=>Z2,createOrgTemplate:()=>a5,createOrgAgent:()=>d5,createOrg:()=>h5,createApiKey:()=>T5,compileAgent:()=>S5,addOrgMember:()=>p5,UpdateStatusBodyStatus:()=>F5,UpdateMemberBodyRole:()=>w5,AddMemberBodyRole:()=>_5});var _5={admin:"admin",member:"member",viewer:"viewer"},w5={owner:"owner",admin:"admin",member:"member",viewer:"viewer"},F5={draft:"draft",live:"live",archived:"archived"},U5=($,Q)=>{return B.delete(`/agents/${$}`,Q)},R5=($,Q)=>{return B.get(`/agents/${$}`,Q)},q5=($,Q,Y)=>{return B.patch(`/agents/${$}`,Q,Y)},S5=($,Q,Y)=>{return B.post(`/agents/${$}/compile`,Q,Y)},D5=($,Q,Y)=>{return B.get(`/agents/${$}/conversations`,{...Y,params:{...Q,...Y?.params}})},E5=($,Q,Y)=>{return B.patch(`/agents/${$}/status`,Q,Y)},O5=($)=>{return B.get("/auth/api-keys",$)},T5=($,Q)=>{return B.post("/auth/api-keys",$,Q)},C5=($,Q)=>{return B.delete(`/auth/api-keys/${$}`,Q)},A5=($)=>{return B.delete("/auth/sessions",$)},k5=($,Q)=>{return B.post("/auth/sessions",$,Q)},x5=($)=>{return B.delete("/auth/sessions/me",$)},j5=($,Q)=>{return B.post("/auth/signup",$,Q)},y5=($,Q)=>{return B.delete(`/conversations/${$}`,Q)},b5=($,Q)=>{return B.get(`/conversations/${$}`,Q)},v5=($,Q,Y)=>{return B.get(`/conversations/${$}/messages`,{...Y,params:{...Q,...Y?.params}})},m5=($)=>{return B.get("/orgs",$)},h5=($,Q)=>{return B.post("/orgs",$,Q)},f5=($,Q)=>{return B.delete(`/orgs/${$}`,Q)},g5=($,Q)=>{return B.get(`/orgs/${$}`,Q)},u5=($,Q,Y)=>{return B.patch(`/orgs/${$}`,Q,Y)},c5=($,Q,Y)=>{return B.get(`/orgs/${$}/agents`,{...Y,params:{...Q,...Y?.params}})},d5=($,Q,Y)=>{return B.post(`/orgs/${$}/agents`,Q,Y)},l5=($,Q)=>{return B.get(`/orgs/${$}/members`,Q)},p5=($,Q,Y)=>{return B.post(`/orgs/${$}/members`,Q,Y)},n5=($,Q,Y)=>{return B.delete(`/orgs/${$}/members/${Q}`,Y)},i5=($,Q,Y,Z)=>{return B.patch(`/orgs/${$}/members/${Q}`,Y,Z)},t5=($,Q,Y)=>{return B.get(`/orgs/${$}/templates`,{...Y,params:{...Q,...Y?.params}})},a5=($,Q,Y)=>{return B.post(`/orgs/${$}/templates`,Q,Y)},s5=($,Q)=>{return B.delete(`/templates/${$}`,Q)},r5=($,Q)=>{return B.get(`/templates/${$}`,Q)},o5=($,Q,Y)=>{return B.patch(`/templates/${$}`,Q,Y)},e5=($)=>{return B.delete("/users/me",$)},$2=($)=>{return B.get("/users/me",$)},Q2=($,Q)=>{return B.patch("/users/me",$,Q)},Y2=($,Q)=>{return B.get("/users/me/agents",{...Q,params:{...$,...Q?.params}})},Z2=($,Q)=>{return B.post("/users/me/agents",$,Q)},G2=($,Q)=>{return B.patch("/users/me/email",$,Q)},z2=($,Q)=>{return B.get("/users/me/templates",{...Q,params:{...$,...Q?.params}})},X2=($,Q)=>{return B.post("/users/me/templates",$,Q)},W2=($,Q)=>{return B.get(`/users/${$}`,Q)};class O0{_transport;_conversationId;_closed=!1;_onEvent;_pendingAudioMetadata=null;_remainingMs=0;_elapsedMs=0;get conversationId(){return this._conversationId}get remainingMs(){return this._remainingMs}get elapsedMs(){return this._elapsedMs}get closed(){return this._closed}constructor($,Q,Y){this._transport=$,this._conversationId=Q,this._onEvent=Y.onEvent,this.#$()}sendText($){if(this._closed){console.warn("Cannot send text: session is closed");return}this._transport.send({type:"input_text",text:$})}sendAudio($){if(this._closed){console.warn("Cannot send audio: session is closed");return}this._transport.send({type:"input_audio"}),this._transport.sendBinary($)}streamAudio($){if(this._closed){console.warn("Cannot stream audio: session is closed");return}this._transport.send({type:"input_audio_stream"}),this._transport.sendBinary($)}cancelRequest(){if(this._closed){console.warn("Cannot cancel request: session is closed");return}this._transport.send({type:"cancel"})}end(){if(this._closed){console.warn("Cannot end session: session is closed");return}this._transport.send({type:"end"})}close(){if(this._closed)return;this._closed=!0,this._transport.close()}#$(){this._transport.onMessage(($)=>{let Q=$;if(Q.type==="audio_delta"){this._pendingAudioMetadata={size:Q.size};return}if(Q.type==="tick")this._remainingMs=Q.remaining_ms,this._elapsedMs=Q.elapsed_ms;if(Q.type==="session_closed")this._closed=!0;this._onEvent?.(Q)}),this._transport.onBinary(($)=>{if(this._pendingAudioMetadata){let Q={type:"audio_delta",size:this._pendingAudioMetadata.size,audio:$};this._pendingAudioMetadata=null,this._onEvent?.(Q)}}),this._transport.onClose(()=>{if(this._closed)return;this._closed=!0,this._onEvent?.({type:"connection_lost",reason:"socket_closed"})}),this._transport.onError(()=>{if(this._closed)return;this._closed=!0,this._onEvent?.({type:"connection_lost",reason:"socket_error"})})}}class f extends Error{code;constructor($,Q="TRANSPORT_ERROR"){super($);this.code=Q;this.name="ConversationTransportError"}}class Q1{_ws;_closed=!1;_onMessage=null;_onBinary=null;_onError=null;_onClose=null;constructor($){this._ws=$}async connect(){if(this._ws.readyState===WebSocket.OPEN)throw new f("Already connected","ALREADY_CONNECTED");if(this._ws.readyState===WebSocket.CLOSING||this._ws.readyState===WebSocket.CLOSED)throw new f("Socket is closing or closed","SOCKET_CLOSED");return new Promise(($,Q)=>{let Y,Z;Y=()=>{this._ws.removeEventListener("open",Y),this._ws.removeEventListener("error",Z),this.#$(),$()},Z=()=>{this._ws.removeEventListener("open",Y),this._ws.removeEventListener("error",Z),Q(new f("Connection failed","CONNECTION_FAILED"))},this._ws.addEventListener("open",Y),this._ws.addEventListener("error",Z)})}send($){if(this._ws.readyState!==WebSocket.OPEN)throw new f("Not connected","NOT_CONNECTED");this._ws.send(JSON.stringify($))}async sendBinary($){if(this._ws.readyState!==WebSocket.OPEN)throw new f("Not connected","NOT_CONNECTED");let Q=await $.arrayBuffer();this._ws.send(Q)}onMessage($){this._onMessage=$}onBinary($){this._onBinary=$}onError($){this._onError=$}onClose($){this._onClose=$}close(){if(this._closed)return;if(this._closed=!0,this._ws.readyState===WebSocket.OPEN||this._ws.readyState===WebSocket.CONNECTING)this._ws.close();this._onClose?.()}#$(){this._ws.addEventListener("message",($)=>{if($.data instanceof Blob)this._onBinary?.($.data);else if($.data instanceof ArrayBuffer)this._onBinary?.(new Blob([$.data]));else if(typeof $.data==="string")try{let Q=JSON.parse($.data);this._onMessage?.(Q)}catch(Q){console.warn("Failed to parse JSON message:",$.data,Q)}}),this._ws.addEventListener("error",()=>{if(this._closed)return;this._onError?.(new f("WebSocket error")),this.close()}),this._ws.addEventListener("close",()=>{if(this._closed)return;this.close()})}}class Y1{#$;constructor($){this.#$=$}async connect($){let Q=this.#Q("/conversations/ws"),Y=new Q1(new WebSocket(Q));return await Y.connect(),Y.send({type:"handshake",agent_id:$.agentId}),new Promise((Z,G)=>{let W=!1;Y.onMessage((z)=>{switch(z.type){case"handshake_ok":W=!0,$.onConnection?.(z),Z(new O0(Y,z.conversation_id,$));break;case"handshake_error":W=!0,$.onConnection?.(z),Y.close(),G(Error(`Handshake rejected: ${z.reason}`));break;default:}}),Y.onError((z)=>{if(!W)G(z)}),Y.onClose(()=>{if(!W)G(Error("Connection lost during handshake"))})})}#Q($){return`${this.#$.replace(/^https:\/\//,"wss://").replace(/^http:\/\//,"ws://").replace(/\/$/,"")}${$}`}}var t1="https://server.kivox.com.co";function a1($,Q){$.interceptors.request.use((G)=>G),B.defaults.baseURL=Q,B.defaults.withCredentials=$.defaults.withCredentials??!1;let Y=$.defaults.headers?.Authorization;if(Y)B.defaults.headers.common.Authorization=Y;let Z={realtime:new Y1(Q)};return new Proxy({...Z},{get(G,W){if(W in G)return G[W];let z=$1[W];if(typeof z==="function")return(...J)=>z(...J,{axios:$});return z}})}function _7({baseUrl:$=t1}={}){let Q=B.create({baseURL:$,withCredentials:!0});return a1(Q,$)}function w7({apiKey:$,baseUrl:Q=t1}){let Y=B.create({baseURL:Q,headers:{Authorization:`Bearer ${$}`}});return a1(Y,Q)}export{_7 as createSessionClient,w7 as createApiKeyClient,f as ConversationTransportError,O0 as ConversationSession};
6
+ `+G}catch(W){}}throw Y}}_request($,Q){if(typeof $==="string")Q=Q||{},Q.url=$;else Q=$||{};Q=y(this.defaults,Q);let{transitional:Y,paramsSerializer:Z,headers:G}=Q;if(Y!==void 0)W0.assertOptions(Y,{silentJSONParsing:k.transitional(k.boolean),forcedJSONParsing:k.transitional(k.boolean),clarifyTimeoutError:k.transitional(k.boolean),legacyInterceptorReqResOrdering:k.transitional(k.boolean)},!1);if(Z!=null)if(X.isFunction(Z))Q.paramsSerializer={serialize:Z};else W0.assertOptions(Z,{encode:k.function,serialize:k.function},!0);if(Q.allowAbsoluteUrls!==void 0);else if(this.defaults.allowAbsoluteUrls!==void 0)Q.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls;else Q.allowAbsoluteUrls=!0;W0.assertOptions(Q,{baseUrl:k.spelling("baseURL"),withXsrfToken:k.spelling("withXSRFToken")},!0),Q.method=(Q.method||this.defaults.method||"get").toLowerCase();let W=G&&X.merge(G.common,G[Q.method]);G&&X.forEach(["delete","get","head","post","put","patch","common"],(_)=>{delete G[_]}),Q.headers=q.concat(W,G);let z=[],J=!0;this.interceptors.request.forEach(function(K){if(typeof K.runWhen==="function"&&K.runWhen(Q)===!1)return;J=J&&K.synchronous;let I=Q.transitional||n;if(I&&I.legacyInterceptorReqResOrdering)z.unshift(K.fulfilled,K.rejected);else z.push(K.fulfilled,K.rejected)});let V=[];this.interceptors.response.forEach(function(K){V.push(K.fulfilled,K.rejected)});let N,M=0,L;if(!J){let _=[S0.bind(this),void 0];_.unshift(...z),_.push(...V),L=_.length,N=Promise.resolve(Q);while(M<L)N=N.then(_[M++],_[M++]);return N}L=z.length;let w=Q;while(M<L){let _=z[M++],K=z[M++];try{w=_(w)}catch(I){K.call(this,I);break}}try{N=S0.call(this,w)}catch(_){return Promise.reject(_)}M=0,L=V.length;while(M<L)N=N.then(V[M++],V[M++]);return N}getUri($){$=y(this.defaults,$);let Q=X0($.baseURL,$.url,$.allowAbsoluteUrls);return $0(Q,$.params,$.paramsSerializer)}}X.forEach(["delete","get","head","options"],function(Q){J0.prototype[Q]=function(Y,Z){return this.request(y(Z||{},{method:Q,url:Y,data:(Z||{}).data}))}});X.forEach(["post","put","patch"],function(Q){function Y(Z){return function(W,z,J){return this.request(y(J||{},{method:Q,headers:Z?{"Content-Type":"multipart/form-data"}:{},url:W,data:z}))}}J0.prototype[Q]=Y(),J0.prototype[Q+"Form"]=Y(!0)});var N0=J0;class s0{constructor($){if(typeof $!=="function")throw TypeError("executor must be a function.");let Q;this.promise=new Promise(function(G){Q=G});let Y=this;this.promise.then((Z)=>{if(!Y._listeners)return;let G=Y._listeners.length;while(G-- >0)Y._listeners[G](Z);Y._listeners=null}),this.promise.then=(Z)=>{let G,W=new Promise((z)=>{Y.subscribe(z),G=z}).then(Z);return W.cancel=function(){Y.unsubscribe(G)},W},$(function(G,W,z){if(Y.reason)return;Y.reason=new b(G,W,z),Q(Y.reason)})}throwIfRequested(){if(this.reason)throw this.reason}subscribe($){if(this.reason){$(this.reason);return}if(this._listeners)this._listeners.push($);else this._listeners=[$]}unsubscribe($){if(!this._listeners)return;let Q=this._listeners.indexOf($);if(Q!==-1)this._listeners.splice(Q,1)}toAbortSignal(){let $=new AbortController,Q=(Y)=>{$.abort(Y)};return this.subscribe(Q),$.signal.unsubscribe=()=>this.unsubscribe(Q),$.signal}static source(){let $;return{token:new s0(function(Z){$=Z}),cancel:$}}}var p1=s0;function r0($){return function(Y){return $.apply(null,Y)}}function o0($){return X.isObject($)&&$.isAxiosError===!0}var e0={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(e0).forEach(([$,Q])=>{e0[Q]=$});var n1=e0;function i1($){let Q=new N0($),Y=s(N0.prototype.request,Q);return X.extend(Y,N0.prototype,Q,{allOwnKeys:!0}),X.extend(Y,Q,null,{allOwnKeys:!0}),Y.create=function(G){return i1(y($,G))},Y}var U=i1(i);U.Axios=N0;U.CanceledError=b;U.CancelToken=p1;U.isCancel=G0;U.VERSION=D0;U.toFormData=h;U.AxiosError=P;U.Cancel=U.CanceledError;U.all=function(Q){return Promise.all(Q)};U.spread=r0;U.isAxiosError=o0;U.mergeConfig=y;U.AxiosHeaders=q;U.formToJSON=($)=>w0(X.isHTMLForm($)?new FormData($):$);U.getAdapter=q0.getAdapter;U.HttpStatusCode=n1;U.default=U;var B=U;var $1={};N1($1,{updateTemplate:()=>o5,updateOrgMember:()=>i5,updateOrg:()=>u5,updateCurrentUserEmail:()=>G2,updateCurrentUser:()=>Q2,updateAgentStatus:()=>E5,updateAgent:()=>q5,signup:()=>j5,revokeApiKey:()=>C5,removeOrgMember:()=>n5,logoutAll:()=>A5,logout:()=>x5,login:()=>k5,listUserTemplates:()=>z2,listUserAgents:()=>Y2,listOrgs:()=>m5,listOrgTemplates:()=>t5,listOrgMembers:()=>l5,listOrgAgents:()=>c5,listMessages:()=>v5,listConversations:()=>D5,listApiKeys:()=>O5,getUser:()=>W2,getTemplate:()=>r5,getOrg:()=>g5,getCurrentUser:()=>$2,getConversation:()=>b5,getAgent:()=>R5,deleteTemplate:()=>s5,deleteOrg:()=>f5,deleteCurrentUser:()=>e5,deleteConversation:()=>y5,deleteAgent:()=>U5,createUserTemplate:()=>X2,createUserAgent:()=>Z2,createOrgTemplate:()=>a5,createOrgAgent:()=>d5,createOrg:()=>h5,createApiKey:()=>T5,compileAgent:()=>S5,addOrgMember:()=>p5,UpdateStatusBodyStatus:()=>F5,UpdateMemberBodyRole:()=>w5,AddMemberBodyRole:()=>_5});var _5={admin:"admin",member:"member",viewer:"viewer"},w5={owner:"owner",admin:"admin",member:"member",viewer:"viewer"},F5={draft:"draft",live:"live",archived:"archived"},U5=($,Q)=>{return B.delete(`/agents/${$}`,Q)},R5=($,Q)=>{return B.get(`/agents/${$}`,Q)},q5=($,Q,Y)=>{return B.patch(`/agents/${$}`,Q,Y)},S5=($,Q,Y)=>{return B.post(`/agents/${$}/compile`,Q,Y)},D5=($,Q,Y)=>{return B.get(`/agents/${$}/conversations`,{...Y,params:{...Q,...Y?.params}})},E5=($,Q,Y)=>{return B.patch(`/agents/${$}/status`,Q,Y)},O5=($)=>{return B.get("/auth/api-keys",$)},T5=($,Q)=>{return B.post("/auth/api-keys",$,Q)},C5=($,Q)=>{return B.delete(`/auth/api-keys/${$}`,Q)},A5=($)=>{return B.delete("/auth/sessions",$)},k5=($,Q)=>{return B.post("/auth/sessions",$,Q)},x5=($)=>{return B.delete("/auth/sessions/me",$)},j5=($,Q)=>{return B.post("/auth/signup",$,Q)},y5=($,Q)=>{return B.delete(`/conversations/${$}`,Q)},b5=($,Q)=>{return B.get(`/conversations/${$}`,Q)},v5=($,Q,Y)=>{return B.get(`/conversations/${$}/messages`,{...Y,params:{...Q,...Y?.params}})},m5=($)=>{return B.get("/orgs",$)},h5=($,Q)=>{return B.post("/orgs",$,Q)},f5=($,Q)=>{return B.delete(`/orgs/${$}`,Q)},g5=($,Q)=>{return B.get(`/orgs/${$}`,Q)},u5=($,Q,Y)=>{return B.patch(`/orgs/${$}`,Q,Y)},c5=($,Q,Y)=>{return B.get(`/orgs/${$}/agents`,{...Y,params:{...Q,...Y?.params}})},d5=($,Q,Y)=>{return B.post(`/orgs/${$}/agents`,Q,Y)},l5=($,Q)=>{return B.get(`/orgs/${$}/members`,Q)},p5=($,Q,Y)=>{return B.post(`/orgs/${$}/members`,Q,Y)},n5=($,Q,Y)=>{return B.delete(`/orgs/${$}/members/${Q}`,Y)},i5=($,Q,Y,Z)=>{return B.patch(`/orgs/${$}/members/${Q}`,Y,Z)},t5=($,Q,Y)=>{return B.get(`/orgs/${$}/templates`,{...Y,params:{...Q,...Y?.params}})},a5=($,Q,Y)=>{return B.post(`/orgs/${$}/templates`,Q,Y)},s5=($,Q)=>{return B.delete(`/templates/${$}`,Q)},r5=($,Q)=>{return B.get(`/templates/${$}`,Q)},o5=($,Q,Y)=>{return B.patch(`/templates/${$}`,Q,Y)},e5=($)=>{return B.delete("/users/me",$)},$2=($)=>{return B.get("/users/me",$)},Q2=($,Q)=>{return B.patch("/users/me",$,Q)},Y2=($,Q)=>{return B.get("/users/me/agents",{...Q,params:{...$,...Q?.params}})},Z2=($,Q)=>{return B.post("/users/me/agents",$,Q)},G2=($,Q)=>{return B.patch("/users/me/email",$,Q)},z2=($,Q)=>{return B.get("/users/me/templates",{...Q,params:{...$,...Q?.params}})},X2=($,Q)=>{return B.post("/users/me/templates",$,Q)},W2=($,Q)=>{return B.get(`/users/${$}`,Q)};class O0{_transport;_conversationId;_closed=!1;_onEvent;_pendingAudioMetadata=null;_remainingMs=0;_elapsedMs=0;get conversationId(){return this._conversationId}get remainingMs(){return this._remainingMs}get elapsedMs(){return this._elapsedMs}get closed(){return this._closed}constructor($,Q,Y){this._transport=$,this._conversationId=Q,this._onEvent=Y.onEvent,this.#$()}sendText($){if(this._closed){console.warn("Cannot send text: session is closed");return}this._transport.send({type:"input_text",text:$})}sendAudio($){if(this._closed){console.warn("Cannot send audio: session is closed");return}this._transport.send({type:"input_audio"}),this._transport.sendBinary($)}streamAudio($){if(this._closed){console.warn("Cannot stream audio: session is closed");return}this._transport.send({type:"input_audio_stream"}),this._transport.sendBinary($)}cancelRequest(){if(this._closed){console.warn("Cannot cancel request: session is closed");return}this._transport.send({type:"cancel"})}end(){if(this._closed){console.warn("Cannot end session: session is closed");return}this._transport.send({type:"end"})}close(){if(this._closed)return;this._closed=!0,this._transport.close()}#$(){this._transport.onMessage(($)=>{let Q=$;if(Q.type==="audio_delta"){this._pendingAudioMetadata={size:Q.size};return}if(Q.type==="tick")this._remainingMs=Q.remaining_ms,this._elapsedMs=Q.elapsed_ms;if(Q.type==="session_closed")this._closed=!0;this._onEvent?.(Q)}),this._transport.onBinary(($)=>{if(this._pendingAudioMetadata){let Q={type:"audio_delta",size:this._pendingAudioMetadata.size,audio:$};this._pendingAudioMetadata=null,this._onEvent?.(Q)}}),this._transport.onClose(()=>{if(this._closed)return;this._closed=!0,this._onEvent?.({type:"connection_lost",reason:"socket_closed"})}),this._transport.onError(()=>{if(this._closed)return;this._closed=!0,this._onEvent?.({type:"connection_lost",reason:"socket_error"})})}}class f extends Error{code;constructor($,Q="TRANSPORT_ERROR"){super($);this.code=Q;this.name="ConversationTransportError"}}class Q1{_ws;_closed=!1;_onMessage=null;_onBinary=null;_onError=null;_onClose=null;constructor($){this._ws=$}async connect(){if(this._ws.readyState===WebSocket.OPEN)throw new f("Already connected","ALREADY_CONNECTED");if(this._ws.readyState===WebSocket.CLOSING||this._ws.readyState===WebSocket.CLOSED)throw new f("Socket is closing or closed","SOCKET_CLOSED");return new Promise(($,Q)=>{let Y,Z;Y=()=>{this._ws.removeEventListener("open",Y),this._ws.removeEventListener("error",Z),this.#$(),$()},Z=()=>{this._ws.removeEventListener("open",Y),this._ws.removeEventListener("error",Z),Q(new f("Connection failed","CONNECTION_FAILED"))},this._ws.addEventListener("open",Y),this._ws.addEventListener("error",Z)})}send($){if(this._ws.readyState!==WebSocket.OPEN)throw new f("Not connected","NOT_CONNECTED");this._ws.send(JSON.stringify($))}async sendBinary($){if(this._ws.readyState!==WebSocket.OPEN)throw new f("Not connected","NOT_CONNECTED");let Q=await $.arrayBuffer();this._ws.send(Q)}onMessage($){this._onMessage=$}onBinary($){this._onBinary=$}onError($){this._onError=$}onClose($){this._onClose=$}close(){if(this._closed)return;if(this._closed=!0,this._ws.readyState===WebSocket.OPEN||this._ws.readyState===WebSocket.CONNECTING)this._ws.close();this._onClose?.()}#$(){this._ws.addEventListener("message",($)=>{if($.data instanceof Blob)this._onBinary?.($.data);else if($.data instanceof ArrayBuffer)this._onBinary?.(new Blob([$.data]));else if(typeof $.data==="string")try{let Q=JSON.parse($.data);this._onMessage?.(Q)}catch(Q){console.warn("Failed to parse JSON message:",$.data,Q)}}),this._ws.addEventListener("error",()=>{if(this._closed)return;this._onError?.(new f("WebSocket error")),this.close()}),this._ws.addEventListener("close",()=>{if(this._closed)return;this.close()})}}class Y1{#$;constructor($){this.#$=$}async connect($){let Q=this.#Q("/conversations/ws"),Y=new Q1(new WebSocket(Q));return await Y.connect(),Y.send({type:"handshake",agent_id:$.agent_id,channel:$.channel}),new Promise((Z,G)=>{let W=!1;Y.onMessage((z)=>{switch(z.type){case"handshake_ok":W=!0,$.onConnection?.(z),Z(new O0(Y,z.conversation_id,$));break;case"handshake_error":W=!0,$.onConnection?.(z),Y.close(),G(Error(`Handshake rejected: ${z.reason}`));break;default:}}),Y.onError((z)=>{if(!W)G(z)}),Y.onClose(()=>{if(!W)G(Error("Connection lost during handshake"))})})}#Q($){return`${this.#$.replace(/^https:\/\//,"wss://").replace(/^http:\/\//,"ws://").replace(/\/$/,"")}${$}`}}var t1="https://server.kivox.com.co";function a1($,Q){$.interceptors.request.use((G)=>G),B.defaults.baseURL=Q,B.defaults.withCredentials=$.defaults.withCredentials??!1;let Y=$.defaults.headers?.Authorization;if(Y)B.defaults.headers.common.Authorization=Y;let Z={realtime:new Y1(Q)};return new Proxy({...Z},{get(G,W){if(W in G)return G[W];let z=$1[W];if(typeof z==="function")return(...J)=>z(...J,{axios:$});return z}})}function _7({baseUrl:$=t1}={}){let Q=B.create({baseURL:$,withCredentials:!0});return a1(Q,$)}function w7({apiKey:$,baseUrl:Q=t1}){let Y=B.create({baseURL:Q,headers:{Authorization:`Bearer ${$}`}});return a1(Y,Q)}export{_7 as createSessionClient,w7 as createApiKeyClient,f as ConversationTransportError,O0 as ConversationSession};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kivox/client",
3
- "version": "0.1.0-beta.30",
3
+ "version": "0.1.0-beta.31",
4
4
  "description": "JavaScript/TypeScript client SDK for Kivox",
5
5
  "homepage": "https://github.com/ekisa-team/kivox#readme",
6
6
  "bugs": {