chainlit 1.0.502__py3-none-any.whl → 1.0.503__py3-none-any.whl
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.
Potentially problematic release.
This version of chainlit might be problematic. Click here for more details.
- chainlit/cli/__init__.py +1 -1
- chainlit/copilot/dist/index.js +1 -1
- chainlit/data/__init__.py +16 -4
- chainlit/data/sql_alchemy.py +494 -0
- chainlit/data/storage_clients.py +58 -0
- chainlit/emitter.py +4 -0
- chainlit/frontend/dist/assets/{index-e306c2e5.js → index-a8e1b559.js} +2 -2
- chainlit/frontend/dist/assets/{react-plotly-cc656f1c.js → react-plotly-b225b63c.js} +1 -1
- chainlit/frontend/dist/index.html +1 -1
- chainlit/types.py +53 -1
- {chainlit-1.0.502.dist-info → chainlit-1.0.503.dist-info}/METADATA +2 -2
- {chainlit-1.0.502.dist-info → chainlit-1.0.503.dist-info}/RECORD +14 -12
- {chainlit-1.0.502.dist-info → chainlit-1.0.503.dist-info}/WHEEL +0 -0
- {chainlit-1.0.502.dist-info → chainlit-1.0.503.dist-info}/entry_points.txt +0 -0
chainlit/cli/__init__.py
CHANGED
|
@@ -175,7 +175,7 @@ def chainlit_create_secret(args=None, **kwargs):
|
|
|
175
175
|
trace_event("chainlit secret")
|
|
176
176
|
|
|
177
177
|
print(
|
|
178
|
-
f
|
|
178
|
+
f'Copy the following secret into your .env file. Once it is set, changing it will logout all users with active sessions.\nCHAINLIT_AUTH_SECRET="{random_secret()}"'
|
|
179
179
|
)
|
|
180
180
|
|
|
181
181
|
|
chainlit/copilot/dist/index.js
CHANGED
|
@@ -75,7 +75,7 @@ function print() { __p += __j.call(arguments, '') }
|
|
|
75
75
|
*
|
|
76
76
|
* This source code is licensed under the MIT license found in the
|
|
77
77
|
* LICENSE file in the root directory of this source tree.
|
|
78
|
-
*/var fE=_t;function GPe(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var VPe=typeof Object.is=="function"?Object.is:GPe,YPe=fE.useState,WPe=fE.useEffect,jPe=fE.useLayoutEffect,KPe=fE.useDebugValue;function XPe(e,t){var r=t(),n=YPe({inst:{value:r,getSnapshot:t}}),i=n[0].inst,v=n[1];return jPe(function(){i.value=r,i.getSnapshot=t,jk(i)&&v({inst:i})},[e,r,t]),WPe(function(){return jk(i)&&v({inst:i}),e(function(){jk(i)&&v({inst:i})})},[e]),KPe(r),r}function jk(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!VPe(e,r)}catch{return!0}}function QPe(e,t){return t()}var ZPe=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?QPe:XPe;Yae.useSyncExternalStore=fE.useSyncExternalStore!==void 0?fE.useSyncExternalStore:ZPe,Vae.exports=Yae;var JPe=Vae.exports;const Cy=()=>{},xh=Cy(),Kk=Object,Hs=e=>e===xh,i1=e=>typeof e=="function",Ry=(e,t)=>({...e,...t}),qPe=e=>i1(e.then),L6=new WeakMap;let e7e=0;const vw=e=>{const t=typeof e,r=e&&e.constructor,n=r==Date;let i,v;if(Kk(e)===e&&!n&&r!=RegExp){if(i=L6.get(e),i)return i;if(i=++e7e+"~",L6.set(e,i),r==Array){for(i="@",v=0;v<e.length;v++)i+=vw(e[v])+",";L6.set(e,i)}if(r==Kk){i="#";const s=Kk.keys(e).sort();for(;!Hs(v=s.pop());)Hs(e[v])||(i+=v+":"+vw(e[v])+",");L6.set(e,i)}}else i=n?e.toJSON():t=="symbol"?e.toString():t=="string"?JSON.stringify(e):""+e;return i},o1=new WeakMap,Xk={},P6={},Qk="undefined",k6=typeof window!=Qk,Zk=typeof document!=Qk,t7e=()=>k6&&typeof window.requestAnimationFrame!=Qk,Wae=(e,t)=>{const r=o1.get(e);return[()=>!Hs(t)&&e.get(t)||Xk,n=>{if(!Hs(t)){const i=e.get(t);t in P6||(P6[t]=i),r[5](t,Ry(i,n),i||Xk)}},r[6],()=>!Hs(t)&&t in P6?P6[t]:!Hs(t)&&e.get(t)||Xk]};let Jk=!0;const r7e=()=>Jk,[qk,e9]=k6&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[Cy,Cy],n7e=()=>{const e=Zk&&document.visibilityState;return Hs(e)||e!=="hidden"},a7e=e=>(Zk&&document.addEventListener("visibilitychange",e),qk("focus",e),()=>{Zk&&document.removeEventListener("visibilitychange",e),e9("focus",e)}),i7e=e=>{const t=()=>{Jk=!0,e()},r=()=>{Jk=!1};return qk("online",t),qk("offline",r),()=>{e9("online",t),e9("offline",r)}},o7e={isOnline:r7e,isVisible:n7e},s7e={initFocus:a7e,initReconnect:i7e},jae=!fa.useId,gw=!k6||"Deno"in window,l7e=e=>t7e()?window.requestAnimationFrame(e):setTimeout(e,1),t9=gw?_t.useEffect:_t.useLayoutEffect,r9=typeof navigator<"u"&&navigator.connection,Kae=!gw&&r9&&(["slow-2g","2g"].includes(r9.effectiveType)||r9.saveData),n9=e=>{if(i1(e))try{e=e()}catch{e=""}const t=e;return e=typeof e=="string"?e:(Array.isArray(e)?e.length:e)?vw(e):"",[e,t]};let u7e=0;const a9=()=>++u7e,Xae=0,Qae=1,Zae=2;var mw={__proto__:null,ERROR_REVALIDATE_EVENT:3,FOCUS_EVENT:Xae,MUTATE_EVENT:Zae,RECONNECT_EVENT:Qae};async function Jae(...e){const[t,r,n,i]=e,v=Ry({populateCache:!0,throwOnError:!0},typeof i=="boolean"?{revalidate:i}:i||{});let s=v.populateCache;const h=v.rollbackOnError;let a=v.optimisticData;const u=v.revalidate!==!1,g=b=>typeof h=="function"?h(b):h!==!1,o=v.throwOnError;if(i1(r)){const b=r,p=[],x=t.keys();for(const c of x)!/^\$(inf|sub)\$/.test(c)&&b(t.get(c)._k)&&p.push(c);return Promise.all(p.map(E))}return E(r);async function E(b){const[p]=n9(b);if(!p)return;const[x,c]=Wae(t,p),[l,d,f,m]=o1.get(t),_=()=>{const O=l[p];return u&&(delete f[p],delete m[p],O&&O[0])?O[0](Zae).then(()=>x().data):x().data};if(e.length<3)return _();let y=n,C;const A=a9();d[p]=[A,0];const N=!Hs(a),w=x(),S=w.data,R=w._c,M=Hs(R)?S:R;if(N&&(a=i1(a)?a(M,S):a,c({data:a,_c:M})),i1(y))try{y=y(M)}catch(O){C=O}if(y&&qPe(y))if(y=await y.catch(O=>{C=O}),A!==d[p][0]){if(C)throw C;return y}else C&&N&&g(C)&&(s=!0,c({data:M,_c:xh}));if(s&&!C)if(i1(s)){const O=s(y,M);c({data:O,error:xh,_c:xh})}else c({data:y,error:xh,_c:xh});if(d[p][1]=a9(),Promise.resolve(_()).then(()=>{c({_c:xh})}),C){if(o)throw C;return}return y}}const qae=(e,t)=>{for(const r in e)e[r][0]&&e[r][0](t)},c7e=(e,t)=>{if(!o1.has(e)){const r=Ry(s7e,t),n={},i=Jae.bind(xh,e);let v=Cy;const s={},h=(g,o)=>{const E=s[g]||[];return s[g]=E,E.push(o),()=>E.splice(E.indexOf(o),1)},a=(g,o,E)=>{e.set(g,o);const b=s[g];if(b)for(const p of b)p(o,E)},u=()=>{if(!o1.has(e)&&(o1.set(e,[n,{},{},{},i,a,h]),!gw)){const g=r.initFocus(setTimeout.bind(xh,qae.bind(xh,n,Xae))),o=r.initReconnect(setTimeout.bind(xh,qae.bind(xh,n,Qae)));v=()=>{g&&g(),o&&o(),o1.delete(e)}}};return u(),[e,i,u,v]}return[e,o1.get(e)[4]]},f7e=(e,t,r,n,i)=>{const v=r.errorRetryCount,s=i.retryCount,h=~~((Math.random()+.5)*(1<<(s<8?s:8)))*r.errorRetryInterval;!Hs(v)&&s>v||setTimeout(n,h,i)},d7e=(e,t)=>vw(e)==vw(t),[eie,h7e]=c7e(new Map),p7e=Ry({onLoadingSlow:Cy,onSuccess:Cy,onError:Cy,onErrorRetry:f7e,onDiscarded:Cy,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:Kae?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:Kae?5e3:3e3,compare:d7e,isPaused:()=>!1,cache:eie,mutate:h7e,fallback:{}},o7e),v7e=(e,t)=>{const r=Ry(e,t);if(t){const{use:n,fallback:i}=e,{use:v,fallback:s}=t;n&&v&&(r.use=n.concat(v)),i&&s&&(r.fallback=Ry(i,s))}return r},g7e=_t.createContext({}),m7e="$inf$",tie=k6&&window.__SWR_DEVTOOLS_USE__,y7e=tie?window.__SWR_DEVTOOLS_USE__:[],b7e=()=>{tie&&(window.__SWR_DEVTOOLS_REACT__=fa)},_7e=e=>i1(e[1])?[e[0],e[1],e[2]||{}]:[e[0],null,(e[1]===null?e[2]:e[1])||{}],x7e=()=>Ry(p7e,_t.useContext(g7e)),E7e=e=>(t,r,n)=>e(t,r&&((...v)=>{const[s]=n9(t),[,,,h]=o1.get(eie);if(s.startsWith(m7e))return r(...v);const a=h[s];return Hs(a)?r(...v):(delete h[s],a)}),n),S7e=y7e.concat(E7e),T7e=e=>function(...r){const n=x7e(),[i,v,s]=_7e(r),h=v7e(n,s);let a=e;const{use:u}=h,g=(u||[]).concat(S7e);for(let o=g.length;o--;)a=g[o](a);return a(i,v||h.fetcher||null,h)},w7e=(e,t,r)=>{const n=t[e]||(t[e]=[]);return n.push(r),()=>{const i=n.indexOf(r);i>=0&&(n[i]=n[n.length-1],n.pop())}};b7e();const rie=fa.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e)}),i9={dedupe:!0},A7e=T7e((e,t,r)=>{const{cache:n,compare:i,suspense:v,fallbackData:s,revalidateOnMount:h,revalidateIfStale:a,refreshInterval:u,refreshWhenHidden:g,refreshWhenOffline:o,keepPreviousData:E}=r,[b,p,x,c]=o1.get(n),[l,d]=n9(e),f=_t.useRef(!1),m=_t.useRef(!1),_=_t.useRef(l),y=_t.useRef(t),C=_t.useRef(r),A=()=>C.current,N=()=>A().isVisible()&&A().isOnline(),[w,S,R,M]=Wae(n,l),O=_t.useRef({}).current,F=Hs(s)?r.fallback[l]:s,D=(ae,oe)=>{for(const he in O){const q=he;if(q==="data"){if(!i(ae[q],oe[q])&&(!Hs(ae[q])||!i(H,oe[q])))return!1}else if(oe[q]!==ae[q])return!1}return!0},k=_t.useMemo(()=>{const ae=(()=>!l||!t?!1:Hs(h)?A().isPaused()||v?!1:Hs(a)?!0:a:h)(),oe=re=>{const fe=Ry(re);return delete fe._k,ae?{isValidating:!0,isLoading:!0,...fe}:fe},he=w(),q=M(),J=oe(he),le=he===q?J:oe(q);let Z=J;return[()=>{const re=oe(w());return D(re,Z)?(Z.data=re.data,Z.isLoading=re.isLoading,Z.isValidating=re.isValidating,Z.error=re.error,Z):(Z=re,re)},()=>le]},[n,l]),I=JPe.useSyncExternalStore(_t.useCallback(ae=>R(l,(oe,he)=>{D(he,oe)||ae()}),[n,l]),k[0],k[1]),T=!f.current,P=b[l]&&b[l].length>0,L=I.data,z=Hs(L)?F:L,B=I.error,Y=_t.useRef(z),H=E?Hs(L)?Y.current:L:z,G=(()=>P&&!Hs(B)?!1:T&&!Hs(h)?h:A().isPaused()?!1:v?Hs(z)?!1:a:Hs(z)||a)(),W=!!(l&&t&&T&&G),V=Hs(I.isValidating)?W:I.isValidating,j=Hs(I.isLoading)?W:I.isLoading,X=_t.useCallback(async ae=>{const oe=y.current;if(!l||!oe||m.current||A().isPaused())return!1;let he,q,J=!0;const le=ae||{},Z=!x[l]||!le.dedupe,re=()=>jae?!m.current&&l===_.current&&f.current:l===_.current,fe={isValidating:!1,isLoading:!1},ne=()=>{S(fe)},Q=()=>{const ie=x[l];ie&&ie[1]===q&&delete x[l]},de={isValidating:!0};Hs(w().data)&&(de.isLoading=!0);try{if(Z&&(S(de),r.loadingTimeout&&Hs(w().data)&&setTimeout(()=>{J&&re()&&A().onLoadingSlow(l,r)},r.loadingTimeout),x[l]=[oe(d),a9()]),[he,q]=x[l],he=await he,Z&&setTimeout(Q,r.dedupingInterval),!x[l]||x[l][1]!==q)return Z&&re()&&A().onDiscarded(l),!1;fe.error=xh;const ie=p[l];if(!Hs(ie)&&(q<=ie[0]||q<=ie[1]||ie[1]===0))return ne(),Z&&re()&&A().onDiscarded(l),!1;const ce=w().data;fe.data=i(ce,he)?ce:he,Z&&re()&&A().onSuccess(he,l,r)}catch(ie){Q();const ce=A(),{shouldRetryOnError:ge}=ce;ce.isPaused()||(fe.error=ie,Z&&re()&&(ce.onError(ie,l,ce),(ge===!0||i1(ge)&&ge(ie))&&N()&&ce.onErrorRetry(ie,l,ce,Ee=>{const Se=b[l];Se&&Se[0]&&Se[0](mw.ERROR_REVALIDATE_EVENT,Ee)},{retryCount:(le.retryCount||0)+1,dedupe:!0})))}return J=!1,ne(),!0},[l,n]),ee=_t.useCallback((...ae)=>Jae(n,_.current,...ae),[]);if(t9(()=>{y.current=t,C.current=r,Hs(L)||(Y.current=L)}),t9(()=>{if(!l)return;const ae=X.bind(xh,i9);let oe=0;const q=w7e(l,b,(J,le={})=>{if(J==mw.FOCUS_EVENT){const Z=Date.now();A().revalidateOnFocus&&Z>oe&&N()&&(oe=Z+A().focusThrottleInterval,ae())}else if(J==mw.RECONNECT_EVENT)A().revalidateOnReconnect&&N()&&ae();else{if(J==mw.MUTATE_EVENT)return X();if(J==mw.ERROR_REVALIDATE_EVENT)return X(le)}});return m.current=!1,_.current=l,f.current=!0,S({_k:d}),G&&(Hs(z)||gw?ae():l7e(ae)),()=>{m.current=!0,q()}},[l]),t9(()=>{let ae;function oe(){const q=i1(u)?u(w().data):u;q&&ae!==-1&&(ae=setTimeout(he,q))}function he(){!w().error&&(g||A().isVisible())&&(o||A().isOnline())?X(i9).then(oe):oe()}return oe(),()=>{ae&&(clearTimeout(ae),ae=-1)}},[u,g,o,l]),_t.useDebugValue(H),v&&Hs(z)&&l){if(!jae&&gw)throw new Error("Fallback data is required when using suspense in SSR.");y.current=t,C.current=r,m.current=!1;const ae=c[l];if(!Hs(ae)){const oe=ee(ae);rie(oe)}if(Hs(B)){const oe=X(i9);Hs(H)||(oe.status="fulfilled",oe.value=!0),rie(oe)}else throw B}return{mutate:ee,get data(){return O.data=!0,H},get error(){return O.error=!0,B},get isValidating(){return O.isValidating=!0,V},get isLoading(){return O.isLoading=!0,j}}});var C7e=e=>{let t={},r=new Date,n=new Date;n.setDate(r.getDate()-1);let i=new Date;i.setDate(r.getDate()-7);let v=new Date;return v.setDate(r.getDate()-30),e.forEach(s=>{let h=new Date(s.createdAt),a=h.toDateString()===r.toDateString(),u=h.toDateString()===n.toDateString(),g=h>=i,o=h>=v,E;a?E="Today":u?E="Yesterday":g?E="Previous 7 days":o?E="Previous 30 days":E=h.toLocaleString("default",{month:"long",year:"numeric"}).split(" ").slice(0,1).join(" "),t[E]||(t[E]=[]),t[E].push(s)}),t},nie=Ls({key:"ThreadIdToResume",default:void 0}),R7e=Ls({key:"ChatProfile",default:void 0}),aie=Ls({key:"SessionId",default:yae()}),o9=gae({key:"SessionIdSelector",get:({get:e})=>e(aie),set:({set:e},t)=>e(aie,t instanceof jLe?yae():t)}),s9=Ls({key:"Session",dangerouslyAllowMutability:!0,default:void 0}),l9=Ls({key:"Actions",default:[]}),yw=Ls({key:"Messages",dangerouslyAllowMutability:!0,default:[]}),iie=Ls({key:"TokenCount",default:0}),u9=Ls({key:"Loading",default:!1}),c9=Ls({key:"AskUser",default:void 0}),M7e=Ls({key:"CallFn",default:void 0}),F6=Ls({key:"ChatSettings",default:[]}),oie=gae({key:"ChatSettingsValue/Default",get:({get:e})=>e(F6).reduce((t,r)=>(t[r.id]=r.initial,t),{})}),f9=Ls({key:"ChatSettingsValue",default:oie}),d9=Ls({key:"DisplayElements",default:[]}),h9=Ls({key:"AvatarElements",default:[]}),p9=Ls({key:"TasklistElements",default:[]}),B6=Ls({key:"FirstUserInteraction",default:void 0}),Mb=Ls({key:"AccessToken",default:void 0}),I7e=Ls({key:"User",default:null}),bw=Ls({key:"ThreadHistory",default:{threads:void 0,currentThreadId:void 0,timeGroupedThreads:void 0,pageInfo:void 0},effects:[({setSelf:e,onSet:t})=>{t((r,n)=>{let i=r==null?void 0:r.timeGroupedThreads;r!=null&&r.threads&&!lE.isEqual(r.threads,n==null?void 0:n.timeGroupedThreads)&&(i=C7e(r.threads)),e({...r,timeGroupedThreads:i})})}]}),dE=Ls({key:"SideView",default:void 0}),Gg=()=>{let e=uo(u9),t=uo(d9),r=uo(h9),n=uo(p9),i=uo(l9),v=uo(s9),s=uo(c9),h=uo(F6),a=uo(f9),u=uo(oie),g=(v==null?void 0:v.socket.connected)&&!(v!=null&&v.error),o=!g||e||(s==null?void 0:s.spec.type)==="file"||(s==null?void 0:s.spec.type)==="action";return{actions:i,askUser:s,avatars:r,chatSettingsDefaultValue:u,chatSettingsInputs:h,chatSettingsValue:a,connected:g,disabled:o,elements:t,error:v==null?void 0:v.error,loading:e,tasklists:n}},O7e=e=>{let t=[];for(let r of e)t=Ib(t,r);return t},Ib=(e,t)=>_w(e,t.id)?Ob(e,t.id,t):"parentId"in t&&t.parentId?lie(e,t.parentId,t):"indent"in t&&t.indent&&t.indent>0?sie(e,t.indent,t):[...e,t],sie=(e,t,r,n=0)=>{let i=[...e];if(i.length===0)return[...i,r];{let v=i.length-1,s=i[v];return s.steps=s.steps||[],n+1===t?(s.steps=[...s.steps,r],i[v]={...s},i):(s.steps=sie(s.steps,t,r,n+1),i[v]={...s},i)}},lie=(e,t,r)=>{let n=[...e];for(let i=0;i<n.length;i++){let v=n[i];lE.isEqual(v.id,t)?(v.steps=v.steps?[...v.steps,r]:[r],n[i]={...v}):_w(n,t)&&v.steps&&(v.steps=lie(v.steps,t,r),n[i]={...v})}return n},_w=(e,t)=>{for(let r of e)if(lE.isEqual(r.id,t)||r.steps&&r.steps.length>0&&_w(r.steps,t))return!0;return!1},Ob=(e,t,r)=>{let n=[...e];for(let i=0;i<n.length;i++){let v=n[i];lE.isEqual(v.id,t)?n[i]={steps:v.steps,...r}:_w(n,t)&&v.steps&&(v.steps=Ob(v.steps,t,r),n[i]={...v})}return n},uie=(e,t)=>{let r=[...e];for(let n=0;n<r.length;n++){let i=r[n];i.id===t?r=[...r.slice(0,n),...r.slice(n+1)]:_w(r,t)&&i.steps&&(i.steps=uie(i.steps,t),r[n]={...i})}return r},cie=(e,t,r,n)=>{let i=[...e];for(let v=0;v<i.length;v++){let s=i[v];lE.isEqual(s.id,t)?("content"in s&&s.content!==void 0?n?s.content=r:s.content+=r:"output"in s&&s.output!==void 0&&(n?s.output=r:s.output+=r),i[v]={...s}):s.steps&&(s.steps=cie(s.steps,t,r,n),i[v]={...s})}return i},nd=()=>{let e=uo(Mb),t=uo(s9),r=uo(c9),n=uo(o9),i=E6(F6),v=E6(o9),s=E6(f9),h=as(B6),a=as(u9),u=as(yw),g=as(d9),o=as(h9),E=as(p9),b=as(l9),p=as(iie),x=as(nie),c=as(dE),l=_t.useCallback(()=>{t==null||t.socket.emit("clear_session"),t==null||t.socket.disconnect(),x(void 0),v(),h(void 0),u([]),g([]),o([]),E([]),b([]),p(0),i(),s(),c(void 0)},[t]),d=_t.useCallback((C,A)=>{u(N=>Ib(N,C)),t==null||t.socket.emit("ui_message",{message:C,fileReferences:A})},[t==null?void 0:t.socket]),f=_t.useCallback(C=>{r&&(u(A=>Ib(A,C)),r.callback(C))},[r]),m=_t.useCallback(C=>{t==null||t.socket.emit("chat_settings_change",C)},[t==null?void 0:t.socket]),_=_t.useCallback(()=>{a(!1),t==null||t.socket.emit("stop")},[t==null?void 0:t.socket]),y=_t.useCallback(C=>{let A=t==null?void 0:t.socket;if(!A)return;let N=new Promise((w,S)=>{A.once("action_response",R=>{R.status?w(R):S(R)})});return A.emit("action_call",C),N},[t==null?void 0:t.socket]);return{uploadFile:_t.useCallback((C,A,N)=>C.uploadFile(A,N,n,e),[n,e]),callAction:y,clear:l,replyMessage:f,sendMessage:d,stopTask:_,setIdToResume:x,updateChatSettings:m}},z6=()=>{let e=uo(yw),t=uo(B6);return{messages:e,firstInteraction:t}},My=()=>{let e=uo(o9),[t,r]=tc(s9),n=E6(f9),i=as(B6),v=as(u9),s=as(yw),h=as(c9),a=as(M7e),u=as(d9),g=as(h9),o=as(p9),E=as(l9),b=as(F6),p=as(iie),[x,c]=tc(R7e),l=uo(nie),d=_t.useCallback(({client:_,userEnv:y,accessToken:C})=>{let A=new URL(_.httpEndpoint).pathname,N=A.endsWith("/")?"ws/socket.io":"/ws/socket.io",w=D6(_.httpEndpoint,{path:`${A}${N}`,extraHeaders:{Authorization:C||"","X-Chainlit-Client-Type":_.type,"X-Chainlit-Session-Id":e,"X-Chainlit-Thread-Id":l||"","user-env":JSON.stringify(y),"X-Chainlit-Chat-Profile":x||""}});r(S=>{var R,M;return(R=S==null?void 0:S.socket)==null||R.removeAllListeners(),(M=S==null?void 0:S.socket)==null||M.close(),{socket:w}}),w.on("connect",()=>{w.emit("connection_successful"),r(S=>({...S,error:!1}))}),w.on("connect_error",S=>{r(R=>({...R,error:!0}))}),w.on("task_start",()=>{v(!0)}),w.on("task_end",()=>{v(!1)}),w.on("reload",()=>{w.emit("clear_session"),window.location.reload()}),w.on("resume_thread",S=>{var O,F;let R=[];for(let D of S.steps)R=Ib(R,D);(O=S.metadata)!=null&&O.chat_profile&&c((F=S.metadata)==null?void 0:F.chat_profile),s(R);let M=S.elements||[];g(M.filter(D=>D.type==="avatar")),o(M.filter(D=>D.type==="tasklist")),u(M.filter(D=>["avatar","tasklist"].indexOf(D.type)===-1))}),w.on("new_message",S=>{s(R=>Ib(R,S))}),w.on("first_interaction",S=>{i(S)}),w.on("update_message",S=>{s(R=>Ob(R,S.id,S))}),w.on("delete_message",S=>{s(R=>uie(R,S.id))}),w.on("stream_start",S=>{s(R=>Ib(R,S))}),w.on("stream_token",({id:S,token:R,isSequence:M})=>{s(O=>cie(O,S,R,M))}),w.on("ask",({msg:S,spec:R},M)=>{h({spec:R,callback:M}),s(O=>Ib(O,S)),v(!1)}),w.on("ask_timeout",()=>{h(void 0),v(!1)}),w.on("clear_ask",()=>{h(void 0)}),w.on("call_fn",({name:S,args:R},M)=>{let O=new CustomEvent("chainlit-call-fn",{detail:{name:S,args:R,callback:M}});window.dispatchEvent(O),a({name:S,args:R,callback:M})}),w.on("clear_call_fn",()=>{a(void 0)}),w.on("call_fn_timeout",()=>{a(void 0)}),w.on("chat_settings",S=>{b(S),n()}),w.on("element",S=>{!S.url&&S.chainlitKey&&(S.url=_.getElementUrl(S.chainlitKey,e)),S.type==="avatar"?g(R=>{let M=R.findIndex(O=>O.id===S.id);return M===-1?[...R,S]:[...R.slice(0,M),S,...R.slice(M+1)]}):S.type==="tasklist"?o(R=>{let M=R.findIndex(O=>O.id===S.id);return M===-1?[...R,S]:[...R.slice(0,M),S,...R.slice(M+1)]}):u(R=>{let M=R.findIndex(O=>O.id===S.id);return M===-1?[...R,S]:[...R.slice(0,M),S,...R.slice(M+1)]})}),w.on("remove_element",S=>{u(R=>R.filter(M=>M.id!==S.id)),o(R=>R.filter(M=>M.id!==S.id)),g(R=>R.filter(M=>M.id!==S.id))}),w.on("action",S=>{E(R=>[...R,S])}),w.on("remove_action",S=>{E(R=>{let M=R.findIndex(O=>O.id===S.id);return M===-1?R:[...R.slice(0,M),...R.slice(M+1)]})}),w.on("token_usage",S=>{p(R=>R+S)})},[r,e,x]),f=_t.useCallback(lE.debounce(d,200),[d]),m=_t.useCallback(()=>{t!=null&&t.socket&&(t.socket.removeAllListeners(),t.socket.close())},[t]);return{connect:f,disconnect:m,session:t,chatProfile:x,idToResume:l,setChatProfile:c}},v9="token";function fie(){try{return localStorage.getItem(v9)}catch{return}}function D7e(e){try{return localStorage.setItem(v9,e)}catch{return}}function die(){try{return localStorage.removeItem(v9)}catch{return}}var N7e=async(e,t,r)=>{var n;return(n=await e.get(t,r))==null?void 0:n.json()};function U6(e,t,r){let n=uo(Mb);return A7e(t?[t,n]:null,([i,v])=>N7e(e,i,v),r)}var hie=e=>{let{data:t,isLoading:r}=U6(e,"/auth/config"),[n,i]=tc(Mb),v=as(bw),[s,h]=tc(I7e),a=!!(!r&&t),u=async()=>{await e.logout(),h(null),die(),i(""),v(void 0)},g=E=>{if(!E){u();return}try{let{exp:b,...p}=HPe(E);D7e(E),i(`Bearer ${E}`),h(p)}catch(b){console.error("Invalid token, clearing token from local storage","error:",b),u()}};_t.useEffect(()=>{if(!s&&fie()){g(fie());return}},[]);let o=!!n;return t&&!t.requireLogin?{data:t,user:null,isReady:a,isAuthenticated:!0,accessToken:"",logout:()=>{},setAccessToken:()=>{}}:{data:t,user:s,isAuthenticated:o,isReady:a,accessToken:n,logout:u,setAccessToken:g}},g9=class extends Error{constructor(t,r){super(t),this.detail=r}toString(){return this.detail?`${this.message}: ${this.detail}`:this.message}},L7e=class{constructor(e,t,r,n){this.httpEndpoint=e,this.type=t,this.on401=r,this.onError=n}buildEndpoint(e){return this.httpEndpoint.endsWith("/")?`${this.httpEndpoint.slice(0,-1)}${e}`:`${this.httpEndpoint}${e}`}checkToken(e){let t="Bearer ";return e.startsWith(t)?e:t+e}async fetch(e,t,r,n,i){try{let v={};r&&(v.Authorization=this.checkToken(r));let s;n instanceof FormData?s=n:(v["Content-Type"]="application/json",s=n?JSON.stringify(n):null);let h=await fetch(this.buildEndpoint(t),{method:e,headers:v,signal:i,body:s});if(!h.ok){let a=await h.json();throw h.status===401&&this.on401&&(die(),this.on401()),new g9(h.statusText,a.detail)}return h}catch(v){throw v instanceof g9&&this.onError&&this.onError(v),console.error(v),v}}async get(e,t){return await this.fetch("GET",e,t)}async post(e,t,r,n){return await this.fetch("POST",e,r,t,n)}async put(e,t,r){return await this.fetch("PUT",e,r,t)}async patch(e,t,r){return await this.fetch("PATCH",e,r,t)}async delete(e,t,r){return await this.fetch("DELETE",e,r,t)}},m9=class extends L7e{async headerAuth(){return(await this.post("/auth/header",{})).json()}async passwordAuth(t){return(await this.post("/login",t)).json()}async logout(){return(await this.post("/logout",{})).json()}async getGeneration(t,r={},n,i,v){var a,u;let s={userEnv:r};t.type==="CHAT"?s.chatGeneration=t:s.completionGeneration=t;let h=(u=(a=await this.post("/generation",s,i,n.signal))==null?void 0:a.body)==null?void 0:u.getReader();return new ReadableStream({start(g){function o(){h.read().then(({done:E,value:b})=>{if(E){g.close(),v&&v(E,"");return}let p=new TextDecoder("utf-8").decode(b);v&&v(E,p),g.enqueue(b),o()}).catch(E=>{g.close(),v&&v(!0,""),console.error(E)})}o()}})}async setFeedback(t,r){return(await this.put("/feedback",{feedback:t},r)).json()}async deleteFeedback(t,r){return(await this.delete("/feedback",{feedbackId:t},r)).json()}async listThreads(t,r,n){return(await this.post("/project/threads",{pagination:t,filter:r},n)).json()}async deleteThread(t,r){return(await this.delete("/project/thread",{threadId:t},r)).json()}uploadFile(t,r,n,i){let v=new XMLHttpRequest,s=new Promise((h,a)=>{let u=new FormData;u.append("file",t),v.open("POST",this.buildEndpoint(`/project/file?session_id=${n}`),!0),i&&v.setRequestHeader("Authorization",this.checkToken(i)),v.upload.onprogress=function(g){if(g.lengthComputable){let o=g.loaded/g.total*100;r(o)}},v.onload=function(){if(v.status===200){let g=JSON.parse(v.responseText);h(g)}else a("Upload failed")},v.onerror=function(){a("Upload error")},v.send(u)});return{xhr:v,promise:s}}getElementUrl(t,r){let n=`?session_id=${r}`;return this.buildEndpoint(`/project/file/${t}${n}`)}getLogoEndpoint(t){return this.buildEndpoint(`/logo?theme=${t}`)}getOAuthEndpoint(t){return this.buildEndpoint(`/auth/oauth/${t}`)}};function P7e(e){const t=new URL(e),r=`${t.protocol}//${t.host}`,n=()=>{O0.error("Unauthorized")},i=v=>{O0.error(v.toString())};return new m9(r,"copilot",n,i)}const k7e={accessToken:void 0,apiClient:new m9("","copilot")},hE=_t.createContext(k7e);let $6;const F7e=new Uint8Array(16);function B7e(){if(!$6&&($6=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!$6))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return $6(F7e)}const If=[];for(let e=0;e<256;++e)If.push((e+256).toString(16).slice(1));function z7e(e,t=0){return(If[e[t+0]]+If[e[t+1]]+If[e[t+2]]+If[e[t+3]]+"-"+If[e[t+4]]+If[e[t+5]]+"-"+If[e[t+6]]+If[e[t+7]]+"-"+If[e[t+8]]+If[e[t+9]]+"-"+If[e[t+10]]+If[e[t+11]]+If[e[t+12]]+If[e[t+13]]+If[e[t+14]]+If[e[t+15]]).toLowerCase()}const pie={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function y9(e,t,r){if(pie.randomUUID&&!t&&!e)return pie.randomUUID();e=e||{};const n=e.random||(e.rng||B7e)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){r=r||0;for(let i=0;i<16;++i)t[r+i]=n[i];return t}return z7e(n)}const xw={black:"#000",white:"#fff"},pE={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},vE={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},gE={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},mE={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},yE={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},Ew={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},vie={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"};function lr(){return lr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},lr.apply(this,arguments)}function s1(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function gie(e){if(!s1(e))return e;const t={};return Object.keys(e).forEach(r=>{t[r]=gie(e[r])}),t}function ad(e,t,r={clone:!0}){const n=r.clone?lr({},e):e;return s1(e)&&s1(t)&&Object.keys(t).forEach(i=>{i!=="__proto__"&&(s1(t[i])&&i in e&&s1(e[i])?n[i]=ad(e[i],t[i],r):r.clone?n[i]=s1(t[i])?gie(t[i]):t[i]:n[i]=t[i])}),n}function Iy(e){let t="https://mui.com/production-error/?code="+e;for(let r=1;r<arguments.length;r+=1)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified MUI error #"+e+"; visit "+t+" for the full message."}var pl={};/**
|
|
78
|
+
*/var fE=_t;function GPe(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var VPe=typeof Object.is=="function"?Object.is:GPe,YPe=fE.useState,WPe=fE.useEffect,jPe=fE.useLayoutEffect,KPe=fE.useDebugValue;function XPe(e,t){var r=t(),n=YPe({inst:{value:r,getSnapshot:t}}),i=n[0].inst,v=n[1];return jPe(function(){i.value=r,i.getSnapshot=t,jk(i)&&v({inst:i})},[e,r,t]),WPe(function(){return jk(i)&&v({inst:i}),e(function(){jk(i)&&v({inst:i})})},[e]),KPe(r),r}function jk(e){var t=e.getSnapshot;e=e.value;try{var r=t();return!VPe(e,r)}catch{return!0}}function QPe(e,t){return t()}var ZPe=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?QPe:XPe;Yae.useSyncExternalStore=fE.useSyncExternalStore!==void 0?fE.useSyncExternalStore:ZPe,Vae.exports=Yae;var JPe=Vae.exports;const Cy=()=>{},xh=Cy(),Kk=Object,Hs=e=>e===xh,i1=e=>typeof e=="function",Ry=(e,t)=>({...e,...t}),qPe=e=>i1(e.then),L6=new WeakMap;let e7e=0;const vw=e=>{const t=typeof e,r=e&&e.constructor,n=r==Date;let i,v;if(Kk(e)===e&&!n&&r!=RegExp){if(i=L6.get(e),i)return i;if(i=++e7e+"~",L6.set(e,i),r==Array){for(i="@",v=0;v<e.length;v++)i+=vw(e[v])+",";L6.set(e,i)}if(r==Kk){i="#";const s=Kk.keys(e).sort();for(;!Hs(v=s.pop());)Hs(e[v])||(i+=v+":"+vw(e[v])+",");L6.set(e,i)}}else i=n?e.toJSON():t=="symbol"?e.toString():t=="string"?JSON.stringify(e):""+e;return i},o1=new WeakMap,Xk={},P6={},Qk="undefined",k6=typeof window!=Qk,Zk=typeof document!=Qk,t7e=()=>k6&&typeof window.requestAnimationFrame!=Qk,Wae=(e,t)=>{const r=o1.get(e);return[()=>!Hs(t)&&e.get(t)||Xk,n=>{if(!Hs(t)){const i=e.get(t);t in P6||(P6[t]=i),r[5](t,Ry(i,n),i||Xk)}},r[6],()=>!Hs(t)&&t in P6?P6[t]:!Hs(t)&&e.get(t)||Xk]};let Jk=!0;const r7e=()=>Jk,[qk,e9]=k6&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[Cy,Cy],n7e=()=>{const e=Zk&&document.visibilityState;return Hs(e)||e!=="hidden"},a7e=e=>(Zk&&document.addEventListener("visibilitychange",e),qk("focus",e),()=>{Zk&&document.removeEventListener("visibilitychange",e),e9("focus",e)}),i7e=e=>{const t=()=>{Jk=!0,e()},r=()=>{Jk=!1};return qk("online",t),qk("offline",r),()=>{e9("online",t),e9("offline",r)}},o7e={isOnline:r7e,isVisible:n7e},s7e={initFocus:a7e,initReconnect:i7e},jae=!fa.useId,gw=!k6||"Deno"in window,l7e=e=>t7e()?window.requestAnimationFrame(e):setTimeout(e,1),t9=gw?_t.useEffect:_t.useLayoutEffect,r9=typeof navigator<"u"&&navigator.connection,Kae=!gw&&r9&&(["slow-2g","2g"].includes(r9.effectiveType)||r9.saveData),n9=e=>{if(i1(e))try{e=e()}catch{e=""}const t=e;return e=typeof e=="string"?e:(Array.isArray(e)?e.length:e)?vw(e):"",[e,t]};let u7e=0;const a9=()=>++u7e,Xae=0,Qae=1,Zae=2;var mw={__proto__:null,ERROR_REVALIDATE_EVENT:3,FOCUS_EVENT:Xae,MUTATE_EVENT:Zae,RECONNECT_EVENT:Qae};async function Jae(...e){const[t,r,n,i]=e,v=Ry({populateCache:!0,throwOnError:!0},typeof i=="boolean"?{revalidate:i}:i||{});let s=v.populateCache;const h=v.rollbackOnError;let a=v.optimisticData;const u=v.revalidate!==!1,g=b=>typeof h=="function"?h(b):h!==!1,o=v.throwOnError;if(i1(r)){const b=r,p=[],x=t.keys();for(const c of x)!/^\$(inf|sub)\$/.test(c)&&b(t.get(c)._k)&&p.push(c);return Promise.all(p.map(E))}return E(r);async function E(b){const[p]=n9(b);if(!p)return;const[x,c]=Wae(t,p),[l,d,f,m]=o1.get(t),_=()=>{const O=l[p];return u&&(delete f[p],delete m[p],O&&O[0])?O[0](Zae).then(()=>x().data):x().data};if(e.length<3)return _();let y=n,C;const A=a9();d[p]=[A,0];const N=!Hs(a),w=x(),S=w.data,R=w._c,M=Hs(R)?S:R;if(N&&(a=i1(a)?a(M,S):a,c({data:a,_c:M})),i1(y))try{y=y(M)}catch(O){C=O}if(y&&qPe(y))if(y=await y.catch(O=>{C=O}),A!==d[p][0]){if(C)throw C;return y}else C&&N&&g(C)&&(s=!0,c({data:M,_c:xh}));if(s&&!C)if(i1(s)){const O=s(y,M);c({data:O,error:xh,_c:xh})}else c({data:y,error:xh,_c:xh});if(d[p][1]=a9(),Promise.resolve(_()).then(()=>{c({_c:xh})}),C){if(o)throw C;return}return y}}const qae=(e,t)=>{for(const r in e)e[r][0]&&e[r][0](t)},c7e=(e,t)=>{if(!o1.has(e)){const r=Ry(s7e,t),n={},i=Jae.bind(xh,e);let v=Cy;const s={},h=(g,o)=>{const E=s[g]||[];return s[g]=E,E.push(o),()=>E.splice(E.indexOf(o),1)},a=(g,o,E)=>{e.set(g,o);const b=s[g];if(b)for(const p of b)p(o,E)},u=()=>{if(!o1.has(e)&&(o1.set(e,[n,{},{},{},i,a,h]),!gw)){const g=r.initFocus(setTimeout.bind(xh,qae.bind(xh,n,Xae))),o=r.initReconnect(setTimeout.bind(xh,qae.bind(xh,n,Qae)));v=()=>{g&&g(),o&&o(),o1.delete(e)}}};return u(),[e,i,u,v]}return[e,o1.get(e)[4]]},f7e=(e,t,r,n,i)=>{const v=r.errorRetryCount,s=i.retryCount,h=~~((Math.random()+.5)*(1<<(s<8?s:8)))*r.errorRetryInterval;!Hs(v)&&s>v||setTimeout(n,h,i)},d7e=(e,t)=>vw(e)==vw(t),[eie,h7e]=c7e(new Map),p7e=Ry({onLoadingSlow:Cy,onSuccess:Cy,onError:Cy,onErrorRetry:f7e,onDiscarded:Cy,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:Kae?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:Kae?5e3:3e3,compare:d7e,isPaused:()=>!1,cache:eie,mutate:h7e,fallback:{}},o7e),v7e=(e,t)=>{const r=Ry(e,t);if(t){const{use:n,fallback:i}=e,{use:v,fallback:s}=t;n&&v&&(r.use=n.concat(v)),i&&s&&(r.fallback=Ry(i,s))}return r},g7e=_t.createContext({}),m7e="$inf$",tie=k6&&window.__SWR_DEVTOOLS_USE__,y7e=tie?window.__SWR_DEVTOOLS_USE__:[],b7e=()=>{tie&&(window.__SWR_DEVTOOLS_REACT__=fa)},_7e=e=>i1(e[1])?[e[0],e[1],e[2]||{}]:[e[0],null,(e[1]===null?e[2]:e[1])||{}],x7e=()=>Ry(p7e,_t.useContext(g7e)),E7e=e=>(t,r,n)=>e(t,r&&((...v)=>{const[s]=n9(t),[,,,h]=o1.get(eie);if(s.startsWith(m7e))return r(...v);const a=h[s];return Hs(a)?r(...v):(delete h[s],a)}),n),S7e=y7e.concat(E7e),T7e=e=>function(...r){const n=x7e(),[i,v,s]=_7e(r),h=v7e(n,s);let a=e;const{use:u}=h,g=(u||[]).concat(S7e);for(let o=g.length;o--;)a=g[o](a);return a(i,v||h.fetcher||null,h)},w7e=(e,t,r)=>{const n=t[e]||(t[e]=[]);return n.push(r),()=>{const i=n.indexOf(r);i>=0&&(n[i]=n[n.length-1],n.pop())}};b7e();const rie=fa.use||(e=>{if(e.status==="pending")throw e;if(e.status==="fulfilled")return e.value;throw e.status==="rejected"?e.reason:(e.status="pending",e.then(t=>{e.status="fulfilled",e.value=t},t=>{e.status="rejected",e.reason=t}),e)}),i9={dedupe:!0},A7e=T7e((e,t,r)=>{const{cache:n,compare:i,suspense:v,fallbackData:s,revalidateOnMount:h,revalidateIfStale:a,refreshInterval:u,refreshWhenHidden:g,refreshWhenOffline:o,keepPreviousData:E}=r,[b,p,x,c]=o1.get(n),[l,d]=n9(e),f=_t.useRef(!1),m=_t.useRef(!1),_=_t.useRef(l),y=_t.useRef(t),C=_t.useRef(r),A=()=>C.current,N=()=>A().isVisible()&&A().isOnline(),[w,S,R,M]=Wae(n,l),O=_t.useRef({}).current,F=Hs(s)?r.fallback[l]:s,D=(ae,oe)=>{for(const he in O){const q=he;if(q==="data"){if(!i(ae[q],oe[q])&&(!Hs(ae[q])||!i(H,oe[q])))return!1}else if(oe[q]!==ae[q])return!1}return!0},k=_t.useMemo(()=>{const ae=(()=>!l||!t?!1:Hs(h)?A().isPaused()||v?!1:Hs(a)?!0:a:h)(),oe=re=>{const fe=Ry(re);return delete fe._k,ae?{isValidating:!0,isLoading:!0,...fe}:fe},he=w(),q=M(),J=oe(he),le=he===q?J:oe(q);let Z=J;return[()=>{const re=oe(w());return D(re,Z)?(Z.data=re.data,Z.isLoading=re.isLoading,Z.isValidating=re.isValidating,Z.error=re.error,Z):(Z=re,re)},()=>le]},[n,l]),I=JPe.useSyncExternalStore(_t.useCallback(ae=>R(l,(oe,he)=>{D(he,oe)||ae()}),[n,l]),k[0],k[1]),T=!f.current,P=b[l]&&b[l].length>0,L=I.data,z=Hs(L)?F:L,B=I.error,Y=_t.useRef(z),H=E?Hs(L)?Y.current:L:z,G=(()=>P&&!Hs(B)?!1:T&&!Hs(h)?h:A().isPaused()?!1:v?Hs(z)?!1:a:Hs(z)||a)(),W=!!(l&&t&&T&&G),V=Hs(I.isValidating)?W:I.isValidating,j=Hs(I.isLoading)?W:I.isLoading,X=_t.useCallback(async ae=>{const oe=y.current;if(!l||!oe||m.current||A().isPaused())return!1;let he,q,J=!0;const le=ae||{},Z=!x[l]||!le.dedupe,re=()=>jae?!m.current&&l===_.current&&f.current:l===_.current,fe={isValidating:!1,isLoading:!1},ne=()=>{S(fe)},Q=()=>{const ie=x[l];ie&&ie[1]===q&&delete x[l]},de={isValidating:!0};Hs(w().data)&&(de.isLoading=!0);try{if(Z&&(S(de),r.loadingTimeout&&Hs(w().data)&&setTimeout(()=>{J&&re()&&A().onLoadingSlow(l,r)},r.loadingTimeout),x[l]=[oe(d),a9()]),[he,q]=x[l],he=await he,Z&&setTimeout(Q,r.dedupingInterval),!x[l]||x[l][1]!==q)return Z&&re()&&A().onDiscarded(l),!1;fe.error=xh;const ie=p[l];if(!Hs(ie)&&(q<=ie[0]||q<=ie[1]||ie[1]===0))return ne(),Z&&re()&&A().onDiscarded(l),!1;const ce=w().data;fe.data=i(ce,he)?ce:he,Z&&re()&&A().onSuccess(he,l,r)}catch(ie){Q();const ce=A(),{shouldRetryOnError:ge}=ce;ce.isPaused()||(fe.error=ie,Z&&re()&&(ce.onError(ie,l,ce),(ge===!0||i1(ge)&&ge(ie))&&N()&&ce.onErrorRetry(ie,l,ce,Ee=>{const Se=b[l];Se&&Se[0]&&Se[0](mw.ERROR_REVALIDATE_EVENT,Ee)},{retryCount:(le.retryCount||0)+1,dedupe:!0})))}return J=!1,ne(),!0},[l,n]),ee=_t.useCallback((...ae)=>Jae(n,_.current,...ae),[]);if(t9(()=>{y.current=t,C.current=r,Hs(L)||(Y.current=L)}),t9(()=>{if(!l)return;const ae=X.bind(xh,i9);let oe=0;const q=w7e(l,b,(J,le={})=>{if(J==mw.FOCUS_EVENT){const Z=Date.now();A().revalidateOnFocus&&Z>oe&&N()&&(oe=Z+A().focusThrottleInterval,ae())}else if(J==mw.RECONNECT_EVENT)A().revalidateOnReconnect&&N()&&ae();else{if(J==mw.MUTATE_EVENT)return X();if(J==mw.ERROR_REVALIDATE_EVENT)return X(le)}});return m.current=!1,_.current=l,f.current=!0,S({_k:d}),G&&(Hs(z)||gw?ae():l7e(ae)),()=>{m.current=!0,q()}},[l]),t9(()=>{let ae;function oe(){const q=i1(u)?u(w().data):u;q&&ae!==-1&&(ae=setTimeout(he,q))}function he(){!w().error&&(g||A().isVisible())&&(o||A().isOnline())?X(i9).then(oe):oe()}return oe(),()=>{ae&&(clearTimeout(ae),ae=-1)}},[u,g,o,l]),_t.useDebugValue(H),v&&Hs(z)&&l){if(!jae&&gw)throw new Error("Fallback data is required when using suspense in SSR.");y.current=t,C.current=r,m.current=!1;const ae=c[l];if(!Hs(ae)){const oe=ee(ae);rie(oe)}if(Hs(B)){const oe=X(i9);Hs(H)||(oe.status="fulfilled",oe.value=!0),rie(oe)}else throw B}return{mutate:ee,get data(){return O.data=!0,H},get error(){return O.error=!0,B},get isValidating(){return O.isValidating=!0,V},get isLoading(){return O.isLoading=!0,j}}});var C7e=e=>{let t={},r=new Date,n=new Date;n.setDate(r.getDate()-1);let i=new Date;i.setDate(r.getDate()-7);let v=new Date;return v.setDate(r.getDate()-30),e.forEach(s=>{let h=new Date(s.createdAt),a=h.toDateString()===r.toDateString(),u=h.toDateString()===n.toDateString(),g=h>=i,o=h>=v,E;a?E="Today":u?E="Yesterday":g?E="Previous 7 days":o?E="Previous 30 days":E=h.toLocaleString("default",{month:"long",year:"numeric"}).split(" ").slice(0,1).join(" "),t[E]||(t[E]=[]),t[E].push(s)}),t},nie=Ls({key:"ThreadIdToResume",default:void 0}),R7e=Ls({key:"ChatProfile",default:void 0}),aie=Ls({key:"SessionId",default:yae()}),o9=gae({key:"SessionIdSelector",get:({get:e})=>e(aie),set:({set:e},t)=>e(aie,t instanceof jLe?yae():t)}),s9=Ls({key:"Session",dangerouslyAllowMutability:!0,default:void 0}),l9=Ls({key:"Actions",default:[]}),yw=Ls({key:"Messages",dangerouslyAllowMutability:!0,default:[]}),iie=Ls({key:"TokenCount",default:0}),u9=Ls({key:"Loading",default:!1}),c9=Ls({key:"AskUser",default:void 0}),M7e=Ls({key:"CallFn",default:void 0}),F6=Ls({key:"ChatSettings",default:[]}),oie=gae({key:"ChatSettingsValue/Default",get:({get:e})=>e(F6).reduce((t,r)=>(t[r.id]=r.initial,t),{})}),f9=Ls({key:"ChatSettingsValue",default:oie}),d9=Ls({key:"DisplayElements",default:[]}),h9=Ls({key:"AvatarElements",default:[]}),p9=Ls({key:"TasklistElements",default:[]}),B6=Ls({key:"FirstUserInteraction",default:void 0}),Mb=Ls({key:"AccessToken",default:void 0}),I7e=Ls({key:"User",default:null}),bw=Ls({key:"ThreadHistory",default:{threads:void 0,currentThreadId:void 0,timeGroupedThreads:void 0,pageInfo:void 0},effects:[({setSelf:e,onSet:t})=>{t((r,n)=>{let i=r==null?void 0:r.timeGroupedThreads;r!=null&&r.threads&&!lE.isEqual(r.threads,n==null?void 0:n.timeGroupedThreads)&&(i=C7e(r.threads)),e({...r,timeGroupedThreads:i})})}]}),dE=Ls({key:"SideView",default:void 0}),Gg=()=>{let e=uo(u9),t=uo(d9),r=uo(h9),n=uo(p9),i=uo(l9),v=uo(s9),s=uo(c9),h=uo(F6),a=uo(f9),u=uo(oie),g=(v==null?void 0:v.socket.connected)&&!(v!=null&&v.error),o=!g||e||(s==null?void 0:s.spec.type)==="file"||(s==null?void 0:s.spec.type)==="action";return{actions:i,askUser:s,avatars:r,chatSettingsDefaultValue:u,chatSettingsInputs:h,chatSettingsValue:a,connected:g,disabled:o,elements:t,error:v==null?void 0:v.error,loading:e,tasklists:n}},O7e=e=>{let t=[];for(let r of e)t=Ib(t,r);return t},Ib=(e,t)=>_w(e,t.id)?Ob(e,t.id,t):"parentId"in t&&t.parentId?lie(e,t.parentId,t):"indent"in t&&t.indent&&t.indent>0?sie(e,t.indent,t):[...e,t],sie=(e,t,r,n=0)=>{let i=[...e];if(i.length===0)return[...i,r];{let v=i.length-1,s=i[v];return s.steps=s.steps||[],n+1===t?(s.steps=[...s.steps,r],i[v]={...s},i):(s.steps=sie(s.steps,t,r,n+1),i[v]={...s},i)}},lie=(e,t,r)=>{let n=[...e];for(let i=0;i<n.length;i++){let v=n[i];lE.isEqual(v.id,t)?(v.steps=v.steps?[...v.steps,r]:[r],n[i]={...v}):_w(n,t)&&v.steps&&(v.steps=lie(v.steps,t,r),n[i]={...v})}return n},_w=(e,t)=>{for(let r of e)if(lE.isEqual(r.id,t)||r.steps&&r.steps.length>0&&_w(r.steps,t))return!0;return!1},Ob=(e,t,r)=>{let n=[...e];for(let i=0;i<n.length;i++){let v=n[i];lE.isEqual(v.id,t)?n[i]={steps:v.steps,...r}:_w(n,t)&&v.steps&&(v.steps=Ob(v.steps,t,r),n[i]={...v})}return n},uie=(e,t)=>{let r=[...e];for(let n=0;n<r.length;n++){let i=r[n];i.id===t?r=[...r.slice(0,n),...r.slice(n+1)]:_w(r,t)&&i.steps&&(i.steps=uie(i.steps,t),r[n]={...i})}return r},cie=(e,t,r,n)=>{let i=[...e];for(let v=0;v<i.length;v++){let s=i[v];lE.isEqual(s.id,t)?("content"in s&&s.content!==void 0?n?s.content=r:s.content+=r:"output"in s&&s.output!==void 0&&(n?s.output=r:s.output+=r),i[v]={...s}):s.steps&&(s.steps=cie(s.steps,t,r,n),i[v]={...s})}return i},nd=()=>{let e=uo(Mb),t=uo(s9),r=uo(c9),n=uo(o9),i=E6(F6),v=E6(o9),s=E6(f9),h=as(B6),a=as(u9),u=as(yw),g=as(d9),o=as(h9),E=as(p9),b=as(l9),p=as(iie),x=as(nie),c=as(dE),l=_t.useCallback(()=>{t==null||t.socket.emit("clear_session"),t==null||t.socket.disconnect(),x(void 0),v(),h(void 0),u([]),g([]),o([]),E([]),b([]),p(0),i(),s(),c(void 0)},[t]),d=_t.useCallback((C,A)=>{u(N=>Ib(N,C)),t==null||t.socket.emit("ui_message",{message:C,fileReferences:A})},[t==null?void 0:t.socket]),f=_t.useCallback(C=>{r&&(u(A=>Ib(A,C)),r.callback(C))},[r]),m=_t.useCallback(C=>{t==null||t.socket.emit("chat_settings_change",C)},[t==null?void 0:t.socket]),_=_t.useCallback(()=>{a(!1),t==null||t.socket.emit("stop")},[t==null?void 0:t.socket]),y=_t.useCallback(C=>{let A=t==null?void 0:t.socket;if(!A)return;let N=new Promise((w,S)=>{A.once("action_response",R=>{R.status?w(R):S(R)})});return A.emit("action_call",C),N},[t==null?void 0:t.socket]);return{uploadFile:_t.useCallback((C,A,N)=>C.uploadFile(A,N,n,e),[n,e]),callAction:y,clear:l,replyMessage:f,sendMessage:d,stopTask:_,setIdToResume:x,updateChatSettings:m}},z6=()=>{let e=uo(yw),t=uo(B6);return{messages:e,firstInteraction:t}},My=()=>{let e=uo(o9),[t,r]=tc(s9),n=E6(f9),i=as(B6),v=as(u9),s=as(yw),h=as(c9),a=as(M7e),u=as(d9),g=as(h9),o=as(p9),E=as(l9),b=as(F6),p=as(iie),[x,c]=tc(R7e),l=uo(nie),d=_t.useCallback(({client:_,userEnv:y,accessToken:C})=>{let A=new URL(_.httpEndpoint).pathname,N=A.endsWith("/")?"ws/socket.io":"/ws/socket.io",w=D6(_.httpEndpoint,{path:`${A}${N}`,extraHeaders:{Authorization:C||"","X-Chainlit-Client-Type":_.type,"X-Chainlit-Session-Id":e,"X-Chainlit-Thread-Id":l||"","user-env":JSON.stringify(y),"X-Chainlit-Chat-Profile":x||""}});r(S=>{var R,M;return(R=S==null?void 0:S.socket)==null||R.removeAllListeners(),(M=S==null?void 0:S.socket)==null||M.close(),{socket:w}}),w.on("connect",()=>{w.emit("connection_successful"),r(S=>({...S,error:!1}))}),w.on("connect_error",S=>{r(R=>({...R,error:!0}))}),w.on("task_start",()=>{v(!0)}),w.on("task_end",()=>{v(!1)}),w.on("reload",()=>{w.emit("clear_session"),window.location.reload()}),w.on("resume_thread",S=>{var O,F;let R=[];for(let D of S.steps)R=Ib(R,D);(O=S.metadata)!=null&&O.chat_profile&&c((F=S.metadata)==null?void 0:F.chat_profile),s(R);let M=S.elements||[];g(M.filter(D=>D.type==="avatar")),o(M.filter(D=>D.type==="tasklist")),u(M.filter(D=>["avatar","tasklist"].indexOf(D.type)===-1))}),w.on("new_message",S=>{s(R=>Ib(R,S))}),w.on("first_interaction",S=>{i(S)}),w.on("update_message",S=>{s(R=>Ob(R,S.id,S))}),w.on("delete_message",S=>{s(R=>uie(R,S.id))}),w.on("stream_start",S=>{s(R=>Ib(R,S))}),w.on("stream_token",({id:S,token:R,isSequence:M})=>{s(O=>cie(O,S,R,M))}),w.on("ask",({msg:S,spec:R},M)=>{h({spec:R,callback:M}),s(O=>Ib(O,S)),v(!1)}),w.on("ask_timeout",()=>{h(void 0),v(!1)}),w.on("clear_ask",()=>{h(void 0)}),w.on("call_fn",({name:S,args:R},M)=>{let O=new CustomEvent("chainlit-call-fn",{detail:{name:S,args:R,callback:M}});window.dispatchEvent(O),a({name:S,args:R,callback:M})}),w.on("clear_call_fn",()=>{a(void 0)}),w.on("call_fn_timeout",()=>{a(void 0)}),w.on("chat_settings",S=>{b(S),n()}),w.on("element",S=>{!S.url&&S.chainlitKey&&(S.url=_.getElementUrl(S.chainlitKey,e)),S.type==="avatar"?g(R=>{let M=R.findIndex(O=>O.id===S.id);return M===-1?[...R,S]:[...R.slice(0,M),S,...R.slice(M+1)]}):S.type==="tasklist"?o(R=>{let M=R.findIndex(O=>O.id===S.id);return M===-1?[...R,S]:[...R.slice(0,M),S,...R.slice(M+1)]}):u(R=>{let M=R.findIndex(O=>O.id===S.id);return M===-1?[...R,S]:[...R.slice(0,M),S,...R.slice(M+1)]})}),w.on("remove_element",S=>{u(R=>R.filter(M=>M.id!==S.id)),o(R=>R.filter(M=>M.id!==S.id)),g(R=>R.filter(M=>M.id!==S.id))}),w.on("action",S=>{E(R=>[...R,S])}),w.on("remove_action",S=>{E(R=>{let M=R.findIndex(O=>O.id===S.id);return M===-1?R:[...R.slice(0,M),...R.slice(M+1)]})}),w.on("token_usage",S=>{p(R=>R+S)})},[r,e,x]),f=_t.useCallback(lE.debounce(d,200),[d]),m=_t.useCallback(()=>{t!=null&&t.socket&&(t.socket.removeAllListeners(),t.socket.close())},[t]);return{connect:f,disconnect:m,session:t,sessionId:e,chatProfile:x,idToResume:l,setChatProfile:c}},v9="token";function fie(){try{return localStorage.getItem(v9)}catch{return}}function D7e(e){try{return localStorage.setItem(v9,e)}catch{return}}function die(){try{return localStorage.removeItem(v9)}catch{return}}var N7e=async(e,t,r)=>{var n;return(n=await e.get(t,r))==null?void 0:n.json()};function U6(e,t,r){let n=uo(Mb);return A7e(t?[t,n]:null,([i,v])=>N7e(e,i,v),r)}var hie=e=>{let{data:t,isLoading:r}=U6(e,"/auth/config"),[n,i]=tc(Mb),v=as(bw),[s,h]=tc(I7e),a=!!(!r&&t),u=async()=>{await e.logout(),h(null),die(),i(""),v(void 0)},g=E=>{if(!E){u();return}try{let{exp:b,...p}=HPe(E);D7e(E),i(`Bearer ${E}`),h(p)}catch(b){console.error("Invalid token, clearing token from local storage","error:",b),u()}};_t.useEffect(()=>{if(!s&&fie()){g(fie());return}},[]);let o=!!n;return t&&!t.requireLogin?{data:t,user:null,isReady:a,isAuthenticated:!0,accessToken:"",logout:()=>{},setAccessToken:()=>{}}:{data:t,user:s,isAuthenticated:o,isReady:a,accessToken:n,logout:u,setAccessToken:g}},g9=class extends Error{constructor(t,r){super(t),this.detail=r}toString(){return this.detail?`${this.message}: ${this.detail}`:this.message}},L7e=class{constructor(e,t,r,n){this.httpEndpoint=e,this.type=t,this.on401=r,this.onError=n}buildEndpoint(e){return this.httpEndpoint.endsWith("/")?`${this.httpEndpoint.slice(0,-1)}${e}`:`${this.httpEndpoint}${e}`}checkToken(e){let t="Bearer ";return e.startsWith(t)?e:t+e}async fetch(e,t,r,n,i){try{let v={};r&&(v.Authorization=this.checkToken(r));let s;n instanceof FormData?s=n:(v["Content-Type"]="application/json",s=n?JSON.stringify(n):null);let h=await fetch(this.buildEndpoint(t),{method:e,headers:v,signal:i,body:s});if(!h.ok){let a=await h.json();throw h.status===401&&this.on401&&(die(),this.on401()),new g9(h.statusText,a.detail)}return h}catch(v){throw v instanceof g9&&this.onError&&this.onError(v),console.error(v),v}}async get(e,t){return await this.fetch("GET",e,t)}async post(e,t,r,n){return await this.fetch("POST",e,r,t,n)}async put(e,t,r){return await this.fetch("PUT",e,r,t)}async patch(e,t,r){return await this.fetch("PATCH",e,r,t)}async delete(e,t,r){return await this.fetch("DELETE",e,r,t)}},m9=class extends L7e{async headerAuth(){return(await this.post("/auth/header",{})).json()}async passwordAuth(t){return(await this.post("/login",t)).json()}async logout(){return(await this.post("/logout",{})).json()}async getGeneration(t,r={},n,i,v){var a,u;let s={userEnv:r};t.type==="CHAT"?s.chatGeneration=t:s.completionGeneration=t;let h=(u=(a=await this.post("/generation",s,i,n.signal))==null?void 0:a.body)==null?void 0:u.getReader();return new ReadableStream({start(g){function o(){h.read().then(({done:E,value:b})=>{if(E){g.close(),v&&v(E,"");return}let p=new TextDecoder("utf-8").decode(b);v&&v(E,p),g.enqueue(b),o()}).catch(E=>{g.close(),v&&v(!0,""),console.error(E)})}o()}})}async setFeedback(t,r){return(await this.put("/feedback",{feedback:t},r)).json()}async deleteFeedback(t,r){return(await this.delete("/feedback",{feedbackId:t},r)).json()}async listThreads(t,r,n){return(await this.post("/project/threads",{pagination:t,filter:r},n)).json()}async deleteThread(t,r){return(await this.delete("/project/thread",{threadId:t},r)).json()}uploadFile(t,r,n,i){let v=new XMLHttpRequest,s=new Promise((h,a)=>{let u=new FormData;u.append("file",t),v.open("POST",this.buildEndpoint(`/project/file?session_id=${n}`),!0),i&&v.setRequestHeader("Authorization",this.checkToken(i)),v.upload.onprogress=function(g){if(g.lengthComputable){let o=g.loaded/g.total*100;r(o)}},v.onload=function(){if(v.status===200){let g=JSON.parse(v.responseText);h(g)}else a("Upload failed")},v.onerror=function(){a("Upload error")},v.send(u)});return{xhr:v,promise:s}}getElementUrl(t,r){let n=`?session_id=${r}`;return this.buildEndpoint(`/project/file/${t}${n}`)}getLogoEndpoint(t){return this.buildEndpoint(`/logo?theme=${t}`)}getOAuthEndpoint(t){return this.buildEndpoint(`/auth/oauth/${t}`)}};function P7e(e){const t=new URL(e),r=`${t.protocol}//${t.host}`,n=()=>{O0.error("Unauthorized")},i=v=>{O0.error(v.toString())};return new m9(r,"copilot",n,i)}const k7e={accessToken:void 0,apiClient:new m9("","copilot")},hE=_t.createContext(k7e);let $6;const F7e=new Uint8Array(16);function B7e(){if(!$6&&($6=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!$6))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return $6(F7e)}const If=[];for(let e=0;e<256;++e)If.push((e+256).toString(16).slice(1));function z7e(e,t=0){return(If[e[t+0]]+If[e[t+1]]+If[e[t+2]]+If[e[t+3]]+"-"+If[e[t+4]]+If[e[t+5]]+"-"+If[e[t+6]]+If[e[t+7]]+"-"+If[e[t+8]]+If[e[t+9]]+"-"+If[e[t+10]]+If[e[t+11]]+If[e[t+12]]+If[e[t+13]]+If[e[t+14]]+If[e[t+15]]).toLowerCase()}const pie={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function y9(e,t,r){if(pie.randomUUID&&!t&&!e)return pie.randomUUID();e=e||{};const n=e.random||(e.rng||B7e)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,t){r=r||0;for(let i=0;i<16;++i)t[r+i]=n[i];return t}return z7e(n)}const xw={black:"#000",white:"#fff"},pE={50:"#ffebee",100:"#ffcdd2",200:"#ef9a9a",300:"#e57373",400:"#ef5350",500:"#f44336",600:"#e53935",700:"#d32f2f",800:"#c62828",900:"#b71c1c",A100:"#ff8a80",A200:"#ff5252",A400:"#ff1744",A700:"#d50000"},vE={50:"#f3e5f5",100:"#e1bee7",200:"#ce93d8",300:"#ba68c8",400:"#ab47bc",500:"#9c27b0",600:"#8e24aa",700:"#7b1fa2",800:"#6a1b9a",900:"#4a148c",A100:"#ea80fc",A200:"#e040fb",A400:"#d500f9",A700:"#aa00ff"},gE={50:"#e3f2fd",100:"#bbdefb",200:"#90caf9",300:"#64b5f6",400:"#42a5f5",500:"#2196f3",600:"#1e88e5",700:"#1976d2",800:"#1565c0",900:"#0d47a1",A100:"#82b1ff",A200:"#448aff",A400:"#2979ff",A700:"#2962ff"},mE={50:"#e1f5fe",100:"#b3e5fc",200:"#81d4fa",300:"#4fc3f7",400:"#29b6f6",500:"#03a9f4",600:"#039be5",700:"#0288d1",800:"#0277bd",900:"#01579b",A100:"#80d8ff",A200:"#40c4ff",A400:"#00b0ff",A700:"#0091ea"},yE={50:"#e8f5e9",100:"#c8e6c9",200:"#a5d6a7",300:"#81c784",400:"#66bb6a",500:"#4caf50",600:"#43a047",700:"#388e3c",800:"#2e7d32",900:"#1b5e20",A100:"#b9f6ca",A200:"#69f0ae",A400:"#00e676",A700:"#00c853"},Ew={50:"#fff3e0",100:"#ffe0b2",200:"#ffcc80",300:"#ffb74d",400:"#ffa726",500:"#ff9800",600:"#fb8c00",700:"#f57c00",800:"#ef6c00",900:"#e65100",A100:"#ffd180",A200:"#ffab40",A400:"#ff9100",A700:"#ff6d00"},vie={50:"#fafafa",100:"#f5f5f5",200:"#eeeeee",300:"#e0e0e0",400:"#bdbdbd",500:"#9e9e9e",600:"#757575",700:"#616161",800:"#424242",900:"#212121",A100:"#f5f5f5",A200:"#eeeeee",A400:"#bdbdbd",A700:"#616161"};function lr(){return lr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},lr.apply(this,arguments)}function s1(e){if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)}function gie(e){if(!s1(e))return e;const t={};return Object.keys(e).forEach(r=>{t[r]=gie(e[r])}),t}function ad(e,t,r={clone:!0}){const n=r.clone?lr({},e):e;return s1(e)&&s1(t)&&Object.keys(t).forEach(i=>{i!=="__proto__"&&(s1(t[i])&&i in e&&s1(e[i])?n[i]=ad(e[i],t[i],r):r.clone?n[i]=s1(t[i])?gie(t[i]):t[i]:n[i]=t[i])}),n}function Iy(e){let t="https://mui.com/production-error/?code="+e;for(let r=1;r<arguments.length;r+=1)t+="&args[]="+encodeURIComponent(arguments[r]);return"Minified MUI error #"+e+"; visit "+t+" for the full message."}var pl={};/**
|
|
79
79
|
* @license React
|
|
80
80
|
* react-is.production.min.js
|
|
81
81
|
*
|
chainlit/data/__init__.py
CHANGED
|
@@ -2,16 +2,16 @@ import functools
|
|
|
2
2
|
import json
|
|
3
3
|
import os
|
|
4
4
|
from collections import deque
|
|
5
|
-
from typing import TYPE_CHECKING, Dict, List, Literal, Optional, Union, cast
|
|
5
|
+
from typing import TYPE_CHECKING, Dict, List, Literal, Optional, Union, cast, Protocol, Any
|
|
6
6
|
|
|
7
7
|
import aiofiles
|
|
8
8
|
from chainlit.config import config
|
|
9
9
|
from chainlit.context import context
|
|
10
10
|
from chainlit.logger import logger
|
|
11
11
|
from chainlit.session import WebsocketSession
|
|
12
|
-
from chainlit.types import Feedback, Pagination, ThreadDict, ThreadFilter
|
|
12
|
+
from chainlit.types import Feedback, Pagination, ThreadDict, ThreadFilter, PageInfo, PaginatedResponse
|
|
13
13
|
from chainlit.user import PersistedUser, User
|
|
14
|
-
from literalai import Attachment,
|
|
14
|
+
from literalai import Attachment, PaginatedResponse as LiteralPaginatedResponse, Score as LiteralScore, Step as LiteralStep
|
|
15
15
|
from literalai.filter import threads_filters as LiteralThreadsFilters
|
|
16
16
|
from literalai.step import StepDict as LiteralStepDict
|
|
17
17
|
|
|
@@ -411,12 +411,20 @@ class ChainlitDataLayer(BaseDataLayer):
|
|
|
411
411
|
}
|
|
412
412
|
)
|
|
413
413
|
|
|
414
|
-
|
|
414
|
+
literal_response: LiteralPaginatedResponse = await self.client.api.list_threads(
|
|
415
415
|
first=pagination.first,
|
|
416
416
|
after=pagination.cursor,
|
|
417
417
|
filters=literal_filters,
|
|
418
418
|
order_by={"column": "createdAt", "direction": "DESC"},
|
|
419
419
|
)
|
|
420
|
+
return PaginatedResponse(
|
|
421
|
+
pageInfo=PageInfo(
|
|
422
|
+
hasNextPage=literal_response.pageInfo.hasNextPage,
|
|
423
|
+
startCursor=literal_response.pageInfo.startCursor,
|
|
424
|
+
endCursor=literal_response.pageInfo.endCursor
|
|
425
|
+
),
|
|
426
|
+
data=literal_response.data,
|
|
427
|
+
)
|
|
420
428
|
|
|
421
429
|
async def get_thread(self, thread_id: str) -> "Optional[ThreadDict]":
|
|
422
430
|
thread = await self.client.api.get_thread(id=thread_id)
|
|
@@ -462,6 +470,10 @@ class ChainlitDataLayer(BaseDataLayer):
|
|
|
462
470
|
tags=tags,
|
|
463
471
|
)
|
|
464
472
|
|
|
473
|
+
class BaseStorageClient(Protocol):
|
|
474
|
+
"""Base class for non-text data persistence like Azure Data Lake, S3, Google Storage, etc."""
|
|
475
|
+
async def upload_file(self, object_key: str, data: Union[bytes, str], mime: str = 'application/octet-stream', overwrite: bool = True) -> Dict[str, Any]:
|
|
476
|
+
pass
|
|
465
477
|
|
|
466
478
|
if api_key := os.environ.get("LITERAL_API_KEY"):
|
|
467
479
|
# support legacy LITERAL_SERVER variable as fallback
|