teodor-new-chat-ui 4.3.461 → 4.3.462
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.esm.js +1 -1
- package/dist/index.umd.js +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -2966,7 +2966,7 @@ function Ds() {
|
|
|
2966
2966
|
return e;
|
|
2967
2967
|
}
|
|
2968
2968
|
function nw(e) {
|
|
2969
|
-
return !!e && typeof e == "object" &&
|
|
2969
|
+
return !!e && typeof e == "object" && "data" in e;
|
|
2970
2970
|
}
|
|
2971
2971
|
function Ta(e) {
|
|
2972
2972
|
return e.filter((t) => {
|
package/dist/index.umd.js
CHANGED
|
@@ -32,7 +32,7 @@ React keys must be passed directly to JSX without using spread:
|
|
|
32
32
|
`)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(o=>r.set(o)),r}static accessor(t){const r=(this[Ec]=this[Ec]={accessors:{}}).accessors,o=this.prototype;function s(i){const a=Yr(i);r[a]||(bv(o,i),r[a]=!0)}return U.isArray(t)?t.forEach(s):s(t),this}};Ht.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]),U.reduceDescriptors(Ht.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}}),U.freezeMethods(Ht);function ki(e,t){const n=this||Gr,r=t||n,o=Ht.from(r.headers);let s=r.data;return U.forEach(e,function(a){s=a.call(n,s,o.normalize(),t?t.status:void 0)}),o.normalize(),s}function Ic(e){return!!(e&&e.__CANCEL__)}function gr(e,t,n){Re.call(this,e??"canceled",Re.ERR_CANCELED,t,n),this.name="CanceledError"}U.inherits(gr,Re,{__CANCEL__:!0});function Nc(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new Re("Request failed with status code "+n.status,[Re.ERR_BAD_REQUEST,Re.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function wv(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function yv(e,t){e=e||10;const n=new Array(e),r=new Array(e);let o=0,s=0,i;return t=t!==void 0?t:1e3,function(l){const c=Date.now(),d=r[s];i||(i=c),n[o]=l,r[o]=c;let h=s,m=0;for(;h!==o;)m+=n[h++],h=h%e;if(o=(o+1)%e,o===s&&(s=(s+1)%e),c-i<t)return;const f=d&&c-d;return f?Math.round(m*1e3/f):void 0}}function Sv(e,t){let n=0,r=1e3/t,o,s;const i=(c,d=Date.now())=>{n=d,o=null,s&&(clearTimeout(s),s=null),e(...c)};return[(...c)=>{const d=Date.now(),h=d-n;h>=r?i(c,d):(o=c,s||(s=setTimeout(()=>{s=null,i(o)},r-h)))},()=>o&&i(o)]}const Bo=(e,t,n=3)=>{let r=0;const o=yv(50,250);return Sv(s=>{const i=s.loaded,a=s.lengthComputable?s.total:void 0,l=i-r,c=o(l),d=i<=a;r=i;const h={loaded:i,total:a,progress:a?i/a:void 0,bytes:l,rate:c||void 0,estimated:c&&a&&d?(a-i)/c:void 0,event:s,lengthComputable:a!=null,[t?"download":"upload"]:!0};e(h)},n)},Ac=(e,t)=>{const n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},jc=e=>(...t)=>U.asap(()=>e(...t)),Cv=Pt.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Pt.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Pt.origin),Pt.navigator&&/(msie|trident)/i.test(Pt.navigator.userAgent)):()=>!0,Tv=Pt.hasStandardBrowserEnv?{write(e,t,n,r,o,s){const i=[e+"="+encodeURIComponent(t)];U.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),U.isString(r)&&i.push("path="+r),U.isString(o)&&i.push("domain="+o),s===!0&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function kv(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Ev(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function _c(e,t,n){let r=!kv(t);return e&&(r||n==!1)?Ev(e,t):t}const Pc=e=>e instanceof Ht?{...e}:e;function Zn(e,t){t=t||{};const n={};function r(c,d,h,m){return U.isPlainObject(c)&&U.isPlainObject(d)?U.merge.call({caseless:m},c,d):U.isPlainObject(d)?U.merge({},d):U.isArray(d)?d.slice():d}function o(c,d,h,m){if(U.isUndefined(d)){if(!U.isUndefined(c))return r(void 0,c,h,m)}else return r(c,d,h,m)}function s(c,d){if(!U.isUndefined(d))return r(void 0,d)}function i(c,d){if(U.isUndefined(d)){if(!U.isUndefined(c))return r(void 0,c)}else return r(void 0,d)}function a(c,d,h){if(h in t)return r(c,d);if(h in e)return r(void 0,c)}const l={url:s,method:s,data:s,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:a,headers:(c,d,h)=>o(Pc(c),Pc(d),h,!0)};return U.forEach(Object.keys({...e,...t}),function(d){const h=l[d]||o,m=h(e[d],t[d],d);U.isUndefined(m)&&h!==a||(n[d]=m)}),n}const Rc=e=>{const t=Zn({},e);let{data:n,withXSRFToken:r,xsrfHeaderName:o,xsrfCookieName:s,headers:i,auth:a}=t;if(t.headers=i=Ht.from(i),t.url=Sc(_c(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),a&&i.set("Authorization","Basic "+btoa((a.username||"")+":"+(a.password?unescape(encodeURIComponent(a.password)):""))),U.isFormData(n)){if(Pt.hasStandardBrowserEnv||Pt.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if(U.isFunction(n.getHeaders)){const l=n.getHeaders(),c=["content-type","content-length"];Object.entries(l).forEach(([d,h])=>{c.includes(d.toLowerCase())&&i.set(d,h)})}}if(Pt.hasStandardBrowserEnv&&(r&&U.isFunction(r)&&(r=r(t)),r||r!==!1&&Cv(t.url))){const l=o&&s&&Tv.read(s);l&&i.set(o,l)}return t},Iv=typeof XMLHttpRequest<"u"&&function(e){return new Promise(function(n,r){const o=Rc(e);let s=o.data;const i=Ht.from(o.headers).normalize();let{responseType:a,onUploadProgress:l,onDownloadProgress:c}=o,d,h,m,f,v;function g(){f&&f(),v&&v(),o.cancelToken&&o.cancelToken.unsubscribe(d),o.signal&&o.signal.removeEventListener("abort",d)}let x=new XMLHttpRequest;x.open(o.method.toUpperCase(),o.url,!0),x.timeout=o.timeout;function y(){if(!x)return;const S=Ht.from("getAllResponseHeaders"in x&&x.getAllResponseHeaders()),C={data:!a||a==="text"||a==="json"?x.responseText:x.response,status:x.status,statusText:x.statusText,headers:S,config:e,request:x};Nc(function(E){n(E),g()},function(E){r(E),g()},C),x=null}"onloadend"in x?x.onloadend=y:x.onreadystatechange=function(){!x||x.readyState!==4||x.status===0&&!(x.responseURL&&x.responseURL.indexOf("file:")===0)||setTimeout(y)},x.onabort=function(){x&&(r(new Re("Request aborted",Re.ECONNABORTED,e,x)),x=null)},x.onerror=function(k){const C=k&&k.message?k.message:"Network Error",T=new Re(C,Re.ERR_NETWORK,e,x);T.event=k||null,r(T),x=null},x.ontimeout=function(){let k=o.timeout?"timeout of "+o.timeout+"ms exceeded":"timeout exceeded";const C=o.transitional||Tc;o.timeoutErrorMessage&&(k=o.timeoutErrorMessage),r(new Re(k,C.clarifyTimeoutError?Re.ETIMEDOUT:Re.ECONNABORTED,e,x)),x=null},s===void 0&&i.setContentType(null),"setRequestHeader"in x&&U.forEach(i.toJSON(),function(k,C){x.setRequestHeader(C,k)}),U.isUndefined(o.withCredentials)||(x.withCredentials=!!o.withCredentials),a&&a!=="json"&&(x.responseType=o.responseType),c&&([m,v]=Bo(c,!0),x.addEventListener("progress",m)),l&&x.upload&&([h,f]=Bo(l),x.upload.addEventListener("progress",h),x.upload.addEventListener("loadend",f)),(o.cancelToken||o.signal)&&(d=S=>{x&&(r(!S||S.type?new gr(null,e,x):S),x.abort(),x=null)},o.cancelToken&&o.cancelToken.subscribe(d),o.signal&&(o.signal.aborted?d():o.signal.addEventListener("abort",d)));const w=wv(o.url);if(w&&Pt.protocols.indexOf(w)===-1){r(new Re("Unsupported protocol "+w+":",Re.ERR_BAD_REQUEST,e));return}x.send(s||null)})},Nv=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let r=new AbortController,o;const s=function(c){if(!o){o=!0,a();const d=c instanceof Error?c:this.reason;r.abort(d instanceof Re?d:new gr(d instanceof Error?d.message:d))}};let i=t&&setTimeout(()=>{i=null,s(new Re(`timeout ${t} of ms exceeded`,Re.ETIMEDOUT))},t);const a=()=>{e&&(i&&clearTimeout(i),i=null,e.forEach(c=>{c.unsubscribe?c.unsubscribe(s):c.removeEventListener("abort",s)}),e=null)};e.forEach(c=>c.addEventListener("abort",s));const{signal:l}=r;return l.unsubscribe=()=>U.asap(a),l}},Av=function*(e,t){let n=e.byteLength;if(n<t){yield e;return}let r=0,o;for(;r<n;)o=r+t,yield e.slice(r,o),r=o},jv=async function*(e,t){for await(const n of _v(e))yield*Av(n,t)},_v=async function*(e){if(e[Symbol.asyncIterator]){yield*e;return}const t=e.getReader();try{for(;;){const{done:n,value:r}=await t.read();if(n)break;yield r}}finally{await t.cancel()}},Mc=(e,t,n,r)=>{const o=jv(e,t);let s=0,i,a=l=>{i||(i=!0,r&&r(l))};return new ReadableStream({async pull(l){try{const{done:c,value:d}=await o.next();if(c){a(),l.close();return}let h=d.byteLength;if(n){let m=s+=h;n(m)}l.enqueue(new Uint8Array(d))}catch(c){throw a(c),c}},cancel(l){return a(l),o.return()}},{highWaterMark:2})},Oc=64*1024,{isFunction:zo}=U,Pv=(({Request:e,Response:t})=>({Request:e,Response:t}))(U.global),{ReadableStream:Dc,TextEncoder:Lc}=U.global,$c=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Rv=e=>{e=U.merge.call({skipUndefined:!0},Pv,e);const{fetch:t,Request:n,Response:r}=e,o=t?zo(t):typeof fetch=="function",s=zo(n),i=zo(r);if(!o)return!1;const a=o&&zo(Dc),l=o&&(typeof Lc=="function"?(v=>g=>v.encode(g))(new Lc):async v=>new Uint8Array(await new n(v).arrayBuffer())),c=s&&a&&$c(()=>{let v=!1;const g=new n(Pt.origin,{body:new Dc,method:"POST",get duplex(){return v=!0,"half"}}).headers.has("Content-Type");return v&&!g}),d=i&&a&&$c(()=>U.isReadableStream(new r("").body)),h={stream:d&&(v=>v.body)};o&&["text","arrayBuffer","blob","formData","stream"].forEach(v=>{!h[v]&&(h[v]=(g,x)=>{let y=g&&g[v];if(y)return y.call(g);throw new Re(`Response type '${v}' is not supported`,Re.ERR_NOT_SUPPORT,x)})});const m=async v=>{if(v==null)return 0;if(U.isBlob(v))return v.size;if(U.isSpecCompliantForm(v))return(await new n(Pt.origin,{method:"POST",body:v}).arrayBuffer()).byteLength;if(U.isArrayBufferView(v)||U.isArrayBuffer(v))return v.byteLength;if(U.isURLSearchParams(v)&&(v=v+""),U.isString(v))return(await l(v)).byteLength},f=async(v,g)=>{const x=U.toFiniteNumber(v.getContentLength());return x??m(g)};return async v=>{let{url:g,method:x,data:y,signal:w,cancelToken:S,timeout:k,onDownloadProgress:C,onUploadProgress:T,responseType:E,headers:N,withCredentials:R="same-origin",fetchOptions:O}=Rc(v),L=t||fetch;E=E?(E+"").toLowerCase():"text";let q=Nv([w,S&&S.toAbortSignal()],k),W=null;const j=q&&q.unsubscribe&&(()=>{q.unsubscribe()});let X;try{if(T&&c&&x!=="get"&&x!=="head"&&(X=await f(N,y))!==0){let J=new n(g,{method:"POST",body:y,duplex:"half"}),P;if(U.isFormData(y)&&(P=J.headers.get("content-type"))&&N.setContentType(P),J.body){const[_,z]=Ac(X,Bo(jc(T)));y=Mc(J.body,Oc,_,z)}}U.isString(R)||(R=R?"include":"omit");const G=s&&"credentials"in n.prototype,B={...O,signal:q,method:x.toUpperCase(),headers:N.normalize().toJSON(),body:y,duplex:"half",credentials:G?R:void 0};W=s&&new n(g,B);let M=await(s?L(W,O):L(g,B));const I=d&&(E==="stream"||E==="response");if(d&&(C||I&&j)){const J={};["status","statusText","headers"].forEach(F=>{J[F]=M[F]});const P=U.toFiniteNumber(M.headers.get("content-length")),[_,z]=C&&Ac(P,Bo(jc(C),!0))||[];M=new r(Mc(M.body,Oc,_,()=>{z&&z(),j&&j()}),J)}E=E||"text";let K=await h[U.findKey(h,E)||"text"](M,v);return!I&&j&&j(),await new Promise((J,P)=>{Nc(J,P,{data:K,headers:Ht.from(M.headers),status:M.status,statusText:M.statusText,config:v,request:W})})}catch(G){throw j&&j(),G&&G.name==="TypeError"&&/Load failed|fetch/i.test(G.message)?Object.assign(new Re("Network Error",Re.ERR_NETWORK,v,W),{cause:G.cause||G}):Re.from(G,G&&G.code,v,W)}}},Mv=new Map,Fc=e=>{let t=e?e.env:{};const{fetch:n,Request:r,Response:o}=t,s=[r,o,n];let i=s.length,a=i,l,c,d=Mv;for(;a--;)l=s[a],c=d.get(l),c===void 0&&d.set(l,c=a?new Map:Rv(t)),d=c;return c};Fc();const Ei={http:nv,xhr:Iv,fetch:{get:Fc}};U.forEach(Ei,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Bc=e=>`- ${e}`,Ov=e=>U.isFunction(e)||e===null||e===!1,zc={getAdapter:(e,t)=>{e=U.isArray(e)?e:[e];const{length:n}=e;let r,o;const s={};for(let i=0;i<n;i++){r=e[i];let a;if(o=r,!Ov(r)&&(o=Ei[(a=String(r)).toLowerCase()],o===void 0))throw new Re(`Unknown adapter '${a}'`);if(o&&(U.isFunction(o)||(o=o.get(t))))break;s[a||"#"+i]=o}if(!o){const i=Object.entries(s).map(([l,c])=>`adapter ${l} `+(c===!1?"is not supported by the environment":"is not available in the build"));let a=n?i.length>1?`since :
|
|
33
33
|
`+i.map(Bc).join(`
|
|
34
34
|
`):" "+Bc(i[0]):"as no adapter specified";throw new Re("There is no suitable adapter to dispatch the request "+a,"ERR_NOT_SUPPORT")}return o},adapters:Ei};function Ii(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new gr(null,e)}function Hc(e){return Ii(e),e.headers=Ht.from(e.headers),e.data=ki.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),zc.getAdapter(e.adapter||Gr.adapter,e)(e).then(function(r){return Ii(e),r.data=ki.call(e,e.transformResponse,r),r.headers=Ht.from(r.headers),r},function(r){return Ic(r)||(Ii(e),r&&r.response&&(r.response.data=ki.call(e,e.transformResponse,r.response),r.response.headers=Ht.from(r.response.headers))),Promise.reject(r)})}const Uc="1.12.2",Ho={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{Ho[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const Wc={};Ho.transitional=function(t,n,r){function o(s,i){return"[Axios v"+Uc+"] Transitional option '"+s+"'"+i+(r?". "+r:"")}return(s,i,a)=>{if(t===!1)throw new Re(o(i," has been removed"+(n?" in "+n:"")),Re.ERR_DEPRECATED);return n&&!Wc[i]&&(Wc[i]=!0,console.warn(o(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(s,i,a):!0}},Ho.spelling=function(t){return(n,r)=>(console.warn(`${r} is likely a misspelling of ${t}`),!0)};function Dv(e,t,n){if(typeof e!="object")throw new Re("options must be an object",Re.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let o=r.length;for(;o-- >0;){const s=r[o],i=t[s];if(i){const a=e[s],l=a===void 0||i(a,s,e);if(l!==!0)throw new Re("option "+s+" must be "+l,Re.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Re("Unknown option "+s,Re.ERR_BAD_OPTION)}}const Uo={assertOptions:Dv,validators:Ho},xn=Uo.validators;let Qn=class{constructor(t){this.defaults=t||{},this.interceptors={request:new Cc,response:new Cc}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let o={};Error.captureStackTrace?Error.captureStackTrace(o):o=new Error;const s=o.stack?o.stack.replace(/^.+\n/,""):"";try{r.stack?s&&!String(r.stack).endsWith(s.replace(/^.+\n.+\n/,""))&&(r.stack+=`
|
|
35
|
-
`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Zn(this.defaults,n);const{transitional:r,paramsSerializer:o,headers:s}=n;r!==void 0&&Uo.assertOptions(r,{silentJSONParsing:xn.transitional(xn.boolean),forcedJSONParsing:xn.transitional(xn.boolean),clarifyTimeoutError:xn.transitional(xn.boolean)},!1),o!=null&&(U.isFunction(o)?n.paramsSerializer={serialize:o}:Uo.assertOptions(o,{encode:xn.function,serialize:xn.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Uo.assertOptions(n,{baseUrl:xn.spelling("baseURL"),withXsrfToken:xn.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=s&&U.merge(s.common,s[n.method]);s&&U.forEach(["delete","get","head","post","put","patch","common"],v=>{delete s[v]}),n.headers=Ht.concat(i,s);const a=[];let l=!0;this.interceptors.request.forEach(function(g){typeof g.runWhen=="function"&&g.runWhen(n)===!1||(l=l&&g.synchronous,a.unshift(g.fulfilled,g.rejected))});const c=[];this.interceptors.response.forEach(function(g){c.push(g.fulfilled,g.rejected)});let d,h=0,m;if(!l){const v=[Hc.bind(this),void 0];for(v.unshift(...a),v.push(...c),m=v.length,d=Promise.resolve(n);h<m;)d=d.then(v[h++],v[h++]);return d}m=a.length;let f=n;for(;h<m;){const v=a[h++],g=a[h++];try{f=v(f)}catch(x){g.call(this,x);break}}try{d=Hc.call(this,f)}catch(v){return Promise.reject(v)}for(h=0,m=c.length;h<m;)d=d.then(c[h++],c[h++]);return d}getUri(t){t=Zn(this.defaults,t);const n=_c(t.baseURL,t.url,t.allowAbsoluteUrls);return Sc(n,t.params,t.paramsSerializer)}};U.forEach(["delete","get","head","options"],function(t){Qn.prototype[t]=function(n,r){return this.request(Zn(r||{},{method:t,url:n,data:(r||{}).data}))}}),U.forEach(["post","put","patch"],function(t){function n(r){return function(s,i,a){return this.request(Zn(a||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:s,data:i}))}}Qn.prototype[t]=n(),Qn.prototype[t+"Form"]=n(!0)});let Lv=class nx{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(s){n=s});const r=this;this.promise.then(o=>{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](o);r._listeners=null}),this.promise.then=o=>{let s;const i=new Promise(a=>{r.subscribe(a),s=a}).then(o);return i.cancel=function(){r.unsubscribe(s)},i},t(function(s,i,a){r.reason||(r.reason=new gr(s,i,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nx(function(o){t=o}),cancel:t}}};function $v(e){return function(n){return e.apply(null,n)}}function Fv(e){return U.isObject(e)&&e.isAxiosError===!0}const Ni={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ni).forEach(([e,t])=>{Ni[t]=e});function Vc(e){const t=new Qn(e),n=ac(Qn.prototype.request,t);return U.extend(n,Qn.prototype,t,{allOwnKeys:!0}),U.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return Vc(Zn(e,o))},n}const ft=Vc(Gr);ft.Axios=Qn,ft.CanceledError=gr,ft.CancelToken=Lv,ft.isCancel=Ic,ft.VERSION=Uc,ft.toFormData=$o,ft.AxiosError=Re,ft.Cancel=ft.CanceledError,ft.all=function(t){return Promise.all(t)},ft.spread=$v,ft.isAxiosError=Fv,ft.mergeConfig=Zn,ft.AxiosHeaders=Ht,ft.formToJSON=e=>kc(U.isHTMLForm(e)?new FormData(e):e),ft.getAdapter=zc.getAdapter,ft.HttpStatusCode=Ni,ft.default=ft;const{Axios:dN,AxiosError:fN,CanceledError:hN,isCancel:pN,CancelToken:mN,VERSION:gN,all:xN,Cancel:vN,isAxiosError:bN,spread:wN,toFormData:yN,AxiosHeaders:SN,HttpStatusCode:CN,formToJSON:TN,getAdapter:kN,mergeConfig:EN}=ft,Kc=typeof window<"u"?window.__API_BASE_URL__:void 0,qc=Kc?vn(Kc):void 0;function vn(e){const n=(e!=null&&e.trim()?e.trim():"/api/chat").replace(/\/+$/,"");return n?n.endsWith("/chat")?n:`${n}/chat`:"/api/chat"}let Wo=null;const Ai=new Set;function Gc(){return Wo}function Vo(e){Wo=e,Ai.forEach(t=>t(e))}function Yc(e){return Ai.add(e),()=>Ai.delete(e)}const Xc=3e4,Jc=9e4,Xt=ft.create({...qc?{baseURL:qc}:{},timeout:Xc,withCredentials:!0});Xt.interceptors.request.use(e=>(Wo&&(e.headers.Authorization=`Bearer ${Wo}`),e)),Xt.interceptors.response.use(e=>{if(typeof window<"u"&&(e!=null&&e.data))try{const t=e.data,n=t.data||{},r=typeof t.token=="string"&&t.token||typeof n.token=="string"&&n.token||null,o=typeof t.expires_at=="number"&&t.expires_at||typeof n.expires_at=="number"&&n.expires_at||typeof t.expiresAt=="number"&&t.expiresAt||typeof n.expiresAt=="number"&&n.expiresAt||null;r&&(localStorage.setItem("authToken",r),Vo(r)),o&&localStorage.setItem("authTokenExpiresAt",o.toString()),(r||o)&&window.dispatchEvent(new CustomEvent("smartorg:chat-token-updated",{detail:{token:r,expiresAt:o}}))}catch(t){console.warn("[chat-api] Error storing token:",t)}return e},e=>Promise.reject(e));async function Jt(e,t){return Xt.defaults.baseURL?(await Xt.get(e,t)).data:Promise.reject(new Error("API base URL is not configured"))}async function Ko(e,t,n){return Xt.defaults.baseURL?(await Xt.post(e,t,n)).data:Promise.reject(new Error("API base URL is not configured"))}async function Zc(e,t,n){return Xt.defaults.baseURL?(await Xt.put(e,t,n)).data:Promise.reject(new Error("API base URL is not configured"))}async function ji(e,t){return Xt.defaults.baseURL?(await Xt.delete(e,t)).data:Promise.reject(new Error("API base URL is not configured"))}function $t(e){return e&&typeof e=="object"&&"data"in e?e.data:e}class qo{get baseUrl(){const t=Xt.defaults.baseURL;return t?vn(String(t)):""}updateConfig(t){t.baseUrl&&(Xt.defaults.baseURL=vn(String(t.baseUrl))),t.authToken!==void 0&&Vo(t.authToken)}getAuthToken(){return Gc()}setAuthToken(t){Vo(t)}onTokenChange(t){return Yc(t)}async listThreads(){const t=await Jt("/threads"),n=$t(t);return(n==null?void 0:n.items)??(t==null?void 0:t.items)??[]}async listSharedThreads(){const t=await Jt("/threads/shared"),n=$t(t);return(n==null?void 0:n.items)??(t==null?void 0:t.items)??[]}async createThread(t){const r=await Ko("/threads",t?{title:t}:void 0);return $t(r)}async updateThread(t,n){const r=await Zc(`/threads/${t}`,{title:n});return $t(r)}async deleteThread(t){const n=await ji(`/threads/${t}`);return $t(n)}async shareThread(t,n){const r=await Ko(`/threads/${t}/share`,{shared_with_user_id:n});return $t(r)}async threadInfo(t){const n=await Jt(`/threads/${t}/info`);return $t(n)}async listAgents(){const t=await Jt("/agents"),n=$t(t);return(n==null?void 0:n.items)??[]}async getAgent(t){const n=await Jt(`/agents/${t}`);return $t(n)}async getAgentSchema(t){const n=await Jt(`/agents/${t}/schema`);return $t(n)}async getState(t){const n=await Jt(`/threads/${t.threadId}/state`,{params:{thread_id:t.threadId,checkpoint_id:t.checkpointId,checkpoint_ns:t.checkpointNs}});return $t(n)}async getStateHistory(t){const n=await Jt(`/threads/${t.threadId}/state/history`,{params:{thread_id:t.threadId,checkpoint_id:t.checkpointId,checkpoint_ns:t.checkpointNs},timeout:Jc});return $t(n)}async cancelRun(t){const n=await Ko("/runs/cancel",{threadId:t});return $t(n)}async unshareThread(t,n){const r=await ji(`/threads/${t}/share/${n}`);return $t(r)}}const Mn=new qo,Bv=qo,zv=qo;async function _i(e,t){return await Jt(e,{responseType:"blob",onDownloadProgress:r=>{try{if(t&&r.lengthComputable){const o=r.loaded/r.total;t(o)}}catch{}},maxBodyLength:1/0})}async function Hv(e,t){const n=await _i(`/files/${e}/view`,t),r=URL.createObjectURL(n);window.open(r,"_blank"),setTimeout(()=>URL.revokeObjectURL(r),6e4)}async function Pi(e,t){return await(await _i(`/files/${e}/view`,t)).text()}async function Qc(e,t){const n=await _i(`/files/${e}/download`,t),r=URL.createObjectURL(n);let o=`file_${e}`;try{const i=await Jt(`/files/${e}`);o=(i==null?void 0:i.filename)??o}catch{}const s=document.createElement("a");s.href=r,s.download=o,document.body.appendChild(s),s.click(),s.remove(),setTimeout(()=>URL.revokeObjectURL(r),6e4)}async function Uv(e){return await Jt(`/files/${e}`)}async function eu(e,t=50,n=0){const r={limit:t,offset:n};return e&&(r.thread_id=e),await Jt("/files",{params:r})}const tu=b.createContext(null);function nu({children:e,apiConfig:t}){const n=Mn;if(t){const o=n.baseUrl,s=n.getAuthToken();t.baseUrl&&t.baseUrl!==o&&n.updateConfig({baseUrl:t.baseUrl}),t.apiKey!==void 0&&t.apiKey!==s&&n.updateConfig({authToken:t.apiKey})}const r={token:n.getAuthToken(),setToken:o=>n.setAuthToken(o),api:n,baseUrl:n.baseUrl};return u.jsx(tu.Provider,{value:r,children:e})}async function ru(e){return await new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{try{const o=r.result,s=new Uint8Array(o);let i="";const a=s.byteLength;for(let l=0;l<a;l++)i+=String.fromCharCode(s[l]);t(btoa(i))}catch(o){n(o)}},r.onerror=o=>n(o),r.readAsArrayBuffer(e)})}async function ou(e=[]){const t=[],n=[];for(const r of e)try{const o=await ru(r);n.push({filename:r.name,data:o,mime_type:r.type||"application/octet-stream"})}catch{}return{contentParts:t,filesInfo:n}}function Xr(){const e=b.useContext(tu);if(!e)throw new Error("useApi must be used within ApiProvider");return e}function su(e){return!!e&&typeof e=="object"&&e.protocolVersion==="v1"&&"data"in e}function Ri(e){return e.filter(t=>{var i;if(t.role!=="assistant")return!0;const n=(t.content??[]).some(a=>{var l;return a&&a.type==="text"&&((l=a.text)==null?void 0:l.trim())}),r=(t.content??[]).some(a=>a&&a.type==="image_url"),o=(i=t.artifact)==null?void 0:i.plots,s=Array.isArray(o)&&o.length>0;return!!(n||r||s)})}function Jr(e,t,n){return t<0||t>=e.length?e:[...e.slice(0,t),n,...e.slice(t+1)]}function Wv(e){let t=!1;const n=e.map(r=>{const o=(r.content??[]).filter(s=>s.type!=="interrupt");return o.length!==r.content.length?(t=!0,{...r,content:o}):r});return t?n:e}function iu(e){for(let t=e.length-1;t>=0;t--)if(e[t].role==="assistant")return e[t].id;return null}function au(e){return!e||!e.length?"":e.filter(t=>t.type==="text").map(t=>t.text??"").join("")}function lu(e,t,n,r){const o={...n};if(r!==null&&typeof r=="number"){if(typeof o.lastSeq=="number"&&r<=o.lastSeq)return{newParts:e,newMeta:o,changed:!1};o.lastSeq=r}const s=t.filter(h=>h.type==="text").map(h=>h.text??"").join(""),i=t.filter(h=>h.type!=="text"),a=o.lastText??au(e);let l="",c=e.slice();if(s){const h=Vv(a,s);if(h===""?l="":h===s?l=s:l=h,l){const m=c[c.length-1];if((m==null?void 0:m.type)==="text"){const f=m.text??"",v={...m,text:f+l};c=[...c.slice(0,c.length-1),v]}else c=[...c,{type:"text",text:l}];o.lastText=a+l}else o.lastText=a}i.length&&(c=[...c,...i]);const d=!!(l||i.length);return{newParts:c,newMeta:o,changed:d}}function cu(e){return e.replace(/\s+/g," ").trim()}function Vv(e,t){if(!t)return"";if(!e)return t;if(e===t)return"";const n=Math.min(e.length,t.length);for(let i=n;i>0;i--)if(e.slice(-i)===t.slice(0,i))return t.slice(i);const r=cu(e),o=cu(t);if(r===o)return"";const s=Math.min(r.length,o.length);for(let i=s;i>0;i--)if(r.slice(-i)===o.slice(0,i))return t;return t}function Kv(e,t,n){for(let r=e.length-1;r>=0;r--)if(e[r].role==="assistant"){const s={...e[r],checkpointId:t,checkpointNs:n??void 0};return Jr(e,r,s)}return e}function uu(e){if(!e)return null;const t=e.split("/");return t[t.length-1]||null}function qv(e={}){const t=b.useMemo(()=>vn(e.baseUrl),[e.baseUrl]),n=e.streamPath??"/runs/stream",[r,o]=b.useState(e.token??null),s=b.useRef(e.headers??{}),i=e.credentials??"include",[a,l]=b.useState(!1),[c,d]=b.useState(null),[h,m]=b.useState(""),[f,v]=b.useState(null),[g,x]=b.useState(0),[y,w]=b.useState(!1),[S,k]=b.useState(null),C=b.useRef(null),T=b.useRef(!0),E=b.useRef(0),N=b.useRef(null),R=b.useRef(null),O=b.useRef(null),L=b.useRef(null),q=b.useRef({messageId:null,lastSeq:null,lastText:""}),W=b.useCallback(B=>{o(B)},[]),j=b.useCallback(()=>{m(""),v(null),d(null),R.current=null,O.current=null,L.current=null,k(null),q.current={messageId:null,lastSeq:null,lastText:""}},[]),X=b.useCallback(()=>{var B;console.debug("[use-chat] stop() invoked - aborting stream"),(B=C.current)==null||B.abort(),C.current=null,N.current=null,l(!1),w(!1),E.current=0,x(0)},[]),G=b.useCallback((B,M,I)=>{C.current&&(C.current.abort(),C.current=null),l(!0),d(null),e.autoAppendAssistant!==!1&&m(""),v(null),R.current=null,O.current=null,L.current=null,k(null),q.current={messageId:null,lastSeq:null,lastText:""};const K=new AbortController;C.current=K;let J=null,P=null,_=!1;return N.current={threadId:B.threadId??null,headers:{}},(async()=>{var F,re,V,D,Z,ee,Q,H,ae,ie,ge,ye,Te,Ae,ke,st,vt,kt;const z=Ve=>{var ze;try{const Ke=JSON.parse(JSON.stringify(Ve));return(ze=Ke==null?void 0:Ke.payload)!=null&&ze.files_info&&Array.isArray(Ke.payload.files_info)&&(Ke.payload.files_info=Ke.payload.files_info.map(Oe=>({...Oe,data:Oe!=null&&Oe.data?`<base64 ${String(Oe.data).length} chars>`:Oe==null?void 0:Oe.data}))),Ke}catch{return Ve}};try{let Ve={};try{if(r)Ve={Authorization:`Bearer ${r}`};else if(typeof window<"u"){const We=window.__AUTH_TOKEN__,_t=((F=window.localStorage)==null?void 0:F.getItem("authToken"))||null;let Y=null;try{const Be=(re=window.localStorage)==null?void 0:re.getItem("chat-settings");Be&&(Y=((V=JSON.parse(Be))==null?void 0:V.apiKey)||null)}catch{}const fe=We||_t||Y||null;fe&&(Ve={Authorization:`Bearer ${fe}`})}}catch{}console.debug("[use-chat] POST",t+n,z(B));let ze={};if(typeof window<"u")try{const Pe=(D=window.localStorage)==null?void 0:D.getItem("authSessionId");Pe&&(ze={"X-Session-Id":Pe})}catch{}const Ke={...Ve,...ze,...s.current},Oe={"Content-Type":"application/json",Accept:"text/event-stream",...Ke},Ue=await fetch(t+n,{method:"POST",headers:Oe,body:JSON.stringify(B),signal:K.signal,credentials:i});if(N.current&&(N.current.headers=Ke),!Ue.ok||!Ue.body){const Pe=await Ue.text().catch(()=>"");console.debug("[use-chat] non-OK response",Ue.status,Pe==null?void 0:Pe.slice(0,500));const We=`stream ${Ue.status}${Pe?": "+Pe:""}`;throw(Z=I==null?void 0:I.onConnectionError)==null||Z.call(I,We),_=!0,J="error",P=We,new Error(We)}w(!0);const dt=Ue.body.getReader(),Nt=new TextDecoder;let nt="",At=[];E.current=0,x(0);let wt=0,mt=null;const Et=()=>{if(At.length){const Pe=At.join("");At=[],T.current&&m(We=>We+Pe)}mt=null},yt=()=>{typeof window<"u"&&mt==null&&(mt=requestAnimationFrame(Et))};let jt=Date.now();const qt=setInterval(()=>{var Pe;if(Date.now()-jt>18e5){const We="Stream idle timeout";d(We),J="error",P=We,K.abort(),(Pe=I==null?void 0:I.onError)==null||Pe.call(I,We)}},5e3),gt=1024*1024;try{const Pe=Ue.headers.get("X-Thread-Id")||Ue.headers.get("x-thread-id"),We=Ue.headers.get("X-Thread-Created")||Ue.headers.get("x-thread-created"),_t=Pe??null,Y=String(We??"").toLowerCase()==="true";for(N.current&&!N.current.threadId&&(N.current={...N.current,threadId:_t}),(ee=I==null?void 0:I.onOpen)==null||ee.call(I,{threadId:_t,created:Y});;){const{value:fe,done:Be}=await dt.read();if(Be)break;nt+=Nt.decode(fe,{stream:!0}),nt.length>gt&&(nt="",console.warn("Stream buffer reset: exceeded 1MB"));let xe;for(;(xe=nt.indexOf(`
|
|
35
|
+
`+s):r.stack=s}catch{}}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Zn(this.defaults,n);const{transitional:r,paramsSerializer:o,headers:s}=n;r!==void 0&&Uo.assertOptions(r,{silentJSONParsing:xn.transitional(xn.boolean),forcedJSONParsing:xn.transitional(xn.boolean),clarifyTimeoutError:xn.transitional(xn.boolean)},!1),o!=null&&(U.isFunction(o)?n.paramsSerializer={serialize:o}:Uo.assertOptions(o,{encode:xn.function,serialize:xn.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),Uo.assertOptions(n,{baseUrl:xn.spelling("baseURL"),withXsrfToken:xn.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=s&&U.merge(s.common,s[n.method]);s&&U.forEach(["delete","get","head","post","put","patch","common"],v=>{delete s[v]}),n.headers=Ht.concat(i,s);const a=[];let l=!0;this.interceptors.request.forEach(function(g){typeof g.runWhen=="function"&&g.runWhen(n)===!1||(l=l&&g.synchronous,a.unshift(g.fulfilled,g.rejected))});const c=[];this.interceptors.response.forEach(function(g){c.push(g.fulfilled,g.rejected)});let d,h=0,m;if(!l){const v=[Hc.bind(this),void 0];for(v.unshift(...a),v.push(...c),m=v.length,d=Promise.resolve(n);h<m;)d=d.then(v[h++],v[h++]);return d}m=a.length;let f=n;for(;h<m;){const v=a[h++],g=a[h++];try{f=v(f)}catch(x){g.call(this,x);break}}try{d=Hc.call(this,f)}catch(v){return Promise.reject(v)}for(h=0,m=c.length;h<m;)d=d.then(c[h++],c[h++]);return d}getUri(t){t=Zn(this.defaults,t);const n=_c(t.baseURL,t.url,t.allowAbsoluteUrls);return Sc(n,t.params,t.paramsSerializer)}};U.forEach(["delete","get","head","options"],function(t){Qn.prototype[t]=function(n,r){return this.request(Zn(r||{},{method:t,url:n,data:(r||{}).data}))}}),U.forEach(["post","put","patch"],function(t){function n(r){return function(s,i,a){return this.request(Zn(a||{},{method:t,headers:r?{"Content-Type":"multipart/form-data"}:{},url:s,data:i}))}}Qn.prototype[t]=n(),Qn.prototype[t+"Form"]=n(!0)});let Lv=class nx{constructor(t){if(typeof t!="function")throw new TypeError("executor must be a function.");let n;this.promise=new Promise(function(s){n=s});const r=this;this.promise.then(o=>{if(!r._listeners)return;let s=r._listeners.length;for(;s-- >0;)r._listeners[s](o);r._listeners=null}),this.promise.then=o=>{let s;const i=new Promise(a=>{r.subscribe(a),s=a}).then(o);return i.cancel=function(){r.unsubscribe(s)},i},t(function(s,i,a){r.reason||(r.reason=new gr(s,i,a),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=r=>{t.abort(r)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new nx(function(o){t=o}),cancel:t}}};function $v(e){return function(n){return e.apply(null,n)}}function Fv(e){return U.isObject(e)&&e.isAxiosError===!0}const Ni={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(Ni).forEach(([e,t])=>{Ni[t]=e});function Vc(e){const t=new Qn(e),n=ac(Qn.prototype.request,t);return U.extend(n,Qn.prototype,t,{allOwnKeys:!0}),U.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return Vc(Zn(e,o))},n}const ft=Vc(Gr);ft.Axios=Qn,ft.CanceledError=gr,ft.CancelToken=Lv,ft.isCancel=Ic,ft.VERSION=Uc,ft.toFormData=$o,ft.AxiosError=Re,ft.Cancel=ft.CanceledError,ft.all=function(t){return Promise.all(t)},ft.spread=$v,ft.isAxiosError=Fv,ft.mergeConfig=Zn,ft.AxiosHeaders=Ht,ft.formToJSON=e=>kc(U.isHTMLForm(e)?new FormData(e):e),ft.getAdapter=zc.getAdapter,ft.HttpStatusCode=Ni,ft.default=ft;const{Axios:dN,AxiosError:fN,CanceledError:hN,isCancel:pN,CancelToken:mN,VERSION:gN,all:xN,Cancel:vN,isAxiosError:bN,spread:wN,toFormData:yN,AxiosHeaders:SN,HttpStatusCode:CN,formToJSON:TN,getAdapter:kN,mergeConfig:EN}=ft,Kc=typeof window<"u"?window.__API_BASE_URL__:void 0,qc=Kc?vn(Kc):void 0;function vn(e){const n=(e!=null&&e.trim()?e.trim():"/api/chat").replace(/\/+$/,"");return n?n.endsWith("/chat")?n:`${n}/chat`:"/api/chat"}let Wo=null;const Ai=new Set;function Gc(){return Wo}function Vo(e){Wo=e,Ai.forEach(t=>t(e))}function Yc(e){return Ai.add(e),()=>Ai.delete(e)}const Xc=3e4,Jc=9e4,Xt=ft.create({...qc?{baseURL:qc}:{},timeout:Xc,withCredentials:!0});Xt.interceptors.request.use(e=>(Wo&&(e.headers.Authorization=`Bearer ${Wo}`),e)),Xt.interceptors.response.use(e=>{if(typeof window<"u"&&(e!=null&&e.data))try{const t=e.data,n=t.data||{},r=typeof t.token=="string"&&t.token||typeof n.token=="string"&&n.token||null,o=typeof t.expires_at=="number"&&t.expires_at||typeof n.expires_at=="number"&&n.expires_at||typeof t.expiresAt=="number"&&t.expiresAt||typeof n.expiresAt=="number"&&n.expiresAt||null;r&&(localStorage.setItem("authToken",r),Vo(r)),o&&localStorage.setItem("authTokenExpiresAt",o.toString()),(r||o)&&window.dispatchEvent(new CustomEvent("smartorg:chat-token-updated",{detail:{token:r,expiresAt:o}}))}catch(t){console.warn("[chat-api] Error storing token:",t)}return e},e=>Promise.reject(e));async function Jt(e,t){return Xt.defaults.baseURL?(await Xt.get(e,t)).data:Promise.reject(new Error("API base URL is not configured"))}async function Ko(e,t,n){return Xt.defaults.baseURL?(await Xt.post(e,t,n)).data:Promise.reject(new Error("API base URL is not configured"))}async function Zc(e,t,n){return Xt.defaults.baseURL?(await Xt.put(e,t,n)).data:Promise.reject(new Error("API base URL is not configured"))}async function ji(e,t){return Xt.defaults.baseURL?(await Xt.delete(e,t)).data:Promise.reject(new Error("API base URL is not configured"))}function $t(e){return e&&typeof e=="object"&&"data"in e?e.data:e}class qo{get baseUrl(){const t=Xt.defaults.baseURL;return t?vn(String(t)):""}updateConfig(t){t.baseUrl&&(Xt.defaults.baseURL=vn(String(t.baseUrl))),t.authToken!==void 0&&Vo(t.authToken)}getAuthToken(){return Gc()}setAuthToken(t){Vo(t)}onTokenChange(t){return Yc(t)}async listThreads(){const t=await Jt("/threads"),n=$t(t);return(n==null?void 0:n.items)??(t==null?void 0:t.items)??[]}async listSharedThreads(){const t=await Jt("/threads/shared"),n=$t(t);return(n==null?void 0:n.items)??(t==null?void 0:t.items)??[]}async createThread(t){const r=await Ko("/threads",t?{title:t}:void 0);return $t(r)}async updateThread(t,n){const r=await Zc(`/threads/${t}`,{title:n});return $t(r)}async deleteThread(t){const n=await ji(`/threads/${t}`);return $t(n)}async shareThread(t,n){const r=await Ko(`/threads/${t}/share`,{shared_with_user_id:n});return $t(r)}async threadInfo(t){const n=await Jt(`/threads/${t}/info`);return $t(n)}async listAgents(){const t=await Jt("/agents"),n=$t(t);return(n==null?void 0:n.items)??[]}async getAgent(t){const n=await Jt(`/agents/${t}`);return $t(n)}async getAgentSchema(t){const n=await Jt(`/agents/${t}/schema`);return $t(n)}async getState(t){const n=await Jt(`/threads/${t.threadId}/state`,{params:{thread_id:t.threadId,checkpoint_id:t.checkpointId,checkpoint_ns:t.checkpointNs}});return $t(n)}async getStateHistory(t){const n=await Jt(`/threads/${t.threadId}/state/history`,{params:{thread_id:t.threadId,checkpoint_id:t.checkpointId,checkpoint_ns:t.checkpointNs},timeout:Jc});return $t(n)}async cancelRun(t){const n=await Ko("/runs/cancel",{threadId:t});return $t(n)}async unshareThread(t,n){const r=await ji(`/threads/${t}/share/${n}`);return $t(r)}}const Mn=new qo,Bv=qo,zv=qo;async function _i(e,t){return await Jt(e,{responseType:"blob",onDownloadProgress:r=>{try{if(t&&r.lengthComputable){const o=r.loaded/r.total;t(o)}}catch{}},maxBodyLength:1/0})}async function Hv(e,t){const n=await _i(`/files/${e}/view`,t),r=URL.createObjectURL(n);window.open(r,"_blank"),setTimeout(()=>URL.revokeObjectURL(r),6e4)}async function Pi(e,t){return await(await _i(`/files/${e}/view`,t)).text()}async function Qc(e,t){const n=await _i(`/files/${e}/download`,t),r=URL.createObjectURL(n);let o=`file_${e}`;try{const i=await Jt(`/files/${e}`);o=(i==null?void 0:i.filename)??o}catch{}const s=document.createElement("a");s.href=r,s.download=o,document.body.appendChild(s),s.click(),s.remove(),setTimeout(()=>URL.revokeObjectURL(r),6e4)}async function Uv(e){return await Jt(`/files/${e}`)}async function eu(e,t=50,n=0){const r={limit:t,offset:n};return e&&(r.thread_id=e),await Jt("/files",{params:r})}const tu=b.createContext(null);function nu({children:e,apiConfig:t}){const n=Mn;if(t){const o=n.baseUrl,s=n.getAuthToken();t.baseUrl&&t.baseUrl!==o&&n.updateConfig({baseUrl:t.baseUrl}),t.apiKey!==void 0&&t.apiKey!==s&&n.updateConfig({authToken:t.apiKey})}const r={token:n.getAuthToken(),setToken:o=>n.setAuthToken(o),api:n,baseUrl:n.baseUrl};return u.jsx(tu.Provider,{value:r,children:e})}async function ru(e){return await new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{try{const o=r.result,s=new Uint8Array(o);let i="";const a=s.byteLength;for(let l=0;l<a;l++)i+=String.fromCharCode(s[l]);t(btoa(i))}catch(o){n(o)}},r.onerror=o=>n(o),r.readAsArrayBuffer(e)})}async function ou(e=[]){const t=[],n=[];for(const r of e)try{const o=await ru(r);n.push({filename:r.name,data:o,mime_type:r.type||"application/octet-stream"})}catch{}return{contentParts:t,filesInfo:n}}function Xr(){const e=b.useContext(tu);if(!e)throw new Error("useApi must be used within ApiProvider");return e}function su(e){return!!e&&typeof e=="object"&&"data"in e}function Ri(e){return e.filter(t=>{var i;if(t.role!=="assistant")return!0;const n=(t.content??[]).some(a=>{var l;return a&&a.type==="text"&&((l=a.text)==null?void 0:l.trim())}),r=(t.content??[]).some(a=>a&&a.type==="image_url"),o=(i=t.artifact)==null?void 0:i.plots,s=Array.isArray(o)&&o.length>0;return!!(n||r||s)})}function Jr(e,t,n){return t<0||t>=e.length?e:[...e.slice(0,t),n,...e.slice(t+1)]}function Wv(e){let t=!1;const n=e.map(r=>{const o=(r.content??[]).filter(s=>s.type!=="interrupt");return o.length!==r.content.length?(t=!0,{...r,content:o}):r});return t?n:e}function iu(e){for(let t=e.length-1;t>=0;t--)if(e[t].role==="assistant")return e[t].id;return null}function au(e){return!e||!e.length?"":e.filter(t=>t.type==="text").map(t=>t.text??"").join("")}function lu(e,t,n,r){const o={...n};if(r!==null&&typeof r=="number"){if(typeof o.lastSeq=="number"&&r<=o.lastSeq)return{newParts:e,newMeta:o,changed:!1};o.lastSeq=r}const s=t.filter(h=>h.type==="text").map(h=>h.text??"").join(""),i=t.filter(h=>h.type!=="text"),a=o.lastText??au(e);let l="",c=e.slice();if(s){const h=Vv(a,s);if(h===""?l="":h===s?l=s:l=h,l){const m=c[c.length-1];if((m==null?void 0:m.type)==="text"){const f=m.text??"",v={...m,text:f+l};c=[...c.slice(0,c.length-1),v]}else c=[...c,{type:"text",text:l}];o.lastText=a+l}else o.lastText=a}i.length&&(c=[...c,...i]);const d=!!(l||i.length);return{newParts:c,newMeta:o,changed:d}}function cu(e){return e.replace(/\s+/g," ").trim()}function Vv(e,t){if(!t)return"";if(!e)return t;if(e===t)return"";const n=Math.min(e.length,t.length);for(let i=n;i>0;i--)if(e.slice(-i)===t.slice(0,i))return t.slice(i);const r=cu(e),o=cu(t);if(r===o)return"";const s=Math.min(r.length,o.length);for(let i=s;i>0;i--)if(r.slice(-i)===o.slice(0,i))return t;return t}function Kv(e,t,n){for(let r=e.length-1;r>=0;r--)if(e[r].role==="assistant"){const s={...e[r],checkpointId:t,checkpointNs:n??void 0};return Jr(e,r,s)}return e}function uu(e){if(!e)return null;const t=e.split("/");return t[t.length-1]||null}function qv(e={}){const t=b.useMemo(()=>vn(e.baseUrl),[e.baseUrl]),n=e.streamPath??"/runs/stream",[r,o]=b.useState(e.token??null),s=b.useRef(e.headers??{}),i=e.credentials??"include",[a,l]=b.useState(!1),[c,d]=b.useState(null),[h,m]=b.useState(""),[f,v]=b.useState(null),[g,x]=b.useState(0),[y,w]=b.useState(!1),[S,k]=b.useState(null),C=b.useRef(null),T=b.useRef(!0),E=b.useRef(0),N=b.useRef(null),R=b.useRef(null),O=b.useRef(null),L=b.useRef(null),q=b.useRef({messageId:null,lastSeq:null,lastText:""}),W=b.useCallback(B=>{o(B)},[]),j=b.useCallback(()=>{m(""),v(null),d(null),R.current=null,O.current=null,L.current=null,k(null),q.current={messageId:null,lastSeq:null,lastText:""}},[]),X=b.useCallback(()=>{var B;console.debug("[use-chat] stop() invoked - aborting stream"),(B=C.current)==null||B.abort(),C.current=null,N.current=null,l(!1),w(!1),E.current=0,x(0)},[]),G=b.useCallback((B,M,I)=>{C.current&&(C.current.abort(),C.current=null),l(!0),d(null),e.autoAppendAssistant!==!1&&m(""),v(null),R.current=null,O.current=null,L.current=null,k(null),q.current={messageId:null,lastSeq:null,lastText:""};const K=new AbortController;C.current=K;let J=null,P=null,_=!1;return N.current={threadId:B.threadId??null,headers:{}},(async()=>{var F,re,V,D,Z,ee,Q,H,ae,ie,ge,ye,Te,Ae,ke,st,vt,kt;const z=Ve=>{var ze;try{const Ke=JSON.parse(JSON.stringify(Ve));return(ze=Ke==null?void 0:Ke.payload)!=null&&ze.files_info&&Array.isArray(Ke.payload.files_info)&&(Ke.payload.files_info=Ke.payload.files_info.map(Oe=>({...Oe,data:Oe!=null&&Oe.data?`<base64 ${String(Oe.data).length} chars>`:Oe==null?void 0:Oe.data}))),Ke}catch{return Ve}};try{let Ve={};try{if(r)Ve={Authorization:`Bearer ${r}`};else if(typeof window<"u"){const We=window.__AUTH_TOKEN__,_t=((F=window.localStorage)==null?void 0:F.getItem("authToken"))||null;let Y=null;try{const Be=(re=window.localStorage)==null?void 0:re.getItem("chat-settings");Be&&(Y=((V=JSON.parse(Be))==null?void 0:V.apiKey)||null)}catch{}const fe=We||_t||Y||null;fe&&(Ve={Authorization:`Bearer ${fe}`})}}catch{}console.debug("[use-chat] POST",t+n,z(B));let ze={};if(typeof window<"u")try{const Pe=(D=window.localStorage)==null?void 0:D.getItem("authSessionId");Pe&&(ze={"X-Session-Id":Pe})}catch{}const Ke={...Ve,...ze,...s.current},Oe={"Content-Type":"application/json",Accept:"text/event-stream",...Ke},Ue=await fetch(t+n,{method:"POST",headers:Oe,body:JSON.stringify(B),signal:K.signal,credentials:i});if(N.current&&(N.current.headers=Ke),!Ue.ok||!Ue.body){const Pe=await Ue.text().catch(()=>"");console.debug("[use-chat] non-OK response",Ue.status,Pe==null?void 0:Pe.slice(0,500));const We=`stream ${Ue.status}${Pe?": "+Pe:""}`;throw(Z=I==null?void 0:I.onConnectionError)==null||Z.call(I,We),_=!0,J="error",P=We,new Error(We)}w(!0);const dt=Ue.body.getReader(),Nt=new TextDecoder;let nt="",At=[];E.current=0,x(0);let wt=0,mt=null;const Et=()=>{if(At.length){const Pe=At.join("");At=[],T.current&&m(We=>We+Pe)}mt=null},yt=()=>{typeof window<"u"&&mt==null&&(mt=requestAnimationFrame(Et))};let jt=Date.now();const qt=setInterval(()=>{var Pe;if(Date.now()-jt>18e5){const We="Stream idle timeout";d(We),J="error",P=We,K.abort(),(Pe=I==null?void 0:I.onError)==null||Pe.call(I,We)}},5e3),gt=1024*1024;try{const Pe=Ue.headers.get("X-Thread-Id")||Ue.headers.get("x-thread-id"),We=Ue.headers.get("X-Thread-Created")||Ue.headers.get("x-thread-created"),_t=Pe??null,Y=String(We??"").toLowerCase()==="true";for(N.current&&!N.current.threadId&&(N.current={...N.current,threadId:_t}),(ee=I==null?void 0:I.onOpen)==null||ee.call(I,{threadId:_t,created:Y});;){const{value:fe,done:Be}=await dt.read();if(Be)break;nt+=Nt.decode(fe,{stream:!0}),nt.length>gt&&(nt="",console.warn("Stream buffer reset: exceeded 1MB"));let xe;for(;(xe=nt.indexOf(`
|
|
36
36
|
|
|
37
37
|
`))>=0;){const Fe=nt.slice(0,xe);nt=nt.slice(xe+2);const Ge=Fe.split(/\r?\n/),St=[];for(const Xe of Ge)if(!(!Xe||Xe.startsWith(":"))&&Xe.startsWith("data:")){const lt=Xe.slice(5);St.push(lt.startsWith(" ")?lt.slice(1):lt)}const Ct=St.join(`
|
|
38
38
|
`);if(!Ct)continue;let It;try{It=JSON.parse(Ct)}catch{console.debug("[use-chat] malformed SSE:",Ct.slice(0,200));continue}const Lt=su(It)?It.data:It;if(!Lt){console.warn("[use-chat] dropped envelope event without payload",It);continue}const je=Lt;jt=Date.now();const ct=je.seq;if(ct!==void 0){if(ct<=wt){console.debug("[use-chat] drop duplicate/out-of-order event",{seq:ct,lastProcessedSeq:wt,type:je.type});continue}wt>0&&ct>wt+1&&((Q=I==null?void 0:I.onGap)==null||Q.call(I,{from:wt,to:ct})),wt=ct,E.current=ct,x(ct)}if(je.type==="message.start"&&je.role==="assistant"){const Xe=uu(je.model);q.current={messageId:je.id,lastSeq:ct??null,lastText:""},k({id:je.id,role:"assistant",name:Xe??void 0,model:je.model,createdAt:new Date().toISOString(),content:[]})}if(je.type==="checkpoint")R.current=je.checkpointId??null,O.current=je.checkpointNs??null,v(je.checkpointId??null);else if(je.type==="state_history"){L.current=je;try{const lt=Rn(je).latest;lt&&(R.current=lt.checkpointId??null,O.current=lt.checkpointNs??null,v(lt.checkpointId??null))}catch(Xe){console.warn("[use-chat] Failed to hydrate state_history payload",Xe)}}try{M==null||M(je)}catch(Xe){console.error("[use-chat] Error in onEvent callback:",Xe,"for event:",je.type)}if(je.type==="message.delta"){k(lt=>{const an=q.current;if(!lt||an.messageId!==lt.id)return lt;const{newParts:A,newMeta:te,changed:he}=lu(lt.content??[],je.delta,{lastSeq:an.lastSeq,lastText:an.lastText},ct??null);return he?(q.current={...an,lastSeq:te.lastSeq??an.lastSeq,lastText:te.lastText??an.lastText},{...lt,content:A}):lt});const Xe=je.delta.filter(lt=>lt.type==="text").map(lt=>lt.text).join("");Xe&&e.autoAppendAssistant!==!1&&(At.push(Xe),yt())}else if(je.type==="heartbeat"){console.debug("[use-chat] heartbeat received");try{(H=I==null?void 0:I.onHeartbeat)==null||H.call(I,je)}catch(Xe){console.warn("[use-chat] heartbeat callback failed",Xe)}}else if(mt!==null&&cancelAnimationFrame(mt),Et(),je.type==="checkpoint")v(je.checkpointId);else if(je.type==="error"){const Xe=je;if(d(Xe.message),J="error",P=Xe.message,Xe.error_type==="auth_error"||Xe.code==="TOKEN_EXPIRED"||((ae=Xe.message)==null?void 0:ae.includes("token"))||((ie=Xe.message)==null?void 0:ie.includes("401"))||((ge=Xe.message)==null?void 0:ge.includes("unauthorized"))||((ye=Xe.message)==null?void 0:ye.includes("Unauthorized"))){console.error("[use-chat] Auth error detected:",Xe.message);try{(Te=I==null?void 0:I.onAuthError)==null||Te.call(I,Xe.message)}catch(an){console.warn("[use-chat] onAuthError handler failed",an)}K.abort()}}}}Et(),J===null&&!K.signal.aborted&&(J="complete")}catch(Pe){if(Pe.name==="AbortError")J=J??"aborted";else{const We=Pe.message||String(Pe);J="error",P=We,d(We),(Ae=I==null?void 0:I.onError)==null||Ae.call(I,We)}}finally{try{await dt.cancel()}catch{}finally{(ke=dt.releaseLock)==null||ke.call(dt)}mt!==null&&typeof window<"u"&&window.cancelAnimationFrame(mt),clearInterval(qt)}}catch(Ve){if(Ve.name==="AbortError")J=J??"aborted";else{const ze=Ve.message||String(Ve);J="error",P=ze,d(ze),(st=I==null?void 0:I.onError)==null||st.call(I,ze),_||((vt=I==null?void 0:I.onConnectionError)==null||vt.call(I,ze),_=!0)}}finally{const Ve=E.current,ze=R.current,Ke=O.current,Oe=L.current,Ue=J??(K.signal.aborted?"aborted":P?"error":"complete");try{(kt=I==null?void 0:I.onClosed)==null||kt.call(I,{reason:Ue,lastSeq:Ve,lastCheckpointId:ze,lastCheckpointNs:Ke,lastStateHistory:Oe,error:P})}catch(dt){console.warn("[use-chat] onClosed callback failed",dt)}l(!1),w(!1),C.current=null,E.current=0,x(0),N.current=null}})(),{close:()=>K.abort()}},[t,n,r,e.autoAppendAssistant]);return b.useEffect(()=>()=>{var B;T.current=!1,(B=C.current)==null||B.abort()},[]),{isStreaming:a,error:c,assistantText:h,assistantMessage:S,lastCheckpointId:f,lastSeq:g,connected:y,stream:G,stop:X,clear:j,setToken:W}}const Gv=["detail","message","error","description","title"];function Go(e){if(!e)return null;if(typeof e=="string"){const t=e.trim();return t.length?t:null}if(Array.isArray(e)){for(const t of e){const n=Go(t);if(n)return n}return null}if(typeof e=="object"){const t=e;for(const n of Gv){const r=Go(t[n]);if(r)return r}if("errors"in t){const n=Go(t.errors);if(n)return n}}return null}function Yv(e){if(!e)return"Request failed";const t=e.response,n=Go(t==null?void 0:t.data);if(n)return n;if(t!=null&&t.statusText)return t.statusText;if(e instanceof Error&&e.message)return e.message;if(typeof e=="string"){const r=e.trim();if(r.length)return r}return t!=null&&t.status?`Request failed with status code ${t.status}`:"Request failed"}function du({api:e,initialThreadId:t=null,onError:n,onThreadChange:r,onCurrentThreadDeleted:o}){const[s,i]=b.useState([]),[a,l]=b.useState(t),[c,d]=b.useState(!1),[h,m]=b.useState(null),[f,v]=b.useState([]),[g,x]=b.useState(!1),[,y]=b.useState(null),[w,S]=b.useState(null),[k,C]=b.useState(!1),T=b.useRef(a),E=b.useRef(new Map);b.useEffect(()=>{T.current=a},[a]);const N=b.useCallback(async()=>{d(!0),m(null);try{const M=await e.listThreads();i(M??[])}catch(M){const I=String(M);m(I),n==null||n(I)}finally{d(!1)}},[e,n]),R=b.useCallback(async()=>{x(!0),y(null);try{const M=await e.listSharedThreads();v(M??[])}catch(M){const I=String(M);y(I),n==null||n(I)}finally{x(!1)}},[e,n]);b.useEffect(()=>{N()},[N]),b.useEffect(()=>{R()},[R]),b.useEffect(()=>{r==null||r(a)},[a,r]);const O=b.useCallback(async M=>{try{const I=await e.createThread(M);return l(I.threadId),await N(),I.threadId}catch(I){const K=String(I);return n==null||n(K),null}},[e,n,N]),L=b.useCallback(async M=>{const I=s;i(J=>J.filter(P=>P.threadId!==M));const K=new AbortController;E.current.set(M,K);try{await e.deleteThread(M),T.current===M&&(l(null),o==null||o())}catch(J){i(I);const P=String(J);n==null||n(P)}finally{E.current.delete(M)}},[e,o,n,s]),q=b.useCallback(async(M,I)=>{try{await e.updateThread(M,I),await N()}catch(K){n==null||n(String(K))}},[e,n,N]),W=b.useCallback(async(M,I)=>{C(!0),S("Sharing thread…");try{await e.shareThread(M,I),await R(),S("Shared successfully")}catch(K){const J=Yv(K);throw n==null||n(J),S(`Failed to share: ${J}`),new Error(J)}finally{C(!1)}},[e,n,R]),j=b.useCallback(async(M,I)=>{try{await e.unshareThread(M,I),await R()}catch(K){const J=String(K);throw n==null||n(J),K}},[e,n,R]),X=b.useMemo(()=>({createThread:O,deleteThread:L,renameThread:q,refreshThreads:N,refreshSharedThreads:R,shareThread:W,unshareThread:j}),[O,L,q,N,R,W,j]),G=b.useCallback(M=>{if(!(M!=null&&M.threadId))return;const I={threadId:M.threadId,title:M.title||`Thread ${M.threadId.slice(0,8)}`,createdAt:M.createdAt||new Date().toISOString(),updatedAt:M.updatedAt||new Date().toISOString(),messageCount:M.messageCount??1};i(K=>{let J=!1;const P=K.map(_=>_.threadId===I.threadId?(J=!0,console.debug("[useThreadsState] thread_info: updating existing thread",I.threadId),{..._,title:I.title??_.title,updatedAt:I.updatedAt??_.updatedAt,messageCount:I.messageCount??_.messageCount}):_);return J?P:(console.debug("[useThreadsState] thread_info: adding thread to list",I.threadId),[I,...K])})},[]),B=b.useCallback(()=>S(null),[]);return{threads:s,currentThreadId:a,currentThreadIdRef:T,setCurrentThreadId:l,isLoadingThreads:c,threadsError:h,sharedThreads:f,isLoadingSharedThreads:g,actions:X,addThreadFromEvent:G,shareInFlight:k,shareStatus:w,clearShareStatus:B}}const fu=b.createContext(null);function hu({children:e,initialThreadId:t=null,onError:n,onThreadChange:r}){const{api:o}=Xr(),{threads:s,currentThreadId:i,setCurrentThreadId:a,currentThreadIdRef:l,isLoadingThreads:c,threadsError:d,sharedThreads:h,isLoadingSharedThreads:m,actions:f,addThreadFromEvent:v,shareInFlight:g,shareStatus:x,clearShareStatus:y}=du({api:o,initialThreadId:t,onError:n,onThreadChange:r}),w=b.useMemo(()=>({threads:s,currentThreadId:i,setCurrentThreadId:a,currentThreadIdRef:l,isLoading:c,error:d,sharedThreads:h,isLoadingSharedThreads:m,actions:f,shareInFlight:g,shareStatus:x,clearShareStatus:y,addThreadFromEvent:v}),[s,i,a,l,c,d,h,m,f,g,x,y,v]);return u.jsx(fu.Provider,{value:w,children:e})}function xr(){const e=b.useContext(fu);if(!e)throw new Error("useThreads must be used within a ThreadsProvider");return e}function Mi(e){const t=e==null?void 0:e.trim();if(!t||!(t.startsWith("{")||t.startsWith("[")))return null;try{return JSON.parse(t)}catch{return null}}function pu(e){return!!(e&&typeof e=="object"&&(e.type==="file"||e.mimeType||e.filename||e.sourceType==="base64"))}function Zr(e){if(typeof e=="string")return e;if(e&&typeof e=="object"){if(Array.isArray(e)){const n=e.map(Zr).filter(r=>r!==void 0);if(!n.length){console.debug("[message-utils] sanitizeForDisplay - array emptied -> returning undefined",{originalLength:e.length});return}return n}if(pu(e)){try{console.debug("[message-utils] sanitizeForDisplay - dropping file-like object",{sampleFilename:e&&(e.filename||e.name)?e.filename||e.name:void 0,keys:Object.keys(e||{})})}catch(n){console.debug("[message-utils] sanitizeForDisplay - dropped file-like (unable to inspect)",{err:String(n)})}return}const t={};for(const n of Object.keys(e)){const r=e[n];if(n==="data"&&typeof r=="string"&&r.length>100)t[n]=`[base64 ${r.length} chars omitted]`;else{const o=Zr(r);o!==void 0&&(t[n]=o)}}if(Object.keys(t).length)return t;try{console.debug("[message-utils] sanitizeForDisplay - object emptied -> returning undefined",{originalKeys:Object.keys(e||{})})}catch(n){console.debug("[message-utils] sanitizeForDisplay - object emptied -> returning undefined (inspect failed)",{err:String(n)})}return}return e}function vr(e){if(typeof e=="string")return e;if(pu(e))return"";try{const t=Zr(e);return t===void 0?"":typeof t=="string"?t:JSON.stringify(t,null,2)}catch{return""}}function Xv(e){return typeof e!="string"?!1:/^[\s\n]*[-*]\s|^[\s\n]*#+\s|```|^\s*\[.*\]\(|^>\s/.test(e)}function Jv(e){const t=vr(e);return typeof e=="string"&&Xv(e)?{content:e,isMarkdown:!0}:{content:t,isMarkdown:!1}}function Qr(e){if(e==null)return e;if(typeof e=="string"){const t=e.trim();if(t.startsWith("{")||t.startsWith("[")){const n=Mi(t);if(n!==null)return Qr(n)}return e}return typeof e=="object"&&!Array.isArray(e)&&e.content!==void 0?Qr(e.content):e}function Zv(e){return e.filter(t=>t.type==="text").map(t=>t.text).join("")}function Oi(e){const t=e.content.find(s=>s.type==="tool_call"),n=e.additionalKwargs??{},r=typeof(t==null?void 0:t.id)=="string"&&t.id||typeof n.toolCallId=="string"&&n.toolCallId||(e.id.startsWith("tool-")?e.id.slice(5):void 0);return{name:(typeof(t==null?void 0:t.name)=="string"&&t.name||typeof n.toolName=="string"&&n.toolName||e.name&&String(e.name))??void 0,toolCallId:r??void 0}}function Yo(e){if(e==null)return null;const t=String(e).trim();return t.length>0?t:null}function Qv(e){const t=r=>{try{const o=Zr(r);return typeof o=="string"?o:JSON.stringify(o??"")}catch{return""}},n=e.filter(r=>r.type==="text");return n.length?t(n.map(r=>r.text).join(`
|
package/package.json
CHANGED