@teodorruskvi/chat-core 0.1.56 → 0.1.59

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