tia-chatbot 1.1.0 → 1.1.1

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.
@@ -351,5 +351,5 @@ class StreamProcessor extends AudioWorkletProcessor {
351
351
  }
352
352
 
353
353
  registerProcessor('stream_processor', StreamProcessor);
354
- `,$V=new Blob([ZV],{type:"application/javascript"}),tI=URL.createObjectURL($V),eI=tI,Cv=class{constructor({sampleRate:e=24e3,onStop:t}={}){this.scriptSrc=eI,this.onStop=t,this.sampleRate=e,this.context=null,this.stream=null,this.analyser=null,this.trackSampleOffsets={},this.interruptedTrackIds={}}async connect(){this.context=new AudioContext({sampleRate:this.sampleRate}),this.context.state==="suspended"&&await this.context.resume();try{await this.context.audioWorklet.addModule(this.scriptSrc)}catch(t){throw console.error(t),new Error(`Could not add audioWorklet module: ${this.scriptSrc}`)}let e=this.context.createAnalyser();return e.fftSize=8192,e.smoothingTimeConstant=.1,this.analyser=e,!0}getFrequencies(e="frequency",t=-100,n=-30){if(!this.analyser)throw new Error("Not connected, please call .connect() first");return Pc.getFrequencies(this.analyser,this.sampleRate,null,e,t,n)}_start(){let e=new AudioWorkletNode(this.context,"stream_processor");return e.connect(this.context.destination),e.port.onmessage=t=>{let{event:n}=t.data;if(n==="stop")this.onStop?.(),e.disconnect(),this.stream=null;else if(n==="offset"){let{requestId:i,trackId:o,offset:l}=t.data,u=l/this.sampleRate;this.trackSampleOffsets[i]={trackId:o,offset:l,currentTime:u}}},this.analyser.disconnect(),e.connect(this.analyser),this.stream=e,!0}add16BitPCM(e,t="default"){if(typeof t!="string")throw new Error("trackId must be a string");if(this.interruptedTrackIds[t])return;this.stream||this._start();let n;if(e instanceof Int16Array)n=e;else if(e instanceof ArrayBuffer)n=new Int16Array(e);else throw new Error("argument must be Int16Array or ArrayBuffer");return this.stream.port.postMessage({event:"write",buffer:n,trackId:t}),n}async getTrackSampleOffset(e=!1){if(!this.stream)return null;let t=crypto.randomUUID();this.stream.port.postMessage({event:e?"interrupt":"offset",requestId:t});let n;for(;!n;)n=this.trackSampleOffsets[t],await new Promise(o=>setTimeout(()=>o(),1));let{trackId:i}=n;return e&&i&&(this.interruptedTrackIds[i]=!0),n}async interrupt(){return this.getTrackSampleOffset(!0)}};globalThis.WavStreamPlayer=Cv;var Rv=le({key:"ThreadIdToResume",default:void 0}),nI=le({key:"ResumeThreadErrorState",default:void 0}),kv=le({key:"ChatProfile",default:void 0}),Vv=le({key:"SessionId",default:Zu()}),Oc=Ng({key:"SessionIdSelector",get:({get:e})=>e(Vv),set:({set:e},t)=>e(Vv,t instanceof WR?Zu():t)}),Nc=le({key:"Session",dangerouslyAllowMutability:!0,default:void 0}),Lc=le({key:"Actions",default:[]}),Uc=le({key:"Messages",dangerouslyAllowMutability:!0,default:[]}),rI=le({key:"Commands",default:[]}),Iv=le({key:"TokenCount",default:0}),Fc=le({key:"Loading",default:!1}),Bc=le({key:"AskUser",default:void 0}),iI=le({key:"WavRecorder",dangerouslyAllowMutability:!0,default:new Tv}),sI=le({key:"WavStreamPlayer",dangerouslyAllowMutability:!0,default:new Cv}),oI=le({key:"AudioConnection",default:"off"}),aI=le({key:"isAiSpeaking",default:!1}),Mv=le({key:"CallFn",default:void 0}),oa=le({key:"ChatSettings",default:[]}),Dv=Ng({key:"ChatSettingsValue/Default",get:({get:e})=>{let t=e(oa),n=(i,o)=>(Array.isArray(i)&&i.forEach(l=>{l&&(Array.isArray(l?.inputs)&&l.inputs.length>0?n(l.inputs,o):l?.id!==void 0&&(o[l.id]=l.initial))}),o);return n(t,{})}}),aa=le({key:"ChatSettingsValue",default:Dv}),qc=le({key:"DisplayElements",default:[]}),Wc=le({key:"TasklistElements",default:[]}),_c=le({key:"FirstUserInteraction",default:void 0}),lI=le({key:"User",default:void 0}),uI=le({key:"ChainlitConfig",default:void 0}),cI=le({key:"AuthConfig",default:void 0}),fI=le({key:"ThreadHistory",default:{threads:void 0,currentThreadId:void 0,timeGroupedThreads:void 0,pageInfo:void 0},effects:[({setSelf:e,onSet:t})=>{t((n,i)=>{let o=n?.timeGroupedThreads;n?.threads&&!Ni.isEqual(n.threads,i?.timeGroupedThreads)&&(o=HV(n.threads)),e({...n,timeGroupedThreads:o})})}]}),Pv=le({key:"SideView",default:void 0}),zc=le({key:"CurrentThreadId",default:void 0}),dI=e=>({setSelf:t,onSet:n})=>{let i=localStorage.getItem(e);if(i!=null)try{t(JSON.parse(i))}catch(o){console.error(`Error parsing localStorage value for key "${e}":`,o)}n((o,l,u)=>{u?localStorage.removeItem(e):localStorage.setItem(e,JSON.stringify(o))})},hI=le({key:"Mcp",default:[],effects:[dI("mcp_storage_key")]}),pI=()=>{let e=Ve(Fc),t=Ve(qc),n=Ve(Wc),i=Ve(Lc),o=Ve(Nc),l=Ve(Bc),u=Ve(Mv),c=Ve(oa),d=Ve(aa),h=Ve(Dv),p=o?.socket.connected&&!o?.error,g=!p||e||l?.spec.type==="file"||l?.spec.type==="action"||l?.spec.type==="element";return{actions:i,askUser:l,callFn:u,chatSettingsDefaultValue:h,chatSettingsInputs:c,chatSettingsValue:d,connected:p,disabled:g,elements:t,error:o?.error,loading:e,tasklists:n}},Ui=(e,t)=>la(e,t.id)?Kc(e,t.id,t):"parentId"in t&&t.parentId?Nv(e,t.parentId,t):"indent"in t&&t.indent&&t.indent>0?Ov(e,t.indent,t):[...e,t],Ov=(e,t,n,i=0)=>{let o=[...e];if(o.length===0)return[...o,n];{let l=o.length-1,u=o[l];return u.steps=u.steps||[],i+1===t?(u.steps=[...u.steps,n],o[l]={...u},o):(u.steps=Ov(u.steps,t,n,i+1),o[l]={...u},o)}},Nv=(e,t,n)=>{let i=[...e];for(let o=0;o<i.length;o++){let l=i[o];Ni.isEqual(l.id,t)?(l.steps=l.steps?[...l.steps,n]:[n],i[o]={...l}):la(i,t)&&l.steps&&(l.steps=Nv(l.steps,t,n),i[o]={...l})}return i},Lv=(e,t)=>{for(let n of e){if(Ni.isEqual(n.id,t))return n;if(n.steps&&n.steps.length>0){let i=Lv(n.steps,t);if(i)return i}}},la=(e,t)=>Lv(e,t)!==void 0,Kc=(e,t,n)=>{let i=[...e];for(let o=0;o<i.length;o++){let l=i[o];Ni.isEqual(l.id,t)?i[o]={steps:l.steps,...n}:la(i,t)&&l.steps&&(l.steps=Kc(l.steps,t,n),i[o]={...l})}return i},Uv=(e,t)=>{let n=[...e];for(let i=0;i<n.length;i++){let o=n[i];o.id===t?n=[...n.slice(0,i),...n.slice(i+1)]:la(n,t)&&o.steps&&(o.steps=Uv(o.steps,t),n[i]={...o})}return n},Fv=(e,t,n,i,o)=>{let l=[...e];for(let u=0;u<l.length;u++){let c=l[u];Ni.isEqual(c.id,t)?("content"in c&&c.content!==void 0?i?c.content=n:c.content+=n:o?"input"in c&&c.input!==void 0&&(i?c.input=n:c.input+=n):"output"in c&&c.output!==void 0&&(i?c.output=n:c.output+=n),l[u]={...c}):c.steps&&(c.steps=Fv(c.steps,t,n,i,o),l[u]={...c})}return l},ua=()=>{let[e,t]=Oi(cI),[n,i]=Oi(lI),o=he(fI);return{authConfig:e,setAuthConfig:t,user:n,setUser:i,setThreadHistory:o}},mI=async(e,t)=>(await e.get(t))?.json(),gI=e=>{let t=new Hc("","webapp");return Object.assign(t,e),t};function ca(e,{...t}={}){let n=S.useContext(Ns),{setUser:i}=ua(),o=S.useMemo(()=>([u])=>{t.onErrorRetry||(t.onErrorRetry=(...d)=>{let[h]=d;if(h.status===401){i(null);return}return Ek.defaultValue.onErrorRetry(...d)});let c=gI(n);return c.on401=c.onError=void 0,mI(c,u)},[n]),l=S.useMemo(()=>e?[e]:null,[e]);return Tk(l,o,t)}var vI=()=>{let{authConfig:e,setAuthConfig:t}=ua(),{data:n,isLoading:i}=ca(e?null:"/auth/config");return S.useEffect(()=>{n&&t(n)},[n,t]),{authConfig:e,isLoading:i}},yI=()=>{let e=S.useContext(Ns),{setUser:t,setThreadHistory:n}=ua();return{logout:async(i=!1)=>{await e.logout(),t(void 0),n(void 0),i&&window.location.reload()}}},wI=()=>{let{user:e,setUser:t}=ua(),{data:n,error:i,mutate:o}=ca("/user");return S.useEffect(()=>{n&&t(n)},[n,t]),S.useEffect(()=>{i&&t(null)},[i]),{user:e,setUserFromAPI:o}},Bv=()=>{let{authConfig:e}=vI(),{logout:t}=yI(),{user:n,setUserFromAPI:i}=wI(),o=!!e&&(!e.requireLogin||n!==void 0);return e&&!e.requireLogin?{data:e,user:null,isReady:o,isAuthenticated:!0,logout:()=>Promise.resolve(),setUserFromAPI:()=>Promise.resolve()}:{data:e,user:n,isReady:o,isAuthenticated:!!n,logout:t,setUserFromAPI:i}},qv=class extends Error{constructor(e,t,n){super(e),this.status=t,this.detail=n}toString(){return this.detail?`${this.message}: ${this.detail}`:this.message}},bI=class{constructor(e,t,n,i,o){this.httpEndpoint=e,this.type=t,this.additionalQueryParams=n,this.on401=i,this.onError=o}buildEndpoint(e){let t=`${this.httpEndpoint}${e}`;this.httpEndpoint.endsWith("/")&&(t=`${this.httpEndpoint.slice(0,-1)}${e}`);let n=new URL(t);if(this.additionalQueryParams){let i=new URLSearchParams(this.additionalQueryParams),o=n.search?"&":"?";n.search=n.search+`${o}${i.toString()}`}return n.toString()}async getDetailFromErrorResponse(e){try{return(await e.json())?.detail}catch(t){console.error("Unable to parse error response",t)}}handleRequestError(e){e instanceof qv&&(e.status===401&&this.on401&&this.on401(),this.onError&&this.onError(e)),console.error(e)}async fetch(e,t,n,i,o={}){try{let l;n instanceof FormData?l=n:(o["Content-Type"]="application/json",l=n?JSON.stringify(n):null);let u=await fetch(this.buildEndpoint(t),{method:e,credentials:"include",headers:o,signal:i,body:l});if(!u.ok){let c=await this.getDetailFromErrorResponse(u);throw new qv(u.statusText,u.status,c)}return u}catch(l){throw this.handleRequestError(l),l}}async get(e){return await this.fetch("GET",e)}async post(e,t,n){return await this.fetch("POST",e,t,n)}async put(e,t){return await this.fetch("PUT",e,t)}async patch(e,t){return await this.fetch("PATCH",e,t)}async delete(e,t){return await this.fetch("DELETE",e,t)}},Hc=class extends bI{async headerAuth(e){return e?(await this.fetch("POST","/auth/header",void 0,void 0,{Authorization:`Bearer ${e}`})).json():(await this.post("/auth/header",{})).json()}async jwtAuth(e){return(await this.fetch("POST","/auth/jwt",void 0,void 0,{Authorization:`Bearer ${e}`})).json()}async stickyCookie(e){return(await this.fetch("POST","/set-session-cookie",{session_id:e})).json()}async passwordAuth(e){return(await this.post("/login",e)).json()}async getUser(){return(await this.get("/user")).json()}async logout(){return(await this.post("/logout",{})).json()}async setFeedback(e,t){return(await this.put("/feedback",{feedback:e,sessionId:t})).json()}async deleteFeedback(e){return(await this.delete("/feedback",{feedbackId:e})).json()}async listThreads(e,t){return(await this.post("/project/threads",{pagination:e,filter:t})).json()}async renameThread(e,t){return(await this.put("/project/thread",{threadId:e,name:t})).json()}async deleteThread(e){return(await this.delete("/project/thread",{threadId:e})).json()}uploadFile(e,t,n,i){let o=new XMLHttpRequest;o.withCredentials=!0;let l=new Promise((u,c)=>{let d=new FormData;d.append("file",e);let h=i?`&ask_parent_id=${i}`:"";o.open("POST",this.buildEndpoint(`/project/file?session_id=${n}${h}`),!0),o.upload.onprogress=function(p){if(p.lengthComputable){let g=p.loaded/p.total*100;t(g)}},o.onload=function(){if(o.status===200){let g=JSON.parse(o.responseText);u(g);return}let p=o.getResponseHeader("Content-Type");if(p&&p.includes("application/json")){let g=JSON.parse(o.responseText);c(g.detail)}else c("Upload failed")},o.onerror=function(){c("Upload error")},o.send(d)});return{xhr:o,promise:l}}async callAction(e,t){return(await this.post("/project/action",{sessionId:t,action:e})).json()}async updateElement(e,t){return(await this.put("/project/element",{sessionId:t,element:e})).json()}async deleteElement(e,t){return(await this.delete("/project/element",{sessionId:t,element:e})).json()}async connectStdioMCP(e,t,n){return(await this.post("/mcp",{sessionId:e,name:t,fullCommand:n,clientType:"stdio"})).json()}async connectSseMCP(e,t,n,i){return(await this.post("/mcp",{sessionId:e,name:t,url:n,...i?{headers:i}:{},clientType:"sse"})).json()}async connectStreamableHttpMCP(e,t,n,i){return(await this.post("/mcp",{sessionId:e,name:t,url:n,...i?{headers:i}:{},clientType:"streamable-http"})).json()}async disconnectMcp(e,t){return(await this.delete("/mcp",{sessionId:e,name:t})).json()}getElementUrl(e,t){let n=`?session_id=${t}`;return this.buildEndpoint(`/project/file/${e}${n}`)}getLogoEndpoint(e,t){return t||this.buildEndpoint(`/logo?theme=${e}`)}getOAuthEndpoint(e){return this.buildEndpoint(`/auth/oauth/${e}`)}async shareThread(e,t){return(await this.put("/project/thread/share",{threadId:e,isShared:t})).json()}},Ns=S.createContext(new Hc("http://localhost:8000","webapp")),Wv=()=>{let e=S.useContext(Ns),t=Ve(Nc),n=Ve(Bc),i=Ve(Oc),o=zo(oa),l=zo(Oc),u=zo(aa),c=he(_c),d=he(Fc),h=he(Uc),p=he(qc),g=he(Wc),b=he(Lc),y=he(Iv),C=he(Rv),R=he(Pv),B=he(zc),O=S.useCallback(()=>{t?.socket.emit("clear_session"),t?.socket.disconnect(),C(void 0),l(),c(void 0),h([]),p([]),g([]),b([]),y(0),o(),u(),R(void 0),B(void 0)},[t]),M=S.useCallback((ut,qt=[])=>{ut.id||(ut.id=Zu()),ut.createdAt||(ut.createdAt=new Date().toISOString()),h(St=>Ui(St,ut)),t?.socket.emit("client_message",{message:ut,fileReferences:qt})},[t?.socket]),N=S.useCallback(ut=>{t?.socket.emit("edit_message",{message:ut})},[t?.socket]),G=S.useCallback(ut=>{t?.socket.emit("window_message",ut)},[t?.socket]),_=S.useCallback(()=>{t?.socket.emit("audio_start")},[t?.socket]),J=S.useCallback((ut,qt,St,wt)=>{t?.socket.emit("audio_chunk",{isStart:ut,mimeType:qt,elapsedTime:St,data:wt})},[t?.socket]),X=S.useCallback(()=>{t?.socket.emit("audio_end")},[t?.socket]),j=S.useCallback(ut=>{n&&(n.parentId&&(ut.parentId=n.parentId),h(qt=>Ui(qt,ut)),n.callback(ut))},[n]),yt=S.useCallback(ut=>{t?.socket.emit("chat_settings_change",ut)},[t?.socket]),ft=S.useCallback(()=>{h(ut=>ut.map(qt=>(qt.streaming=!1,qt))),d(!1),t?.socket.emit("stop")},[t?.socket]);return{uploadFile:S.useCallback((ut,qt,St)=>e.uploadFile(ut,qt,i,St),[i]),clear:O,replyMessage:j,sendMessage:M,editMessage:N,windowMessage:G,startAudioStream:_,sendAudioChunk:J,endAudioStream:X,stopTask:ft,setIdToResume:C,updateChatSettings:yt}},xI=()=>{let e=Ve(Uc),t=Ve(_c);return{threadId:Ve(zc),messages:e,firstInteraction:t}},_v=()=>{let e=S.useContext(Ns),t=Ve(Oc),[n,i]=Oi(Nc),o=he(aI),l=he(oI),u=zo(aa),c=he(aa),d=he(_c),h=he(Fc),p=he(hI),g=Ve(sI),b=Ve(iI),y=he(Uc),C=he(Bc),R=he(Mv),B=he(rI),O=he(Pv),M=he(qc),N=he(Wc),G=he(Lc),_=he(oa),J=he(Iv),[X,j]=Oi(kv),yt=Ve(Rv),ft=he(nI),[ut,qt]=Oi(zc);S.useEffect(()=>{n?.socket&&(n.socket.auth.threadId=ut||"")},[ut]);let St=S.useCallback(async({transports:Zt,userEnv:xt})=>{let{protocol:Ot,host:ht,pathname:at}=new URL(e.httpEndpoint),pt=`${Ot}//${ht}`,V=at&&at!=="/"?`${at}/ws/socket.io`:"/ws/socket.io";try{await e.stickyCookie(t)}catch(T){console.error(`Failed to set sticky session cookie: ${T}`)}let L=ra(pt,{path:V,withCredentials:!0,transports:Zt,auth:{clientType:e.type,sessionId:t,threadId:yt||"",userEnv:JSON.stringify(xt),chatProfile:X?encodeURIComponent(X):""}});i(T=>(T?.socket?.removeAllListeners(),T?.socket?.close(),{socket:L})),L.on("connect",()=>{L.emit("connection_successful"),i(T=>({...T,error:!1})),p(T=>T.map(F=>{let W;return F.clientType==="sse"?W=e.connectSseMCP(t,F.name,F.url):F.clientType==="streamable-http"?W=e.connectStreamableHttpMCP(t,F.name,F.url,F.headers||{}):W=e.connectStdioMCP(t,F.name,F.command),W.then(async({success:$,mcp:Z})=>{p(bt=>bt.map(Dt=>Dt.name===Z.name?{...Dt,status:$?"connected":"failed",tools:Z?Z.tools:Dt.tools}:Dt))}).catch(()=>{p($=>$.map(Z=>Z.name===F.name?{...Z,status:"failed"}:Z))}),{...F,status:"connecting"}}))}),L.on("connect_error",T=>{i(F=>({...F,error:!0}))}),L.on("task_start",()=>{h(!0)}),L.on("task_end",()=>{h(!1)}),L.on("reload",()=>{L.emit("clear_session"),window.location.reload()}),L.on("audio_connection",async T=>{if(T==="on"){let F=!0,W=Date.now(),$="pcm16";await b.begin(),await g.connect(),await b.record(async Z=>{let bt=Date.now()-W;L.emit("audio_chunk",{isStart:F,mimeType:$,elapsedTime:bt,data:Z.mono}),F=!1}),g.onStop=()=>o(!1)}else await b.end(),await g.interrupt();l(T)}),L.on("audio_chunk",T=>{g.add16BitPCM(T.data,T.track),o(!0)}),L.on("audio_interrupt",()=>{g.interrupt()}),L.on("resume_thread",T=>{let F=!!T?.metadata?.viewer_read_only;!F&&yt&&T.id!==yt&&(window.location.href=`/thread/${T.id}`),!F&&yt&&qt(T.id);let W=[];for(let Z of T.steps)W=Ui(W,Z);T.metadata?.chat_profile&&j(T.metadata?.chat_profile),T.metadata?.chat_settings&&c(T.metadata?.chat_settings),y(W);let $=T.elements||[];N($.filter(Z=>Z.type==="tasklist")),M($.filter(Z=>["avatar","tasklist"].indexOf(Z.type)===-1))}),L.on("resume_thread_error",T=>{ft(T)}),L.on("new_message",T=>{y(F=>Ui(F,T))}),L.on("first_interaction",T=>{d(T.interaction),qt(T.thread_id)}),L.on("update_message",T=>{y(F=>Kc(F,T.id,T))}),L.on("delete_message",T=>{y(F=>Uv(F,T.id))}),L.on("stream_start",T=>{y(F=>Ui(F,T))}),L.on("stream_token",({id:T,token:F,isSequence:W,isInput:$})=>{y(Z=>Fv(Z,T,F,W,$))}),L.on("ask",({msg:T,spec:F},W)=>{C({spec:F,callback:W,parentId:T.parentId}),y($=>Ui($,T)),h(!1)}),L.on("ask_timeout",()=>{C(void 0),h(!1)}),L.on("clear_ask",()=>{C(void 0)}),L.on("call_fn",({name:T,args:F},W)=>{R({name:T,args:F,callback:W})}),L.on("clear_call_fn",()=>{R(void 0)}),L.on("call_fn_timeout",()=>{R(void 0)}),L.on("chat_settings",T=>{_(T),u()}),L.on("set_commands",T=>{B(T)}),L.on("set_sidebar_title",T=>{O(F=>F?.title===T?F:{title:T,elements:F?.elements||[]})}),L.on("set_sidebar_elements",({elements:T,key:F})=>{T.length?(T.forEach(W=>{!W.url&&W.chainlitKey&&(W.url=e.getElementUrl(W.chainlitKey,t))}),O(W=>W?.key===F?W:{title:W?.title||"",elements:T,key:F})):O(void 0)}),L.on("element",T=>{!T.url&&T.chainlitKey&&(T.url=e.getElementUrl(T.chainlitKey,t)),T.type==="tasklist"?N(F=>{let W=F.findIndex($=>$.id===T.id);return W===-1?[...F,T]:[...F.slice(0,W),T,...F.slice(W+1)]}):M(F=>{let W=F.findIndex($=>$.id===T.id);return W===-1?[...F,T]:[...F.slice(0,W),T,...F.slice(W+1)]})}),L.on("remove_element",T=>{M(F=>F.filter(W=>W.id!==T.id)),N(F=>F.filter(W=>W.id!==T.id))}),L.on("action",T=>{G(F=>[...F,T])}),L.on("remove_action",T=>{G(F=>{let W=F.findIndex($=>$.id===T.id);return W===-1?F:[...F.slice(0,W),...F.slice(W+1)]})}),L.on("token_usage",T=>{J(F=>F+T)}),L.on("window_message",T=>{window.parent&&window.parent.postMessage(T,"*")}),L.on("toast",T=>{if(!T.message){console.warn("No message received for toast.");return}switch(T.type){case"info":Os.info(T.message);break;case"error":Os.error(T.message);break;case"success":Os.success(T.message);break;case"warning":Os.warning(T.message);break;default:Os(T.message);break}})},[i,t,yt,X]),wt=S.useCallback(Ni.debounce(St,200),[St]),ee=S.useCallback(()=>{n?.socket&&(n.socket.removeAllListeners(),n.socket.close())},[n]);return{connect:wt,disconnect:ee,session:n,sessionId:t,chatProfile:X,idToResume:yt,setChatProfile:j}},zv=()=>{let[e,t]=Oi(uI),{isAuthenticated:n}=Bv(),i=Ve(kv),o=navigator.language||"en-US",l=S.useRef(i),u=n?`/project/settings?language=${o}${i?`&chat_profile=${encodeURIComponent(i)}`:""}`:null,c=n&&!e,{data:d,error:h,isLoading:p}=ca(c?u:null);return S.useEffect(()=>{d&&t(d)},[d,t]),S.useEffect(()=>{l.current!==i&&(t(void 0),l.current=i)},[i,t]),{config:e,error:h,isLoading:p,language:o}};const SI=["Dress Code Policy","Team Lunch Policy","Leave Policy","Performance Review","Rewards and Recognition","Referral Policy"],AI=()=>{const[e,t]=S.useState(""),[n,i]=S.useState(!1),[o,l]=S.useState(!1),{user:u}=Bv(),{sendMessage:c}=Wv(),{connected:d,loading:h}=pI(),{messages:p}=xI(),{connect:g,disconnect:b}=_v(),y=S.useRef(null),C=S.useRef(!1);S.useEffect(()=>{if(!C.current)return C.current=!0,g({userEnv:{}}),()=>{b()}},[]),S.useEffect(()=>{y.current?.scrollIntoView({behavior:"smooth"})},[p,h]);const R=S.useMemo(()=>{const M=[],N=G=>{(G.type==="user_message"||G.type==="assistant_message")&&typeof G.output=="string"&&G.output.trim().length>0&&M.push({id:G.id,sender:G.type==="user_message"?"user":"assistant",text:G.output}),G.steps&&G.steps.length&&G.steps.forEach(N)};return p.forEach(N),M},[p]),B=M=>{!M.trim()||!d||(c({type:"user_message",output:M.trim(),name:u?.identifier||"User"}),i(!0))},O=(M,N)=>{B(N?e:M),t("")};return nt.jsxs("div",{className:`text-gray-700 flex z-10 flex-col items-start ${n?"p-0":"p-4"} w-full`,children:[!n&&!o&&nt.jsxs(nt.Fragment,{children:[nt.jsx("h1",{className:"fs18 font-extrabold mx-auto bg-linear-to-l from-[#F56057] via-[#A03F39] to-[#283068] bg-clip-text text-transparent",children:"Hi, Ishani Ganguly"}),nt.jsx(aA,{}),nt.jsxs("div",{className:"bg-[#F5605724] rounded-lg w-full flex items-center justify-between px-3 mt-3 cursor-pointer",onClick:()=>l(!0),children:[nt.jsxs("div",{className:"flex items-center gap-x-2",children:[nt.jsx("img",{src:lA,alt:"history",className:"py-3"}),nt.jsx("p",{className:"fs14 font-semibold text-black",children:"Chat History"})]}),nt.jsx("img",{src:uA,alt:"link"})]}),nt.jsx("div",{className:"flex flex-wrap gap-x-4 gap-y-2 mt-4",children:SI.map(M=>nt.jsx("div",{onClick:()=>O(M),className:"py-2 px-4 bg-[#EFF1FF] rounded-full border cursor-pointer hover:text-white border-gray-300 hover:bg-[#283068]",children:nt.jsx("p",{className:"text-[#283068] hover:text-white fs10 font-medium",children:M})},M))})]}),n&&!o&&nt.jsx("div",{className:"w-full h-[500px] bg-linear-to-l from-[#FFE6E4] via-[#FFE6E4] to-[#FDACA7]/70 flex flex-col rounded-lg",children:nt.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-4 scrollbar-hide",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:[nt.jsx("style",{children:".scrollbar-hide::-webkit-scrollbar { display: none; }"}),R.map(M=>nt.jsx("div",{className:`flex items-start gap-2 ${M.sender==="assistant"?"justify-start":"justify-end"}`,children:M.sender==="assistant"?nt.jsxs(nt.Fragment,{children:[nt.jsx("img",{src:wu,alt:"Tia",className:"w-10 h-10 rounded-full self-start"}),nt.jsxs("div",{children:[nt.jsx("span",{className:"fs12 text-[#283068] font-bold",children:"Tia"}),nt.jsx("div",{className:"min-w-[70%] fs12 font-medium px-4 py-2 rounded-md shadow-md bg-[#FFFFFF] text-[#0D082C] mt-1 whitespace-pre-wrap",children:M.text})]})]}):nt.jsxs(nt.Fragment,{children:[nt.jsx("div",{className:"max-w-[70%] fs12 font-medium px-4 py-2 rounded-md shadow-md bg-linear-to-r from-[#4F5FCE] to-[#2D3776] text-white whitespace-pre-wrap",children:M.text}),nt.jsx("img",{src:fA,alt:"User",className:"w-10 h-10 rounded-full self-start"})]})},M.id)),h&&nt.jsxs("div",{className:"flex items-start gap-2 justify-start",children:[nt.jsx("img",{src:wu,alt:"Tia",className:"w-10 h-10 self-start"}),nt.jsxs("div",{children:[nt.jsx("span",{className:"fs12 text-[#283068] font-bold",children:"Tia"}),nt.jsx("div",{className:"fs10 bg-gray-200 text-gray-700 px-4 py-2 rounded-2xl italic opacity-75 mt-1",children:"Tia is typing..."})]})]}),nt.jsx("div",{ref:y})]})}),!o&&nt.jsxs("div",{className:"p-1 px-2 rounded-full w-[96%] mx-auto my-4 flex items-center justify-between bg-[#F3F3F3] border border-gray-200 shadow",children:[nt.jsx("input",{type:"text",className:"px-2 fs12 outline-none fs14 placeholder:fs14 flex-1 bg-transparent",placeholder:"Chat with Tia...",value:e,onChange:M=>{t(M.target.value),M.target.value.trim()&&i(!0)},onKeyDown:M=>{M.key==="Enter"&&O(e,!0)},disabled:!d||h}),nt.jsx("img",{src:cA,alt:"send icon",className:"mt-1",onClick:()=>O(e,!0),style:{opacity:d&&!h?1:.5,cursor:d&&!h?"pointer":"not-allowed"}})]}),o&&nt.jsx(dA,{})]})},EI="data:image/svg+xml,%3csvg%20width='24'%20height='25'%20viewBox='0%200%2024%2025'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M18%206.5L6%2018.5'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M6%206.5L18%2018.5'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e",TI="data:image/svg+xml,%3csvg%20width='24'%20height='25'%20viewBox='0%200%2024%2025'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M15%203.5H21V9.5'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M9%2021.5H3V15.5'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M21%203.5L14%2010.5'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M3%2021.5L10%2014.5'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e",CI=({isOpen:e,setIsOpen:t})=>{const[n,i]=S.useState(!1),o=()=>i(!n);return nt.jsx("div",{children:nt.jsx(kx,{children:e&&nt.jsxs(yu.div,{layout:!0,initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},transition:{duration:.3,ease:"easeInOut"},className:`fixed bottom-22 right-20 rounded-lg shadow-lg z-40 flex flex-col ${n?"w-8/12":"w-1/5"}`,children:[nt.jsxs("div",{className:"bg-gradient-to-r from-[#283068] via-[#49507F] to-[#49507F] p-4 flex items-center justify-between rounded-t-lg",children:[nt.jsxs("div",{className:"flex items-center gap-x-4",children:[nt.jsx("img",{src:wu,alt:"person",className:""}),nt.jsx("h1",{className:"text-white font-bold fs16",children:"Tia Chat"})]}),nt.jsxs("div",{className:"flex items-center gap-x-4",children:[nt.jsx("img",{src:TI,alt:"expand",className:"cursor-pointer",onClick:o}),nt.jsx("img",{src:EI,alt:"close",className:"cursor-pointer",onClick:()=>t(!1)})]})]}),nt.jsx("div",{className:"bg-white h-auto flex justify-center items-center ",children:nt.jsx("div",{className:"relative w-full h-full",children:nt.jsx(yu.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},transition:{duration:.3,ease:"easeInOut"},className:"w-full ",children:nt.jsx(AI,{})},"home")})})]})})})},Kv=localStorage.getItem("userEnv"),RI=le({key:"UserEnv",default:Kv?JSON.parse(Kv):{}}),kI=()=>{const{config:e}=zv(),t=Ve(RI),{connect:n,chatProfile:i,setChatProfile:o}=_v(),l=!!e,[u,c]=S.useState(!1),d=l?e.chatProfiles.length?!!i:!0:!1;if(S.useEffect(()=>{d&&n({})},[t,n,d]),S.useEffect(()=>{if(!l||!e||!e.chatProfiles?.length||i)return;const p=e.chatProfiles.find(g=>g.default);o(p?p.name:e.chatProfiles[0].name)},[l,e,i,o]),!l)return null;const h=()=>c(!u);return nt.jsxs("div",{className:"custom-scrollbar",children:[nt.jsx(CI,{isOpen:u,setIsOpen:c}),nt.jsx("img",{src:Sw,alt:"chat icon",className:"fixed bottom-18 right-20 h-14 w-14 cursor-pointer z-50",onClick:h})]})};function VI(){const[e,t]=S.useState(!1),{language:n}=zv(),{windowMessage:i}=Wv(),{data:o}=ca(`/project/translations?language=${n}`);return S.useEffect(()=>{o&&t(!0)},[o]),S.useEffect(()=>{const l=u=>{i(u.data)};return window.addEventListener("message",l),()=>window.removeEventListener("message",l)},[i]),e?nt.jsx(kI,{}):null}function II(e){if(typeof document>"u")return;let t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}Array(12).fill(0);let Yc=1;class MI{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{const n=this.subscribers.indexOf(t);this.subscribers.splice(n,1)}),this.publish=t=>{this.subscribers.forEach(n=>n(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var n;const{message:i,...o}=t,l=typeof t?.id=="number"||((n=t.id)==null?void 0:n.length)>0?t.id:Yc++,u=this.toasts.find(d=>d.id===l),c=t.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(l)&&this.dismissedToasts.delete(l),u?this.toasts=this.toasts.map(d=>d.id===l?(this.publish({...d,...t,id:l,title:i}),{...d,...t,id:l,dismissible:c,title:i}):d):this.addToast({title:i,...o,dismissible:c,id:l}),l},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(n=>n({id:t,dismiss:!0})))):this.toasts.forEach(n=>{this.subscribers.forEach(i=>i({id:n.id,dismiss:!0}))}),t),this.message=(t,n)=>this.create({...n,message:t}),this.error=(t,n)=>this.create({...n,message:t,type:"error"}),this.success=(t,n)=>this.create({...n,type:"success",message:t}),this.info=(t,n)=>this.create({...n,type:"info",message:t}),this.warning=(t,n)=>this.create({...n,type:"warning",message:t}),this.loading=(t,n)=>this.create({...n,type:"loading",message:t}),this.promise=(t,n)=>{if(!n)return;let i;n.loading!==void 0&&(i=this.create({...n,promise:t,type:"loading",message:n.loading,description:typeof n.description!="function"?n.description:void 0}));const o=Promise.resolve(t instanceof Function?t():t);let l=i!==void 0,u;const c=o.then(async h=>{if(u=["resolve",h],S.isValidElement(h))l=!1,this.create({id:i,type:"default",message:h});else if(PI(h)&&!h.ok){l=!1;const g=typeof n.error=="function"?await n.error(`HTTP error! status: ${h.status}`):n.error,b=typeof n.description=="function"?await n.description(`HTTP error! status: ${h.status}`):n.description,C=typeof g=="object"&&!S.isValidElement(g)?g:{message:g};this.create({id:i,type:"error",description:b,...C})}else if(h instanceof Error){l=!1;const g=typeof n.error=="function"?await n.error(h):n.error,b=typeof n.description=="function"?await n.description(h):n.description,C=typeof g=="object"&&!S.isValidElement(g)?g:{message:g};this.create({id:i,type:"error",description:b,...C})}else if(n.success!==void 0){l=!1;const g=typeof n.success=="function"?await n.success(h):n.success,b=typeof n.description=="function"?await n.description(h):n.description,C=typeof g=="object"&&!S.isValidElement(g)?g:{message:g};this.create({id:i,type:"success",description:b,...C})}}).catch(async h=>{if(u=["reject",h],n.error!==void 0){l=!1;const p=typeof n.error=="function"?await n.error(h):n.error,g=typeof n.description=="function"?await n.description(h):n.description,y=typeof p=="object"&&!S.isValidElement(p)?p:{message:p};this.create({id:i,type:"error",description:g,...y})}}).finally(()=>{l&&(this.dismiss(i),i=void 0),n.finally==null||n.finally.call(n)}),d=()=>new Promise((h,p)=>c.then(()=>u[0]==="reject"?p(u[1]):h(u[1])).catch(p));return typeof i!="string"&&typeof i!="number"?{unwrap:d}:Object.assign(i,{unwrap:d})},this.custom=(t,n)=>{const i=n?.id||Yc++;return this.create({jsx:t(i),id:i,...n}),i},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const Nn=new MI,DI=(e,t)=>{const n=t?.id||Yc++;return Nn.addToast({title:e,...t,id:n}),n},PI=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",OI=DI,NI=()=>Nn.toasts,LI=()=>Nn.getActiveToasts(),UI=Object.assign(OI,{success:Nn.success,info:Nn.info,warning:Nn.warning,error:Nn.error,custom:Nn.custom,message:Nn.message,promise:Nn.promise,dismiss:Nn.dismiss,loading:Nn.loading},{getHistory:NI,getToasts:LI});II("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");const Gc=()=>{const e=document.querySelector('meta[property="og:root_path"]');return e&&typeof e.getAttribute("content")=="string"?e.getAttribute("content"):""};class FI extends Hc{async retryRequest(t){try{return await t()}catch(n){if(n?.status===401)return await t();throw n}}async put(t,n){return this.retryRequest(()=>super.put(t,n))}async get(t){return this.retryRequest(()=>super.get(t))}async post(t,n){return this.retryRequest(()=>super.post(t,n))}async shareThread(t,n){return(await this.put("/project/thread/share",{threadId:t,isShared:n})).json()}connectStreamableHttpMCP(t,n,i,o){const l=()=>fetch(new URL("mcp",this.httpEndpoint.endsWith("/")?this.httpEndpoint:`${this.httpEndpoint}/`),{method:"POST",headers:{"Content-Type":"application/json",...t?{"x-session-id":t}:{}},body:JSON.stringify({clientType:"streamable-http",name:n,url:i,sessionId:t,...o?{headers:o}:{}})}).then(async u=>{if(u.status===401)throw new Error("Unauthorized");const c=await u.json();return{success:u.ok,mcp:c.mcp,error:c.detail}});return this.retryRequest(l)}}function fa(e={}){console.log("TIAWidget: Initializing...");const{containerId:t="tia-widget-root",onError:n=p=>{console.error("TIAWidget error:",p),UI.error(p.message)}}=e,i=window.origin+Gc();console.log("TIAWidget: Using API URL:",i);let o=document.getElementById(t);o||(o=document.createElement("div"),o.id=t,document.body.appendChild(o));const l=new URL(i).toString(),u=()=>{window.location.pathname!==Gc()+"/login"&&(window.location.href=Gc()+"/login")},c=p=>{const g=p?.message||p?.toString()||"An error occurred";n(new Error(g))},d=new FI(l,"webapp",{},u,c),h=xw.createRoot(o);return h.render(nt.jsx(Ns.Provider,{value:d,children:nt.jsx(_R,{children:nt.jsx(VI,{})})})),{unmount:()=>h.unmount()}}if(typeof window<"u"){const e=document.currentScript;if(e?.hasAttribute("data-auto-init")){console.log("TIAWidget: Auto-initializing from script tag");const t=e.getAttribute("data-container-id")||void 0;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{fa({containerId:t})}):fa({containerId:t})}else console.log("TIAWidget: Script loaded, no auto-init. Call TIAWidget.init() manually.")}return typeof window<"u"&&(window.TIAWidget={init:fa}),$a.initTIAWidget=fa,Object.defineProperty($a,Symbol.toStringTag,{value:"Module"}),$a})({},React,ReactDOM);
354
+ `,$V=new Blob([ZV],{type:"application/javascript"}),tI=URL.createObjectURL($V),eI=tI,Cv=class{constructor({sampleRate:e=24e3,onStop:t}={}){this.scriptSrc=eI,this.onStop=t,this.sampleRate=e,this.context=null,this.stream=null,this.analyser=null,this.trackSampleOffsets={},this.interruptedTrackIds={}}async connect(){this.context=new AudioContext({sampleRate:this.sampleRate}),this.context.state==="suspended"&&await this.context.resume();try{await this.context.audioWorklet.addModule(this.scriptSrc)}catch(t){throw console.error(t),new Error(`Could not add audioWorklet module: ${this.scriptSrc}`)}let e=this.context.createAnalyser();return e.fftSize=8192,e.smoothingTimeConstant=.1,this.analyser=e,!0}getFrequencies(e="frequency",t=-100,n=-30){if(!this.analyser)throw new Error("Not connected, please call .connect() first");return Pc.getFrequencies(this.analyser,this.sampleRate,null,e,t,n)}_start(){let e=new AudioWorkletNode(this.context,"stream_processor");return e.connect(this.context.destination),e.port.onmessage=t=>{let{event:n}=t.data;if(n==="stop")this.onStop?.(),e.disconnect(),this.stream=null;else if(n==="offset"){let{requestId:i,trackId:o,offset:l}=t.data,u=l/this.sampleRate;this.trackSampleOffsets[i]={trackId:o,offset:l,currentTime:u}}},this.analyser.disconnect(),e.connect(this.analyser),this.stream=e,!0}add16BitPCM(e,t="default"){if(typeof t!="string")throw new Error("trackId must be a string");if(this.interruptedTrackIds[t])return;this.stream||this._start();let n;if(e instanceof Int16Array)n=e;else if(e instanceof ArrayBuffer)n=new Int16Array(e);else throw new Error("argument must be Int16Array or ArrayBuffer");return this.stream.port.postMessage({event:"write",buffer:n,trackId:t}),n}async getTrackSampleOffset(e=!1){if(!this.stream)return null;let t=crypto.randomUUID();this.stream.port.postMessage({event:e?"interrupt":"offset",requestId:t});let n;for(;!n;)n=this.trackSampleOffsets[t],await new Promise(o=>setTimeout(()=>o(),1));let{trackId:i}=n;return e&&i&&(this.interruptedTrackIds[i]=!0),n}async interrupt(){return this.getTrackSampleOffset(!0)}};globalThis.WavStreamPlayer=Cv;var Rv=le({key:"ThreadIdToResume",default:void 0}),nI=le({key:"ResumeThreadErrorState",default:void 0}),kv=le({key:"ChatProfile",default:void 0}),Vv=le({key:"SessionId",default:Zu()}),Oc=Ng({key:"SessionIdSelector",get:({get:e})=>e(Vv),set:({set:e},t)=>e(Vv,t instanceof WR?Zu():t)}),Nc=le({key:"Session",dangerouslyAllowMutability:!0,default:void 0}),Lc=le({key:"Actions",default:[]}),Uc=le({key:"Messages",dangerouslyAllowMutability:!0,default:[]}),rI=le({key:"Commands",default:[]}),Iv=le({key:"TokenCount",default:0}),Fc=le({key:"Loading",default:!1}),Bc=le({key:"AskUser",default:void 0}),iI=le({key:"WavRecorder",dangerouslyAllowMutability:!0,default:new Tv}),sI=le({key:"WavStreamPlayer",dangerouslyAllowMutability:!0,default:new Cv}),oI=le({key:"AudioConnection",default:"off"}),aI=le({key:"isAiSpeaking",default:!1}),Mv=le({key:"CallFn",default:void 0}),oa=le({key:"ChatSettings",default:[]}),Dv=Ng({key:"ChatSettingsValue/Default",get:({get:e})=>{let t=e(oa),n=(i,o)=>(Array.isArray(i)&&i.forEach(l=>{l&&(Array.isArray(l?.inputs)&&l.inputs.length>0?n(l.inputs,o):l?.id!==void 0&&(o[l.id]=l.initial))}),o);return n(t,{})}}),aa=le({key:"ChatSettingsValue",default:Dv}),qc=le({key:"DisplayElements",default:[]}),Wc=le({key:"TasklistElements",default:[]}),_c=le({key:"FirstUserInteraction",default:void 0}),lI=le({key:"User",default:void 0}),uI=le({key:"ChainlitConfig",default:void 0}),cI=le({key:"AuthConfig",default:void 0}),fI=le({key:"ThreadHistory",default:{threads:void 0,currentThreadId:void 0,timeGroupedThreads:void 0,pageInfo:void 0},effects:[({setSelf:e,onSet:t})=>{t((n,i)=>{let o=n?.timeGroupedThreads;n?.threads&&!Ni.isEqual(n.threads,i?.timeGroupedThreads)&&(o=HV(n.threads)),e({...n,timeGroupedThreads:o})})}]}),Pv=le({key:"SideView",default:void 0}),zc=le({key:"CurrentThreadId",default:void 0}),dI=e=>({setSelf:t,onSet:n})=>{let i=localStorage.getItem(e);if(i!=null)try{t(JSON.parse(i))}catch(o){console.error(`Error parsing localStorage value for key "${e}":`,o)}n((o,l,u)=>{u?localStorage.removeItem(e):localStorage.setItem(e,JSON.stringify(o))})},hI=le({key:"Mcp",default:[],effects:[dI("mcp_storage_key")]}),pI=()=>{let e=Ve(Fc),t=Ve(qc),n=Ve(Wc),i=Ve(Lc),o=Ve(Nc),l=Ve(Bc),u=Ve(Mv),c=Ve(oa),d=Ve(aa),h=Ve(Dv),p=o?.socket.connected&&!o?.error,g=!p||e||l?.spec.type==="file"||l?.spec.type==="action"||l?.spec.type==="element";return{actions:i,askUser:l,callFn:u,chatSettingsDefaultValue:h,chatSettingsInputs:c,chatSettingsValue:d,connected:p,disabled:g,elements:t,error:o?.error,loading:e,tasklists:n}},Ui=(e,t)=>la(e,t.id)?Kc(e,t.id,t):"parentId"in t&&t.parentId?Nv(e,t.parentId,t):"indent"in t&&t.indent&&t.indent>0?Ov(e,t.indent,t):[...e,t],Ov=(e,t,n,i=0)=>{let o=[...e];if(o.length===0)return[...o,n];{let l=o.length-1,u=o[l];return u.steps=u.steps||[],i+1===t?(u.steps=[...u.steps,n],o[l]={...u},o):(u.steps=Ov(u.steps,t,n,i+1),o[l]={...u},o)}},Nv=(e,t,n)=>{let i=[...e];for(let o=0;o<i.length;o++){let l=i[o];Ni.isEqual(l.id,t)?(l.steps=l.steps?[...l.steps,n]:[n],i[o]={...l}):la(i,t)&&l.steps&&(l.steps=Nv(l.steps,t,n),i[o]={...l})}return i},Lv=(e,t)=>{for(let n of e){if(Ni.isEqual(n.id,t))return n;if(n.steps&&n.steps.length>0){let i=Lv(n.steps,t);if(i)return i}}},la=(e,t)=>Lv(e,t)!==void 0,Kc=(e,t,n)=>{let i=[...e];for(let o=0;o<i.length;o++){let l=i[o];Ni.isEqual(l.id,t)?i[o]={steps:l.steps,...n}:la(i,t)&&l.steps&&(l.steps=Kc(l.steps,t,n),i[o]={...l})}return i},Uv=(e,t)=>{let n=[...e];for(let i=0;i<n.length;i++){let o=n[i];o.id===t?n=[...n.slice(0,i),...n.slice(i+1)]:la(n,t)&&o.steps&&(o.steps=Uv(o.steps,t),n[i]={...o})}return n},Fv=(e,t,n,i,o)=>{let l=[...e];for(let u=0;u<l.length;u++){let c=l[u];Ni.isEqual(c.id,t)?("content"in c&&c.content!==void 0?i?c.content=n:c.content+=n:o?"input"in c&&c.input!==void 0&&(i?c.input=n:c.input+=n):"output"in c&&c.output!==void 0&&(i?c.output=n:c.output+=n),l[u]={...c}):c.steps&&(c.steps=Fv(c.steps,t,n,i,o),l[u]={...c})}return l},ua=()=>{let[e,t]=Oi(cI),[n,i]=Oi(lI),o=he(fI);return{authConfig:e,setAuthConfig:t,user:n,setUser:i,setThreadHistory:o}},mI=async(e,t)=>(await e.get(t))?.json(),gI=e=>{let t=new Hc("","webapp");return Object.assign(t,e),t};function ca(e,{...t}={}){let n=S.useContext(Ns),{setUser:i}=ua(),o=S.useMemo(()=>([u])=>{t.onErrorRetry||(t.onErrorRetry=(...d)=>{let[h]=d;if(h.status===401){i(null);return}return Ek.defaultValue.onErrorRetry(...d)});let c=gI(n);return c.on401=c.onError=void 0,mI(c,u)},[n]),l=S.useMemo(()=>e?[e]:null,[e]);return Tk(l,o,t)}var vI=()=>{let{authConfig:e,setAuthConfig:t}=ua(),{data:n,isLoading:i}=ca(e?null:"/auth/config");return S.useEffect(()=>{n&&t(n)},[n,t]),{authConfig:e,isLoading:i}},yI=()=>{let e=S.useContext(Ns),{setUser:t,setThreadHistory:n}=ua();return{logout:async(i=!1)=>{await e.logout(),t(void 0),n(void 0),i&&window.location.reload()}}},wI=()=>{let{user:e,setUser:t}=ua(),{data:n,error:i,mutate:o}=ca("/user");return S.useEffect(()=>{n&&t(n)},[n,t]),S.useEffect(()=>{i&&t(null)},[i]),{user:e,setUserFromAPI:o}},Bv=()=>{let{authConfig:e}=vI(),{logout:t}=yI(),{user:n,setUserFromAPI:i}=wI(),o=!!e&&(!e.requireLogin||n!==void 0);return e&&!e.requireLogin?{data:e,user:null,isReady:o,isAuthenticated:!0,logout:()=>Promise.resolve(),setUserFromAPI:()=>Promise.resolve()}:{data:e,user:n,isReady:o,isAuthenticated:!!n,logout:t,setUserFromAPI:i}},qv=class extends Error{constructor(e,t,n){super(e),this.status=t,this.detail=n}toString(){return this.detail?`${this.message}: ${this.detail}`:this.message}},bI=class{constructor(e,t,n,i,o){this.httpEndpoint=e,this.type=t,this.additionalQueryParams=n,this.on401=i,this.onError=o}buildEndpoint(e){let t=`${this.httpEndpoint}${e}`;this.httpEndpoint.endsWith("/")&&(t=`${this.httpEndpoint.slice(0,-1)}${e}`);let n=new URL(t);if(this.additionalQueryParams){let i=new URLSearchParams(this.additionalQueryParams),o=n.search?"&":"?";n.search=n.search+`${o}${i.toString()}`}return n.toString()}async getDetailFromErrorResponse(e){try{return(await e.json())?.detail}catch(t){console.error("Unable to parse error response",t)}}handleRequestError(e){e instanceof qv&&(e.status===401&&this.on401&&this.on401(),this.onError&&this.onError(e)),console.error(e)}async fetch(e,t,n,i,o={}){try{let l;n instanceof FormData?l=n:(o["Content-Type"]="application/json",l=n?JSON.stringify(n):null);let u=await fetch(this.buildEndpoint(t),{method:e,credentials:"include",headers:o,signal:i,body:l});if(!u.ok){let c=await this.getDetailFromErrorResponse(u);throw new qv(u.statusText,u.status,c)}return u}catch(l){throw this.handleRequestError(l),l}}async get(e){return await this.fetch("GET",e)}async post(e,t,n){return await this.fetch("POST",e,t,n)}async put(e,t){return await this.fetch("PUT",e,t)}async patch(e,t){return await this.fetch("PATCH",e,t)}async delete(e,t){return await this.fetch("DELETE",e,t)}},Hc=class extends bI{async headerAuth(e){return e?(await this.fetch("POST","/auth/header",void 0,void 0,{Authorization:`Bearer ${e}`})).json():(await this.post("/auth/header",{})).json()}async jwtAuth(e){return(await this.fetch("POST","/auth/jwt",void 0,void 0,{Authorization:`Bearer ${e}`})).json()}async stickyCookie(e){return(await this.fetch("POST","/set-session-cookie",{session_id:e})).json()}async passwordAuth(e){return(await this.post("/login",e)).json()}async getUser(){return(await this.get("/user")).json()}async logout(){return(await this.post("/logout",{})).json()}async setFeedback(e,t){return(await this.put("/feedback",{feedback:e,sessionId:t})).json()}async deleteFeedback(e){return(await this.delete("/feedback",{feedbackId:e})).json()}async listThreads(e,t){return(await this.post("/project/threads",{pagination:e,filter:t})).json()}async renameThread(e,t){return(await this.put("/project/thread",{threadId:e,name:t})).json()}async deleteThread(e){return(await this.delete("/project/thread",{threadId:e})).json()}uploadFile(e,t,n,i){let o=new XMLHttpRequest;o.withCredentials=!0;let l=new Promise((u,c)=>{let d=new FormData;d.append("file",e);let h=i?`&ask_parent_id=${i}`:"";o.open("POST",this.buildEndpoint(`/project/file?session_id=${n}${h}`),!0),o.upload.onprogress=function(p){if(p.lengthComputable){let g=p.loaded/p.total*100;t(g)}},o.onload=function(){if(o.status===200){let g=JSON.parse(o.responseText);u(g);return}let p=o.getResponseHeader("Content-Type");if(p&&p.includes("application/json")){let g=JSON.parse(o.responseText);c(g.detail)}else c("Upload failed")},o.onerror=function(){c("Upload error")},o.send(d)});return{xhr:o,promise:l}}async callAction(e,t){return(await this.post("/project/action",{sessionId:t,action:e})).json()}async updateElement(e,t){return(await this.put("/project/element",{sessionId:t,element:e})).json()}async deleteElement(e,t){return(await this.delete("/project/element",{sessionId:t,element:e})).json()}async connectStdioMCP(e,t,n){return(await this.post("/mcp",{sessionId:e,name:t,fullCommand:n,clientType:"stdio"})).json()}async connectSseMCP(e,t,n,i){return(await this.post("/mcp",{sessionId:e,name:t,url:n,...i?{headers:i}:{},clientType:"sse"})).json()}async connectStreamableHttpMCP(e,t,n,i){return(await this.post("/mcp",{sessionId:e,name:t,url:n,...i?{headers:i}:{},clientType:"streamable-http"})).json()}async disconnectMcp(e,t){return(await this.delete("/mcp",{sessionId:e,name:t})).json()}getElementUrl(e,t){let n=`?session_id=${t}`;return this.buildEndpoint(`/project/file/${e}${n}`)}getLogoEndpoint(e,t){return t||this.buildEndpoint(`/logo?theme=${e}`)}getOAuthEndpoint(e){return this.buildEndpoint(`/auth/oauth/${e}`)}async shareThread(e,t){return(await this.put("/project/thread/share",{threadId:e,isShared:t})).json()}},Ns=S.createContext(new Hc("http://localhost:8000","webapp")),Wv=()=>{let e=S.useContext(Ns),t=Ve(Nc),n=Ve(Bc),i=Ve(Oc),o=zo(oa),l=zo(Oc),u=zo(aa),c=he(_c),d=he(Fc),h=he(Uc),p=he(qc),g=he(Wc),b=he(Lc),y=he(Iv),C=he(Rv),R=he(Pv),B=he(zc),O=S.useCallback(()=>{t?.socket.emit("clear_session"),t?.socket.disconnect(),C(void 0),l(),c(void 0),h([]),p([]),g([]),b([]),y(0),o(),u(),R(void 0),B(void 0)},[t]),M=S.useCallback((ut,qt=[])=>{ut.id||(ut.id=Zu()),ut.createdAt||(ut.createdAt=new Date().toISOString()),h(St=>Ui(St,ut)),t?.socket.emit("client_message",{message:ut,fileReferences:qt})},[t?.socket]),N=S.useCallback(ut=>{t?.socket.emit("edit_message",{message:ut})},[t?.socket]),G=S.useCallback(ut=>{t?.socket.emit("window_message",ut)},[t?.socket]),_=S.useCallback(()=>{t?.socket.emit("audio_start")},[t?.socket]),J=S.useCallback((ut,qt,St,wt)=>{t?.socket.emit("audio_chunk",{isStart:ut,mimeType:qt,elapsedTime:St,data:wt})},[t?.socket]),X=S.useCallback(()=>{t?.socket.emit("audio_end")},[t?.socket]),j=S.useCallback(ut=>{n&&(n.parentId&&(ut.parentId=n.parentId),h(qt=>Ui(qt,ut)),n.callback(ut))},[n]),yt=S.useCallback(ut=>{t?.socket.emit("chat_settings_change",ut)},[t?.socket]),ft=S.useCallback(()=>{h(ut=>ut.map(qt=>(qt.streaming=!1,qt))),d(!1),t?.socket.emit("stop")},[t?.socket]);return{uploadFile:S.useCallback((ut,qt,St)=>e.uploadFile(ut,qt,i,St),[i]),clear:O,replyMessage:j,sendMessage:M,editMessage:N,windowMessage:G,startAudioStream:_,sendAudioChunk:J,endAudioStream:X,stopTask:ft,setIdToResume:C,updateChatSettings:yt}},xI=()=>{let e=Ve(Uc),t=Ve(_c);return{threadId:Ve(zc),messages:e,firstInteraction:t}},_v=()=>{let e=S.useContext(Ns),t=Ve(Oc),[n,i]=Oi(Nc),o=he(aI),l=he(oI),u=zo(aa),c=he(aa),d=he(_c),h=he(Fc),p=he(hI),g=Ve(sI),b=Ve(iI),y=he(Uc),C=he(Bc),R=he(Mv),B=he(rI),O=he(Pv),M=he(qc),N=he(Wc),G=he(Lc),_=he(oa),J=he(Iv),[X,j]=Oi(kv),yt=Ve(Rv),ft=he(nI),[ut,qt]=Oi(zc);S.useEffect(()=>{n?.socket&&(n.socket.auth.threadId=ut||"")},[ut]);let St=S.useCallback(async({transports:Zt,userEnv:xt})=>{let{protocol:Ot,host:ht,pathname:at}=new URL(e.httpEndpoint),pt=`${Ot}//${ht}`,V=at&&at!=="/"?`${at}/ws/socket.io`:"/ws/socket.io";try{await e.stickyCookie(t)}catch(T){console.error(`Failed to set sticky session cookie: ${T}`)}let L=ra(pt,{path:V,withCredentials:!0,transports:Zt,auth:{clientType:e.type,sessionId:t,threadId:yt||"",userEnv:JSON.stringify(xt),chatProfile:X?encodeURIComponent(X):""}});i(T=>(T?.socket?.removeAllListeners(),T?.socket?.close(),{socket:L})),L.on("connect",()=>{L.emit("connection_successful"),i(T=>({...T,error:!1})),p(T=>T.map(F=>{let W;return F.clientType==="sse"?W=e.connectSseMCP(t,F.name,F.url):F.clientType==="streamable-http"?W=e.connectStreamableHttpMCP(t,F.name,F.url,F.headers||{}):W=e.connectStdioMCP(t,F.name,F.command),W.then(async({success:$,mcp:Z})=>{p(bt=>bt.map(Dt=>Dt.name===Z.name?{...Dt,status:$?"connected":"failed",tools:Z?Z.tools:Dt.tools}:Dt))}).catch(()=>{p($=>$.map(Z=>Z.name===F.name?{...Z,status:"failed"}:Z))}),{...F,status:"connecting"}}))}),L.on("connect_error",T=>{i(F=>({...F,error:!0}))}),L.on("task_start",()=>{h(!0)}),L.on("task_end",()=>{h(!1)}),L.on("reload",()=>{L.emit("clear_session"),window.location.reload()}),L.on("audio_connection",async T=>{if(T==="on"){let F=!0,W=Date.now(),$="pcm16";await b.begin(),await g.connect(),await b.record(async Z=>{let bt=Date.now()-W;L.emit("audio_chunk",{isStart:F,mimeType:$,elapsedTime:bt,data:Z.mono}),F=!1}),g.onStop=()=>o(!1)}else await b.end(),await g.interrupt();l(T)}),L.on("audio_chunk",T=>{g.add16BitPCM(T.data,T.track),o(!0)}),L.on("audio_interrupt",()=>{g.interrupt()}),L.on("resume_thread",T=>{let F=!!T?.metadata?.viewer_read_only;!F&&yt&&T.id!==yt&&(window.location.href=`/thread/${T.id}`),!F&&yt&&qt(T.id);let W=[];for(let Z of T.steps)W=Ui(W,Z);T.metadata?.chat_profile&&j(T.metadata?.chat_profile),T.metadata?.chat_settings&&c(T.metadata?.chat_settings),y(W);let $=T.elements||[];N($.filter(Z=>Z.type==="tasklist")),M($.filter(Z=>["avatar","tasklist"].indexOf(Z.type)===-1))}),L.on("resume_thread_error",T=>{ft(T)}),L.on("new_message",T=>{y(F=>Ui(F,T))}),L.on("first_interaction",T=>{d(T.interaction),qt(T.thread_id)}),L.on("update_message",T=>{y(F=>Kc(F,T.id,T))}),L.on("delete_message",T=>{y(F=>Uv(F,T.id))}),L.on("stream_start",T=>{y(F=>Ui(F,T))}),L.on("stream_token",({id:T,token:F,isSequence:W,isInput:$})=>{y(Z=>Fv(Z,T,F,W,$))}),L.on("ask",({msg:T,spec:F},W)=>{C({spec:F,callback:W,parentId:T.parentId}),y($=>Ui($,T)),h(!1)}),L.on("ask_timeout",()=>{C(void 0),h(!1)}),L.on("clear_ask",()=>{C(void 0)}),L.on("call_fn",({name:T,args:F},W)=>{R({name:T,args:F,callback:W})}),L.on("clear_call_fn",()=>{R(void 0)}),L.on("call_fn_timeout",()=>{R(void 0)}),L.on("chat_settings",T=>{_(T),u()}),L.on("set_commands",T=>{B(T)}),L.on("set_sidebar_title",T=>{O(F=>F?.title===T?F:{title:T,elements:F?.elements||[]})}),L.on("set_sidebar_elements",({elements:T,key:F})=>{T.length?(T.forEach(W=>{!W.url&&W.chainlitKey&&(W.url=e.getElementUrl(W.chainlitKey,t))}),O(W=>W?.key===F?W:{title:W?.title||"",elements:T,key:F})):O(void 0)}),L.on("element",T=>{!T.url&&T.chainlitKey&&(T.url=e.getElementUrl(T.chainlitKey,t)),T.type==="tasklist"?N(F=>{let W=F.findIndex($=>$.id===T.id);return W===-1?[...F,T]:[...F.slice(0,W),T,...F.slice(W+1)]}):M(F=>{let W=F.findIndex($=>$.id===T.id);return W===-1?[...F,T]:[...F.slice(0,W),T,...F.slice(W+1)]})}),L.on("remove_element",T=>{M(F=>F.filter(W=>W.id!==T.id)),N(F=>F.filter(W=>W.id!==T.id))}),L.on("action",T=>{G(F=>[...F,T])}),L.on("remove_action",T=>{G(F=>{let W=F.findIndex($=>$.id===T.id);return W===-1?F:[...F.slice(0,W),...F.slice(W+1)]})}),L.on("token_usage",T=>{J(F=>F+T)}),L.on("window_message",T=>{window.parent&&window.parent.postMessage(T,"*")}),L.on("toast",T=>{if(!T.message){console.warn("No message received for toast.");return}switch(T.type){case"info":Os.info(T.message);break;case"error":Os.error(T.message);break;case"success":Os.success(T.message);break;case"warning":Os.warning(T.message);break;default:Os(T.message);break}})},[i,t,yt,X]),wt=S.useCallback(Ni.debounce(St,200),[St]),ee=S.useCallback(()=>{n?.socket&&(n.socket.removeAllListeners(),n.socket.close())},[n]);return{connect:wt,disconnect:ee,session:n,sessionId:t,chatProfile:X,idToResume:yt,setChatProfile:j}},zv=()=>{let[e,t]=Oi(uI),{isAuthenticated:n}=Bv(),i=Ve(kv),o=navigator.language||"en-US",l=S.useRef(i),u=n?`/project/settings?language=${o}${i?`&chat_profile=${encodeURIComponent(i)}`:""}`:null,c=n&&!e,{data:d,error:h,isLoading:p}=ca(c?u:null);return S.useEffect(()=>{d&&t(d)},[d,t]),S.useEffect(()=>{l.current!==i&&(t(void 0),l.current=i)},[i,t]),{config:e,error:h,isLoading:p,language:o}};const SI=["Dress Code Policy","Team Lunch Policy","Leave Policy","Performance Review","Rewards and Recognition","Referral Policy"],AI=()=>{const[e,t]=S.useState(""),[n,i]=S.useState(!1),[o,l]=S.useState(!1),{user:u}=Bv(),{sendMessage:c}=Wv(),{connected:d,loading:h}=pI(),{messages:p}=xI(),{connect:g,disconnect:b}=_v(),y=S.useRef(null),C=S.useRef(!1);S.useEffect(()=>{if(!C.current)return C.current=!0,g({userEnv:{}}),()=>{b()}},[]),S.useEffect(()=>{y.current?.scrollIntoView({behavior:"smooth"})},[p,h]);const R=S.useMemo(()=>{const M=[],N=G=>{(G.type==="user_message"||G.type==="assistant_message")&&typeof G.output=="string"&&G.output.trim().length>0&&M.push({id:G.id,sender:G.type==="user_message"?"user":"assistant",text:G.output}),G.steps&&G.steps.length&&G.steps.forEach(N)};return p.forEach(N),M},[p]),B=M=>{!M.trim()||!d||(c({type:"user_message",output:M.trim(),name:u?.identifier||"User"}),i(!0))},O=(M,N)=>{B(N?e:M),t("")};return nt.jsxs("div",{className:`text-gray-700 flex z-10 flex-col items-start ${n?"p-0":"p-4"} w-full`,children:[!n&&!o&&nt.jsxs(nt.Fragment,{children:[nt.jsx("h1",{className:"fs18 font-extrabold mx-auto bg-linear-to-l from-[#F56057] via-[#A03F39] to-[#283068] bg-clip-text text-transparent",children:"Hi, Ishani Ganguly"}),nt.jsx(aA,{}),nt.jsxs("div",{className:"bg-[#F5605724] rounded-lg w-full flex items-center justify-between px-3 mt-3 cursor-pointer",onClick:()=>l(!0),children:[nt.jsxs("div",{className:"flex items-center gap-x-2",children:[nt.jsx("img",{src:lA,alt:"history",className:"py-3"}),nt.jsx("p",{className:"fs14 font-semibold text-black",children:"Chat History"})]}),nt.jsx("img",{src:uA,alt:"link"})]}),nt.jsx("div",{className:"flex flex-wrap gap-x-4 gap-y-2 mt-4",children:SI.map(M=>nt.jsx("div",{onClick:()=>O(M),className:"py-2 px-4 bg-[#EFF1FF] rounded-full border cursor-pointer hover:text-white border-gray-300 hover:bg-[#283068]",children:nt.jsx("p",{className:"text-[#283068] hover:text-white fs10 font-medium",children:M})},M))})]}),n&&!o&&nt.jsx("div",{className:"w-full h-[500px] bg-linear-to-l from-[#FFE6E4] via-[#FFE6E4] to-[#FDACA7]/70 flex flex-col rounded-lg",children:nt.jsxs("div",{className:"flex-1 overflow-y-auto p-4 space-y-4 scrollbar-hide",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:[nt.jsx("style",{children:".scrollbar-hide::-webkit-scrollbar { display: none; }"}),R.map(M=>nt.jsx("div",{className:`flex items-start gap-2 ${M.sender==="assistant"?"justify-start":"justify-end"}`,children:M.sender==="assistant"?nt.jsxs(nt.Fragment,{children:[nt.jsx("img",{src:wu,alt:"Tia",className:"w-10 h-10 rounded-full self-start"}),nt.jsxs("div",{children:[nt.jsx("span",{className:"fs12 text-[#283068] font-bold",children:"Tia"}),nt.jsx("div",{className:"min-w-[70%] fs12 font-medium px-4 py-2 rounded-md shadow-md bg-[#FFFFFF] text-[#0D082C] mt-1 whitespace-pre-wrap",children:M.text})]})]}):nt.jsxs(nt.Fragment,{children:[nt.jsx("div",{className:"max-w-[70%] fs12 font-medium px-4 py-2 rounded-md shadow-md bg-linear-to-r from-[#4F5FCE] to-[#2D3776] text-white whitespace-pre-wrap",children:M.text}),nt.jsx("img",{src:fA,alt:"User",className:"w-10 h-10 rounded-full self-start"})]})},M.id)),h&&nt.jsxs("div",{className:"flex items-start gap-2 justify-start",children:[nt.jsx("img",{src:wu,alt:"Tia",className:"w-10 h-10 self-start"}),nt.jsxs("div",{children:[nt.jsx("span",{className:"fs12 text-[#283068] font-bold",children:"Tia"}),nt.jsx("div",{className:"fs10 bg-gray-200 text-gray-700 px-4 py-2 rounded-2xl italic opacity-75 mt-1",children:"Tia is typing..."})]})]}),nt.jsx("div",{ref:y})]})}),!o&&nt.jsxs("div",{className:"p-1 px-2 rounded-full w-[96%] mx-auto my-4 flex items-center justify-between bg-[#F3F3F3] border border-gray-200 shadow",children:[nt.jsx("input",{type:"text",className:"px-2 fs12 outline-none fs14 placeholder:fs14 flex-1 bg-transparent",placeholder:"Chat with Tia...",value:e,onChange:M=>{t(M.target.value),M.target.value.trim()&&i(!0)},onKeyDown:M=>{M.key==="Enter"&&O(e,!0)},disabled:!d||h}),nt.jsx("img",{src:cA,alt:"send icon",className:"mt-1",onClick:()=>O(e,!0),style:{opacity:d&&!h?1:.5,cursor:d&&!h?"pointer":"not-allowed"}})]}),o&&nt.jsx(dA,{})]})},EI="data:image/svg+xml,%3csvg%20width='24'%20height='25'%20viewBox='0%200%2024%2025'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M18%206.5L6%2018.5'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M6%206.5L18%2018.5'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e",TI="data:image/svg+xml,%3csvg%20width='24'%20height='25'%20viewBox='0%200%2024%2025'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M15%203.5H21V9.5'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M9%2021.5H3V15.5'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M21%203.5L14%2010.5'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3cpath%20d='M3%2021.5L10%2014.5'%20stroke='white'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/svg%3e",CI=({isOpen:e,setIsOpen:t})=>{const[n,i]=S.useState(!1),o=()=>i(!n);return nt.jsx("div",{children:nt.jsx(kx,{children:e&&nt.jsxs(yu.div,{layout:!0,initial:{opacity:0,y:50},animate:{opacity:1,y:0},exit:{opacity:0,y:50},transition:{duration:.3,ease:"easeInOut"},className:`fixed bottom-22 right-20 rounded-lg shadow-lg z-40 flex flex-col ${n?"w-8/12":"w-1/5"}`,children:[nt.jsxs("div",{className:"bg-gradient-to-r from-[#283068] via-[#49507F] to-[#49507F] p-4 flex items-center justify-between rounded-t-lg",children:[nt.jsxs("div",{className:"flex items-center gap-x-4",children:[nt.jsx("img",{src:wu,alt:"person",className:""}),nt.jsx("h1",{className:"text-white font-bold fs16",children:"Tia Chat"})]}),nt.jsxs("div",{className:"flex items-center gap-x-4",children:[nt.jsx("img",{src:TI,alt:"expand",className:"cursor-pointer",onClick:o}),nt.jsx("img",{src:EI,alt:"close",className:"cursor-pointer",onClick:()=>t(!1)})]})]}),nt.jsx("div",{className:"bg-white h-auto flex justify-center items-center ",children:nt.jsx("div",{className:"relative w-full h-full",children:nt.jsx(yu.div,{initial:{opacity:0,x:20},animate:{opacity:1,x:0},exit:{opacity:0,x:-20},transition:{duration:.3,ease:"easeInOut"},className:"w-full ",children:nt.jsx(AI,{})},"home")})})]})})})},Kv=localStorage.getItem("userEnv"),RI=le({key:"UserEnv",default:Kv?JSON.parse(Kv):{}}),kI=()=>{const{config:e}=zv(),t=Ve(RI),{connect:n,chatProfile:i,setChatProfile:o}=_v(),l=!!e,[u,c]=S.useState(!1),d=l?e.chatProfiles.length?!!i:!0:!1;if(S.useEffect(()=>{d&&n({})},[t,n,d]),S.useEffect(()=>{if(!l||!e||!e.chatProfiles?.length||i)return;const p=e.chatProfiles.find(g=>g.default);o(p?p.name:e.chatProfiles[0].name)},[l,e,i,o]),!l)return null;const h=()=>c(!u);return nt.jsxs("div",{className:"custom-scrollbar",children:[nt.jsx(CI,{isOpen:u,setIsOpen:c}),nt.jsx("img",{src:Sw,alt:"chat icon",className:"fixed bottom-18 right-20 h-14 w-14 cursor-pointer z-50",onClick:h})]})};function VI(){const[e,t]=S.useState(!1),{language:n}=zv(),{windowMessage:i}=Wv(),{data:o}=ca(`/project/translations?language=${n}`);return S.useEffect(()=>{o&&t(!0)},[o]),S.useEffect(()=>{const l=u=>{i(u.data)};return window.addEventListener("message",l),()=>window.removeEventListener("message",l)},[i]),e?nt.jsx(kI,{}):null}function II(e){if(typeof document>"u")return;let t=document.head||document.getElementsByTagName("head")[0],n=document.createElement("style");n.type="text/css",t.appendChild(n),n.styleSheet?n.styleSheet.cssText=e:n.appendChild(document.createTextNode(e))}Array(12).fill(0);let Yc=1;class MI{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{const n=this.subscribers.indexOf(t);this.subscribers.splice(n,1)}),this.publish=t=>{this.subscribers.forEach(n=>n(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var n;const{message:i,...o}=t,l=typeof t?.id=="number"||((n=t.id)==null?void 0:n.length)>0?t.id:Yc++,u=this.toasts.find(d=>d.id===l),c=t.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(l)&&this.dismissedToasts.delete(l),u?this.toasts=this.toasts.map(d=>d.id===l?(this.publish({...d,...t,id:l,title:i}),{...d,...t,id:l,dismissible:c,title:i}):d):this.addToast({title:i,...o,dismissible:c,id:l}),l},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(n=>n({id:t,dismiss:!0})))):this.toasts.forEach(n=>{this.subscribers.forEach(i=>i({id:n.id,dismiss:!0}))}),t),this.message=(t,n)=>this.create({...n,message:t}),this.error=(t,n)=>this.create({...n,message:t,type:"error"}),this.success=(t,n)=>this.create({...n,type:"success",message:t}),this.info=(t,n)=>this.create({...n,type:"info",message:t}),this.warning=(t,n)=>this.create({...n,type:"warning",message:t}),this.loading=(t,n)=>this.create({...n,type:"loading",message:t}),this.promise=(t,n)=>{if(!n)return;let i;n.loading!==void 0&&(i=this.create({...n,promise:t,type:"loading",message:n.loading,description:typeof n.description!="function"?n.description:void 0}));const o=Promise.resolve(t instanceof Function?t():t);let l=i!==void 0,u;const c=o.then(async h=>{if(u=["resolve",h],S.isValidElement(h))l=!1,this.create({id:i,type:"default",message:h});else if(PI(h)&&!h.ok){l=!1;const g=typeof n.error=="function"?await n.error(`HTTP error! status: ${h.status}`):n.error,b=typeof n.description=="function"?await n.description(`HTTP error! status: ${h.status}`):n.description,C=typeof g=="object"&&!S.isValidElement(g)?g:{message:g};this.create({id:i,type:"error",description:b,...C})}else if(h instanceof Error){l=!1;const g=typeof n.error=="function"?await n.error(h):n.error,b=typeof n.description=="function"?await n.description(h):n.description,C=typeof g=="object"&&!S.isValidElement(g)?g:{message:g};this.create({id:i,type:"error",description:b,...C})}else if(n.success!==void 0){l=!1;const g=typeof n.success=="function"?await n.success(h):n.success,b=typeof n.description=="function"?await n.description(h):n.description,C=typeof g=="object"&&!S.isValidElement(g)?g:{message:g};this.create({id:i,type:"success",description:b,...C})}}).catch(async h=>{if(u=["reject",h],n.error!==void 0){l=!1;const p=typeof n.error=="function"?await n.error(h):n.error,g=typeof n.description=="function"?await n.description(h):n.description,y=typeof p=="object"&&!S.isValidElement(p)?p:{message:p};this.create({id:i,type:"error",description:g,...y})}}).finally(()=>{l&&(this.dismiss(i),i=void 0),n.finally==null||n.finally.call(n)}),d=()=>new Promise((h,p)=>c.then(()=>u[0]==="reject"?p(u[1]):h(u[1])).catch(p));return typeof i!="string"&&typeof i!="number"?{unwrap:d}:Object.assign(i,{unwrap:d})},this.custom=(t,n)=>{const i=n?.id||Yc++;return this.create({jsx:t(i),id:i,...n}),i},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}}const Nn=new MI,DI=(e,t)=>{const n=t?.id||Yc++;return Nn.addToast({title:e,...t,id:n}),n},PI=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",OI=DI,NI=()=>Nn.toasts,LI=()=>Nn.getActiveToasts(),UI=Object.assign(OI,{success:Nn.success,info:Nn.info,warning:Nn.warning,error:Nn.error,custom:Nn.custom,message:Nn.message,promise:Nn.promise,dismiss:Nn.dismiss,loading:Nn.loading},{getHistory:NI,getToasts:LI});II("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");const Gc=()=>{const e=document.querySelector('meta[property="og:root_path"]');return e&&typeof e.getAttribute("content")=="string"?e.getAttribute("content"):""};class FI extends Hc{async retryRequest(t){try{return await t()}catch(n){if(n?.status===401)return await t();throw n}}async put(t,n){return this.retryRequest(()=>super.put(t,n))}async get(t){return this.retryRequest(()=>super.get(t))}async post(t,n){return this.retryRequest(()=>super.post(t,n))}async shareThread(t,n){return(await this.put("/project/thread/share",{threadId:t,isShared:n})).json()}connectStreamableHttpMCP(t,n,i,o){const l=()=>fetch(new URL("mcp",this.httpEndpoint.endsWith("/")?this.httpEndpoint:`${this.httpEndpoint}/`),{method:"POST",headers:{"Content-Type":"application/json",...t?{"x-session-id":t}:{}},body:JSON.stringify({clientType:"streamable-http",name:n,url:i,sessionId:t,...o?{headers:o}:{}})}).then(async u=>{if(u.status===401)throw new Error("Unauthorized");const c=await u.json();return{success:u.ok,mcp:c.mcp,error:c.detail}});return this.retryRequest(l)}}function fa(e={}){console.log("TIAWidget: Initializing...");const{containerId:t="tia-widget-root",onError:n=p=>{console.error("TIAWidget error:",p),UI.error(p.message)}}=e,i=window.origin+Gc();console.log("TIAWidget: Using API URL:",i);let o=document.getElementById(t);o?console.log("TIAWidget: Found existing container element"):(o=document.createElement("div"),o.id=t,o.style.position="fixed",o.style.bottom="20px",o.style.right="20px",o.style.zIndex="9999",document.body.appendChild(o),console.log("TIAWidget: Created container element"));const l=new URL(i).toString(),u=()=>{window.location.pathname!==Gc()+"/login"&&(window.location.href=Gc()+"/login")},c=p=>{const g=p?.message||p?.toString()||"An error occurred";n(new Error(g))},d=new FI(l,"webapp",{},u,c),h=xw.createRoot(o);return h.render(nt.jsx(Ns.Provider,{value:d,children:nt.jsx(_R,{children:nt.jsx(VI,{})})})),{unmount:()=>h.unmount()}}if(typeof window<"u"){const e=document.currentScript;if(e?.hasAttribute("data-auto-init")){console.log("TIAWidget: Auto-initializing from script tag");const t=e.getAttribute("data-container-id")||void 0;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{fa({containerId:t})}):fa({containerId:t})}else console.log("TIAWidget: Script loaded, no auto-init. Call TIAWidget.init() manually.")}return typeof window<"u"&&(window.TIAWidget={init:fa}),$a.initTIAWidget=fa,Object.defineProperty($a,Symbol.toStringTag,{value:"Module"}),$a})({},React,ReactDOM);
355
355
  //# sourceMappingURL=tia-widget.iife.js.map