@waniwani/sdk 0.10.9-beta.1 → 0.10.9-beta.2

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.
@@ -118,7 +118,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
118
118
  `)},zy=e=>{let t=!1;for(let n of e)if(n==="\\"||n==="|"){t=!0;break}if(!t)return e;let a=[];for(let n of e)n==="\\"?a.push("\\\\"):n==="|"?a.push("\\|"):a.push(n);return a.join("")},nz=e=>{let{headers:t,rows:a}=e;if(t.length===0)return"";let n=new Array(a.length+2),r=0,o=t.map(i=>zy(i));n[r]=`| ${o.join(" | ")} |`,r+=1;let l=new Array(t.length);for(let i=0;i<t.length;i+=1)l[i]="---";n[r]=`| ${l.join(" | ")} |`,r+=1;for(let i of a)if(i.length<t.length){let s=new Array(t.length);for(let u=0;u<t.length;u+=1)s[u]=u<i.length?zy(i[u]):"";n[r]=`| ${s.join(" | ")} |`,r+=1}else{let s=i.map(u=>zy(u));n[r]=`| ${s.join(" | ")} |`,r+=1}return n.join(`
119
119
  `)},rz=({children:e,className:t,onCopy:a,onError:n,timeout:r=2e3})=>{let[o,l]=(0,E.useState)(!1),[i,s]=(0,E.useState)(!1),u=(0,E.useRef)(null),c=(0,E.useRef)(0),{isAnimating:d}=(0,E.useContext)(Wt),f=async y=>{var v,S;if(typeof window>"u"||!((v=navigator?.clipboard)!=null&&v.write)){n?.(new Error("Clipboard API not available"));return}try{let g=(S=u.current)==null?void 0:S.closest('[data-streamdown="table-wrapper"]'),x=g?.querySelector("table");if(!x){n?.(new Error("Table not found"));return}let m=zM(x),w=y==="csv"?qM(m):az(m),L=new ClipboardItem({"text/plain":new Blob([w],{type:"text/plain"}),"text/html":new Blob([x.outerHTML],{type:"text/html"})});await navigator.clipboard.write([L]),s(!0),l(!1),a?.(y),c.current=window.setTimeout(()=>s(!1),r)}catch(g){n?.(g)}};(0,E.useEffect)(()=>{let y=v=>{let S=v.composedPath();u.current&&!S.includes(u.current)&&l(!1)};return document.addEventListener("mousedown",y),()=>{document.removeEventListener("mousedown",y),window.clearTimeout(c.current)}},[]);let p=i?Vy:Gy;return(0,M.jsxs)("div",{className:"relative",ref:u,children:[(0,M.jsx)("button",{className:Y("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:d,onClick:()=>l(!o),title:"Copy table",type:"button",children:e??(0,M.jsx)(p,{size:14})}),o?(0,M.jsxs)("div",{className:"absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg",children:[(0,M.jsx)("button",{className:"w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40",onClick:()=>f("csv"),title:"Copy table as CSV",type:"button",children:"CSV"}),(0,M.jsx)("button",{className:"w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40",onClick:()=>f("tsv"),title:"Copy table as TSV",type:"button",children:"TSV"})]}):null]})},oz=({children:e,className:t,onDownload:a,onError:n})=>{let[r,o]=(0,E.useState)(!1),l=(0,E.useRef)(null),{isAnimating:i}=(0,E.useContext)(Wt),s=u=>{var c;try{let d=(c=l.current)==null?void 0:c.closest('[data-streamdown="table-wrapper"]'),f=d?.querySelector("table");if(!f){n?.(new Error("Table not found"));return}let p=zM(f),y=u==="csv"?qM(p):nz(p);ql(`table.${u==="csv"?"csv":"md"}`,y,u==="csv"?"text/csv":"text/markdown"),o(!1),a?.(u)}catch(d){n?.(d)}};return(0,E.useEffect)(()=>{let u=c=>{let d=c.composedPath();l.current&&!d.includes(l.current)&&o(!1)};return document.addEventListener("mousedown",u),()=>{document.removeEventListener("mousedown",u)}},[]),(0,M.jsxs)("div",{className:"relative",ref:l,children:[(0,M.jsx)("button",{className:Y("cursor-pointer p-1 text-muted-foreground transition-all hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",t),disabled:i,onClick:()=>o(!r),title:"Download table",type:"button",children:e??(0,M.jsx)(Yd,{size:14})}),r?(0,M.jsxs)("div",{className:"absolute top-full right-0 z-10 mt-1 min-w-[120px] overflow-hidden rounded-md border border-border bg-background shadow-lg",children:[(0,M.jsx)("button",{className:"w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40",onClick:()=>s("csv"),title:"Download table as CSV",type:"button",children:"CSV"}),(0,M.jsx)("button",{className:"w-full px-3 py-2 text-left text-sm transition-colors hover:bg-muted/40",onClick:()=>s("markdown"),title:"Download table as Markdown",type:"button",children:"Markdown"})]}):null]})},lz=({children:e,className:t,showControls:a,...n})=>(0,M.jsxs)("div",{className:"my-4 flex flex-col space-y-2","data-streamdown":"table-wrapper",children:[a?(0,M.jsxs)("div",{className:"flex items-center justify-end gap-1",children:[(0,M.jsx)(rz,{}),(0,M.jsx)(oz,{})]}):null,(0,M.jsx)("div",{className:"overflow-x-auto",children:(0,M.jsx)("table",{className:Y("w-full border-collapse border border-border",t),"data-streamdown":"table",...n,children:e})})]}),iz=(0,E.lazy)(()=>Promise.resolve().then(()=>(LM(),IM)).then(e=>({default:e.CodeBlock}))),sz=(0,E.lazy)(()=>Promise.resolve().then(()=>(MM(),TM)).then(e=>({default:e.Mermaid}))),uz=/language-([^\s]+)/;jy=(e,t)=>typeof e=="boolean"?e:e[t]!==!1,Qd=(e,t)=>{if(typeof e=="boolean")return e;let a=e.mermaid;return a===!1?!1:a===!0||a===void 0?!0:a[t]!==!1},$y=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("ol",{className:Y("list-inside list-decimal whitespace-normal [li_&]:pl-6",t),"data-streamdown":"ordered-list",...n,children:e}),(e,t)=>nt(e,t));$y.displayName="MarkdownOl";FM=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("li",{className:Y("py-1 [&>p]:inline",t),"data-streamdown":"list-item",...n,children:e}),(e,t)=>e.className===t.className&&Jd(e.node,t.node));FM.displayName="MarkdownLi";HM=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("ul",{className:Y("list-inside list-disc whitespace-normal [li_&]:pl-6",t),"data-streamdown":"unordered-list",...n,children:e}),(e,t)=>nt(e,t));HM.displayName="MarkdownUl";jM=(0,E.memo)(({className:e,node:t,...a})=>(0,M.jsx)("hr",{className:Y("my-6 border-border",e),"data-streamdown":"horizontal-rule",...a}),(e,t)=>nt(e,t));jM.displayName="MarkdownHr";VM=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("span",{className:Y("font-semibold",t),"data-streamdown":"strong",...n,children:e}),(e,t)=>nt(e,t));VM.displayName="MarkdownStrong";cz=({children:e,className:t,href:a,node:n,...r})=>{let{linkSafety:o}=(0,E.useContext)(Wt),[l,i]=(0,E.useState)(!1),s=a==="streamdown:incomplete-link",u=(0,E.useCallback)(async p=>{if(!(!(o!=null&&o.enabled&&a)||s)){if(p.preventDefault(),o.onLinkCheck&&await o.onLinkCheck(a)){window.open(a,"_blank","noreferrer");return}i(!0)}},[o,a,s]),c=(0,E.useCallback)(()=>{a&&window.open(a,"_blank","noreferrer")},[a]),d=(0,E.useCallback)(()=>{i(!1)},[]),f={url:a??"",isOpen:l,onClose:d,onConfirm:c};return o!=null&&o.enabled&&a?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)("button",{className:Y("wrap-anywhere appearance-none text-left font-medium text-primary underline",t),"data-incomplete":s,"data-streamdown":"link",onClick:u,type:"button",children:e}),o.renderModal?o.renderModal(f):(0,M.jsx)(QU,{...f})]}):(0,M.jsx)("a",{className:Y("wrap-anywhere font-medium text-primary underline",t),"data-incomplete":s,"data-streamdown":"link",href:a,rel:"noreferrer",target:"_blank",...r,children:e})},GM=(0,E.memo)(cz,(e,t)=>nt(e,t)&&e.href===t.href);GM.displayName="MarkdownA";WM=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("h1",{className:Y("mt-6 mb-2 font-semibold text-3xl",t),"data-streamdown":"heading-1",...n,children:e}),(e,t)=>nt(e,t));WM.displayName="MarkdownH1";$M=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("h2",{className:Y("mt-6 mb-2 font-semibold text-2xl",t),"data-streamdown":"heading-2",...n,children:e}),(e,t)=>nt(e,t));$M.displayName="MarkdownH2";XM=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("h3",{className:Y("mt-6 mb-2 font-semibold text-xl",t),"data-streamdown":"heading-3",...n,children:e}),(e,t)=>nt(e,t));XM.displayName="MarkdownH3";ZM=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("h4",{className:Y("mt-6 mb-2 font-semibold text-lg",t),"data-streamdown":"heading-4",...n,children:e}),(e,t)=>nt(e,t));ZM.displayName="MarkdownH4";QM=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("h5",{className:Y("mt-6 mb-2 font-semibold text-base",t),"data-streamdown":"heading-5",...n,children:e}),(e,t)=>nt(e,t));QM.displayName="MarkdownH5";KM=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("h6",{className:Y("mt-6 mb-2 font-semibold text-sm",t),"data-streamdown":"heading-6",...n,children:e}),(e,t)=>nt(e,t));KM.displayName="MarkdownH6";YM=(0,E.memo)(({children:e,className:t,node:a,...n})=>{let{controls:r}=(0,E.useContext)(Wt),o=jy(r,"table");return(0,M.jsx)(lz,{className:t,showControls:o,...n,children:e})},(e,t)=>nt(e,t));YM.displayName="MarkdownTable";JM=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("thead",{className:Y("bg-muted/80",t),"data-streamdown":"table-header",...n,children:e}),(e,t)=>nt(e,t));JM.displayName="MarkdownThead";eA=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("tbody",{className:Y("divide-y divide-border bg-muted/40",t),"data-streamdown":"table-body",...n,children:e}),(e,t)=>nt(e,t));eA.displayName="MarkdownTbody";tA=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("tr",{className:Y("border-border border-b",t),"data-streamdown":"table-row",...n,children:e}),(e,t)=>nt(e,t));tA.displayName="MarkdownTr";aA=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("th",{className:Y("whitespace-nowrap px-4 py-2 text-left font-semibold text-sm",t),"data-streamdown":"table-header-cell",...n,children:e}),(e,t)=>nt(e,t));aA.displayName="MarkdownTh";nA=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("td",{className:Y("px-4 py-2 text-sm",t),"data-streamdown":"table-cell",...n,children:e}),(e,t)=>nt(e,t));nA.displayName="MarkdownTd";rA=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("blockquote",{className:Y("my-4 border-muted-foreground/30 border-l-4 pl-4 text-muted-foreground italic",t),"data-streamdown":"blockquote",...n,children:e}),(e,t)=>nt(e,t));rA.displayName="MarkdownBlockquote";oA=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("sup",{className:Y("text-sm",t),"data-streamdown":"superscript",...n,children:e}),(e,t)=>nt(e,t));oA.displayName="MarkdownSup";lA=(0,E.memo)(({children:e,className:t,node:a,...n})=>(0,M.jsx)("sub",{className:Y("text-sm",t),"data-streamdown":"subscript",...n,children:e}),(e,t)=>nt(e,t));lA.displayName="MarkdownSub";iA=(0,E.memo)(({children:e,className:t,node:a,...n})=>{if("data-footnotes"in n){let r=l=>{var i,s;if(!(0,E.isValidElement)(l))return!1;let u=Array.isArray(l.props.children)?l.props.children:[l.props.children],c=!1,d=!1;for(let f of u)if(f){if(typeof f=="string")f.trim()!==""&&(c=!0);else if((0,E.isValidElement)(f))if(((i=f.props)==null?void 0:i["data-footnote-backref"])!==void 0)d=!0;else{let p=Array.isArray(f.props.children)?f.props.children:[f.props.children];for(let y of p){if(typeof y=="string"&&y.trim()!==""){c=!0;break}if((0,E.isValidElement)(y)&&((s=y.props)==null?void 0:s["data-footnote-backref"])===void 0){c=!0;break}}}}return d&&!c},o=Array.isArray(e)?e.map(l=>{if(!(0,E.isValidElement)(l))return l;if(l.type===$y){let i=(Array.isArray(l.props.children)?l.props.children:[l.props.children]).filter(s=>!r(s));return i.length===0?null:{...l,props:{...l.props,children:i}}}return l}):e;return(Array.isArray(o)?o.some(l=>l!==null):o!==null)?(0,M.jsx)("section",{className:t,...n,children:o}):null}return(0,M.jsx)("section",{className:t,...n,children:e})},(e,t)=>nt(e,t));iA.displayName="MarkdownSection";dz=({node:e,className:t,children:a,...n})=>{var r,o,l;let i=((r=e?.position)==null?void 0:r.start.line)===((o=e?.position)==null?void 0:o.end.line),{mermaid:s,controls:u}=(0,E.useContext)(Wt),c=Wy();if(i)return(0,M.jsx)("code",{className:Y("rounded bg-muted px-1.5 py-0.5 font-mono text-sm",t),"data-streamdown":"inline-code",...n,children:a});let d=t?.match(uz),f=(l=d?.at(1))!=null?l:"",p="";if((0,E.isValidElement)(a)&&a.props&&typeof a.props=="object"&&"children"in a.props&&typeof a.props.children=="string"?p=a.props.children:typeof a=="string"&&(p=a),f==="mermaid"&&c){let v=jy(u,"mermaid"),S=Qd(u,"download"),g=Qd(u,"copy"),x=Qd(u,"fullscreen"),m=Qd(u,"panZoom"),w=v&&(S||g||x);return(0,M.jsx)(E.Suspense,{fallback:(0,M.jsx)(DM,{}),children:(0,M.jsxs)("div",{className:Y("group relative my-4 h-auto rounded-xl border p-4",t),"data-streamdown":"mermaid-block",children:[w?(0,M.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[S?(0,M.jsx)(YU,{chart:p,config:s?.config}):null,g?(0,M.jsx)(EM,{code:p}):null,x?(0,M.jsx)(tz,{chart:p,config:s?.config}):null]}):null,(0,M.jsx)(sz,{chart:p,config:s?.config,showControls:m})]})})}let y=jy(u,"code");return(0,M.jsx)(E.Suspense,{fallback:(0,M.jsx)(DM,{}),children:(0,M.jsx)(iz,{className:Y("overflow-x-auto border-border border-t",t),code:p,language:f,children:y?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(GU,{code:p,language:f}),(0,M.jsx)(EM,{})]}):null})})},sA=(0,E.memo)(dz,(e,t)=>e.className===t.className&&Jd(e.node,t.node));sA.displayName="MarkdownCode";uA=(0,E.memo)($U,(e,t)=>e.className===t.className&&Jd(e.node,t.node));uA.displayName="MarkdownImg";cA=(0,E.memo)(({children:e,className:t,node:a,...n})=>{var r,o;let l=(Array.isArray(e)?e:[e]).filter(i=>i!=null&&i!=="");if(l.length===1&&(0,E.isValidElement)(l[0])){let i=l[0].props.node,s=i?.tagName;if(s==="img")return(0,M.jsx)(M.Fragment,{children:e});if(s==="code"&&((r=i?.position)==null?void 0:r.start.line)!==((o=i?.position)==null?void 0:o.end.line))return(0,M.jsx)(M.Fragment,{children:e})}return(0,M.jsx)("p",{className:t,...n,children:e})},(e,t)=>nt(e,t));cA.displayName="MarkdownParagraph";fz={ol:$y,li:FM,ul:HM,hr:jM,strong:VM,a:GM,h1:WM,h2:$M,h3:XM,h4:ZM,h5:QM,h6:KM,table:YM,thead:JM,tbody:eA,tr:tA,th:aA,td:nA,blockquote:rA,code:sA,img:uA,pre:({children:e})=>e,sup:oA,sub:lA,p:cA,section:iA},_M=[],OM={allowDangerousHtml:!0},Kd=new WeakMap,pz=class{constructor(){this.cache=new Map,this.keyCache=new WeakMap,this.maxSize=100}generateCacheKey(e){let t=this.keyCache.get(e);if(t)return t;let a=e.rehypePlugins,n=e.remarkPlugins,r=e.remarkRehypeOptions;if(!(a||n||r)){let c="default";return this.keyCache.set(e,c),c}let o=c=>{if(!c||c.length===0)return"";let d="";for(let f=0;f<c.length;f+=1){let p=c[f];if(f>0&&(d+=","),Array.isArray(p)){let[y,v]=p;if(typeof y=="function"){let S=Kd.get(y);S||(S=y.name,Kd.set(y,S)),d+=S}else d+=String(y);d+=":",d+=JSON.stringify(v)}else if(typeof p=="function"){let y=Kd.get(p);y||(y=p.name,Kd.set(p,y)),d+=y}else d+=String(p)}return d},l=o(a),i=o(n),s=r?JSON.stringify(r):"",u=`${i}::${l}::${s}`;return this.keyCache.set(e,u),u}get(e){let t=this.generateCacheKey(e),a=this.cache.get(t);return a&&(this.cache.delete(t),this.cache.set(t,a)),a}set(e,t){let a=this.generateCacheKey(e);if(this.cache.size>=this.maxSize){let n=this.cache.keys().next().value;n&&this.cache.delete(n)}this.cache.set(a,t)}clear(){this.cache.clear()}},PM=new pz,dA=e=>{let t=mz(e),a=e.children||"";return gz(t.runSync(t.parse(a),a),e)},mz=e=>{let t=PM.get(e);if(t)return t;let a=hz(e);return PM.set(e,a),a},hz=e=>{let t=e.rehypePlugins||_M,a=e.remarkPlugins||_M,n=e.remarkRehypeOptions?{...OM,...e.remarkRehypeOptions}:OM;return Iy().use(Od).use(a).use(Ud,n).use(t)},gz=(e,t)=>ny(e,{Fragment:M.Fragment,components:t.components,ignoreInvalidStyle:!0,jsx:M.jsx,jsxs:M.jsxs,passKeys:!0,passNode:!0}),yz=/\[\^[^\]\s]{1,200}\](?!:)/,xz=/\[\^[^\]\s]{1,200}\]:/,vz=/<\/(\w+)>/,wz=/<(\w+)[\s>]/,qy=e=>{let t=0;for(;t<e.length&&(e[t]===" "||e[t]===" "||e[t]===`
120
120
  `||e[t]==="\r");)t+=1;return t+1<e.length&&e[t]==="$"&&e[t+1]==="$"},bz=e=>{let t=e.length-1;for(;t>=0&&(e[t]===" "||e[t]===" "||e[t]===`
121
- `||e[t]==="\r");)t-=1;return t>=1&&e[t]==="$"&&e[t-1]==="$"},Fy=e=>{let t=0;for(let a=0;a<e.length-1;a+=1)e[a]==="$"&&e[a+1]==="$"&&(t+=1,a+=1);return t},fA=e=>{let t=yz.test(e),a=xz.test(e);if(t||a)return[e];let n=xa.lex(e,{gfm:!0}),r=[],o=[];for(let l of n){let i=l.raw,s=r.length;if(o.length>0){if(r[s-1]+=i,l.type==="html"){let u=i.match(vz);if(u){let c=u[1];o.at(-1)===c&&o.pop()}}continue}if(l.type==="html"&&l.block){let u=i.match(wz);if(u){let c=u[1];i.includes(`</${c}>`)||o.push(c)}}if(i.trim()==="$$"&&s>0){let u=r[s-1],c=qy(u),d=Fy(u);if(c&&d%2===1){r[s-1]=u+i;continue}}if(s>0&&bz(i)){let u=r[s-1],c=qy(u),d=Fy(u),f=Fy(i);if(c&&d%2===1&&!qy(i)&&f===1){r[s-1]=u+i;continue}}r.push(i)}return r},pA={raw:WC,sanitize:[ed,{}],harden:[VC,{allowedImagePrefixes:["*"],allowedLinkPrefixes:["*"],allowedProtocols:["*"],defaultOrigin:void 0,allowDataImages:!0}]},mA={gfm:[Ld,{}]},Sz=Object.values(pA),Cz=Object.values(mA),Iz={block:" \u258B",circle:" \u25CF"},Lz={shikiTheme:["github-light","github-dark"],controls:!0,isAnimating:!1,mode:"streaming",mermaid:void 0,linkSafety:{enabled:!0}},Wt=(0,E.createContext)(Lz),Xy=(0,E.memo)(({content:e,shouldParseIncompleteMarkdown:t,index:a,...n})=>(0,M.jsx)(dA,{...n,children:e}),(e,t)=>{if(e.content!==t.content||e.index!==t.index)return!1;if(e.components!==t.components){let a=Object.keys(e.components||{}),n=Object.keys(t.components||{});if(a.length!==n.length||a.some(r=>{var o,l;return((o=e.components)==null?void 0:o[r])!==((l=t.components)==null?void 0:l[r])}))return!1}return!(e.rehypePlugins!==t.rehypePlugins||e.remarkPlugins!==t.remarkPlugins)});Xy.displayName="Block";kz=["github-light","github-dark"],ef=(0,E.memo)(({children:e,mode:t="streaming",parseIncompleteMarkdown:a=!0,components:n,rehypePlugins:r=Sz,remarkPlugins:o=Cz,className:l,shikiTheme:i=kz,mermaid:s,controls:u=!0,isAnimating:c=!1,BlockComponent:d=Xy,parseMarkdownIntoBlocksFn:f=fA,caret:p,plugins:y,remend:v,linkSafety:S={enabled:!0},...g})=>{let x=(0,E.useId)(),[m,w]=(0,E.useTransition)(),L=(0,E.useMemo)(()=>typeof e!="string"?"":t==="streaming"&&a?rL(e,v):e,[e,t,a,v]),b=(0,E.useMemo)(()=>f(L),[L,f]),[A,R]=(0,E.useState)(b);(0,E.useEffect)(()=>{t==="streaming"?w(()=>{R(b)}):R(b)},[b,t]);let _=t==="streaming"?A:b,T=(0,E.useMemo)(()=>_.map((F,te)=>`${x}-${te}`),[_.length,x]),D=(0,E.useMemo)(()=>{var F,te;return{shikiTheme:(te=(F=y?.code)==null?void 0:F.getThemes())!=null?te:i,controls:u,isAnimating:c,mode:t,mermaid:s,linkSafety:S}},[i,u,c,t,s,S,y?.code]),N=(0,E.useMemo)(()=>({...fz,...n}),[n]),B=(0,E.useMemo)(()=>{let F=[];return y!=null&&y.cjk&&(F=[...F,...y.cjk.remarkPluginsBefore]),F=[...F,...o],y!=null&&y.cjk&&(F=[...F,...y.cjk.remarkPluginsAfter]),y!=null&&y.math&&(F=[...F,y.math.remarkPlugin]),F},[o,y?.math,y?.cjk]),j=(0,E.useMemo)(()=>y!=null&&y.math?[...r,y.math.rehypePlugin]:r,[r,y?.math]),V=(0,E.useMemo)(()=>p&&c?{"--streamdown-caret":`"${Iz[p]}"`}:void 0,[p,c]);return t==="static"?(0,M.jsx)(Hy.Provider,{value:y??null,children:(0,M.jsx)(Wt.Provider,{value:D,children:(0,M.jsx)("div",{className:Y("space-y-4 whitespace-normal *:first:mt-0 *:last:mb-0",l),children:(0,M.jsx)(dA,{components:N,rehypePlugins:j,remarkPlugins:B,...g,children:e})})})}):(0,M.jsx)(Hy.Provider,{value:y??null,children:(0,M.jsx)(Wt.Provider,{value:D,children:(0,M.jsxs)("div",{className:Y("space-y-4 whitespace-normal *:first:mt-0 *:last:mb-0",p?"*:last:after:inline *:last:after:align-baseline *:last:after:content-(--streamdown-caret)":null,l),style:V,children:[_.length===0&&p&&c&&(0,M.jsx)("span",{}),_.map((F,te)=>(0,M.jsx)(d,{components:N,content:F,index:te,rehypePlugins:j,remarkPlugins:B,shouldParseIncompleteMarkdown:a,...g},T[te]))]})})})},(e,t)=>e.children===t.children&&e.shikiTheme===t.shikiTheme&&e.isAnimating===t.isAnimating&&e.mode===t.mode&&e.plugins===t.plugins&&e.className===t.className&&e.linkSafety===t.linkSafety);ef.displayName="Streamdown";Tz=({children:e,className:t,minZoom:a=.5,maxZoom:n=3,zoomStep:r=.1,showControls:o=!0,initialZoom:l=1,fullscreen:i=!1})=>{let s=(0,E.useRef)(null),u=(0,E.useRef)(null),[c,d]=(0,E.useState)(l),[f,p]=(0,E.useState)({x:0,y:0}),[y,v]=(0,E.useState)(!1),[S,g]=(0,E.useState)({x:0,y:0}),[x,m]=(0,E.useState)({x:0,y:0}),w=(0,E.useCallback)(N=>{d(B=>Math.max(a,Math.min(n,B+N)))},[a,n]),L=(0,E.useCallback)(()=>{w(r)},[w,r]),b=(0,E.useCallback)(()=>{w(-r)},[w,r]),A=(0,E.useCallback)(()=>{d(l),p({x:0,y:0})},[l]),R=(0,E.useCallback)(N=>{N.preventDefault();let B=N.deltaY>0?-r:r;w(B)},[w,r]),_=(0,E.useCallback)(N=>{if(N.button!==0||N.isPrimary===!1)return;v(!0),g({x:N.clientX,y:N.clientY}),m(f);let B=N.currentTarget;B instanceof HTMLElement&&B.setPointerCapture(N.pointerId)},[f]),T=(0,E.useCallback)(N=>{if(!y)return;N.preventDefault();let B=N.clientX-S.x,j=N.clientY-S.y;p({x:x.x+B,y:x.y+j})},[y,S,x]),D=(0,E.useCallback)(N=>{v(!1);let B=N.currentTarget;B instanceof HTMLElement&&B.releasePointerCapture(N.pointerId)},[]);return(0,E.useEffect)(()=>{let N=s.current;if(N)return N.addEventListener("wheel",R,{passive:!1}),()=>{N.removeEventListener("wheel",R)}},[R]),(0,E.useEffect)(()=>{let N=u.current;if(N&&y)return document.body.style.userSelect="none",N.addEventListener("pointermove",T,{passive:!1}),N.addEventListener("pointerup",D),N.addEventListener("pointercancel",D),()=>{document.body.style.userSelect="",N.removeEventListener("pointermove",T),N.removeEventListener("pointerup",D),N.removeEventListener("pointercancel",D)}},[y,T,D]),(0,M.jsxs)("div",{className:Y("relative flex flex-col",i?"h-full w-full":"min-h-28 w-full",t),ref:s,style:{cursor:y?"grabbing":"grab"},children:[o?(0,M.jsxs)("div",{className:Y("absolute z-10 flex flex-col gap-1 rounded-md border border-border bg-background/90 p-1 shadow-sm backdrop-blur-sm",i?"bottom-4 left-4":"bottom-2 left-2"),children:[(0,M.jsx)("button",{className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",disabled:c>=n,onClick:L,title:"Zoom in",type:"button",children:(0,M.jsx)(jU,{size:16})}),(0,M.jsx)("button",{className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",disabled:c<=a,onClick:b,title:"Zoom out",type:"button",children:(0,M.jsx)(VU,{size:16})}),(0,M.jsx)("button",{className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",onClick:A,title:"Reset zoom and pan",type:"button",children:(0,M.jsx)(HU,{size:16})})]}):null,(0,M.jsx)("div",{className:Y("flex-1 origin-center transition-transform duration-150 ease-out",i?"flex h-full w-full items-center justify-center":"flex w-full items-center justify-center"),onPointerDown:_,ref:u,role:"application",style:{transform:`translate(${f.x}px, ${f.y}px) scale(${c})`,transformOrigin:"center center",touchAction:"none",willChange:"transform"},children:e})]})},Uy=({chart:e,className:t,config:a,fullscreen:n=!1,showControls:r=!0})=>{let[o,l]=(0,E.useState)(null),[i,s]=(0,E.useState)(!1),[u,c]=(0,E.useState)(""),[d,f]=(0,E.useState)(""),[p,y]=(0,E.useState)(0),{mermaid:v}=(0,E.useContext)(Wt),S=Wy(),g=v?.errorComponent,{shouldRender:x,containerRef:m}=zU({immediate:n});if((0,E.useEffect)(()=>{if(x){if(!S){l("Mermaid plugin not available. Please add the mermaid plugin to enable diagram rendering.");return}(async()=>{try{l(null),s(!0);let L=S.getMermaid(a),b=e.split("").reduce((_,T)=>(_<<5)-_+T.charCodeAt(0)|0,0),A=`mermaid-${Math.abs(b)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:R}=await L.render(A,e);c(R),f(R)}catch(L){if(!(d||u)){let b=L instanceof Error?L.message:"Failed to render Mermaid chart";l(b)}}finally{s(!1)}})()}},[e,a,p,x,S]),!(x||u||d))return(0,M.jsx)("div",{className:Y("my-4 min-h-[200px]",t),ref:m});if(i&&!u&&!d)return(0,M.jsx)("div",{className:Y("my-4 flex justify-center p-4",t),ref:m,children:(0,M.jsxs)("div",{className:"flex items-center space-x-2 text-muted-foreground",children:[(0,M.jsx)("div",{className:"h-4 w-4 animate-spin rounded-full border-current border-b-2"}),(0,M.jsx)("span",{className:"text-sm",children:"Loading diagram..."})]})});if(o&&!u&&!d)return g?(0,M.jsx)("div",{ref:m,children:(0,M.jsx)(g,{chart:e,error:o,retry:()=>y(b=>b+1)})}):(0,M.jsxs)("div",{className:Y("rounded-lg border border-red-200 bg-red-50 p-4",t),ref:m,children:[(0,M.jsxs)("p",{className:"font-mono text-red-700 text-sm",children:["Mermaid Error: ",o]}),(0,M.jsxs)("details",{className:"mt-2",children:[(0,M.jsx)("summary",{className:"cursor-pointer text-red-600 text-xs",children:"Show Code"}),(0,M.jsx)("pre",{className:"mt-2 overflow-x-auto rounded bg-red-100 p-2 text-red-800 text-xs",children:e})]})]});let w=u||d;return(0,M.jsx)("div",{className:Y("size-full",t),"data-streamdown":"mermaid",ref:m,children:(0,M.jsx)(Tz,{className:Y(n?"size-full overflow-hidden":"my-4 overflow-hidden",t),fullscreen:n,maxZoom:3,minZoom:.5,showControls:r,zoomStep:.1,children:(0,M.jsx)("div",{"aria-label":"Mermaid chart",className:Y("flex justify-center",n?"size-full items-center":null),dangerouslySetInnerHTML:{__html:w},role:"img"})})})}});var g2=Ot((HJ,h2)=>{"use strict";function QF(e,t){if(typeof e!="function")throw new TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let a,n=0;return function(...o){clearTimeout(a);let l=Date.now(),i=l-n,s=t-i;s<=0?(n=l,e.apply(this,o)):a=setTimeout(()=>{n=Date.now(),e.apply(this,o)},s)}}h2.exports=QF});var au=q(xe(),1),xx=q(uC(),1);var U_="https://app.waniwani.ai/api/mcp/chat",z_={api:U_,title:"Assistant",position:"bottom-right",width:400,height:600};function q_(){if(document.currentScript instanceof HTMLScriptElement)return document.currentScript;let e=document.querySelectorAll("script[src]");for(let t of e)if(t instanceof HTMLScriptElement&&/embed/i.test(t.src))return t;return null}function Pc(){let e=q_();if(!e)return{};let t=L=>e.getAttribute(L)??void 0,a=L=>{let b=e.getAttribute(L);if(b==null)return;let A=Number(b);return Number.isFinite(A)?A:void 0},n={},r=t("data-api");r&&(n.api=r);let o=t("data-token");o&&(n.token=o);let l=t("data-title");l&&(n.title=l);let i=t("data-welcome-message");i&&(n.welcomeMessage=i);let s=t("data-placeholder");s&&(n.placeholder=s);let u=t("data-mcp-server-url");u&&(n.mcpServerUrl=u);let c=t("data-css");c&&(n.css=c);let d=t("data-suggestions");d&&(n.suggestions=d.split(",").map(L=>L.trim()).filter(Boolean));let f=t("data-position");(f==="bottom-right"||f==="bottom-left")&&(n.position=f);let p=t("data-mode");(p==="floating"||p==="custom"||p==="inline")&&(n.mode=p);let y=t("data-layout");(y==="card"||y==="bar"||y==="embed")&&(n.layout=y);let v=a("data-width");v&&(n.width=v);let S=a("data-height");S&&(n.height=S);let g=t("data-primary-color"),x=t("data-background-color"),m=t("data-text-color"),w=t("data-font-family");return(g||x||m||w)&&(n.theme={},g&&(n.theme.primaryColor=g),x&&(n.theme.backgroundColor=x),m&&(n.theme.textColor=m),w&&(n.theme.fontFamily=w)),n}function Nc(e,t,a){let n=a??Pc(),r={token:"",...z_,...t??{},...n,...e,theme:{...t?.theme??{},...n.theme,...e?.theme}};if(!r.token)throw new Error("[WaniWani] Missing required config: `token`. Set data-token on the script tag or pass it to WaniWani.chat.init().");return r.mode||(r.mode="inline"),r}function Bc(e){if(!e.theme)return;let t=e.theme;return{...t.primaryColor?{primaryColor:t.primaryColor}:{},...t.backgroundColor?{backgroundColor:t.backgroundColor}:{},...t.textColor?{textColor:t.textColor}:{},...t.fontFamily?{fontFamily:t.fontFamily}:{}}}var ct=q(xe(),1);var Ut=q(xe(),1);var zc=q(xe());var Uc=(...e)=>e.filter((t,a,n)=>!!t&&t.trim()!==""&&n.indexOf(t)===a).join(" ").trim();var cC=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var dC=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,a,n)=>n?n.toUpperCase():a.toLowerCase());var fh=e=>{let t=dC(e);return t.charAt(0).toUpperCase()+t.slice(1)};var os=q(xe());var fC={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var pC=e=>{for(let t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1};var mC=(0,os.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:n,className:r="",children:o,iconNode:l,...i},s)=>(0,os.createElement)("svg",{ref:s,...fC,width:t,height:t,stroke:e,strokeWidth:n?Number(a)*24/Number(t):a,className:Uc("lucide",r),...!o&&!pC(i)&&{"aria-hidden":"true"},...i},[...l.map(([u,c])=>(0,os.createElement)(u,c)),...Array.isArray(o)?o:[o]]));var Ye=(e,t)=>{let a=(0,zc.forwardRef)(({className:n,...r},o)=>(0,zc.createElement)(mC,{ref:o,iconNode:t,className:Uc(`lucide-${cC(fh(e))}`,`lucide-${e}`,n),...r}));return a.displayName=fh(e),a};var F_=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],ls=Ye("arrow-down",F_);var H_=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],is=Ye("arrow-up",H_);var j_=[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]],yr=Ye("braces",j_);var V_=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],ss=Ye("check",V_);var G_=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],us=Ye("chevron-down",G_);var W_=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],cs=Ye("chevron-right",W_);var $_=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]],ds=Ye("clipboard-copy",$_);var X_=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]],fs=Ye("file",X_);var Z_=[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]],ps=Ye("loader",Z_);var Q_=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],ms=Ye("paperclip",Q_);var K_=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],hs=Ye("square",K_);var Y_=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],no=Ye("x",Y_);var IC=q(xe(),1);var _t=q(xe(),1);var J_={damping:.7,stiffness:.05,mass:1.25},eO=70,tO=1e3/60,aO=350,qc=!1;globalThis.document?.addEventListener("mousedown",()=>{qc=!0});globalThis.document?.addEventListener("mouseup",()=>{qc=!1});globalThis.document?.addEventListener("click",()=>{qc=!1});var gC=(e={})=>{let[t,a]=(0,_t.useState)(!1),[n,r]=(0,_t.useState)(e.initial!==!1),[o,l]=(0,_t.useState)(!1),i=(0,_t.useRef)(null);i.current=e;let s=(0,_t.useCallback)(()=>{if(!qc)return!1;let x=window.getSelection();if(!x||!x.rangeCount)return!1;let m=x.getRangeAt(0);return m.commonAncestorContainer.contains(S.current)||S.current?.contains(m.commonAncestorContainer)},[]),u=(0,_t.useCallback)(x=>{d.isAtBottom=x,r(x)},[]),c=(0,_t.useCallback)(x=>{d.escapedFromLock=x,a(x)},[]),d=(0,_t.useMemo)(()=>{let x;return{escapedFromLock:t,isAtBottom:n,resizeDifference:0,accumulated:0,velocity:0,listeners:new Set,get scrollTop(){return S.current?.scrollTop??0},set scrollTop(m){S.current&&(S.current.scrollTop=m,d.ignoreScrollToTop=S.current.scrollTop)},get targetScrollTop(){return!S.current||!g.current?0:S.current.scrollHeight-1-S.current.clientHeight},get calculatedTargetScrollTop(){if(!S.current||!g.current)return 0;let{targetScrollTop:m}=this;if(!e.targetScrollTop)return m;if(x?.targetScrollTop===m)return x.calculatedScrollTop;let w=Math.max(Math.min(e.targetScrollTop(m,{scrollElement:S.current,contentElement:g.current}),m),0);return x={targetScrollTop:m,calculatedScrollTop:w},requestAnimationFrame(()=>{x=void 0}),w},get scrollDifference(){return this.calculatedTargetScrollTop-this.scrollTop},get isNearBottom(){return this.scrollDifference<=eO}}},[]),f=(0,_t.useCallback)((x={})=>{typeof x=="string"&&(x={animation:x}),x.preserveScrollPosition||u(!0);let m=Date.now()+(Number(x.wait)||0),w=mh(i.current,x.animation),{ignoreEscapes:L=!1}=x,b,A=d.calculatedTargetScrollTop;x.duration instanceof Promise?x.duration.finally(()=>{b=Date.now()}):b=m+(x.duration??0);let R=async()=>{let _=new Promise(requestAnimationFrame).then(()=>{if(!d.isAtBottom)return d.animation=void 0,!1;let{scrollTop:T}=d,D=performance.now(),N=(D-(d.lastTick??D))/tO;if(d.animation||(d.animation={behavior:w,promise:_,ignoreEscapes:L}),d.animation.behavior===w&&(d.lastTick=D),s()||m>Date.now())return R();if(T<Math.min(A,d.calculatedTargetScrollTop)){if(d.animation?.behavior===w){if(w==="instant")return d.scrollTop=d.calculatedTargetScrollTop,R();d.velocity=(w.damping*d.velocity+w.stiffness*d.scrollDifference)/w.mass,d.accumulated+=d.velocity*N,d.scrollTop+=d.accumulated,d.scrollTop!==T&&(d.accumulated=0)}return R()}return b>Date.now()?(A=d.calculatedTargetScrollTop,R()):(d.animation=void 0,d.scrollTop<d.calculatedTargetScrollTop?f({animation:mh(i.current,i.current.resize),ignoreEscapes:L,duration:Math.max(0,b-Date.now())||void 0}):d.isAtBottom)});return _.then(T=>(requestAnimationFrame(()=>{d.animation||(d.lastTick=void 0,d.velocity=0)}),T))};return x.wait!==!0&&(d.animation=void 0),d.animation?.behavior===w?d.animation.promise:R()},[u,s,d]),p=(0,_t.useCallback)(()=>{c(!0),u(!1)},[c,u]),y=(0,_t.useCallback)(({target:x})=>{if(x!==S.current)return;let{scrollTop:m,ignoreScrollToTop:w}=d,{lastScrollTop:L=m}=d;d.lastScrollTop=m,d.ignoreScrollToTop=void 0,w&&w>m&&(L=w),l(d.isNearBottom),setTimeout(()=>{if(d.resizeDifference||m===w)return;if(s()){c(!0),u(!1);return}let b=m>L,A=m<L;if(d.animation?.ignoreEscapes){d.scrollTop=L;return}A&&(c(!0),u(!1)),b&&c(!1),!d.escapedFromLock&&d.isNearBottom&&u(!0)},1)},[c,u,s,d]),v=(0,_t.useCallback)(({target:x,deltaY:m})=>{let w=x;for(;!["scroll","auto"].includes(getComputedStyle(w).overflow);){if(!w.parentElement)return;w=w.parentElement}w===S.current&&m<0&&S.current.scrollHeight>S.current.clientHeight&&!d.animation?.ignoreEscapes&&(c(!0),u(!1))},[c,u,d]),S=hC(x=>{S.current?.removeEventListener("scroll",y),S.current?.removeEventListener("wheel",v),x?.addEventListener("scroll",y,{passive:!0}),x?.addEventListener("wheel",v,{passive:!0})},[]),g=hC(x=>{if(d.resizeObserver?.disconnect(),!x)return;let m;d.resizeObserver=new ResizeObserver(([w])=>{let{height:L}=w.contentRect,b=L-(m??L);if(d.resizeDifference=b,d.scrollTop>d.targetScrollTop&&(d.scrollTop=d.targetScrollTop),l(d.isNearBottom),b>=0){let A=mh(i.current,m?i.current.resize:i.current.initial);f({animation:A,wait:!0,preserveScrollPosition:!0,duration:A==="instant"?void 0:aO})}else d.isNearBottom&&(c(!1),u(!0));m=L,requestAnimationFrame(()=>{setTimeout(()=>{d.resizeDifference===b&&(d.resizeDifference=0)},1)})}),d.resizeObserver?.observe(x)},[]);return{contentRef:g,scrollRef:S,scrollToBottom:f,stopScroll:p,isAtBottom:n||o,isNearBottom:o,escapedFromLock:t,state:d}};function hC(e,t){let a=(0,_t.useCallback)(n=>(a.current=n,e(n)),t);return a}var ph=new Map;function mh(...e){let t={...J_},a=!1;for(let r of e){if(r==="instant"){a=!0;continue}typeof r=="object"&&(a=!1,t.damping=r.damping??t.damping,t.stiffness=r.stiffness??t.stiffness,t.mass=r.mass??t.mass)}let n=JSON.stringify(t);return ph.has(n)||ph.set(n,Object.freeze(t)),a?"instant":ph.get(n)}var ro=q(xe(),1),ta=q(xe(),1);var yC=(0,ta.createContext)(null),nO=typeof window<"u"?ta.useLayoutEffect:ta.useEffect;function gs({instance:e,children:t,resize:a,initial:n,mass:r,damping:o,stiffness:l,targetScrollTop:i,contextRef:s,...u}){let c=(0,ta.useRef)(null),d=ro.useCallback((L,b)=>(w?.targetScrollTop??i)?.(L,b)??L,[i]),f=gC({mass:r,damping:o,stiffness:l,resize:a,initial:n,targetScrollTop:d}),{scrollRef:p,contentRef:y,scrollToBottom:v,stopScroll:S,isAtBottom:g,escapedFromLock:x,state:m}=e??f,w=(0,ta.useMemo)(()=>({scrollToBottom:v,stopScroll:S,scrollRef:p,isAtBottom:g,escapedFromLock:x,contentRef:y,state:m,get targetScrollTop(){return c.current},set targetScrollTop(L){c.current=L}}),[v,g,y,p,S,x,m]);return(0,ta.useImperativeHandle)(s,()=>w,[w]),nO(()=>{p.current&&getComputedStyle(p.current).overflow==="visible"&&(p.current.style.overflow="auto")},[]),ro.createElement(yC.Provider,{value:w},ro.createElement("div",{...u},typeof t=="function"?t(w):t))}(function(e){function t({children:a,scrollClassName:n,...r}){let o=hh();return ro.createElement("div",{ref:o.scrollRef,style:{height:"100%",width:"100%",scrollbarGutter:"stable both-edges"},className:n},ro.createElement("div",{...r,ref:o.contentRef},typeof a=="function"?a(o):a))}e.Content=t})(gs||(gs={}));function hh(){let e=(0,ta.useContext)(yC);if(!e)throw new Error("use-stick-to-bottom component context must be used within a StickToBottom component");return e}gh();xh();var rO=vC({prefix:"ww"});function $(...e){return rO(Fc(e))}var CC=q(ee(),1),en=({className:e,variant:t="default",size:a="default",type:n="button",...r})=>(0,CC.jsx)("button",{type:n,className:$("ww:inline-flex ww:cursor-pointer ww:items-center ww:justify-center ww:rounded-md ww:font-medium ww:transition-colors ww:disabled:pointer-events-none ww:disabled:opacity-50",t==="default"&&"ww:bg-primary ww:text-primary-foreground ww:hover:bg-primary/90",t==="outline"&&"ww:border ww:border-border ww:bg-background ww:hover:bg-accent ww:hover:text-accent-foreground",t==="ghost"&&"ww:hover:bg-accent ww:hover:text-accent-foreground",a==="default"&&"ww:h-9 ww:px-4 ww:py-2 ww:text-sm",a==="sm"&&"ww:h-8 ww:px-3 ww:text-xs",a==="icon"&&"ww:size-9 ww:rounded-full",a==="icon-sm"&&"ww:size-7 ww:rounded-full",e),...r});var ys=q(ee(),1),Sl=({className:e,...t})=>(0,ys.jsx)(gs,{className:$("ww:relative ww:flex-1 ww:overflow-y-hidden",e),initial:"smooth",resize:"smooth",role:"log",...t}),Cl=({className:e,...t})=>(0,ys.jsx)(gs.Content,{className:$("ww:flex ww:flex-col ww:gap-6 ww:px-4 ww:py-6 ww:mx-auto ww:w-full ww:max-w-3xl",e),...t}),Il=({className:e,...t})=>{let{isAtBottom:a,scrollToBottom:n}=hh(),r=(0,IC.useCallback)(()=>{n()},[n]);return!a&&(0,ys.jsx)(en,{className:$("ww:absolute ww:bottom-4 ww:left-[50%] ww:translate-x-[-50%] ww:rounded-full",e),onClick:r,size:"icon",variant:"outline",...t,children:(0,ys.jsx)(ls,{className:"ww:size-4"})})};var jc=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,a)=>(a&=63,a<36?t+=a.toString(36):a<62?t+=(a-26).toString(36).toUpperCase():a>62?t+="-":t+="_",t),"");var Be=q(xe(),1);var jt=q(ee(),1),iO=async e=>{try{let a=await(await fetch(e)).blob();return new Promise(n=>{let r=new FileReader;r.onloadend=()=>n(r.result),r.onerror=()=>n(null),r.readAsDataURL(a)})}catch{return null}},LC=(0,Be.createContext)(null),kC=()=>{let e=(0,Be.useContext)(LC);if(!e)throw new Error("usePromptInputAttachments must be used within a PromptInput");return e},Ll=({className:e,accept:t,multiple:a,globalDrop:n,maxFiles:r,maxFileSize:o,onSubmit:l,children:i,...s})=>{let u=(0,Be.useRef)(null),c=(0,Be.useRef)(null),[d,f]=(0,Be.useState)([]),p=(0,Be.useRef)(d);(0,Be.useEffect)(()=>{p.current=d},[d]);let y=(0,Be.useCallback)(()=>{u.current?.click()},[]),v=(0,Be.useCallback)(L=>{let b=[...L];if(b.length===0)return;let A=_=>o?_.size<=o:!0,R=b.filter(A);f(_=>{let T=typeof r=="number"?Math.max(0,r-_.length):void 0,D=typeof T=="number"?R.slice(0,T):R;return[..._,...D.map(N=>({filename:N.name,id:jc(),mediaType:N.type,type:"file",url:URL.createObjectURL(N)}))]})},[r,o]),S=(0,Be.useCallback)(L=>{f(b=>{let A=b.find(R=>R.id===L);return A?.url&&URL.revokeObjectURL(A.url),b.filter(R=>R.id!==L)})},[]),g=(0,Be.useCallback)(()=>{f(L=>{for(let b of L)b.url&&URL.revokeObjectURL(b.url);return[]})},[]);(0,Be.useEffect)(()=>()=>{for(let L of p.current)L.url&&URL.revokeObjectURL(L.url)},[]);let x=(0,Be.useCallback)(L=>{L.currentTarget.files&&v(L.currentTarget.files),L.currentTarget.value=""},[v]);(0,Be.useEffect)(()=>{if(!n)return;let L=A=>{A.dataTransfer?.types?.includes("Files")&&A.preventDefault()},b=A=>{A.dataTransfer?.types?.includes("Files")&&A.preventDefault(),A.dataTransfer?.files&&A.dataTransfer.files.length>0&&v(A.dataTransfer.files)};return document.addEventListener("dragover",L),document.addEventListener("drop",b),()=>{document.removeEventListener("dragover",L),document.removeEventListener("drop",b)}},[v,n]);let m=(0,Be.useCallback)(async L=>{L.preventDefault();let b=L.currentTarget,R=new FormData(b).get("message")||"";b.reset();let _=await Promise.all(d.map(async({id:T,...D})=>{if(D.url?.startsWith("blob:")){let N=await iO(D.url);return{...D,url:N??D.url}}return D}));try{let T=l({files:_,text:R},L);T instanceof Promise&&await T,g()}catch{}},[d,l,g]),w=(0,Be.useMemo)(()=>({add:v,clear:g,files:d,openFileDialog:y,remove:S}),[d,v,S,g,y]);return(0,jt.jsxs)(LC.Provider,{value:w,children:[(0,jt.jsx)("input",{accept:t,"aria-label":"Upload files",className:"ww:hidden",multiple:a,onChange:x,ref:u,title:"Upload files",type:"file"}),(0,jt.jsx)("form",{className:$("ww:flex ww:w-full ww:flex-col ww:rounded-lg ww:border ww:border-border ww:bg-background",e),onSubmit:m,ref:c,...s,children:i})]})};var kl=({onChange:e,onKeyDown:t,className:a,placeholder:n="What would you like to know?",...r})=>{let o=kC(),[l,i]=(0,Be.useState)(!1),s=(0,Be.useCallback)(c=>{if(t?.(c),!c.defaultPrevented){if(c.key==="Enter"){if(l||c.nativeEvent.isComposing||c.shiftKey)return;c.preventDefault();let{form:d}=c.currentTarget;if(d?.querySelector('button[type="submit"]')?.disabled)return;d?.requestSubmit()}if(c.key==="Backspace"&&c.currentTarget.value===""&&o.files.length>0){c.preventDefault();let d=o.files.at(-1);d&&o.remove(d.id)}}},[t,l,o]),u=(0,Be.useCallback)(c=>{let d=c.clipboardData?.items;if(!d)return;let f=[];for(let p of d)if(p.kind==="file"){let y=p.getAsFile();y&&f.push(y)}f.length>0&&(c.preventDefault(),o.add(f))},[o]);return(0,jt.jsx)("textarea",{className:$("ww:field-sizing-content ww:max-h-48 ww:min-h-16 ww:w-full ww:resize-none ww:border-0 ww:bg-transparent ww:px-3 ww:py-3 ww:text-sm ww:outline-none ww:placeholder:text-muted-foreground",a),name:"message",onCompositionEnd:()=>i(!1),onCompositionStart:()=>i(!0),onKeyDown:s,onPaste:u,placeholder:n,onChange:e,...r})},Tl=({className:e,status:t,onStop:a,onClick:n,children:r,...o})=>{let l=t==="submitted"||t==="streaming",i=(0,jt.jsx)(is,{className:"ww:size-4"});t==="submitted"?i=(0,jt.jsx)(ps,{className:"ww:size-4 ww:animate-spin"}):t==="streaming"&&(i=(0,jt.jsx)(hs,{className:"ww:size-4"}));let s=(0,Be.useCallback)(u=>{if(l&&a){u.preventDefault(),a();return}n?.(u)},[l,a,n]);return(0,jt.jsx)(en,{"aria-label":l?"Stop":"Submit",className:$("ww:bg-foreground ww:text-background ww:hover:bg-foreground ww:rounded-full",e),onClick:s,size:"icon-sm",type:l&&a?"button":"submit",variant:"ghost",...o,children:r??i})},Ml=({className:e,children:t,...a})=>{let n=kC();return n.files.length>0?(0,jt.jsxs)(en,{className:$("ww:group ww:relative",e),onClick:()=>n.clear(),size:"icon-sm",type:"button",variant:"ghost","aria-label":"Remove all attachments",...a,children:[(0,jt.jsx)("span",{className:"ww:flex ww:size-5 ww:items-center ww:justify-center ww:rounded-full ww:bg-primary ww:text-[10px] ww:font-medium ww:text-primary-foreground ww:transition-opacity ww:group-hover:opacity-0",children:n.files.length}),(0,jt.jsx)(no,{className:"ww:absolute ww:size-4 ww:opacity-0 ww:transition-opacity ww:group-hover:opacity-100"})]}):(0,jt.jsx)(en,{className:$(e),onClick:()=>n.openFileDialog(),size:"icon-sm",type:"button",variant:"ghost",...a,children:t??(0,jt.jsx)(ms,{className:"ww:size-4"})})};var Vc=q(xe(),1);var oo=q(ee(),1),TC=({className:e,...t})=>(0,oo.jsx)("div",{className:$("ww:flex ww:flex-col ww:gap-1 ww:px-3 ww:py-2",e),...t}),MC=({className:e,...t})=>(0,oo.jsx)("li",{className:$("ww:group ww:flex ww:items-center ww:gap-2 ww:rounded-md ww:px-2 ww:py-1 ww:text-sm ww:transition-colors ww:hover:bg-muted",e),...t}),AC=({className:e,...t})=>(0,oo.jsx)("span",{className:$("ww:inline-block ww:size-2 ww:shrink-0 ww:rounded-full ww:border ww:border-muted-foreground/50",e),...t}),EC=({className:e,...t})=>(0,oo.jsx)("span",{className:$("ww:line-clamp-1 ww:grow ww:break-words ww:text-muted-foreground",e),...t}),RC=({className:e,...t})=>(0,oo.jsx)("div",{className:$("ww:flex ww:shrink-0 ww:gap-1 ww:opacity-0 ww:transition-opacity ww:group-hover:opacity-100",e),...t}),DC=({className:e,...t})=>(0,oo.jsx)(en,{className:$("ww:size-auto ww:rounded ww:p-1 ww:text-muted-foreground ww:hover:bg-muted-foreground/10 ww:hover:text-foreground",e),size:"icon",type:"button",variant:"ghost",...t});var Ra=q(ee(),1),_C=(0,Vc.memo)(({message:e,onRemove:t})=>{let a=(0,Vc.useCallback)(()=>t(e.id),[t,e.id]);return(0,Ra.jsxs)(MC,{children:[(0,Ra.jsx)(AC,{}),(0,Ra.jsx)(EC,{children:e.text||"(attachment)"}),(0,Ra.jsx)(RC,{children:(0,Ra.jsx)(DC,{"aria-label":"Remove from queue",onClick:a,children:(0,Ra.jsx)(no,{className:"ww:size-3"})})})]})});_C.displayName="ChatQueueItem";function Al({queuedMessages:e,onRemove:t,className:a}){return e.length===0?null:(0,Ra.jsxs)(TC,{className:$("ww:border-t ww:border-border",a),children:[(0,Ra.jsxs)("div",{className:"ww:text-[11px] ww:font-medium ww:text-muted-foreground ww:px-2",children:[e.length," queued"]}),(0,Ra.jsx)("ul",{children:e.map(n=>(0,Ra.jsx)(_C,{message:n,onRemove:t},n.id))})]})}var vh=q(xe(),1),OC=q(ee(),1);function Gc({messages:e,evalEnabled:t,api:a="/api/waniwani"}){let[n,r]=(0,vh.useState)(!1),[o,l]=(0,vh.useState)(null),i=async()=>{let u={name:`session-${new Date().toISOString().slice(0,19)}`,type:"functional",messages:e,mode:"manual"};r(!0),l(null);try{let c=await fetch(`${a}/scenarios`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u)});if(!c.ok)throw new Error(`${c.status}`);l("saved")}catch{l("error")}finally{r(!1),setTimeout(()=>l(null),2e3)}};return!t||e.length===0?null:(0,OC.jsx)("button",{type:"button",onClick:i,disabled:n,title:"Save scenario to WaniWani",className:"ww:ml-auto ww:text-[10px] ww:font-mono ww:uppercase ww:tracking-wider ww:text-muted-foreground hover:ww:text-foreground ww:cursor-pointer ww:transition-colors ww:disabled:opacity-40",children:n?"saving...":o==="saved"?"saved":o==="error"?"error":"export"})}var xr=q(ee(),1),PC=({files:e,className:t,...a})=>e.length===0?null:(0,xr.jsx)("div",{className:$("ww:flex ww:flex-wrap ww:gap-1.5",t),...a,children:e.map((n,r)=>(0,xr.jsx)(sO,{file:n},r))});function sO({file:e}){return e.mediaType?.startsWith("image/")&&e.url?(0,xr.jsx)("img",{src:e.url,alt:e.filename??"attachment",className:"ww:h-16 ww:max-w-32 ww:rounded ww:object-cover"}):(0,xr.jsxs)("span",{className:"ww:inline-flex ww:items-center ww:gap-1.5 ww:rounded ww:bg-background/20 ww:px-2 ww:py-1 ww:text-xs",children:[(0,xr.jsx)(fs,{className:"ww:size-3 ww:shrink-0"}),(0,xr.jsx)("span",{className:"ww:max-w-24 ww:truncate",children:e.filename??"file"})]})}var wh=q(ee(),1),bh=({className:e,size:t=5,...a})=>(0,wh.jsx)("div",{className:$("ww:flex ww:items-center ww:gap-1",e),...a,children:[0,1,2].map(n=>(0,wh.jsx)("div",{className:"ww:rounded-full ww:bg-muted-foreground/60",style:{width:t,height:t,animation:"ww-pulse 1.4s ease-in-out infinite",animationDelay:`${n*.2}s`}},n))});var NC={name:"cjk-noop",type:"cjk",remarkPluginsBefore:[],remarkPluginsAfter:[],remarkPlugins:[]};var BC={name:"shiki-noop",type:"code-highlighter",supportsLanguage:()=>!1,getSupportedLanguages:()=>[],getThemes:()=>["github-light","github-dark"],highlight:()=>null};var hA=q(xe(),1);Zd();var Gs=q(ee(),1),tf=({className:e,from:t,children:a,...n})=>(0,Gs.jsx)("div",{className:$("ww:group ww:flex ww:w-full",t==="user"?"is-user ww:ml-auto ww:max-w-[80%] ww:flex-col ww:items-end":"is-assistant ww:flex-col",e),...n,children:(0,Gs.jsx)("div",{className:$("ww:flex ww:min-w-0 ww:flex-col ww:gap-2","ww:w-full"),children:a})}),af=({children:e,className:t,...a})=>(0,Gs.jsx)("div",{className:$("ww:flex ww:w-fit ww:min-w-0 ww:max-w-full ww:flex-col ww:gap-2 ww:overflow-hidden ww:text-base","ww:group-[.is-user]:ml-auto ww:group-[.is-user]:rounded-lg ww:group-[.is-user]:bg-user-bubble ww:group-[.is-user]:px-4 ww:group-[.is-user]:py-3 ww:group-[.is-user]:text-primary-foreground","ww:group-[.is-assistant]:text-foreground",t),...a,children:e}),Mz={cjk:NC,code:BC},nf=(0,hA.memo)(({className:e,...t})=>(0,Gs.jsx)(ef,{className:$("ww:size-full ww:[&>*:first-child]:mt-0 ww:[&>*:last-child]:mb-0",e),plugins:Mz,...t}),(e,t)=>e.children===t.children);nf.displayName="MessageResponse";var yA=q(ee(),1);function gA({className:e,text:t,...a}){return t?(0,yA.jsx)("pre",{className:$("ww:mb-2 ww:overflow-x-auto ww:whitespace-pre-wrap ww:break-words ww:text-xs ww:font-mono ww:text-muted-foreground",e),...a,children:t}):null}var vt=q(xe(),1);var fe=q(ee(),1);function Az(e,t=80){if(e==null)return String(e);if(typeof e!="object")return String(e).slice(0,t);if(Array.isArray(e))return`Array(${e.length})`;let a=JSON.stringify(e);if(a.length<=t)return a;let n=Object.entries(e),r=[],o=t-2;for(let[l,i]of n){if(o<=8)break;let s=l.length>4?`${l.slice(0,4)}\u2026`:l,u;typeof i=="string"?u=i.length>2?`'${i.slice(0,1)}\u2026`:`'${i}'`:Array.isArray(i)?u=`Array(${i.length})`:typeof i=="object"&&i!==null?u="{\u2026}":u=String(i);let c=`${s}\u2009${u}`;r.push(c),o-=c.length+3}return`{${r.join(", ")}}`}function Ez({text:e,className:t}){let[a,n]=(0,vt.useState)(!1),r=(0,vt.useRef)(null);(0,vt.useEffect)(()=>()=>{r.current&&clearTimeout(r.current)},[]);let o=(0,vt.useCallback)(async l=>{l.stopPropagation();try{await navigator.clipboard.writeText(e),n(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>n(!1),2e3)}catch{}},[e]);return(0,fe.jsx)(en,{variant:"ghost",size:"sm",onClick:o,className:$("ww:h-auto ww:gap-1 ww:px-1.5 ww:py-0.5 ww:text-xs ww:text-muted-foreground ww:hover:text-foreground",t),children:a?(0,fe.jsxs)(fe.Fragment,{children:[(0,fe.jsx)(ss,{className:"ww:size-3.5"}),(0,fe.jsx)("span",{children:"Copied"})]}):(0,fe.jsxs)(fe.Fragment,{children:[(0,fe.jsx)(ds,{className:"ww:size-3.5"}),(0,fe.jsx)("span",{children:"Copy"})]})})}function wA({data:e,label:t,className:a,...n}){let[r,o]=(0,vt.useState)(!1),l=(0,vt.useMemo)(()=>JSON.stringify(e,null,2),[e]),i=Az(e);return(0,fe.jsxs)("div",{className:$("ww:rounded-lg ww:bg-tool-card",a),...n,children:[(0,fe.jsxs)("div",{className:"ww:flex ww:items-center ww:justify-between ww:px-3 ww:pt-2.5 ww:pb-1.5",children:[(0,fe.jsx)("span",{className:"ww:text-xs ww:font-medium ww:text-muted-foreground",children:t}),(0,fe.jsx)(Ez,{text:l})]}),(0,fe.jsxs)("button",{type:"button",onClick:()=>o(s=>!s),className:"ww:flex ww:w-full ww:items-start ww:gap-2 ww:px-3 ww:pb-3 ww:text-left",children:[(0,fe.jsx)(cs,{className:$("ww:mt-0.5 ww:size-3.5 ww:shrink-0 ww:text-muted-foreground ww:transition-transform ww:duration-150",r&&"ww:rotate-90")}),r?(0,fe.jsx)("pre",{className:"ww:overflow-x-auto ww:text-xs ww:font-mono ww:text-foreground ww:whitespace-pre-wrap ww:break-all",children:(0,fe.jsx)("code",{children:l})}):(0,fe.jsx)("span",{className:"ww:truncate ww:text-xs ww:font-mono ww:text-foreground/80",children:i})]})]})}var Qy=(0,vt.createContext)({open:!1,toggle:()=>{}});function bA({className:e,defaultOpen:t=!1,children:a,...n}){let[r,o]=(0,vt.useState)(t);return(0,fe.jsx)(Qy.Provider,{value:{open:r,toggle:()=>o(l=>!l)},children:(0,fe.jsx)("div",{className:$("ww:mb-4 ww:w-full",e),"data-state":r?"open":"closed",...n,children:a})})}function SA({className:e,title:t,state:a,...n}){let{open:r,toggle:o}=(0,vt.useContext)(Qy),l=a==="input-available"||a==="input-streaming";return(0,fe.jsxs)("button",{type:"button",onClick:o,className:$("ww:flex ww:w-full ww:items-center ww:justify-between ww:gap-3 ww:py-1.5",e),"aria-expanded":r,...n,children:[(0,fe.jsxs)("div",{className:"ww:flex ww:min-w-0 ww:items-center ww:gap-2",children:[(0,fe.jsx)(yr,{className:"ww:size-4 ww:shrink-0 ww:text-muted-foreground"}),(0,fe.jsx)("span",{className:"ww:truncate ww:text-sm ww:font-medium",children:t}),l&&(0,fe.jsx)("span",{className:"ww:size-2 ww:shrink-0 ww:rounded-full ww:bg-primary ww:animate-pulse"})]}),(0,fe.jsx)(us,{className:$("ww:size-4 ww:shrink-0 ww:text-muted-foreground ww:transition-transform ww:duration-200",r&&"ww:rotate-180")})]})}function CA({className:e,children:t,...a}){let{open:n}=(0,vt.useContext)(Qy);return(0,fe.jsx)("div",{className:$("ww:grid ww:transition-[grid-template-rows,opacity] ww:duration-200 ww:ease-out",n?"ww:grid-rows-[1fr] ww:opacity-100":"ww:grid-rows-[0fr] ww:opacity-0"),children:(0,fe.jsx)("div",{className:"ww:min-h-0 ww:overflow-hidden",children:(0,fe.jsx)("div",{className:$("ww:mt-2 ww:space-y-3 ww:rounded-lg ww:border ww:border-border ww:bg-background ww:p-3",e),...a,children:t})})})}function IA({className:e,input:t,debug:a,...n}){let r=(0,vt.useMemo)(()=>{if(!a&&typeof t=="object"&&t!==null&&!Array.isArray(t)){let{_meta:o,...l}=t;return l}return t},[t,a]);return(0,fe.jsx)(wA,{data:r,label:"Request",className:e,...n})}function Zy(e){if(!(typeof e!="object"||e===null))return e}function LA(e){return Zy(e?.ui)}function kA(e){return Zy(Zy(e)?._meta)}function xA(e){if(!e)return;let t=LA(e)?.resourceUri;if(typeof t=="string"&&t.length>0)return t;let a=e["ui/resourceUri"];if(typeof a=="string"&&a.length>0)return a;let n=e["openai/outputTemplate"];if(typeof n=="string"&&n.length>0)return n}function vA(e){return LA(e)?.autoHeight===!0}function rf(e,t,a){if(e){let n=xA(a?.[e]?._meta);if(n)return n}return xA(kA(t))}function TA(e,t,a){return e&&vA(a?.[e]?._meta)?!0:vA(kA(t))}function MA({className:e,output:t,errorText:a,debug:n,...r}){let o=(0,vt.useMemo)(()=>{if(!n&&typeof t=="object"&&t!==null&&!Array.isArray(t)){let{_meta:l,...i}=t;return i}return t},[t,n]);return t||a?a?(0,fe.jsxs)("div",{className:$("ww:space-y-2",e),...r,children:[(0,fe.jsx)("h4",{className:"ww:text-xs ww:font-medium ww:uppercase ww:tracking-wide ww:text-muted-foreground",children:"Error"}),(0,fe.jsx)("div",{className:"ww:rounded-lg ww:bg-destructive/10 ww:p-3 ww:text-xs ww:text-destructive",children:a})]}):(0,fe.jsx)(wA,{data:o,label:"Response",className:e,...r}):null}var qe=q(xe(),1);function Fl(e){if(!e)return!1;let t=Array.isArray(e.content)&&e.content.length>0,a=typeof e.structuredContent=="object"&&e.structuredContent!==null&&Object.keys(e.structuredContent).length>0;return t||a}function AA(e,t){return!Fl(e)&&!Fl(t)?null:Fl(e)?Fl(t)?{...e.content||t.content?{content:[...e.content??[],...t.content??[]]}:{},...e.structuredContent||t.structuredContent?{structuredContent:{...e.structuredContent??{},...t.structuredContent??{}}}:{}}:{...e.content?{content:[...e.content]}:{},...e.structuredContent?{structuredContent:{...e.structuredContent}}:{}}:{...t?.content?{content:[...t.content]}:{},...t?.structuredContent?{structuredContent:{...t.structuredContent}}:{}}}var RA=q(ee(),1),Rz="/api/mcp/resource",Dz=500,_z=0,Oz=16,Pz="2026-01-26",Nz=300,Bz=3e3,Uz=3;function zz(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function qz(e,t,a){return rf(e,t,a)?!1:t._meta?.["waniwani/autoInjectResultText"]!==!1}function EA({resourceUri:e,toolInput:t,toolResult:a,resourceEndpoint:n=Rz,chatSessionId:r,isDark:o=!1,className:l,autoHeight:i=!1,onOpenLink:s,onFollowUp:u,onCallTool:c,onDisplayModeChange:d,isFullscreen:f=!1,toolDefinitions:p}){let y=(0,qe.useRef)(null),v=(0,qe.useRef)(t),S=(0,qe.useRef)(a),g=(0,qe.useRef)({width:0,height:0}),x=(0,qe.useRef)(null),m=(0,qe.useRef)(!1),w=(0,qe.useRef)(0),L=(0,qe.useRef)("inline"),[b,A]=(0,qe.useState)(_z),[R,_]=(0,qe.useState)(void 0),T=(0,qe.useRef)(s),D=(0,qe.useRef)(u),N=(0,qe.useRef)(c),B=(0,qe.useRef)(d),j=(0,qe.useRef)(r),V=(0,qe.useRef)(p);v.current=t,S.current=a,T.current=s,D.current=u,N.current=c,B.current=d,j.current=r,V.current=p;let F=(0,qe.useCallback)(Z=>i?Math.max(Z+Oz,0):Math.min(Math.max(Z,50),Dz),[i]),te=(0,qe.useMemo)(()=>{let Z=n.includes("?")?"&":"?";return`${n}${Z}uri=${encodeURIComponent(e)}`},[n,e]),$e=(0,qe.useRef)(o);return $e.current=o,(0,qe.useEffect)(()=>{if(!m.current)return;let Z=y.current;Z?.contentWindow&&Z.contentWindow.postMessage({jsonrpc:"2.0",method:"ui/notifications/host-context-changed",params:{theme:o?"dark":"light"}},"*")},[o]),(0,qe.useEffect)(()=>{let Z=y.current;if(!Z)return;let C=!1,Xe=!1,le=null,k=null,Ze=setTimeout(()=>{if(C||Xe||w.current>=Uz)return;w.current+=1;let G=new URL(Z.src);G.searchParams.set("_retry",String(w.current)),Z.src=G.toString()},Bz),Ue=G=>{Z.contentWindow?.postMessage(G,"*")},Hn=G=>{if(C||G.source!==Z.contentWindow)return;let Q=G.data;if(!Q||typeof Q!="object"||Q.jsonrpc!=="2.0")return;let ke=Q.method,se=Q.id;if(ke==="ui/initialize"&&se!=null){Xe=!0,clearTimeout(Ze),Ue({jsonrpc:"2.0",id:se,result:{protocolVersion:Q.params?.protocolVersion??Pz,hostInfo:{name:"WaniWani Chat",version:"1.0.0"},hostCapabilities:{openLinks:{},message:{text:{}},tools:{},updateModelContext:{text:{},structuredContent:{}}},hostContext:{theme:$e.current?"dark":"light",displayMode:L.current}}});return}if(ke==="ui/notifications/initialized"){m.current=!0;let Se=v.current,Le=S.current,Fe=Le._meta&&typeof Le._meta=="object"?Le._meta:null,St=zz(j.current),zt=Fe&&typeof Fe.waniwani=="object"&&Fe.waniwani!==null?Fe.waniwani:null,un=zt||St?{...zt??{},...St?{sessionId:St}:{}}:void 0,cn=Fe||un?{...Fe??{},...un?{waniwani:un}:{}}:void 0;Ue({jsonrpc:"2.0",method:"ui/notifications/tool-input",params:{arguments:Se}});let Mo=Le.content??[{type:"text",text:JSON.stringify(Le)}];Ue({jsonrpc:"2.0",method:"ui/notifications/tool-result",params:{content:Mo,structuredContent:Le.structuredContent,_meta:cn,meta:cn}});return}if(ke==="ui/notifications/size-changed"){let Se=Q.params,Le=typeof Se?.height=="number"?Se.height:void 0,Fe=typeof Se?.width=="number"?Se.width:void 0,St=g.current,zt=Le!==void 0&&Le!==St.height,un=Fe!==void 0&&Fe!==St.width;if(!zt&&!un)return;if(zt&&Le!==void 0){St.height=Le;let cn=F(Le),Mo=Z.getBoundingClientRect().height;if(x.current&&(x.current.cancel(),x.current=null),A(cn),Z.animate&&Math.abs(Mo-cn)>2){let Pr=Z.animate([{height:`${Mo}px`},{height:`${cn}px`}],{duration:Nz,easing:"ease-out",fill:"forwards"});x.current=Pr,Pr.onfinish=()=>{x.current===Pr&&(Pr.cancel(),x.current=null)}}}un&&i&&Fe!==void 0&&(St.width=Fe,_(Fe));return}if(ke==="ui/open-link"&&se!=null){let Se=Q.params?.url;typeof Se=="string"&&(T.current?T.current(Se):window.open(Se,"_blank","noopener,noreferrer")),Ue({jsonrpc:"2.0",id:se,result:{}});return}if(ke==="ui/message"&&se!=null){if(D.current&&Q.params){let Se=Q.params,Le=le;if(le=null,k){clearTimeout(k.timer);let Fe=k.text;k=null;let St=(Se.content??[]).map(zt=>zt.text??"").join("").trim();Se={...Se,content:[{type:"text",text:`${St}
121
+ `||e[t]==="\r");)t-=1;return t>=1&&e[t]==="$"&&e[t-1]==="$"},Fy=e=>{let t=0;for(let a=0;a<e.length-1;a+=1)e[a]==="$"&&e[a+1]==="$"&&(t+=1,a+=1);return t},fA=e=>{let t=yz.test(e),a=xz.test(e);if(t||a)return[e];let n=xa.lex(e,{gfm:!0}),r=[],o=[];for(let l of n){let i=l.raw,s=r.length;if(o.length>0){if(r[s-1]+=i,l.type==="html"){let u=i.match(vz);if(u){let c=u[1];o.at(-1)===c&&o.pop()}}continue}if(l.type==="html"&&l.block){let u=i.match(wz);if(u){let c=u[1];i.includes(`</${c}>`)||o.push(c)}}if(i.trim()==="$$"&&s>0){let u=r[s-1],c=qy(u),d=Fy(u);if(c&&d%2===1){r[s-1]=u+i;continue}}if(s>0&&bz(i)){let u=r[s-1],c=qy(u),d=Fy(u),f=Fy(i);if(c&&d%2===1&&!qy(i)&&f===1){r[s-1]=u+i;continue}}r.push(i)}return r},pA={raw:WC,sanitize:[ed,{}],harden:[VC,{allowedImagePrefixes:["*"],allowedLinkPrefixes:["*"],allowedProtocols:["*"],defaultOrigin:void 0,allowDataImages:!0}]},mA={gfm:[Ld,{}]},Sz=Object.values(pA),Cz=Object.values(mA),Iz={block:" \u258B",circle:" \u25CF"},Lz={shikiTheme:["github-light","github-dark"],controls:!0,isAnimating:!1,mode:"streaming",mermaid:void 0,linkSafety:{enabled:!0}},Wt=(0,E.createContext)(Lz),Xy=(0,E.memo)(({content:e,shouldParseIncompleteMarkdown:t,index:a,...n})=>(0,M.jsx)(dA,{...n,children:e}),(e,t)=>{if(e.content!==t.content||e.index!==t.index)return!1;if(e.components!==t.components){let a=Object.keys(e.components||{}),n=Object.keys(t.components||{});if(a.length!==n.length||a.some(r=>{var o,l;return((o=e.components)==null?void 0:o[r])!==((l=t.components)==null?void 0:l[r])}))return!1}return!(e.rehypePlugins!==t.rehypePlugins||e.remarkPlugins!==t.remarkPlugins)});Xy.displayName="Block";kz=["github-light","github-dark"],ef=(0,E.memo)(({children:e,mode:t="streaming",parseIncompleteMarkdown:a=!0,components:n,rehypePlugins:r=Sz,remarkPlugins:o=Cz,className:l,shikiTheme:i=kz,mermaid:s,controls:u=!0,isAnimating:c=!1,BlockComponent:d=Xy,parseMarkdownIntoBlocksFn:f=fA,caret:p,plugins:y,remend:v,linkSafety:S={enabled:!0},...g})=>{let x=(0,E.useId)(),[m,w]=(0,E.useTransition)(),L=(0,E.useMemo)(()=>typeof e!="string"?"":t==="streaming"&&a?rL(e,v):e,[e,t,a,v]),b=(0,E.useMemo)(()=>f(L),[L,f]),[A,R]=(0,E.useState)(b);(0,E.useEffect)(()=>{t==="streaming"?w(()=>{R(b)}):R(b)},[b,t]);let _=t==="streaming"?A:b,T=(0,E.useMemo)(()=>_.map((F,te)=>`${x}-${te}`),[_.length,x]),D=(0,E.useMemo)(()=>{var F,te;return{shikiTheme:(te=(F=y?.code)==null?void 0:F.getThemes())!=null?te:i,controls:u,isAnimating:c,mode:t,mermaid:s,linkSafety:S}},[i,u,c,t,s,S,y?.code]),N=(0,E.useMemo)(()=>({...fz,...n}),[n]),B=(0,E.useMemo)(()=>{let F=[];return y!=null&&y.cjk&&(F=[...F,...y.cjk.remarkPluginsBefore]),F=[...F,...o],y!=null&&y.cjk&&(F=[...F,...y.cjk.remarkPluginsAfter]),y!=null&&y.math&&(F=[...F,y.math.remarkPlugin]),F},[o,y?.math,y?.cjk]),j=(0,E.useMemo)(()=>y!=null&&y.math?[...r,y.math.rehypePlugin]:r,[r,y?.math]),V=(0,E.useMemo)(()=>p&&c?{"--streamdown-caret":`"${Iz[p]}"`}:void 0,[p,c]);return t==="static"?(0,M.jsx)(Hy.Provider,{value:y??null,children:(0,M.jsx)(Wt.Provider,{value:D,children:(0,M.jsx)("div",{className:Y("space-y-4 whitespace-normal *:first:mt-0 *:last:mb-0",l),children:(0,M.jsx)(dA,{components:N,rehypePlugins:j,remarkPlugins:B,...g,children:e})})})}):(0,M.jsx)(Hy.Provider,{value:y??null,children:(0,M.jsx)(Wt.Provider,{value:D,children:(0,M.jsxs)("div",{className:Y("space-y-4 whitespace-normal *:first:mt-0 *:last:mb-0",p?"*:last:after:inline *:last:after:align-baseline *:last:after:content-(--streamdown-caret)":null,l),style:V,children:[_.length===0&&p&&c&&(0,M.jsx)("span",{}),_.map((F,te)=>(0,M.jsx)(d,{components:N,content:F,index:te,rehypePlugins:j,remarkPlugins:B,shouldParseIncompleteMarkdown:a,...g},T[te]))]})})})},(e,t)=>e.children===t.children&&e.shikiTheme===t.shikiTheme&&e.isAnimating===t.isAnimating&&e.mode===t.mode&&e.plugins===t.plugins&&e.className===t.className&&e.linkSafety===t.linkSafety);ef.displayName="Streamdown";Tz=({children:e,className:t,minZoom:a=.5,maxZoom:n=3,zoomStep:r=.1,showControls:o=!0,initialZoom:l=1,fullscreen:i=!1})=>{let s=(0,E.useRef)(null),u=(0,E.useRef)(null),[c,d]=(0,E.useState)(l),[f,p]=(0,E.useState)({x:0,y:0}),[y,v]=(0,E.useState)(!1),[S,g]=(0,E.useState)({x:0,y:0}),[x,m]=(0,E.useState)({x:0,y:0}),w=(0,E.useCallback)(N=>{d(B=>Math.max(a,Math.min(n,B+N)))},[a,n]),L=(0,E.useCallback)(()=>{w(r)},[w,r]),b=(0,E.useCallback)(()=>{w(-r)},[w,r]),A=(0,E.useCallback)(()=>{d(l),p({x:0,y:0})},[l]),R=(0,E.useCallback)(N=>{N.preventDefault();let B=N.deltaY>0?-r:r;w(B)},[w,r]),_=(0,E.useCallback)(N=>{if(N.button!==0||N.isPrimary===!1)return;v(!0),g({x:N.clientX,y:N.clientY}),m(f);let B=N.currentTarget;B instanceof HTMLElement&&B.setPointerCapture(N.pointerId)},[f]),T=(0,E.useCallback)(N=>{if(!y)return;N.preventDefault();let B=N.clientX-S.x,j=N.clientY-S.y;p({x:x.x+B,y:x.y+j})},[y,S,x]),D=(0,E.useCallback)(N=>{v(!1);let B=N.currentTarget;B instanceof HTMLElement&&B.releasePointerCapture(N.pointerId)},[]);return(0,E.useEffect)(()=>{let N=s.current;if(N)return N.addEventListener("wheel",R,{passive:!1}),()=>{N.removeEventListener("wheel",R)}},[R]),(0,E.useEffect)(()=>{let N=u.current;if(N&&y)return document.body.style.userSelect="none",N.addEventListener("pointermove",T,{passive:!1}),N.addEventListener("pointerup",D),N.addEventListener("pointercancel",D),()=>{document.body.style.userSelect="",N.removeEventListener("pointermove",T),N.removeEventListener("pointerup",D),N.removeEventListener("pointercancel",D)}},[y,T,D]),(0,M.jsxs)("div",{className:Y("relative flex flex-col",i?"h-full w-full":"min-h-28 w-full",t),ref:s,style:{cursor:y?"grabbing":"grab"},children:[o?(0,M.jsxs)("div",{className:Y("absolute z-10 flex flex-col gap-1 rounded-md border border-border bg-background/90 p-1 shadow-sm backdrop-blur-sm",i?"bottom-4 left-4":"bottom-2 left-2"),children:[(0,M.jsx)("button",{className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",disabled:c>=n,onClick:L,title:"Zoom in",type:"button",children:(0,M.jsx)(jU,{size:16})}),(0,M.jsx)("button",{className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground disabled:cursor-not-allowed disabled:opacity-50",disabled:c<=a,onClick:b,title:"Zoom out",type:"button",children:(0,M.jsx)(VU,{size:16})}),(0,M.jsx)("button",{className:"flex items-center justify-center rounded p-1.5 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground",onClick:A,title:"Reset zoom and pan",type:"button",children:(0,M.jsx)(HU,{size:16})})]}):null,(0,M.jsx)("div",{className:Y("flex-1 origin-center transition-transform duration-150 ease-out",i?"flex h-full w-full items-center justify-center":"flex w-full items-center justify-center"),onPointerDown:_,ref:u,role:"application",style:{transform:`translate(${f.x}px, ${f.y}px) scale(${c})`,transformOrigin:"center center",touchAction:"none",willChange:"transform"},children:e})]})},Uy=({chart:e,className:t,config:a,fullscreen:n=!1,showControls:r=!0})=>{let[o,l]=(0,E.useState)(null),[i,s]=(0,E.useState)(!1),[u,c]=(0,E.useState)(""),[d,f]=(0,E.useState)(""),[p,y]=(0,E.useState)(0),{mermaid:v}=(0,E.useContext)(Wt),S=Wy(),g=v?.errorComponent,{shouldRender:x,containerRef:m}=zU({immediate:n});if((0,E.useEffect)(()=>{if(x){if(!S){l("Mermaid plugin not available. Please add the mermaid plugin to enable diagram rendering.");return}(async()=>{try{l(null),s(!0);let L=S.getMermaid(a),b=e.split("").reduce((_,T)=>(_<<5)-_+T.charCodeAt(0)|0,0),A=`mermaid-${Math.abs(b)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:R}=await L.render(A,e);c(R),f(R)}catch(L){if(!(d||u)){let b=L instanceof Error?L.message:"Failed to render Mermaid chart";l(b)}}finally{s(!1)}})()}},[e,a,p,x,S]),!(x||u||d))return(0,M.jsx)("div",{className:Y("my-4 min-h-[200px]",t),ref:m});if(i&&!u&&!d)return(0,M.jsx)("div",{className:Y("my-4 flex justify-center p-4",t),ref:m,children:(0,M.jsxs)("div",{className:"flex items-center space-x-2 text-muted-foreground",children:[(0,M.jsx)("div",{className:"h-4 w-4 animate-spin rounded-full border-current border-b-2"}),(0,M.jsx)("span",{className:"text-sm",children:"Loading diagram..."})]})});if(o&&!u&&!d)return g?(0,M.jsx)("div",{ref:m,children:(0,M.jsx)(g,{chart:e,error:o,retry:()=>y(b=>b+1)})}):(0,M.jsxs)("div",{className:Y("rounded-lg border border-red-200 bg-red-50 p-4",t),ref:m,children:[(0,M.jsxs)("p",{className:"font-mono text-red-700 text-sm",children:["Mermaid Error: ",o]}),(0,M.jsxs)("details",{className:"mt-2",children:[(0,M.jsx)("summary",{className:"cursor-pointer text-red-600 text-xs",children:"Show Code"}),(0,M.jsx)("pre",{className:"mt-2 overflow-x-auto rounded bg-red-100 p-2 text-red-800 text-xs",children:e})]})]});let w=u||d;return(0,M.jsx)("div",{className:Y("size-full",t),"data-streamdown":"mermaid",ref:m,children:(0,M.jsx)(Tz,{className:Y(n?"size-full overflow-hidden":"my-4 overflow-hidden",t),fullscreen:n,maxZoom:3,minZoom:.5,showControls:r,zoomStep:.1,children:(0,M.jsx)("div",{"aria-label":"Mermaid chart",className:Y("flex justify-center",n?"size-full items-center":null),dangerouslySetInnerHTML:{__html:w},role:"img"})})})}});var g2=Ot((HJ,h2)=>{"use strict";function QF(e,t){if(typeof e!="function")throw new TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let a,n=0;return function(...o){clearTimeout(a);let l=Date.now(),i=l-n,s=t-i;s<=0?(n=l,e.apply(this,o)):a=setTimeout(()=>{n=Date.now(),e.apply(this,o)},s)}}h2.exports=QF});var au=q(xe(),1),xx=q(uC(),1);var U_="https://app.waniwani.ai/api/mcp/chat",z_={api:U_,title:"Assistant",position:"bottom-right",width:400,height:600};function q_(){if(document.currentScript instanceof HTMLScriptElement)return document.currentScript;let e=document.querySelectorAll("script[src]");for(let t of e)if(t instanceof HTMLScriptElement&&/embed/i.test(t.src))return t;return null}function Pc(){let e=q_();if(!e)return{};let t=L=>e.getAttribute(L)??void 0,a=L=>{let b=e.getAttribute(L);if(b==null)return;let A=Number(b);return Number.isFinite(A)?A:void 0},n={},r=t("data-api");r&&(n.api=r);let o=t("data-token");o&&(n.token=o);let l=t("data-title");l&&(n.title=l);let i=t("data-welcome-message");i&&(n.welcomeMessage=i);let s=t("data-placeholder");s&&(n.placeholder=s);let u=t("data-mcp-server-url");u&&(n.mcpServerUrl=u);let c=t("data-css");c&&(n.css=c);let d=t("data-suggestions");d&&(n.suggestions=d.split(",").map(L=>L.trim()).filter(Boolean));let f=t("data-position");(f==="bottom-right"||f==="bottom-left")&&(n.position=f);let p=t("data-mode");(p==="floating"||p==="custom"||p==="inline")&&(n.mode=p);let y=t("data-layout");(y==="card"||y==="bar"||y==="embed")&&(n.layout=y);let v=a("data-width");v&&(n.width=v);let S=a("data-height");S&&(n.height=S);let g=t("data-primary-color"),x=t("data-background-color"),m=t("data-text-color"),w=t("data-font-family");return(g||x||m||w)&&(n.theme={},g&&(n.theme.primaryColor=g),x&&(n.theme.backgroundColor=x),m&&(n.theme.textColor=m),w&&(n.theme.fontFamily=w)),n}function Nc(e,t,a){let n=a??Pc(),r={token:"",...z_,...t??{},...n,...e,theme:{...t?.theme??{},...n.theme,...e?.theme}};if(!r.token)throw new Error("[WaniWani] Missing required config: `token`. Set data-token on the script tag or pass it to WaniWani.chat.init().");return r.mode||(r.mode="inline"),r}function Bc(e){if(!e.theme)return;let t=e.theme;return{...t.primaryColor?{primaryColor:t.primaryColor}:{},...t.backgroundColor?{backgroundColor:t.backgroundColor}:{},...t.textColor?{textColor:t.textColor}:{},...t.fontFamily?{fontFamily:t.fontFamily}:{}}}var ct=q(xe(),1);var Ut=q(xe(),1);var zc=q(xe());var Uc=(...e)=>e.filter((t,a,n)=>!!t&&t.trim()!==""&&n.indexOf(t)===a).join(" ").trim();var cC=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var dC=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,a,n)=>n?n.toUpperCase():a.toLowerCase());var fh=e=>{let t=dC(e);return t.charAt(0).toUpperCase()+t.slice(1)};var os=q(xe());var fC={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var pC=e=>{for(let t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1};var mC=(0,os.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:n,className:r="",children:o,iconNode:l,...i},s)=>(0,os.createElement)("svg",{ref:s,...fC,width:t,height:t,stroke:e,strokeWidth:n?Number(a)*24/Number(t):a,className:Uc("lucide",r),...!o&&!pC(i)&&{"aria-hidden":"true"},...i},[...l.map(([u,c])=>(0,os.createElement)(u,c)),...Array.isArray(o)?o:[o]]));var Ye=(e,t)=>{let a=(0,zc.forwardRef)(({className:n,...r},o)=>(0,zc.createElement)(mC,{ref:o,iconNode:t,className:Uc(`lucide-${cC(fh(e))}`,`lucide-${e}`,n),...r}));return a.displayName=fh(e),a};var F_=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],ls=Ye("arrow-down",F_);var H_=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],is=Ye("arrow-up",H_);var j_=[["path",{d:"M8 3H7a2 2 0 0 0-2 2v5a2 2 0 0 1-2 2 2 2 0 0 1 2 2v5c0 1.1.9 2 2 2h1",key:"ezmyqa"}],["path",{d:"M16 21h1a2 2 0 0 0 2-2v-5c0-1.1.9-2 2-2a2 2 0 0 1-2-2V5a2 2 0 0 0-2-2h-1",key:"e1hn23"}]],yr=Ye("braces",j_);var V_=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],ss=Ye("check",V_);var G_=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],us=Ye("chevron-down",G_);var W_=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],cs=Ye("chevron-right",W_);var $_=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2",key:"4jdomd"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v4",key:"3hqy98"}],["path",{d:"M21 14H11",key:"1bme5i"}],["path",{d:"m15 10-4 4 4 4",key:"5dvupr"}]],ds=Ye("clipboard-copy",$_);var X_=[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]],fs=Ye("file",X_);var Z_=[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]],ps=Ye("loader",Z_);var Q_=[["path",{d:"m16 6-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551",key:"1miecu"}]],ms=Ye("paperclip",Q_);var K_=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],hs=Ye("square",K_);var Y_=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],no=Ye("x",Y_);var IC=q(xe(),1);var _t=q(xe(),1);var J_={damping:.7,stiffness:.05,mass:1.25},eO=70,tO=1e3/60,aO=350,qc=!1;globalThis.document?.addEventListener("mousedown",()=>{qc=!0});globalThis.document?.addEventListener("mouseup",()=>{qc=!1});globalThis.document?.addEventListener("click",()=>{qc=!1});var gC=(e={})=>{let[t,a]=(0,_t.useState)(!1),[n,r]=(0,_t.useState)(e.initial!==!1),[o,l]=(0,_t.useState)(!1),i=(0,_t.useRef)(null);i.current=e;let s=(0,_t.useCallback)(()=>{if(!qc)return!1;let x=window.getSelection();if(!x||!x.rangeCount)return!1;let m=x.getRangeAt(0);return m.commonAncestorContainer.contains(S.current)||S.current?.contains(m.commonAncestorContainer)},[]),u=(0,_t.useCallback)(x=>{d.isAtBottom=x,r(x)},[]),c=(0,_t.useCallback)(x=>{d.escapedFromLock=x,a(x)},[]),d=(0,_t.useMemo)(()=>{let x;return{escapedFromLock:t,isAtBottom:n,resizeDifference:0,accumulated:0,velocity:0,listeners:new Set,get scrollTop(){return S.current?.scrollTop??0},set scrollTop(m){S.current&&(S.current.scrollTop=m,d.ignoreScrollToTop=S.current.scrollTop)},get targetScrollTop(){return!S.current||!g.current?0:S.current.scrollHeight-1-S.current.clientHeight},get calculatedTargetScrollTop(){if(!S.current||!g.current)return 0;let{targetScrollTop:m}=this;if(!e.targetScrollTop)return m;if(x?.targetScrollTop===m)return x.calculatedScrollTop;let w=Math.max(Math.min(e.targetScrollTop(m,{scrollElement:S.current,contentElement:g.current}),m),0);return x={targetScrollTop:m,calculatedScrollTop:w},requestAnimationFrame(()=>{x=void 0}),w},get scrollDifference(){return this.calculatedTargetScrollTop-this.scrollTop},get isNearBottom(){return this.scrollDifference<=eO}}},[]),f=(0,_t.useCallback)((x={})=>{typeof x=="string"&&(x={animation:x}),x.preserveScrollPosition||u(!0);let m=Date.now()+(Number(x.wait)||0),w=mh(i.current,x.animation),{ignoreEscapes:L=!1}=x,b,A=d.calculatedTargetScrollTop;x.duration instanceof Promise?x.duration.finally(()=>{b=Date.now()}):b=m+(x.duration??0);let R=async()=>{let _=new Promise(requestAnimationFrame).then(()=>{if(!d.isAtBottom)return d.animation=void 0,!1;let{scrollTop:T}=d,D=performance.now(),N=(D-(d.lastTick??D))/tO;if(d.animation||(d.animation={behavior:w,promise:_,ignoreEscapes:L}),d.animation.behavior===w&&(d.lastTick=D),s()||m>Date.now())return R();if(T<Math.min(A,d.calculatedTargetScrollTop)){if(d.animation?.behavior===w){if(w==="instant")return d.scrollTop=d.calculatedTargetScrollTop,R();d.velocity=(w.damping*d.velocity+w.stiffness*d.scrollDifference)/w.mass,d.accumulated+=d.velocity*N,d.scrollTop+=d.accumulated,d.scrollTop!==T&&(d.accumulated=0)}return R()}return b>Date.now()?(A=d.calculatedTargetScrollTop,R()):(d.animation=void 0,d.scrollTop<d.calculatedTargetScrollTop?f({animation:mh(i.current,i.current.resize),ignoreEscapes:L,duration:Math.max(0,b-Date.now())||void 0}):d.isAtBottom)});return _.then(T=>(requestAnimationFrame(()=>{d.animation||(d.lastTick=void 0,d.velocity=0)}),T))};return x.wait!==!0&&(d.animation=void 0),d.animation?.behavior===w?d.animation.promise:R()},[u,s,d]),p=(0,_t.useCallback)(()=>{c(!0),u(!1)},[c,u]),y=(0,_t.useCallback)(({target:x})=>{if(x!==S.current)return;let{scrollTop:m,ignoreScrollToTop:w}=d,{lastScrollTop:L=m}=d;d.lastScrollTop=m,d.ignoreScrollToTop=void 0,w&&w>m&&(L=w),l(d.isNearBottom),setTimeout(()=>{if(d.resizeDifference||m===w)return;if(s()){c(!0),u(!1);return}let b=m>L,A=m<L;if(d.animation?.ignoreEscapes){d.scrollTop=L;return}A&&(c(!0),u(!1)),b&&c(!1),!d.escapedFromLock&&d.isNearBottom&&u(!0)},1)},[c,u,s,d]),v=(0,_t.useCallback)(({target:x,deltaY:m})=>{let w=x;for(;!["scroll","auto"].includes(getComputedStyle(w).overflow);){if(!w.parentElement)return;w=w.parentElement}w===S.current&&m<0&&S.current.scrollHeight>S.current.clientHeight&&!d.animation?.ignoreEscapes&&(c(!0),u(!1))},[c,u,d]),S=hC(x=>{S.current?.removeEventListener("scroll",y),S.current?.removeEventListener("wheel",v),x?.addEventListener("scroll",y,{passive:!0}),x?.addEventListener("wheel",v,{passive:!0})},[]),g=hC(x=>{if(d.resizeObserver?.disconnect(),!x)return;let m;d.resizeObserver=new ResizeObserver(([w])=>{let{height:L}=w.contentRect,b=L-(m??L);if(d.resizeDifference=b,d.scrollTop>d.targetScrollTop&&(d.scrollTop=d.targetScrollTop),l(d.isNearBottom),b>=0){let A=mh(i.current,m?i.current.resize:i.current.initial);f({animation:A,wait:!0,preserveScrollPosition:!0,duration:A==="instant"?void 0:aO})}else d.isNearBottom&&(c(!1),u(!0));m=L,requestAnimationFrame(()=>{setTimeout(()=>{d.resizeDifference===b&&(d.resizeDifference=0)},1)})}),d.resizeObserver?.observe(x)},[]);return{contentRef:g,scrollRef:S,scrollToBottom:f,stopScroll:p,isAtBottom:n||o,isNearBottom:o,escapedFromLock:t,state:d}};function hC(e,t){let a=(0,_t.useCallback)(n=>(a.current=n,e(n)),t);return a}var ph=new Map;function mh(...e){let t={...J_},a=!1;for(let r of e){if(r==="instant"){a=!0;continue}typeof r=="object"&&(a=!1,t.damping=r.damping??t.damping,t.stiffness=r.stiffness??t.stiffness,t.mass=r.mass??t.mass)}let n=JSON.stringify(t);return ph.has(n)||ph.set(n,Object.freeze(t)),a?"instant":ph.get(n)}var ro=q(xe(),1),ta=q(xe(),1);var yC=(0,ta.createContext)(null),nO=typeof window<"u"?ta.useLayoutEffect:ta.useEffect;function gs({instance:e,children:t,resize:a,initial:n,mass:r,damping:o,stiffness:l,targetScrollTop:i,contextRef:s,...u}){let c=(0,ta.useRef)(null),d=ro.useCallback((L,b)=>(w?.targetScrollTop??i)?.(L,b)??L,[i]),f=gC({mass:r,damping:o,stiffness:l,resize:a,initial:n,targetScrollTop:d}),{scrollRef:p,contentRef:y,scrollToBottom:v,stopScroll:S,isAtBottom:g,escapedFromLock:x,state:m}=e??f,w=(0,ta.useMemo)(()=>({scrollToBottom:v,stopScroll:S,scrollRef:p,isAtBottom:g,escapedFromLock:x,contentRef:y,state:m,get targetScrollTop(){return c.current},set targetScrollTop(L){c.current=L}}),[v,g,y,p,S,x,m]);return(0,ta.useImperativeHandle)(s,()=>w,[w]),nO(()=>{p.current&&getComputedStyle(p.current).overflow==="visible"&&(p.current.style.overflow="auto")},[]),ro.createElement(yC.Provider,{value:w},ro.createElement("div",{...u},typeof t=="function"?t(w):t))}(function(e){function t({children:a,scrollClassName:n,...r}){let o=hh();return ro.createElement("div",{ref:o.scrollRef,style:{height:"100%",width:"100%",scrollbarGutter:"stable both-edges"},className:n},ro.createElement("div",{...r,ref:o.contentRef},typeof a=="function"?a(o):a))}e.Content=t})(gs||(gs={}));function hh(){let e=(0,ta.useContext)(yC);if(!e)throw new Error("use-stick-to-bottom component context must be used within a StickToBottom component");return e}gh();xh();var rO=vC({prefix:"ww"});function $(...e){return rO(Fc(e))}var CC=q(ee(),1),en=({className:e,variant:t="default",size:a="default",type:n="button",...r})=>(0,CC.jsx)("button",{type:n,className:$("ww:inline-flex ww:cursor-pointer ww:items-center ww:justify-center ww:rounded-md ww:font-medium ww:transition-colors ww:disabled:pointer-events-none ww:disabled:opacity-50",t==="default"&&"ww:bg-primary ww:text-primary-foreground ww:hover:bg-primary/90",t==="outline"&&"ww:border ww:border-border ww:bg-background ww:hover:bg-accent ww:hover:text-accent-foreground",t==="ghost"&&"ww:hover:bg-accent ww:hover:text-accent-foreground",a==="default"&&"ww:h-9 ww:px-4 ww:py-2 ww:text-sm",a==="sm"&&"ww:h-8 ww:px-3 ww:text-xs",a==="icon"&&"ww:size-9 ww:!rounded-full",a==="icon-sm"&&"ww:size-7 ww:!rounded-full",e),...r});var ys=q(ee(),1),Sl=({className:e,...t})=>(0,ys.jsx)(gs,{className:$("ww:relative ww:flex-1 ww:overflow-y-hidden",e),initial:"smooth",resize:"smooth",role:"log",...t}),Cl=({className:e,...t})=>(0,ys.jsx)(gs.Content,{className:$("ww:flex ww:flex-col ww:gap-6 ww:px-4 ww:py-6 ww:mx-auto ww:w-full ww:max-w-3xl",e),...t}),Il=({className:e,...t})=>{let{isAtBottom:a,scrollToBottom:n}=hh(),r=(0,IC.useCallback)(()=>{n()},[n]);return!a&&(0,ys.jsx)(en,{className:$("ww:absolute ww:bottom-4 ww:left-[50%] ww:translate-x-[-50%] ww:rounded-full",e),onClick:r,size:"icon",variant:"outline",...t,children:(0,ys.jsx)(ls,{className:"ww:size-4"})})};var jc=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce((t,a)=>(a&=63,a<36?t+=a.toString(36):a<62?t+=(a-26).toString(36).toUpperCase():a>62?t+="-":t+="_",t),"");var Be=q(xe(),1);var jt=q(ee(),1),iO=async e=>{try{let a=await(await fetch(e)).blob();return new Promise(n=>{let r=new FileReader;r.onloadend=()=>n(r.result),r.onerror=()=>n(null),r.readAsDataURL(a)})}catch{return null}},LC=(0,Be.createContext)(null),kC=()=>{let e=(0,Be.useContext)(LC);if(!e)throw new Error("usePromptInputAttachments must be used within a PromptInput");return e},Ll=({className:e,accept:t,multiple:a,globalDrop:n,maxFiles:r,maxFileSize:o,onSubmit:l,children:i,...s})=>{let u=(0,Be.useRef)(null),c=(0,Be.useRef)(null),[d,f]=(0,Be.useState)([]),p=(0,Be.useRef)(d);(0,Be.useEffect)(()=>{p.current=d},[d]);let y=(0,Be.useCallback)(()=>{u.current?.click()},[]),v=(0,Be.useCallback)(L=>{let b=[...L];if(b.length===0)return;let A=_=>o?_.size<=o:!0,R=b.filter(A);f(_=>{let T=typeof r=="number"?Math.max(0,r-_.length):void 0,D=typeof T=="number"?R.slice(0,T):R;return[..._,...D.map(N=>({filename:N.name,id:jc(),mediaType:N.type,type:"file",url:URL.createObjectURL(N)}))]})},[r,o]),S=(0,Be.useCallback)(L=>{f(b=>{let A=b.find(R=>R.id===L);return A?.url&&URL.revokeObjectURL(A.url),b.filter(R=>R.id!==L)})},[]),g=(0,Be.useCallback)(()=>{f(L=>{for(let b of L)b.url&&URL.revokeObjectURL(b.url);return[]})},[]);(0,Be.useEffect)(()=>()=>{for(let L of p.current)L.url&&URL.revokeObjectURL(L.url)},[]);let x=(0,Be.useCallback)(L=>{L.currentTarget.files&&v(L.currentTarget.files),L.currentTarget.value=""},[v]);(0,Be.useEffect)(()=>{if(!n)return;let L=A=>{A.dataTransfer?.types?.includes("Files")&&A.preventDefault()},b=A=>{A.dataTransfer?.types?.includes("Files")&&A.preventDefault(),A.dataTransfer?.files&&A.dataTransfer.files.length>0&&v(A.dataTransfer.files)};return document.addEventListener("dragover",L),document.addEventListener("drop",b),()=>{document.removeEventListener("dragover",L),document.removeEventListener("drop",b)}},[v,n]);let m=(0,Be.useCallback)(async L=>{L.preventDefault();let b=L.currentTarget,R=new FormData(b).get("message")||"";b.reset();let _=await Promise.all(d.map(async({id:T,...D})=>{if(D.url?.startsWith("blob:")){let N=await iO(D.url);return{...D,url:N??D.url}}return D}));try{let T=l({files:_,text:R},L);T instanceof Promise&&await T,g()}catch{}},[d,l,g]),w=(0,Be.useMemo)(()=>({add:v,clear:g,files:d,openFileDialog:y,remove:S}),[d,v,S,g,y]);return(0,jt.jsxs)(LC.Provider,{value:w,children:[(0,jt.jsx)("input",{accept:t,"aria-label":"Upload files",className:"ww:hidden",multiple:a,onChange:x,ref:u,title:"Upload files",type:"file"}),(0,jt.jsx)("form",{className:$("ww:flex ww:w-full ww:flex-col ww:rounded-lg ww:border ww:border-border ww:bg-background",e),onSubmit:m,ref:c,...s,children:i})]})};var kl=({onChange:e,onKeyDown:t,className:a,placeholder:n="What would you like to know?",...r})=>{let o=kC(),[l,i]=(0,Be.useState)(!1),s=(0,Be.useCallback)(c=>{if(t?.(c),!c.defaultPrevented){if(c.key==="Enter"){if(l||c.nativeEvent.isComposing||c.shiftKey)return;c.preventDefault();let{form:d}=c.currentTarget;if(d?.querySelector('button[type="submit"]')?.disabled)return;d?.requestSubmit()}if(c.key==="Backspace"&&c.currentTarget.value===""&&o.files.length>0){c.preventDefault();let d=o.files.at(-1);d&&o.remove(d.id)}}},[t,l,o]),u=(0,Be.useCallback)(c=>{let d=c.clipboardData?.items;if(!d)return;let f=[];for(let p of d)if(p.kind==="file"){let y=p.getAsFile();y&&f.push(y)}f.length>0&&(c.preventDefault(),o.add(f))},[o]);return(0,jt.jsx)("textarea",{className:$("ww:field-sizing-content ww:max-h-48 ww:min-h-10 ww:w-full ww:resize-none ww:border-0 ww:bg-transparent ww:px-3 ww:py-2 ww:text-sm ww:outline-none ww:placeholder:text-muted-foreground",a),name:"message",onCompositionEnd:()=>i(!1),onCompositionStart:()=>i(!0),onKeyDown:s,onPaste:u,placeholder:n,onChange:e,...r})},Tl=({className:e,status:t,onStop:a,onClick:n,children:r,...o})=>{let l=t==="submitted"||t==="streaming",i=(0,jt.jsx)(is,{className:"ww:size-4"});t==="submitted"?i=(0,jt.jsx)(ps,{className:"ww:size-4 ww:animate-spin"}):t==="streaming"&&(i=(0,jt.jsx)(hs,{className:"ww:size-4"}));let s=(0,Be.useCallback)(u=>{if(l&&a){u.preventDefault(),a();return}n?.(u)},[l,a,n]);return(0,jt.jsx)(en,{"aria-label":l?"Stop":"Submit",className:$("ww:bg-foreground ww:text-background ww:hover:bg-foreground ww:rounded-full",e),onClick:s,size:"icon-sm",type:l&&a?"button":"submit",variant:"ghost",...o,children:r??i})},Ml=({className:e,children:t,...a})=>{let n=kC();return n.files.length>0?(0,jt.jsxs)(en,{className:$("ww:group ww:relative",e),onClick:()=>n.clear(),size:"icon-sm",type:"button",variant:"ghost","aria-label":"Remove all attachments",...a,children:[(0,jt.jsx)("span",{className:"ww:flex ww:size-5 ww:items-center ww:justify-center ww:rounded-full ww:bg-primary ww:text-[10px] ww:font-medium ww:text-primary-foreground ww:transition-opacity ww:group-hover:opacity-0",children:n.files.length}),(0,jt.jsx)(no,{className:"ww:absolute ww:size-4 ww:opacity-0 ww:transition-opacity ww:group-hover:opacity-100"})]}):(0,jt.jsx)(en,{className:$(e),onClick:()=>n.openFileDialog(),size:"icon-sm",type:"button",variant:"ghost",...a,children:t??(0,jt.jsx)(ms,{className:"ww:size-4"})})};var Vc=q(xe(),1);var oo=q(ee(),1),TC=({className:e,...t})=>(0,oo.jsx)("div",{className:$("ww:flex ww:flex-col ww:gap-1 ww:px-3 ww:py-2",e),...t}),MC=({className:e,...t})=>(0,oo.jsx)("li",{className:$("ww:group ww:flex ww:items-center ww:gap-2 ww:rounded-md ww:px-2 ww:py-1 ww:text-sm ww:transition-colors ww:hover:bg-muted",e),...t}),AC=({className:e,...t})=>(0,oo.jsx)("span",{className:$("ww:inline-block ww:size-2 ww:shrink-0 ww:rounded-full ww:border ww:border-muted-foreground/50",e),...t}),EC=({className:e,...t})=>(0,oo.jsx)("span",{className:$("ww:line-clamp-1 ww:grow ww:break-words ww:text-muted-foreground",e),...t}),RC=({className:e,...t})=>(0,oo.jsx)("div",{className:$("ww:flex ww:shrink-0 ww:gap-1 ww:opacity-0 ww:transition-opacity ww:group-hover:opacity-100",e),...t}),DC=({className:e,...t})=>(0,oo.jsx)(en,{className:$("ww:size-auto ww:rounded ww:p-1 ww:text-muted-foreground ww:hover:bg-muted-foreground/10 ww:hover:text-foreground",e),size:"icon",type:"button",variant:"ghost",...t});var Ra=q(ee(),1),_C=(0,Vc.memo)(({message:e,onRemove:t})=>{let a=(0,Vc.useCallback)(()=>t(e.id),[t,e.id]);return(0,Ra.jsxs)(MC,{children:[(0,Ra.jsx)(AC,{}),(0,Ra.jsx)(EC,{children:e.text||"(attachment)"}),(0,Ra.jsx)(RC,{children:(0,Ra.jsx)(DC,{"aria-label":"Remove from queue",onClick:a,children:(0,Ra.jsx)(no,{className:"ww:size-3"})})})]})});_C.displayName="ChatQueueItem";function Al({queuedMessages:e,onRemove:t,className:a}){return e.length===0?null:(0,Ra.jsxs)(TC,{className:$("ww:border-t ww:border-border",a),children:[(0,Ra.jsxs)("div",{className:"ww:text-[11px] ww:font-medium ww:text-muted-foreground ww:px-2",children:[e.length," queued"]}),(0,Ra.jsx)("ul",{children:e.map(n=>(0,Ra.jsx)(_C,{message:n,onRemove:t},n.id))})]})}var vh=q(xe(),1),OC=q(ee(),1);function Gc({messages:e,evalEnabled:t,api:a="/api/waniwani"}){let[n,r]=(0,vh.useState)(!1),[o,l]=(0,vh.useState)(null),i=async()=>{let u={name:`session-${new Date().toISOString().slice(0,19)}`,type:"functional",messages:e,mode:"manual"};r(!0),l(null);try{let c=await fetch(`${a}/scenarios`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u)});if(!c.ok)throw new Error(`${c.status}`);l("saved")}catch{l("error")}finally{r(!1),setTimeout(()=>l(null),2e3)}};return!t||e.length===0?null:(0,OC.jsx)("button",{type:"button",onClick:i,disabled:n,title:"Save scenario to WaniWani",className:"ww:ml-auto ww:text-[10px] ww:font-mono ww:uppercase ww:tracking-wider ww:text-muted-foreground hover:ww:text-foreground ww:cursor-pointer ww:transition-colors ww:disabled:opacity-40",children:n?"saving...":o==="saved"?"saved":o==="error"?"error":"export"})}var xr=q(ee(),1),PC=({files:e,className:t,...a})=>e.length===0?null:(0,xr.jsx)("div",{className:$("ww:flex ww:flex-wrap ww:gap-1.5",t),...a,children:e.map((n,r)=>(0,xr.jsx)(sO,{file:n},r))});function sO({file:e}){return e.mediaType?.startsWith("image/")&&e.url?(0,xr.jsx)("img",{src:e.url,alt:e.filename??"attachment",className:"ww:h-16 ww:max-w-32 ww:rounded ww:object-cover"}):(0,xr.jsxs)("span",{className:"ww:inline-flex ww:items-center ww:gap-1.5 ww:rounded ww:bg-background/20 ww:px-2 ww:py-1 ww:text-xs",children:[(0,xr.jsx)(fs,{className:"ww:size-3 ww:shrink-0"}),(0,xr.jsx)("span",{className:"ww:max-w-24 ww:truncate",children:e.filename??"file"})]})}var wh=q(ee(),1),bh=({className:e,size:t=5,...a})=>(0,wh.jsx)("div",{className:$("ww:flex ww:items-center ww:gap-1",e),...a,children:[0,1,2].map(n=>(0,wh.jsx)("div",{className:"ww:rounded-full ww:bg-muted-foreground/60",style:{width:t,height:t,animation:"ww-pulse 1.4s ease-in-out infinite",animationDelay:`${n*.2}s`}},n))});var NC={name:"cjk-noop",type:"cjk",remarkPluginsBefore:[],remarkPluginsAfter:[],remarkPlugins:[]};var BC={name:"shiki-noop",type:"code-highlighter",supportsLanguage:()=>!1,getSupportedLanguages:()=>[],getThemes:()=>["github-light","github-dark"],highlight:()=>null};var hA=q(xe(),1);Zd();var Gs=q(ee(),1),tf=({className:e,from:t,children:a,...n})=>(0,Gs.jsx)("div",{className:$("ww:group ww:flex ww:w-full",t==="user"?"is-user ww:ml-auto ww:max-w-[80%] ww:flex-col ww:items-end":"is-assistant ww:flex-col",e),...n,children:(0,Gs.jsx)("div",{className:$("ww:flex ww:min-w-0 ww:flex-col ww:gap-2","ww:w-full"),children:a})}),af=({children:e,className:t,...a})=>(0,Gs.jsx)("div",{className:$("ww:flex ww:w-fit ww:min-w-0 ww:max-w-full ww:flex-col ww:gap-2 ww:overflow-hidden ww:text-base","ww:group-[.is-user]:ml-auto ww:group-[.is-user]:rounded-lg ww:group-[.is-user]:bg-user-bubble ww:group-[.is-user]:px-4 ww:group-[.is-user]:py-3 ww:group-[.is-user]:text-primary-foreground","ww:group-[.is-assistant]:text-foreground",t),...a,children:e}),Mz={cjk:NC,code:BC},nf=(0,hA.memo)(({className:e,...t})=>(0,Gs.jsx)(ef,{className:$("ww:size-full ww:[&>*:first-child]:mt-0 ww:[&>*:last-child]:mb-0",e),plugins:Mz,...t}),(e,t)=>e.children===t.children);nf.displayName="MessageResponse";var yA=q(ee(),1);function gA({className:e,text:t,...a}){return t?(0,yA.jsx)("pre",{className:$("ww:mb-2 ww:overflow-x-auto ww:whitespace-pre-wrap ww:break-words ww:text-xs ww:font-mono ww:text-muted-foreground",e),...a,children:t}):null}var vt=q(xe(),1);var fe=q(ee(),1);function Az(e,t=80){if(e==null)return String(e);if(typeof e!="object")return String(e).slice(0,t);if(Array.isArray(e))return`Array(${e.length})`;let a=JSON.stringify(e);if(a.length<=t)return a;let n=Object.entries(e),r=[],o=t-2;for(let[l,i]of n){if(o<=8)break;let s=l.length>4?`${l.slice(0,4)}\u2026`:l,u;typeof i=="string"?u=i.length>2?`'${i.slice(0,1)}\u2026`:`'${i}'`:Array.isArray(i)?u=`Array(${i.length})`:typeof i=="object"&&i!==null?u="{\u2026}":u=String(i);let c=`${s}\u2009${u}`;r.push(c),o-=c.length+3}return`{${r.join(", ")}}`}function Ez({text:e,className:t}){let[a,n]=(0,vt.useState)(!1),r=(0,vt.useRef)(null);(0,vt.useEffect)(()=>()=>{r.current&&clearTimeout(r.current)},[]);let o=(0,vt.useCallback)(async l=>{l.stopPropagation();try{await navigator.clipboard.writeText(e),n(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>n(!1),2e3)}catch{}},[e]);return(0,fe.jsx)(en,{variant:"ghost",size:"sm",onClick:o,className:$("ww:h-auto ww:gap-1 ww:px-1.5 ww:py-0.5 ww:text-xs ww:text-muted-foreground ww:hover:text-foreground",t),children:a?(0,fe.jsxs)(fe.Fragment,{children:[(0,fe.jsx)(ss,{className:"ww:size-3.5"}),(0,fe.jsx)("span",{children:"Copied"})]}):(0,fe.jsxs)(fe.Fragment,{children:[(0,fe.jsx)(ds,{className:"ww:size-3.5"}),(0,fe.jsx)("span",{children:"Copy"})]})})}function wA({data:e,label:t,className:a,...n}){let[r,o]=(0,vt.useState)(!1),l=(0,vt.useMemo)(()=>JSON.stringify(e,null,2),[e]),i=Az(e);return(0,fe.jsxs)("div",{className:$("ww:rounded-lg ww:bg-tool-card",a),...n,children:[(0,fe.jsxs)("div",{className:"ww:flex ww:items-center ww:justify-between ww:px-3 ww:pt-2.5 ww:pb-1.5",children:[(0,fe.jsx)("span",{className:"ww:text-xs ww:font-medium ww:text-muted-foreground",children:t}),(0,fe.jsx)(Ez,{text:l})]}),(0,fe.jsxs)("button",{type:"button",onClick:()=>o(s=>!s),className:"ww:flex ww:w-full ww:items-start ww:gap-2 ww:px-3 ww:pb-3 ww:text-left",children:[(0,fe.jsx)(cs,{className:$("ww:mt-0.5 ww:size-3.5 ww:shrink-0 ww:text-muted-foreground ww:transition-transform ww:duration-150",r&&"ww:rotate-90")}),r?(0,fe.jsx)("pre",{className:"ww:overflow-x-auto ww:text-xs ww:font-mono ww:text-foreground ww:whitespace-pre-wrap ww:break-all",children:(0,fe.jsx)("code",{children:l})}):(0,fe.jsx)("span",{className:"ww:truncate ww:text-xs ww:font-mono ww:text-foreground/80",children:i})]})]})}var Qy=(0,vt.createContext)({open:!1,toggle:()=>{}});function bA({className:e,defaultOpen:t=!1,children:a,...n}){let[r,o]=(0,vt.useState)(t);return(0,fe.jsx)(Qy.Provider,{value:{open:r,toggle:()=>o(l=>!l)},children:(0,fe.jsx)("div",{className:$("ww:mb-4 ww:w-full",e),"data-state":r?"open":"closed",...n,children:a})})}function SA({className:e,title:t,state:a,...n}){let{open:r,toggle:o}=(0,vt.useContext)(Qy),l=a==="input-available"||a==="input-streaming";return(0,fe.jsxs)("button",{type:"button",onClick:o,className:$("ww:flex ww:w-full ww:items-center ww:justify-between ww:gap-3 ww:py-1.5",e),"aria-expanded":r,...n,children:[(0,fe.jsxs)("div",{className:"ww:flex ww:min-w-0 ww:items-center ww:gap-2",children:[(0,fe.jsx)(yr,{className:"ww:size-4 ww:shrink-0 ww:text-muted-foreground"}),(0,fe.jsx)("span",{className:"ww:truncate ww:text-sm ww:font-medium",children:t}),l&&(0,fe.jsx)("span",{className:"ww:size-2 ww:shrink-0 ww:rounded-full ww:bg-primary ww:animate-pulse"})]}),(0,fe.jsx)(us,{className:$("ww:size-4 ww:shrink-0 ww:text-muted-foreground ww:transition-transform ww:duration-200",r&&"ww:rotate-180")})]})}function CA({className:e,children:t,...a}){let{open:n}=(0,vt.useContext)(Qy);return(0,fe.jsx)("div",{className:$("ww:grid ww:transition-[grid-template-rows,opacity] ww:duration-200 ww:ease-out",n?"ww:grid-rows-[1fr] ww:opacity-100":"ww:grid-rows-[0fr] ww:opacity-0"),children:(0,fe.jsx)("div",{className:"ww:min-h-0 ww:overflow-hidden",children:(0,fe.jsx)("div",{className:$("ww:mt-2 ww:space-y-3 ww:rounded-lg ww:border ww:border-border ww:bg-background ww:p-3",e),...a,children:t})})})}function IA({className:e,input:t,debug:a,...n}){let r=(0,vt.useMemo)(()=>{if(!a&&typeof t=="object"&&t!==null&&!Array.isArray(t)){let{_meta:o,...l}=t;return l}return t},[t,a]);return(0,fe.jsx)(wA,{data:r,label:"Request",className:e,...n})}function Zy(e){if(!(typeof e!="object"||e===null))return e}function LA(e){return Zy(e?.ui)}function kA(e){return Zy(Zy(e)?._meta)}function xA(e){if(!e)return;let t=LA(e)?.resourceUri;if(typeof t=="string"&&t.length>0)return t;let a=e["ui/resourceUri"];if(typeof a=="string"&&a.length>0)return a;let n=e["openai/outputTemplate"];if(typeof n=="string"&&n.length>0)return n}function vA(e){return LA(e)?.autoHeight===!0}function rf(e,t,a){if(e){let n=xA(a?.[e]?._meta);if(n)return n}return xA(kA(t))}function TA(e,t,a){return e&&vA(a?.[e]?._meta)?!0:vA(kA(t))}function MA({className:e,output:t,errorText:a,debug:n,...r}){let o=(0,vt.useMemo)(()=>{if(!n&&typeof t=="object"&&t!==null&&!Array.isArray(t)){let{_meta:l,...i}=t;return i}return t},[t,n]);return t||a?a?(0,fe.jsxs)("div",{className:$("ww:space-y-2",e),...r,children:[(0,fe.jsx)("h4",{className:"ww:text-xs ww:font-medium ww:uppercase ww:tracking-wide ww:text-muted-foreground",children:"Error"}),(0,fe.jsx)("div",{className:"ww:rounded-lg ww:bg-destructive/10 ww:p-3 ww:text-xs ww:text-destructive",children:a})]}):(0,fe.jsx)(wA,{data:o,label:"Response",className:e,...r}):null}var qe=q(xe(),1);function Fl(e){if(!e)return!1;let t=Array.isArray(e.content)&&e.content.length>0,a=typeof e.structuredContent=="object"&&e.structuredContent!==null&&Object.keys(e.structuredContent).length>0;return t||a}function AA(e,t){return!Fl(e)&&!Fl(t)?null:Fl(e)?Fl(t)?{...e.content||t.content?{content:[...e.content??[],...t.content??[]]}:{},...e.structuredContent||t.structuredContent?{structuredContent:{...e.structuredContent??{},...t.structuredContent??{}}}:{}}:{...e.content?{content:[...e.content]}:{},...e.structuredContent?{structuredContent:{...e.structuredContent}}:{}}:{...t?.content?{content:[...t.content]}:{},...t?.structuredContent?{structuredContent:{...t.structuredContent}}:{}}}var RA=q(ee(),1),Rz="/api/mcp/resource",Dz=500,_z=0,Oz=16,Pz="2026-01-26",Nz=300,Bz=3e3,Uz=3;function zz(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function qz(e,t,a){return rf(e,t,a)?!1:t._meta?.["waniwani/autoInjectResultText"]!==!1}function EA({resourceUri:e,toolInput:t,toolResult:a,resourceEndpoint:n=Rz,chatSessionId:r,isDark:o=!1,className:l,autoHeight:i=!1,onOpenLink:s,onFollowUp:u,onCallTool:c,onDisplayModeChange:d,isFullscreen:f=!1,toolDefinitions:p}){let y=(0,qe.useRef)(null),v=(0,qe.useRef)(t),S=(0,qe.useRef)(a),g=(0,qe.useRef)({width:0,height:0}),x=(0,qe.useRef)(null),m=(0,qe.useRef)(!1),w=(0,qe.useRef)(0),L=(0,qe.useRef)("inline"),[b,A]=(0,qe.useState)(_z),[R,_]=(0,qe.useState)(void 0),T=(0,qe.useRef)(s),D=(0,qe.useRef)(u),N=(0,qe.useRef)(c),B=(0,qe.useRef)(d),j=(0,qe.useRef)(r),V=(0,qe.useRef)(p);v.current=t,S.current=a,T.current=s,D.current=u,N.current=c,B.current=d,j.current=r,V.current=p;let F=(0,qe.useCallback)(Z=>i?Math.max(Z+Oz,0):Math.min(Math.max(Z,50),Dz),[i]),te=(0,qe.useMemo)(()=>{let Z=n.includes("?")?"&":"?";return`${n}${Z}uri=${encodeURIComponent(e)}`},[n,e]),$e=(0,qe.useRef)(o);return $e.current=o,(0,qe.useEffect)(()=>{if(!m.current)return;let Z=y.current;Z?.contentWindow&&Z.contentWindow.postMessage({jsonrpc:"2.0",method:"ui/notifications/host-context-changed",params:{theme:o?"dark":"light"}},"*")},[o]),(0,qe.useEffect)(()=>{let Z=y.current;if(!Z)return;let C=!1,Xe=!1,le=null,k=null,Ze=setTimeout(()=>{if(C||Xe||w.current>=Uz)return;w.current+=1;let G=new URL(Z.src);G.searchParams.set("_retry",String(w.current)),Z.src=G.toString()},Bz),Ue=G=>{Z.contentWindow?.postMessage(G,"*")},Hn=G=>{if(C||G.source!==Z.contentWindow)return;let Q=G.data;if(!Q||typeof Q!="object"||Q.jsonrpc!=="2.0")return;let ke=Q.method,se=Q.id;if(ke==="ui/initialize"&&se!=null){Xe=!0,clearTimeout(Ze),Ue({jsonrpc:"2.0",id:se,result:{protocolVersion:Q.params?.protocolVersion??Pz,hostInfo:{name:"WaniWani Chat",version:"1.0.0"},hostCapabilities:{openLinks:{},message:{text:{}},tools:{},updateModelContext:{text:{},structuredContent:{}}},hostContext:{theme:$e.current?"dark":"light",displayMode:L.current}}});return}if(ke==="ui/notifications/initialized"){m.current=!0;let Se=v.current,Le=S.current,Fe=Le._meta&&typeof Le._meta=="object"?Le._meta:null,St=zz(j.current),zt=Fe&&typeof Fe.waniwani=="object"&&Fe.waniwani!==null?Fe.waniwani:null,un=zt||St?{...zt??{},...St?{sessionId:St}:{}}:void 0,cn=Fe||un?{...Fe??{},...un?{waniwani:un}:{}}:void 0;Ue({jsonrpc:"2.0",method:"ui/notifications/tool-input",params:{arguments:Se}});let Mo=Le.content??[{type:"text",text:JSON.stringify(Le)}];Ue({jsonrpc:"2.0",method:"ui/notifications/tool-result",params:{content:Mo,structuredContent:Le.structuredContent,_meta:cn,meta:cn}});return}if(ke==="ui/notifications/size-changed"){let Se=Q.params,Le=typeof Se?.height=="number"?Se.height:void 0,Fe=typeof Se?.width=="number"?Se.width:void 0,St=g.current,zt=Le!==void 0&&Le!==St.height,un=Fe!==void 0&&Fe!==St.width;if(!zt&&!un)return;if(zt&&Le!==void 0){St.height=Le;let cn=F(Le),Mo=Z.getBoundingClientRect().height;if(x.current&&(x.current.cancel(),x.current=null),A(cn),Z.animate&&Math.abs(Mo-cn)>2){let Pr=Z.animate([{height:`${Mo}px`},{height:`${cn}px`}],{duration:Nz,easing:"ease-out",fill:"forwards"});x.current=Pr,Pr.onfinish=()=>{x.current===Pr&&(Pr.cancel(),x.current=null)}}}un&&i&&Fe!==void 0&&(St.width=Fe,_(Fe));return}if(ke==="ui/open-link"&&se!=null){let Se=Q.params?.url;typeof Se=="string"&&(T.current?T.current(Se):window.open(Se,"_blank","noopener,noreferrer")),Ue({jsonrpc:"2.0",id:se,result:{}});return}if(ke==="ui/message"&&se!=null){if(D.current&&Q.params){let Se=Q.params,Le=le;if(le=null,k){clearTimeout(k.timer);let Fe=k.text;k=null;let St=(Se.content??[]).map(zt=>zt.text??"").join("").trim();Se={...Se,content:[{type:"text",text:`${St}
122
122
 
123
123
  ${Fe}`}]}}D.current({...Se,...Le?{modelContext:Le}:{}})}Ue({jsonrpc:"2.0",id:se,result:{}});return}if(ke==="ui/update-model-context"&&se!=null){le=AA(le,Q.params),Ue({jsonrpc:"2.0",id:se,result:{}});return}if(ke==="tools/call"&&se!=null){let Se=N.current;if(!Se){Ue({jsonrpc:"2.0",id:se,error:{code:-32601,message:"tools/call not supported"}});return}let Le=Q.params?.name;Se({name:Le,arguments:Q.params?.arguments??{}}).then(Fe=>{Ue({jsonrpc:"2.0",id:se,result:Fe});let St=Fe.content?.map(zt=>zt.text??"").join("").trim();St&&qz(Le,Fe,V.current)&&(k&&clearTimeout(k.timer),k={text:St,timer:setTimeout(()=>{if(C)return;let zt=le;le=null,k=null,D.current?.({role:"user",content:[{type:"text",text:St}],...zt?{modelContext:zt}:{}})},500)})}).catch(Fe=>{let St=Fe instanceof Error?Fe.message:"Tool call failed";Ue({jsonrpc:"2.0",id:se,error:{code:-32e3,message:St}})});return}if(ke==="ui/request-display-mode"&&se!=null){let Se=Q.params?.mode,Le=Se==="fullscreen"||Se==="inline"||Se==="pip"?Se:"inline";L.current=Le,Ue({jsonrpc:"2.0",id:se,result:{mode:Le}}),Ue({jsonrpc:"2.0",method:"ui/notifications/host-context-changed",params:{displayMode:Le}}),B.current?.(Le);return}if(ke==="ui/resource-teardown"&&se!=null){Ue({jsonrpc:"2.0",id:se,result:{}});return}ke==="ping"&&se!=null&&Ue({jsonrpc:"2.0",id:se,result:{}})};return window.addEventListener("message",Hn),()=>{C=!0,clearTimeout(Ze),k&&clearTimeout(k.timer),window.removeEventListener("message",Hn)}},[i,F]),(0,RA.jsx)("iframe",{ref:y,src:te,sandbox:"allow-scripts allow-forms allow-same-origin",className:$(!f&&"ww:rounded-md ww:border ww:border-border",l),style:{height:f?"100%":b,minWidth:f||!R?void 0:`min(${R}px, 100%)`,width:"100%",border:"none",colorScheme:o?"dark":"auto"},title:"MCP App"})}var Ar=q(ee(),1);function DA({icon:e,title:t,description:a,suggestions:n,onSuggestionSelect:r}){return(0,Ar.jsxs)("div",{className:"ww:flex ww:flex-col ww:items-center ww:justify-center ww:py-12 ww:px-6 ww:text-center ww:min-h-full",children:[e&&(0,Ar.jsx)("div",{className:"ww:mb-4 ww:flex ww:items-center ww:justify-center ww:size-12 ww:rounded-xl ww:bg-foreground ww:text-background",children:e}),(0,Ar.jsx)("h2",{className:"ww:text-lg ww:font-semibold ww:text-foreground",children:t}),a&&(0,Ar.jsx)("p",{className:"ww:mt-1 ww:text-sm ww:text-muted-foreground ww:max-w-sm",children:a}),n&&n.length>0&&(0,Ar.jsx)("div",{className:"ww:mt-6 ww:w-full ww:max-w-md ww:flex ww:flex-col ww:gap-2",children:n.map((o,l)=>(0,Ar.jsx)("button",{type:"button",onClick:()=>r?.(o),className:$("ww:w-full ww:text-left ww:rounded-xl ww:border ww:border-border ww:bg-background ww:px-4 ww:py-3 ww:text-sm","ww:text-foreground ww:hover:bg-accent ww:hover:border-primary/30","ww:transition-all ww:duration-200 ww:ease-out ww:cursor-pointer","ww:animate-[ww-fade-in_0.2s_ease-out_both]"),style:{animationDelay:`${l*50}ms`},children:o},o))})]})}var _A=q(xe(),1);var Ws=q(ee(),1),of=class extends _A.Component{constructor(){super(...arguments);ve(this,"state",{hasError:!1})}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(a){console.warn("[WaniWani] Widget failed to render:",a.message)}render(){return this.state.hasError?(0,Ws.jsxs)("div",{className:"ww:flex ww:items-center ww:justify-between ww:rounded-md ww:border ww:border-border ww:bg-muted/50 ww:px-4 ww:py-3 ww:text-sm ww:text-muted-foreground",children:[(0,Ws.jsx)("span",{children:"Widget failed to load"}),(0,Ws.jsx)("button",{type:"button",onClick:()=>this.setState({hasError:!1}),className:"ww:text-xs ww:font-medium ww:text-primary ww:hover:underline",children:"Retry"})]}):this.props.children}};var Ee=q(ee(),1);function Fz(e){return e?e.replace(/[-_]/g," ").replace(/^\w/,t=>t.toUpperCase()):"Tool"}function Hl({messages:e,status:t,welcomeMessage:a,welcome:n,onSuggestionSelect:r,resourceEndpoint:o,chatSessionId:l,isDark:i,onFollowUp:s,onCallTool:u,onWidgetDisplayModeChange:c,fullscreenToolCallId:d,debug:f,toolDefinitions:p}){let y=t==="submitted"||t==="streaming",v=e[e.length-1],S=e.length>0,g=y&&(!S||v.role==="user"),x=d!=null;return(0,Ee.jsxs)(Ee.Fragment,{children:[!x&&(!S&&n?(0,Ee.jsx)(DA,{...n,onSuggestionSelect:r}):a&&(0,Ee.jsx)(tf,{from:"assistant",children:(0,Ee.jsx)(af,{children:(0,Ee.jsx)(nf,{children:a})})})),e.map(m=>{let w=m.parts.filter(D=>D.type==="text"),L=m.parts.filter(D=>D.type==="reasoning"),b=m.parts.filter(D=>D.type==="file"),A=m.parts.filter(D=>"toolCallId"in D),R=m===v&&m.role==="assistant",_=w.length>0,T=x?A.some(D=>D.toolCallId===d):!1;return x&&!T?(0,Ee.jsx)("div",{style:{display:"none"}},m.id):(0,Ee.jsxs)(tf,{from:m.role,children:[!T&&L.map((D,N)=>(0,Ee.jsx)(gA,{text:D.text},`reasoning-${m.id}-${N}`)),A.map(D=>{let N="output"in D?D.output:void 0,B=rf(D.toolName,N,p),j=TA(D.toolName,N,p),V=D.toolCallId===d;return(0,Ee.jsxs)("div",{style:V?{position:"absolute",inset:0,zIndex:10,display:"flex",flexDirection:"column",overflow:"hidden",background:"var(--ww-color-background)"}:void 0,children:[(0,Ee.jsx)("div",{style:V?{display:"none"}:void 0,children:(0,Ee.jsxs)(bA,{children:[(0,Ee.jsx)(SA,{title:D.title??Fz(D.toolName),state:D.state}),(0,Ee.jsxs)(CA,{children:[(0,Ee.jsx)(IA,{input:D.input,debug:f}),N!==void 0&&(0,Ee.jsx)(MA,{output:N,errorText:"errorText"in D?D.errorText:void 0,debug:f})]})]})}),B&&o&&N!==void 0&&(0,Ee.jsx)(of,{children:(0,Ee.jsx)(EA,{isFullscreen:V,resourceUri:B,toolInput:D.input??{},toolResult:{content:N.content,structuredContent:N.structuredContent,_meta:N._meta},resourceEndpoint:o,chatSessionId:l,isDark:i,autoHeight:j,toolDefinitions:p,onFollowUp:s,onCallTool:u,onDisplayModeChange:c?F=>c(F,{toolCallId:D.toolCallId,resourceUri:B,toolInput:D.input??{},toolResult:{content:N.content,structuredContent:N.structuredContent,_meta:N._meta},autoHeight:j}):void 0})})]},D.toolCallId)}),!T&&(0,Ee.jsx)("div",{children:(0,Ee.jsxs)(af,{children:[b.length>0&&(0,Ee.jsx)(PC,{files:b}),_?w.map((D,N)=>(0,Ee.jsx)(nf,{children:D.type==="text"?D.text:""},`${m.id}-${N}`)):R&&y&&(0,Ee.jsx)(bh,{})]})})]},m.id)}),!x&&g&&(0,Ee.jsx)(tf,{from:"assistant",children:(0,Ee.jsx)(af,{children:(0,Ee.jsx)(bh,{})})})]})}var $s=q(ee(),1);function jl({suggestions:e,isLoading:t,onSelect:a,className:n,...r}){return e.length===0&&!t?null:(0,$s.jsx)("div",{className:$("ww:px-4 ww:py-2",n),...r,children:(0,$s.jsx)("div",{className:"ww:mx-auto ww:w-full ww:max-w-3xl ww:flex ww:flex-wrap ww:gap-2",children:t?[0,1,2].map(o=>(0,$s.jsx)("div",{className:"ww:h-7 ww:rounded-full ww:bg-accent ww:animate-pulse",style:{width:`${60+o*20}px`}},o)):e.map((o,l)=>(0,$s.jsx)("button",{type:"button",onClick:()=>a(o),className:$("ww:rounded-full ww:border ww:border-border ww:bg-background ww:px-3 ww:py-1 ww:text-xs","ww:text-foreground ww:hover:bg-accent ww:hover:border-primary/30","ww:transition-all ww:duration-200 ww:ease-out ww:cursor-pointer","ww:animate-[ww-fade-in_0.2s_ease-out_both]"),style:{animationDelay:`${l*50}ms`},children:o},o))})})}var lf=q(xe(),1);function Vl(e){let t=(0,lf.useRef)(e);return t.current=e,(0,lf.useCallback)(async a=>{let{api:n,headers:r,onCallTool:o,sessionId:l}=t.current;if(o)return o(a);let i=`${n??"/api/waniwani"}/tool`,s=typeof l=="string"&&l.trim().length>0?l.trim():void 0,u=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json",...s?{"X-Session-Id":s}:{},...r},body:JSON.stringify(a)});if(!u.ok)throw new Error(`Tool call failed: ${u.status} ${u.statusText}`);return u.json()},[])}var Na=q(xe(),1);var sE="vercel.ai.error",Hz=Symbol.for(sE),OA,PA,ge=class uE extends(PA=Error,OA=Hz,PA){constructor({name:t,message:a,cause:n}){super(a),this[OA]=!0,this.name=t,this.cause=n}static isInstance(t){return uE.hasMarker(t,sE)}static hasMarker(t,a){let n=Symbol.for(a);return t!=null&&typeof t=="object"&&n in t&&typeof t[n]=="boolean"&&t[n]===!0}},cE="AI_APICallError",dE=`vercel.ai.error.${cE}`,jz=Symbol.for(dE),NA,BA,fY=class extends(BA=ge,NA=jz,BA){constructor({message:e,url:t,requestBodyValues:a,statusCode:n,responseHeaders:r,responseBody:o,cause:l,isRetryable:i=n!=null&&(n===408||n===409||n===429||n>=500),data:s}){super({name:cE,message:e,cause:l}),this[NA]=!0,this.url=t,this.requestBodyValues=a,this.statusCode=n,this.responseHeaders=r,this.responseBody=o,this.isRetryable=i,this.data=s}static isInstance(e){return ge.hasMarker(e,dE)}},fE="AI_EmptyResponseBodyError",pE=`vercel.ai.error.${fE}`,Vz=Symbol.for(pE),UA,zA,pY=class extends(zA=ge,UA=Vz,zA){constructor({message:e="Empty response body"}={}){super({name:fE,message:e}),this[UA]=!0}static isInstance(e){return ge.hasMarker(e,pE)}};function mE(e){return e==null?"unknown error":typeof e=="string"?e:e instanceof Error?e.message:JSON.stringify(e)}var hE="AI_InvalidArgumentError",gE=`vercel.ai.error.${hE}`,Gz=Symbol.for(gE),qA,FA,yE=class extends(FA=ge,qA=Gz,FA){constructor({message:e,cause:t,argument:a}){super({name:hE,message:e,cause:t}),this[qA]=!0,this.argument=a}static isInstance(e){return ge.hasMarker(e,gE)}},xE="AI_InvalidPromptError",vE=`vercel.ai.error.${xE}`,Wz=Symbol.for(vE),HA,jA,mY=class extends(jA=ge,HA=Wz,jA){constructor({prompt:e,message:t,cause:a}){super({name:xE,message:`Invalid prompt: ${t}`,cause:a}),this[HA]=!0,this.prompt=e}static isInstance(e){return ge.hasMarker(e,vE)}},wE="AI_InvalidResponseDataError",bE=`vercel.ai.error.${wE}`,$z=Symbol.for(bE),VA,GA,hY=class extends(GA=ge,VA=$z,GA){constructor({data:e,message:t=`Invalid response data: ${JSON.stringify(e)}.`}){super({name:wE,message:t}),this[VA]=!0,this.data=e}static isInstance(e){return ge.hasMarker(e,bE)}},SE="AI_JSONParseError",CE=`vercel.ai.error.${SE}`,Xz=Symbol.for(CE),WA,$A,Yy=class extends($A=ge,WA=Xz,$A){constructor({text:e,cause:t}){super({name:SE,message:`JSON parsing failed: Text: ${e}.
124
124
  Error message: ${mE(t)}`,cause:t}),this[WA]=!0,this.text=e}static isInstance(e){return ge.hasMarker(e,CE)}},IE="AI_LoadAPIKeyError",LE=`vercel.ai.error.${IE}`,Zz=Symbol.for(LE),XA,ZA,gY=class extends(ZA=ge,XA=Zz,ZA){constructor({message:e}){super({name:IE,message:e}),this[XA]=!0}static isInstance(e){return ge.hasMarker(e,LE)}},kE="AI_LoadSettingError",TE=`vercel.ai.error.${kE}`,Qz=Symbol.for(TE),QA,KA,yY=class extends(KA=ge,QA=Qz,KA){constructor({message:e}){super({name:kE,message:e}),this[QA]=!0}static isInstance(e){return ge.hasMarker(e,TE)}},ME="AI_NoContentGeneratedError",AE=`vercel.ai.error.${ME}`,Kz=Symbol.for(AE),YA,JA,xY=class extends(JA=ge,YA=Kz,JA){constructor({message:e="No content generated."}={}){super({name:ME,message:e}),this[YA]=!0}static isInstance(e){return ge.hasMarker(e,AE)}},EE="AI_NoSuchModelError",RE=`vercel.ai.error.${EE}`,Yz=Symbol.for(RE),eE,tE,vY=class extends(tE=ge,eE=Yz,tE){constructor({errorName:e=EE,modelId:t,modelType:a,message:n=`No such ${a}: ${t}`}){super({name:e,message:n}),this[eE]=!0,this.modelId=t,this.modelType=a}static isInstance(e){return ge.hasMarker(e,RE)}},DE="AI_TooManyEmbeddingValuesForCallError",_E=`vercel.ai.error.${DE}`,Jz=Symbol.for(_E),aE,nE,wY=class extends(nE=ge,aE=Jz,nE){constructor(e){super({name:DE,message:`Too many values for a single embedding call. The ${e.provider} model "${e.modelId}" can only embed up to ${e.maxEmbeddingsPerCall} values per call, but ${e.values.length} values were provided.`}),this[aE]=!0,this.provider=e.provider,this.modelId=e.modelId,this.maxEmbeddingsPerCall=e.maxEmbeddingsPerCall,this.values=e.values}static isInstance(e){return ge.hasMarker(e,_E)}},OE="AI_TypeValidationError",PE=`vercel.ai.error.${OE}`,eq=Symbol.for(PE),rE,oE,rn=class Ky extends(oE=ge,rE=eq,oE){constructor({value:t,cause:a,context:n}){let r="Type validation failed";if(n?.field&&(r+=` for ${n.field}`),n?.entityName||n?.entityId){r+=" (";let o=[];n.entityName&&o.push(n.entityName),n.entityId&&o.push(`id: "${n.entityId}"`),r+=o.join(", "),r+=")"}super({name:OE,message:`${r}: Value: ${JSON.stringify(t)}.
@@ -135,7 +135,7 @@ Error message: ${mE(a)}`,cause:a}),this[rE]=!0,this.value=t,this.context=n}stati
135
135
  `)},flush(e){e.enqueue(`data: [DONE]
136
136
 
137
137
  `)}})}};var dx=ff(()=>Zs(h.union([h.strictObject({type:h.literal("text-start"),id:h.string(),providerMetadata:W.optional()}),h.strictObject({type:h.literal("text-delta"),id:h.string(),delta:h.string(),providerMetadata:W.optional()}),h.strictObject({type:h.literal("text-end"),id:h.string(),providerMetadata:W.optional()}),h.strictObject({type:h.literal("error"),errorText:h.string()}),h.strictObject({type:h.literal("tool-input-start"),toolCallId:h.string(),toolName:h.string(),providerExecuted:h.boolean().optional(),providerMetadata:W.optional(),dynamic:h.boolean().optional(),title:h.string().optional()}),h.strictObject({type:h.literal("tool-input-delta"),toolCallId:h.string(),inputTextDelta:h.string()}),h.strictObject({type:h.literal("tool-input-available"),toolCallId:h.string(),toolName:h.string(),input:h.unknown(),providerExecuted:h.boolean().optional(),providerMetadata:W.optional(),dynamic:h.boolean().optional(),title:h.string().optional()}),h.strictObject({type:h.literal("tool-input-error"),toolCallId:h.string(),toolName:h.string(),input:h.unknown(),providerExecuted:h.boolean().optional(),providerMetadata:W.optional(),dynamic:h.boolean().optional(),errorText:h.string(),title:h.string().optional()}),h.strictObject({type:h.literal("tool-approval-request"),approvalId:h.string(),toolCallId:h.string()}),h.strictObject({type:h.literal("tool-output-available"),toolCallId:h.string(),output:h.unknown(),providerExecuted:h.boolean().optional(),providerMetadata:W.optional(),dynamic:h.boolean().optional(),preliminary:h.boolean().optional()}),h.strictObject({type:h.literal("tool-output-error"),toolCallId:h.string(),errorText:h.string(),providerExecuted:h.boolean().optional(),providerMetadata:W.optional(),dynamic:h.boolean().optional()}),h.strictObject({type:h.literal("tool-output-denied"),toolCallId:h.string()}),h.strictObject({type:h.literal("reasoning-start"),id:h.string(),providerMetadata:W.optional()}),h.strictObject({type:h.literal("reasoning-delta"),id:h.string(),delta:h.string(),providerMetadata:W.optional()}),h.strictObject({type:h.literal("reasoning-end"),id:h.string(),providerMetadata:W.optional()}),h.strictObject({type:h.literal("source-url"),sourceId:h.string(),url:h.string(),title:h.string().optional(),providerMetadata:W.optional()}),h.strictObject({type:h.literal("source-document"),sourceId:h.string(),mediaType:h.string(),title:h.string(),filename:h.string().optional(),providerMetadata:W.optional()}),h.strictObject({type:h.literal("file"),url:h.string(),mediaType:h.string(),providerMetadata:W.optional()}),h.strictObject({type:h.custom(e=>typeof e=="string"&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:h.string().optional(),data:h.unknown(),transient:h.boolean().optional()}),h.strictObject({type:h.literal("start-step")}),h.strictObject({type:h.literal("finish-step")}),h.strictObject({type:h.literal("start"),messageId:h.string().optional(),messageMetadata:h.unknown().optional()}),h.strictObject({type:h.literal("finish"),finishReason:h.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:h.unknown().optional()}),h.strictObject({type:h.literal("abort"),reason:h.string().optional()}),h.strictObject({type:h.literal("message-metadata"),messageMetadata:h.unknown()})])));function UF(e){return e.type.startsWith("data-")}function cx(e){return e.type.startsWith("tool-")}function zF(e){return e.type==="dynamic-tool"}function gf(e){return cx(e)||zF(e)}function t2(e){return e.type.split("-").slice(1).join("-")}function qF({lastMessage:e,messageId:t}){return{message:e?.role==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function FF({stream:e,messageMetadataSchema:t,dataPartSchemas:a,runUpdateMessageJob:n,onError:r,onToolCall:o,onData:l}){return e.pipeThrough(new TransformStream({async transform(i,s){await n(async({state:u,write:c})=>{var d,f,p,y;function v(m){let L=u.message.parts.filter(gf).find(b=>b.toolCallId===m);if(L==null)throw new Wl({chunkType:"tool-invocation",chunkId:m,message:`No tool invocation found for tool call ID "${m}".`});return L}function S(m){var w;let L=u.message.parts.find(R=>cx(R)&&R.toolCallId===m.toolCallId),b=m,A=L;if(L!=null){L.state=m.state,A.input=b.input,A.output=b.output,A.errorText=b.errorText,A.rawInput=b.rawInput,A.preliminary=b.preliminary,m.title!==void 0&&(A.title=m.title),A.providerExecuted=(w=b.providerExecuted)!=null?w:L.providerExecuted;let R=b.providerMetadata;if(R!=null)if(m.state==="output-available"||m.state==="output-error"){let _=L;_.resultProviderMetadata=R}else L.callProviderMetadata=R}else u.message.parts.push({type:`tool-${m.toolName}`,toolCallId:m.toolCallId,state:m.state,title:m.title,input:b.input,output:b.output,rawInput:b.rawInput,errorText:b.errorText,providerExecuted:b.providerExecuted,preliminary:b.preliminary,...b.providerMetadata!=null&&(m.state==="output-available"||m.state==="output-error")?{resultProviderMetadata:b.providerMetadata}:{},...b.providerMetadata!=null&&!(m.state==="output-available"||m.state==="output-error")?{callProviderMetadata:b.providerMetadata}:{}})}function g(m){var w,L;let b=u.message.parts.find(_=>_.type==="dynamic-tool"&&_.toolCallId===m.toolCallId),A=m,R=b;if(b!=null){b.state=m.state,R.toolName=m.toolName,R.input=A.input,R.output=A.output,R.errorText=A.errorText,R.rawInput=(w=A.rawInput)!=null?w:R.rawInput,R.preliminary=A.preliminary,m.title!==void 0&&(R.title=m.title),R.providerExecuted=(L=A.providerExecuted)!=null?L:b.providerExecuted;let _=A.providerMetadata;if(_!=null)if(m.state==="output-available"||m.state==="output-error"){let T=b;T.resultProviderMetadata=_}else b.callProviderMetadata=_}else u.message.parts.push({type:"dynamic-tool",toolName:m.toolName,toolCallId:m.toolCallId,state:m.state,input:A.input,output:A.output,errorText:A.errorText,preliminary:A.preliminary,providerExecuted:A.providerExecuted,title:m.title,...A.providerMetadata!=null&&(m.state==="output-available"||m.state==="output-error")?{resultProviderMetadata:A.providerMetadata}:{},...A.providerMetadata!=null&&!(m.state==="output-available"||m.state==="output-error")?{callProviderMetadata:A.providerMetadata}:{}})}async function x(m){if(m!=null){let w=u.message.metadata!=null?f2(u.message.metadata,m):m;t!=null&&await hf({value:w,schema:t,context:{field:"message.metadata",entityId:u.message.id}}),u.message.metadata=w}}switch(i.type){case"text-start":{let m={type:"text",text:"",providerMetadata:i.providerMetadata,state:"streaming"};u.activeTextParts[i.id]=m,u.message.parts.push(m),c();break}case"text-delta":{let m=u.activeTextParts[i.id];if(m==null)throw new Wl({chunkType:"text-delta",chunkId:i.id,message:`Received text-delta for missing text part with ID "${i.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});m.text+=i.delta,m.providerMetadata=(d=i.providerMetadata)!=null?d:m.providerMetadata,c();break}case"text-end":{let m=u.activeTextParts[i.id];if(m==null)throw new Wl({chunkType:"text-end",chunkId:i.id,message:`Received text-end for missing text part with ID "${i.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});m.state="done",m.providerMetadata=(f=i.providerMetadata)!=null?f:m.providerMetadata,delete u.activeTextParts[i.id],c();break}case"reasoning-start":{let m={type:"reasoning",text:"",providerMetadata:i.providerMetadata,state:"streaming"};u.activeReasoningParts[i.id]=m,u.message.parts.push(m),c();break}case"reasoning-delta":{let m=u.activeReasoningParts[i.id];if(m==null)throw new Wl({chunkType:"reasoning-delta",chunkId:i.id,message:`Received reasoning-delta for missing reasoning part with ID "${i.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});m.text+=i.delta,m.providerMetadata=(p=i.providerMetadata)!=null?p:m.providerMetadata,c();break}case"reasoning-end":{let m=u.activeReasoningParts[i.id];if(m==null)throw new Wl({chunkType:"reasoning-end",chunkId:i.id,message:`Received reasoning-end for missing reasoning part with ID "${i.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});m.providerMetadata=(y=i.providerMetadata)!=null?y:m.providerMetadata,m.state="done",delete u.activeReasoningParts[i.id],c();break}case"file":{u.message.parts.push({type:"file",mediaType:i.mediaType,url:i.url,...i.providerMetadata!=null?{providerMetadata:i.providerMetadata}:{}}),c();break}case"source-url":{u.message.parts.push({type:"source-url",sourceId:i.sourceId,url:i.url,title:i.title,providerMetadata:i.providerMetadata}),c();break}case"source-document":{u.message.parts.push({type:"source-document",sourceId:i.sourceId,mediaType:i.mediaType,title:i.title,filename:i.filename,providerMetadata:i.providerMetadata}),c();break}case"tool-input-start":{let m=u.message.parts.filter(cx);u.partialToolCalls[i.toolCallId]={text:"",toolName:i.toolName,index:m.length,dynamic:i.dynamic,title:i.title},i.dynamic?g({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-streaming",input:void 0,providerExecuted:i.providerExecuted,title:i.title,providerMetadata:i.providerMetadata}):S({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-streaming",input:void 0,providerExecuted:i.providerExecuted,title:i.title,providerMetadata:i.providerMetadata}),c();break}case"tool-input-delta":{let m=u.partialToolCalls[i.toolCallId];if(m==null)throw new Wl({chunkType:"tool-input-delta",chunkId:i.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${i.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});m.text+=i.inputTextDelta;let{value:w}=await Ks(m.text);m.dynamic?g({toolCallId:i.toolCallId,toolName:m.toolName,state:"input-streaming",input:w,title:m.title}):S({toolCallId:i.toolCallId,toolName:m.toolName,state:"input-streaming",input:w,title:m.title}),c();break}case"tool-input-available":{i.dynamic?g({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-available",input:i.input,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:i.title}):S({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-available",input:i.input,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:i.title}),c(),o&&!i.providerExecuted&&await o({toolCall:i});break}case"tool-input-error":{let m=u.message.parts.filter(gf).find(L=>L.toolCallId===i.toolCallId);(m!=null?m.type==="dynamic-tool":!!i.dynamic)?g({toolCallId:i.toolCallId,toolName:i.toolName,state:"output-error",input:i.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata}):S({toolCallId:i.toolCallId,toolName:i.toolName,state:"output-error",input:void 0,rawInput:i.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata}),c();break}case"tool-approval-request":{let m=v(i.toolCallId);m.state="approval-requested",m.approval={id:i.approvalId},c();break}case"tool-output-denied":{let m=v(i.toolCallId);m.state="output-denied",c();break}case"tool-output-available":{let m=v(i.toolCallId);m.type==="dynamic-tool"?g({toolCallId:i.toolCallId,toolName:m.toolName,state:"output-available",input:m.input,output:i.output,preliminary:i.preliminary,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:m.title}):S({toolCallId:i.toolCallId,toolName:t2(m),state:"output-available",input:m.input,output:i.output,providerExecuted:i.providerExecuted,preliminary:i.preliminary,providerMetadata:i.providerMetadata,title:m.title}),c();break}case"tool-output-error":{let m=v(i.toolCallId);m.type==="dynamic-tool"?g({toolCallId:i.toolCallId,toolName:m.toolName,state:"output-error",input:m.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:m.title}):S({toolCallId:i.toolCallId,toolName:t2(m),state:"output-error",input:m.input,rawInput:m.rawInput,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:m.title}),c();break}case"start-step":{u.message.parts.push({type:"step-start"});break}case"finish-step":{u.activeTextParts={},u.activeReasoningParts={};break}case"start":{i.messageId!=null&&(u.message.id=i.messageId),await x(i.messageMetadata),(i.messageId!=null||i.messageMetadata!=null)&&c();break}case"finish":{i.finishReason!=null&&(u.finishReason=i.finishReason),await x(i.messageMetadata),i.messageMetadata!=null&&c();break}case"message-metadata":{await x(i.messageMetadata),i.messageMetadata!=null&&c();break}case"error":{r?.(new Error(i.errorText));break}default:if(UF(i)){if(a?.[i.type]!=null){let L=u.message.parts.findIndex(A=>"id"in A&&"data"in A&&A.id===i.id&&A.type===i.type),b=L>=0?L:u.message.parts.length;await hf({value:i.data,schema:a[i.type],context:{field:`message.parts[${b}].data`,entityName:i.type,entityId:i.id}})}let m=i;if(m.transient){l?.(m);break}let w=m.id!=null?u.message.parts.find(L=>m.type===L.type&&m.id===L.id):void 0;w!=null?w.data=m.data:u.message.parts.push(m),l?.(m),c()}}s.enqueue(i)})}}))}async function HF({stream:e,onError:t}){let a=e.getReader();try{for(;;){let{done:n}=await a.read();if(n)break}}catch(n){t?.(n)}finally{a.releaseLock()}}var bJ=qn({prefix:"aitxt",size:24});var IJ=ff(()=>Zs(h.array(h.object({id:h.string(),role:h.enum(["system","user","assistant"]),metadata:h.unknown().optional(),parts:h.array(h.union([h.object({type:h.literal("text"),text:h.string(),state:h.enum(["streaming","done"]).optional(),providerMetadata:W.optional()}),h.object({type:h.literal("reasoning"),text:h.string(),state:h.enum(["streaming","done"]).optional(),providerMetadata:W.optional()}),h.object({type:h.literal("source-url"),sourceId:h.string(),url:h.string(),title:h.string().optional(),providerMetadata:W.optional()}),h.object({type:h.literal("source-document"),sourceId:h.string(),mediaType:h.string(),title:h.string(),filename:h.string().optional(),providerMetadata:W.optional()}),h.object({type:h.literal("file"),mediaType:h.string(),filename:h.string().optional(),url:h.string(),providerMetadata:W.optional()}),h.object({type:h.literal("step-start")}),h.object({type:h.string().startsWith("data-"),id:h.string().optional(),data:h.unknown()}),h.object({type:h.literal("dynamic-tool"),toolName:h.string(),toolCallId:h.string(),state:h.literal("input-streaming"),input:h.unknown().optional(),providerExecuted:h.boolean().optional(),callProviderMetadata:W.optional(),output:h.never().optional(),errorText:h.never().optional(),approval:h.never().optional()}),h.object({type:h.literal("dynamic-tool"),toolName:h.string(),toolCallId:h.string(),state:h.literal("input-available"),input:h.unknown(),providerExecuted:h.boolean().optional(),output:h.never().optional(),errorText:h.never().optional(),callProviderMetadata:W.optional(),approval:h.never().optional()}),h.object({type:h.literal("dynamic-tool"),toolName:h.string(),toolCallId:h.string(),state:h.literal("approval-requested"),input:h.unknown(),providerExecuted:h.boolean().optional(),output:h.never().optional(),errorText:h.never().optional(),callProviderMetadata:W.optional(),approval:h.object({id:h.string(),approved:h.never().optional(),reason:h.never().optional()})}),h.object({type:h.literal("dynamic-tool"),toolName:h.string(),toolCallId:h.string(),state:h.literal("approval-responded"),input:h.unknown(),providerExecuted:h.boolean().optional(),output:h.never().optional(),errorText:h.never().optional(),callProviderMetadata:W.optional(),approval:h.object({id:h.string(),approved:h.boolean(),reason:h.string().optional()})}),h.object({type:h.literal("dynamic-tool"),toolName:h.string(),toolCallId:h.string(),state:h.literal("output-available"),input:h.unknown(),providerExecuted:h.boolean().optional(),output:h.unknown(),errorText:h.never().optional(),callProviderMetadata:W.optional(),resultProviderMetadata:W.optional(),preliminary:h.boolean().optional(),approval:h.object({id:h.string(),approved:h.literal(!0),reason:h.string().optional()}).optional()}),h.object({type:h.literal("dynamic-tool"),toolName:h.string(),toolCallId:h.string(),state:h.literal("output-error"),input:h.unknown(),rawInput:h.unknown().optional(),providerExecuted:h.boolean().optional(),output:h.never().optional(),errorText:h.string(),callProviderMetadata:W.optional(),resultProviderMetadata:W.optional(),approval:h.object({id:h.string(),approved:h.literal(!0),reason:h.string().optional()}).optional()}),h.object({type:h.literal("dynamic-tool"),toolName:h.string(),toolCallId:h.string(),state:h.literal("output-denied"),input:h.unknown(),providerExecuted:h.boolean().optional(),output:h.never().optional(),errorText:h.never().optional(),callProviderMetadata:W.optional(),approval:h.object({id:h.string(),approved:h.literal(!1),reason:h.string().optional()})}),h.object({type:h.string().startsWith("tool-"),toolCallId:h.string(),state:h.literal("input-streaming"),providerExecuted:h.boolean().optional(),callProviderMetadata:W.optional(),input:h.unknown().optional(),output:h.never().optional(),errorText:h.never().optional(),approval:h.never().optional()}),h.object({type:h.string().startsWith("tool-"),toolCallId:h.string(),state:h.literal("input-available"),providerExecuted:h.boolean().optional(),input:h.unknown(),output:h.never().optional(),errorText:h.never().optional(),callProviderMetadata:W.optional(),approval:h.never().optional()}),h.object({type:h.string().startsWith("tool-"),toolCallId:h.string(),state:h.literal("approval-requested"),input:h.unknown(),providerExecuted:h.boolean().optional(),output:h.never().optional(),errorText:h.never().optional(),callProviderMetadata:W.optional(),approval:h.object({id:h.string(),approved:h.never().optional(),reason:h.never().optional()})}),h.object({type:h.string().startsWith("tool-"),toolCallId:h.string(),state:h.literal("approval-responded"),input:h.unknown(),providerExecuted:h.boolean().optional(),output:h.never().optional(),errorText:h.never().optional(),callProviderMetadata:W.optional(),approval:h.object({id:h.string(),approved:h.boolean(),reason:h.string().optional()})}),h.object({type:h.string().startsWith("tool-"),toolCallId:h.string(),state:h.literal("output-available"),providerExecuted:h.boolean().optional(),input:h.unknown(),output:h.unknown(),errorText:h.never().optional(),callProviderMetadata:W.optional(),resultProviderMetadata:W.optional(),preliminary:h.boolean().optional(),approval:h.object({id:h.string(),approved:h.literal(!0),reason:h.string().optional()}).optional()}),h.object({type:h.string().startsWith("tool-"),toolCallId:h.string(),state:h.literal("output-error"),providerExecuted:h.boolean().optional(),input:h.unknown(),rawInput:h.unknown().optional(),output:h.never().optional(),errorText:h.string(),callProviderMetadata:W.optional(),resultProviderMetadata:W.optional(),approval:h.object({id:h.string(),approved:h.literal(!0),reason:h.string().optional()}).optional()}),h.object({type:h.string().startsWith("tool-"),toolCallId:h.string(),state:h.literal("output-denied"),providerExecuted:h.boolean().optional(),input:h.unknown(),output:h.never().optional(),errorText:h.never().optional(),callProviderMetadata:W.optional(),approval:h.object({id:h.string(),approved:h.literal(!1),reason:h.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty")));var kJ=qn({prefix:"aiobj",size:24});function p2(e){return({url:t,abortSignal:a})=>wF({url:t,maxBytes:e?.maxBytes,abortSignal:a})}var jF=class{constructor(){this.queue=[],this.isProcessing=!1}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;)await this.queue[0](),this.queue.shift();this.isProcessing=!1}}async run(e){return new Promise((t,a)=>{this.queue.push(async()=>{try{await e(),t()}catch(n){a(n)}}),this.processQueue()})}};var MJ=qn({prefix:"aiobj",size:24});var AJ=p2();var VF="AI_NoSuchProviderError",GF=`vercel.ai.error.${VF}`,WF=Symbol.for(GF),$F;$F=WF;var EJ=p2();async function XF(e){if(e==null)return[];if(!globalThis.FileList||!(e instanceof globalThis.FileList))throw new Error("FileList is not supported in the current environment");return Promise.all(Array.from(e).map(async t=>{let{name:a,type:n}=t,r=await new Promise((o,l)=>{let i=new FileReader;i.onload=s=>{var u;o((u=s.target)==null?void 0:u.result)},i.onerror=s=>l(s),i.readAsDataURL(t)});return{type:"file",mediaType:n,filename:a,url:r}}))}var ZF=class{constructor({api:e="/api/chat",credentials:t,headers:a,body:n,fetch:r,prepareSendMessagesRequest:o,prepareReconnectToStreamRequest:l}){this.api=e,this.credentials=t,this.headers=a,this.body=n,this.fetch=r,this.prepareSendMessagesRequest=o,this.prepareReconnectToStreamRequest=l}async sendMessages({abortSignal:e,...t}){var a,n,r,o,l;let i=await on(this.body),s=await on(this.headers),u=await on(this.credentials),c={...Er(s),...Er(t.headers)},d=await((a=this.prepareSendMessagesRequest)==null?void 0:a.call(this,{api:this.api,id:t.chatId,messages:t.messages,body:{...i,...t.body},headers:c,credentials:u,requestMetadata:t.metadata,trigger:t.trigger,messageId:t.messageId})),f=(n=d?.api)!=null?n:this.api,p=d?.headers!==void 0?Er(d.headers):c,y=d?.body!==void 0?d.body:{...i,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},v=(r=d?.credentials)!=null?r:u,g=await((o=this.fetch)!=null?o:globalThis.fetch)(f,{method:"POST",headers:{"Content-Type":"application/json",...p},body:JSON.stringify(y),credentials:v,signal:e});if(!g.ok)throw new Error((l=await g.text())!=null?l:"Failed to fetch the chat response.");if(!g.body)throw new Error("The response body is empty.");return this.processResponseStream(g.body)}async reconnectToStream(e){var t,a,n,r,o;let l=await on(this.body),i=await on(this.headers),s=await on(this.credentials),u={...Er(i),...Er(e.headers)},c=await((t=this.prepareReconnectToStreamRequest)==null?void 0:t.call(this,{api:this.api,id:e.chatId,body:{...l,...e.body},headers:u,credentials:s,requestMetadata:e.metadata})),d=(a=c?.api)!=null?a:`${this.api}/${e.chatId}/stream`,f=c?.headers!==void 0?Er(c.headers):u,p=(n=c?.credentials)!=null?n:s,v=await((r=this.fetch)!=null?r:globalThis.fetch)(d,{method:"GET",headers:f,credentials:p});if(v.status===204)return null;if(!v.ok)throw new Error((o=await v.text())!=null?o:"Failed to fetch the chat response.");if(!v.body)throw new Error("The response body is empty.");return this.processResponseStream(v.body)}},fx=class extends ZF{constructor(e={}){super(e)}processResponseStream(e){return e2({stream:e,schema:dx}).pipeThrough(new TransformStream({async transform(t,a){if(!t.success)throw t.error;a.enqueue(t.value)}}))}},m2=class{constructor({generateId:e=XE,id:t=e(),transport:a=new fx,messageMetadataSchema:n,dataPartSchemas:r,state:o,onError:l,onToolCall:i,onFinish:s,onData:u,sendAutomaticallyWhen:c}){this.activeResponse=void 0,this.jobExecutor=new jF,this.sendMessage=async(d,f)=>{var p,y,v,S;if(d==null){await this.makeRequest({trigger:"submit-message",messageId:(p=this.lastMessage)==null?void 0:p.id,...f});return}let g;if("text"in d||"files"in d?g={parts:[...Array.isArray(d.files)?d.files:await XF(d.files),..."text"in d&&d.text!=null?[{type:"text",text:d.text}]:[]]}:g=d,d.messageId!=null){let x=this.state.messages.findIndex(m=>m.id===d.messageId);if(x===-1)throw new Error(`message with id ${d.messageId} not found`);if(this.state.messages[x].role!=="user")throw new Error(`message with id ${d.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,x+1),this.state.replaceMessage(x,{...g,id:d.messageId,role:(y=g.role)!=null?y:"user",metadata:d.metadata})}else this.state.pushMessage({...g,id:(v=g.id)!=null?v:this.generateId(),role:(S=g.role)!=null?S:"user",metadata:d.metadata});await this.makeRequest({trigger:"submit-message",messageId:d.messageId,...f})},this.regenerate=async({messageId:d,...f}={})=>{let p=d==null?this.state.messages.length-1:this.state.messages.findIndex(y=>y.id===d);if(p===-1)throw new Error(`message ${d} not found`);this.state.messages=this.state.messages.slice(0,this.messages[p].role==="assistant"?p:p+1),await this.makeRequest({trigger:"regenerate-message",messageId:d,...f})},this.resumeStream=async(d={})=>{await this.makeRequest({trigger:"resume-stream",...d})},this.clearError=()=>{this.status==="error"&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolApprovalResponse=async({id:d,approved:f,reason:p,options:y})=>this.jobExecutor.run(async()=>{let v=this.state.messages,S=v[v.length-1],g=x=>gf(x)&&x.state==="approval-requested"&&x.approval.id===d?{...x,state:"approval-responded",approval:{id:d,approved:f,reason:p}}:x;this.state.replaceMessage(v.length-1,{...S,parts:S.parts.map(g)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(g)),this.status!=="streaming"&&this.status!=="submitted"&&this.sendAutomaticallyWhen&&this.shouldSendAutomatically().then(x=>{var m;x&&this.makeRequest({trigger:"submit-message",messageId:(m=this.lastMessage)==null?void 0:m.id,...y})})}),this.addToolOutput=async({state:d="output-available",toolCallId:f,output:p,errorText:y,options:v})=>this.jobExecutor.run(async()=>{let S=this.state.messages,g=S[S.length-1],x=m=>gf(m)&&m.toolCallId===f?{...m,state:d,output:p,errorText:y}:m;this.state.replaceMessage(S.length-1,{...g,parts:g.parts.map(x)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(x)),this.status!=="streaming"&&this.status!=="submitted"&&this.sendAutomaticallyWhen&&this.shouldSendAutomatically().then(m=>{var w;m&&this.makeRequest({trigger:"submit-message",messageId:(w=this.lastMessage)==null?void 0:w.id,...v})})}),this.addToolResult=this.addToolOutput,this.stop=async()=>{var d;this.status!=="streaming"&&this.status!=="submitted"||(d=this.activeResponse)!=null&&d.abortController&&this.activeResponse.abortController.abort()},this.id=t,this.transport=a,this.generateId=e,this.messageMetadataSchema=n,this.dataPartSchemas=r,this.state=o,this.onError=l,this.onToolCall=i,this.onFinish=s,this.onData=u,this.sendAutomaticallyWhen=c}get status(){return this.state.status}setStatus({status:e,error:t}){this.status!==e&&(this.state.status=e,this.state.error=t)}get error(){return this.state.error}get messages(){return this.state.messages}get lastMessage(){return this.state.messages[this.state.messages.length-1]}set messages(e){this.state.messages=e}async shouldSendAutomatically(){if(!this.sendAutomaticallyWhen)return!1;let e=this.sendAutomaticallyWhen({messages:this.state.messages});return e&&typeof e=="object"&&"then"in e?await e:e}async makeRequest({trigger:e,metadata:t,headers:a,body:n,messageId:r}){var o,l,i;let s;if(e==="resume-stream")try{let p=await this.transport.reconnectToStream({chatId:this.id,metadata:t,headers:a,body:n});if(p==null)return;s=p}catch(p){this.onError&&p instanceof Error&&this.onError(p),this.setStatus({status:"error",error:p});return}this.setStatus({status:"submitted",error:void 0});let u=this.lastMessage,c=!1,d=!1,f=!1;try{let p={state:qF({lastMessage:this.state.snapshot(u),messageId:this.generateId()}),abortController:new AbortController};p.abortController.signal.addEventListener("abort",()=>{c=!0}),this.activeResponse=p;let y;e==="resume-stream"?y=s:y=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:p.abortController.signal,metadata:t,headers:a,body:n,trigger:e,messageId:r});let v=S=>this.jobExecutor.run(()=>S({state:p.state,write:()=>{var g;this.setStatus({status:"streaming"}),p.state.message.id===((g=this.lastMessage)==null?void 0:g.id)?this.state.replaceMessage(this.state.messages.length-1,p.state.message):this.state.pushMessage(p.state.message)}}));await HF({stream:FF({stream:y,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:v,onError:S=>{throw S}}),onError:S=>{throw S}}),this.setStatus({status:"ready"})}catch(p){if(c||p.name==="AbortError")return c=!0,this.setStatus({status:"ready"}),null;f=!0,p instanceof TypeError&&(p.message.toLowerCase().includes("fetch")||p.message.toLowerCase().includes("network"))&&(d=!0),this.onError&&p instanceof Error&&this.onError(p),this.setStatus({status:"error",error:p})}finally{try{(l=this.onFinish)==null||l.call(this,{message:this.activeResponse.state.message,messages:this.state.messages,isAbort:c,isDisconnect:d,isError:f,finishReason:(o=this.activeResponse)==null?void 0:o.state.finishReason})}catch(p){console.error(p)}this.activeResponse=void 0}!f&&await this.shouldSendAutomatically()&&await this.makeRequest({trigger:"submit-message",messageId:(i=this.lastMessage)==null?void 0:i.id,metadata:t,headers:a,body:n})}};var v2=q(g2(),1);var tu=q(xe(),1);var vf=q(xe(),1);var x2=(e,t,a)=>{if(!t.has(e))throw TypeError("Cannot "+a)},We=(e,t,a)=>(x2(e,t,"read from private field"),a?a.call(e):t.get(e)),ln=(e,t,a)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,a)},Dr=(e,t,a,n)=>(x2(e,t,"write to private field"),n?n.call(e,a):t.set(e,a),a);function KF(e,t){return t!=null?(0,v2.default)(e,t):e}var Pa,yf,xf,Ys,Js,eu,$l,px,mx,YF=class{constructor(e=[]){ln(this,Pa,void 0),ln(this,yf,"ready"),ln(this,xf,void 0),ln(this,Ys,new Set),ln(this,Js,new Set),ln(this,eu,new Set),this.pushMessage=t=>{Dr(this,Pa,We(this,Pa).concat(t)),We(this,$l).call(this)},this.popMessage=()=>{Dr(this,Pa,We(this,Pa).slice(0,-1)),We(this,$l).call(this)},this.replaceMessage=(t,a)=>{Dr(this,Pa,[...We(this,Pa).slice(0,t),this.snapshot(a),...We(this,Pa).slice(t+1)]),We(this,$l).call(this)},this.snapshot=t=>structuredClone(t),this["~registerMessagesCallback"]=(t,a)=>{let n=a?KF(t,a):t;return We(this,Ys).add(n),()=>{We(this,Ys).delete(n)}},this["~registerStatusCallback"]=t=>(We(this,Js).add(t),()=>{We(this,Js).delete(t)}),this["~registerErrorCallback"]=t=>(We(this,eu).add(t),()=>{We(this,eu).delete(t)}),ln(this,$l,()=>{We(this,Ys).forEach(t=>t())}),ln(this,px,()=>{We(this,Js).forEach(t=>t())}),ln(this,mx,()=>{We(this,eu).forEach(t=>t())}),Dr(this,Pa,e)}get status(){return We(this,yf)}set status(e){Dr(this,yf,e),We(this,px).call(this)}get error(){return We(this,xf)}set error(e){Dr(this,xf,e),We(this,mx).call(this)}get messages(){return We(this,Pa)}set messages(e){Dr(this,Pa,[...e]),We(this,$l).call(this)}};Pa=new WeakMap;yf=new WeakMap;xf=new WeakMap;Ys=new WeakMap;Js=new WeakMap;eu=new WeakMap;$l=new WeakMap;px=new WeakMap;mx=new WeakMap;var Xl,y2=class extends m2{constructor({messages:e,...t}){let a=new YF(e);super({...t,state:a}),ln(this,Xl,void 0),this["~registerMessagesCallback"]=(n,r)=>We(this,Xl)["~registerMessagesCallback"](n,r),this["~registerStatusCallback"]=n=>We(this,Xl)["~registerStatusCallback"](n),this["~registerErrorCallback"]=n=>We(this,Xl)["~registerErrorCallback"](n),Dr(this,Xl,a)}};Xl=new WeakMap;function w2({experimental_throttle:e,resume:t=!1,...a}={}){let n=(0,Na.useRef)("chat"in a?{}:{onToolCall:a.onToolCall,onData:a.onData,onFinish:a.onFinish,onError:a.onError,sendAutomaticallyWhen:a.sendAutomaticallyWhen});"chat"in a||(n.current={onToolCall:a.onToolCall,onData:a.onData,onFinish:a.onFinish,onError:a.onError,sendAutomaticallyWhen:a.sendAutomaticallyWhen});let r={...a,onToolCall:f=>{var p,y;return(y=(p=n.current).onToolCall)==null?void 0:y.call(p,f)},onData:f=>{var p,y;return(y=(p=n.current).onData)==null?void 0:y.call(p,f)},onFinish:f=>{var p,y;return(y=(p=n.current).onFinish)==null?void 0:y.call(p,f)},onError:f=>{var p,y;return(y=(p=n.current).onError)==null?void 0:y.call(p,f)},sendAutomaticallyWhen:f=>{var p,y,v;return(v=(y=(p=n.current).sendAutomaticallyWhen)==null?void 0:y.call(p,f))!=null?v:!1}},o=(0,Na.useRef)("chat"in a?a.chat:new y2(r));("chat"in a&&a.chat!==o.current||"id"in a&&o.current.id!==a.id)&&(o.current="chat"in a?a.chat:new y2(r));let i=(0,Na.useCallback)(f=>o.current["~registerMessagesCallback"](f,e),[e,o.current.id]),s=(0,Na.useSyncExternalStore)(i,()=>o.current.messages,()=>o.current.messages),u=(0,Na.useSyncExternalStore)(o.current["~registerStatusCallback"],()=>o.current.status,()=>o.current.status),c=(0,Na.useSyncExternalStore)(o.current["~registerErrorCallback"],()=>o.current.error,()=>o.current.error),d=(0,Na.useCallback)(f=>{typeof f=="function"&&(f=f(o.current.messages)),o.current.messages=f},[o]);return(0,Na.useEffect)(()=>{t&&o.current.resumeStream()},[t,o]),{id:o.current.id,messages:s,setMessages:d,sendMessage:o.current.sendMessage,regenerate:o.current.regenerate,clearError:o.current.clearError,stop:o.current.stop,error:c,resumeStream:o.current.resumeStream,status:u,addToolResult:o.current.addToolOutput,addToolOutput:o.current.addToolOutput,addToolApprovalResponse:o.current.addToolApprovalResponse}}var be=q(xe(),1);function JF(e){let t=e?.cause,a=t?.issues??t?.errors;if(!Array.isArray(a))return null;let n=a.find(r=>r.code==="invalid_union");if(!n?.errors)return null;for(let r of n.errors){if(!Array.isArray(r)||r.some(i=>(i.code==="invalid_value"||i.code==="invalid_literal")&&i.path?.[0]==="type"))continue;let l=r.filter(i=>i.code==="unrecognized_keys").flatMap(i=>i.keys??[]);if(l.length>0)return l}return null}var wf=class extends fx{processResponseStream(t){let a="",n=dx(),r=n.validate?.bind(n);return t.pipeThrough(new TextDecoderStream).pipeThrough(new TransformStream({async transform(o,l){a+=o;let i=a.split(`
138
- `);a=i.pop()??"";for(let s of i){let u=s.trim();if(!u.startsWith("data:"))continue;let c=u.slice(5).trim();if(c!=="[DONE]")try{let d=JSON.parse(c);if(!r){l.enqueue(d);continue}let f=await r(d);if(f.success){l.enqueue(f.value);continue}let p=JF(f.error);if(p?.length){let y={...d};for(let S of p)delete y[S];let v=await r(y);v.success&&l.enqueue(v.value)}}catch{}}}}))}};var b2="waniwani-visitor-id";function S2(e,t){return e.match(t)?.[1]??null}function e6(e){let t=[["Edge",/Edg(?:e|A|iOS)?\/(\S+)/],["Opera",/(?:OPR|Opera)\/(\S+)/],["Samsung Internet",/SamsungBrowser\/(\S+)/],["Firefox",/Firefox\/(\S+)/],["Chrome",/Chrome\/(\S+)/],["Safari",/Version\/(\S+).*Safari/]];for(let[a,n]of t){let r=S2(e,n);if(r)return{name:a,version:r}}return null}function t6(e){let t=[["iOS",/(?:iPhone|iPad|iPod).+?OS (\d+[_.\d]*)/],["Android",/Android (\d+[.\d]*)/],["macOS",/Mac OS X (\d+[_.\d]*)/],["Windows",/Windows NT (\d+[.\d]*)/],["ChromeOS",/CrOS \S+ (\d+[.\d]*)/],["Linux",/Linux/]];for(let[a,n]of t){let r=S2(e,n);if(r)return{name:a,version:r.replace(/_/g,".")};if(a==="Linux"&&n.test(e))return{name:a,version:""}}return null}function a6(e){return typeof navigator<"u"&&"userAgentData"in navigator&&navigator.userAgentData?.mobile?"mobile":/iPad|tablet|PlayBook/i.test(e)?"tablet":/Mobi|Android.*Mobile|iPhone|iPod/i.test(e)?"mobile":"desktop"}async function n6(e){let t=new TextEncoder().encode(e),a=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(a)).map(n=>n.toString(16).padStart(2,"0")).join("")}async function r6(){try{let a=localStorage.getItem(b2);if(a)return a}catch{}let e=[navigator.userAgent,screen.width,screen.height,screen.colorDepth,Intl.DateTimeFormat().resolvedOptions().timeZone,navigator.language,navigator.hardwareConcurrency??"",navigator.platform??""].join("|"),t=await n6(e);try{localStorage.setItem(b2,t)}catch{}return t}async function C2(){let e=navigator.userAgent,t=await r6();return{userAgent:e,browser:e6(e),os:t6(e),deviceType:a6(e),language:navigator.language,languages:[...navigator.languages],timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,screenWidth:screen.width,screenHeight:screen.height,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,colorDepth:screen.colorDepth,devicePixelRatio:window.devicePixelRatio??1,touchSupport:"ontouchstart"in window||navigator.maxTouchPoints>0,connectionType:navigator.connection?.effectiveType??"unknown",referrer:document.referrer,visitorId:t}}var o6="x-session-id";function I2(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}async function l6(e,t){let a=`${e.replace(/\/$/,"")}/tools`,n=await fetch(a,{method:"GET",headers:t?{...t}:void 0});if(!n.ok)throw new Error(`[WaniWani] Failed to fetch /tools: ${n.status} ${n.statusText}`);let r=await n.json();if(!r||!Array.isArray(r.tools))return{};let o={};for(let l of r.tools)l&&typeof l.name=="string"&&(o[l.name]=l);return o}function Zl(e){let{api:t="/api/waniwani",headers:a,body:n,onMessageSent:r,onResponseReceived:o}=e,l=(0,be.useRef)(a),i=(0,be.useRef)(n),s=(0,be.useRef)(void 0),u=(0,be.useRef)(null),[c,d]=(0,be.useState)(void 0),f=(0,be.useRef)(c),p=(0,be.useCallback)(()=>f.current,[]),y=(0,be.useCallback)(G=>{let Q=I2(G);Q&&f.current!==Q&&(f.current=Q,d(Q))},[]),v=(0,be.useCallback)(()=>{f.current=void 0,d(void 0)},[]);(0,be.useEffect)(()=>{l.current=a},[a]),(0,be.useEffect)(()=>{i.current=n},[n]),(0,be.useEffect)(()=>{C2().then(G=>{u.current=G}).catch(()=>{})},[]);let S=(0,be.useRef)(new wf({api:t,headers:()=>({...l.current}),body:()=>{let G={...i.current??{}},Q=Object.hasOwn(G,"sessionId"),ke=I2(G.sessionId);if(ke)y(ke),G.sessionId=ke;else if(Q)v(),delete G.sessionId;else{let se=p();se&&(G.sessionId=se)}if(Fl(s.current)&&(G.modelContext=s.current),u.current){let se=u.current;G.visitorContext={timezone:se.timezone,language:se.language,languages:se.languages,deviceType:se.deviceType,referrer:se.referrer,visitorId:se.visitorId}}return G},fetch:(async(G,Q)=>{let ke=await fetch(G,Q);return s.current=void 0,y(ke.headers.get(o6)),ke})})),g=(0,be.useRef)(null),x=(0,be.useRef)(null),m=(0,be.useRef)({}),[w,L]=(0,be.useState)(0),b=e.skipRemoteConfig===!0,A=(0,be.useCallback)(async()=>{if(!b)try{let G=await l6(t,l.current);m.current=G,L(Q=>Q+1)}catch(G){console.warn("[WaniWani] Failed to fetch tool definitions:",G instanceof Error?G.message:G)}},[t,b]);(0,be.useEffect)(()=>{A()},[A]);let{messages:R,sendMessage:_,setMessages:T,status:D}=w2({messages:e.initialMessages,transport:S.current,onFinish({message:G}){o?.(),g.current&&(x.current=G)},onError(G){console.warn("[WaniWani] Chat error:",G.message),g.current&&(g.current.reject(G),g.current=null)}});(0,be.useEffect)(()=>{if(D==="ready"&&g.current&&x.current){let G=g.current,Q=x.current;g.current=null,x.current=null,G.resolve(Q)}},[D]);let[N,B]=(0,be.useState)(""),[j,V]=(0,be.useState)([]),F=D==="submitted"||D==="streaming",te=(0,be.useCallback)(G=>{V(Q=>Q.filter(ke=>ke.id!==G))},[]),$e=F&&j.length>0,Z=(0,be.useCallback)(G=>{let Q=!!G.text?.trim(),ke=!!G.files?.length;if(Q||ke){if(F){if(j.length>0)return;V(se=>[...se,{id:jc(),text:G.text||"",files:G.files??[],modelContext:G.modelContext}]),B("");return}s.current=G.modelContext,_({text:G.text||"",files:G.files}),r?.(G.text||""),B("")}},[_,r,F,j.length]),C=(0,be.useCallback)(G=>new Promise((Q,ke)=>{g.current={resolve:Q,reject:ke},_({text:G}),r?.(G)}),[_,r]);(0,be.useEffect)(()=>{if(D!=="ready"||j.length===0)return;let[G,...Q]=j;V(Q),s.current=G.modelContext,_({text:G.text,files:G.files.length>0?G.files:void 0}),r?.(G.text)},[D,_,r,j]);let Xe=(0,be.useCallback)(()=>{T([]),V([]),v(),B(""),m.current={},L(G=>G+1),A()},[T,v,A]),le=(0,be.useCallback)(G=>{B(G.target.value)},[]),k=R[R.length-1],Ze=R.length>0,Ue=F&&(!Ze||k.role==="user"),Hn=m.current;return{messages:R,status:D,text:N,setText:B,handleSubmit:Z,handleTextChange:le,isLoading:F,showLoaderBubble:Ue,lastMessage:k,hasMessages:Ze,sendMessage:_,sendMessageAndWait:C,reset:Xe,queuedMessages:j,queueFull:$e,removeQueuedMessage:te,sessionId:c,toolDefinitions:Hn,refreshToolDefinitions:A}}var ko=q(xe(),1),i6={debug:!1,eval:!1};function bf(e="/api/waniwani",t,a=!1){let[n,r]=(0,ko.useState)(i6),o=(0,ko.useRef)(t);return(0,ko.useEffect)(()=>{o.current=t},[t]),(0,ko.useEffect)(()=>{a||(async()=>{try{let l=o.current,s=await(await fetch(`${e}/config`,{headers:l?{...l}:void 0})).json();r({debug:s.debug===!0,eval:s.eval===!0})}catch{}})()},[e,a]),n}var sn=q(xe(),1);function s6(e){for(let t of e.parts){let a=t;if(a.type==="data"||a.type==="data-suggestions"){let n=a.data;if(n&&Array.isArray(n.suggestions))return n.suggestions}}return null}function L2(e){return typeof e=="object"&&e!==null&&"initial"in e}function Ql(e){let{messages:t,status:a,config:n}=e,r=L2(n)&&n.initial?n.initial:void 0,[o,l]=(0,sn.useState)(r??[]),i=(0,sn.useRef)(a),s=n===!0||L2(n)&&n.dynamic!==!1,u=(0,sn.useCallback)(()=>{l([])},[]),c=t.length>0;(0,sn.useEffect)(()=>{!c&&r&&r.length>0&&l(r)},[r,c]);let d=t[t.length-1];return(0,sn.useEffect)(()=>{d?.role==="user"&&u()},[d,u]),(0,sn.useEffect)(()=>{let f=i.current;if(i.current=a,f==="streaming"&&a==="ready"&&s){let p=[...t].reverse().find(v=>v.role==="assistant");if(!p)return;console.log("[WaniWani] Assistant parts:",p.parts);let y=s6(p);console.log("[WaniWani] Extracted suggestions:",y),y&&l(y)}},[a,s,t]),{suggestions:o,isLoading:!1,clear:u}}var Kl=q(xe(),1),u6=50,c6=30,d6=2e3,k2=500;function Yl(e,t=!0){let[a,n]=(0,Kl.useState)(""),r=(0,Kl.useRef)(void 0);return(0,Kl.useEffect)(()=>{if(!t){n("");return}let o=0,l=!1,i=!1,s=()=>{i||(l?(o--,n(e.slice(0,o)),o<=0?(l=!1,r.current=setTimeout(s,k2)):r.current=setTimeout(s,c6)):(o++,n(e.slice(0,o)),o>=e.length?(l=!0,r.current=setTimeout(s,d6)):r.current=setTimeout(s,u6)))};return r.current=setTimeout(s,k2),()=>{i=!0,clearTimeout(r.current)}},[e,t]),a}function Sf(e,t){let a=t?.Authorization,n=typeof a=="string"&&a.startsWith("Bearer ")?a.slice(7):null;return n?`${e}/resource?token=${encodeURIComponent(n)}`:`${e}/resource`}var f6={primaryColor:"#6366f1",primaryForeground:"#1f2937",backgroundColor:"#ffffff",textColor:"#1f2937",mutedColor:"#6b7280",borderColor:"#e5e7eb",assistantBubbleColor:"#f3f4f6",userBubbleColor:"#f4f4f4",inputBackgroundColor:"#f9fafb",borderRadius:16,messageBorderRadius:12,fontFamily:"system-ui, -apple-system, 'Segoe UI', sans-serif",headerBackgroundColor:"#ffffff",headerTextColor:"#1f2937",statusColor:"#22c55e",toolCardColor:"#f4f4f5"};var p6={primaryColor:["--ww-primary","--ww-color-primary"],primaryForeground:["--ww-primary-fg","--ww-color-primary-foreground"],backgroundColor:["--ww-bg","--ww-color-background"],textColor:["--ww-text","--ww-color-foreground","--ww-color-accent-foreground"],mutedColor:["--ww-muted","--ww-color-muted-foreground"],borderColor:["--ww-border","--ww-color-border"],assistantBubbleColor:["--ww-assistant-bubble","--ww-color-accent"],userBubbleColor:["--ww-user-bubble"],inputBackgroundColor:["--ww-input-bg","--ww-color-input"],borderRadius:["--ww-radius"],messageBorderRadius:["--ww-msg-radius"],fontFamily:["--ww-font"],headerBackgroundColor:["--ww-header-bg"],headerTextColor:["--ww-header-text"],statusColor:["--ww-status"],toolCardColor:["--ww-tool-card","--ww-color-tool-card"]};function Jl(e){return{...f6,...e}}function ei(e){let t=e.backgroundColor.replace("#",""),a=parseInt(t.substring(0,2),16),n=parseInt(t.substring(2,4),16),r=parseInt(t.substring(4,6),16);return(a*299+n*587+r*114)/1e3<128}function ti(e){let t={};for(let[a,n]of Object.entries(p6)){let r=e[a],o=typeof r=="number"?`${r}px`:String(r);for(let l of n)t[l]=o}return t}var rt=q(ee(),1),Cf=(0,Ut.forwardRef)(function(t,a){let{theme:n,title:r="Assistant",width:o,height:l,className:i,allowAttachments:s=!1,welcomeMessage:u,welcome:c,placeholder:d="Ask me anything...",triggerEvent:f="triggerDemoRequest",api:p,debug:y}=t,v=p??"/api/waniwani",S=Sf(v,t.headers),g=Jl(n),x=ti(g),m=ei(g),w=bf(v,t.headers,t.skipRemoteConfig),L=y??w.debug,b=Zl({...t,api:v}),A=Vl({...t,api:v,sessionId:b.sessionId}),R=Yl(d,!b.text),[_,T]=(0,Ut.useState)(!1),[D,N]=(0,Ut.useState)(null),B=(0,Ut.useRef)(null),j=(0,Ut.useRef)(void 0),V=(0,Ut.useCallback)(()=>{let Z=B.current;if(!Z)return;Z.scrollIntoView({behavior:"smooth",block:"center"});let C=Z.querySelector("textarea");C&&setTimeout(()=>C.focus(),300),T(!0),clearTimeout(j.current),j.current=setTimeout(()=>T(!1),2e3)},[]),F=Ql({messages:b.messages,status:b.status,config:t.suggestions}),te=(0,Ut.useCallback)(Z=>{let C=Z.content.map(Xe=>Xe.text??"").join("").trim();C&&b.handleSubmit({text:C,files:[],modelContext:Z.modelContext})},[b.handleSubmit]),$e=(0,Ut.useCallback)(Z=>{F.clear(),b.handleSubmit({text:Z,files:[]})},[F.clear,b.handleSubmit]);return(0,Ut.useImperativeHandle)(a,()=>({sendMessage:Z=>{b.handleSubmit({text:Z,files:[]}),V()},sendMessageAndWait:Z=>b.sendMessageAndWait(Z),reset:b.reset,focus:V,get messages(){return b.messages}}),[b.handleSubmit,b.sendMessageAndWait,b.reset,b.messages,V]),(0,Ut.useEffect)(()=>{if(!f)return;let Z=C=>{let Xe=C.detail,le=typeof Xe?.message=="string"?Xe.message:void 0;le&&b.handleSubmit({text:le,files:[]}),V()};return window.addEventListener(f,Z),()=>window.removeEventListener(f,Z)},[f,b.handleSubmit,V]),(0,rt.jsxs)("div",{ref:B,style:{...x,width:o,height:l},"data-waniwani-chat":"","data-waniwani-layout":"card",...m?{"data-waniwani-dark":""}:{},className:$("ww:flex ww:flex-col ww:font-[family-name:var(--ww-font)] ww:text-foreground ww:bg-background ww:rounded-[var(--ww-radius)] ww:overflow-hidden",_&&"ww:ring-2 ww:ring-blue-400/70 ww:ring-offset-2 ww:ring-offset-background",i),children:[(0,rt.jsxs)("div",{className:"ww:shrink-0 ww:flex ww:items-center ww:px-6 ww:py-3",style:{backgroundColor:g.headerBackgroundColor,color:g.headerTextColor},children:[(0,rt.jsx)("div",{className:"ww:text-sm ww:font-semibold ww:truncate",children:r}),(0,rt.jsx)(Gc,{messages:b.messages,evalEnabled:w.eval,api:v})]}),(0,rt.jsxs)(Sl,{className:"ww:flex-1 ww:min-h-0 ww:bg-background",children:[(0,rt.jsx)(Cl,{scrollClassName:D?"ww:!relative ww:!overflow-hidden":void 0,children:(0,rt.jsx)(Hl,{messages:b.messages,status:b.status,welcomeMessage:u,welcome:c,onSuggestionSelect:$e,resourceEndpoint:S,chatSessionId:b.sessionId,isDark:m,onFollowUp:te,onCallTool:A,fullscreenToolCallId:D,debug:L,toolDefinitions:b.toolDefinitions,onWidgetDisplayModeChange:(Z,C)=>{N(Z==="fullscreen"?C.toolCallId:null)}})}),(0,rt.jsx)(Il,{})]}),(0,rt.jsx)("div",{style:D?{display:"none"}:void 0,children:(0,rt.jsx)(jl,{suggestions:F.suggestions,isLoading:F.isLoading,onSelect:$e})}),(0,rt.jsx)("div",{style:D?{display:"none"}:void 0,children:(0,rt.jsx)(Al,{queuedMessages:b.queuedMessages,onRemove:b.removeQueuedMessage})}),(0,rt.jsx)("div",{style:D?{display:"none"}:void 0,children:(0,rt.jsx)("div",{className:"ww:shrink-0 ww:px-4 ww:pb-8 ww:pt-2 ww:bg-background",children:(0,rt.jsx)("div",{className:"ww:mx-auto ww:w-full ww:max-w-3xl",children:(0,rt.jsx)(Ll,{onSubmit:b.handleSubmit,globalDrop:s,multiple:s,className:"ww:rounded-2xl ww:border-border ww:bg-input",children:(0,rt.jsxs)("div",{className:"ww:flex ww:items-center ww:gap-1 ww:pl-4 ww:pr-3 ww:py-2.5",children:[s&&(0,rt.jsx)(Ml,{}),(0,rt.jsx)(kl,{onChange:b.handleTextChange,value:b.text,placeholder:R,className:"ww:min-h-0 ww:py-1 ww:px-0"}),(0,rt.jsx)(Tl,{status:b.status,disabled:b.queueFull})]})})})})})]})});var If=q(xe(),1);async function m6(e,t,a){try{let n=`${e.replace(/\/$/,"")}/config`,r=await fetch(n,{method:"GET",headers:{Authorization:`Bearer ${t}`},signal:a});if(!r.ok)return{};let o=await r.json(),l=o&&typeof o=="object"&&"data"in o&&o.data?o.data:o;return l?h6(l):{}}catch{return{}}}function h6(e){let t={};return e.title!=null&&(t.title=e.title),e.welcomeMessage!=null&&(t.welcomeMessage=e.welcomeMessage),e.placeholder!=null&&(t.placeholder=e.placeholder),e.suggestions!=null&&e.suggestions.length>0&&(t.suggestions=e.suggestions),t}function Lf(e,t,a){let[n,r]=(0,If.useState)(e);return(0,If.useEffect)(()=>{let o=e.api,l=e.token;if(!o||!l)return;let i=new AbortController;return m6(o,l,i.signal).then(s=>{if(!i.signal.aborted&&Object.keys(s).length!==0)try{r(Nc(t,s,a))}catch(u){console.error("[WaniWani] Failed to apply remote config:",u)}}).catch(s=>{console.error("[WaniWani] Remote config fetch failed:",s)}),()=>i.abort()},[e.api,e.token]),n}var Tt=q(ee(),1);function g6(){return(0,Tt.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",role:"img","aria-label":"Chat",children:[(0,Tt.jsx)("title",{children:"Chat"}),(0,Tt.jsx)("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})]})}function y6(){return(0,Tt.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",role:"img","aria-label":"Close",children:[(0,Tt.jsx)("title",{children:"Close"}),(0,Tt.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,Tt.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}var hx=56,gx=20,x6=12,To=200,T2=(0,ct.forwardRef)(function({config:t,programmatic:a,scriptConfig:n,onReady:r},o){let l=Lf(t,a,n),[i,s]=(0,ct.useState)(!1),[u,c]=(0,ct.useState)(0),[d,f]=(0,ct.useState)(!1),p=(0,ct.useRef)(null),y=(0,ct.useRef)(i);y.current=i,(0,ct.useEffect)(()=>{r?.()},[]),(0,ct.useEffect)(()=>{let F=window.matchMedia("(max-width: 768px)"),te=$e=>f($e.matches);return te(F),F.addEventListener("change",te),()=>F.removeEventListener("change",te)},[]),(0,ct.useEffect)(()=>{if(!i)return;let F=te=>{te.key==="Escape"&&s(!1)};return document.addEventListener("keydown",F),()=>document.removeEventListener("keydown",F)},[i]),(0,ct.useEffect)(()=>{i&&c(0)},[i]);let v=(0,ct.useCallback)(()=>{y.current||c(F=>F+1)},[]),S=(0,ct.useCallback)(()=>s(!0),[]),g=(0,ct.useCallback)(()=>s(!1),[]),x=(0,ct.useCallback)(()=>s(F=>!F),[]);(0,ct.useImperativeHandle)(o,()=>({open:S,close:g,toggle:x,get chat(){return p.current}}));let m=!i&&u>0,w=l.mode==="custom",L=l.position==="bottom-left",b=l.width??400,A=l.height??600,R=l.theme?.primaryColor??"#6366f1",_={position:"fixed",bottom:gx,...L?{left:gx}:{right:gx},zIndex:2147483647,fontFamily:l.theme?.fontFamily??"system-ui, -apple-system, 'Segoe UI', sans-serif"},T={width:hx,height:hx,borderRadius:"50%",backgroundColor:R,color:"#ffffff",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",transition:`transform ${To}ms ease, box-shadow ${To}ms ease`,outline:"none"},D=d?{position:"fixed",inset:0,zIndex:2147483647,transition:`transform ${To}ms ease, opacity ${To}ms ease`,...i?{transform:"translateY(0) scale(1)",opacity:1}:{transform:"translateY(20px) scale(0.95)",opacity:0,pointerEvents:"none"}}:{position:"absolute",bottom:w?0:hx+x6,...L?{left:0}:{right:0},width:b,height:A,transition:`transform ${To}ms ease, opacity ${To}ms ease`,...i?{transform:"translateY(0) scale(1)",opacity:1}:{transform:"translateY(20px) scale(0.95)",opacity:0,pointerEvents:"none"}},N={width:"100%",height:"100%",borderRadius:d?0:12,overflow:"hidden",boxShadow:d?"none":"0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08)"},B={position:"absolute",top:d?12:8,right:d?12:8,zIndex:10,width:d?36:28,height:d?36:28,borderRadius:"50%",backgroundColor:"rgba(0, 0, 0, 0.06)",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"inherit",outline:"none",transition:`background-color ${To}ms ease`},j={position:"absolute",top:-2,right:-2,width:12,height:12,borderRadius:"50%",backgroundColor:"#ef4444",border:"2px solid #ffffff"},V=Bc(l);return(0,Tt.jsxs)("div",{style:_,children:[(0,Tt.jsx)("div",{style:D,role:"dialog","aria-label":"Chat panel",children:(0,Tt.jsxs)("div",{style:{...N,position:"relative"},children:[(0,Tt.jsx)("button",{type:"button",onClick:g,style:B,"aria-label":"Close chat",onMouseEnter:F=>{F.currentTarget.style.backgroundColor="rgba(0, 0, 0, 0.12)"},onMouseLeave:F=>{F.currentTarget.style.backgroundColor="rgba(0, 0, 0, 0.06)"},children:(0,Tt.jsx)(y6,{})}),(0,Tt.jsx)(Cf,{ref:p,api:l.api,headers:{Authorization:`Bearer ${l.token}`},skipRemoteConfig:!0,body:l.mcpServerUrl?{mcpServerUrl:l.mcpServerUrl}:void 0,theme:V,title:l.title??"Assistant",welcomeMessage:l.welcomeMessage,placeholder:l.placeholder,suggestions:l.suggestions?{initial:l.suggestions}:void 0,onResponseReceived:v,width:"100%",height:"100%"})]})}),!w&&(0,Tt.jsxs)("button",{type:"button",onClick:x,style:{...T,position:"relative"},"aria-label":i?"Close chat":"Open chat",onMouseEnter:F=>{F.currentTarget.style.transform="scale(1.08)",F.currentTarget.style.boxShadow="0 6px 20px rgba(0, 0, 0, 0.2)"},onMouseLeave:F=>{F.currentTarget.style.transform="scale(1)",F.currentTarget.style.boxShadow="0 4px 12px rgba(0, 0, 0, 0.15)"},children:[(0,Tt.jsx)(g6,{}),m&&(0,Tt.jsx)("span",{style:j})]})]})});var _r=q(xe(),1);var wt=q(xe(),1);var dt=q(ee(),1),M2=(0,wt.forwardRef)(function(t,a){let{theme:n,title:r="Assistant",width:o=600,expandedWidth:l,expandedHeight:i=400,allowAttachments:s=!1,welcomeMessage:u,welcome:c,placeholder:d="Ask me anything...",triggerEvent:f="triggerDemoRequest",api:p}=t,y=l??Math.round((typeof o=="number"?o:600)*1.2),v=p??"/api/waniwani",S=Sf(v,t.headers),g=Jl(n),x=ti(g),m=ei(g),w=bf(p,t.headers,t.skipRemoteConfig),L=Zl(t),b=Vl({...t,sessionId:L.sessionId}),A=Ql({messages:L.messages,status:L.status,config:t.suggestions}),R=(0,wt.useCallback)(le=>{let k=le.content.map(Ze=>Ze.text??"").join("").trim();k&&L.handleSubmit({text:k,files:[],modelContext:le.modelContext})},[L.handleSubmit]),_=(0,wt.useCallback)(le=>{A.clear(),L.handleSubmit({text:le,files:[]})},[A.clear,L.handleSubmit]),T=Yl(d,!L.text),[D,N]=(0,wt.useState)(!1),[B,j]=(0,wt.useState)(!1),[V,F]=(0,wt.useState)(null),te=(0,wt.useRef)(null),$e=(0,wt.useRef)(void 0),Z=(0,wt.useCallback)(()=>{let le=te.current;if(!le)return;le.scrollIntoView({behavior:"smooth",block:"center"});let k=le.querySelector("textarea");k&&setTimeout(()=>k.focus(),300),N(!0),j(!0),clearTimeout($e.current),$e.current=setTimeout(()=>j(!1),2e3)},[]);(0,wt.useImperativeHandle)(a,()=>({sendMessage:le=>{L.handleSubmit({text:le,files:[]}),Z()},sendMessageAndWait:le=>L.sendMessageAndWait(le),reset:L.reset,focus:Z,get messages(){return L.messages}}),[L.handleSubmit,L.sendMessageAndWait,L.reset,L.messages,Z]),(0,wt.useEffect)(()=>{if(!f)return;let le=k=>{let Ze=k.detail,Ue=typeof Ze?.message=="string"?Ze.message:void 0;Ue&&L.handleSubmit({text:Ue,files:[]}),Z()};return window.addEventListener(f,le),()=>window.removeEventListener(f,le)},[f,L.handleSubmit,Z]);let C=D||V!==null;(0,wt.useEffect)(()=>{if(!D)return;let le=k=>{te.current&&!te.current.contains(k.target)&&N(!1)};return document.addEventListener("mousedown",le),()=>document.removeEventListener("mousedown",le)},[D]);let Xe=(0,wt.useCallback)(()=>{N(!0)},[]);return(0,dt.jsxs)("div",{ref:te,style:{...x,width:C?y:o,transition:"width 0.4s cubic-bezier(0.16, 1, 0.3, 1)"},"data-waniwani-chat":"","data-waniwani-layout":"bar",...m?{"data-waniwani-dark":""}:{},className:"ww:flex ww:flex-col ww:font-[family-name:var(--ww-font)] ww:text-foreground",children:[(0,dt.jsxs)("div",{style:{overflow:"hidden",backgroundColor:g.backgroundColor,borderRadius:"var(--ww-radius) var(--ww-radius) 0 0",maxHeight:C?i+200:0,opacity:C?1:0,transform:C?"scaleX(1)":"scaleX(0.88)",transformOrigin:"center bottom",transition:"max-height 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease-out, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1)"},children:[(0,dt.jsxs)("div",{className:"ww:shrink-0 ww:flex ww:items-center ww:px-6 ww:py-3",style:{backgroundColor:g.headerBackgroundColor,color:g.headerTextColor},children:[(0,dt.jsx)("div",{className:"ww:text-sm ww:font-semibold ww:truncate",children:r}),(0,dt.jsx)(Gc,{messages:L.messages,evalEnabled:w.eval,api:v})]}),(0,dt.jsxs)(Sl,{className:"ww:flex-1",style:{height:i},children:[(0,dt.jsx)(Cl,{scrollClassName:V?"ww:!relative ww:!overflow-hidden":void 0,children:(0,dt.jsx)(Hl,{messages:L.messages,status:L.status,welcomeMessage:u,welcome:c,onSuggestionSelect:_,resourceEndpoint:S,chatSessionId:L.sessionId,isDark:m,onFollowUp:R,onCallTool:b,fullscreenToolCallId:V,toolDefinitions:L.toolDefinitions,onWidgetDisplayModeChange:(le,k)=>{F(le==="fullscreen"?k.toolCallId:null)}})}),(0,dt.jsx)(Il,{})]}),(0,dt.jsx)("div",{style:V?{display:"none"}:void 0,children:(0,dt.jsx)(jl,{suggestions:A.suggestions,isLoading:A.isLoading,onSelect:_})}),(0,dt.jsx)("div",{style:V?{display:"none"}:void 0,children:(0,dt.jsx)(Al,{queuedMessages:L.queuedMessages,onRemove:L.removeQueuedMessage})})]}),(0,dt.jsx)("div",{style:{backgroundColor:C?g.backgroundColor:"transparent",borderRadius:C?"0 0 var(--ww-radius) var(--ww-radius)":void 0,boxShadow:C?"0 8px 24px rgba(0,0,0,0.1)":"none",transition:"background-color 0.2s ease, border-radius 0.3s ease, box-shadow 0.35s ease, padding 0.3s ease",padding:C?"8px 16px 16px":"0"},children:(0,dt.jsx)(Ll,{onSubmit:L.handleSubmit,globalDrop:s,multiple:s,className:$("ww:rounded-2xl ww:border-border ww:bg-input ww:transition-all ww:duration-300",!C&&"ww:shadow-sm",B&&"ww:ring-2 ww:ring-blue-400/70 ww:ring-offset-2 ww:ring-offset-background"),children:(0,dt.jsxs)("div",{className:"ww:flex ww:items-center ww:gap-1 ww:pl-4 ww:pr-3 ww:py-2.5",children:[s&&(0,dt.jsx)(Ml,{}),(0,dt.jsx)(kl,{onChange:L.handleTextChange,value:L.text,placeholder:T,onFocus:Xe,className:"ww:min-h-0 ww:py-1 ww:px-0"}),(0,dt.jsx)(Tl,{status:L.status,disabled:L.queueFull})]})})})]})});var ra=q(xe(),1);var bt=q(ee(),1),A2=(0,ra.forwardRef)(function(t,a){let{theme:n,className:r,allowAttachments:o=!1,welcomeMessage:l,welcome:i,placeholder:s="Ask me anything...",triggerEvent:u="triggerDemoRequest",api:c,mcp:d,debug:f=!1,readOnly:p=!1}=t,y=Jl(n),v=ti(y),S=ei(y),g=Zl({...t,api:c}),x=Vl({...t,api:c,sessionId:g.sessionId,onCallTool:d?.onCallTool}),m=Yl(s,!g.text),[w,L]=(0,ra.useState)(null),b=(0,ra.useRef)(null),A=(0,ra.useCallback)(()=>{let D=b.current;if(!D)return;let N=D.querySelector("textarea");N&&N.focus()},[]),R=Ql({messages:g.messages,status:g.status,config:t.suggestions}),_=(0,ra.useCallback)(D=>{let N=D.content.map(B=>B.text??"").join("").trim();N&&g.handleSubmit({text:N,files:[],modelContext:D.modelContext})},[g.handleSubmit]),T=(0,ra.useCallback)(D=>{R.clear(),g.handleSubmit({text:D,files:[]})},[R.clear,g.handleSubmit]);return(0,ra.useImperativeHandle)(a,()=>({sendMessage:D=>{g.handleSubmit({text:D,files:[]}),A()},sendMessageAndWait:D=>g.sendMessageAndWait(D),reset:g.reset,focus:A,get messages(){return g.messages}}),[g.handleSubmit,g.sendMessageAndWait,g.reset,g.messages,A]),(0,ra.useEffect)(()=>{if(!u)return;let D=N=>{let B=N.detail,j=typeof B?.message=="string"?B.message:void 0;j&&g.handleSubmit({text:j,files:[]}),A()};return window.addEventListener(u,D),()=>window.removeEventListener(u,D)},[u,g.handleSubmit,A]),(0,bt.jsxs)("div",{ref:b,style:v,"data-waniwani-chat":"","data-waniwani-layout":"embed",...S?{"data-waniwani-dark":""}:{},className:$("ww:flex ww:flex-col ww:w-full ww:h-full ww:font-[family-name:var(--ww-font)] ww:text-foreground ww:bg-background ww:overflow-hidden",r),children:[(0,bt.jsxs)(Sl,{className:"ww:flex-1 ww:min-h-0 ww:bg-background",children:[(0,bt.jsx)(Cl,{scrollClassName:w?"ww:!relative ww:!overflow-hidden":void 0,children:(0,bt.jsx)(Hl,{messages:g.messages,status:g.status,welcomeMessage:l,welcome:i,onSuggestionSelect:T,resourceEndpoint:d?.resourceEndpoint,chatSessionId:g.sessionId,isDark:S,onFollowUp:_,onCallTool:x,fullscreenToolCallId:w,debug:f,toolDefinitions:g.toolDefinitions,onWidgetDisplayModeChange:(D,N)=>{L(D==="fullscreen"?N.toolCallId:null)}})}),(0,bt.jsx)(Il,{})]}),!p&&(0,bt.jsx)("div",{style:w?{display:"none"}:void 0,children:(0,bt.jsx)(jl,{suggestions:R.suggestions,isLoading:R.isLoading,onSelect:T})}),!p&&(0,bt.jsx)("div",{style:w?{display:"none"}:void 0,children:(0,bt.jsx)(Al,{queuedMessages:g.queuedMessages,onRemove:g.removeQueuedMessage})}),!p&&(0,bt.jsx)("div",{style:w?{display:"none"}:void 0,children:(0,bt.jsx)("div",{className:"ww:shrink-0 ww:px-4 ww:pb-8 ww:pt-2 ww:bg-background",children:(0,bt.jsx)("div",{className:"ww:mx-auto ww:w-full ww:max-w-3xl",children:(0,bt.jsx)(Ll,{onSubmit:g.handleSubmit,globalDrop:o,multiple:o,className:"ww:rounded-2xl ww:border-border ww:bg-input",children:(0,bt.jsxs)("div",{className:"ww:flex ww:items-center ww:gap-1 ww:pl-4 ww:pr-3 ww:py-2.5",children:[o&&(0,bt.jsx)(Ml,{}),(0,bt.jsx)(kl,{onChange:g.handleTextChange,value:g.text,placeholder:m,className:"ww:min-h-0 ww:py-1 ww:px-0"}),(0,bt.jsx)(Tl,{status:g.status,disabled:g.queueFull})]})})})})})]})});var kf=q(ee(),1),E2=(0,_r.forwardRef)(function({config:t,programmatic:a,scriptConfig:n,onReady:r},o){let l=Lf(t,a,n),i=(0,_r.useRef)(null);(0,_r.useEffect)(()=>{r?.()},[]),(0,_r.useImperativeHandle)(o,()=>({get chat(){return i.current}}),[]);let s={api:l.api,headers:{Authorization:`Bearer ${l.token}`},skipRemoteConfig:!0,body:l.mcpServerUrl?{mcpServerUrl:l.mcpServerUrl}:void 0,theme:Bc(l),welcomeMessage:l.welcomeMessage,placeholder:l.placeholder,suggestions:l.suggestions?{initial:l.suggestions}:void 0},u=l.layout??"card";return u==="bar"?(0,kf.jsx)(M2,{...s,ref:i,title:l.title??"Assistant"}):u==="embed"?(0,kf.jsx)(A2,{...s,ref:i,api:s.api}):(0,kf.jsx)(Cf,{...s,ref:i,title:l.title??"Assistant",width:"100%",height:"100%"})});var yx="/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--ww-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--ww-color-red-300:oklch(80.8% .114 19.571);--ww-color-red-400:oklch(70.4% .191 22.216);--ww-color-red-500:oklch(63.7% .237 25.331);--ww-color-blue-400:oklch(70.7% .165 254.624);--ww-spacing:.25rem;--ww-container-sm:24rem;--ww-container-md:28rem;--ww-container-3xl:48rem;--ww-text-xs:.75rem;--ww-text-xs--line-height:calc(1/.75);--ww-text-sm:.875rem;--ww-text-sm--line-height:calc(1.25/.875);--ww-text-base:1rem;--ww-text-base--line-height:calc(1.5/1);--ww-text-lg:1.125rem;--ww-text-lg--line-height:calc(1.75/1.125);--ww-font-weight-medium:500;--ww-font-weight-semibold:600;--ww-tracking-wide:.025em;--ww-tracking-wider:.05em;--ww-tracking-widest:.1em;--ww-leading-normal:1.5;--ww-radius-md:.375rem;--ww-radius-lg:.5rem;--ww-radius-xl:.75rem;--ww-radius-2xl:1rem;--ww-ease-out:cubic-bezier(0,0,.2,1);--ww-animate-spin:spin 1s linear infinite;--ww-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--ww-default-transition-duration:.15s;--ww-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--ww-default-font-family:var(--ww-font-sans,system-ui,-apple-system,\"Segoe UI\",sans-serif);--ww-default-mono-font-family:var(--ww-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ww-default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--ww-default-font-feature-settings,normal);font-variation-settings:var(--ww-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ww-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--ww-default-mono-font-feature-settings,normal);font-variation-settings:var(--ww-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.ww\\:\\!relative{position:relative!important}.ww\\:absolute{position:absolute}.ww\\:relative{position:relative}.ww\\:bottom-4{bottom:calc(var(--ww-spacing)*4)}.ww\\:left-\\[50\\%\\]{left:50%}.ww\\:mx-3{margin-inline:calc(var(--ww-spacing)*3)}.ww\\:mx-auto{margin-inline:auto}.ww\\:my-2{margin-block:calc(var(--ww-spacing)*2)}.ww\\:mt-0\\.5{margin-top:calc(var(--ww-spacing)*.5)}.ww\\:mt-1{margin-top:calc(var(--ww-spacing)*1)}.ww\\:mt-2{margin-top:calc(var(--ww-spacing)*2)}.ww\\:mt-6{margin-top:calc(var(--ww-spacing)*6)}.ww\\:mb-2{margin-bottom:calc(var(--ww-spacing)*2)}.ww\\:mb-4{margin-bottom:calc(var(--ww-spacing)*4)}.ww\\:ml-auto{margin-left:auto}.ww\\:line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ww\\:block{display:block}.ww\\:contents{display:contents}.ww\\:flex{display:flex}.ww\\:grid{display:grid}.ww\\:hidden{display:none}.ww\\:inline-block{display:inline-block}.ww\\:inline-flex{display:inline-flex}.ww\\:field-sizing-content{field-sizing:content}.ww\\:size-2{width:calc(var(--ww-spacing)*2);height:calc(var(--ww-spacing)*2)}.ww\\:size-3{width:calc(var(--ww-spacing)*3);height:calc(var(--ww-spacing)*3)}.ww\\:size-3\\.5{width:calc(var(--ww-spacing)*3.5);height:calc(var(--ww-spacing)*3.5)}.ww\\:size-4{width:calc(var(--ww-spacing)*4);height:calc(var(--ww-spacing)*4)}.ww\\:size-5{width:calc(var(--ww-spacing)*5);height:calc(var(--ww-spacing)*5)}.ww\\:size-7{width:calc(var(--ww-spacing)*7);height:calc(var(--ww-spacing)*7)}.ww\\:size-8{width:calc(var(--ww-spacing)*8);height:calc(var(--ww-spacing)*8)}.ww\\:size-9{width:calc(var(--ww-spacing)*9);height:calc(var(--ww-spacing)*9)}.ww\\:size-12{width:calc(var(--ww-spacing)*12);height:calc(var(--ww-spacing)*12)}.ww\\:size-auto{width:auto;height:auto}.ww\\:size-full{width:100%;height:100%}.ww\\:h-1\\.5{height:calc(var(--ww-spacing)*1.5)}.ww\\:h-3\\.5{height:calc(var(--ww-spacing)*3.5)}.ww\\:h-7{height:calc(var(--ww-spacing)*7)}.ww\\:h-8{height:calc(var(--ww-spacing)*8)}.ww\\:h-9{height:calc(var(--ww-spacing)*9)}.ww\\:h-16{height:calc(var(--ww-spacing)*16)}.ww\\:h-auto{height:auto}.ww\\:h-full{height:100%}.ww\\:max-h-48{max-height:calc(var(--ww-spacing)*48)}.ww\\:min-h-0{min-height:calc(var(--ww-spacing)*0)}.ww\\:min-h-16{min-height:calc(var(--ww-spacing)*16)}.ww\\:min-h-full{min-height:100%}.ww\\:w-1\\.5{width:calc(var(--ww-spacing)*1.5)}.ww\\:w-fit{width:fit-content}.ww\\:w-full{width:100%}.ww\\:max-w-3xl{max-width:var(--ww-container-3xl)}.ww\\:max-w-24{max-width:calc(var(--ww-spacing)*24)}.ww\\:max-w-32{max-width:calc(var(--ww-spacing)*32)}.ww\\:max-w-\\[80\\%\\]{max-width:80%}.ww\\:max-w-full{max-width:100%}.ww\\:max-w-md{max-width:var(--ww-container-md)}.ww\\:max-w-sm{max-width:var(--ww-container-sm)}.ww\\:min-w-0{min-width:calc(var(--ww-spacing)*0)}.ww\\:flex-1{flex:1}.ww\\:shrink-0{flex-shrink:0}.ww\\:grow{flex-grow:1}.ww\\:translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:rotate-90{rotate:90deg}.ww\\:rotate-180{rotate:180deg}.ww\\:animate-\\[ww-fade-in_0\\.2s_ease-out_both\\]{animation:.2s ease-out both ww-fade-in}.ww\\:animate-pulse{animation:var(--ww-animate-pulse)}.ww\\:animate-spin{animation:var(--ww-animate-spin)}.ww\\:cursor-pointer{cursor:pointer}.ww\\:resize-none{resize:none}.ww\\:grid-rows-\\[0fr\\]{grid-template-rows:0fr}.ww\\:grid-rows-\\[1fr\\]{grid-template-rows:1fr}.ww\\:flex-col{flex-direction:column}.ww\\:flex-wrap{flex-wrap:wrap}.ww\\:items-center{align-items:center}.ww\\:items-end{align-items:flex-end}.ww\\:items-start{align-items:flex-start}.ww\\:justify-between{justify-content:space-between}.ww\\:justify-center{justify-content:center}.ww\\:gap-1{gap:calc(var(--ww-spacing)*1)}.ww\\:gap-1\\.5{gap:calc(var(--ww-spacing)*1.5)}.ww\\:gap-2{gap:calc(var(--ww-spacing)*2)}.ww\\:gap-3{gap:calc(var(--ww-spacing)*3)}.ww\\:gap-6{gap:calc(var(--ww-spacing)*6)}:where(.ww\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ww-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ww-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.ww\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ww-spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ww-spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}.ww\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ww\\:\\!overflow-hidden{overflow:hidden!important}.ww\\:overflow-hidden{overflow:hidden}.ww\\:overflow-x-auto{overflow-x:auto}.ww\\:overflow-y-auto{overflow-y:auto}.ww\\:overflow-y-hidden{overflow-y:hidden}.ww\\:rounded{border-radius:var(--ww-radius,16px)}.ww\\:rounded-2xl{border-radius:var(--ww-radius-2xl)}.ww\\:rounded-\\[var\\(--ww-radius\\)\\]{border-radius:var(--ww-radius)}.ww\\:rounded-full{border-radius:3.40282e38px}.ww\\:rounded-lg{border-radius:var(--ww-radius-lg)}.ww\\:rounded-md{border-radius:var(--ww-radius-md)}.ww\\:rounded-xl{border-radius:var(--ww-radius-xl)}.ww\\:border{border-style:var(--tw-border-style);border-width:1px}.ww\\:border-0{border-style:var(--tw-border-style);border-width:0}.ww\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.ww\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ww\\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.ww\\:border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.ww\\:border-\\[\\#03d916\\]{border-color:#03d916}.ww\\:border-border,.ww\\:border-border\\/50{border-color:var(--ww-color-border,#e5e7eb)}@supports (color:color-mix(in lab, red, red)){.ww\\:border-border\\/50{border-color:color-mix(in oklab,var(--ww-color-border,#e5e7eb)50%,transparent)}}.ww\\:border-foreground\\/30{border-color:var(--ww-color-foreground,#1f2937)}@supports (color:color-mix(in lab, red, red)){.ww\\:border-foreground\\/30{border-color:color-mix(in oklab,var(--ww-color-foreground,#1f2937)30%,transparent)}}.ww\\:border-muted-foreground\\/50{border-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:border-muted-foreground\\/50{border-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)50%,transparent)}}.ww\\:border-transparent{border-color:#0000}.ww\\:bg-\\[\\#03d916\\]\\/10{background-color:oklab(76.761% -.205195 .155304/.1)}.ww\\:bg-accent{background-color:var(--ww-color-accent,#f3f4f6)}.ww\\:bg-background,.ww\\:bg-background\\/20{background-color:var(--ww-color-background,#fff)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-background\\/20{background-color:color-mix(in oklab,var(--ww-color-background,#fff)20%,transparent)}}.ww\\:bg-foreground{background-color:var(--ww-color-foreground,#1f2937)}.ww\\:bg-input{background-color:var(--ww-color-input,#f9fafb)}.ww\\:bg-muted{background-color:var(--ww-color-muted,#f1f5f9)}.ww\\:bg-muted-foreground\\/10{background-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-muted-foreground\\/10{background-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)10%,transparent)}}.ww\\:bg-muted-foreground\\/20{background-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-muted-foreground\\/20{background-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)20%,transparent)}}.ww\\:bg-muted-foreground\\/60{background-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-muted-foreground\\/60{background-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)60%,transparent)}}.ww\\:bg-muted\\/50{background-color:var(--ww-color-muted,#f1f5f9)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-muted\\/50{background-color:color-mix(in oklab,var(--ww-color-muted,#f1f5f9)50%,transparent)}}.ww\\:bg-primary{background-color:var(--ww-color-primary,#6366f1)}.ww\\:bg-red-500\\/10{background-color:var(--ww-color-red-500)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-red-500\\/10{background-color:color-mix(in oklab,var(--ww-color-red-500)10%,transparent)}}.ww\\:bg-tool-card{background-color:var(--ww-color-tool-card,#f4f4f5)}.ww\\:bg-transparent{background-color:#0000}.ww\\:object-cover{object-fit:cover}.ww\\:p-0{padding:calc(var(--ww-spacing)*0)}.ww\\:p-1{padding:calc(var(--ww-spacing)*1)}.ww\\:p-3{padding:calc(var(--ww-spacing)*3)}.ww\\:px-0{padding-inline:calc(var(--ww-spacing)*0)}.ww\\:px-1\\.5{padding-inline:calc(var(--ww-spacing)*1.5)}.ww\\:px-2{padding-inline:calc(var(--ww-spacing)*2)}.ww\\:px-3{padding-inline:calc(var(--ww-spacing)*3)}.ww\\:px-4{padding-inline:calc(var(--ww-spacing)*4)}.ww\\:px-6{padding-inline:calc(var(--ww-spacing)*6)}.ww\\:py-0\\.5{padding-block:calc(var(--ww-spacing)*.5)}.ww\\:py-1{padding-block:calc(var(--ww-spacing)*1)}.ww\\:py-1\\.5{padding-block:calc(var(--ww-spacing)*1.5)}.ww\\:py-2{padding-block:calc(var(--ww-spacing)*2)}.ww\\:py-2\\.5{padding-block:calc(var(--ww-spacing)*2.5)}.ww\\:py-3{padding-block:calc(var(--ww-spacing)*3)}.ww\\:py-6{padding-block:calc(var(--ww-spacing)*6)}.ww\\:py-8{padding-block:calc(var(--ww-spacing)*8)}.ww\\:py-12{padding-block:calc(var(--ww-spacing)*12)}.ww\\:pt-2{padding-top:calc(var(--ww-spacing)*2)}.ww\\:pt-2\\.5{padding-top:calc(var(--ww-spacing)*2.5)}.ww\\:pt-3{padding-top:calc(var(--ww-spacing)*3)}.ww\\:pr-3{padding-right:calc(var(--ww-spacing)*3)}.ww\\:pb-1\\.5{padding-bottom:calc(var(--ww-spacing)*1.5)}.ww\\:pb-3{padding-bottom:calc(var(--ww-spacing)*3)}.ww\\:pb-8{padding-bottom:calc(var(--ww-spacing)*8)}.ww\\:pl-4{padding-left:calc(var(--ww-spacing)*4)}.ww\\:text-center{text-align:center}.ww\\:text-left{text-align:left}.ww\\:font-\\[family-name\\:var\\(--ww-font\\)\\]{font-family:var(--ww-font)}.ww\\:font-mono{font-family:var(--ww-font-mono)}.ww\\:text-base{font-size:var(--ww-text-base);line-height:var(--tw-leading,var(--ww-text-base--line-height))}.ww\\:text-lg{font-size:var(--ww-text-lg);line-height:var(--tw-leading,var(--ww-text-lg--line-height))}.ww\\:text-sm{font-size:var(--ww-text-sm);line-height:var(--tw-leading,var(--ww-text-sm--line-height))}.ww\\:text-xs{font-size:var(--ww-text-xs);line-height:var(--tw-leading,var(--ww-text-xs--line-height))}.ww\\:text-\\[10px\\]{font-size:10px}.ww\\:text-\\[11px\\]{font-size:11px}.ww\\:leading-normal{--tw-leading:var(--ww-leading-normal);line-height:var(--ww-leading-normal)}.ww\\:font-medium{--tw-font-weight:var(--ww-font-weight-medium);font-weight:var(--ww-font-weight-medium)}.ww\\:font-semibold{--tw-font-weight:var(--ww-font-weight-semibold);font-weight:var(--ww-font-weight-semibold)}.ww\\:tracking-wide{--tw-tracking:var(--ww-tracking-wide);letter-spacing:var(--ww-tracking-wide)}.ww\\:tracking-wider{--tw-tracking:var(--ww-tracking-wider);letter-spacing:var(--ww-tracking-wider)}.ww\\:tracking-widest{--tw-tracking:var(--ww-tracking-widest);letter-spacing:var(--ww-tracking-widest)}.ww\\:break-words{overflow-wrap:break-word}.ww\\:break-all{word-break:break-all}.ww\\:whitespace-pre-wrap{white-space:pre-wrap}.ww\\:text-background{color:var(--ww-color-background,#fff)}.ww\\:text-foreground,.ww\\:text-foreground\\/50{color:var(--ww-color-foreground,#1f2937)}@supports (color:color-mix(in lab, red, red)){.ww\\:text-foreground\\/50{color:color-mix(in oklab,var(--ww-color-foreground,#1f2937)50%,transparent)}}.ww\\:text-foreground\\/60{color:var(--ww-color-foreground,#1f2937)}@supports (color:color-mix(in lab, red, red)){.ww\\:text-foreground\\/60{color:color-mix(in oklab,var(--ww-color-foreground,#1f2937)60%,transparent)}}.ww\\:text-foreground\\/80{color:var(--ww-color-foreground,#1f2937)}@supports (color:color-mix(in lab, red, red)){.ww\\:text-foreground\\/80{color:color-mix(in oklab,var(--ww-color-foreground,#1f2937)80%,transparent)}}.ww\\:text-muted-foreground{color:var(--ww-color-muted-foreground,#6b7280)}.ww\\:text-primary{color:var(--ww-color-primary,#6366f1)}.ww\\:text-primary-foreground{color:var(--ww-color-primary-foreground,#1f2937)}.ww\\:text-red-400{color:var(--ww-color-red-400)}.ww\\:uppercase{text-transform:uppercase}.ww\\:opacity-0{opacity:0}.ww\\:opacity-100{opacity:1}.ww\\:shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ww\\:ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ww\\:ring-blue-400\\/70{--tw-ring-color:var(--ww-color-blue-400)}@supports (color:color-mix(in lab, red, red)){.ww\\:ring-blue-400\\/70{--tw-ring-color:color-mix(in oklab,var(--ww-color-blue-400)70%,transparent)}}.ww\\:ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ww\\:ring-offset-background{--tw-ring-offset-color:var(--ww-color-background,#fff)}.ww\\:transition-\\[grid-template-rows\\,opacity\\]{transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.ww\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.ww\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.ww\\:ease-out{--tw-ease:var(--ww-ease-out);transition-timing-function:var(--ww-ease-out)}.ww\\:outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.ww\\:group-hover\\:opacity-0:is(:where(.ww\\:group):hover *){opacity:0}.ww\\:group-hover\\:opacity-100:is(:where(.ww\\:group):hover *){opacity:1}}.ww\\:group-\\[\\.is-assistant\\]\\:text-foreground:is(:where(.ww\\:group).is-assistant *){color:var(--ww-color-foreground,#1f2937)}.ww\\:group-\\[\\.is-user\\]\\:ml-auto:is(:where(.ww\\:group).is-user *){margin-left:auto}.ww\\:group-\\[\\.is-user\\]\\:rounded-lg:is(:where(.ww\\:group).is-user *){border-radius:var(--ww-radius-lg)}.ww\\:group-\\[\\.is-user\\]\\:bg-user-bubble:is(:where(.ww\\:group).is-user *){background-color:var(--ww-color-user-bubble,#f4f4f4)}.ww\\:group-\\[\\.is-user\\]\\:px-4:is(:where(.ww\\:group).is-user *){padding-inline:calc(var(--ww-spacing)*4)}.ww\\:group-\\[\\.is-user\\]\\:py-3:is(:where(.ww\\:group).is-user *){padding-block:calc(var(--ww-spacing)*3)}.ww\\:group-\\[\\.is-user\\]\\:text-primary-foreground:is(:where(.ww\\:group).is-user *){color:var(--ww-color-primary-foreground,#1f2937)}.ww\\:placeholder\\:text-muted-foreground::placeholder{color:var(--ww-color-muted-foreground,#6b7280)}@media (hover:hover){.ww\\:hover\\:border-primary\\/30:hover{border-color:var(--ww-color-primary,#6366f1)}@supports (color:color-mix(in lab, red, red)){.ww\\:hover\\:border-primary\\/30:hover{border-color:color-mix(in oklab,var(--ww-color-primary,#6366f1)30%,transparent)}}.ww\\:hover\\:bg-accent:hover{background-color:var(--ww-color-accent,#f3f4f6)}.ww\\:hover\\:bg-foreground:hover{background-color:var(--ww-color-foreground,#1f2937)}.ww\\:hover\\:bg-muted:hover{background-color:var(--ww-color-muted,#f1f5f9)}.ww\\:hover\\:bg-muted-foreground\\/10:hover{background-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:hover\\:bg-muted-foreground\\/10:hover{background-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)10%,transparent)}}.ww\\:hover\\:bg-muted\\/50:hover{background-color:var(--ww-color-muted,#f1f5f9)}@supports (color:color-mix(in lab, red, red)){.ww\\:hover\\:bg-muted\\/50:hover{background-color:color-mix(in oklab,var(--ww-color-muted,#f1f5f9)50%,transparent)}}.ww\\:hover\\:bg-primary\\/90:hover{background-color:var(--ww-color-primary,#6366f1)}@supports (color:color-mix(in lab, red, red)){.ww\\:hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab,var(--ww-color-primary,#6366f1)90%,transparent)}}.ww\\:hover\\:text-accent-foreground:hover{color:var(--ww-color-accent-foreground,#1f2937)}.ww\\:hover\\:text-foreground:hover{color:var(--ww-color-foreground,#1f2937)}.ww\\:hover\\:text-red-300:hover{color:var(--ww-color-red-300)}.ww\\:hover\\:underline:hover{text-decoration-line:underline}}.ww\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.ww\\:disabled\\:opacity-30:disabled{opacity:.3}.ww\\:disabled\\:opacity-40:disabled{opacity:.4}.ww\\:disabled\\:opacity-50:disabled{opacity:.5}.ww\\:\\[\\&\\>\\*\\:first-child\\]\\:mt-0>:first-child{margin-top:calc(var(--ww-spacing)*0)}.ww\\:\\[\\&\\>\\*\\:last-child\\]\\:mb-0>:last-child{margin-bottom:calc(var(--ww-spacing)*0)}}@keyframes ww-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes ww-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}@keyframes ww-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}[data-waniwani-chat] ::-webkit-scrollbar{width:8px}[data-waniwani-chat] ::-webkit-scrollbar-track{background:0 0}[data-waniwani-chat] ::-webkit-scrollbar-thumb{background:var(--ww-color-border);border-radius:9999px}[data-waniwani-chat] ::-webkit-scrollbar-thumb:hover{background:var(--ww-color-muted-foreground)}[data-waniwani-chat] *{scrollbar-width:thin;scrollbar-color:var(--ww-color-border)transparent}[data-waniwani-chat]{--ww-color-background:var(--ww-bg,#fff);--ww-color-foreground:var(--ww-text,#1f2937);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#1f2937);--ww-color-muted-foreground:var(--ww-muted,#6b7280);--ww-color-border:var(--ww-border,#e5e7eb);--ww-color-input:var(--ww-input-bg,#f9fafb);--ww-color-accent:var(--ww-assistant-bubble,#f3f4f6);--ww-color-accent-foreground:var(--ww-text,#1f2937);--ww-color-user-bubble:var(--ww-user-bubble,#f4f4f4);--ww-color-card:var(--ww-bg,#fff);--ww-color-card-foreground:var(--ww-text,#1f2937);--ww-color-card-header:var(--ww-header-bg,#fff);--ww-color-card-header-foreground:var(--ww-header-text,#1f2937);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#f4f4f5);--ww-radius:var(--ww-radius,16px);--ww-font-sans:var(--ww-font,system-ui,-apple-system,\"Segoe UI\",sans-serif)}.dark [data-waniwani-chat],[data-waniwani-chat].dark{--ww-color-background:var(--ww-bg,#212121);--ww-color-foreground:var(--ww-text,#ececec);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#fff);--ww-color-muted-foreground:var(--ww-muted,#8e8ea0);--ww-color-border:var(--ww-border,#444);--ww-color-input:var(--ww-input-bg,#2f2f2f);--ww-color-accent:var(--ww-assistant-bubble,#2f2f2f);--ww-color-accent-foreground:var(--ww-text,#ececec);--ww-color-user-bubble:var(--ww-user-bubble,#303030);--ww-color-card:var(--ww-bg,#212121);--ww-color-card-foreground:var(--ww-text,#ececec);--ww-color-card-header:var(--ww-header-bg,#1e1e1e);--ww-color-card-header-foreground:var(--ww-header-text,#ececec);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#262626)}[data-waniwani-chat] [data-streamdown=table-wrapper]{flex-direction:column;gap:.5rem;margin-top:1rem;margin-bottom:1rem;display:flex}[data-waniwani-chat] [data-streamdown=table-wrapper]>div:first-child:has(button){justify-content:flex-end;align-items:center;gap:.25rem;display:flex}[data-waniwani-chat] [data-streamdown=table-wrapper]>div:last-child{overflow-x:auto}[data-waniwani-chat] [data-streamdown=table]{border-collapse:collapse;border:1px solid var(--ww-color-border);border-radius:.75rem;width:100%;overflow:hidden}[data-waniwani-chat] [data-streamdown=table-header]{background-color:var(--ww-color-accent)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=table-header]{background-color:color-mix(in srgb,var(--ww-color-accent)80%,transparent)}}[data-waniwani-chat] [data-streamdown=table-body]{background-color:var(--ww-color-accent)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=table-body]{background-color:color-mix(in srgb,var(--ww-color-accent)40%,transparent)}}[data-waniwani-chat] [data-streamdown=table-body]>tr+tr{border-top:1px solid var(--ww-color-border)}[data-waniwani-chat] [data-streamdown=table-row]{border-bottom:1px solid var(--ww-color-border)}[data-waniwani-chat] [data-streamdown=table-header-cell]{white-space:nowrap;text-align:left;padding:.5rem 1rem;font-size:.875rem;font-weight:600}[data-waniwani-chat] [data-streamdown=table-cell]{padding:.5rem 1rem;font-size:.875rem}[data-waniwani-chat] [data-streamdown=link]{color:var(--ww-color-primary);overflow-wrap:anywhere;cursor:pointer;font-weight:500;text-decoration:underline}[data-waniwani-chat] [data-streamdown=link-safety-modal]{z-index:50;background-color:var(--ww-color-background);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=link-safety-modal]{background-color:color-mix(in srgb,var(--ww-color-background)50%,transparent)}}[data-waniwani-chat] [data-streamdown=link-safety-modal]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div{border:1px solid var(--ww-color-border);background-color:var(--ww-color-background);width:100%;max-width:28rem;color:var(--ww-color-foreground);border-radius:.75rem;flex-direction:column;gap:1rem;margin:0 1rem;padding:1.5rem;display:flex;position:relative;box-shadow:0 10px 25px #0000001a}[data-waniwani-chat] [data-streamdown=link-safety-modal] button{cursor:pointer}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>button:first-child{color:var(--ww-color-muted-foreground);background:0 0;border:none;border-radius:.375rem;padding:.25rem;transition:background-color .15s,color .15s;position:absolute;top:1rem;right:1rem}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>button:first-child:hover{background-color:var(--ww-color-accent);color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type{flex-direction:column;gap:.5rem;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type>div{align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type>p{color:var(--ww-color-muted-foreground);font-size:.875rem}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:nth-child(3){word-break:break-all;background-color:var(--ww-color-accent);border-radius:.375rem;max-height:8rem;padding:.75rem;font-family:ui-monospace,monospace;font-size:.875rem;overflow-y:auto}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child{gap:.5rem;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button{border:none;border-radius:.375rem;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .15s;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:first-child{border:1px solid var(--ww-color-border);background-color:var(--ww-color-background);color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:first-child:hover{background-color:var(--ww-color-accent)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:last-child{background-color:var(--ww-color-primary);color:#fff}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:last-child:hover{opacity:.9}[data-waniwani-chat] [data-streamdown=ordered-list]{white-space:normal;list-style-type:decimal;list-style-position:inside}[data-waniwani-chat] li [data-streamdown=ordered-list]{padding-left:1.5rem}[data-waniwani-chat] [data-streamdown=unordered-list]{white-space:normal;list-style-type:disc;list-style-position:inside}[data-waniwani-chat] li [data-streamdown=unordered-list]{padding-left:1.5rem}[data-waniwani-chat] [data-streamdown=list-item]{padding-top:.25rem;padding-bottom:.25rem}[data-waniwani-chat] [data-streamdown=list-item]>p{display:inline}[data-waniwani-chat] [data-streamdown=inline-code]{background-color:var(--ww-color-accent);border-radius:.25rem;padding:.125rem .375rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:.875rem}[data-waniwani-chat] [data-streamdown=heading-1]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.875rem;font-weight:600;line-height:2.25rem}[data-waniwani-chat] [data-streamdown=heading-2]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.5rem;font-weight:600;line-height:2rem}[data-waniwani-chat] [data-streamdown=heading-3]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.25rem;font-weight:600;line-height:1.75rem}[data-waniwani-chat] [data-streamdown=heading-4]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.125rem;font-weight:600;line-height:1.75rem}[data-waniwani-chat] [data-streamdown=heading-5]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1rem;font-weight:600;line-height:1.5rem}[data-waniwani-chat] [data-streamdown=heading-6]{margin-top:1.5rem;margin-bottom:.5rem;font-size:.875rem;font-weight:600;line-height:1.25rem}[data-waniwani-chat] [data-streamdown=blockquote]{border-left:4px solid var(--ww-color-muted-foreground);margin-top:1rem;margin-bottom:1rem}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=blockquote]{border-left:4px solid color-mix(in srgb,var(--ww-color-muted-foreground)30%,transparent)}}[data-waniwani-chat] [data-streamdown=blockquote]{color:var(--ww-color-muted-foreground);padding-left:1rem;font-style:italic}[data-waniwani-chat] [data-streamdown=horizontal-rule]{border-color:var(--ww-color-border);margin-top:1.5rem;margin-bottom:1.5rem}[data-waniwani-chat] [data-streamdown=strong]{font-weight:600}[data-waniwani-chat] [data-streamdown=image-wrapper]{margin-top:1rem;margin-bottom:1rem;display:inline-block;position:relative}[data-waniwani-chat] [data-streamdown=image]{border-radius:.5rem;max-width:100%}[data-waniwani-chat] [data-streamdown=code-block]{border:1px solid var(--ww-color-border);border-radius:.75rem;width:100%;margin-top:1rem;margin-bottom:1rem;overflow:hidden}[data-waniwani-chat] [data-streamdown=code-block-header]{background-color:var(--ww-color-accent);justify-content:space-between;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=code-block-header]{background-color:color-mix(in srgb,var(--ww-color-accent)80%,transparent)}}[data-waniwani-chat] [data-streamdown=code-block-header]{color:var(--ww-color-muted-foreground);padding:.75rem;font-size:.75rem}[data-waniwani-chat] [data-streamdown=code-block-body]{padding:1rem;font-size:.875rem;overflow-x:auto}[data-waniwani-chat] [data-streamdown=code-block-copy-button],[data-waniwani-chat] [data-streamdown=code-block-download-button]{cursor:pointer;color:var(--ww-color-muted-foreground);background:0 0;border:none;padding:.25rem;transition:color .15s}[data-waniwani-chat] [data-streamdown=code-block-copy-button]:hover,[data-waniwani-chat] [data-streamdown=code-block-download-button]:hover{color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=mermaid-block]{border:1px solid var(--ww-color-border);border-radius:.75rem;height:auto;margin-top:1rem;margin-bottom:1rem;padding:1rem;position:relative}[data-waniwani-chat] [data-streamdown=mermaid]{width:100%;height:100%}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}",Ba=null,Or=null,oa=null;function _2(e,t){if(yx&&yx!=="__WANIWANI_EMBED_CSS__"){let a=document.createElement("style");a.textContent=yx,e.appendChild(a)}if(t.css)try{let a=new URL(t.css,window.location.href);if(a.protocol==="https:"||a.protocol==="http:"){let n=document.createElement("link");n.rel="stylesheet",n.href=a.href,e.appendChild(n)}else console.warn("[WaniWani] Custom CSS URL must use http or https protocol.")}catch{console.warn("[WaniWani] Invalid custom CSS URL:",t.css)}}var R2="data-waniwani-embed";function v6(e,t,a){let n=document.querySelector(`[${R2}]`);if(!n)throw new Error(`[WaniWani] No inline mount target. Place \`<div ${R2}></div>\` in your page for \`mode: "inline"\`.`);oa=document.createElement("div"),oa.id="waniwani-chat-embed",oa.style.width="100%",oa.style.height="100%",n.appendChild(oa);let r=oa.attachShadow({mode:"open"});_2(r,e);let o=document.createElement("div");o.style.width="100%",o.style.height="100%",r.appendChild(o);let l=au.default.createRef();return Or=xx.default.createRoot(o),Or.render(au.default.createElement(E2,{ref:l,config:e,programmatic:t,scriptConfig:a})),{destroy:()=>{Or?.unmount(),Or=null,oa?.remove(),oa=null,Ba=null},open:()=>{},close:()=>{},toggle:()=>{},sendMessage:i=>l.current?.chat?.sendMessage(i)}}function w6(e,t){let a=t.position==="bottom-left",n=t.theme?.primaryColor??"#6366f1",r=document.createElement("div");r.setAttribute("data-waniwani-skeleton","");let o=document.createElement("style");o.textContent=`
138
+ `);a=i.pop()??"";for(let s of i){let u=s.trim();if(!u.startsWith("data:"))continue;let c=u.slice(5).trim();if(c!=="[DONE]")try{let d=JSON.parse(c);if(!r){l.enqueue(d);continue}let f=await r(d);if(f.success){l.enqueue(f.value);continue}let p=JF(f.error);if(p?.length){let y={...d};for(let S of p)delete y[S];let v=await r(y);v.success&&l.enqueue(v.value)}}catch{}}}}))}};var b2="waniwani-visitor-id";function S2(e,t){return e.match(t)?.[1]??null}function e6(e){let t=[["Edge",/Edg(?:e|A|iOS)?\/(\S+)/],["Opera",/(?:OPR|Opera)\/(\S+)/],["Samsung Internet",/SamsungBrowser\/(\S+)/],["Firefox",/Firefox\/(\S+)/],["Chrome",/Chrome\/(\S+)/],["Safari",/Version\/(\S+).*Safari/]];for(let[a,n]of t){let r=S2(e,n);if(r)return{name:a,version:r}}return null}function t6(e){let t=[["iOS",/(?:iPhone|iPad|iPod).+?OS (\d+[_.\d]*)/],["Android",/Android (\d+[.\d]*)/],["macOS",/Mac OS X (\d+[_.\d]*)/],["Windows",/Windows NT (\d+[.\d]*)/],["ChromeOS",/CrOS \S+ (\d+[.\d]*)/],["Linux",/Linux/]];for(let[a,n]of t){let r=S2(e,n);if(r)return{name:a,version:r.replace(/_/g,".")};if(a==="Linux"&&n.test(e))return{name:a,version:""}}return null}function a6(e){return typeof navigator<"u"&&"userAgentData"in navigator&&navigator.userAgentData?.mobile?"mobile":/iPad|tablet|PlayBook/i.test(e)?"tablet":/Mobi|Android.*Mobile|iPhone|iPod/i.test(e)?"mobile":"desktop"}async function n6(e){let t=new TextEncoder().encode(e),a=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(a)).map(n=>n.toString(16).padStart(2,"0")).join("")}async function r6(){try{let a=localStorage.getItem(b2);if(a)return a}catch{}let e=[navigator.userAgent,screen.width,screen.height,screen.colorDepth,Intl.DateTimeFormat().resolvedOptions().timeZone,navigator.language,navigator.hardwareConcurrency??"",navigator.platform??""].join("|"),t=await n6(e);try{localStorage.setItem(b2,t)}catch{}return t}async function C2(){let e=navigator.userAgent,t=await r6();return{userAgent:e,browser:e6(e),os:t6(e),deviceType:a6(e),language:navigator.language,languages:[...navigator.languages],timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,screenWidth:screen.width,screenHeight:screen.height,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,colorDepth:screen.colorDepth,devicePixelRatio:window.devicePixelRatio??1,touchSupport:"ontouchstart"in window||navigator.maxTouchPoints>0,connectionType:navigator.connection?.effectiveType??"unknown",referrer:document.referrer,visitorId:t}}var o6="x-session-id";function I2(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}async function l6(e,t){let a=`${e.replace(/\/$/,"")}/tools`,n=await fetch(a,{method:"GET",headers:t?{...t}:void 0});if(!n.ok)throw new Error(`[WaniWani] Failed to fetch /tools: ${n.status} ${n.statusText}`);let r=await n.json();if(!r||!Array.isArray(r.tools))return{};let o={};for(let l of r.tools)l&&typeof l.name=="string"&&(o[l.name]=l);return o}function Zl(e){let{api:t="/api/waniwani",headers:a,body:n,onMessageSent:r,onResponseReceived:o}=e,l=(0,be.useRef)(a),i=(0,be.useRef)(n),s=(0,be.useRef)(void 0),u=(0,be.useRef)(null),[c,d]=(0,be.useState)(void 0),f=(0,be.useRef)(c),p=(0,be.useCallback)(()=>f.current,[]),y=(0,be.useCallback)(G=>{let Q=I2(G);Q&&f.current!==Q&&(f.current=Q,d(Q))},[]),v=(0,be.useCallback)(()=>{f.current=void 0,d(void 0)},[]);(0,be.useEffect)(()=>{l.current=a},[a]),(0,be.useEffect)(()=>{i.current=n},[n]),(0,be.useEffect)(()=>{C2().then(G=>{u.current=G}).catch(()=>{})},[]);let S=(0,be.useRef)(new wf({api:t,headers:()=>({...l.current}),body:()=>{let G={...i.current??{}},Q=Object.hasOwn(G,"sessionId"),ke=I2(G.sessionId);if(ke)y(ke),G.sessionId=ke;else if(Q)v(),delete G.sessionId;else{let se=p();se&&(G.sessionId=se)}if(Fl(s.current)&&(G.modelContext=s.current),u.current){let se=u.current;G.visitorContext={timezone:se.timezone,language:se.language,languages:se.languages,deviceType:se.deviceType,referrer:se.referrer,visitorId:se.visitorId}}return G},fetch:(async(G,Q)=>{let ke=await fetch(G,Q);return s.current=void 0,y(ke.headers.get(o6)),ke})})),g=(0,be.useRef)(null),x=(0,be.useRef)(null),m=(0,be.useRef)({}),[w,L]=(0,be.useState)(0),b=e.skipRemoteConfig===!0,A=(0,be.useCallback)(async()=>{if(!b)try{let G=await l6(t,l.current);m.current=G,L(Q=>Q+1)}catch(G){console.warn("[WaniWani] Failed to fetch tool definitions:",G instanceof Error?G.message:G)}},[t,b]);(0,be.useEffect)(()=>{A()},[A]);let{messages:R,sendMessage:_,setMessages:T,status:D}=w2({messages:e.initialMessages,transport:S.current,onFinish({message:G}){o?.(),g.current&&(x.current=G)},onError(G){console.warn("[WaniWani] Chat error:",G.message),g.current&&(g.current.reject(G),g.current=null)}});(0,be.useEffect)(()=>{if(D==="ready"&&g.current&&x.current){let G=g.current,Q=x.current;g.current=null,x.current=null,G.resolve(Q)}},[D]);let[N,B]=(0,be.useState)(""),[j,V]=(0,be.useState)([]),F=D==="submitted"||D==="streaming",te=(0,be.useCallback)(G=>{V(Q=>Q.filter(ke=>ke.id!==G))},[]),$e=F&&j.length>0,Z=(0,be.useCallback)(G=>{let Q=!!G.text?.trim(),ke=!!G.files?.length;if(Q||ke){if(F){if(j.length>0)return;V(se=>[...se,{id:jc(),text:G.text||"",files:G.files??[],modelContext:G.modelContext}]),B("");return}s.current=G.modelContext,_({text:G.text||"",files:G.files}),r?.(G.text||""),B("")}},[_,r,F,j.length]),C=(0,be.useCallback)(G=>new Promise((Q,ke)=>{g.current={resolve:Q,reject:ke},_({text:G}),r?.(G)}),[_,r]);(0,be.useEffect)(()=>{if(D!=="ready"||j.length===0)return;let[G,...Q]=j;V(Q),s.current=G.modelContext,_({text:G.text,files:G.files.length>0?G.files:void 0}),r?.(G.text)},[D,_,r,j]);let Xe=(0,be.useCallback)(()=>{T([]),V([]),v(),B(""),m.current={},L(G=>G+1),A()},[T,v,A]),le=(0,be.useCallback)(G=>{B(G.target.value)},[]),k=R[R.length-1],Ze=R.length>0,Ue=F&&(!Ze||k.role==="user"),Hn=m.current;return{messages:R,status:D,text:N,setText:B,handleSubmit:Z,handleTextChange:le,isLoading:F,showLoaderBubble:Ue,lastMessage:k,hasMessages:Ze,sendMessage:_,sendMessageAndWait:C,reset:Xe,queuedMessages:j,queueFull:$e,removeQueuedMessage:te,sessionId:c,toolDefinitions:Hn,refreshToolDefinitions:A}}var ko=q(xe(),1),i6={debug:!1,eval:!1};function bf(e="/api/waniwani",t,a=!1){let[n,r]=(0,ko.useState)(i6),o=(0,ko.useRef)(t);return(0,ko.useEffect)(()=>{o.current=t},[t]),(0,ko.useEffect)(()=>{a||(async()=>{try{let l=o.current,s=await(await fetch(`${e}/config`,{headers:l?{...l}:void 0})).json();r({debug:s.debug===!0,eval:s.eval===!0})}catch{}})()},[e,a]),n}var sn=q(xe(),1);function s6(e){for(let t of e.parts){let a=t;if(a.type==="data"||a.type==="data-suggestions"){let n=a.data;if(n&&Array.isArray(n.suggestions))return n.suggestions}}return null}function L2(e){return typeof e=="object"&&e!==null&&"initial"in e}function Ql(e){let{messages:t,status:a,config:n}=e,r=L2(n)&&n.initial?n.initial:void 0,[o,l]=(0,sn.useState)(r??[]),i=(0,sn.useRef)(a),s=n===!0||L2(n)&&n.dynamic!==!1,u=(0,sn.useCallback)(()=>{l([])},[]),c=t.length>0;(0,sn.useEffect)(()=>{!c&&r&&r.length>0&&l(r)},[r,c]);let d=t[t.length-1];return(0,sn.useEffect)(()=>{d?.role==="user"&&u()},[d,u]),(0,sn.useEffect)(()=>{let f=i.current;if(i.current=a,f==="streaming"&&a==="ready"&&s){let p=[...t].reverse().find(v=>v.role==="assistant");if(!p)return;console.log("[WaniWani] Assistant parts:",p.parts);let y=s6(p);console.log("[WaniWani] Extracted suggestions:",y),y&&l(y)}},[a,s,t]),{suggestions:o,isLoading:!1,clear:u}}var Kl=q(xe(),1),u6=50,c6=30,d6=2e3,k2=500;function Yl(e,t=!0){let[a,n]=(0,Kl.useState)(""),r=(0,Kl.useRef)(void 0);return(0,Kl.useEffect)(()=>{if(!t){n("");return}let o=0,l=!1,i=!1,s=()=>{i||(l?(o--,n(e.slice(0,o)),o<=0?(l=!1,r.current=setTimeout(s,k2)):r.current=setTimeout(s,c6)):(o++,n(e.slice(0,o)),o>=e.length?(l=!0,r.current=setTimeout(s,d6)):r.current=setTimeout(s,u6)))};return r.current=setTimeout(s,k2),()=>{i=!0,clearTimeout(r.current)}},[e,t]),a}function Sf(e,t){let a=t?.Authorization,n=typeof a=="string"&&a.startsWith("Bearer ")?a.slice(7):null;return n?`${e}/resource?token=${encodeURIComponent(n)}`:`${e}/resource`}var f6={primaryColor:"#6366f1",primaryForeground:"#1f2937",backgroundColor:"#ffffff",textColor:"#1f2937",mutedColor:"#6b7280",borderColor:"#e5e7eb",assistantBubbleColor:"#f3f4f6",userBubbleColor:"#f4f4f4",inputBackgroundColor:"#f9fafb",borderRadius:16,messageBorderRadius:12,fontFamily:"system-ui, -apple-system, 'Segoe UI', sans-serif",headerBackgroundColor:"#ffffff",headerTextColor:"#1f2937",statusColor:"#22c55e",toolCardColor:"#f4f4f5"};var p6={primaryColor:["--ww-primary","--ww-color-primary"],primaryForeground:["--ww-primary-fg","--ww-color-primary-foreground"],backgroundColor:["--ww-bg","--ww-color-background"],textColor:["--ww-text","--ww-color-foreground","--ww-color-accent-foreground"],mutedColor:["--ww-muted","--ww-color-muted-foreground"],borderColor:["--ww-border","--ww-color-border"],assistantBubbleColor:["--ww-assistant-bubble","--ww-color-accent"],userBubbleColor:["--ww-user-bubble"],inputBackgroundColor:["--ww-input-bg","--ww-color-input"],borderRadius:["--ww-radius"],messageBorderRadius:["--ww-msg-radius"],fontFamily:["--ww-font"],headerBackgroundColor:["--ww-header-bg"],headerTextColor:["--ww-header-text"],statusColor:["--ww-status"],toolCardColor:["--ww-tool-card","--ww-color-tool-card"]};function Jl(e){return{...f6,...e}}function ei(e){let t=e.backgroundColor.replace("#",""),a=parseInt(t.substring(0,2),16),n=parseInt(t.substring(2,4),16),r=parseInt(t.substring(4,6),16);return(a*299+n*587+r*114)/1e3<128}function ti(e){let t={};for(let[a,n]of Object.entries(p6)){let r=e[a],o=typeof r=="number"?`${r}px`:String(r);for(let l of n)t[l]=o}return t}var rt=q(ee(),1),Cf=(0,Ut.forwardRef)(function(t,a){let{theme:n,title:r="Assistant",width:o,height:l,className:i,allowAttachments:s=!1,welcomeMessage:u,welcome:c,placeholder:d="Ask me anything...",triggerEvent:f="triggerDemoRequest",api:p,debug:y}=t,v=p??"/api/waniwani",S=Sf(v,t.headers),g=Jl(n),x=ti(g),m=ei(g),w=bf(v,t.headers,t.skipRemoteConfig),L=y??w.debug,b=Zl({...t,api:v}),A=Vl({...t,api:v,sessionId:b.sessionId}),R=Yl(d,!b.text),[_,T]=(0,Ut.useState)(!1),[D,N]=(0,Ut.useState)(null),B=(0,Ut.useRef)(null),j=(0,Ut.useRef)(void 0),V=(0,Ut.useCallback)(()=>{let Z=B.current;if(!Z)return;Z.scrollIntoView({behavior:"smooth",block:"center"});let C=Z.querySelector("textarea");C&&setTimeout(()=>C.focus(),300),T(!0),clearTimeout(j.current),j.current=setTimeout(()=>T(!1),2e3)},[]),F=Ql({messages:b.messages,status:b.status,config:t.suggestions}),te=(0,Ut.useCallback)(Z=>{let C=Z.content.map(Xe=>Xe.text??"").join("").trim();C&&b.handleSubmit({text:C,files:[],modelContext:Z.modelContext})},[b.handleSubmit]),$e=(0,Ut.useCallback)(Z=>{F.clear(),b.handleSubmit({text:Z,files:[]})},[F.clear,b.handleSubmit]);return(0,Ut.useImperativeHandle)(a,()=>({sendMessage:Z=>{b.handleSubmit({text:Z,files:[]}),V()},sendMessageAndWait:Z=>b.sendMessageAndWait(Z),reset:b.reset,focus:V,get messages(){return b.messages}}),[b.handleSubmit,b.sendMessageAndWait,b.reset,b.messages,V]),(0,Ut.useEffect)(()=>{if(!f)return;let Z=C=>{let Xe=C.detail,le=typeof Xe?.message=="string"?Xe.message:void 0;le&&b.handleSubmit({text:le,files:[]}),V()};return window.addEventListener(f,Z),()=>window.removeEventListener(f,Z)},[f,b.handleSubmit,V]),(0,rt.jsxs)("div",{ref:B,style:{...x,width:o,height:l},"data-waniwani-chat":"","data-waniwani-layout":"card",...m?{"data-waniwani-dark":""}:{},className:$("ww:flex ww:flex-col ww:font-[family-name:var(--ww-font)] ww:text-foreground ww:bg-background ww:rounded-[var(--ww-radius)] ww:overflow-hidden",_&&"ww:ring-2 ww:ring-blue-400/70 ww:ring-offset-2 ww:ring-offset-background",i),children:[(0,rt.jsxs)("div",{className:"ww:shrink-0 ww:flex ww:items-center ww:px-6 ww:py-3",style:{backgroundColor:g.headerBackgroundColor,color:g.headerTextColor},children:[(0,rt.jsx)("div",{className:"ww:text-sm ww:font-semibold ww:truncate",children:r}),(0,rt.jsx)(Gc,{messages:b.messages,evalEnabled:w.eval,api:v})]}),(0,rt.jsxs)(Sl,{className:"ww:flex-1 ww:min-h-0 ww:bg-background",children:[(0,rt.jsx)(Cl,{scrollClassName:D?"ww:!relative ww:!overflow-hidden":void 0,children:(0,rt.jsx)(Hl,{messages:b.messages,status:b.status,welcomeMessage:u,welcome:c,onSuggestionSelect:$e,resourceEndpoint:S,chatSessionId:b.sessionId,isDark:m,onFollowUp:te,onCallTool:A,fullscreenToolCallId:D,debug:L,toolDefinitions:b.toolDefinitions,onWidgetDisplayModeChange:(Z,C)=>{N(Z==="fullscreen"?C.toolCallId:null)}})}),(0,rt.jsx)(Il,{})]}),(0,rt.jsx)("div",{style:D?{display:"none"}:void 0,children:(0,rt.jsx)(jl,{suggestions:F.suggestions,isLoading:F.isLoading,onSelect:$e})}),(0,rt.jsx)("div",{style:D?{display:"none"}:void 0,children:(0,rt.jsx)(Al,{queuedMessages:b.queuedMessages,onRemove:b.removeQueuedMessage})}),(0,rt.jsx)("div",{style:D?{display:"none"}:void 0,children:(0,rt.jsx)("div",{className:"ww:shrink-0 ww:px-4 ww:pb-8 ww:pt-2 ww:bg-background",children:(0,rt.jsx)("div",{className:"ww:mx-auto ww:w-full ww:max-w-3xl",children:(0,rt.jsx)(Ll,{onSubmit:b.handleSubmit,globalDrop:s,multiple:s,className:"ww:rounded-2xl ww:border-border ww:bg-input",children:(0,rt.jsxs)("div",{className:"ww:flex ww:items-center ww:gap-1 ww:pl-4 ww:pr-3 ww:py-2.5",children:[s&&(0,rt.jsx)(Ml,{}),(0,rt.jsx)(kl,{onChange:b.handleTextChange,value:b.text,placeholder:R,className:"ww:min-h-0 ww:py-1 ww:px-0"}),(0,rt.jsx)(Tl,{status:b.status,disabled:b.queueFull})]})})})})})]})});var If=q(xe(),1);async function m6(e,t,a){try{let n=`${e.replace(/\/$/,"")}/config`,r=await fetch(n,{method:"GET",headers:{Authorization:`Bearer ${t}`},signal:a});if(!r.ok)return{};let o=await r.json(),l=o&&typeof o=="object"&&"data"in o&&o.data?o.data:o;return l?h6(l):{}}catch{return{}}}function h6(e){let t={};return e.title!=null&&(t.title=e.title),e.welcomeMessage!=null&&(t.welcomeMessage=e.welcomeMessage),e.placeholder!=null&&(t.placeholder=e.placeholder),e.suggestions!=null&&e.suggestions.length>0&&(t.suggestions=e.suggestions),t}function Lf(e,t,a){let[n,r]=(0,If.useState)(e);return(0,If.useEffect)(()=>{let o=e.api,l=e.token;if(!o||!l)return;let i=new AbortController;return m6(o,l,i.signal).then(s=>{if(!i.signal.aborted&&Object.keys(s).length!==0)try{r(Nc(t,s,a))}catch(u){console.error("[WaniWani] Failed to apply remote config:",u)}}).catch(s=>{console.error("[WaniWani] Remote config fetch failed:",s)}),()=>i.abort()},[e.api,e.token]),n}var Tt=q(ee(),1);function g6(){return(0,Tt.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",role:"img","aria-label":"Chat",children:[(0,Tt.jsx)("title",{children:"Chat"}),(0,Tt.jsx)("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"})]})}function y6(){return(0,Tt.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",role:"img","aria-label":"Close",children:[(0,Tt.jsx)("title",{children:"Close"}),(0,Tt.jsx)("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),(0,Tt.jsx)("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})}var hx=56,gx=20,x6=12,To=200,T2=(0,ct.forwardRef)(function({config:t,programmatic:a,scriptConfig:n,onReady:r},o){let l=Lf(t,a,n),[i,s]=(0,ct.useState)(!1),[u,c]=(0,ct.useState)(0),[d,f]=(0,ct.useState)(!1),p=(0,ct.useRef)(null),y=(0,ct.useRef)(i);y.current=i,(0,ct.useEffect)(()=>{r?.()},[]),(0,ct.useEffect)(()=>{let F=window.matchMedia("(max-width: 768px)"),te=$e=>f($e.matches);return te(F),F.addEventListener("change",te),()=>F.removeEventListener("change",te)},[]),(0,ct.useEffect)(()=>{if(!i)return;let F=te=>{te.key==="Escape"&&s(!1)};return document.addEventListener("keydown",F),()=>document.removeEventListener("keydown",F)},[i]),(0,ct.useEffect)(()=>{i&&c(0)},[i]);let v=(0,ct.useCallback)(()=>{y.current||c(F=>F+1)},[]),S=(0,ct.useCallback)(()=>s(!0),[]),g=(0,ct.useCallback)(()=>s(!1),[]),x=(0,ct.useCallback)(()=>s(F=>!F),[]);(0,ct.useImperativeHandle)(o,()=>({open:S,close:g,toggle:x,get chat(){return p.current}}));let m=!i&&u>0,w=l.mode==="custom",L=l.position==="bottom-left",b=l.width??400,A=l.height??600,R=l.theme?.primaryColor??"#6366f1",_={position:"fixed",bottom:gx,...L?{left:gx}:{right:gx},zIndex:2147483647,fontFamily:l.theme?.fontFamily??"system-ui, -apple-system, 'Segoe UI', sans-serif"},T={width:hx,height:hx,borderRadius:"50%",backgroundColor:R,color:"#ffffff",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",transition:`transform ${To}ms ease, box-shadow ${To}ms ease`,outline:"none"},D=d?{position:"fixed",inset:0,zIndex:2147483647,transition:`transform ${To}ms ease, opacity ${To}ms ease`,...i?{transform:"translateY(0) scale(1)",opacity:1}:{transform:"translateY(20px) scale(0.95)",opacity:0,pointerEvents:"none"}}:{position:"absolute",bottom:w?0:hx+x6,...L?{left:0}:{right:0},width:b,height:A,transition:`transform ${To}ms ease, opacity ${To}ms ease`,...i?{transform:"translateY(0) scale(1)",opacity:1}:{transform:"translateY(20px) scale(0.95)",opacity:0,pointerEvents:"none"}},N={width:"100%",height:"100%",borderRadius:d?0:12,overflow:"hidden",boxShadow:d?"none":"0 8px 32px rgba(0, 0, 0, 0.12), 0 2px 8px rgba(0, 0, 0, 0.08)"},B={position:"absolute",top:d?12:8,right:d?12:8,zIndex:10,width:d?36:28,height:d?36:28,borderRadius:"50%",backgroundColor:"rgba(0, 0, 0, 0.06)",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",color:"inherit",outline:"none",transition:`background-color ${To}ms ease`},j={position:"absolute",top:-2,right:-2,width:12,height:12,borderRadius:"50%",backgroundColor:"#ef4444",border:"2px solid #ffffff"},V=Bc(l);return(0,Tt.jsxs)("div",{style:_,children:[(0,Tt.jsx)("div",{style:D,role:"dialog","aria-label":"Chat panel",children:(0,Tt.jsxs)("div",{style:{...N,position:"relative"},children:[(0,Tt.jsx)("button",{type:"button",onClick:g,style:B,"aria-label":"Close chat",onMouseEnter:F=>{F.currentTarget.style.backgroundColor="rgba(0, 0, 0, 0.12)"},onMouseLeave:F=>{F.currentTarget.style.backgroundColor="rgba(0, 0, 0, 0.06)"},children:(0,Tt.jsx)(y6,{})}),(0,Tt.jsx)(Cf,{ref:p,api:l.api,headers:{Authorization:`Bearer ${l.token}`},skipRemoteConfig:!0,body:l.mcpServerUrl?{mcpServerUrl:l.mcpServerUrl}:void 0,theme:V,title:l.title??"Assistant",welcomeMessage:l.welcomeMessage,placeholder:l.placeholder,suggestions:l.suggestions?{initial:l.suggestions}:void 0,onResponseReceived:v,width:"100%",height:"100%"})]})}),!w&&(0,Tt.jsxs)("button",{type:"button",onClick:x,style:{...T,position:"relative"},"aria-label":i?"Close chat":"Open chat",onMouseEnter:F=>{F.currentTarget.style.transform="scale(1.08)",F.currentTarget.style.boxShadow="0 6px 20px rgba(0, 0, 0, 0.2)"},onMouseLeave:F=>{F.currentTarget.style.transform="scale(1)",F.currentTarget.style.boxShadow="0 4px 12px rgba(0, 0, 0, 0.15)"},children:[(0,Tt.jsx)(g6,{}),m&&(0,Tt.jsx)("span",{style:j})]})]})});var _r=q(xe(),1);var wt=q(xe(),1);var dt=q(ee(),1),M2=(0,wt.forwardRef)(function(t,a){let{theme:n,title:r="Assistant",width:o=600,expandedWidth:l,expandedHeight:i=400,allowAttachments:s=!1,welcomeMessage:u,welcome:c,placeholder:d="Ask me anything...",triggerEvent:f="triggerDemoRequest",api:p}=t,y=l??Math.round((typeof o=="number"?o:600)*1.2),v=p??"/api/waniwani",S=Sf(v,t.headers),g=Jl(n),x=ti(g),m=ei(g),w=bf(p,t.headers,t.skipRemoteConfig),L=Zl(t),b=Vl({...t,sessionId:L.sessionId}),A=Ql({messages:L.messages,status:L.status,config:t.suggestions}),R=(0,wt.useCallback)(le=>{let k=le.content.map(Ze=>Ze.text??"").join("").trim();k&&L.handleSubmit({text:k,files:[],modelContext:le.modelContext})},[L.handleSubmit]),_=(0,wt.useCallback)(le=>{A.clear(),L.handleSubmit({text:le,files:[]})},[A.clear,L.handleSubmit]),T=Yl(d,!L.text),[D,N]=(0,wt.useState)(!1),[B,j]=(0,wt.useState)(!1),[V,F]=(0,wt.useState)(null),te=(0,wt.useRef)(null),$e=(0,wt.useRef)(void 0),Z=(0,wt.useCallback)(()=>{let le=te.current;if(!le)return;le.scrollIntoView({behavior:"smooth",block:"center"});let k=le.querySelector("textarea");k&&setTimeout(()=>k.focus(),300),N(!0),j(!0),clearTimeout($e.current),$e.current=setTimeout(()=>j(!1),2e3)},[]);(0,wt.useImperativeHandle)(a,()=>({sendMessage:le=>{L.handleSubmit({text:le,files:[]}),Z()},sendMessageAndWait:le=>L.sendMessageAndWait(le),reset:L.reset,focus:Z,get messages(){return L.messages}}),[L.handleSubmit,L.sendMessageAndWait,L.reset,L.messages,Z]),(0,wt.useEffect)(()=>{if(!f)return;let le=k=>{let Ze=k.detail,Ue=typeof Ze?.message=="string"?Ze.message:void 0;Ue&&L.handleSubmit({text:Ue,files:[]}),Z()};return window.addEventListener(f,le),()=>window.removeEventListener(f,le)},[f,L.handleSubmit,Z]);let C=D||V!==null;(0,wt.useEffect)(()=>{if(!D)return;let le=k=>{te.current&&!te.current.contains(k.target)&&N(!1)};return document.addEventListener("mousedown",le),()=>document.removeEventListener("mousedown",le)},[D]);let Xe=(0,wt.useCallback)(()=>{N(!0)},[]);return(0,dt.jsxs)("div",{ref:te,style:{...x,width:C?y:o,transition:"width 0.4s cubic-bezier(0.16, 1, 0.3, 1)"},"data-waniwani-chat":"","data-waniwani-layout":"bar",...m?{"data-waniwani-dark":""}:{},className:"ww:flex ww:flex-col ww:font-[family-name:var(--ww-font)] ww:text-foreground",children:[(0,dt.jsxs)("div",{style:{overflow:"hidden",backgroundColor:g.backgroundColor,borderRadius:"var(--ww-radius) var(--ww-radius) 0 0",maxHeight:C?i+200:0,opacity:C?1:0,transform:C?"scaleX(1)":"scaleX(0.88)",transformOrigin:"center bottom",transition:"max-height 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.25s ease-out, transform 0.4s cubic-bezier(0.16, 1, 0.3, 1)"},children:[(0,dt.jsxs)("div",{className:"ww:shrink-0 ww:flex ww:items-center ww:px-6 ww:py-3",style:{backgroundColor:g.headerBackgroundColor,color:g.headerTextColor},children:[(0,dt.jsx)("div",{className:"ww:text-sm ww:font-semibold ww:truncate",children:r}),(0,dt.jsx)(Gc,{messages:L.messages,evalEnabled:w.eval,api:v})]}),(0,dt.jsxs)(Sl,{className:"ww:flex-1",style:{height:i},children:[(0,dt.jsx)(Cl,{scrollClassName:V?"ww:!relative ww:!overflow-hidden":void 0,children:(0,dt.jsx)(Hl,{messages:L.messages,status:L.status,welcomeMessage:u,welcome:c,onSuggestionSelect:_,resourceEndpoint:S,chatSessionId:L.sessionId,isDark:m,onFollowUp:R,onCallTool:b,fullscreenToolCallId:V,toolDefinitions:L.toolDefinitions,onWidgetDisplayModeChange:(le,k)=>{F(le==="fullscreen"?k.toolCallId:null)}})}),(0,dt.jsx)(Il,{})]}),(0,dt.jsx)("div",{style:V?{display:"none"}:void 0,children:(0,dt.jsx)(jl,{suggestions:A.suggestions,isLoading:A.isLoading,onSelect:_})}),(0,dt.jsx)("div",{style:V?{display:"none"}:void 0,children:(0,dt.jsx)(Al,{queuedMessages:L.queuedMessages,onRemove:L.removeQueuedMessage})})]}),(0,dt.jsx)("div",{style:{backgroundColor:C?g.backgroundColor:"transparent",borderRadius:C?"0 0 var(--ww-radius) var(--ww-radius)":void 0,boxShadow:C?"0 8px 24px rgba(0,0,0,0.1)":"none",transition:"background-color 0.2s ease, border-radius 0.3s ease, box-shadow 0.35s ease, padding 0.3s ease",padding:C?"8px 16px 16px":"0"},children:(0,dt.jsx)(Ll,{onSubmit:L.handleSubmit,globalDrop:s,multiple:s,className:$("ww:rounded-2xl ww:border-border ww:bg-input ww:transition-all ww:duration-300",!C&&"ww:shadow-sm",B&&"ww:ring-2 ww:ring-blue-400/70 ww:ring-offset-2 ww:ring-offset-background"),children:(0,dt.jsxs)("div",{className:"ww:flex ww:items-center ww:gap-1 ww:pl-4 ww:pr-3 ww:py-2.5",children:[s&&(0,dt.jsx)(Ml,{}),(0,dt.jsx)(kl,{onChange:L.handleTextChange,value:L.text,placeholder:T,onFocus:Xe,className:"ww:min-h-0 ww:py-1 ww:px-0"}),(0,dt.jsx)(Tl,{status:L.status,disabled:L.queueFull})]})})})]})});var ra=q(xe(),1);var bt=q(ee(),1),A2=(0,ra.forwardRef)(function(t,a){let{theme:n,className:r,allowAttachments:o=!1,welcomeMessage:l,welcome:i,placeholder:s="Ask me anything...",triggerEvent:u="triggerDemoRequest",api:c,mcp:d,debug:f=!1,readOnly:p=!1}=t,y=Jl(n),v=ti(y),S=ei(y),g=Zl({...t,api:c}),x=Vl({...t,api:c,sessionId:g.sessionId,onCallTool:d?.onCallTool}),m=Yl(s,!g.text),[w,L]=(0,ra.useState)(null),b=(0,ra.useRef)(null),A=(0,ra.useCallback)(()=>{let D=b.current;if(!D)return;let N=D.querySelector("textarea");N&&N.focus()},[]),R=Ql({messages:g.messages,status:g.status,config:t.suggestions}),_=(0,ra.useCallback)(D=>{let N=D.content.map(B=>B.text??"").join("").trim();N&&g.handleSubmit({text:N,files:[],modelContext:D.modelContext})},[g.handleSubmit]),T=(0,ra.useCallback)(D=>{R.clear(),g.handleSubmit({text:D,files:[]})},[R.clear,g.handleSubmit]);return(0,ra.useImperativeHandle)(a,()=>({sendMessage:D=>{g.handleSubmit({text:D,files:[]}),A()},sendMessageAndWait:D=>g.sendMessageAndWait(D),reset:g.reset,focus:A,get messages(){return g.messages}}),[g.handleSubmit,g.sendMessageAndWait,g.reset,g.messages,A]),(0,ra.useEffect)(()=>{if(!u)return;let D=N=>{let B=N.detail,j=typeof B?.message=="string"?B.message:void 0;j&&g.handleSubmit({text:j,files:[]}),A()};return window.addEventListener(u,D),()=>window.removeEventListener(u,D)},[u,g.handleSubmit,A]),(0,bt.jsxs)("div",{ref:b,style:v,"data-waniwani-chat":"","data-waniwani-layout":"embed",...S?{"data-waniwani-dark":""}:{},className:$("ww:flex ww:flex-col ww:w-full ww:h-full ww:font-[family-name:var(--ww-font)] ww:text-foreground ww:bg-background ww:overflow-hidden",r),children:[(0,bt.jsxs)(Sl,{className:"ww:flex-1 ww:min-h-0 ww:bg-background",children:[(0,bt.jsx)(Cl,{scrollClassName:w?"ww:!relative ww:!overflow-hidden":void 0,children:(0,bt.jsx)(Hl,{messages:g.messages,status:g.status,welcomeMessage:l,welcome:i,onSuggestionSelect:T,resourceEndpoint:d?.resourceEndpoint,chatSessionId:g.sessionId,isDark:S,onFollowUp:_,onCallTool:x,fullscreenToolCallId:w,debug:f,toolDefinitions:g.toolDefinitions,onWidgetDisplayModeChange:(D,N)=>{L(D==="fullscreen"?N.toolCallId:null)}})}),(0,bt.jsx)(Il,{})]}),!p&&(0,bt.jsx)("div",{style:w?{display:"none"}:void 0,children:(0,bt.jsx)(jl,{suggestions:R.suggestions,isLoading:R.isLoading,onSelect:T})}),!p&&(0,bt.jsx)("div",{style:w?{display:"none"}:void 0,children:(0,bt.jsx)(Al,{queuedMessages:g.queuedMessages,onRemove:g.removeQueuedMessage})}),!p&&(0,bt.jsx)("div",{style:w?{display:"none"}:void 0,children:(0,bt.jsx)("div",{className:"ww:shrink-0 ww:px-4 ww:pb-8 ww:pt-2 ww:bg-background",children:(0,bt.jsx)("div",{className:"ww:mx-auto ww:w-full ww:max-w-3xl",children:(0,bt.jsx)(Ll,{onSubmit:g.handleSubmit,globalDrop:o,multiple:o,className:"ww:rounded-2xl ww:border-border ww:bg-input",children:(0,bt.jsxs)("div",{className:"ww:flex ww:items-center ww:gap-1 ww:pl-4 ww:pr-3 ww:py-2.5",children:[o&&(0,bt.jsx)(Ml,{}),(0,bt.jsx)(kl,{onChange:g.handleTextChange,value:g.text,placeholder:m,className:"ww:min-h-0 ww:py-1 ww:px-0"}),(0,bt.jsx)(Tl,{status:g.status,disabled:g.queueFull})]})})})})})]})});var kf=q(ee(),1),E2=(0,_r.forwardRef)(function({config:t,programmatic:a,scriptConfig:n,onReady:r},o){let l=Lf(t,a,n),i=(0,_r.useRef)(null);(0,_r.useEffect)(()=>{r?.()},[]),(0,_r.useImperativeHandle)(o,()=>({get chat(){return i.current}}),[]);let s={borderRadius:0,...Bc(l)},u={api:l.api,headers:{Authorization:`Bearer ${l.token}`},skipRemoteConfig:!0,body:l.mcpServerUrl?{mcpServerUrl:l.mcpServerUrl}:void 0,theme:s,welcomeMessage:l.welcomeMessage,placeholder:l.placeholder,suggestions:l.suggestions?{initial:l.suggestions}:void 0},c=l.layout??"card";return c==="bar"?(0,kf.jsx)(M2,{...u,ref:i,title:l.title??"Assistant"}):c==="embed"?(0,kf.jsx)(A2,{...u,ref:i,api:u.api}):(0,kf.jsx)(Cf,{...u,ref:i,title:l.title??"Assistant",width:"100%",height:"100%"})});var yx="/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--ww-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--ww-color-red-300:oklch(80.8% .114 19.571);--ww-color-red-400:oklch(70.4% .191 22.216);--ww-color-red-500:oklch(63.7% .237 25.331);--ww-color-blue-400:oklch(70.7% .165 254.624);--ww-spacing:.25rem;--ww-container-sm:24rem;--ww-container-md:28rem;--ww-container-3xl:48rem;--ww-text-xs:.75rem;--ww-text-xs--line-height:calc(1/.75);--ww-text-sm:.875rem;--ww-text-sm--line-height:calc(1.25/.875);--ww-text-base:1rem;--ww-text-base--line-height:calc(1.5/1);--ww-text-lg:1.125rem;--ww-text-lg--line-height:calc(1.75/1.125);--ww-font-weight-medium:500;--ww-font-weight-semibold:600;--ww-tracking-wide:.025em;--ww-tracking-wider:.05em;--ww-tracking-widest:.1em;--ww-leading-normal:1.5;--ww-radius-md:.375rem;--ww-radius-lg:.5rem;--ww-radius-xl:.75rem;--ww-radius-2xl:1rem;--ww-ease-out:cubic-bezier(0,0,.2,1);--ww-animate-spin:spin 1s linear infinite;--ww-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--ww-default-transition-duration:.15s;--ww-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--ww-default-font-family:var(--ww-font-sans,system-ui,-apple-system,\"Segoe UI\",sans-serif);--ww-default-mono-font-family:var(--ww-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ww-default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--ww-default-font-feature-settings,normal);font-variation-settings:var(--ww-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ww-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--ww-default-mono-font-feature-settings,normal);font-variation-settings:var(--ww-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.ww\\:\\!relative{position:relative!important}.ww\\:absolute{position:absolute}.ww\\:relative{position:relative}.ww\\:bottom-4{bottom:calc(var(--ww-spacing)*4)}.ww\\:left-\\[50\\%\\]{left:50%}.ww\\:mx-3{margin-inline:calc(var(--ww-spacing)*3)}.ww\\:mx-auto{margin-inline:auto}.ww\\:my-2{margin-block:calc(var(--ww-spacing)*2)}.ww\\:mt-0\\.5{margin-top:calc(var(--ww-spacing)*.5)}.ww\\:mt-1{margin-top:calc(var(--ww-spacing)*1)}.ww\\:mt-2{margin-top:calc(var(--ww-spacing)*2)}.ww\\:mt-6{margin-top:calc(var(--ww-spacing)*6)}.ww\\:mb-2{margin-bottom:calc(var(--ww-spacing)*2)}.ww\\:mb-4{margin-bottom:calc(var(--ww-spacing)*4)}.ww\\:ml-auto{margin-left:auto}.ww\\:line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ww\\:block{display:block}.ww\\:contents{display:contents}.ww\\:flex{display:flex}.ww\\:grid{display:grid}.ww\\:hidden{display:none}.ww\\:inline-block{display:inline-block}.ww\\:inline-flex{display:inline-flex}.ww\\:field-sizing-content{field-sizing:content}.ww\\:size-2{width:calc(var(--ww-spacing)*2);height:calc(var(--ww-spacing)*2)}.ww\\:size-3{width:calc(var(--ww-spacing)*3);height:calc(var(--ww-spacing)*3)}.ww\\:size-3\\.5{width:calc(var(--ww-spacing)*3.5);height:calc(var(--ww-spacing)*3.5)}.ww\\:size-4{width:calc(var(--ww-spacing)*4);height:calc(var(--ww-spacing)*4)}.ww\\:size-5{width:calc(var(--ww-spacing)*5);height:calc(var(--ww-spacing)*5)}.ww\\:size-7{width:calc(var(--ww-spacing)*7);height:calc(var(--ww-spacing)*7)}.ww\\:size-8{width:calc(var(--ww-spacing)*8);height:calc(var(--ww-spacing)*8)}.ww\\:size-9{width:calc(var(--ww-spacing)*9);height:calc(var(--ww-spacing)*9)}.ww\\:size-12{width:calc(var(--ww-spacing)*12);height:calc(var(--ww-spacing)*12)}.ww\\:size-auto{width:auto;height:auto}.ww\\:size-full{width:100%;height:100%}.ww\\:h-1\\.5{height:calc(var(--ww-spacing)*1.5)}.ww\\:h-3\\.5{height:calc(var(--ww-spacing)*3.5)}.ww\\:h-7{height:calc(var(--ww-spacing)*7)}.ww\\:h-8{height:calc(var(--ww-spacing)*8)}.ww\\:h-9{height:calc(var(--ww-spacing)*9)}.ww\\:h-16{height:calc(var(--ww-spacing)*16)}.ww\\:h-auto{height:auto}.ww\\:h-full{height:100%}.ww\\:max-h-48{max-height:calc(var(--ww-spacing)*48)}.ww\\:min-h-0{min-height:calc(var(--ww-spacing)*0)}.ww\\:min-h-10{min-height:calc(var(--ww-spacing)*10)}.ww\\:min-h-full{min-height:100%}.ww\\:w-1\\.5{width:calc(var(--ww-spacing)*1.5)}.ww\\:w-fit{width:fit-content}.ww\\:w-full{width:100%}.ww\\:max-w-3xl{max-width:var(--ww-container-3xl)}.ww\\:max-w-24{max-width:calc(var(--ww-spacing)*24)}.ww\\:max-w-32{max-width:calc(var(--ww-spacing)*32)}.ww\\:max-w-\\[80\\%\\]{max-width:80%}.ww\\:max-w-full{max-width:100%}.ww\\:max-w-md{max-width:var(--ww-container-md)}.ww\\:max-w-sm{max-width:var(--ww-container-sm)}.ww\\:min-w-0{min-width:calc(var(--ww-spacing)*0)}.ww\\:flex-1{flex:1}.ww\\:shrink-0{flex-shrink:0}.ww\\:grow{flex-grow:1}.ww\\:translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:rotate-90{rotate:90deg}.ww\\:rotate-180{rotate:180deg}.ww\\:animate-\\[ww-fade-in_0\\.2s_ease-out_both\\]{animation:.2s ease-out both ww-fade-in}.ww\\:animate-pulse{animation:var(--ww-animate-pulse)}.ww\\:animate-spin{animation:var(--ww-animate-spin)}.ww\\:cursor-pointer{cursor:pointer}.ww\\:resize-none{resize:none}.ww\\:grid-rows-\\[0fr\\]{grid-template-rows:0fr}.ww\\:grid-rows-\\[1fr\\]{grid-template-rows:1fr}.ww\\:flex-col{flex-direction:column}.ww\\:flex-wrap{flex-wrap:wrap}.ww\\:items-center{align-items:center}.ww\\:items-end{align-items:flex-end}.ww\\:items-start{align-items:flex-start}.ww\\:justify-between{justify-content:space-between}.ww\\:justify-center{justify-content:center}.ww\\:gap-1{gap:calc(var(--ww-spacing)*1)}.ww\\:gap-1\\.5{gap:calc(var(--ww-spacing)*1.5)}.ww\\:gap-2{gap:calc(var(--ww-spacing)*2)}.ww\\:gap-3{gap:calc(var(--ww-spacing)*3)}.ww\\:gap-6{gap:calc(var(--ww-spacing)*6)}:where(.ww\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ww-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ww-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.ww\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ww-spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ww-spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}.ww\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ww\\:\\!overflow-hidden{overflow:hidden!important}.ww\\:overflow-hidden{overflow:hidden}.ww\\:overflow-x-auto{overflow-x:auto}.ww\\:overflow-y-auto{overflow-y:auto}.ww\\:overflow-y-hidden{overflow-y:hidden}.ww\\:\\!rounded-full{border-radius:3.40282e38px!important}.ww\\:rounded{border-radius:var(--ww-radius,16px)}.ww\\:rounded-2xl{border-radius:var(--ww-radius-2xl)}.ww\\:rounded-\\[var\\(--ww-radius\\)\\]{border-radius:var(--ww-radius)}.ww\\:rounded-full{border-radius:3.40282e38px}.ww\\:rounded-lg{border-radius:var(--ww-radius-lg)}.ww\\:rounded-md{border-radius:var(--ww-radius-md)}.ww\\:rounded-xl{border-radius:var(--ww-radius-xl)}.ww\\:border{border-style:var(--tw-border-style);border-width:1px}.ww\\:border-0{border-style:var(--tw-border-style);border-width:0}.ww\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.ww\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ww\\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.ww\\:border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.ww\\:border-\\[\\#03d916\\]{border-color:#03d916}.ww\\:border-border,.ww\\:border-border\\/50{border-color:var(--ww-color-border,#e5e7eb)}@supports (color:color-mix(in lab, red, red)){.ww\\:border-border\\/50{border-color:color-mix(in oklab,var(--ww-color-border,#e5e7eb)50%,transparent)}}.ww\\:border-foreground\\/30{border-color:var(--ww-color-foreground,#1f2937)}@supports (color:color-mix(in lab, red, red)){.ww\\:border-foreground\\/30{border-color:color-mix(in oklab,var(--ww-color-foreground,#1f2937)30%,transparent)}}.ww\\:border-muted-foreground\\/50{border-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:border-muted-foreground\\/50{border-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)50%,transparent)}}.ww\\:border-transparent{border-color:#0000}.ww\\:bg-\\[\\#03d916\\]\\/10{background-color:oklab(76.761% -.205195 .155304/.1)}.ww\\:bg-accent{background-color:var(--ww-color-accent,#f3f4f6)}.ww\\:bg-background,.ww\\:bg-background\\/20{background-color:var(--ww-color-background,#fff)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-background\\/20{background-color:color-mix(in oklab,var(--ww-color-background,#fff)20%,transparent)}}.ww\\:bg-foreground{background-color:var(--ww-color-foreground,#1f2937)}.ww\\:bg-input{background-color:var(--ww-color-input,#f9fafb)}.ww\\:bg-muted{background-color:var(--ww-color-muted,#f1f5f9)}.ww\\:bg-muted-foreground\\/10{background-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-muted-foreground\\/10{background-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)10%,transparent)}}.ww\\:bg-muted-foreground\\/20{background-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-muted-foreground\\/20{background-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)20%,transparent)}}.ww\\:bg-muted-foreground\\/60{background-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-muted-foreground\\/60{background-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)60%,transparent)}}.ww\\:bg-muted\\/50{background-color:var(--ww-color-muted,#f1f5f9)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-muted\\/50{background-color:color-mix(in oklab,var(--ww-color-muted,#f1f5f9)50%,transparent)}}.ww\\:bg-primary{background-color:var(--ww-color-primary,#6366f1)}.ww\\:bg-red-500\\/10{background-color:var(--ww-color-red-500)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-red-500\\/10{background-color:color-mix(in oklab,var(--ww-color-red-500)10%,transparent)}}.ww\\:bg-tool-card{background-color:var(--ww-color-tool-card,#f4f4f5)}.ww\\:bg-transparent{background-color:#0000}.ww\\:object-cover{object-fit:cover}.ww\\:p-0{padding:calc(var(--ww-spacing)*0)}.ww\\:p-1{padding:calc(var(--ww-spacing)*1)}.ww\\:p-3{padding:calc(var(--ww-spacing)*3)}.ww\\:px-0{padding-inline:calc(var(--ww-spacing)*0)}.ww\\:px-1\\.5{padding-inline:calc(var(--ww-spacing)*1.5)}.ww\\:px-2{padding-inline:calc(var(--ww-spacing)*2)}.ww\\:px-3{padding-inline:calc(var(--ww-spacing)*3)}.ww\\:px-4{padding-inline:calc(var(--ww-spacing)*4)}.ww\\:px-6{padding-inline:calc(var(--ww-spacing)*6)}.ww\\:py-0\\.5{padding-block:calc(var(--ww-spacing)*.5)}.ww\\:py-1{padding-block:calc(var(--ww-spacing)*1)}.ww\\:py-1\\.5{padding-block:calc(var(--ww-spacing)*1.5)}.ww\\:py-2{padding-block:calc(var(--ww-spacing)*2)}.ww\\:py-2\\.5{padding-block:calc(var(--ww-spacing)*2.5)}.ww\\:py-3{padding-block:calc(var(--ww-spacing)*3)}.ww\\:py-6{padding-block:calc(var(--ww-spacing)*6)}.ww\\:py-8{padding-block:calc(var(--ww-spacing)*8)}.ww\\:py-12{padding-block:calc(var(--ww-spacing)*12)}.ww\\:pt-2{padding-top:calc(var(--ww-spacing)*2)}.ww\\:pt-2\\.5{padding-top:calc(var(--ww-spacing)*2.5)}.ww\\:pt-3{padding-top:calc(var(--ww-spacing)*3)}.ww\\:pr-3{padding-right:calc(var(--ww-spacing)*3)}.ww\\:pb-1\\.5{padding-bottom:calc(var(--ww-spacing)*1.5)}.ww\\:pb-3{padding-bottom:calc(var(--ww-spacing)*3)}.ww\\:pb-8{padding-bottom:calc(var(--ww-spacing)*8)}.ww\\:pl-4{padding-left:calc(var(--ww-spacing)*4)}.ww\\:text-center{text-align:center}.ww\\:text-left{text-align:left}.ww\\:font-\\[family-name\\:var\\(--ww-font\\)\\]{font-family:var(--ww-font)}.ww\\:font-mono{font-family:var(--ww-font-mono)}.ww\\:text-base{font-size:var(--ww-text-base);line-height:var(--tw-leading,var(--ww-text-base--line-height))}.ww\\:text-lg{font-size:var(--ww-text-lg);line-height:var(--tw-leading,var(--ww-text-lg--line-height))}.ww\\:text-sm{font-size:var(--ww-text-sm);line-height:var(--tw-leading,var(--ww-text-sm--line-height))}.ww\\:text-xs{font-size:var(--ww-text-xs);line-height:var(--tw-leading,var(--ww-text-xs--line-height))}.ww\\:text-\\[10px\\]{font-size:10px}.ww\\:text-\\[11px\\]{font-size:11px}.ww\\:leading-normal{--tw-leading:var(--ww-leading-normal);line-height:var(--ww-leading-normal)}.ww\\:font-medium{--tw-font-weight:var(--ww-font-weight-medium);font-weight:var(--ww-font-weight-medium)}.ww\\:font-semibold{--tw-font-weight:var(--ww-font-weight-semibold);font-weight:var(--ww-font-weight-semibold)}.ww\\:tracking-wide{--tw-tracking:var(--ww-tracking-wide);letter-spacing:var(--ww-tracking-wide)}.ww\\:tracking-wider{--tw-tracking:var(--ww-tracking-wider);letter-spacing:var(--ww-tracking-wider)}.ww\\:tracking-widest{--tw-tracking:var(--ww-tracking-widest);letter-spacing:var(--ww-tracking-widest)}.ww\\:break-words{overflow-wrap:break-word}.ww\\:break-all{word-break:break-all}.ww\\:whitespace-pre-wrap{white-space:pre-wrap}.ww\\:text-background{color:var(--ww-color-background,#fff)}.ww\\:text-foreground,.ww\\:text-foreground\\/50{color:var(--ww-color-foreground,#1f2937)}@supports (color:color-mix(in lab, red, red)){.ww\\:text-foreground\\/50{color:color-mix(in oklab,var(--ww-color-foreground,#1f2937)50%,transparent)}}.ww\\:text-foreground\\/60{color:var(--ww-color-foreground,#1f2937)}@supports (color:color-mix(in lab, red, red)){.ww\\:text-foreground\\/60{color:color-mix(in oklab,var(--ww-color-foreground,#1f2937)60%,transparent)}}.ww\\:text-foreground\\/80{color:var(--ww-color-foreground,#1f2937)}@supports (color:color-mix(in lab, red, red)){.ww\\:text-foreground\\/80{color:color-mix(in oklab,var(--ww-color-foreground,#1f2937)80%,transparent)}}.ww\\:text-muted-foreground{color:var(--ww-color-muted-foreground,#6b7280)}.ww\\:text-primary{color:var(--ww-color-primary,#6366f1)}.ww\\:text-primary-foreground{color:var(--ww-color-primary-foreground,#1f2937)}.ww\\:text-red-400{color:var(--ww-color-red-400)}.ww\\:uppercase{text-transform:uppercase}.ww\\:opacity-0{opacity:0}.ww\\:opacity-100{opacity:1}.ww\\:shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ww\\:ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ww\\:ring-blue-400\\/70{--tw-ring-color:var(--ww-color-blue-400)}@supports (color:color-mix(in lab, red, red)){.ww\\:ring-blue-400\\/70{--tw-ring-color:color-mix(in oklab,var(--ww-color-blue-400)70%,transparent)}}.ww\\:ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ww\\:ring-offset-background{--tw-ring-offset-color:var(--ww-color-background,#fff)}.ww\\:transition-\\[grid-template-rows\\,opacity\\]{transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.ww\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.ww\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.ww\\:ease-out{--tw-ease:var(--ww-ease-out);transition-timing-function:var(--ww-ease-out)}.ww\\:outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.ww\\:group-hover\\:opacity-0:is(:where(.ww\\:group):hover *){opacity:0}.ww\\:group-hover\\:opacity-100:is(:where(.ww\\:group):hover *){opacity:1}}.ww\\:group-\\[\\.is-assistant\\]\\:text-foreground:is(:where(.ww\\:group).is-assistant *){color:var(--ww-color-foreground,#1f2937)}.ww\\:group-\\[\\.is-user\\]\\:ml-auto:is(:where(.ww\\:group).is-user *){margin-left:auto}.ww\\:group-\\[\\.is-user\\]\\:rounded-lg:is(:where(.ww\\:group).is-user *){border-radius:var(--ww-radius-lg)}.ww\\:group-\\[\\.is-user\\]\\:bg-user-bubble:is(:where(.ww\\:group).is-user *){background-color:var(--ww-color-user-bubble,#f4f4f4)}.ww\\:group-\\[\\.is-user\\]\\:px-4:is(:where(.ww\\:group).is-user *){padding-inline:calc(var(--ww-spacing)*4)}.ww\\:group-\\[\\.is-user\\]\\:py-3:is(:where(.ww\\:group).is-user *){padding-block:calc(var(--ww-spacing)*3)}.ww\\:group-\\[\\.is-user\\]\\:text-primary-foreground:is(:where(.ww\\:group).is-user *){color:var(--ww-color-primary-foreground,#1f2937)}.ww\\:placeholder\\:text-muted-foreground::placeholder{color:var(--ww-color-muted-foreground,#6b7280)}@media (hover:hover){.ww\\:hover\\:border-primary\\/30:hover{border-color:var(--ww-color-primary,#6366f1)}@supports (color:color-mix(in lab, red, red)){.ww\\:hover\\:border-primary\\/30:hover{border-color:color-mix(in oklab,var(--ww-color-primary,#6366f1)30%,transparent)}}.ww\\:hover\\:bg-accent:hover{background-color:var(--ww-color-accent,#f3f4f6)}.ww\\:hover\\:bg-foreground:hover{background-color:var(--ww-color-foreground,#1f2937)}.ww\\:hover\\:bg-muted:hover{background-color:var(--ww-color-muted,#f1f5f9)}.ww\\:hover\\:bg-muted-foreground\\/10:hover{background-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:hover\\:bg-muted-foreground\\/10:hover{background-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)10%,transparent)}}.ww\\:hover\\:bg-muted\\/50:hover{background-color:var(--ww-color-muted,#f1f5f9)}@supports (color:color-mix(in lab, red, red)){.ww\\:hover\\:bg-muted\\/50:hover{background-color:color-mix(in oklab,var(--ww-color-muted,#f1f5f9)50%,transparent)}}.ww\\:hover\\:bg-primary\\/90:hover{background-color:var(--ww-color-primary,#6366f1)}@supports (color:color-mix(in lab, red, red)){.ww\\:hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab,var(--ww-color-primary,#6366f1)90%,transparent)}}.ww\\:hover\\:text-accent-foreground:hover{color:var(--ww-color-accent-foreground,#1f2937)}.ww\\:hover\\:text-foreground:hover{color:var(--ww-color-foreground,#1f2937)}.ww\\:hover\\:text-red-300:hover{color:var(--ww-color-red-300)}.ww\\:hover\\:underline:hover{text-decoration-line:underline}}.ww\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.ww\\:disabled\\:opacity-30:disabled{opacity:.3}.ww\\:disabled\\:opacity-40:disabled{opacity:.4}.ww\\:disabled\\:opacity-50:disabled{opacity:.5}.ww\\:\\[\\&\\>\\*\\:first-child\\]\\:mt-0>:first-child{margin-top:calc(var(--ww-spacing)*0)}.ww\\:\\[\\&\\>\\*\\:last-child\\]\\:mb-0>:last-child{margin-bottom:calc(var(--ww-spacing)*0)}}@keyframes ww-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes ww-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}@keyframes ww-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}[data-waniwani-chat] ::-webkit-scrollbar{width:8px}[data-waniwani-chat] ::-webkit-scrollbar-track{background:0 0}[data-waniwani-chat] ::-webkit-scrollbar-thumb{background:var(--ww-color-border);border-radius:9999px}[data-waniwani-chat] ::-webkit-scrollbar-thumb:hover{background:var(--ww-color-muted-foreground)}[data-waniwani-chat] *{scrollbar-width:thin;scrollbar-color:var(--ww-color-border)transparent}[data-waniwani-chat]{--ww-color-background:var(--ww-bg,#fff);--ww-color-foreground:var(--ww-text,#1f2937);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#1f2937);--ww-color-muted-foreground:var(--ww-muted,#6b7280);--ww-color-border:var(--ww-border,#e5e7eb);--ww-color-input:var(--ww-input-bg,#f9fafb);--ww-color-accent:var(--ww-assistant-bubble,#f3f4f6);--ww-color-accent-foreground:var(--ww-text,#1f2937);--ww-color-user-bubble:var(--ww-user-bubble,#f4f4f4);--ww-color-card:var(--ww-bg,#fff);--ww-color-card-foreground:var(--ww-text,#1f2937);--ww-color-card-header:var(--ww-header-bg,#fff);--ww-color-card-header-foreground:var(--ww-header-text,#1f2937);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#f4f4f5);--ww-radius:var(--ww-radius,16px);--ww-font-sans:var(--ww-font,system-ui,-apple-system,\"Segoe UI\",sans-serif)}.dark [data-waniwani-chat],[data-waniwani-chat].dark{--ww-color-background:var(--ww-bg,#212121);--ww-color-foreground:var(--ww-text,#ececec);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#fff);--ww-color-muted-foreground:var(--ww-muted,#8e8ea0);--ww-color-border:var(--ww-border,#444);--ww-color-input:var(--ww-input-bg,#2f2f2f);--ww-color-accent:var(--ww-assistant-bubble,#2f2f2f);--ww-color-accent-foreground:var(--ww-text,#ececec);--ww-color-user-bubble:var(--ww-user-bubble,#303030);--ww-color-card:var(--ww-bg,#212121);--ww-color-card-foreground:var(--ww-text,#ececec);--ww-color-card-header:var(--ww-header-bg,#1e1e1e);--ww-color-card-header-foreground:var(--ww-header-text,#ececec);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#262626)}[data-waniwani-chat] [data-streamdown=table-wrapper]{flex-direction:column;gap:.5rem;margin-top:1rem;margin-bottom:1rem;display:flex}[data-waniwani-chat] [data-streamdown=table-wrapper]>div:first-child:has(button){justify-content:flex-end;align-items:center;gap:.25rem;display:flex}[data-waniwani-chat] [data-streamdown=table-wrapper]>div:last-child{overflow-x:auto}[data-waniwani-chat] [data-streamdown=table]{border-collapse:collapse;border:1px solid var(--ww-color-border);border-radius:.75rem;width:100%;overflow:hidden}[data-waniwani-chat] [data-streamdown=table-header]{background-color:var(--ww-color-accent)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=table-header]{background-color:color-mix(in srgb,var(--ww-color-accent)80%,transparent)}}[data-waniwani-chat] [data-streamdown=table-body]{background-color:var(--ww-color-accent)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=table-body]{background-color:color-mix(in srgb,var(--ww-color-accent)40%,transparent)}}[data-waniwani-chat] [data-streamdown=table-body]>tr+tr{border-top:1px solid var(--ww-color-border)}[data-waniwani-chat] [data-streamdown=table-row]{border-bottom:1px solid var(--ww-color-border)}[data-waniwani-chat] [data-streamdown=table-header-cell]{white-space:nowrap;text-align:left;padding:.5rem 1rem;font-size:.875rem;font-weight:600}[data-waniwani-chat] [data-streamdown=table-cell]{padding:.5rem 1rem;font-size:.875rem}[data-waniwani-chat] [data-streamdown=link]{color:var(--ww-color-primary);overflow-wrap:anywhere;cursor:pointer;font-weight:500;text-decoration:underline}[data-waniwani-chat] [data-streamdown=link-safety-modal]{z-index:50;background-color:var(--ww-color-background);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=link-safety-modal]{background-color:color-mix(in srgb,var(--ww-color-background)50%,transparent)}}[data-waniwani-chat] [data-streamdown=link-safety-modal]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div{border:1px solid var(--ww-color-border);background-color:var(--ww-color-background);width:100%;max-width:28rem;color:var(--ww-color-foreground);border-radius:.75rem;flex-direction:column;gap:1rem;margin:0 1rem;padding:1.5rem;display:flex;position:relative;box-shadow:0 10px 25px #0000001a}[data-waniwani-chat] [data-streamdown=link-safety-modal] button{cursor:pointer}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>button:first-child{color:var(--ww-color-muted-foreground);background:0 0;border:none;border-radius:.375rem;padding:.25rem;transition:background-color .15s,color .15s;position:absolute;top:1rem;right:1rem}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>button:first-child:hover{background-color:var(--ww-color-accent);color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type{flex-direction:column;gap:.5rem;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type>div{align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type>p{color:var(--ww-color-muted-foreground);font-size:.875rem}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:nth-child(3){word-break:break-all;background-color:var(--ww-color-accent);border-radius:.375rem;max-height:8rem;padding:.75rem;font-family:ui-monospace,monospace;font-size:.875rem;overflow-y:auto}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child{gap:.5rem;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button{border:none;border-radius:.375rem;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .15s;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:first-child{border:1px solid var(--ww-color-border);background-color:var(--ww-color-background);color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:first-child:hover{background-color:var(--ww-color-accent)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:last-child{background-color:var(--ww-color-primary);color:#fff}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:last-child:hover{opacity:.9}[data-waniwani-chat] [data-streamdown=ordered-list]{white-space:normal;list-style-type:decimal;list-style-position:inside}[data-waniwani-chat] li [data-streamdown=ordered-list]{padding-left:1.5rem}[data-waniwani-chat] [data-streamdown=unordered-list]{white-space:normal;list-style-type:disc;list-style-position:inside}[data-waniwani-chat] li [data-streamdown=unordered-list]{padding-left:1.5rem}[data-waniwani-chat] [data-streamdown=list-item]{padding-top:.25rem;padding-bottom:.25rem}[data-waniwani-chat] [data-streamdown=list-item]>p{display:inline}[data-waniwani-chat] [data-streamdown=inline-code]{background-color:var(--ww-color-accent);border-radius:.25rem;padding:.125rem .375rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:.875rem}[data-waniwani-chat] [data-streamdown=heading-1]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.875rem;font-weight:600;line-height:2.25rem}[data-waniwani-chat] [data-streamdown=heading-2]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.5rem;font-weight:600;line-height:2rem}[data-waniwani-chat] [data-streamdown=heading-3]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.25rem;font-weight:600;line-height:1.75rem}[data-waniwani-chat] [data-streamdown=heading-4]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.125rem;font-weight:600;line-height:1.75rem}[data-waniwani-chat] [data-streamdown=heading-5]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1rem;font-weight:600;line-height:1.5rem}[data-waniwani-chat] [data-streamdown=heading-6]{margin-top:1.5rem;margin-bottom:.5rem;font-size:.875rem;font-weight:600;line-height:1.25rem}[data-waniwani-chat] [data-streamdown=blockquote]{border-left:4px solid var(--ww-color-muted-foreground);margin-top:1rem;margin-bottom:1rem}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=blockquote]{border-left:4px solid color-mix(in srgb,var(--ww-color-muted-foreground)30%,transparent)}}[data-waniwani-chat] [data-streamdown=blockquote]{color:var(--ww-color-muted-foreground);padding-left:1rem;font-style:italic}[data-waniwani-chat] [data-streamdown=horizontal-rule]{border-color:var(--ww-color-border);margin-top:1.5rem;margin-bottom:1.5rem}[data-waniwani-chat] [data-streamdown=strong]{font-weight:600}[data-waniwani-chat] [data-streamdown=image-wrapper]{margin-top:1rem;margin-bottom:1rem;display:inline-block;position:relative}[data-waniwani-chat] [data-streamdown=image]{border-radius:.5rem;max-width:100%}[data-waniwani-chat] [data-streamdown=code-block]{border:1px solid var(--ww-color-border);border-radius:.75rem;width:100%;margin-top:1rem;margin-bottom:1rem;overflow:hidden}[data-waniwani-chat] [data-streamdown=code-block-header]{background-color:var(--ww-color-accent);justify-content:space-between;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=code-block-header]{background-color:color-mix(in srgb,var(--ww-color-accent)80%,transparent)}}[data-waniwani-chat] [data-streamdown=code-block-header]{color:var(--ww-color-muted-foreground);padding:.75rem;font-size:.75rem}[data-waniwani-chat] [data-streamdown=code-block-body]{padding:1rem;font-size:.875rem;overflow-x:auto}[data-waniwani-chat] [data-streamdown=code-block-copy-button],[data-waniwani-chat] [data-streamdown=code-block-download-button]{cursor:pointer;color:var(--ww-color-muted-foreground);background:0 0;border:none;padding:.25rem;transition:color .15s}[data-waniwani-chat] [data-streamdown=code-block-copy-button]:hover,[data-waniwani-chat] [data-streamdown=code-block-download-button]:hover{color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=mermaid-block]{border:1px solid var(--ww-color-border);border-radius:.75rem;height:auto;margin-top:1rem;margin-bottom:1rem;padding:1rem;position:relative}[data-waniwani-chat] [data-streamdown=mermaid]{width:100%;height:100%}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}",Ba=null,Or=null,oa=null;function _2(e,t){if(yx&&yx!=="__WANIWANI_EMBED_CSS__"){let a=document.createElement("style");a.textContent=yx,e.appendChild(a)}if(t.css)try{let a=new URL(t.css,window.location.href);if(a.protocol==="https:"||a.protocol==="http:"){let n=document.createElement("link");n.rel="stylesheet",n.href=a.href,e.appendChild(n)}else console.warn("[WaniWani] Custom CSS URL must use http or https protocol.")}catch{console.warn("[WaniWani] Invalid custom CSS URL:",t.css)}}var R2="data-waniwani-embed";function v6(e,t,a){let n=document.querySelector(`[${R2}]`);if(!n)throw new Error(`[WaniWani] No inline mount target. Place \`<div ${R2}></div>\` in your page for \`mode: "inline"\`.`);oa=document.createElement("div"),oa.id="waniwani-chat-embed",oa.style.width="100%",oa.style.height="100%",n.appendChild(oa);let r=oa.attachShadow({mode:"open"});_2(r,e);let o=document.createElement("div");o.style.width="100%",o.style.height="100%",r.appendChild(o);let l=au.default.createRef();return Or=xx.default.createRoot(o),Or.render(au.default.createElement(E2,{ref:l,config:e,programmatic:t,scriptConfig:a})),{destroy:()=>{Or?.unmount(),Or=null,oa?.remove(),oa=null,Ba=null},open:()=>{},close:()=>{},toggle:()=>{},sendMessage:i=>l.current?.chat?.sendMessage(i)}}function w6(e,t){let a=t.position==="bottom-left",n=t.theme?.primaryColor??"#6366f1",r=document.createElement("div");r.setAttribute("data-waniwani-skeleton","");let o=document.createElement("style");o.textContent=`
139
139
  @keyframes ww-skeleton-pulse { 0%,100% { opacity:1; } 50% { opacity:0.7; } }
140
140
  [data-waniwani-skeleton] .ww-sk-bubble {
141
141
  position:fixed; bottom:20px; ${a?"left":"right"}:20px;