@teodorruskvi/chat-core 0.1.41 → 0.1.43

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.umd.js CHANGED
@@ -1,9 +1,9 @@
1
- (function(x,H){typeof exports=="object"&&typeof module<"u"?H(exports,require("react/jsx-runtime"),require("react"),require("axios")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","axios"],H):(x=typeof globalThis<"u"?globalThis:x||self,H(x.ChatCore={},x.jsxRuntime,x.React,x.axios))})(this,function(x,H,c,it){"use strict";var to=Object.defineProperty;var no=(x,H,c)=>H in x?to(x,H,{enumerable:!0,configurable:!0,writable:!0,value:c}):x[H]=c;var Rt=(x,H,c)=>no(x,typeof H!="symbol"?H+"":H,c);function en(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const lt=en(c);function ct(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=ct(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function tn(){for(var e,t,n=0,r="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=ct(e))&&(r&&(r+=" "),r+=t);return r}const De="-",nn=e=>{const t=on(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:a=>{const i=a.split(De);return i[0]===""&&i.length!==1&&i.shift(),ut(i,t)||rn(a)},getConflictingClassGroupIds:(a,i)=>{const d=n[a]||[];return i&&r[a]?[...d,...r[a]]:d}}},ut=(e,t)=>{var a;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),o=r?ut(e.slice(1),r):void 0;if(o)return o;if(t.validators.length===0)return;const s=e.join(De);return(a=t.validators.find(({validator:i})=>i(s)))==null?void 0:a.classGroupId},dt=/^\[(.+)\]$/,rn=e=>{if(dt.test(e)){const t=dt.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},on=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return an(Object.entries(e.classGroups),n).forEach(([s,a])=>{Ve(a,r,s,t)}),r},Ve=(e,t,n,r)=>{e.forEach(o=>{if(typeof o=="string"){const s=o===""?t:ft(t,o);s.classGroupId=n;return}if(typeof o=="function"){if(sn(o)){Ve(o(r),t,n,r);return}t.validators.push({validator:o,classGroupId:n});return}Object.entries(o).forEach(([s,a])=>{Ve(a,ft(t,s),n,r)})})},ft=(e,t)=>{let n=e;return t.split(De).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},sn=e=>e.isThemeGetter,an=(e,t)=>t?e.map(([n,r])=>{const o=r.map(s=>typeof s=="string"?t+s:typeof s=="object"?Object.fromEntries(Object.entries(s).map(([a,i])=>[t+a,i])):s);return[n,o]}):e,ln=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const o=(s,a)=>{n.set(s,a),t++,t>e&&(t=0,r=n,n=new Map)};return{get(s){let a=n.get(s);if(a!==void 0)return a;if((a=r.get(s))!==void 0)return o(s,a),a},set(s,a){n.has(s)?n.set(s,a):o(s,a)}}},pt="!",cn=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,o=t[0],s=t.length,a=i=>{const d=[];let l=0,u=0,p;for(let v=0;v<i.length;v++){let I=i[v];if(l===0){if(I===o&&(r||i.slice(v,v+s)===t)){d.push(i.slice(u,v)),u=v+s;continue}if(I==="/"){p=v;continue}}I==="["?l++:I==="]"&&l--}const h=d.length===0?i:i.substring(u),y=h.startsWith(pt),T=y?h.substring(1):h,f=p&&p>u?p-u:void 0;return{modifiers:d,hasImportantModifier:y,baseClassName:T,maybePostfixModifierPosition:f}};return n?i=>n({className:i,parseClassName:a}):a},un=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},dn=e=>({cache:ln(e.cacheSize),parseClassName:cn(e),...nn(e)}),fn=/\s+/,pn=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:o}=t,s=[],a=e.trim().split(fn);let i="";for(let d=a.length-1;d>=0;d-=1){const l=a[d],{modifiers:u,hasImportantModifier:p,baseClassName:h,maybePostfixModifierPosition:y}=n(l);let T=!!y,f=r(T?h.substring(0,y):h);if(!f){if(!T){i=l+(i.length>0?" "+i:i);continue}if(f=r(h),!f){i=l+(i.length>0?" "+i:i);continue}T=!1}const v=un(u).join(":"),I=p?v+pt:v,E=I+f;if(s.includes(E))continue;s.push(E);const A=o(f,T);for(let z=0;z<A.length;++z){const k=A[z];s.push(I+k)}i=l+(i.length>0?" "+i:i)}return i};function gn(){let e=0,t,n,r="";for(;e<arguments.length;)(t=arguments[e++])&&(n=gt(t))&&(r&&(r+=" "),r+=n);return r}const gt=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=gt(e[r]))&&(n&&(n+=" "),n+=t);return n};function mn(e,...t){let n,r,o,s=a;function a(d){const l=t.reduce((u,p)=>p(u),e());return n=dn(l),r=n.cache.get,o=n.cache.set,s=i,i(d)}function i(d){const l=r(d);if(l)return l;const u=pn(d,n);return o(d,u),u}return function(){return s(gn.apply(null,arguments))}}const D=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},mt=/^\[(?:([a-z-]+):)?(.+)\]$/i,hn=/^\d+\/\d+$/,yn=new Set(["px","full","screen"]),bn=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,wn=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,kn=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,vn=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Tn=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ie=e=>ke(e)||yn.has(e)||hn.test(e),fe=e=>ve(e,"length",Pn),ke=e=>!!e&&!Number.isNaN(Number(e)),Ke=e=>ve(e,"number",ke),Ae=e=>!!e&&Number.isInteger(Number(e)),In=e=>e.endsWith("%")&&ke(e.slice(0,-1)),F=e=>mt.test(e),pe=e=>bn.test(e),An=new Set(["length","size","percentage"]),Cn=e=>ve(e,An,ht),Sn=e=>ve(e,"position",ht),xn=new Set(["image","url"]),Mn=e=>ve(e,xn,_n),En=e=>ve(e,"",Nn),Ce=()=>!0,ve=(e,t,n)=>{const r=mt.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},Pn=e=>wn.test(e)&&!kn.test(e),ht=()=>!1,Nn=e=>vn.test(e),_n=e=>Tn.test(e),zn=mn(()=>{const e=D("colors"),t=D("spacing"),n=D("blur"),r=D("brightness"),o=D("borderColor"),s=D("borderRadius"),a=D("borderSpacing"),i=D("borderWidth"),d=D("contrast"),l=D("grayscale"),u=D("hueRotate"),p=D("invert"),h=D("gap"),y=D("gradientColorStops"),T=D("gradientColorStopPositions"),f=D("inset"),v=D("margin"),I=D("opacity"),E=D("padding"),A=D("saturate"),z=D("scale"),k=D("sepia"),b=D("skew"),C=D("space"),g=D("translate"),w=()=>["auto","contain","none"],U=()=>["auto","hidden","clip","visible","scroll"],O=()=>["auto",F,t],P=()=>[F,t],$=()=>["",ie,fe],N=()=>["auto",ke,F],L=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],j=()=>["solid","dashed","dotted","double","none"],G=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],B=()=>["start","end","center","between","around","evenly","stretch"],_=()=>["","0",F],V=()=>["auto","avoid","all","avoid-page","page","left","right","column"],Q=()=>[ke,F];return{cacheSize:500,separator:":",theme:{colors:[Ce],spacing:[ie,fe],blur:["none","",pe,F],brightness:Q(),borderColor:[e],borderRadius:["none","","full",pe,F],borderSpacing:P(),borderWidth:$(),contrast:Q(),grayscale:_(),hueRotate:Q(),invert:_(),gap:P(),gradientColorStops:[e],gradientColorStopPositions:[In,fe],inset:O(),margin:O(),opacity:Q(),padding:P(),saturate:Q(),scale:Q(),sepia:_(),skew:Q(),space:P(),translate:P()},classGroups:{aspect:[{aspect:["auto","square","video",F]}],container:["container"],columns:[{columns:[pe]}],"break-after":[{"break-after":V()}],"break-before":[{"break-before":V()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...L(),F]}],overflow:[{overflow:U()}],"overflow-x":[{"overflow-x":U()}],"overflow-y":[{"overflow-y":U()}],overscroll:[{overscroll:w()}],"overscroll-x":[{"overscroll-x":w()}],"overscroll-y":[{"overscroll-y":w()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[f]}],"inset-x":[{"inset-x":[f]}],"inset-y":[{"inset-y":[f]}],start:[{start:[f]}],end:[{end:[f]}],top:[{top:[f]}],right:[{right:[f]}],bottom:[{bottom:[f]}],left:[{left:[f]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Ae,F]}],basis:[{basis:O()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",F]}],grow:[{grow:_()}],shrink:[{shrink:_()}],order:[{order:["first","last","none",Ae,F]}],"grid-cols":[{"grid-cols":[Ce]}],"col-start-end":[{col:["auto",{span:["full",Ae,F]},F]}],"col-start":[{"col-start":N()}],"col-end":[{"col-end":N()}],"grid-rows":[{"grid-rows":[Ce]}],"row-start-end":[{row:["auto",{span:[Ae,F]},F]}],"row-start":[{"row-start":N()}],"row-end":[{"row-end":N()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",F]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",F]}],gap:[{gap:[h]}],"gap-x":[{"gap-x":[h]}],"gap-y":[{"gap-y":[h]}],"justify-content":[{justify:["normal",...B()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...B(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...B(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[E]}],px:[{px:[E]}],py:[{py:[E]}],ps:[{ps:[E]}],pe:[{pe:[E]}],pt:[{pt:[E]}],pr:[{pr:[E]}],pb:[{pb:[E]}],pl:[{pl:[E]}],m:[{m:[v]}],mx:[{mx:[v]}],my:[{my:[v]}],ms:[{ms:[v]}],me:[{me:[v]}],mt:[{mt:[v]}],mr:[{mr:[v]}],mb:[{mb:[v]}],ml:[{ml:[v]}],"space-x":[{"space-x":[C]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[C]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",F,t]}],"min-w":[{"min-w":[F,t,"min","max","fit"]}],"max-w":[{"max-w":[F,t,"none","full","min","max","fit","prose",{screen:[pe]},pe]}],h:[{h:[F,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[F,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[F,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[F,t,"auto","min","max","fit"]}],"font-size":[{text:["base",pe,fe]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Ke]}],"font-family":[{font:[Ce]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",F]}],"line-clamp":[{"line-clamp":["none",ke,Ke]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",ie,F]}],"list-image":[{"list-image":["none",F]}],"list-style-type":[{list:["none","disc","decimal",F]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[I]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[I]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...j(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",ie,fe]}],"underline-offset":[{"underline-offset":["auto",ie,F]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:P()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",F]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",F]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[I]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...L(),Sn]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Cn]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Mn]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[T]}],"gradient-via-pos":[{via:[T]}],"gradient-to-pos":[{to:[T]}],"gradient-from":[{from:[y]}],"gradient-via":[{via:[y]}],"gradient-to":[{to:[y]}],rounded:[{rounded:[s]}],"rounded-s":[{"rounded-s":[s]}],"rounded-e":[{"rounded-e":[s]}],"rounded-t":[{"rounded-t":[s]}],"rounded-r":[{"rounded-r":[s]}],"rounded-b":[{"rounded-b":[s]}],"rounded-l":[{"rounded-l":[s]}],"rounded-ss":[{"rounded-ss":[s]}],"rounded-se":[{"rounded-se":[s]}],"rounded-ee":[{"rounded-ee":[s]}],"rounded-es":[{"rounded-es":[s]}],"rounded-tl":[{"rounded-tl":[s]}],"rounded-tr":[{"rounded-tr":[s]}],"rounded-br":[{"rounded-br":[s]}],"rounded-bl":[{"rounded-bl":[s]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[I]}],"border-style":[{border:[...j(),"hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[I]}],"divide-style":[{divide:j()}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["",...j()]}],"outline-offset":[{"outline-offset":[ie,F]}],"outline-w":[{outline:[ie,fe]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:$()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[I]}],"ring-offset-w":[{"ring-offset":[ie,fe]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",pe,En]}],"shadow-color":[{shadow:[Ce]}],opacity:[{opacity:[I]}],"mix-blend":[{"mix-blend":[...G(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":G()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[d]}],"drop-shadow":[{"drop-shadow":["","none",pe,F]}],grayscale:[{grayscale:[l]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[p]}],saturate:[{saturate:[A]}],sepia:[{sepia:[k]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[d]}],"backdrop-grayscale":[{"backdrop-grayscale":[l]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[p]}],"backdrop-opacity":[{"backdrop-opacity":[I]}],"backdrop-saturate":[{"backdrop-saturate":[A]}],"backdrop-sepia":[{"backdrop-sepia":[k]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[a]}],"border-spacing-x":[{"border-spacing-x":[a]}],"border-spacing-y":[{"border-spacing-y":[a]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",F]}],duration:[{duration:Q()}],ease:[{ease:["linear","in","out","in-out",F]}],delay:[{delay:Q()}],animate:[{animate:["none","spin","ping","pulse","bounce",F]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[z]}],"scale-x":[{"scale-x":[z]}],"scale-y":[{"scale-y":[z]}],rotate:[{rotate:[Ae,F]}],"translate-x":[{"translate-x":[g]}],"translate-y":[{"translate-y":[g]}],"skew-x":[{"skew-x":[b]}],"skew-y":[{"skew-y":[b]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",F]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",F]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":P()}],"scroll-mx":[{"scroll-mx":P()}],"scroll-my":[{"scroll-my":P()}],"scroll-ms":[{"scroll-ms":P()}],"scroll-me":[{"scroll-me":P()}],"scroll-mt":[{"scroll-mt":P()}],"scroll-mr":[{"scroll-mr":P()}],"scroll-mb":[{"scroll-mb":P()}],"scroll-ml":[{"scroll-ml":P()}],"scroll-p":[{"scroll-p":P()}],"scroll-px":[{"scroll-px":P()}],"scroll-py":[{"scroll-py":P()}],"scroll-ps":[{"scroll-ps":P()}],"scroll-pe":[{"scroll-pe":P()}],"scroll-pt":[{"scroll-pt":P()}],"scroll-pr":[{"scroll-pr":P()}],"scroll-pb":[{"scroll-pb":P()}],"scroll-pl":[{"scroll-pl":P()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",F]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[ie,fe,Ke]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}});function jn(...e){return zn(tn(e))}function Un(e){let t=!1,n="";for(const o of e){if(o==="\\"){n+=o,t=!t;continue}if(o==="'"&&!t){n+='"';continue}n+=o,t=!1}return n.replace(/\bTrue\b/g,"true").replace(/\bFalse\b/g,"false").replace(/\bNone\b/g,"null")}function _e(e){const t=e==null?void 0:e.trim();if(!t||!(t.startsWith("{")||t.startsWith("[")))return null;try{return JSON.parse(t)}catch{const n=Un(t);if(n)try{return JSON.parse(n)}catch{return null}return null}}function yt(e){return typeof e!="string"?!1:/^[\s\n]*[-*]\s|^[\s\n]*#+\s|```|^\s*\[.*\]\(|^>\s/.test(e)}function Fn(e){return e.type==="image_url"}function On(e){return e.type==="file"}function Ln(e){return Array.isArray(e.content)?e.content.filter(t=>t.type==="text").map(t=>t.text).join(`
1
+ (function(x,H){typeof exports=="object"&&typeof module<"u"?H(exports,require("react/jsx-runtime"),require("react"),require("axios")):typeof define=="function"&&define.amd?define(["exports","react/jsx-runtime","react","axios"],H):(x=typeof globalThis<"u"?globalThis:x||self,H(x.ChatCore={},x.jsxRuntime,x.React,x.axios))})(this,function(x,H,c,it){"use strict";var to=Object.defineProperty;var no=(x,H,c)=>H in x?to(x,H,{enumerable:!0,configurable:!0,writable:!0,value:c}):x[H]=c;var Rt=(x,H,c)=>no(x,typeof H!="symbol"?H+"":H,c);function en(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const lt=en(c);function ct(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=ct(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function tn(){for(var e,t,n=0,r="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=ct(e))&&(r&&(r+=" "),r+=t);return r}const De="-",nn=e=>{const t=on(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:a=>{const i=a.split(De);return i[0]===""&&i.length!==1&&i.shift(),ut(i,t)||rn(a)},getConflictingClassGroupIds:(a,i)=>{const d=n[a]||[];return i&&r[a]?[...d,...r[a]]:d}}},ut=(e,t)=>{var a;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),o=r?ut(e.slice(1),r):void 0;if(o)return o;if(t.validators.length===0)return;const s=e.join(De);return(a=t.validators.find(({validator:i})=>i(s)))==null?void 0:a.classGroupId},dt=/^\[(.+)\]$/,rn=e=>{if(dt.test(e)){const t=dt.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},on=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return an(Object.entries(e.classGroups),n).forEach(([s,a])=>{Ve(a,r,s,t)}),r},Ve=(e,t,n,r)=>{e.forEach(o=>{if(typeof o=="string"){const s=o===""?t:ft(t,o);s.classGroupId=n;return}if(typeof o=="function"){if(sn(o)){Ve(o(r),t,n,r);return}t.validators.push({validator:o,classGroupId:n});return}Object.entries(o).forEach(([s,a])=>{Ve(a,ft(t,s),n,r)})})},ft=(e,t)=>{let n=e;return t.split(De).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},sn=e=>e.isThemeGetter,an=(e,t)=>t?e.map(([n,r])=>{const o=r.map(s=>typeof s=="string"?t+s:typeof s=="object"?Object.fromEntries(Object.entries(s).map(([a,i])=>[t+a,i])):s);return[n,o]}):e,ln=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const o=(s,a)=>{n.set(s,a),t++,t>e&&(t=0,r=n,n=new Map)};return{get(s){let a=n.get(s);if(a!==void 0)return a;if((a=r.get(s))!==void 0)return o(s,a),a},set(s,a){n.has(s)?n.set(s,a):o(s,a)}}},pt="!",cn=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,o=t[0],s=t.length,a=i=>{const d=[];let l=0,u=0,p;for(let v=0;v<i.length;v++){let I=i[v];if(l===0){if(I===o&&(r||i.slice(v,v+s)===t)){d.push(i.slice(u,v)),u=v+s;continue}if(I==="/"){p=v;continue}}I==="["?l++:I==="]"&&l--}const h=d.length===0?i:i.substring(u),y=h.startsWith(pt),T=y?h.substring(1):h,f=p&&p>u?p-u:void 0;return{modifiers:d,hasImportantModifier:y,baseClassName:T,maybePostfixModifierPosition:f}};return n?i=>n({className:i,parseClassName:a}):a},un=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},dn=e=>({cache:ln(e.cacheSize),parseClassName:cn(e),...nn(e)}),fn=/\s+/,pn=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:o}=t,s=[],a=e.trim().split(fn);let i="";for(let d=a.length-1;d>=0;d-=1){const l=a[d],{modifiers:u,hasImportantModifier:p,baseClassName:h,maybePostfixModifierPosition:y}=n(l);let T=!!y,f=r(T?h.substring(0,y):h);if(!f){if(!T){i=l+(i.length>0?" "+i:i);continue}if(f=r(h),!f){i=l+(i.length>0?" "+i:i);continue}T=!1}const v=un(u).join(":"),I=p?v+pt:v,E=I+f;if(s.includes(E))continue;s.push(E);const A=o(f,T);for(let _=0;_<A.length;++_){const w=A[_];s.push(I+w)}i=l+(i.length>0?" "+i:i)}return i};function gn(){let e=0,t,n,r="";for(;e<arguments.length;)(t=arguments[e++])&&(n=gt(t))&&(r&&(r+=" "),r+=n);return r}const gt=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=gt(e[r]))&&(n&&(n+=" "),n+=t);return n};function mn(e,...t){let n,r,o,s=a;function a(d){const l=t.reduce((u,p)=>p(u),e());return n=dn(l),r=n.cache.get,o=n.cache.set,s=i,i(d)}function i(d){const l=r(d);if(l)return l;const u=pn(d,n);return o(d,u),u}return function(){return s(gn.apply(null,arguments))}}const D=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},mt=/^\[(?:([a-z-]+):)?(.+)\]$/i,hn=/^\d+\/\d+$/,yn=new Set(["px","full","screen"]),bn=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,wn=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,kn=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,vn=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Tn=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ie=e=>ke(e)||yn.has(e)||hn.test(e),fe=e=>ve(e,"length",Pn),ke=e=>!!e&&!Number.isNaN(Number(e)),Ke=e=>ve(e,"number",ke),Ae=e=>!!e&&Number.isInteger(Number(e)),In=e=>e.endsWith("%")&&ke(e.slice(0,-1)),U=e=>mt.test(e),pe=e=>bn.test(e),An=new Set(["length","size","percentage"]),Cn=e=>ve(e,An,ht),Sn=e=>ve(e,"position",ht),xn=new Set(["image","url"]),Mn=e=>ve(e,xn,_n),En=e=>ve(e,"",Nn),Ce=()=>!0,ve=(e,t,n)=>{const r=mt.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},Pn=e=>wn.test(e)&&!kn.test(e),ht=()=>!1,Nn=e=>vn.test(e),_n=e=>Tn.test(e),zn=mn(()=>{const e=D("colors"),t=D("spacing"),n=D("blur"),r=D("brightness"),o=D("borderColor"),s=D("borderRadius"),a=D("borderSpacing"),i=D("borderWidth"),d=D("contrast"),l=D("grayscale"),u=D("hueRotate"),p=D("invert"),h=D("gap"),y=D("gradientColorStops"),T=D("gradientColorStopPositions"),f=D("inset"),v=D("margin"),I=D("opacity"),E=D("padding"),A=D("saturate"),_=D("scale"),w=D("sepia"),b=D("skew"),C=D("space"),g=D("translate"),k=()=>["auto","contain","none"],j=()=>["auto","hidden","clip","visible","scroll"],F=()=>["auto",U,t],P=()=>[U,t],N=()=>["",ie,fe],O=()=>["auto",ke,U],z=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],V=()=>["solid","dashed","dotted","double","none"],$=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],L=()=>["start","end","center","between","around","evenly","stretch"],B=()=>["","0",U],q=()=>["auto","avoid","all","avoid-page","page","left","right","column"],Q=()=>[ke,U];return{cacheSize:500,separator:":",theme:{colors:[Ce],spacing:[ie,fe],blur:["none","",pe,U],brightness:Q(),borderColor:[e],borderRadius:["none","","full",pe,U],borderSpacing:P(),borderWidth:N(),contrast:Q(),grayscale:B(),hueRotate:Q(),invert:B(),gap:P(),gradientColorStops:[e],gradientColorStopPositions:[In,fe],inset:F(),margin:F(),opacity:Q(),padding:P(),saturate:Q(),scale:Q(),sepia:B(),skew:Q(),space:P(),translate:P()},classGroups:{aspect:[{aspect:["auto","square","video",U]}],container:["container"],columns:[{columns:[pe]}],"break-after":[{"break-after":q()}],"break-before":[{"break-before":q()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...z(),U]}],overflow:[{overflow:j()}],"overflow-x":[{"overflow-x":j()}],"overflow-y":[{"overflow-y":j()}],overscroll:[{overscroll:k()}],"overscroll-x":[{"overscroll-x":k()}],"overscroll-y":[{"overscroll-y":k()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[f]}],"inset-x":[{"inset-x":[f]}],"inset-y":[{"inset-y":[f]}],start:[{start:[f]}],end:[{end:[f]}],top:[{top:[f]}],right:[{right:[f]}],bottom:[{bottom:[f]}],left:[{left:[f]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Ae,U]}],basis:[{basis:F()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",U]}],grow:[{grow:B()}],shrink:[{shrink:B()}],order:[{order:["first","last","none",Ae,U]}],"grid-cols":[{"grid-cols":[Ce]}],"col-start-end":[{col:["auto",{span:["full",Ae,U]},U]}],"col-start":[{"col-start":O()}],"col-end":[{"col-end":O()}],"grid-rows":[{"grid-rows":[Ce]}],"row-start-end":[{row:["auto",{span:[Ae,U]},U]}],"row-start":[{"row-start":O()}],"row-end":[{"row-end":O()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",U]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",U]}],gap:[{gap:[h]}],"gap-x":[{"gap-x":[h]}],"gap-y":[{"gap-y":[h]}],"justify-content":[{justify:["normal",...L()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...L(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...L(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[E]}],px:[{px:[E]}],py:[{py:[E]}],ps:[{ps:[E]}],pe:[{pe:[E]}],pt:[{pt:[E]}],pr:[{pr:[E]}],pb:[{pb:[E]}],pl:[{pl:[E]}],m:[{m:[v]}],mx:[{mx:[v]}],my:[{my:[v]}],ms:[{ms:[v]}],me:[{me:[v]}],mt:[{mt:[v]}],mr:[{mr:[v]}],mb:[{mb:[v]}],ml:[{ml:[v]}],"space-x":[{"space-x":[C]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[C]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",U,t]}],"min-w":[{"min-w":[U,t,"min","max","fit"]}],"max-w":[{"max-w":[U,t,"none","full","min","max","fit","prose",{screen:[pe]},pe]}],h:[{h:[U,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[U,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[U,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[U,t,"auto","min","max","fit"]}],"font-size":[{text:["base",pe,fe]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Ke]}],"font-family":[{font:[Ce]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",U]}],"line-clamp":[{"line-clamp":["none",ke,Ke]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",ie,U]}],"list-image":[{"list-image":["none",U]}],"list-style-type":[{list:["none","disc","decimal",U]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[I]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[I]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...V(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",ie,fe]}],"underline-offset":[{"underline-offset":["auto",ie,U]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:P()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",U]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",U]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[I]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...z(),Sn]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Cn]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Mn]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[T]}],"gradient-via-pos":[{via:[T]}],"gradient-to-pos":[{to:[T]}],"gradient-from":[{from:[y]}],"gradient-via":[{via:[y]}],"gradient-to":[{to:[y]}],rounded:[{rounded:[s]}],"rounded-s":[{"rounded-s":[s]}],"rounded-e":[{"rounded-e":[s]}],"rounded-t":[{"rounded-t":[s]}],"rounded-r":[{"rounded-r":[s]}],"rounded-b":[{"rounded-b":[s]}],"rounded-l":[{"rounded-l":[s]}],"rounded-ss":[{"rounded-ss":[s]}],"rounded-se":[{"rounded-se":[s]}],"rounded-ee":[{"rounded-ee":[s]}],"rounded-es":[{"rounded-es":[s]}],"rounded-tl":[{"rounded-tl":[s]}],"rounded-tr":[{"rounded-tr":[s]}],"rounded-br":[{"rounded-br":[s]}],"rounded-bl":[{"rounded-bl":[s]}],"border-w":[{border:[i]}],"border-w-x":[{"border-x":[i]}],"border-w-y":[{"border-y":[i]}],"border-w-s":[{"border-s":[i]}],"border-w-e":[{"border-e":[i]}],"border-w-t":[{"border-t":[i]}],"border-w-r":[{"border-r":[i]}],"border-w-b":[{"border-b":[i]}],"border-w-l":[{"border-l":[i]}],"border-opacity":[{"border-opacity":[I]}],"border-style":[{border:[...V(),"hidden"]}],"divide-x":[{"divide-x":[i]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[i]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[I]}],"divide-style":[{divide:V()}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["",...V()]}],"outline-offset":[{"outline-offset":[ie,U]}],"outline-w":[{outline:[ie,fe]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:N()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[I]}],"ring-offset-w":[{"ring-offset":[ie,fe]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",pe,En]}],"shadow-color":[{shadow:[Ce]}],opacity:[{opacity:[I]}],"mix-blend":[{"mix-blend":[...$(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":$()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[d]}],"drop-shadow":[{"drop-shadow":["","none",pe,U]}],grayscale:[{grayscale:[l]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[p]}],saturate:[{saturate:[A]}],sepia:[{sepia:[w]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[d]}],"backdrop-grayscale":[{"backdrop-grayscale":[l]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[p]}],"backdrop-opacity":[{"backdrop-opacity":[I]}],"backdrop-saturate":[{"backdrop-saturate":[A]}],"backdrop-sepia":[{"backdrop-sepia":[w]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[a]}],"border-spacing-x":[{"border-spacing-x":[a]}],"border-spacing-y":[{"border-spacing-y":[a]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",U]}],duration:[{duration:Q()}],ease:[{ease:["linear","in","out","in-out",U]}],delay:[{delay:Q()}],animate:[{animate:["none","spin","ping","pulse","bounce",U]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[_]}],"scale-x":[{"scale-x":[_]}],"scale-y":[{"scale-y":[_]}],rotate:[{rotate:[Ae,U]}],"translate-x":[{"translate-x":[g]}],"translate-y":[{"translate-y":[g]}],"skew-x":[{"skew-x":[b]}],"skew-y":[{"skew-y":[b]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",U]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",U]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":P()}],"scroll-mx":[{"scroll-mx":P()}],"scroll-my":[{"scroll-my":P()}],"scroll-ms":[{"scroll-ms":P()}],"scroll-me":[{"scroll-me":P()}],"scroll-mt":[{"scroll-mt":P()}],"scroll-mr":[{"scroll-mr":P()}],"scroll-mb":[{"scroll-mb":P()}],"scroll-ml":[{"scroll-ml":P()}],"scroll-p":[{"scroll-p":P()}],"scroll-px":[{"scroll-px":P()}],"scroll-py":[{"scroll-py":P()}],"scroll-ps":[{"scroll-ps":P()}],"scroll-pe":[{"scroll-pe":P()}],"scroll-pt":[{"scroll-pt":P()}],"scroll-pr":[{"scroll-pr":P()}],"scroll-pb":[{"scroll-pb":P()}],"scroll-pl":[{"scroll-pl":P()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",U]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[ie,fe,Ke]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}});function jn(...e){return zn(tn(e))}function Un(e){let t=!1,n="";for(const o of e){if(o==="\\"){n+=o,t=!t;continue}if(o==="'"&&!t){n+='"';continue}n+=o,t=!1}return n.replace(/\bTrue\b/g,"true").replace(/\bFalse\b/g,"false").replace(/\bNone\b/g,"null")}function _e(e){const t=e==null?void 0:e.trim();if(!t||!(t.startsWith("{")||t.startsWith("[")))return null;try{return JSON.parse(t)}catch{const n=Un(t);if(n)try{return JSON.parse(n)}catch{return null}return null}}function yt(e){return typeof e!="string"?!1:/^[\s\n]*[-*]\s|^[\s\n]*#+\s|```|^\s*\[.*\]\(|^>\s/.test(e)}function Fn(e){return e.type==="image_url"}function On(e){return e.type==="file"}function Ln(e){return Array.isArray(e.content)?e.content.filter(t=>t.type==="text").map(t=>t.text).join(`
2
2
  `).trim():typeof e.content=="string"?e.content:""}function Bn(e){return e.content.filter(Fn)}function $n(e){return e.content.filter(On)}function bt(e){return Array.isArray(e.toolCalls)?e.toolCalls:[]}function Dn(e){const t=[];return e.forEach(n=>{n.artifact&&t.push(n.artifact),Array.isArray(n.toolCalls)&&n.toolCalls.forEach(r=>{r!=null&&r.artifact&&t.push(r.artifact)})}),t}function He(e){return!!(e&&typeof e=="object"&&(e.type==="file"||e.mimeType||e.filename||e.sourceType==="base64"))}function Se(e){if(typeof e=="string")return e;if(e&&typeof e=="object"){if(Array.isArray(e)){const n=e.map(Se).filter(r=>r!==void 0);if(!n.length){console.debug("[message-utils] sanitizeForDisplay - array emptied -> returning undefined",{originalLength:e.length});return}return n}if(He(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=Se(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 Ge(e){if(typeof e=="string")return e;if(He(e))return"";try{const t=Se(e);return t===void 0?"":typeof t=="string"?t:JSON.stringify(t,null,2)}catch{return""}}function Vn(e){const t=Ge(e);return typeof e=="string"&&yt(e)?{content:e,isMarkdown:!0}:{content:t,isMarkdown:!1}}function wt(e){const t=r=>{try{const o=Se(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(`
3
3
  `)):t(e)}function Kn(e){return e.content.some(t=>t.type==="text"?t.text.trim().length>0:t.type==="image_url"||t.type==="file")}function se(e){if(e==null)return e;if(typeof e=="string"){const t=e.trim();if(t.startsWith("{")||t.startsWith("[")){const n=_e(t);if(n!==null)return se(n)}return e}if(typeof e=="object"&&!Array.isArray(e)){if(e.content!==void 0)return Array.isArray(e.content)?e.content.map(t=>se(t)).filter(Boolean).join(`
4
- `):se(e.content);if(e.value!==void 0)return se(e.value)}return typeof e=="object"&&!Array.isArray(e)&&(e.type==="text"&&typeof e.text=="string"||typeof e.text=="string")?e.text:Array.isArray(e)&&e.length>0?se(e[0]):e}function Hn(e){return e.replace(/[_-](\w)/g,(t,n)=>n?n.toUpperCase():"").replace(/^\w/,t=>t.toLowerCase())}function ae(e){return!e||typeof e!="object"?e:Array.isArray(e)?e.map(ae):Object.fromEntries(Object.entries(e).map(([t,n])=>[Hn(t),ae(n)]))}function We(e){var v,I,E,A,z,k;if(!e||typeof e!="object")return null;const t=ae(e),n=qn(t);if(!n)return null;const r=Array.isArray(t.toolCalls)?t.toolCalls.map(qe):void 0,o=Wn(t.content??t.parts,!!(r!=null&&r.length)),s=t.id??`msg-${Date.now().toString(16)}-${Math.random().toString(16).slice(2)}`,a=t.createdAt??((v=t.additionalKwargs)==null?void 0:v.createdAt)??new Date().toISOString(),i=t.name??((I=t.additionalKwargs)==null?void 0:I.agentName)??void 0,d=t.model??((E=t.additionalKwargs)==null?void 0:E.model)??void 0,l=t.toolCallId??void 0,u=t.additionalKwargs??void 0,p=t.responseMetadata??void 0,h=t.checkpointId??((A=t.additionalKwargs)==null?void 0:A.checkpointId)??void 0,y=t.checkpointNs??((z=t.additionalKwargs)==null?void 0:z.checkpointNs)??void 0,T=typeof t.toolStreaming=="boolean"?t.toolStreaming:!!((k=t.additionalKwargs)!=null&&k.toolStreaming);return{...t,id:s,role:n,content:o,createdAt:a,name:i,model:d,toolCallId:l,toolCalls:r,checkpointId:h,checkpointNs:y,toolStreaming:T,additionalKwargs:u,responseMetadata:p,artifact:t.artifact??void 0}}function Gn(e){if(!e||typeof e!="object")return e;const t=ae(e);if(t.tool&&!t.name&&(t.name=t.tool),t.type==="artifact.update"&&t.artifact&&typeof t.artifact=="object"){const n=t.artifact;!n.id&&n.artifactId&&(n.id=n.artifactId),!n.type&&n.artifactType&&(n.type=n.artifactType)}return t}function qe(e){const t=ae(e),n=t.content??t.output??void 0;return{...t,type:"tool_call",id:t.id??t.callId,name:t.name??t.tool??void 0,args:t.args??t.arguments??void 0,content:typeof n=="string"?n:n?JSON.stringify(n):void 0}}function Wn(e,t){return typeof e=="string"?[{type:"text",text:e}]:Array.isArray(e)?e.map(n=>typeof n=="string"?{type:"text",text:n}:n.type==="tool_call"||n.type==="tool"?t?null:qe(ae(n)):n).filter(n=>!!(n&&typeof n=="object"&&typeof n.type=="string")):[]}function qn(e){const t=ae(e),n=t.role;if(n&&(n==="assistant"||n==="user"||n==="system"||n==="tool"||n==="interrupt"))return n;const r=t.type;return r==="human"?"user":r==="ai"?"assistant":r==="tool"?"tool":r==="system"?"system":null}function kt(e){if(!e)return null;const t=String(e).toLowerCase();return t==="running"||t==="pending"?"pending":t==="completed"||t==="success"?"completed":t==="error"||t==="failed"||t==="failure"?"error":null}function vt(e){return(Array.isArray(e.toolCalls)?e.toolCalls:bt(e)).map(qe)}function Je(e,t){return t.find(n=>n.role==="tool"&&(n.toolCallId===e||n.id===e))}function Jn(e,t){const n=t.response??t.content;if(!n)return;const r=typeof n=="string"?n:Ge(n);if(!r.trim())return;const o=[{type:"text",text:r}];return{id:`tool-${t.id}`,role:"tool",content:o,name:t.name,toolCallId:t.id,artifact:t.artifact,createdAt:e.createdAt}}function Tt(e,t=[]){if(Array.isArray(e)){const o=e.filter(a=>a.role==="assistant").flatMap(a=>vt(a)),s=new Map;return o.forEach(a=>s.set(a.id,a)),Array.from(s.values()).map(a=>{var p,h,y;const i=Je(a.id,e)||Je(a.id,t),d=Array.isArray((p=i==null?void 0:i.additionalKwargs)==null?void 0:p.toolProgress)?(h=i==null?void 0:i.additionalKwargs)==null?void 0:h.toolProgress:void 0,l=(i==null?void 0:i.artifact)??a.artifact,u=kt(a.status)??((y=i==null?void 0:i.additionalKwargs)!=null&&y.toolStreaming?"pending":null)??(i?"completed":"pending");if(i&&!a.content&&u==="completed"){const T=se(i);typeof T=="string"&&(a.content=T)}return{call:a,result:i,state:u,progress:d,artifact:l}})}if(e.role!=="assistant")return[];const n=vt(e);return n.length===0?[]:n.map(r=>{var d,l,u;const o=Je(r.id,t)??Jn(e,r),s=Array.isArray((d=o==null?void 0:o.additionalKwargs)==null?void 0:d.toolProgress)?(l=o==null?void 0:o.additionalKwargs)==null?void 0:l.toolProgress:void 0,a=(o==null?void 0:o.artifact)??r.artifact,i=kt(r.status)??((u=o==null?void 0:o.additionalKwargs)!=null&&u.toolStreaming?"pending":null)??(o?"completed":"pending");if(o&&!r.content&&i==="completed"){const p=se(o);typeof p=="string"&&(r.content=p)}return{call:r,result:o,state:i,progress:s,artifact:a}})}function Xn(e,t=[]){return Tt(e,t).map(n=>n.artifact).filter(n=>!!n)}const xe={authToken:"authToken",authTokenExpiresAt:"authTokenExpiresAt",authSessionId:"authSessionId",chatSettings:"chat-settings",threadManagerView:"thread-manager-view",playgroundSettings:"new-chat-ui-chat-settings",debugLogs:"app:debugLogs"};function Xe(e){return`draft:${e}`}let ze=null;const Qe=new Set;function Ye(){return ze}function ge(e){ze=e,Qe.forEach(t=>t(e))}function Ze(e){return Qe.add(e),()=>Qe.delete(e)}const Qn=12e4,Yn=12e4;let Re=Qn,It=Yn;const ee=it.create({timeout:Re,withCredentials:!0});function At(e){return typeof e!="number"||!Number.isFinite(e)||e<=0?null:Math.floor(e)}function Zn(e){const t=At(e.requestTimeoutMs),n=At(e.historyTimeoutMs);t!==null&&(Re=t,ee.defaults.timeout=Re),n!==null&&(It=n)}function Rn(){return It}ee.interceptors.request.use(e=>(ze&&(e.headers.Authorization=`Bearer ${ze}`),e)),ee.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(xe.authToken,r),ge(r)),o&&localStorage.setItem(xe.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 ne(e,t){return ee.defaults.baseURL?(await ee.get(e,t)).data:Promise.reject(new Error("API base URL is not configured"))}async function et(e,t,n){return ee.defaults.baseURL?(await ee.post(e,t,n)).data:Promise.reject(new Error("API base URL is not configured"))}async function er(e,t,n){return ee.defaults.baseURL?(await ee.put(e,t,n)).data:Promise.reject(new Error("API base URL is not configured"))}async function tr(e,t){return ee.defaults.baseURL?(await ee.delete(e,t)).data:Promise.reject(new Error("API base URL is not configured"))}function oe(e){return e&&typeof e=="object"&&"data"in e?e.data:e}class nr{get baseUrl(){return ee.defaults.baseURL||""}updateConfig(t){if(t.chatBaseUrl)ee.defaults.baseURL=t.chatBaseUrl;else if(t.baseUrl){const n=t.baseUrl.replace(/\/+$/,"");ee.defaults.baseURL=n}t.apiKey!==void 0?ge(t.apiKey):t.getToken&&ge(t.getToken()),(t.requestTimeoutMs!==void 0||t.historyTimeoutMs!==void 0)&&Zn({requestTimeoutMs:t.requestTimeoutMs,historyTimeoutMs:t.historyTimeoutMs})}getAuthToken(){return Ye()}setAuthToken(t){ge(t)}onTokenChange(t){return Ze(t)}async listThreads(){const t=await ne("/threads"),n=oe(t);return(n==null?void 0:n.items)??(t==null?void 0:t.items)??[]}async createThread(t,n){const r={};t&&(r.title=t),n&&(r.project=n);const o=await et("/threads",Object.keys(r).length?r:void 0);return oe(o)}async updateThread(t,n){const r=await er(`/threads/${t}`,{title:n});return oe(r)}async deleteThread(t){const n=await tr(`/threads/${t}`);return oe(n)}async threadInfo(t){const n=await ne(`/threads/${t}/info`);return oe(n)}async listAgents(){const t=await ne("/agents"),n=oe(t);return(n==null?void 0:n.items)??[]}async getAgent(t){const n=await ne(`/agents/${t}`);return oe(n)}async getAgentSchema(t){const n=await ne(`/agents/${t}/schema`);return oe(n)}async getState(t){const n=await ne(`/threads/${t.threadId}/state`,{params:{checkpoint_id:t.checkpointId,checkpoint_ns:t.checkpointNs}});return oe(n)}async getStateHistory(t){const n=await ne(`/threads/${t.threadId}/state/history`,{params:{checkpoint_id:t.checkpointId,checkpoint_ns:t.checkpointNs,limit:t.limit??100,offset:t.offset??0,include_messages:t.includeMessages??!0},timeout:Rn(),signal:t.signal});return oe(n)}async cancelRun(t){const n=await et(`/runs/${t}/cancel`);return oe(n)}}const Ct=new nr;class rr{async fetchFileBlob(t,n){return await ne(t,{responseType:"blob",onDownloadProgress:o=>{try{if(n&&o.lengthComputable){const s=o.loaded/o.total;n(s)}}catch{}},maxBodyLength:1/0})}async viewFileById(t,n){const r=await this.fetchFileBlob(`/files/${t}/view`,n),o=URL.createObjectURL(r);window.open(o,"_blank"),setTimeout(()=>URL.revokeObjectURL(o),6e4)}async getFileBlob(t,n){return await this.fetchFileBlob(`/files/${t}/view`,n)}async getFileContent(t,n){return await(await this.fetchFileBlob(`/files/${t}/view`,n)).text()}async downloadFileById(t,n){const r=await this.fetchFileBlob(`/files/${t}/download`,n),o=URL.createObjectURL(r);let s=`file_${t}`;try{const i=await ne(`/files/${t}`);s=(i==null?void 0:i.filename)??s}catch{}const a=document.createElement("a");a.href=o,a.download=s,document.body.appendChild(a),a.click(),a.remove(),setTimeout(()=>URL.revokeObjectURL(o),6e4)}async getFileInfo(t){return await ne(`/files/${t}`)}async listFiles(t,n=50,r=0){const o={limit:n,offset:r};return t&&(o.thread_id=t),await ne("/files",{params:o})}async uploadFile(t,n,r){const o=new FormData;return o.append("file",t),n&&o.append("thread_id",n),await et("/files/upload-form",o,{onUploadProgress:s=>{try{if(r&&s.lengthComputable){const a=s.loaded/s.total;r(a)}}catch{}}})}}const St=new rr;class or{constructor(){Rt(this,"_authBaseUrl","")}get baseUrl(){return this._authBaseUrl}updateConfig(t){if(t.authBaseUrl)this._authBaseUrl=t.authBaseUrl;else if(t.baseUrl){const n=t.baseUrl.replace(/\/+$/,"");this._authBaseUrl=`${n}/auth`}t.apiKey!==void 0?ge(t.apiKey):t.getToken&&ge(t.getToken())}getAuthToken(){return Ye()}setAuthToken(t){ge(t)}onTokenChange(t){return Ze(t)}async listUsers(){const t=await ne("/users",{baseURL:this.baseUrl});return(t==null?void 0:t.users)??[]}}const sr=new or,xt=c.createContext(null);function ar({children:e,apiConfig:t}){const n=Ct,r=sr;if(t){const s=n.baseUrl,a=r.baseUrl,i=n.getAuthToken(),d=t.requestTimeoutMs!==void 0||t.historyTimeoutMs!==void 0;(t.baseUrl||t.chatBaseUrl||d)&&(d||t.chatBaseUrl&&t.chatBaseUrl!==s||t.baseUrl&&!s.startsWith(t.baseUrl))&&n.updateConfig(t),(t.baseUrl||t.authBaseUrl)&&(t.authBaseUrl&&t.authBaseUrl!==a||t.baseUrl&&!a.startsWith(t.baseUrl))&&r.updateConfig(t),t.apiKey!==void 0&&t.apiKey!==i&&(n.updateConfig({apiKey:t.apiKey}),r.updateConfig({apiKey:t.apiKey}))}const o={token:n.getAuthToken(),setToken:s=>{n.setAuthToken(s),r.setAuthToken(s)},chatApi:n,authApi:r,fileApi:St,baseUrl:n.baseUrl};return H.jsx(xt.Provider,{value:o,children:e})}async function ir(e){return await new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{try{const o=r.result,s=new Uint8Array(o);let a="";const i=s.byteLength;for(let d=0;d<i;d++)a+=String.fromCharCode(s[d]);t(btoa(a))}catch(o){n(o)}},r.onerror=o=>n(o),r.readAsArrayBuffer(e)})}async function lr(e=[]){const t=[],n=[];for(const r of e)try{const o=await ir(r),s=r.type||"application/octet-stream";n.push({filename:r.name,data:o,mime_type:s}),s.startsWith("image/")?t.push({type:"image_url",image_url:{url:`data:${s};base64,${o}`}}):t.push({type:"file",url:`data:${s};base64,${o}`,mimeType:s,name:r.name,size:r.size})}catch{}return{contentParts:t,filesInfo:n}}function Mt(e){return e.filter(t=>t.type==="text").map(t=>t.text).join("")}function cr(e){if(e==null)return null;const t=String(e).trim();return t.length>0?t:null}function Et(e){const t=e.toolCallId??(e.role==="tool"?e.id:void 0);return e.role==="tool"&&!t&&console.error("[meta-utils] CRITICAL: Tool message missing toolCallId!",e),{toolCallId:t??void 0,name:e.name??void 0}}function ur(e){var n;if(e.name&&e.name.trim())return e.name;const t=(n=e.additionalKwargs)==null?void 0:n.agentName;return typeof t=="string"&&t.trim()?t:e.model&&e.model.includes("/")?e.model.split("/").pop()||null:e.model||null}function dr(e){const t=e.updatedAt??e.createdAt??"",n=Array.isArray(e.content)?e.content.map(a=>{switch(a.type){case"text":return`t:${a.text.length}`;case"image_url":return"img";default:return a.type==="interrupt"?"interrupt":"unknown"}}).join("|"):"",r="checkpointId"in e&&e.checkpointId?`cp:${e.checkpointId}`:"",o="checkpointNs"in e&&e.checkpointNs?`ns:${e.checkpointNs}`:"",s=[r,o].filter(Boolean).join("|");return`${e.id}:${t}:${n}${s?`:${s}`:""}`}function be(){const e=c.useContext(xt);if(!e)throw new Error("useApi must be used within ApiProvider");return e}function fr(e,t,n){const r=typeof t=="string"?[{type:"text",text:t}]:t;return{id:`msg-${Date.now()}-${Math.random().toString(36).slice(2,9)}`,role:e,content:r,createdAt:new Date().toISOString(),...n}}function Pt(e,t="user"){return typeof e=="string"?fr(t,e):e}function pr(e){return!!e&&typeof e=="object"&&"data"in e}function Nt(e={}){const t=e.baseUrl||"",n=e.streamPath??"/stream",[r,o]=c.useState(e.token??null),s=c.useRef(e.headers??{}),a=e.credentials??"include",i=c.useRef(e);c.useEffect(()=>{i.current=e},[e]);const d=c.useCallback(g=>{var O,P,$,N,L,j,G,B,_,V;const w=i.current;if(!w)return;(O=w.onEvent)==null||O.call(w,g),g.type==="thread_info"&&((P=w.onThreadInfo)==null||P.call(w,g)),g.type==="values"&&Array.isArray(g.checkpoints)&&(($=w.handleValuesEvent)==null||$.call(w,g)),g.type==="metadata"&&((N=w.onMetadataEvent)==null||N.call(w,g)),typeof g.type=="string"&&(g.type==="custom"||g.type.startsWith("custom."))&&((L=w.onCustomEvent)==null||L.call(w,g)),g.type==="updates"&&((j=w.onUpdateEvent)==null||j.call(w,g)),g.type==="tool.end"?(G=w.onToolEnd)==null||G.call(w,g):g.type==="tool.start"&&((B=w.onToolStart)==null||B.call(w,g)),g.type==="heartbeat"&&((_=w.onHeartbeat)==null||_.call(w,g)),g.type==="token"&&((V=w.onToken)==null||V.call(w,g.token))},[]),[l,u]=c.useState(!1),[p,h]=c.useState(null),[y,T]=c.useState(!1),[f,v]=c.useState(null),I=c.useRef(null),E=c.useRef(!0),A=c.useRef(null),z=c.useCallback(g=>{o(g)},[]),k=c.useCallback(()=>{h(null),v(null)},[]),b=c.useCallback(()=>{var P,$;console.debug("[use-chat] stop() invoked - aborting stream");const g=(P=A.current)==null?void 0:P.threadId,w=($=A.current)==null?void 0:$.runId,U=()=>{var N;(N=I.current)==null||N.abort(),I.current=null,A.current=null,u(!1),T(!1)};(w||g?Ct.cancelRun(w||g).catch(N=>{console.warn("[use-chat] cancel run failed:",N)}):Promise.resolve()).finally(U)},[]),C=c.useCallback(g=>{I.current&&(I.current.abort(),I.current=null);const w={text:typeof g.content=="string"?g.content:g.text,threadId:g.threadId,attachments:g.attachments,payload:g.payload,config:g.config,checkpointId:g.checkpointId,checkpointNs:g.checkpointNs||void 0,edit:g.edit,command:g.command};u(!0),h(null),v(null);const U=new AbortController;I.current=U;let O=null,P=!1;return A.current={threadId:w.threadId??void 0,runId:void 0,headers:{},isStreaming:!0},(async()=>{var $,N,L,j,G,B;try{let _={};try{if(r)_={Authorization:`Bearer ${r}`};else if(typeof window<"u"){const R=window.__AUTH_TOKEN__,we=(($=window.localStorage)==null?void 0:$.getItem(xe.authToken))||null;let X=null;try{const me=(N=window.localStorage)==null?void 0:N.getItem(xe.chatSettings);me&&(X=((L=JSON.parse(me))==null?void 0:L.apiKey)||null)}catch{}const Y=R||we||X||null;Y&&(_={Authorization:`Bearer ${Y}`})}}catch{}console.debug("[use-chat] POST",t+n);let V={};if(typeof window<"u")try{const q=(j=window.localStorage)==null?void 0:j.getItem(xe.authSessionId);q&&(V={"X-Session-Id":q})}catch{}const Q={..._,...V,...s.current},m={"Content-Type":"application/json",Accept:"text/event-stream",...Q},S=await fetch(t+n,{method:"POST",headers:m,body:JSON.stringify(w),signal:U.signal,credentials:a});if(A.current&&(A.current.headers=Q),!S.ok||!S.body){const q=await S.text().catch(()=>"");console.debug("[use-chat] non-OK response",S.status,q==null?void 0:q.slice(0,500));const R=`stream ${S.status}${q?": "+q:""}`;throw R&&(h(R),O="error"),new Error(R)}T(!0);const M=S.body.getReader(),W=new TextDecoder;let J="",K=0,Z=Date.now();const re=setInterval(()=>{Date.now()-Z>18e5&&(h("Stream idle timeout"),O="error",U.abort())},5e3),ue=1024*1024;try{const q=S.headers.get("X-Thread-Id")||S.headers.get("x-thread-id"),R=S.headers.get("X-Run-Id")||S.headers.get("x-run-id");for(A.current&&(A.current={...A.current,threadId:q??A.current.threadId,runId:R??A.current.runId});;){const{value:we,done:X}=await M.read();if(X)break;J+=W.decode(we,{stream:!0}),J.length>ue&&(J="",console.warn("Stream buffer reset: exceeded 1MB"));let Y;for(;(Y=J.indexOf(`
4
+ `):se(e.content);if(e.value!==void 0)return se(e.value)}return typeof e=="object"&&!Array.isArray(e)&&(e.type==="text"&&typeof e.text=="string"||typeof e.text=="string")?e.text:Array.isArray(e)&&e.length>0?se(e[0]):e}function Hn(e){return e.replace(/[_-](\w)/g,(t,n)=>n?n.toUpperCase():"").replace(/^\w/,t=>t.toLowerCase())}function ae(e){return!e||typeof e!="object"?e:Array.isArray(e)?e.map(ae):Object.fromEntries(Object.entries(e).map(([t,n])=>[Hn(t),ae(n)]))}function We(e){var v,I,E,A,_,w;if(!e||typeof e!="object")return null;const t=ae(e),n=qn(t);if(!n)return null;const r=Array.isArray(t.toolCalls)?t.toolCalls.map(qe):void 0,o=Wn(t.content??t.parts,!!(r!=null&&r.length)),s=t.id??`msg-${Date.now().toString(16)}-${Math.random().toString(16).slice(2)}`,a=t.createdAt??((v=t.additionalKwargs)==null?void 0:v.createdAt)??new Date().toISOString(),i=t.name??((I=t.additionalKwargs)==null?void 0:I.agentName)??void 0,d=t.model??((E=t.additionalKwargs)==null?void 0:E.model)??void 0,l=t.toolCallId??void 0,u=t.additionalKwargs??void 0,p=t.responseMetadata??void 0,h=t.checkpointId??((A=t.additionalKwargs)==null?void 0:A.checkpointId)??void 0,y=t.checkpointNs??((_=t.additionalKwargs)==null?void 0:_.checkpointNs)??void 0,T=typeof t.toolStreaming=="boolean"?t.toolStreaming:!!((w=t.additionalKwargs)!=null&&w.toolStreaming);return{...t,id:s,role:n,content:o,createdAt:a,name:i,model:d,toolCallId:l,toolCalls:r,checkpointId:h,checkpointNs:y,toolStreaming:T,additionalKwargs:u,responseMetadata:p,artifact:t.artifact??void 0}}function Gn(e){if(!e||typeof e!="object")return e;const t=ae(e);if(t.tool&&!t.name&&(t.name=t.tool),t.type==="artifact.update"&&t.artifact&&typeof t.artifact=="object"){const n=t.artifact;!n.id&&n.artifactId&&(n.id=n.artifactId),!n.type&&n.artifactType&&(n.type=n.artifactType)}return t}function qe(e){const t=ae(e),n=t.content??t.output??void 0;return{...t,type:"tool_call",id:t.id??t.callId,name:t.name??t.tool??void 0,args:t.args??t.arguments??void 0,content:typeof n=="string"?n:n?JSON.stringify(n):void 0}}function Wn(e,t){return typeof e=="string"?[{type:"text",text:e}]:Array.isArray(e)?e.map(n=>typeof n=="string"?{type:"text",text:n}:n.type==="tool_call"||n.type==="tool"?t?null:qe(ae(n)):n).filter(n=>!!(n&&typeof n=="object"&&typeof n.type=="string")):[]}function qn(e){const t=ae(e),n=t.role;if(n&&(n==="assistant"||n==="user"||n==="system"||n==="tool"||n==="interrupt"))return n;const r=t.type;return r==="human"?"user":r==="ai"?"assistant":r==="tool"?"tool":r==="system"?"system":null}function kt(e){if(!e)return null;const t=String(e).toLowerCase();return t==="running"||t==="pending"?"pending":t==="completed"||t==="success"?"completed":t==="error"||t==="failed"||t==="failure"?"error":null}function vt(e){return(Array.isArray(e.toolCalls)?e.toolCalls:bt(e)).map(qe)}function Je(e,t){return t.find(n=>n.role==="tool"&&(n.toolCallId===e||n.id===e))}function Jn(e,t){const n=t.response??t.content;if(!n)return;const r=typeof n=="string"?n:Ge(n);if(!r.trim())return;const o=[{type:"text",text:r}];return{id:`tool-${t.id}`,role:"tool",content:o,name:t.name,toolCallId:t.id,artifact:t.artifact,createdAt:e.createdAt}}function Tt(e,t=[]){if(Array.isArray(e)){const o=e.filter(a=>a.role==="assistant").flatMap(a=>vt(a)),s=new Map;return o.forEach(a=>s.set(a.id,a)),Array.from(s.values()).map(a=>{var p,h,y;const i=Je(a.id,e)||Je(a.id,t),d=Array.isArray((p=i==null?void 0:i.additionalKwargs)==null?void 0:p.toolProgress)?(h=i==null?void 0:i.additionalKwargs)==null?void 0:h.toolProgress:void 0,l=(i==null?void 0:i.artifact)??a.artifact,u=kt(a.status)??((y=i==null?void 0:i.additionalKwargs)!=null&&y.toolStreaming?"pending":null)??(i?"completed":"pending");if(i&&!a.content&&u==="completed"){const T=se(i);typeof T=="string"&&(a.content=T)}return{call:a,result:i,state:u,progress:d,artifact:l}})}if(e.role!=="assistant")return[];const n=vt(e);return n.length===0?[]:n.map(r=>{var d,l,u;const o=Je(r.id,t)??Jn(e,r),s=Array.isArray((d=o==null?void 0:o.additionalKwargs)==null?void 0:d.toolProgress)?(l=o==null?void 0:o.additionalKwargs)==null?void 0:l.toolProgress:void 0,a=(o==null?void 0:o.artifact)??r.artifact,i=kt(r.status)??((u=o==null?void 0:o.additionalKwargs)!=null&&u.toolStreaming?"pending":null)??(o?"completed":"pending");if(o&&!r.content&&i==="completed"){const p=se(o);typeof p=="string"&&(r.content=p)}return{call:r,result:o,state:i,progress:s,artifact:a}})}function Xn(e,t=[]){return Tt(e,t).map(n=>n.artifact).filter(n=>!!n)}const xe={authToken:"authToken",authTokenExpiresAt:"authTokenExpiresAt",authSessionId:"authSessionId",chatSettings:"chat-settings",threadManagerView:"thread-manager-view",playgroundSettings:"new-chat-ui-chat-settings",debugLogs:"app:debugLogs"};function Xe(e){return`draft:${e}`}let ze=null;const Qe=new Set;function Ye(){return ze}function ge(e){ze=e,Qe.forEach(t=>t(e))}function Ze(e){return Qe.add(e),()=>Qe.delete(e)}const Qn=12e4,Yn=12e4;let Re=Qn,It=Yn;const ee=it.create({timeout:Re,withCredentials:!0});function At(e){return typeof e!="number"||!Number.isFinite(e)||e<=0?null:Math.floor(e)}function Zn(e){const t=At(e.requestTimeoutMs),n=At(e.historyTimeoutMs);t!==null&&(Re=t,ee.defaults.timeout=Re),n!==null&&(It=n)}function Rn(){return It}ee.interceptors.request.use(e=>(ze&&(e.headers.Authorization=`Bearer ${ze}`),e)),ee.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(xe.authToken,r),ge(r)),o&&localStorage.setItem(xe.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 ne(e,t){return ee.defaults.baseURL?(await ee.get(e,t)).data:Promise.reject(new Error("API base URL is not configured"))}async function et(e,t,n){return ee.defaults.baseURL?(await ee.post(e,t,n)).data:Promise.reject(new Error("API base URL is not configured"))}async function er(e,t,n){return ee.defaults.baseURL?(await ee.put(e,t,n)).data:Promise.reject(new Error("API base URL is not configured"))}async function tr(e,t){return ee.defaults.baseURL?(await ee.delete(e,t)).data:Promise.reject(new Error("API base URL is not configured"))}function oe(e){return e&&typeof e=="object"&&"data"in e?e.data:e}class nr{get baseUrl(){return ee.defaults.baseURL||""}updateConfig(t){if(t.chatBaseUrl)ee.defaults.baseURL=t.chatBaseUrl;else if(t.baseUrl){const n=t.baseUrl.replace(/\/+$/,"");ee.defaults.baseURL=n}t.apiKey!==void 0?ge(t.apiKey):t.getToken&&ge(t.getToken()),(t.requestTimeoutMs!==void 0||t.historyTimeoutMs!==void 0)&&Zn({requestTimeoutMs:t.requestTimeoutMs,historyTimeoutMs:t.historyTimeoutMs})}getAuthToken(){return Ye()}setAuthToken(t){ge(t)}onTokenChange(t){return Ze(t)}async listThreads(){const t=await ne("/threads"),n=oe(t);return(n==null?void 0:n.items)??(t==null?void 0:t.items)??[]}async createThread(t,n){const r={};t&&(r.title=t),n&&(r.project=n);const o=await et("/threads",Object.keys(r).length?r:void 0);return oe(o)}async updateThread(t,n){const r=await er(`/threads/${t}`,{title:n});return oe(r)}async deleteThread(t){const n=await tr(`/threads/${t}`);return oe(n)}async threadInfo(t){const n=await ne(`/threads/${t}/info`);return oe(n)}async listAgents(){const t=await ne("/agents"),n=oe(t);return(n==null?void 0:n.items)??[]}async getAgent(t){const n=await ne(`/agents/${t}`);return oe(n)}async getAgentSchema(t){const n=await ne(`/agents/${t}/schema`);return oe(n)}async getState(t){const n=await ne(`/threads/${t.threadId}/state`,{params:{checkpoint_id:t.checkpointId,checkpoint_ns:t.checkpointNs}});return oe(n)}async getStateHistory(t){const n=await ne(`/threads/${t.threadId}/state/history`,{params:{checkpoint_id:t.checkpointId,checkpoint_ns:t.checkpointNs,limit:t.limit??100,offset:t.offset??0,include_messages:t.includeMessages??!0},timeout:Rn(),signal:t.signal});return oe(n)}async cancelRun(t){const n=await et(`/runs/${t}/cancel`);return oe(n)}}const Ct=new nr;class rr{async fetchFileBlob(t,n){return await ne(t,{responseType:"blob",onDownloadProgress:o=>{try{if(n&&o.lengthComputable){const s=o.loaded/o.total;n(s)}}catch{}},maxBodyLength:1/0})}async viewFileById(t,n){const r=await this.fetchFileBlob(`/files/${t}/view`,n),o=URL.createObjectURL(r);window.open(o,"_blank"),setTimeout(()=>URL.revokeObjectURL(o),6e4)}async getFileBlob(t,n){return await this.fetchFileBlob(`/files/${t}/view`,n)}async getFileContent(t,n){return await(await this.fetchFileBlob(`/files/${t}/view`,n)).text()}async downloadFileById(t,n){const r=await this.fetchFileBlob(`/files/${t}/download`,n),o=URL.createObjectURL(r);let s=`file_${t}`;try{const i=await ne(`/files/${t}`);s=(i==null?void 0:i.filename)??s}catch{}const a=document.createElement("a");a.href=o,a.download=s,document.body.appendChild(a),a.click(),a.remove(),setTimeout(()=>URL.revokeObjectURL(o),6e4)}async getFileInfo(t){return await ne(`/files/${t}`)}async listFiles(t,n=50,r=0){const o={limit:n,offset:r};return t&&(o.thread_id=t),await ne("/files",{params:o})}async uploadFile(t,n,r){const o=new FormData;return o.append("file",t),n&&o.append("thread_id",n),await et("/files/upload-form",o,{onUploadProgress:s=>{try{if(r&&s.lengthComputable){const a=s.loaded/s.total;r(a)}}catch{}}})}}const St=new rr;class or{constructor(){Rt(this,"_authBaseUrl","")}get baseUrl(){return this._authBaseUrl}updateConfig(t){if(t.authBaseUrl)this._authBaseUrl=t.authBaseUrl;else if(t.baseUrl){const n=t.baseUrl.replace(/\/+$/,"");this._authBaseUrl=`${n}/auth`}t.apiKey!==void 0?ge(t.apiKey):t.getToken&&ge(t.getToken())}getAuthToken(){return Ye()}setAuthToken(t){ge(t)}onTokenChange(t){return Ze(t)}async listUsers(){const t=await ne("/users",{baseURL:this.baseUrl});return(t==null?void 0:t.users)??[]}}const sr=new or,xt=c.createContext(null);function ar({children:e,apiConfig:t}){const n=Ct,r=sr;if(t){const s=n.baseUrl,a=r.baseUrl,i=n.getAuthToken(),d=t.requestTimeoutMs!==void 0||t.historyTimeoutMs!==void 0;(t.baseUrl||t.chatBaseUrl||d)&&(d||t.chatBaseUrl&&t.chatBaseUrl!==s||t.baseUrl&&!s.startsWith(t.baseUrl))&&n.updateConfig(t),(t.baseUrl||t.authBaseUrl)&&(t.authBaseUrl&&t.authBaseUrl!==a||t.baseUrl&&!a.startsWith(t.baseUrl))&&r.updateConfig(t),t.apiKey!==void 0&&t.apiKey!==i&&(n.updateConfig({apiKey:t.apiKey}),r.updateConfig({apiKey:t.apiKey}))}const o={token:n.getAuthToken(),setToken:s=>{n.setAuthToken(s),r.setAuthToken(s)},chatApi:n,authApi:r,fileApi:St,baseUrl:n.baseUrl};return H.jsx(xt.Provider,{value:o,children:e})}async function ir(e){return await new Promise((t,n)=>{const r=new FileReader;r.onload=()=>{try{const o=r.result,s=new Uint8Array(o);let a="";const i=s.byteLength;for(let d=0;d<i;d++)a+=String.fromCharCode(s[d]);t(btoa(a))}catch(o){n(o)}},r.onerror=o=>n(o),r.readAsArrayBuffer(e)})}async function lr(e=[]){const t=[],n=[];for(const r of e)try{const o=await ir(r),s=r.type||"application/octet-stream";n.push({filename:r.name,data:o,mime_type:s}),s.startsWith("image/")?t.push({type:"image_url",image_url:{url:`data:${s};base64,${o}`}}):t.push({type:"file",url:`data:${s};base64,${o}`,mimeType:s,name:r.name,size:r.size})}catch{}return{contentParts:t,filesInfo:n}}function Mt(e){return e.filter(t=>t.type==="text").map(t=>t.text).join("")}function cr(e){if(e==null)return null;const t=String(e).trim();return t.length>0?t:null}function Et(e){const t=e.toolCallId??(e.role==="tool"?e.id:void 0);return e.role==="tool"&&!t&&console.error("[meta-utils] CRITICAL: Tool message missing toolCallId!",e),{toolCallId:t??void 0,name:e.name??void 0}}function ur(e){var n;if(e.name&&e.name.trim())return e.name;const t=(n=e.additionalKwargs)==null?void 0:n.agentName;return typeof t=="string"&&t.trim()?t:e.model&&e.model.includes("/")?e.model.split("/").pop()||null:e.model||null}function dr(e){const t=e.updatedAt??e.createdAt??"",n=Array.isArray(e.content)?e.content.map(a=>{switch(a.type){case"text":return`t:${a.text.length}`;case"image_url":return"img";default:return a.type==="interrupt"?"interrupt":"unknown"}}).join("|"):"",r="checkpointId"in e&&e.checkpointId?`cp:${e.checkpointId}`:"",o="checkpointNs"in e&&e.checkpointNs?`ns:${e.checkpointNs}`:"",s=[r,o].filter(Boolean).join("|");return`${e.id}:${t}:${n}${s?`:${s}`:""}`}function be(){const e=c.useContext(xt);if(!e)throw new Error("useApi must be used within ApiProvider");return e}function fr(e,t,n){const r=typeof t=="string"?[{type:"text",text:t}]:t;return{id:`msg-${Date.now()}-${Math.random().toString(36).slice(2,9)}`,role:e,content:r,createdAt:new Date().toISOString(),...n}}function Pt(e,t="user"){return typeof e=="string"?fr(t,e):e}function pr(e){return!!e&&typeof e=="object"&&"data"in e}function Nt(e={}){const t=e.baseUrl||"",n=e.streamPath??"/stream",[r,o]=c.useState(e.token??null),s=c.useRef(e.headers??{}),a=e.credentials??"include",i=c.useRef(e);c.useEffect(()=>{i.current=e},[e]);const d=c.useCallback(g=>{var F,P,N,O,z,V,$,L,B,q;const k=i.current;if(!k)return;(F=k.onEvent)==null||F.call(k,g),g.type==="thread_info"&&((P=k.onThreadInfo)==null||P.call(k,g)),g.type==="values"&&Array.isArray(g.checkpoints)&&((N=k.handleValuesEvent)==null||N.call(k,g)),g.type==="metadata"&&((O=k.onMetadataEvent)==null||O.call(k,g)),typeof g.type=="string"&&(g.type==="custom"||g.type.startsWith("custom."))&&((z=k.onCustomEvent)==null||z.call(k,g)),g.type==="updates"&&((V=k.onUpdateEvent)==null||V.call(k,g)),g.type==="tool.end"?($=k.onToolEnd)==null||$.call(k,g):g.type==="tool.start"&&((L=k.onToolStart)==null||L.call(k,g)),g.type==="heartbeat"&&((B=k.onHeartbeat)==null||B.call(k,g)),g.type==="token"&&((q=k.onToken)==null||q.call(k,g.token))},[]),[l,u]=c.useState(!1),[p,h]=c.useState(null),[y,T]=c.useState(!1),[f,v]=c.useState(null),I=c.useRef(null),E=c.useRef(!0),A=c.useRef(null),_=c.useCallback(g=>{o(g)},[]),w=c.useCallback(()=>{h(null),v(null)},[]),b=c.useCallback(()=>{var P,N;console.debug("[use-chat] stop() invoked - aborting stream");const g=(P=A.current)==null?void 0:P.threadId,k=(N=A.current)==null?void 0:N.runId,j=()=>{var O;(O=I.current)==null||O.abort(),I.current=null,A.current=null,u(!1),T(!1)};(k||g?Ct.cancelRun(k||g).catch(O=>{console.warn("[use-chat] cancel run failed:",O)}):Promise.resolve()).finally(j)},[]),C=c.useCallback(g=>{I.current&&(I.current.abort(),I.current=null);const k={text:typeof g.content=="string"?g.content:g.text,threadId:g.threadId,attachments:g.attachments,payload:g.payload,config:g.config,checkpointId:g.checkpointId,checkpointNs:g.checkpointNs||void 0,edit:g.edit,command:g.command};u(!0),h(null),v(null);const j=new AbortController;I.current=j;let F=null,P=!1;return A.current={threadId:k.threadId??void 0,runId:void 0,headers:{},isStreaming:!0},(async()=>{var N,O,z,V,$,L;try{let B={};try{if(r)B={Authorization:`Bearer ${r}`};else if(typeof window<"u"){const R=window.__AUTH_TOKEN__,we=((N=window.localStorage)==null?void 0:N.getItem(xe.authToken))||null;let X=null;try{const me=(O=window.localStorage)==null?void 0:O.getItem(xe.chatSettings);me&&(X=((z=JSON.parse(me))==null?void 0:z.apiKey)||null)}catch{}const Y=R||we||X||null;Y&&(B={Authorization:`Bearer ${Y}`})}}catch{}console.debug("[use-chat] POST",t+n);let q={};if(typeof window<"u")try{const W=(V=window.localStorage)==null?void 0:V.getItem(xe.authSessionId);W&&(q={"X-Session-Id":W})}catch{}const Q={...B,...q,...s.current},m={"Content-Type":"application/json",Accept:"text/event-stream",...Q},S=await fetch(t+n,{method:"POST",headers:m,body:JSON.stringify(k),signal:j.signal,credentials:a});if(A.current&&(A.current.headers=Q),!S.ok||!S.body){const W=await S.text().catch(()=>"");console.debug("[use-chat] non-OK response",S.status,W==null?void 0:W.slice(0,500));const R=`stream ${S.status}${W?": "+W:""}`;throw R&&(h(R),F="error"),new Error(R)}T(!0);const M=S.body.getReader(),G=new TextDecoder;let J="",K=0,Z=Date.now();const re=setInterval(()=>{Date.now()-Z>18e5&&(h("Stream idle timeout"),F="error",j.abort())},5e3),ue=1024*1024;try{const W=S.headers.get("X-Thread-Id")||S.headers.get("x-thread-id"),R=S.headers.get("X-Run-Id")||S.headers.get("x-run-id");for(A.current&&(A.current={...A.current,threadId:W??A.current.threadId,runId:R??A.current.runId});;){const{value:we,done:X}=await M.read();if(X)break;J+=G.decode(we,{stream:!0}),J.length>ue&&(J="",console.warn("Stream buffer reset: exceeded 1MB"));let Y;for(;(Y=J.indexOf(`
5
5
 
6
6
  `))>=0;){const me=J.slice(0,Y);J=J.slice(Y+2);const Be=me.split(/\r?\n/),$e=[];let de=null;for(const ye of Be)if(!ye.startsWith(":")&&ye){if(ye.startsWith("event:")){const Ie=ye.slice(6).trim();Ie&&(de=Ie);continue}if(ye.startsWith("data:")){const Ie=ye.slice(5);$e.push(Ie.startsWith(" ")?Ie.slice(1):Ie)}}const Te=$e.join(`
7
- `);if(!Te)continue;let te;try{te=JSON.parse(Te)}catch{console.debug("[use-chat] malformed SSE:",Te.slice(0,200));continue}de&&typeof te=="object"&&te!==null&&!("type"in te)&&(te.type=de);const Pe=pr(te)?te.data:te;if(!Pe){console.warn("[use-chat] dropped envelope event without payload",te);continue}const Ne=Gn(Pe);Z=Date.now();const he=Ne.seq;if(he!==void 0){if(he<=K){console.debug("[use-chat] drop duplicate/out-of-order event",{seq:he,lastProcessedSeq:K,type:Ne.type});continue}K=he}d(Ne)}}O===null&&!U.signal.aborted&&(O="complete")}catch(q){if(q.name==="AbortError")O=O??"aborted";else{const R=q.message||String(q);O="error",h(R)}}finally{try{await M.cancel()}catch{}finally{(G=M.releaseLock)==null||G.call(M)}clearInterval(re)}}catch(_){if(_.name==="AbortError")O=O??"aborted";else{const V=_.message||String(_);O="error",h(V),P||(P=!0,(B=e.onConnectionError)==null||B.call(e,V))}}finally{try{if(e.onFinish){const _={lastSeq:0,lastCheckpointId:null,lastCheckpointNs:null,lastValues:null};e.onFinish(_)}}catch(_){console.warn("[use-chat] onClosed callback failed",_)}u(!1),T(!1),I.current=null,A.current=null}})(),Promise.resolve()},[t,n,r,e,d]);return c.useEffect(()=>()=>{var g;E.current=!1,(g=I.current)==null||g.abort()},[]),{isStreaming:l,error:p,assistantText:"",activeMessageId:f,streamedMessages:{},lastCheckpointId:null,lastSeq:0,connected:y,stream:C,stop:b,clear:k,setToken:z,values:{},interrupt:()=>Promise.resolve(),resume:()=>Promise.resolve(),goto:()=>Promise.resolve(),connectionState:p?"error":l?y?"connected":"connecting":"idle",messages:[],submit:C}}function _t({api:e,initialThreadId:t=null,onError:n,onThreadChange:r,onCurrentThreadDeleted:o}){const[s,a]=c.useState([]),[i,d]=c.useState(t),[l,u]=c.useState(!1),[p,h]=c.useState(null),y=c.useRef(i),T=c.useRef(new Map);c.useEffect(()=>{y.current=i},[i]),c.useEffect(()=>{t!==void 0&&t!==y.current&&d(t)},[t]);const f=c.useCallback(async()=>{u(!0),h(null);try{const k=await e.listThreads();a(k??[])}catch(k){const b=String(k);h(b),n==null||n(b)}finally{u(!1)}},[e,n]);c.useEffect(()=>{f()},[f]),c.useEffect(()=>{r==null||r(i)},[i,r]);const v=c.useCallback(async(k,b)=>{try{const C=b&&typeof b=="object"?{id:b.id,name:b.name??""}:void 0,g=await e.createThread(k,C);return d(g.threadId),await f(),g.threadId}catch(C){const g=String(C);return n==null||n(g),null}},[e,n,f]),I=c.useCallback(async k=>{const b=s;a(g=>g.filter(w=>w.threadId!==k));const C=new AbortController;T.current.set(k,C);try{await e.deleteThread(k),y.current===k&&(d(null),o==null||o())}catch(g){a(b);const w=String(g);n==null||n(w)}finally{T.current.delete(k)}},[e,o,n,s]),E=c.useCallback(async(k,b)=>{try{await e.updateThread(k,b),await f()}catch(C){n==null||n(String(C))}},[e,n,f]),A=c.useMemo(()=>({createThread:v,deleteThread:I,renameThread:E,refreshThreads:f}),[v,I,E,f]),z=c.useCallback(k=>{if(!(k!=null&&k.threadId))return;const b={threadId:k.threadId,title:k.title||`Thread ${k.threadId.slice(0,8)}`,project:k.project,createdAt:k.createdAt||new Date().toISOString(),updatedAt:k.updatedAt||new Date().toISOString(),messageCount:k.messageCount??1};a(C=>{let g=!1;const w=C.map(U=>U.threadId===b.threadId?(g=!0,console.debug("[useThreadsState] thread_info: updating existing thread",b.threadId),{...U,title:b.title??U.title,project:b.project??U.project,updatedAt:b.updatedAt??U.updatedAt,messageCount:b.messageCount??U.messageCount}):U);return g?w:(console.debug("[useThreadsState] thread_info: adding thread to list",b.threadId),[b,...C])})},[]);return{threads:s,currentThreadId:i,currentThreadIdRef:y,setCurrentThreadId:d,isLoadingThreads:l,threadsError:p,actions:A,addThreadFromEvent:z}}const zt=c.createContext(null);function jt({children:e,initialThreadId:t=null,onError:n,onThreadChange:r}){const{chatApi:o}=be(),{threads:s,currentThreadId:a,setCurrentThreadId:i,currentThreadIdRef:d,isLoadingThreads:l,threadsError:u,actions:p,addThreadFromEvent:h}=_t({api:o,initialThreadId:t,onError:n,onThreadChange:r}),y=c.useMemo(()=>({threads:s,currentThreadId:a,setCurrentThreadId:i,currentThreadIdRef:d,isLoading:l,error:u,actions:p,addThreadFromEvent:h}),[s,a,i,d,l,u,p,h]);return H.jsx(zt.Provider,{value:y,children:e})}function je(e){const t=c.useContext(zt);if(!t&&!(e!=null&&e.optional))throw new Error("useThreads must be used within a ThreadsProvider");return t}function Ut(e){const t=e.artifact;return!t||typeof t!="object"?null:"metadata"in t&&t.metadata?t.metadata:{id:t.id??e.id??`artifact-${Date.now()}`,type:t.type??"unknown",createdAt:e.createdAt??new Date().toISOString(),status:t.status??"completed",progress:t.progress??void 0}}function gr(e,t){const n=Ut(e);if(!n)return e;const r={...n,...t,updatedAt:new Date().toISOString()};return{...e,artifact:{...typeof e.artifact=="object"&&e.artifact?e.artifact:{},metadata:r}}}function mr(e,t,n){return e.find(r=>{const o=Ut(r);return!!((o==null?void 0:o.id)===t||n&&r.toolCallId===n)})??null}function Ue(e){return e.map(t=>We(t)).filter(t=>!!t)}function Ft(e,t,n){return t<0||t>=e.length?e:[...e.slice(0,t),n,...e.slice(t+1)]}function hr(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 Ft(e,r,s)}return e}const Ot={status:"idle",messages:[],taskMessagesByScope:{},assemblingId:null,lastCheckpointId:null,lastCheckpointNs:null,messagesStreamMeta:{},pendingInterrupt:null,values:{},error:null};function yr(e,t){var n;switch(t.type){case"status":return{...e,status:t.payload.status,error:t.payload.error??e.error};case"reset":return{...Ot,messages:Ue(((n=t.payload)==null?void 0:n.messages)??[])};case"user_message":{const{message:r}=t.payload;return{...e,status:"streaming",messages:[...e.messages,r],assemblingId:null,lastCheckpointId:null,error:null}}case"seed":{const r=Ue(t.payload.messages),o={...e,status:"idle",messages:r,assemblingId:null,pendingInterrupt:t.payload.pendingInterrupt??null,taskMessagesByScope:{},error:null};return Object.prototype.hasOwnProperty.call(t.payload,"checkpointId")&&(o.lastCheckpointId=t.payload.checkpointId??null),Object.prototype.hasOwnProperty.call(t.payload,"checkpointNs")&&(o.lastCheckpointNs=t.payload.checkpointNs??null),Object.prototype.hasOwnProperty.call(t.payload,"values")&&(o.values=t.payload.values??{}),o}case"prepend":{const r=Ue(t.payload.messages);if(!r.length)return e;const o=new Set(e.messages.map(a=>a.id)),s=r.filter(a=>!o.has(a.id));return s.length?{...e,messages:[...s,...e.messages]}:e}case"event":return Lt(e,t.payload.ev);case"batch":{const{events:r}=t.payload;return r.length?r.reduce((o,s)=>Lt(o,s),e):e}default:return e}}function br(e=[]){const[t,n]=c.useReducer(yr,{...Ot,messages:e}),r=c.useRef([]),o=c.useRef(null),s=c.useCallback(()=>{o.current!==null&&typeof window<"u"&&window.cancelAnimationFrame(o.current),o.current=null;const l=r.current;l.length&&(r.current=[],n({type:"batch",payload:{events:l}}))},[]),a=c.useCallback(()=>{typeof window<"u"&&typeof window.requestAnimationFrame=="function"?o.current===null&&(o.current=window.requestAnimationFrame(()=>s())):setTimeout(s,8)},[s]),i=c.useCallback(l=>{r.current.push(l),a()},[a]),d=c.useMemo(()=>({setStatus:(l,u)=>n({type:"status",payload:{status:l,error:u}}),reset:l=>n({type:"reset",payload:{messages:l}}),seed:(l,u)=>n({type:"seed",payload:{messages:l,...u??{}}}),pushUser:(l,u)=>n({type:"user_message",payload:{message:l,editingMessageId:u}}),onEvent:i}),[i]);return{state:t,dispatch:n,...d}}function Lt(e,t){var a;const n=t,r=n==null?void 0:n.origin,o=n==null?void 0:n.scope,s=r==="task"||typeof o=="string"&&o.startsWith("tools:");if(t.type==="checkpoint"){const i=t.checkpointNs??e.lastCheckpointNs??null,d=hr(e.messages,t.checkpointId,i);return{...e,lastCheckpointId:t.checkpointId,lastCheckpointNs:i,messages:d}}if(t.type==="status"){const i=n.status==="completed"||n.status==="error"?"idle":n.status==="interrupted"?"awaiting_input":e.status;return{...e,status:i}}if(t.type==="error"){const i={id:`err-${Date.now()}`,role:"system",content:[{type:"text",text:`Error: ${t.message}`}],createdAt:new Date().toISOString()};return{...e,status:"error",error:t.message,messages:[...e.messages,i]}}if(t.type==="values"&&((a=n.values)!=null&&a.messages)){const i=n.values,d=Array.isArray(i.messages)?i.messages:[],l=Ue(d),{messages:u,...p}=i;if(s){const h=typeof o=="string"&&o.length>0?o:"task";return{...e,taskMessagesByScope:{...e.taskMessagesByScope,[h]:l}}}return{...e,status:e.status==="streaming"?"idle":e.status,messages:l,assemblingId:null,pendingInterrupt:null,values:p}}return t.type==="messages/partial"?wr(e,n):t.type==="tool.start"?s?e:kr(e,t):t.type==="tool.progress"?s?e:vr(e,t):t.type==="tool.end"?s?e:Tr(e,t):t.type==="artifact.update"?Ir(e,t):e}function wr(e,t){const r=(t.messages||[t]).find(d=>d.type==="ai"||d.role==="assistant");if(!r)return e;const o=r.id,s=r.content??"",a=e.assemblingId!==o;let i=[...e.messages];if(a){const d=We({...r,role:"assistant",content:typeof s=="string"?[{type:"text",text:s}]:s});d&&i.push(d)}else{const d=i.findIndex(l=>l.id===o);if(d!==-1){const l=i[d],u=s;i[d]={...l,content:[{type:"text",text:u}]}}}return{...e,status:"streaming",messages:i,assemblingId:o}}function tt(e,t){var n;if(!t)return-1;for(let r=e.length-1;r>=0;r--){const o=e[r];if(o.role==="assistant"&&((n=o.toolCalls)!=null&&n.some(s=>s.id===t)))return r}return-1}function kr(e,t){const n=t,r=n.id||n.callId;if(!r)return e;const o=n.name||"tool",s=`Starting ${o}...`;let a=[...e.messages],i=tt(a,r);if(i===-1){for(let d=a.length-1;d>=0;d--)if(a[d].role==="assistant"){i=d;break}}if(i!==-1){const d=a[i],l=[...d.toolCalls||[]],u=l.findIndex(p=>p.id===r);u>=0?l[u]={...l[u],status:"running",content:s}:l.push({id:r,name:o,args:n.args||{},status:"running",content:s}),a[i]={...d,toolCalls:l}}return{...e,messages:a}}function vr(e,t){const n=t.id;if(!n)return e;let r=[...e.messages];const o=tt(r,n);if(o!==-1){const s=r[o],a=se(t.content),i=(s.toolCalls||[]).map(d=>d.id===n?{...d,content:typeof a=="string"?a:d.content}:d);r[o]={...s,toolCalls:i}}return{...e,messages:r}}function Tr(e,t){const n=t.id;if(!n)return e;let r=[...e.messages];const o=tt(r,n),s=se(t.content??t.error);if(o!==-1){const i=r[o],d=(i.toolCalls||[]).map(l=>l.id===n?{...l,status:t.error?"failed":"completed",content:typeof s=="string"?s:l.content,artifact:t.artifact}:l);r[o]={...i,toolCalls:d}}const a={id:`tool-${n}`,role:"tool",name:t.name,content:[{type:"text",text:typeof s=="string"?s:""}],artifact:t.artifact,toolCallId:n,createdAt:new Date().toISOString()};return{...e,messages:[...r,a]}}function Ir(e,t){const n=t.artifactId,r=mr(e.messages,n,t.callId);if(!r)return e;const o=e.messages.indexOf(r),s=gr(r,{status:t.status,progress:t.progress,error:t.error});return t.partial_data&&s.artifact&&(s.artifact={...s.artifact,...t.partial_data}),{...e,messages:Ft(e.messages,o,s)}}function Me(e){if(!(!e||typeof e!="object"||Array.isArray(e)))return{...e}}function Fe(e,t){if(e)for(const n of t){const r=e[n];if(typeof r=="string"&&r.trim())return r.trim()}}function Ar(e,t){if(!e)return null;for(const n of t){const r=e[n];if(typeof r=="number"&&Number.isFinite(r))return r}return null}function Bt(e){const t=Me(e);if(t)return Me(t.configurable)??t}async function $t(e,t){var i,d;if(!e)return e??null;const n=ae(e),r=Array.isArray(n.checkpoints)?n.checkpoints:n.checkpoints?Object.values(n.checkpoints):[],o=new Set;for(const l of r){const u=(i=l==null?void 0:l.values)==null?void 0:i.messages;if(Array.isArray(u))for(const p of u){const h=p==null?void 0:p.content;if(Array.isArray(h))for(const y of h){if(!y||typeof y!="object"||y.type!=="image_url"&&y.type!=="file")continue;const T=y.fileId||y.file_id;typeof T=="string"&&T.trim()&&o.add(T)}}}if(o.size===0)return n;const s=await Promise.all(Array.from(o).map(async l=>{try{const u=await t.getFileInfo(l),p=ae(u);return[l,p]}catch{return[l,null]}})),a=new Map(s);for(const l of r){const u=(d=l==null?void 0:l.values)==null?void 0:d.messages;if(Array.isArray(u))for(const p of u){const h=p==null?void 0:p.content;if(Array.isArray(h))for(const y of h){if(!y||typeof y!="object"||y.type!=="image_url"&&y.type!=="file")continue;const T=y.fileId||y.file_id;if(!T)continue;const f=a.get(T),v=(f==null?void 0:f.contentUrl)||(f==null?void 0:f.content_url);v&&(y.type==="image_url"?(y.imageUrl=y.imageUrl||{},y.imageUrl.url=v):y.type==="file"&&(y.url=v,!y.name&&(f!=null&&f.filename||f!=null&&f.name)&&(y.name=(f==null?void 0:f.filename)||(f==null?void 0:f.name))))}}}return n}function nt(e){const r=[...(Array.isArray(e==null?void 0:e.checkpoints)?(e==null?void 0:e.checkpoints)??[]:e!=null&&e.checkpoints?Object.values(e.checkpoints):[]).map((s,a)=>Cr(ae(s),a)).filter(s=>!!s)].sort((s,a)=>Dt(a.createdAt)-Dt(s.createdAt)),o=r[0]??null;return{threadId:(e==null?void 0:e.threadId)??"",latest:o,checkpoints:r,interrupt:(o==null?void 0:o.interrupt)??null}}function Cr(e,t){var k,b;if(!e)return null;const n=((k=e.values)==null?void 0:k.activeAgent)??null,r=(b=e.values)==null?void 0:b.messages,s=(Array.isArray(r)?r:[]).map(C=>Sr(C,n)).filter(C=>!!C),a=Me(e.metadata)??{},i=Bt(e.config),d=Me(e.parentConfig),l=Bt(d),u=Fe(i,["checkpointId"]),p=Fe(i,["checkpointNs"]),h=Fe(l,["checkpointId"]),y=Me(e.config),T=Array.isArray(e.tasks)?e.tasks.map(C=>({...C})):e.tasks??null,f=Array.isArray(e.next)?[...e.next]:e.next??null,v=typeof e.createdAt=="string"&&e.createdAt.trim()?e.createdAt:new Date(Date.now()-t).toISOString(),I={...a,step:Ar(a,["step"])??0,source:Fe(a,["source"])??null},E=s.map(C=>({...C,checkpointId:C.checkpointId??u??null,checkpointNs:C.checkpointNs??p??null})),A=e.values,z=Array.isArray(e.interrupts)?e.interrupts:Array.isArray(A==null?void 0:A.interrupts)?A.interrupts:[];return{checkpointId:u??null,checkpointNs:p??null,createdAt:v,parentId:h??null,messages:E,interrupt:xr(z,t,u??null),metadata:I,config:y??null,parentConfig:d??null,next:f,tasks:T,values:e.values??{}}}function Sr(e,t){const n=We(e);return n?(n.role==="assistant"&&!n.name&&t&&(n.name=t),n):null}function xr(e,t,n){const r=e.length;for(let o=r-1;o>=0;o-=1){const s=e[o];if(!s||typeof s!="object")continue;const a=s,i=a.value??s;if(i==null)continue;return{id:typeof a.id=="string"&&a.id.trim()?a.id:`interrupt-${n??t}-${o}`,value:i}}return null}function Dt(e){if(!e)return 0;const t=Date.parse(e);return Number.isFinite(t)?t:0}const Vt=120;function Mr(e){if(!Array.isArray(e))return"";const t=e.filter(r=>!!(r&&r.type==="text")).map(r=>(r.text??"").trim()).filter(Boolean);if(!t.length)return"";const n=t.join(" ").replace(/\s+/g," ").trim();return n?n.length>Vt?`${n.slice(0,Vt-3)}…`:n:""}function Er(e){return Mr(e.content)||""}function Pr(e){const t=new Map,n=[],r=new Map,o=[];for(let l=0;l<e.length;l++){const u=e[l],p=u.checkpointId,h=p??`cp-${l}`,y=u.metadata??{},T=typeof y.step=="number"?y.step:null,f=typeof y.source=="string"?y.source:null;let v=null,I=null;const E=Array.isArray(u.messages)?u.messages:[];for(const b of E)b.role==="user"&&(I||(I=b),b.id&&(v=b.id));const A=u.next&&u.next.length>0?String(u.next[0]):null,z=u.parentConfig??null,k={id:h,step:T,source:f,createdAt:u.createdAt??null,namespace:u.checkpointNs??null,parentId:u.parentId??null,next:A,parentConfig:z,userMessageId:v};if(o.push(k),p&&t.set(p,k),p&&I){const b=Er(I);b&&r.set(p,b)}n.push({id:h,messageId:v,step:T,source:f,createdAt:u.createdAt??null,next:A,parentConfig:z})}const s=new Map;for(const l of o){if(!l.userMessageId)continue;const u=s.get(l.userMessageId)??[];u.push(l),s.set(l.userMessageId,u)}for(const l of s.values()){if(!l.length)continue;l.sort((p,h)=>{const y=p.createdAt?Date.parse(p.createdAt):0;return(h.createdAt?Date.parse(h.createdAt):0)-y});const u=l.length;for(let p=0;p<l.length;p++){const h=l[p];h.attemptCount=u,h.attemptIndex=p,h.isLatestAttempt=p===0}}return{checkpoints:e,checkpointMetaByCheckpointId:t,timeline:n,messagePreviews:r,getLatest:()=>{const l=n[0];if(l)return t.get(l.id)},getCheckpoint:l=>t.get(l),getMessageAttempts:l=>{const u=[];for(const p of t.values())p.userMessageId===l&&u.push(p);return u.length?(u.sort((p,h)=>{const y=typeof p.attemptIndex=="number"?p.attemptIndex:Number.MAX_SAFE_INTEGER,T=typeof h.attemptIndex=="number"?h.attemptIndex:Number.MAX_SAFE_INTEGER;return y-T}),u):[]}}}function Nr(e,t,n){if(!e)return{attemptCount:1,attemptIndex:0,attempts:[]};const r=n.getMessageAttempts(e);if(!r.length)return{attemptCount:1,attemptIndex:0,attempts:[]};let o=0;if(t){const s=r.findIndex(a=>a.id===t);s>=0&&(o=s)}return{attemptCount:r.length,attemptIndex:o,attempts:r}}function _r(e){return c.useMemo(()=>Pr(e),[e])}function rt({api:e,fileApi:t,seed:n,onError:r,currentThreadId:o,autoLoadInitial:s=!0,isStreaming:a,getMessages:i}){const[d,l]=c.useState(null),p=c.useMemo(()=>nt(d),[d]).checkpoints,h=_r(p),y=h.timeline,[T,f]=c.useState(!1),[v,I]=c.useState(!1),[E,A]=c.useState(null),z=c.useRef(o),k=c.useRef(null),b=c.useRef(null),C=c.useRef(null);c.useEffect(()=>{z.current=o},[o]);const g=c.useCallback(async N=>{const L=await e.getState({threadId:N.threadId,checkpointId:N.checkpointId,checkpointNs:N.checkpointNs}),j={version:"values@1",threadId:N.threadId,checkpoints:[L]},G=t?await $t(j,t):j,{latest:B}=nt(G);return B},[e,t]),w=c.useCallback(async(N,L)=>{var B;if(!N)return;const j=`${N}:${L??"latest"}`;if(b.current===j||k.current===j)return;b.current=j,(B=C.current)==null||B.abort();const G=new AbortController;C.current=G,f(!0),A(null);try{const _=await g({threadId:N,checkpointId:L??void 0});if(z.current!==N)return;n((_==null?void 0:_.messages)??[],{checkpointId:(_==null?void 0:_.checkpointId)??null,checkpointNs:(_==null?void 0:_.checkpointNs)??null,pendingInterrupt:(_==null?void 0:_.interrupt)??null,values:_==null?void 0:_.values}),k.current=j;const V=await e.getStateHistory({threadId:N,limit:100,includeMessages:!1});z.current===N&&l(V)}catch(_){if(!it.isCancel(_)){const V=String(_);A(V),r==null||r(V)}}finally{b.current=null,f(!1)}},[e,n,g,r,T,i]),U=c.useCallback(async(N,L)=>{if(o){I(!0);try{const j=await g({threadId:o,checkpointId:N,checkpointNs:L??void 0});n((j==null?void 0:j.messages)??[],{checkpointId:(j==null?void 0:j.checkpointId)??N,checkpointNs:(j==null?void 0:j.checkpointNs)??L,pendingInterrupt:(j==null?void 0:j.interrupt)??null,values:j==null?void 0:j.values})}catch(j){console.error("[useThreadHistoryState] Navigation failed",j)}finally{I(!1)}}},[o,g,n]),O=c.useCallback(async()=>{o&&await w(o)},[o,w]),P=c.useCallback(async N=>{var G;const L=(N==null?void 0:N.threadId)||o;if(!L||o!==L)return;if(l(N),k.current=`${L}:latest`,(G=N.values)!=null&&G.messages){const B=await g({threadId:L});B&&n(B.messages??[],{checkpointId:B.checkpointId??null,checkpointNs:B.checkpointNs??null,pendingInterrupt:B.interrupt??null,values:B.values})}},[o,g,n]);c.useEffect(()=>{if(!s||!o||T||a)return;const N=`${o}:latest`;k.current!==N&&w(o)},[s,o,T,a,w]);const $=c.useCallback(()=>{l(null),f(!1),I(!1),A(null),k.current=null},[]);return{threadCheckpoints:p,threadTimeline:y,checkpointIndex:h,isLoadingThread:T,isLoadingCheckpoint:v,threadStateError:E,loadThread:w,navigateToCheckpoint:U,setCurrentCheckpointId:(N,L)=>{n(i(),{checkpointId:N,checkpointNs:L})},returnToLatest:O,handleValuesEvent:P,markSkipNextLoad:()=>{},markStreamPendingThread:()=>{},resetHistoryState:$,clearState:$}}const Kt=c.createContext(null),Ht=c.createContext(null);function ot(e){const t=c.useContext(Kt);if(!t&&!(e!=null&&e.optional))throw new Error("useThreadState must be used within a ThreadStateProvider");return t}function Gt(){const e=c.useContext(Ht);if(!e)throw new Error("useThreadStateUpdater must be used within a ThreadStateProvider");return e}function Wt({children:e,initialThreadId:t=null,initialCheckpointId:n=null,initialCheckpointNs:r=null,autoLoadInitial:o=!0,isStreaming:s,onError:a}){const{chatApi:i,fileApi:d}=be(),{currentThreadId:l}=je(),{state:u,seed:p,onEvent:h,dispatch:y}=br(),{threadCheckpoints:T,threadTimeline:f,checkpointIndex:v,isLoadingThread:I,isLoadingCheckpoint:E,threadStateError:A,loadThread:z,navigateToCheckpoint:k,setCurrentCheckpointId:b,returnToLatest:C,handleValuesEvent:g,markSkipNextLoad:w,markStreamPendingThread:U,resetHistoryState:O}=rt({api:i,fileApi:d,seed:p,onError:a,currentThreadId:l,initialThreadId:t,initialCheckpointId:n,initialCheckpointNs:r,autoLoadInitial:o,isStreaming:s,getMessages:c.useCallback(()=>u.messages,[u.messages])}),P=c.useRef(null),$=c.useCallback(S=>{P.current=S},[]),N=c.useRef(null),L=c.useCallback(S=>{N.current=S},[]),j=c.useMemo(()=>({assemblingMessageId:u.assemblingId??null}),[u.assemblingId]),G=c.useCallback((S,M)=>{const W=Pt(S,"user");return y({type:"user_message",payload:{message:W,editingMessageId:M==null?void 0:M.editingMessageId}}),W},[y]),B=c.useCallback(async()=>{P.current?await P.current():(p([],{}),O())},[p,O]),_=c.useCallback(async(S,M,W)=>{await z(S,M,{clearProgress:!1})},[z]),V=c.useMemo(()=>Dn(u.messages),[u.messages]),Q=c.useMemo(()=>({status:u.status,threadId:l,messages:u.messages,taskMessagesByScope:u.taskMessagesByScope,interrupt:u.pendingInterrupt,checkpoint:{id:u.lastCheckpointId??null,namespace:u.lastCheckpointNs??null},checkpoints:T,checkpointIndex:v,timelineCheckpoints:f,metadata:j,values:u.values??{},isLoading:I,isLoadingCheckpoint:E,error:A,loadOlder:async()=>{},seedFromSnapshot:S=>{p(S.messages,{checkpointId:S.checkpointId,checkpointNs:S.checkpointNs,pendingInterrupt:S.interrupt,values:S.values})},clearState:B,navigateToCheckpoint:k,setCurrentCheckpointId:b,returnToLatest:C,loadThread:_,clearThread:B,respondToInterrupt:async(S,M,W)=>{N.current&&await N.current(S,M,W)},messagePreviews:v.messagePreviews,handleValuesEvent:g,markSkipNextLoad:w,markStreamPendingThread:U,resetHistoryState:O,pushUser:G,onEvent:h,artifacts:V}),[l,u.messages,u.taskMessagesByScope,u.pendingInterrupt,u.lastCheckpointId,u.lastCheckpointNs,u.values,T,f,v,j,I,E,A,p,B,k,b,C,_,g,w,U,G,h,V]),m=c.useMemo(()=>({registerClearThread:$,registerRespondToInterrupt:L}),[$,L]);return H.jsx(Ht.Provider,{value:m,children:H.jsx(Kt.Provider,{value:Q,children:e})})}const qt=c.createContext(null),zr=c.createContext(!1);function jr({children:e,onError:t,onAuthError:n,onConnectionError:r,onToolEnd:o,onUpdateEvent:s,onCustomEvent:a,onMetadataEvent:i,onFinish:d,onStreamingChange:l}){const{chatApi:u,baseUrl:p}=be(),h=p,y=le(t),T=le(n),f=le(r),v=le(o),I=le(s),E=le(a),A=le(i),z=le(d),k=le(l),b=c.useMemo(()=>({onError:y,onAuthError:T,onConnectionError:f,onMetadataEvent:A,onCustomEvent:E,onUpdateEvent:I,onToolEnd:v,onFinish:z}),[y,T,f,A,E,I,v,z]);return H.jsx(zr.Provider,{value:!0,children:H.jsx(Ur,{api:u,streamBaseUrl:h,handlers:b,onStreamingChange:k,children:e})})}function Ur({children:e,api:t,streamBaseUrl:n,handlers:r,onStreamingChange:o}){const{setCurrentThreadId:s,currentThreadIdRef:a,addThreadFromEvent:i,currentThreadId:d}=je(),{interrupt:l,checkpoint:u,timelineCheckpoints:p,handleValuesEvent:h,markSkipNextLoad:y,markStreamPendingThread:T,resetHistoryState:f,pushUser:v,onEvent:I,messages:E}=ot(),{registerClearThread:A,registerRespondToInterrupt:z}=Gt(),k=c.useCallback(m=>{i(m),T(m.threadId),a.current!==m.threadId&&((m.created??!a.current)&&y(m.threadId),s(m.threadId))},[i,y,T,s,a]),b=Nt({baseUrl:n,onEvent:I,onError:m=>{var S;(S=r.onError)==null||S.call(r,(m==null?void 0:m.message)??String(m))},onAuthError:r.onAuthError,onConnectionError:r.onConnectionError,onFinish:r.onFinish,onThreadInfo:k,onMetadataEvent:r.onMetadataEvent,onCustomEvent:r.onCustomEvent,onUpdateEvent:r.onUpdateEvent,onToolEnd:r.onToolEnd,handleValuesEvent:h});c.useEffect(()=>{o==null||o(b.isStreaming)},[b.isStreaming,o]);const{stream:C,stop:g,clear:w,isStreaming:U,error:O,connected:P,streamedMessages:$,activeMessageId:N}=b;c.useEffect(()=>{d!==void 0&&w()},[d,w]);const L=c.useCallback(async(m,S)=>{await C(m,S)},[C]),j=c.useRef(u);c.useEffect(()=>{j.current=u},[u]);const G=c.useCallback(async(m,S,M)=>{const W=a.current;if(!W)throw new Error("No active thread to handle interrupt");const J=m?S??!0:!1,K=j.current,Z=(M==null?void 0:M.checkpointId)??K.id??void 0,re=(M==null?void 0:M.checkpointNs)??K.namespace??void 0,ue={threadId:W,checkpointId:Z,checkpointNs:re,command:{kind:"resume",value:J},payload:M==null?void 0:M.payload};L(ue)},[a,L]);c.useEffect(()=>{z(G)},[G,z]);const B=c.useCallback(async()=>{g(),w(),f(),s(null)},[w,f,s,g]);c.useEffect(()=>{A(B)},[B,A]);const _=c.useCallback(async(m,S)=>{U&&g();let M=a.current;const W=(m==null?void 0:m.text)??"",J=(m==null?void 0:m.attachments)??[],K=(W==null?void 0:W.trim())??"",Z={...(m==null?void 0:m.payload)??{}},re=Array.isArray(Z.messages)?Z.messages:void 0;re&&delete Z.messages;const ue=!!(re&&re.length),q=!!(m.contentParts&&m.contentParts.length>0);if(!M&&!K&&J.length===0&&!ue&&!q)return;if(!M){const he=Math.floor(Date.now()/1e3).toString(16).padStart(8,"0"),ye=Array.from({length:4},()=>Math.floor(Math.random()*4294967295).toString(16).padStart(8,"0")).join("").slice(0,16);M=`${he}${ye}`,y(M),s(M)}let R=null;m.contentParts&&m.contentParts.length>0&&(R=m.contentParts);const{contentParts:we,filesInfo:X}=R?{contentParts:R,filesInfo:[]}:await lr(J),Y=[...we];K&&Y.push({type:"text",text:W});const me=m==null?void 0:m.originalMessageId,Be=!!(m!=null&&m.edit&&me),$e=!ue&&Y.length>0;let de=null;if($e){const he=Be?me:`msg-${Date.now()}`;de=Pt({id:he,role:"user",content:Y,createdAt:new Date().toISOString()},"user"),Be?v(de,{editingMessageId:me}):v(de)}const Te=ue?re:de?[de]:[],te={...Z,...X.length?{files_info:X}:{}};Te.length?te.messages=Te:"messages"in te||(te.messages=[]);const Pe=(m==null?void 0:m.checkpointId)??u.id??void 0;if(m!=null&&m.edit&&!Pe)throw new Error(`[streaming] Missing checkpointId for edit submit. threadId=${M??"null"}`);const Ne={threadId:M,content:m==null?void 0:m.text,payload:te,config:m==null?void 0:m.config,checkpointId:Pe,command:m==null?void 0:m.command,edit:m==null?void 0:m.edit};return L(Ne,S)},[u,a,U,y,v,L,g,p]),V=c.useMemo(()=>{const m=Object.keys($).length>0;if(!U&&!m)return E;const S=new Map;return E.forEach(M=>S.set(M.id,M)),Object.values($).forEach(M=>{S.set(M.id,M)}),Array.from(S.values())},[U,$,E]),Q=c.useMemo(()=>({isStreaming:U,error:O,connectionState:O?"error":U?P?"connected":"connecting":"idle",messages:V,activeMessageId:N,submit:_,stop:g,interrupt:l,resume:()=>Promise.resolve(),goto:(m,S)=>Promise.resolve(),clearError:()=>{}}),[U,O,_,g,l,P,V]);return H.jsx(qt.Provider,{value:Q,children:e})}function le(e){const t=c.useRef(e);return c.useEffect(()=>{t.current=e},[e]),c.useCallback((...n)=>{const r=t.current;if(r)return r(...n)},[])}function Fr(e){return c.useContext(qt)}function Jt(e){return typeof e=="object"&&e!==null}function Or(e,t){if(Object.is(e,t))return!0;if(!Jt(e)||!Jt(t))return!1;const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(const o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}function Lr(e){const t=c.useRef(e),n=c.useRef(e);return Or(t.current,e)||(t.current=e,n.current=e),n.current}function Xt(e){const t=e.artifact&&typeof e.artifact=="object"?e.artifact:null,n=!t&&e.content&&typeof e.content=="object"?e.content:null,r=t??n,o=(r==null?void 0:r.task_id)??(r==null?void 0:r.taskId)??null;return typeof o=="string"?o:null}function Br(e){const{setCurrentTaskId:t,getCurrentTaskId:n,onToolEnd:r}=e;return o=>{const s=Xt(o),a=(n==null?void 0:n())??null;s&&s!==a&&t(s),r==null||r(o)}}function $r({children:e,apiConfig:t,initialThreadId:n=null,initialCheckpointId:r=null,initialCheckpointNs:o=null,autoLoadInitial:s=!0,onConnectionError:a,onError:i,onAuthError:d,onThreadChange:l,onToolEnd:u,onUpdateEvent:p,onCustomEvent:h,onMetadataEvent:y,onFinish:T}){const f=Lr(t),[v,I]=c.useState(!1),E=ce(i),A=ce(d),z=ce(a),k=ce(l),b=ce(u),C=ce(p),g=ce(h),w=ce(y),U=ce(T),O=c.useMemo(()=>({onError:E,onAuthError:A,onConnectionError:z,onToolEnd:b,onUpdateEvent:C,onCustomEvent:g,onMetadataEvent:w,onFinish:U}),[E,A,z,b,C,g,w,U]);return H.jsx(ar,{apiConfig:f,children:H.jsx(jt,{initialThreadId:n,onError:E,onThreadChange:k,children:H.jsx(Wt,{initialThreadId:n,initialCheckpointId:r,initialCheckpointNs:o,autoLoadInitial:s,onError:E,isStreaming:v,children:H.jsx(jr,{...O,onStreamingChange:I,children:e})})})})}function ce(e){const t=c.useRef(e);return t.current=e,c.useCallback((...n)=>{const r=t.current;if(r)return r(...n)},[])}const Dr=1,Vr=1e6;let st=0;function Kr(){return st=(st+1)%Number.MAX_SAFE_INTEGER,st.toString()}const at=new Map,Qt=e=>{if(at.has(e))return;const t=setTimeout(()=>{at.delete(e),Ee({type:"REMOVE_TOAST",toastId:e})},Vr);at.set(e,t)},Hr=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,Dr)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?Qt(n):e.toasts.forEach(r=>{Qt(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},Oe=[];let Le={toasts:[]};function Ee(e){Le=Hr(Le,e),Oe.forEach(t=>{t(Le)})}function Gr({...e}){const t=Kr(),n=o=>Ee({type:"UPDATE_TOAST",toast:{...o,id:t}}),r=()=>Ee({type:"DISMISS_TOAST",toastId:t});return Ee({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:o=>{o||r()}}}),{id:t,dismiss:r,update:n}}function Wr(){const[e,t]=lt.useState(Le);return lt.useEffect(()=>(Oe.push(t),()=>{const n=Oe.indexOf(t);n>-1&&Oe.splice(n,1)}),[e]),{...e,toast:Gr,dismiss:n=>Ee({type:"DISMISS_TOAST",toastId:n})}}function qr(e){const{allowFileOpen:t,currentThreadId:n}=e,{fileApi:r}=be(),{toast:o}=Wr(),[s,a]=c.useState({}),[i,d]=c.useState(null),[l,u]=c.useState(!1),p=c.useCallback(()=>{u(!1),d(null)},[]),h=c.useCallback(T=>{d(T),u(!0)},[]),y=c.useCallback(async(T,f,v)=>{var I,E;if(!t){T.preventDefault();return}if(s[v]){T.preventDefault();return}try{const A=String(f.url??""),z=A.match(/\/chat\/files\/([^/]+)(?:\/(view|download))?/);if(z){T.preventDefault();const k=z[1],b=f.name||`file_${k}`,C=f.mimeType||"application/octet-stream";h({id:k,name:b,mimeType:C});return}if(A.startsWith("data:")){T.preventDefault(),a(b=>({...b,[v]:!0}));const k=o({title:"Fetching file...",description:"",open:!0});try{const b=await r.listFiles(n??void 0);if(!b||!Array.isArray(b))throw new Error("Invalid file list response");const C=b.find(g=>!g||typeof g!="object"||!((g.filename??"")===(f.name??""))?!1:typeof f.size=="number"&&typeof g.size=="number"?g.size===f.size:!0);if(!(C!=null&&C.id))throw new Error(`File "${f.name}" is not yet available on the server`);if(!C.id||!C.filename)throw new Error("Invalid file data received from server");h({id:C.id,name:f.name||C.filename||`file_${C.id}`,mimeType:f.mimeType||C.mime_type||"application/octet-stream"}),(I=k.update)==null||I.call(k,{id:k.id,title:"Success",description:`Opened ${f.name}`,open:!0})}catch(b){console.error("Failed to fetch server file:",b);const C=b instanceof Error?b.message:"Unknown error occurred";(E=k.update)==null||E.call(k,{id:k.id,title:"Failed",description:C}),o({title:"Failed to fetch file",description:C,open:!0})}finally{a(b=>({...b,[v]:!1}))}}}catch(A){console.error("File click error:",A),a(z=>({...z,[v]:!1}))}},[t,s,o,n,h]);return{uploadingFiles:s,handleFileClick:y,fileViewerOpen:l,currentFileInfo:i,closeFileViewer:p}}function Jr(e){return c.useMemo(()=>{const t=e;let n=Array.isArray(t.content)?t.content:[];return typeof t.content=="string"&&(n=[{type:"text",text:t.content}]),{contentParts:n,textContent:Mt(n),toolMeta:Et(t),imageParts:n.filter(r=>r.type==="image_url"),fileParts:n.filter(r=>r.type==="file"),toolRaw:wt(n),isToolStreaming:!!t.toolStreaming}},[e])}const Yt="data:";function Xr(e){if(!e)return[];const t=[],n=e.split(/\r?\n/);for(const r of n){const o=r.trim();if(!o||!o.startsWith(Yt))continue;const s=o.slice(Yt.length).trim();if(!s||s.toLowerCase()==="[done]")continue;const a=_e(s);a&&typeof a=="object"&&t.push(a)}return t}function Qr(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(n&&typeof n=="object"&&n.type==="tool.end")return n}return null}function Yr(e){return c.useMemo(()=>{const t=e.content.filter(d=>d.type==="text");if(!t.length)return null;let r=t.flatMap(d=>Xr(d.text??""));if(!r.length){const d=t.map(u=>u.text??"").join(`
8
- `),l=_e(d);l&&typeof l=="object"&&(r=[l])}if(!r.length)return null;const s=Qr(r)??r[r.length-1];if(!s)return null;const a=s.output??s.payload??s,i=se(a);return i&&typeof i=="object"&&!Array.isArray(i)?{kind:"dict",value:i,data:i,event:s}:{kind:"generic",value:i,event:s}},[e])}function Zt(e){var U;const t=typeof e=="string"?e:e==null?void 0:e.threadId,n=typeof e=="object"?e.lazy:!1,r=je({optional:!0}),o=ot({optional:!0}),s=Fr(),{currentThreadId:a,setCurrentThreadId:i,actions:d}=r||{currentThreadId:null,setCurrentThreadId:()=>{},actions:{}},l=!!t&&t!==a,[u,p]=c.useState([]),h=c.useCallback(O=>{p(O)},[]),{isLoadingThread:y,threadStateError:T,threadCheckpoints:f,loadThread:v}=rt({api:be().chatApi,fileApi:be().fileApi,seed:h,currentThreadId:l?t:null,initialThreadId:l?t:null,isStreaming:!1,getMessages:()=>u,autoLoadInitial:l&&!n});c.useEffect(()=>{!l&&!n&&a&&(o!=null&&o.loadThread)&&o.loadThread(a)},[l,n,a,o==null?void 0:o.loadThread]);const I=c.useMemo(()=>{var O;return((O=f[0])==null?void 0:O.values)||{}},[f]),E=c.useMemo(()=>({timeline:[],messagePreviews:{}}),[]),A=t||a,z=l?y?"loading":"idle":(o==null?void 0:o.status)||"idle",k=l?u:(s==null?void 0:s.messages)||[],b=l?y:(o==null?void 0:o.isLoading)||!1,C=l?I:(o==null?void 0:o.values)||{},g=l?{}:(o==null?void 0:o.taskMessagesByScope)||{},w=l?T:(s==null?void 0:s.error)||(o==null?void 0:o.error)||null;return{threadId:A,status:z,messages:k,isLoading:b,isHistoryLoading:b,error:w,values:C,taskMessagesByScope:g,metadata:l?{}:o==null?void 0:o.metadata,navigateToCheckpoint:l?async()=>{}:(o==null?void 0:o.navigateToCheckpoint)||(async()=>{}),returnToLatest:l?async()=>{}:(o==null?void 0:o.returnToLatest)||(async()=>{}),checkpoint:l?f[0]?{id:f[0].checkpointId,namespace:f[0].checkpointNs}:null:(o==null?void 0:o.checkpoint)||null,checkpoints:l?f:(o==null?void 0:o.checkpoints)||[],checkpointIndex:l?E:(o==null?void 0:o.checkpointIndex)||{timeline:[],messagePreviews:{}},interrupt:l?null:(o==null?void 0:o.interrupt)||null,respondToInterrupt:l?async()=>{}:(o==null?void 0:o.respondToInterrupt)||(async()=>{}),isStreaming:(s==null?void 0:s.isStreaming)||!1,activeMessageId:(s==null?void 0:s.activeMessageId)||null,connectionState:(s==null?void 0:s.connectionState)||"disconnected",streamingAssistantId:!l&&(s!=null&&s.isStreaming)&&((U=o==null?void 0:o.metadata)!=null&&U.assemblingMessageId)?o.metadata.assemblingMessageId:null,submit:(s==null?void 0:s.submit)||(async()=>{}),stop:(s==null?void 0:s.stop)||(()=>{}),clearThread:l?async()=>{}:(o==null?void 0:o.clearThread)||(async()=>{}),setCurrentThreadId:i,loadHistory:l?async()=>{t&&await v(t)}:async()=>{},createThread:d==null?void 0:d.createThread,deleteThread:d==null?void 0:d.deleteThread,renameThread:d==null?void 0:d.renameThread,threads:(r==null?void 0:r.threads)||[],isThreadsLoading:(r==null?void 0:r.isLoading)||!1}}function Zr({submit:e,chatRequest:t,lastCheckpointId:n,lastCheckpointNs:r,onMessageSent:o,onExcelUploadSuccess:s,onError:a,enableMessageEditing:i,messages:d,setPendingAssistantResponse:l,project:u,onEvent:p,threadId:h,clearComposerOnSend:y=!0}){const{messages:T}=Zt(),[f,v]=c.useState(null),[I,E]=c.useState(""),[A,z]=c.useState(null),[k,b]=c.useState(null),[C,g]=c.useState(!1),[w,U]=c.useState(""),O=c.useRef(w),P=c.useRef(null);c.useEffect(()=>{if(!f)if(h){const m=localStorage.getItem(Xe(h));U(m||"")}else U("")},[h,f]);const $=c.useCallback(m=>{U(m),!f&&h&&localStorage.setItem(Xe(h),m)},[h,f]);c.useEffect(()=>{O.current=w},[w]),c.useEffect(()=>{if(!f){P.current=null;return}P.current===null&&(P.current=O.current),$(I??"")},[I,f,$]);const N=c.useCallback(m=>{$(m)},[$]),L=async(m,S)=>{const M=Array.isArray(S)?{files:S}:S??{},W=M.files??[],J=M.contentParts??[],K=m.trim();if(!(!K&&W.length===0&&J.length===0))try{const Z=W.map(async X=>{try{const Y=await St.uploadFile(X);return{file:X,record:Y}}catch(Y){throw console.error("Failed to upload file",X.name,Y),new Error(`Failed to upload ${X.name}`)}}),ue=(await Promise.all(Z)).map(({record:X})=>{const Y=X.mime_type;return Y.startsWith("image/")?{type:"image_url",image_url:{url:X.content_url}}:{type:"file",url:X.content_url,mimeType:Y,name:X.filename,size:X.size}}),q=[...J,...ue],R=f?(A==null?void 0:A.checkpointId)??n??void 0:n??void 0,we=f?(A==null?void 0:A.checkpointNs)??r??void 0:r??void 0;await e({text:K||"",contentParts:q,attachments:W,payload:t.payload,edit:!!f,checkpointId:R,checkpointNs:we,project:u??void 0,originalMessageId:f??void 0,config:t.config},p?{onEvent:p}:void 0),o==null||o(K),l(!0),y&&(h&&localStorage.removeItem(Xe(h)),$("")),b(null),v(null),E(""),z(null)}catch(Z){const re=(Z==null?void 0:Z.message)||"Failed to send message";b(re),a==null||a(re),l(!1)}},j=(m,S)=>{S||L(m,{files:[]})},G=c.useCallback(async m=>{await e({attachments:[m],payload:t.payload,checkpointId:n??void 0,checkpointNs:r??void 0,project:u??void 0,config:t.config},p?{onEvent:p}:void 0),s==null||s({file:m})},[n,r,t,s,e]),B=c.useCallback((m,S,M)=>{i&&(P.current=w,v(m),E(S),z({checkpointId:(M==null?void 0:M.checkpointId)??null,checkpointNs:(M==null?void 0:M.checkpointNs)??null}),b(null))},[w,i]),_=c.useCallback(()=>{v(null),E(""),z(null),b(null);const m=P.current;m!==null&&U(m),P.current=null},[]),V=c.useCallback(m=>{let S=null;for(let K=m-1;K>=0;K--)if(d[K].role==="user"){S=d[K];break}if(!S)return;const M=Array.isArray(S.content)?S.content:[],J=M.filter(K=>(K==null?void 0:K.type)==="text").map(K=>K.text).join("")||(()=>{try{return JSON.stringify(M,null,2)}catch{return String(M)}})();J&&e({text:J,payload:t.payload,checkpointId:n??void 0,checkpointNs:r??void 0,edit:!0,originalMessageId:S.id,config:t.config},p?{onEvent:p}:void 0)},[d,e,n,r,t]);return{editingMessageId:f,editingInitialValue:I,inputError:k,setInputError:b,dismissError:C,setDismissError:g,composerValue:w,handleComposerChange:N,handleSendMessage:L,handleQuickPrompt:j,handleExcelUpload:G,startEditing:B,cancelEditing:_,handleRegenerateCb:V,displayMessages:T}}function Rr(e){return c.useMemo(()=>e?{textContent:Ln(e),imageParts:Bn(e),fileParts:$n(e),toolCalls:bt(e),contentParts:e.content}:{textContent:"",imageParts:[],fileParts:[],toolCalls:[],contentParts:[]},[e])}function eo(e,t,n){const[r,o]=c.useState(e),s=c.useRef(e),a=c.useRef(null);return c.useEffect(()=>{s.current=e;const i=()=>{o(s.current),a.current&&(clearTimeout(a.current),a.current=null)};if(!t||n<=0){i();return}return a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{i()},n),()=>{a.current&&(clearTimeout(a.current),a.current=null)}},[e,t,n]),r}x.ChatProviders=$r,x.ThreadStateProvider=Wt,x.ThreadsProvider=jt,x.cn=jn,x.collectText=Mt,x.createTaskSyncToolEndHandler=Br,x.extractTaskIdFromToolEnd=Xt,x.extractToolMeta=Et,x.formatToolOutput=Vn,x.getAgentNameFromMessage=ur,x.getChatToken=Ye,x.getMessageAttemptInfo=Nr,x.getToolCallArtifacts=Xn,x.getToolCalls=Tt,x.hasContent=Kn,x.hydrateHistorySnapshots=nt,x.isFileLike=He,x.looksLikeMarkdown=yt,x.messageSignature=dr,x.normalizeInterruptId=cr,x.onChatTokenChanged=Ze,x.parseJsonSafe=_e,x.pretty=Ge,x.refreshHistoryFileUrls=$t,x.sanitizeForDisplay=Se,x.setChatToken=ge,x.stringifyTool=wt,x.useApi=be,x.useChatController=Zr,x.useChatSession=Zt,x.useFilePreview=qr,x.useMessageContent=Rr,x.useParsedMessageContent=Jr,x.useStream=Nt,x.useStreamingMarkdownBuffer=eo,x.useThreadHistoryState=rt,x.useThreadState=ot,x.useThreadStateUpdater=Gt,x.useThreads=je,x.useThreadsState=_t,x.useToolPayload=Yr,Object.defineProperty(x,Symbol.toStringTag,{value:"Module"})});
7
+ `);if(!Te)continue;let te;try{te=JSON.parse(Te)}catch{console.debug("[use-chat] malformed SSE:",Te.slice(0,200));continue}de&&typeof te=="object"&&te!==null&&!("type"in te)&&(te.type=de);const Pe=pr(te)?te.data:te;if(!Pe){console.warn("[use-chat] dropped envelope event without payload",te);continue}const Ne=Gn(Pe);Z=Date.now();const he=Ne.seq;if(he!==void 0){if(he<=K){console.debug("[use-chat] drop duplicate/out-of-order event",{seq:he,lastProcessedSeq:K,type:Ne.type});continue}K=he}d(Ne)}}F===null&&!j.signal.aborted&&(F="complete")}catch(W){if(W.name==="AbortError")F=F??"aborted";else{const R=W.message||String(W);F="error",h(R)}}finally{try{await M.cancel()}catch{}finally{($=M.releaseLock)==null||$.call(M)}clearInterval(re)}}catch(B){if(B.name==="AbortError")F=F??"aborted";else{const q=B.message||String(B);F="error",h(q),P||(P=!0,(L=e.onConnectionError)==null||L.call(e,q))}}finally{try{if(e.onFinish){const B={lastSeq:0,lastCheckpointId:null,lastCheckpointNs:null,lastValues:null};e.onFinish(B)}}catch(B){console.warn("[use-chat] onClosed callback failed",B)}u(!1),T(!1),I.current=null,A.current=null}})(),Promise.resolve()},[t,n,r,e,d]);return c.useEffect(()=>()=>{var g;E.current=!1,(g=I.current)==null||g.abort()},[]),{isStreaming:l,error:p,assistantText:"",activeMessageId:f,streamedMessages:{},lastCheckpointId:null,lastSeq:0,connected:y,stream:C,stop:b,clear:w,setToken:_,values:{},interrupt:()=>Promise.resolve(),resume:()=>Promise.resolve(),goto:()=>Promise.resolve(),connectionState:p?"error":l?y?"connected":"connecting":"idle",messages:[],submit:C}}function _t({api:e,initialThreadId:t=null,onError:n,onThreadChange:r,onCurrentThreadDeleted:o}){const[s,a]=c.useState([]),[i,d]=c.useState(t),[l,u]=c.useState(!1),[p,h]=c.useState(null),y=c.useRef(i),T=c.useRef(new Map);c.useEffect(()=>{y.current=i},[i]),c.useEffect(()=>{t!==void 0&&t!==y.current&&d(t)},[t]);const f=c.useCallback(async()=>{u(!0),h(null);try{const w=await e.listThreads();a(w??[])}catch(w){const b=String(w);h(b),n==null||n(b)}finally{u(!1)}},[e,n]);c.useEffect(()=>{f()},[f]),c.useEffect(()=>{r==null||r(i)},[i,r]);const v=c.useCallback(async(w,b)=>{try{const C=b&&typeof b=="object"?{id:b.id,name:b.name??""}:void 0,g=await e.createThread(w,C);return d(g.threadId),await f(),g.threadId}catch(C){const g=String(C);return n==null||n(g),null}},[e,n,f]),I=c.useCallback(async w=>{const b=s;a(g=>g.filter(k=>k.threadId!==w));const C=new AbortController;T.current.set(w,C);try{await e.deleteThread(w),y.current===w&&(d(null),o==null||o())}catch(g){a(b);const k=String(g);n==null||n(k)}finally{T.current.delete(w)}},[e,o,n,s]),E=c.useCallback(async(w,b)=>{try{await e.updateThread(w,b),await f()}catch(C){n==null||n(String(C))}},[e,n,f]),A=c.useMemo(()=>({createThread:v,deleteThread:I,renameThread:E,refreshThreads:f}),[v,I,E,f]),_=c.useCallback(w=>{if(!(w!=null&&w.threadId))return;const b={threadId:w.threadId,title:w.title||`Thread ${w.threadId.slice(0,8)}`,project:w.project,createdAt:w.createdAt||new Date().toISOString(),updatedAt:w.updatedAt||new Date().toISOString(),messageCount:w.messageCount??1};a(C=>{let g=!1;const k=C.map(j=>j.threadId===b.threadId?(g=!0,console.debug("[useThreadsState] thread_info: updating existing thread",b.threadId),{...j,title:b.title??j.title,project:b.project??j.project,updatedAt:b.updatedAt??j.updatedAt,messageCount:b.messageCount??j.messageCount}):j);return g?k:(console.debug("[useThreadsState] thread_info: adding thread to list",b.threadId),[b,...C])})},[]);return{threads:s,currentThreadId:i,currentThreadIdRef:y,setCurrentThreadId:d,isLoadingThreads:l,threadsError:p,actions:A,addThreadFromEvent:_}}const zt=c.createContext(null);function jt({children:e,initialThreadId:t=null,onError:n,onThreadChange:r}){const{chatApi:o}=be(),{threads:s,currentThreadId:a,setCurrentThreadId:i,currentThreadIdRef:d,isLoadingThreads:l,threadsError:u,actions:p,addThreadFromEvent:h}=_t({api:o,initialThreadId:t,onError:n,onThreadChange:r}),y=c.useMemo(()=>({threads:s,currentThreadId:a,setCurrentThreadId:i,currentThreadIdRef:d,isLoading:l,error:u,actions:p,addThreadFromEvent:h}),[s,a,i,d,l,u,p,h]);return H.jsx(zt.Provider,{value:y,children:e})}function je(e){const t=c.useContext(zt);if(!t&&!(e!=null&&e.optional))throw new Error("useThreads must be used within a ThreadsProvider");return t}function Ut(e){const t=e.artifact;return!t||typeof t!="object"?null:"metadata"in t&&t.metadata?t.metadata:{id:t.id??e.id??`artifact-${Date.now()}`,type:t.type??"unknown",createdAt:e.createdAt??new Date().toISOString(),status:t.status??"completed",progress:t.progress??void 0}}function gr(e,t){const n=Ut(e);if(!n)return e;const r={...n,...t,updatedAt:new Date().toISOString()};return{...e,artifact:{...typeof e.artifact=="object"&&e.artifact?e.artifact:{},metadata:r}}}function mr(e,t,n){return e.find(r=>{const o=Ut(r);return!!((o==null?void 0:o.id)===t||n&&r.toolCallId===n)})??null}function Ue(e){return e.map(t=>We(t)).filter(t=>!!t)}function Ft(e,t,n){return t<0||t>=e.length?e:[...e.slice(0,t),n,...e.slice(t+1)]}function hr(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 Ft(e,r,s)}return e}const Ot={status:"idle",messages:[],taskMessagesByScope:{},assemblingId:null,lastCheckpointId:null,lastCheckpointNs:null,messagesStreamMeta:{},pendingInterrupt:null,values:{},error:null};function yr(e,t){var n;switch(t.type){case"status":return{...e,status:t.payload.status,error:t.payload.error??e.error};case"reset":return{...Ot,messages:Ue(((n=t.payload)==null?void 0:n.messages)??[])};case"user_message":{const{message:r}=t.payload;return{...e,status:"streaming",messages:[...e.messages,r],assemblingId:null,lastCheckpointId:null,error:null}}case"seed":{const r=Ue(t.payload.messages),o={...e,status:"idle",messages:r,assemblingId:null,pendingInterrupt:t.payload.pendingInterrupt??null,taskMessagesByScope:{},error:null};return Object.prototype.hasOwnProperty.call(t.payload,"checkpointId")&&(o.lastCheckpointId=t.payload.checkpointId??null),Object.prototype.hasOwnProperty.call(t.payload,"checkpointNs")&&(o.lastCheckpointNs=t.payload.checkpointNs??null),Object.prototype.hasOwnProperty.call(t.payload,"values")&&(o.values=t.payload.values??{}),o}case"prepend":{const r=Ue(t.payload.messages);if(!r.length)return e;const o=new Set(e.messages.map(a=>a.id)),s=r.filter(a=>!o.has(a.id));return s.length?{...e,messages:[...s,...e.messages]}:e}case"event":return Lt(e,t.payload.ev);case"batch":{const{events:r}=t.payload;return r.length?r.reduce((o,s)=>Lt(o,s),e):e}default:return e}}function br(e=[]){const[t,n]=c.useReducer(yr,{...Ot,messages:e}),r=c.useRef([]),o=c.useRef(null),s=c.useCallback(()=>{o.current!==null&&typeof window<"u"&&window.cancelAnimationFrame(o.current),o.current=null;const l=r.current;l.length&&(r.current=[],n({type:"batch",payload:{events:l}}))},[]),a=c.useCallback(()=>{typeof window<"u"&&typeof window.requestAnimationFrame=="function"?o.current===null&&(o.current=window.requestAnimationFrame(()=>s())):setTimeout(s,8)},[s]),i=c.useCallback(l=>{r.current.push(l),a()},[a]),d=c.useMemo(()=>({setStatus:(l,u)=>n({type:"status",payload:{status:l,error:u}}),reset:l=>n({type:"reset",payload:{messages:l}}),seed:(l,u)=>n({type:"seed",payload:{messages:l,...u??{}}}),pushUser:(l,u)=>n({type:"user_message",payload:{message:l,editingMessageId:u}}),onEvent:i}),[i]);return{state:t,dispatch:n,...d}}function Lt(e,t){var a;const n=t,r=n==null?void 0:n.origin,o=n==null?void 0:n.scope,s=r==="task"||typeof o=="string"&&o.startsWith("tools:");if(t.type==="checkpoint"){const i=t.checkpointNs??e.lastCheckpointNs??null,d=hr(e.messages,t.checkpointId,i);return{...e,lastCheckpointId:t.checkpointId,lastCheckpointNs:i,messages:d}}if(t.type==="status"){const i=n.status==="completed"||n.status==="error"?"idle":n.status==="interrupted"?"awaiting_input":e.status;return{...e,status:i}}if(t.type==="error"){const i={id:`err-${Date.now()}`,role:"system",content:[{type:"text",text:`Error: ${t.message}`}],createdAt:new Date().toISOString()};return{...e,status:"error",error:t.message,messages:[...e.messages,i]}}if(t.type==="values"&&((a=n.values)!=null&&a.messages)){const i=n.values,d=Array.isArray(i.messages)?i.messages:[],l=Ue(d),{messages:u,...p}=i;if(s){const h=typeof o=="string"&&o.length>0?o:"task";return{...e,taskMessagesByScope:{...e.taskMessagesByScope,[h]:l}}}return{...e,status:e.status==="streaming"?"idle":e.status,messages:l,assemblingId:null,pendingInterrupt:null,values:p}}return t.type==="messages/partial"?wr(e,n):t.type==="tool.start"?s?e:kr(e,t):t.type==="tool.progress"?s?e:vr(e,t):t.type==="tool.end"?s?e:Tr(e,t):t.type==="artifact.update"?Ir(e,t):e}function wr(e,t){const r=(t.messages||[t]).find(d=>d.type==="ai"||d.role==="assistant");if(!r)return e;const o=r.id,s=r.content??"",a=e.assemblingId!==o;let i=[...e.messages];if(a){const d=We({...r,role:"assistant",content:typeof s=="string"?[{type:"text",text:s}]:s});d&&i.push(d)}else{const d=i.findIndex(l=>l.id===o);if(d!==-1){const l=i[d],u=s;i[d]={...l,content:[{type:"text",text:u}]}}}return{...e,status:"streaming",messages:i,assemblingId:o}}function tt(e,t){var n;if(!t)return-1;for(let r=e.length-1;r>=0;r--){const o=e[r];if(o.role==="assistant"&&((n=o.toolCalls)!=null&&n.some(s=>s.id===t)))return r}return-1}function kr(e,t){const n=t,r=n.id||n.callId;if(!r)return e;const o=n.name||"tool",s=`Starting ${o}...`;let a=[...e.messages],i=tt(a,r);if(i===-1){for(let d=a.length-1;d>=0;d--)if(a[d].role==="assistant"){i=d;break}}if(i!==-1){const d=a[i],l=[...d.toolCalls||[]],u=l.findIndex(p=>p.id===r);u>=0?l[u]={...l[u],status:"running",content:s}:l.push({id:r,name:o,args:n.args||{},status:"running",content:s}),a[i]={...d,toolCalls:l}}return{...e,messages:a}}function vr(e,t){const n=t.id;if(!n)return e;let r=[...e.messages];const o=tt(r,n);if(o!==-1){const s=r[o],a=se(t.content),i=(s.toolCalls||[]).map(d=>d.id===n?{...d,content:typeof a=="string"?a:d.content}:d);r[o]={...s,toolCalls:i}}return{...e,messages:r}}function Tr(e,t){const n=t.id;if(!n)return e;let r=[...e.messages];const o=tt(r,n),s=se(t.content??t.error);if(o!==-1){const i=r[o],d=(i.toolCalls||[]).map(l=>l.id===n?{...l,status:t.error?"failed":"completed",content:typeof s=="string"?s:l.content,artifact:t.artifact}:l);r[o]={...i,toolCalls:d}}const a={id:`tool-${n}`,role:"tool",name:t.name,content:[{type:"text",text:typeof s=="string"?s:""}],artifact:t.artifact,toolCallId:n,createdAt:new Date().toISOString()};return{...e,messages:[...r,a]}}function Ir(e,t){const n=t.artifactId,r=mr(e.messages,n,t.callId);if(!r)return e;const o=e.messages.indexOf(r),s=gr(r,{status:t.status,progress:t.progress,error:t.error});return t.partial_data&&s.artifact&&(s.artifact={...s.artifact,...t.partial_data}),{...e,messages:Ft(e.messages,o,s)}}function Me(e){if(!(!e||typeof e!="object"||Array.isArray(e)))return{...e}}function Fe(e,t){if(e)for(const n of t){const r=e[n];if(typeof r=="string"&&r.trim())return r.trim()}}function Ar(e,t){if(!e)return null;for(const n of t){const r=e[n];if(typeof r=="number"&&Number.isFinite(r))return r}return null}function Bt(e){const t=Me(e);if(t)return Me(t.configurable)??t}async function $t(e,t){var i,d;if(!e)return e??null;const n=ae(e),r=Array.isArray(n.checkpoints)?n.checkpoints:n.checkpoints?Object.values(n.checkpoints):[],o=new Set;for(const l of r){const u=(i=l==null?void 0:l.values)==null?void 0:i.messages;if(Array.isArray(u))for(const p of u){const h=p==null?void 0:p.content;if(Array.isArray(h))for(const y of h){if(!y||typeof y!="object"||y.type!=="image_url"&&y.type!=="file")continue;const T=y.fileId||y.file_id;typeof T=="string"&&T.trim()&&o.add(T)}}}if(o.size===0)return n;const s=await Promise.all(Array.from(o).map(async l=>{try{const u=await t.getFileInfo(l),p=ae(u);return[l,p]}catch{return[l,null]}})),a=new Map(s);for(const l of r){const u=(d=l==null?void 0:l.values)==null?void 0:d.messages;if(Array.isArray(u))for(const p of u){const h=p==null?void 0:p.content;if(Array.isArray(h))for(const y of h){if(!y||typeof y!="object"||y.type!=="image_url"&&y.type!=="file")continue;const T=y.fileId||y.file_id;if(!T)continue;const f=a.get(T),v=(f==null?void 0:f.contentUrl)||(f==null?void 0:f.content_url);v&&(y.type==="image_url"?(y.imageUrl=y.imageUrl||{},y.imageUrl.url=v):y.type==="file"&&(y.url=v,!y.name&&(f!=null&&f.filename||f!=null&&f.name)&&(y.name=(f==null?void 0:f.filename)||(f==null?void 0:f.name))))}}}return n}function nt(e){const r=[...(Array.isArray(e==null?void 0:e.checkpoints)?(e==null?void 0:e.checkpoints)??[]:e!=null&&e.checkpoints?Object.values(e.checkpoints):[]).map((s,a)=>Cr(ae(s),a)).filter(s=>!!s)].sort((s,a)=>Dt(a.createdAt)-Dt(s.createdAt)),o=r[0]??null;return{threadId:(e==null?void 0:e.threadId)??"",latest:o,checkpoints:r,interrupt:(o==null?void 0:o.interrupt)??null}}function Cr(e,t){var w,b;if(!e)return null;const n=((w=e.values)==null?void 0:w.activeAgent)??null,r=(b=e.values)==null?void 0:b.messages,s=(Array.isArray(r)?r:[]).map(C=>Sr(C,n)).filter(C=>!!C),a=Me(e.metadata)??{},i=Bt(e.config),d=Me(e.parentConfig),l=Bt(d),u=Fe(i,["checkpointId"]),p=Fe(i,["checkpointNs"]),h=Fe(l,["checkpointId"]),y=Me(e.config),T=Array.isArray(e.tasks)?e.tasks.map(C=>({...C})):e.tasks??null,f=Array.isArray(e.next)?[...e.next]:e.next??null,v=typeof e.createdAt=="string"&&e.createdAt.trim()?e.createdAt:new Date(Date.now()-t).toISOString(),I={...a,step:Ar(a,["step"])??0,source:Fe(a,["source"])??null},E=s.map(C=>({...C,checkpointId:C.checkpointId??u??null,checkpointNs:C.checkpointNs??p??null})),A=e.values,_=Array.isArray(e.interrupts)?e.interrupts:Array.isArray(A==null?void 0:A.interrupts)?A.interrupts:[];return{checkpointId:u??null,checkpointNs:p??null,createdAt:v,parentId:h??null,messages:E,interrupt:xr(_,t,u??null),metadata:I,config:y??null,parentConfig:d??null,next:f,tasks:T,values:e.values??{}}}function Sr(e,t){const n=We(e);return n?(n.role==="assistant"&&!n.name&&t&&(n.name=t),n):null}function xr(e,t,n){const r=e.length;for(let o=r-1;o>=0;o-=1){const s=e[o];if(!s||typeof s!="object")continue;const a=s,i=a.value??s;if(i==null)continue;return{id:typeof a.id=="string"&&a.id.trim()?a.id:`interrupt-${n??t}-${o}`,value:i}}return null}function Dt(e){if(!e)return 0;const t=Date.parse(e);return Number.isFinite(t)?t:0}const Vt=120;function Mr(e){if(!Array.isArray(e))return"";const t=e.filter(r=>!!(r&&r.type==="text")).map(r=>(r.text??"").trim()).filter(Boolean);if(!t.length)return"";const n=t.join(" ").replace(/\s+/g," ").trim();return n?n.length>Vt?`${n.slice(0,Vt-3)}…`:n:""}function Er(e){return Mr(e.content)||""}function Pr(e){const t=new Map,n=[],r=new Map,o=[];for(let l=0;l<e.length;l++){const u=e[l],p=u.checkpointId,h=p??`cp-${l}`,y=u.metadata??{},T=typeof y.step=="number"?y.step:null,f=typeof y.source=="string"?y.source:null;let v=null,I=null;const E=Array.isArray(u.messages)?u.messages:[];for(const b of E)b.role==="user"&&(I||(I=b),b.id&&(v=b.id));const A=u.next&&u.next.length>0?String(u.next[0]):null,_=u.parentConfig??null,w={id:h,step:T,source:f,createdAt:u.createdAt??null,namespace:u.checkpointNs??null,parentId:u.parentId??null,next:A,parentConfig:_,userMessageId:v};if(o.push(w),p&&t.set(p,w),p&&I){const b=Er(I);b&&r.set(p,b)}n.push({id:h,messageId:v,step:T,source:f,createdAt:u.createdAt??null,next:A,parentConfig:_})}const s=new Map;for(const l of o){if(!l.userMessageId)continue;const u=s.get(l.userMessageId)??[];u.push(l),s.set(l.userMessageId,u)}for(const l of s.values()){if(!l.length)continue;l.sort((p,h)=>{const y=p.createdAt?Date.parse(p.createdAt):0;return(h.createdAt?Date.parse(h.createdAt):0)-y});const u=l.length;for(let p=0;p<l.length;p++){const h=l[p];h.attemptCount=u,h.attemptIndex=p,h.isLatestAttempt=p===0}}return{checkpoints:e,checkpointMetaByCheckpointId:t,timeline:n,messagePreviews:r,getLatest:()=>{const l=n[0];if(l)return t.get(l.id)},getCheckpoint:l=>t.get(l),getMessageAttempts:l=>{const u=[];for(const p of t.values())p.userMessageId===l&&u.push(p);return u.length?(u.sort((p,h)=>{const y=typeof p.attemptIndex=="number"?p.attemptIndex:Number.MAX_SAFE_INTEGER,T=typeof h.attemptIndex=="number"?h.attemptIndex:Number.MAX_SAFE_INTEGER;return y-T}),u):[]}}}function Nr(e,t,n){if(!e)return{attemptCount:1,attemptIndex:0,attempts:[]};const r=n.getMessageAttempts(e);if(!r.length)return{attemptCount:1,attemptIndex:0,attempts:[]};let o=0;if(t){const s=r.findIndex(a=>a.id===t);s>=0&&(o=s)}return{attemptCount:r.length,attemptIndex:o,attempts:r}}function _r(e){return c.useMemo(()=>Pr(e),[e])}function rt({api:e,fileApi:t,seed:n,onError:r,currentThreadId:o,autoLoadInitial:s=!0,isStreaming:a,getMessages:i}){const[d,l]=c.useState(null),p=c.useMemo(()=>nt(d),[d]).checkpoints,h=_r(p),y=h.timeline,[T,f]=c.useState(!1),[v,I]=c.useState(!1),[E,A]=c.useState(null),_=c.useRef(o),w=c.useRef(null),b=c.useRef(null);c.useEffect(()=>{_.current=o},[o]);const C=c.useCallback(async N=>{const O=await e.getState({threadId:N.threadId,checkpointId:N.checkpointId,checkpointNs:N.checkpointNs}),z={version:"values@1",threadId:N.threadId,checkpoints:[O]},V=t?await $t(z,t):z,{latest:$}=nt(V);return $},[e,t]),g=c.useCallback(async(N,O)=>{var $;if(!N)return;const z=`${N}:${O??"latest"}`;if(w.current===z||T)return;($=b.current)==null||$.abort();const V=new AbortController;b.current=V,f(!0),A(null);try{const L=await C({threadId:N,checkpointId:O??void 0});if(_.current!==N)return;n((L==null?void 0:L.messages)??[],{checkpointId:(L==null?void 0:L.checkpointId)??null,checkpointNs:(L==null?void 0:L.checkpointNs)??null,pendingInterrupt:(L==null?void 0:L.interrupt)??null,values:L==null?void 0:L.values}),w.current=z;const B=await e.getStateHistory({threadId:N,limit:100,includeMessages:!1});_.current===N&&l(B)}catch(L){if(!it.isCancel(L)){const B=String(L);A(B),r==null||r(B)}}finally{f(!1)}},[e,n,C,r,T,i]),k=c.useCallback(async(N,O)=>{if(o){I(!0);try{const z=await C({threadId:o,checkpointId:N,checkpointNs:O??void 0});n((z==null?void 0:z.messages)??[],{checkpointId:(z==null?void 0:z.checkpointId)??N,checkpointNs:(z==null?void 0:z.checkpointNs)??O,pendingInterrupt:(z==null?void 0:z.interrupt)??null,values:z==null?void 0:z.values})}catch(z){console.error("[useThreadHistoryState] Navigation failed",z)}finally{I(!1)}}},[o,C,n]),j=c.useCallback(async()=>{o&&await g(o)},[o,g]),F=c.useCallback(async N=>{var V;const O=(N==null?void 0:N.threadId)||o;if(!O||o!==O)return;if(l(N),w.current=`${O}:latest`,(V=N.values)!=null&&V.messages){const $=await C({threadId:O});$&&n($.messages??[],{checkpointId:$.checkpointId??null,checkpointNs:$.checkpointNs??null,pendingInterrupt:$.interrupt??null,values:$.values})}},[o,C,n]);c.useEffect(()=>{if(!s||!o||T||a)return;const N=`${o}:latest`;w.current!==N&&g(o)},[s,o,T,a,g]);const P=c.useCallback(()=>{l(null),f(!1),I(!1),A(null),w.current=null},[]);return{threadCheckpoints:p,threadTimeline:y,checkpointIndex:h,isLoadingThread:T,isLoadingCheckpoint:v,threadStateError:E,loadThread:g,navigateToCheckpoint:k,setCurrentCheckpointId:(N,O)=>{n(i(),{checkpointId:N,checkpointNs:O})},returnToLatest:j,handleValuesEvent:F,markSkipNextLoad:()=>{},markStreamPendingThread:()=>{},resetHistoryState:P,clearState:P}}const Kt=c.createContext(null),Ht=c.createContext(null);function ot(e){const t=c.useContext(Kt);if(!t&&!(e!=null&&e.optional))throw new Error("useThreadState must be used within a ThreadStateProvider");return t}function Gt(){const e=c.useContext(Ht);if(!e)throw new Error("useThreadStateUpdater must be used within a ThreadStateProvider");return e}function Wt({children:e,initialThreadId:t=null,initialCheckpointId:n=null,initialCheckpointNs:r=null,autoLoadInitial:o=!0,isStreaming:s,onError:a}){const{chatApi:i,fileApi:d}=be(),{currentThreadId:l}=je(),{state:u,seed:p,onEvent:h,dispatch:y}=br(),{threadCheckpoints:T,threadTimeline:f,checkpointIndex:v,isLoadingThread:I,isLoadingCheckpoint:E,threadStateError:A,loadThread:_,navigateToCheckpoint:w,setCurrentCheckpointId:b,returnToLatest:C,handleValuesEvent:g,markSkipNextLoad:k,markStreamPendingThread:j,resetHistoryState:F}=rt({api:i,fileApi:d,seed:p,onError:a,currentThreadId:l,initialThreadId:t,initialCheckpointId:n,initialCheckpointNs:r,autoLoadInitial:o,isStreaming:s,getMessages:c.useCallback(()=>u.messages,[u.messages])}),P=c.useRef(null),N=c.useCallback(S=>{P.current=S},[]),O=c.useRef(null),z=c.useCallback(S=>{O.current=S},[]),V=c.useMemo(()=>({assemblingMessageId:u.assemblingId??null}),[u.assemblingId]),$=c.useCallback((S,M)=>{const G=Pt(S,"user");return y({type:"user_message",payload:{message:G,editingMessageId:M==null?void 0:M.editingMessageId}}),G},[y]),L=c.useCallback(async()=>{P.current?await P.current():(p([],{}),F())},[p,F]),B=c.useCallback(async(S,M,G)=>{await _(S,M,{clearProgress:!1})},[_]),q=c.useMemo(()=>Dn(u.messages),[u.messages]),Q=c.useMemo(()=>({status:u.status,threadId:l,messages:u.messages,taskMessagesByScope:u.taskMessagesByScope,interrupt:u.pendingInterrupt,checkpoint:{id:u.lastCheckpointId??null,namespace:u.lastCheckpointNs??null},checkpoints:T,checkpointIndex:v,timelineCheckpoints:f,metadata:V,values:u.values??{},isLoading:I,isLoadingCheckpoint:E,error:A,loadOlder:async()=>{},seedFromSnapshot:S=>{p(S.messages,{checkpointId:S.checkpointId,checkpointNs:S.checkpointNs,pendingInterrupt:S.interrupt,values:S.values})},clearState:L,navigateToCheckpoint:w,setCurrentCheckpointId:b,returnToLatest:C,loadThread:B,clearThread:L,respondToInterrupt:async(S,M,G)=>{O.current&&await O.current(S,M,G)},messagePreviews:v.messagePreviews,handleValuesEvent:g,markSkipNextLoad:k,markStreamPendingThread:j,resetHistoryState:F,pushUser:$,onEvent:h,artifacts:q}),[l,u.messages,u.taskMessagesByScope,u.pendingInterrupt,u.lastCheckpointId,u.lastCheckpointNs,u.values,T,f,v,V,I,E,A,p,L,w,b,C,B,g,k,j,$,h,q]),m=c.useMemo(()=>({registerClearThread:N,registerRespondToInterrupt:z}),[N,z]);return H.jsx(Ht.Provider,{value:m,children:H.jsx(Kt.Provider,{value:Q,children:e})})}const qt=c.createContext(null),zr=c.createContext(!1);function jr({children:e,onError:t,onAuthError:n,onConnectionError:r,onToolEnd:o,onUpdateEvent:s,onCustomEvent:a,onMetadataEvent:i,onFinish:d,onStreamingChange:l}){const{chatApi:u,baseUrl:p}=be(),h=p,y=le(t),T=le(n),f=le(r),v=le(o),I=le(s),E=le(a),A=le(i),_=le(d),w=le(l),b=c.useMemo(()=>({onError:y,onAuthError:T,onConnectionError:f,onMetadataEvent:A,onCustomEvent:E,onUpdateEvent:I,onToolEnd:v,onFinish:_}),[y,T,f,A,E,I,v,_]);return H.jsx(zr.Provider,{value:!0,children:H.jsx(Ur,{api:u,streamBaseUrl:h,handlers:b,onStreamingChange:w,children:e})})}function Ur({children:e,api:t,streamBaseUrl:n,handlers:r,onStreamingChange:o}){const{setCurrentThreadId:s,currentThreadIdRef:a,addThreadFromEvent:i,currentThreadId:d}=je(),{interrupt:l,checkpoint:u,timelineCheckpoints:p,handleValuesEvent:h,markSkipNextLoad:y,markStreamPendingThread:T,resetHistoryState:f,pushUser:v,onEvent:I,messages:E}=ot(),{registerClearThread:A,registerRespondToInterrupt:_}=Gt(),w=c.useCallback(m=>{i(m),T(m.threadId),a.current!==m.threadId&&((m.created??!a.current)&&y(m.threadId),s(m.threadId))},[i,y,T,s,a]),b=Nt({baseUrl:n,onEvent:I,onError:m=>{var S;(S=r.onError)==null||S.call(r,(m==null?void 0:m.message)??String(m))},onAuthError:r.onAuthError,onConnectionError:r.onConnectionError,onFinish:r.onFinish,onThreadInfo:w,onMetadataEvent:r.onMetadataEvent,onCustomEvent:r.onCustomEvent,onUpdateEvent:r.onUpdateEvent,onToolEnd:r.onToolEnd,handleValuesEvent:h});c.useEffect(()=>{o==null||o(b.isStreaming)},[b.isStreaming,o]);const{stream:C,stop:g,clear:k,isStreaming:j,error:F,connected:P,streamedMessages:N,activeMessageId:O}=b;c.useEffect(()=>{d!==void 0&&k()},[d,k]);const z=c.useCallback(async(m,S)=>{await C(m,S)},[C]),V=c.useRef(u);c.useEffect(()=>{V.current=u},[u]);const $=c.useCallback(async(m,S,M)=>{const G=a.current;if(!G)throw new Error("No active thread to handle interrupt");const J=m?S??!0:!1,K=V.current,Z=(M==null?void 0:M.checkpointId)??K.id??void 0,re=(M==null?void 0:M.checkpointNs)??K.namespace??void 0,ue={threadId:G,checkpointId:Z,checkpointNs:re,command:{kind:"resume",value:J},payload:M==null?void 0:M.payload};z(ue)},[a,z]);c.useEffect(()=>{_($)},[$,_]);const L=c.useCallback(async()=>{g(),k(),f(),s(null)},[k,f,s,g]);c.useEffect(()=>{A(L)},[L,A]);const B=c.useCallback(async(m,S)=>{j&&g();let M=a.current;const G=(m==null?void 0:m.text)??"",J=(m==null?void 0:m.attachments)??[],K=(G==null?void 0:G.trim())??"",Z={...(m==null?void 0:m.payload)??{}},re=Array.isArray(Z.messages)?Z.messages:void 0;re&&delete Z.messages;const ue=!!(re&&re.length),W=!!(m.contentParts&&m.contentParts.length>0);if(!M&&!K&&J.length===0&&!ue&&!W)return;if(!M){const he=Math.floor(Date.now()/1e3).toString(16).padStart(8,"0"),ye=Array.from({length:4},()=>Math.floor(Math.random()*4294967295).toString(16).padStart(8,"0")).join("").slice(0,16);M=`${he}${ye}`,y(M),s(M)}let R=null;m.contentParts&&m.contentParts.length>0&&(R=m.contentParts);const{contentParts:we,filesInfo:X}=R?{contentParts:R,filesInfo:[]}:await lr(J),Y=[...we];K&&Y.push({type:"text",text:G});const me=m==null?void 0:m.originalMessageId,Be=!!(m!=null&&m.edit&&me),$e=!ue&&Y.length>0;let de=null;if($e){const he=Be?me:`msg-${Date.now()}`;de=Pt({id:he,role:"user",content:Y,createdAt:new Date().toISOString()},"user"),Be?v(de,{editingMessageId:me}):v(de)}const Te=ue?re:de?[de]:[],te={...Z,...X.length?{files_info:X}:{}};Te.length?te.messages=Te:"messages"in te||(te.messages=[]);const Pe=(m==null?void 0:m.checkpointId)??u.id??void 0;if(m!=null&&m.edit&&!Pe)throw new Error(`[streaming] Missing checkpointId for edit submit. threadId=${M??"null"}`);const Ne={threadId:M,content:m==null?void 0:m.text,payload:te,config:m==null?void 0:m.config,checkpointId:Pe,command:m==null?void 0:m.command,edit:m==null?void 0:m.edit};return z(Ne,S)},[u,a,j,y,v,z,g,p]),q=c.useMemo(()=>{const m=Object.keys(N).length>0;if(!j&&!m)return E;const S=new Map;return E.forEach(M=>S.set(M.id,M)),Object.values(N).forEach(M=>{S.set(M.id,M)}),Array.from(S.values())},[j,N,E]),Q=c.useMemo(()=>({isStreaming:j,error:F,connectionState:F?"error":j?P?"connected":"connecting":"idle",messages:q,activeMessageId:O,submit:B,stop:g,interrupt:l,resume:()=>Promise.resolve(),goto:(m,S)=>Promise.resolve(),clearError:()=>{}}),[j,F,B,g,l,P,q]);return H.jsx(qt.Provider,{value:Q,children:e})}function le(e){const t=c.useRef(e);return c.useEffect(()=>{t.current=e},[e]),c.useCallback((...n)=>{const r=t.current;if(r)return r(...n)},[])}function Fr(e){return c.useContext(qt)}function Jt(e){return typeof e=="object"&&e!==null}function Or(e,t){if(Object.is(e,t))return!0;if(!Jt(e)||!Jt(t))return!1;const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(const o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}function Lr(e){const t=c.useRef(e),n=c.useRef(e);return Or(t.current,e)||(t.current=e,n.current=e),n.current}function Xt(e){const t=e.artifact&&typeof e.artifact=="object"?e.artifact:null,n=!t&&e.content&&typeof e.content=="object"?e.content:null,r=t??n,o=(r==null?void 0:r.task_id)??(r==null?void 0:r.taskId)??null;return typeof o=="string"?o:null}function Br(e){const{setCurrentTaskId:t,getCurrentTaskId:n,onToolEnd:r}=e;return o=>{const s=Xt(o),a=(n==null?void 0:n())??null;s&&s!==a&&t(s),r==null||r(o)}}function $r({children:e,apiConfig:t,initialThreadId:n=null,initialCheckpointId:r=null,initialCheckpointNs:o=null,autoLoadInitial:s=!0,onConnectionError:a,onError:i,onAuthError:d,onThreadChange:l,onToolEnd:u,onUpdateEvent:p,onCustomEvent:h,onMetadataEvent:y,onFinish:T}){const f=Lr(t),[v,I]=c.useState(!1),E=ce(i),A=ce(d),_=ce(a),w=ce(l),b=ce(u),C=ce(p),g=ce(h),k=ce(y),j=ce(T),F=c.useMemo(()=>({onError:E,onAuthError:A,onConnectionError:_,onToolEnd:b,onUpdateEvent:C,onCustomEvent:g,onMetadataEvent:k,onFinish:j}),[E,A,_,b,C,g,k,j]);return H.jsx(ar,{apiConfig:f,children:H.jsx(jt,{initialThreadId:n,onError:E,onThreadChange:w,children:H.jsx(Wt,{initialThreadId:n,initialCheckpointId:r,initialCheckpointNs:o,autoLoadInitial:s,onError:E,isStreaming:v,children:H.jsx(jr,{...F,onStreamingChange:I,children:e})})})})}function ce(e){const t=c.useRef(e);return t.current=e,c.useCallback((...n)=>{const r=t.current;if(r)return r(...n)},[])}const Dr=1,Vr=1e6;let st=0;function Kr(){return st=(st+1)%Number.MAX_SAFE_INTEGER,st.toString()}const at=new Map,Qt=e=>{if(at.has(e))return;const t=setTimeout(()=>{at.delete(e),Ee({type:"REMOVE_TOAST",toastId:e})},Vr);at.set(e,t)},Hr=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,Dr)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?Qt(n):e.toasts.forEach(r=>{Qt(r.id)}),{...e,toasts:e.toasts.map(r=>r.id===n||n===void 0?{...r,open:!1}:r)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},Oe=[];let Le={toasts:[]};function Ee(e){Le=Hr(Le,e),Oe.forEach(t=>{t(Le)})}function Gr({...e}){const t=Kr(),n=o=>Ee({type:"UPDATE_TOAST",toast:{...o,id:t}}),r=()=>Ee({type:"DISMISS_TOAST",toastId:t});return Ee({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:o=>{o||r()}}}),{id:t,dismiss:r,update:n}}function Wr(){const[e,t]=lt.useState(Le);return lt.useEffect(()=>(Oe.push(t),()=>{const n=Oe.indexOf(t);n>-1&&Oe.splice(n,1)}),[e]),{...e,toast:Gr,dismiss:n=>Ee({type:"DISMISS_TOAST",toastId:n})}}function qr(e){const{allowFileOpen:t,currentThreadId:n}=e,{fileApi:r}=be(),{toast:o}=Wr(),[s,a]=c.useState({}),[i,d]=c.useState(null),[l,u]=c.useState(!1),p=c.useCallback(()=>{u(!1),d(null)},[]),h=c.useCallback(T=>{d(T),u(!0)},[]),y=c.useCallback(async(T,f,v)=>{var I,E;if(!t){T.preventDefault();return}if(s[v]){T.preventDefault();return}try{const A=String(f.url??""),_=A.match(/\/chat\/files\/([^/]+)(?:\/(view|download))?/);if(_){T.preventDefault();const w=_[1],b=f.name||`file_${w}`,C=f.mimeType||"application/octet-stream";h({id:w,name:b,mimeType:C});return}if(A.startsWith("data:")){T.preventDefault(),a(b=>({...b,[v]:!0}));const w=o({title:"Fetching file...",description:"",open:!0});try{const b=await r.listFiles(n??void 0);if(!b||!Array.isArray(b))throw new Error("Invalid file list response");const C=b.find(g=>!g||typeof g!="object"||!((g.filename??"")===(f.name??""))?!1:typeof f.size=="number"&&typeof g.size=="number"?g.size===f.size:!0);if(!(C!=null&&C.id))throw new Error(`File "${f.name}" is not yet available on the server`);if(!C.id||!C.filename)throw new Error("Invalid file data received from server");h({id:C.id,name:f.name||C.filename||`file_${C.id}`,mimeType:f.mimeType||C.mime_type||"application/octet-stream"}),(I=w.update)==null||I.call(w,{id:w.id,title:"Success",description:`Opened ${f.name}`,open:!0})}catch(b){console.error("Failed to fetch server file:",b);const C=b instanceof Error?b.message:"Unknown error occurred";(E=w.update)==null||E.call(w,{id:w.id,title:"Failed",description:C}),o({title:"Failed to fetch file",description:C,open:!0})}finally{a(b=>({...b,[v]:!1}))}}}catch(A){console.error("File click error:",A),a(_=>({..._,[v]:!1}))}},[t,s,o,n,h]);return{uploadingFiles:s,handleFileClick:y,fileViewerOpen:l,currentFileInfo:i,closeFileViewer:p}}function Jr(e){return c.useMemo(()=>{const t=e;let n=Array.isArray(t.content)?t.content:[];return typeof t.content=="string"&&(n=[{type:"text",text:t.content}]),{contentParts:n,textContent:Mt(n),toolMeta:Et(t),imageParts:n.filter(r=>r.type==="image_url"),fileParts:n.filter(r=>r.type==="file"),toolRaw:wt(n),isToolStreaming:!!t.toolStreaming}},[e])}const Yt="data:";function Xr(e){if(!e)return[];const t=[],n=e.split(/\r?\n/);for(const r of n){const o=r.trim();if(!o||!o.startsWith(Yt))continue;const s=o.slice(Yt.length).trim();if(!s||s.toLowerCase()==="[done]")continue;const a=_e(s);a&&typeof a=="object"&&t.push(a)}return t}function Qr(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(n&&typeof n=="object"&&n.type==="tool.end")return n}return null}function Yr(e){return c.useMemo(()=>{const t=e.content.filter(d=>d.type==="text");if(!t.length)return null;let r=t.flatMap(d=>Xr(d.text??""));if(!r.length){const d=t.map(u=>u.text??"").join(`
8
+ `),l=_e(d);l&&typeof l=="object"&&(r=[l])}if(!r.length)return null;const s=Qr(r)??r[r.length-1];if(!s)return null;const a=s.output??s.payload??s,i=se(a);return i&&typeof i=="object"&&!Array.isArray(i)?{kind:"dict",value:i,data:i,event:s}:{kind:"generic",value:i,event:s}},[e])}function Zt(e){var j;const t=typeof e=="string"?e:e==null?void 0:e.threadId,n=typeof e=="object"?e.lazy:!1,r=je({optional:!0}),o=ot({optional:!0}),s=Fr(),{currentThreadId:a,setCurrentThreadId:i,actions:d}=r||{currentThreadId:null,setCurrentThreadId:()=>{},actions:{}},l=!!t&&t!==a,[u,p]=c.useState([]),h=c.useCallback(F=>{p(F)},[]),{isLoadingThread:y,threadStateError:T,threadCheckpoints:f,loadThread:v}=rt({api:be().chatApi,fileApi:be().fileApi,seed:h,currentThreadId:l?t:null,initialThreadId:l?t:null,isStreaming:!1,getMessages:()=>u,autoLoadInitial:l&&!n});c.useEffect(()=>{!l&&!n&&a&&(o!=null&&o.loadThread)&&o.loadThread(a)},[l,n,a,o==null?void 0:o.loadThread]);const I=c.useMemo(()=>{var F;return((F=f[0])==null?void 0:F.values)||{}},[f]),E=c.useMemo(()=>({timeline:[],messagePreviews:{}}),[]),A=t||a,_=l?y?"loading":"idle":(o==null?void 0:o.status)||"idle",w=l?u:(s==null?void 0:s.messages)||[],b=l?y:(o==null?void 0:o.isLoading)||!1,C=l?I:(o==null?void 0:o.values)||{},g=l?{}:(o==null?void 0:o.taskMessagesByScope)||{},k=l?T:(s==null?void 0:s.error)||(o==null?void 0:o.error)||null;return{threadId:A,status:_,messages:w,isLoading:b,isHistoryLoading:b,error:k,values:C,taskMessagesByScope:g,metadata:l?{}:o==null?void 0:o.metadata,navigateToCheckpoint:l?async()=>{}:(o==null?void 0:o.navigateToCheckpoint)||(async()=>{}),returnToLatest:l?async()=>{}:(o==null?void 0:o.returnToLatest)||(async()=>{}),checkpoint:l?f[0]?{id:f[0].checkpointId,namespace:f[0].checkpointNs}:null:(o==null?void 0:o.checkpoint)||null,checkpoints:l?f:(o==null?void 0:o.checkpoints)||[],checkpointIndex:l?E:(o==null?void 0:o.checkpointIndex)||{timeline:[],messagePreviews:{}},interrupt:l?null:(o==null?void 0:o.interrupt)||null,respondToInterrupt:l?async()=>{}:(o==null?void 0:o.respondToInterrupt)||(async()=>{}),isStreaming:(s==null?void 0:s.isStreaming)||!1,activeMessageId:(s==null?void 0:s.activeMessageId)||null,connectionState:(s==null?void 0:s.connectionState)||"disconnected",streamingAssistantId:!l&&(s!=null&&s.isStreaming)&&((j=o==null?void 0:o.metadata)!=null&&j.assemblingMessageId)?o.metadata.assemblingMessageId:null,submit:(s==null?void 0:s.submit)||(async()=>{}),stop:(s==null?void 0:s.stop)||(()=>{}),clearThread:l?async()=>{}:(o==null?void 0:o.clearThread)||(async()=>{}),setCurrentThreadId:i,loadHistory:l?async()=>{t&&await v(t)}:async()=>{},createThread:d==null?void 0:d.createThread,deleteThread:d==null?void 0:d.deleteThread,renameThread:d==null?void 0:d.renameThread,threads:(r==null?void 0:r.threads)||[],isThreadsLoading:(r==null?void 0:r.isLoading)||!1}}function Zr({submit:e,chatRequest:t,lastCheckpointId:n,lastCheckpointNs:r,onMessageSent:o,onExcelUploadSuccess:s,onError:a,enableMessageEditing:i,messages:d,setPendingAssistantResponse:l,project:u,onEvent:p,threadId:h,clearComposerOnSend:y=!0}){const{messages:T}=Zt(),[f,v]=c.useState(null),[I,E]=c.useState(""),[A,_]=c.useState(null),[w,b]=c.useState(null),[C,g]=c.useState(!1),[k,j]=c.useState(""),F=c.useRef(k),P=c.useRef(null);c.useEffect(()=>{if(!f)if(h){const m=localStorage.getItem(Xe(h));j(m||"")}else j("")},[h,f]);const N=c.useCallback(m=>{j(m),!f&&h&&localStorage.setItem(Xe(h),m)},[h,f]);c.useEffect(()=>{F.current=k},[k]),c.useEffect(()=>{if(!f){P.current=null;return}P.current===null&&(P.current=F.current),N(I??"")},[I,f,N]);const O=c.useCallback(m=>{N(m)},[N]),z=async(m,S)=>{const M=Array.isArray(S)?{files:S}:S??{},G=M.files??[],J=M.contentParts??[],K=m.trim();if(!(!K&&G.length===0&&J.length===0))try{const Z=G.map(async X=>{try{const Y=await St.uploadFile(X);return{file:X,record:Y}}catch(Y){throw console.error("Failed to upload file",X.name,Y),new Error(`Failed to upload ${X.name}`)}}),ue=(await Promise.all(Z)).map(({record:X})=>{const Y=X.mime_type;return Y.startsWith("image/")?{type:"image_url",image_url:{url:X.content_url}}:{type:"file",url:X.content_url,mimeType:Y,name:X.filename,size:X.size}}),W=[...J,...ue],R=f?(A==null?void 0:A.checkpointId)??n??void 0:n??void 0,we=f?(A==null?void 0:A.checkpointNs)??r??void 0:r??void 0;await e({text:K||"",contentParts:W,attachments:G,payload:t.payload,edit:!!f,checkpointId:R,checkpointNs:we,project:u??void 0,originalMessageId:f??void 0,config:t.config},p?{onEvent:p}:void 0),o==null||o(K),l(!0),y&&(h&&localStorage.removeItem(Xe(h)),N("")),b(null),v(null),E(""),_(null)}catch(Z){const re=(Z==null?void 0:Z.message)||"Failed to send message";b(re),a==null||a(re),l(!1)}},V=(m,S)=>{S||z(m,{files:[]})},$=c.useCallback(async m=>{await e({attachments:[m],payload:t.payload,checkpointId:n??void 0,checkpointNs:r??void 0,project:u??void 0,config:t.config},p?{onEvent:p}:void 0),s==null||s({file:m})},[n,r,t,s,e]),L=c.useCallback((m,S,M)=>{i&&(P.current=k,v(m),E(S),_({checkpointId:(M==null?void 0:M.checkpointId)??null,checkpointNs:(M==null?void 0:M.checkpointNs)??null}),b(null))},[k,i]),B=c.useCallback(()=>{v(null),E(""),_(null),b(null);const m=P.current;m!==null&&j(m),P.current=null},[]),q=c.useCallback(m=>{let S=null;for(let K=m-1;K>=0;K--)if(d[K].role==="user"){S=d[K];break}if(!S)return;const M=Array.isArray(S.content)?S.content:[],J=M.filter(K=>(K==null?void 0:K.type)==="text").map(K=>K.text).join("")||(()=>{try{return JSON.stringify(M,null,2)}catch{return String(M)}})();J&&e({text:J,payload:t.payload,checkpointId:n??void 0,checkpointNs:r??void 0,edit:!0,originalMessageId:S.id,config:t.config},p?{onEvent:p}:void 0)},[d,e,n,r,t]);return{editingMessageId:f,editingInitialValue:I,inputError:w,setInputError:b,dismissError:C,setDismissError:g,composerValue:k,handleComposerChange:O,handleSendMessage:z,handleQuickPrompt:V,handleExcelUpload:$,startEditing:L,cancelEditing:B,handleRegenerateCb:q,displayMessages:T}}function Rr(e){return c.useMemo(()=>e?{textContent:Ln(e),imageParts:Bn(e),fileParts:$n(e),toolCalls:bt(e),contentParts:e.content}:{textContent:"",imageParts:[],fileParts:[],toolCalls:[],contentParts:[]},[e])}function eo(e,t,n){const[r,o]=c.useState(e),s=c.useRef(e),a=c.useRef(null);return c.useEffect(()=>{s.current=e;const i=()=>{o(s.current),a.current&&(clearTimeout(a.current),a.current=null)};if(!t||n<=0){i();return}return a.current&&clearTimeout(a.current),a.current=setTimeout(()=>{i()},n),()=>{a.current&&(clearTimeout(a.current),a.current=null)}},[e,t,n]),r}x.ChatProviders=$r,x.ThreadStateProvider=Wt,x.ThreadsProvider=jt,x.cn=jn,x.collectText=Mt,x.createTaskSyncToolEndHandler=Br,x.extractTaskIdFromToolEnd=Xt,x.extractToolMeta=Et,x.formatToolOutput=Vn,x.getAgentNameFromMessage=ur,x.getChatToken=Ye,x.getMessageAttemptInfo=Nr,x.getToolCallArtifacts=Xn,x.getToolCalls=Tt,x.hasContent=Kn,x.hydrateHistorySnapshots=nt,x.isFileLike=He,x.looksLikeMarkdown=yt,x.messageSignature=dr,x.normalizeInterruptId=cr,x.onChatTokenChanged=Ze,x.parseJsonSafe=_e,x.pretty=Ge,x.refreshHistoryFileUrls=$t,x.sanitizeForDisplay=Se,x.setChatToken=ge,x.stringifyTool=wt,x.useApi=be,x.useChatController=Zr,x.useChatSession=Zt,x.useFilePreview=qr,x.useMessageContent=Rr,x.useParsedMessageContent=Jr,x.useStream=Nt,x.useStreamingMarkdownBuffer=eo,x.useThreadHistoryState=rt,x.useThreadState=ot,x.useThreadStateUpdater=Gt,x.useThreads=je,x.useThreadsState=_t,x.useToolPayload=Yr,Object.defineProperty(x,Symbol.toStringTag,{value:"Module"})});
9
9
  //# sourceMappingURL=index.umd.js.map