@waniwani/sdk 0.11.8-beta.0 → 0.11.8-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chat/embed.js +1 -1
- package/dist/chat/embed.js.map +1 -1
- package/dist/chat/index.js +4 -4
- package/dist/chat/index.js.map +1 -1
- package/package.json +1 -1
package/dist/chat/embed.js
CHANGED
|
@@ -118,7 +118,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let n="<p>An error
|
|
|
118
118
|
`)},Yy=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("")},Mz=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=>Yy(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?Yy(i[u]):"";n[r]=`| ${s.join(" | ")} |`,r+=1}else{let s=i.map(u=>Yy(u));n[r]=`| ${s.join(" | ")} |`,r+=1}return n.join(`
|
|
119
119
|
`)},Ez=({children:e,className:t,onCopy:a,onError:n,timeout:r=2e3})=>{let[o,l]=(0,R.useState)(!1),[i,s]=(0,R.useState)(!1),u=(0,R.useRef)(null),c=(0,R.useRef)(0),{isAnimating:d}=(0,R.useContext)(aa),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=rM(x),w=y==="csv"?oM(m):Az(m),k=new ClipboardItem({"text/plain":new Blob([w],{type:"text/plain"}),"text/html":new Blob([x.outerHTML],{type:"text/html"})});await navigator.clipboard.write([k]),s(!0),l(!1),a?.(y),c.current=window.setTimeout(()=>s(!1),r)}catch(g){n?.(g)}};(0,R.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?nx:rx;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]})},Rz=({children:e,className:t,onDownload:a,onError:n})=>{let[r,o]=(0,R.useState)(!1),l=(0,R.useRef)(null),{isAnimating:i}=(0,R.useContext)(aa),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=rM(f),y=u==="csv"?oM(p):Mz(p);$l(`table.${u==="csv"?"csv":"md"}`,y,u==="csv"?"text/csv":"text/markdown"),o(!1),a?.(u)}catch(d){n?.(d)}};return(0,R.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)(of,{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]})},Dz=({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)(Ez,{}),(0,M.jsx)(Rz,{})]}):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})})]}),_z=(0,R.lazy)(()=>Promise.resolve().then(()=>(VA(),jA)).then(e=>({default:e.CodeBlock}))),Oz=(0,R.lazy)(()=>Promise.resolve().then(()=>($A(),WA)).then(e=>({default:e.Mermaid}))),Pz=/language-([^\s]+)/;ax=(e,t)=>typeof e=="boolean"?e:e[t]!==!1,nf=(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},lx=(0,R.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)=>dt(e,t));lx.displayName="MarkdownOl";lM=(0,R.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&&lf(e.node,t.node));lM.displayName="MarkdownLi";iM=(0,R.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)=>dt(e,t));iM.displayName="MarkdownUl";sM=(0,R.memo)(({className:e,node:t,...a})=>(0,M.jsx)("hr",{className:Y("my-6 border-border",e),"data-streamdown":"horizontal-rule",...a}),(e,t)=>dt(e,t));sM.displayName="MarkdownHr";uM=(0,R.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)=>dt(e,t));uM.displayName="MarkdownStrong";Nz=({children:e,className:t,href:a,node:n,...r})=>{let{linkSafety:o}=(0,R.useContext)(aa),[l,i]=(0,R.useState)(!1),s=a==="streamdown:incomplete-link",u=(0,R.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,R.useCallback)(()=>{a&&window.open(a,"_blank","noreferrer")},[a]),d=(0,R.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)(Sz,{...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})},cM=(0,R.memo)(Nz,(e,t)=>dt(e,t)&&e.href===t.href);cM.displayName="MarkdownA";dM=(0,R.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)=>dt(e,t));dM.displayName="MarkdownH1";fM=(0,R.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)=>dt(e,t));fM.displayName="MarkdownH2";pM=(0,R.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)=>dt(e,t));pM.displayName="MarkdownH3";mM=(0,R.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)=>dt(e,t));mM.displayName="MarkdownH4";hM=(0,R.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)=>dt(e,t));hM.displayName="MarkdownH5";gM=(0,R.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)=>dt(e,t));gM.displayName="MarkdownH6";yM=(0,R.memo)(({children:e,className:t,node:a,...n})=>{let{controls:r}=(0,R.useContext)(aa),o=ax(r,"table");return(0,M.jsx)(Dz,{className:t,showControls:o,...n,children:e})},(e,t)=>dt(e,t));yM.displayName="MarkdownTable";xM=(0,R.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)=>dt(e,t));xM.displayName="MarkdownThead";vM=(0,R.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)=>dt(e,t));vM.displayName="MarkdownTbody";wM=(0,R.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)=>dt(e,t));wM.displayName="MarkdownTr";bM=(0,R.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)=>dt(e,t));bM.displayName="MarkdownTh";SM=(0,R.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)=>dt(e,t));SM.displayName="MarkdownTd";CM=(0,R.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)=>dt(e,t));CM.displayName="MarkdownBlockquote";IM=(0,R.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)=>dt(e,t));IM.displayName="MarkdownSup";kM=(0,R.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)=>dt(e,t));kM.displayName="MarkdownSub";LM=(0,R.memo)(({children:e,className:t,node:a,...n})=>{if("data-footnotes"in n){let r=l=>{var i,s;if(!(0,R.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,R.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,R.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,R.isValidElement)(l))return l;if(l.type===lx){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)=>dt(e,t));LM.displayName="MarkdownSection";Bz=({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,R.useContext)(aa),c=ox();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(Pz),f=(l=d?.at(1))!=null?l:"",p="";if((0,R.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=ax(u,"mermaid"),S=nf(u,"download"),g=nf(u,"copy"),x=nf(u,"fullscreen"),m=nf(u,"panZoom"),w=v&&(S||g||x);return(0,M.jsx)(R.Suspense,{fallback:(0,M.jsx)(KA,{}),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)(Iz,{chart:p,config:s?.config}):null,g?(0,M.jsx)(ZA,{code:p}):null,x?(0,M.jsx)(Tz,{chart:p,config:s?.config}):null]}):null,(0,M.jsx)(Oz,{chart:p,config:s?.config,showControls:m})]})})}let y=ax(u,"code");return(0,M.jsx)(R.Suspense,{fallback:(0,M.jsx)(KA,{}),children:(0,M.jsx)(_z,{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)(yz,{code:p,language:f}),(0,M.jsx)(ZA,{})]}):null})})},TM=(0,R.memo)(Bz,(e,t)=>e.className===t.className&&lf(e.node,t.node));TM.displayName="MarkdownCode";AM=(0,R.memo)(vz,(e,t)=>e.className===t.className&&lf(e.node,t.node));AM.displayName="MarkdownImg";MM=(0,R.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,R.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)=>dt(e,t));MM.displayName="MarkdownParagraph";Uz={ol:lx,li:lM,ul:iM,hr:sM,strong:uM,a:cM,h1:dM,h2:fM,h3:pM,h4:mM,h5:hM,h6:gM,table:yM,thead:xM,tbody:vM,tr:wM,th:bM,td:SM,blockquote:CM,code:TM,img:AM,pre:({children:e})=>e,sup:IM,sub:kM,p:MM,section:LM},YA=[],JA={allowDangerousHtml:!0},rf=new WeakMap,zz=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=rf.get(y);S||(S=y.name,rf.set(y,S)),d+=S}else d+=String(y);d+=":",d+=JSON.stringify(v)}else if(typeof p=="function"){let y=rf.get(p);y||(y=p.name,rf.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()}},eM=new zz,EM=e=>{let t=qz(e),a=e.children||"";return Hz(t.runSync(t.parse(a),a),e)},qz=e=>{let t=eM.get(e);if(t)return t;let a=Fz(e);return eM.set(e,a),a},Fz=e=>{let t=e.rehypePlugins||YA,a=e.remarkPlugins||YA,n=e.remarkRehypeOptions?{...JA,...e.remarkRehypeOptions}:JA;return By().use(Fd).use(a).use(Gd,n).use(t)},Hz=(e,t)=>gy(e,{Fragment:M.Fragment,components:t.components,ignoreInvalidStyle:!0,jsx:M.jsx,jsxs:M.jsxs,passKeys:!0,passNode:!0}),jz=/\[\^[^\]\s]{1,200}\](?!:)/,Vz=/\[\^[^\]\s]{1,200}\]:/,Gz=/<\/(\w+)>/,Wz=/<(\w+)[\s>]/,Jy=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]==="$"},$z=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]==="$"},ex=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},RM=e=>{let t=jz.test(e),a=Vz.test(e);if(t||a)return[e];let n=Ta.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(Gz);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=Jy(u),d=ex(u);if(c&&d%2===1){r[s-1]=u+i;continue}}if(s>0&&$z(i)){let u=r[s-1],c=Jy(u),d=ex(u),f=ex(i);if(c&&d%2===1&&!Jy(i)&&f===1){r[s-1]=u+i;continue}}r.push(i)}return r},DM={raw:dC,sanitize:[id,{}],harden:[uC,{allowedImagePrefixes:["*"],allowedLinkPrefixes:["*"],allowedProtocols:["*"],defaultOrigin:void 0,allowDataImages:!0}]},_M={gfm:[Dd,{}]},Xz=Object.values(DM),Zz=Object.values(_M),Qz={block:" \u258B",circle:" \u25CF"},Kz={shikiTheme:["github-light","github-dark"],controls:!0,isAnimating:!1,mode:"streaming",mermaid:void 0,linkSafety:{enabled:!0}},aa=(0,R.createContext)(Kz),ix=(0,R.memo)(({content:e,shouldParseIncompleteMarkdown:t,index:a,...n})=>(0,M.jsx)(EM,{...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)});ix.displayName="Block";Yz=["github-light","github-dark"],sf=(0,R.memo)(({children:e,mode:t="streaming",parseIncompleteMarkdown:a=!0,components:n,rehypePlugins:r=Xz,remarkPlugins:o=Zz,className:l,shikiTheme:i=Yz,mermaid:s,controls:u=!0,isAnimating:c=!1,BlockComponent:d=ix,parseMarkdownIntoBlocksFn:f=RM,caret:p,plugins:y,remend:v,linkSafety:S={enabled:!0},...g})=>{let x=(0,R.useId)(),[m,w]=(0,R.useTransition)(),k=(0,R.useMemo)(()=>typeof e!="string"?"":t==="streaming"&&a?Ck(e,v):e,[e,t,a,v]),C=(0,R.useMemo)(()=>f(k),[k,f]),[T,E]=(0,R.useState)(C);(0,R.useEffect)(()=>{t==="streaming"?w(()=>{E(C)}):E(C)},[C,t]);let D=t==="streaming"?T:C,A=(0,R.useMemo)(()=>D.map((H,K)=>`${x}-${K}`),[D.length,x]),P=(0,R.useMemo)(()=>{var H,K;return{shikiTheme:(K=(H=y?.code)==null?void 0:H.getThemes())!=null?K:i,controls:u,isAnimating:c,mode:t,mermaid:s,linkSafety:S}},[i,u,c,t,s,S,y?.code]),_=(0,R.useMemo)(()=>({...Uz,...n}),[n]),z=(0,R.useMemo)(()=>{let H=[];return y!=null&&y.cjk&&(H=[...H,...y.cjk.remarkPluginsBefore]),H=[...H,...o],y!=null&&y.cjk&&(H=[...H,...y.cjk.remarkPluginsAfter]),y!=null&&y.math&&(H=[...H,y.math.remarkPlugin]),H},[o,y?.math,y?.cjk]),G=(0,R.useMemo)(()=>y!=null&&y.math?[...r,y.math.rehypePlugin]:r,[r,y?.math]),V=(0,R.useMemo)(()=>p&&c?{"--streamdown-caret":`"${Qz[p]}"`}:void 0,[p,c]);return t==="static"?(0,M.jsx)(tx.Provider,{value:y??null,children:(0,M.jsx)(aa.Provider,{value:P,children:(0,M.jsx)("div",{className:Y("space-y-4 whitespace-normal *:first:mt-0 *:last:mb-0",l),children:(0,M.jsx)(EM,{components:_,rehypePlugins:G,remarkPlugins:z,...g,children:e})})})}):(0,M.jsx)(tx.Provider,{value:y??null,children:(0,M.jsx)(aa.Provider,{value:P,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:[D.length===0&&p&&c&&(0,M.jsx)("span",{}),D.map((H,K)=>(0,M.jsx)(d,{components:_,content:H,index:K,rehypePlugins:G,remarkPlugins:z,shouldParseIncompleteMarkdown:a,...g},A[K]))]})})})},(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);sf.displayName="Streamdown";Jz=({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,R.useRef)(null),u=(0,R.useRef)(null),[c,d]=(0,R.useState)(l),[f,p]=(0,R.useState)({x:0,y:0}),[y,v]=(0,R.useState)(!1),[S,g]=(0,R.useState)({x:0,y:0}),[x,m]=(0,R.useState)({x:0,y:0}),w=(0,R.useCallback)(_=>{d(z=>Math.max(a,Math.min(n,z+_)))},[a,n]),k=(0,R.useCallback)(()=>{w(r)},[w,r]),C=(0,R.useCallback)(()=>{w(-r)},[w,r]),T=(0,R.useCallback)(()=>{d(l),p({x:0,y:0})},[l]),E=(0,R.useCallback)(_=>{_.preventDefault();let z=_.deltaY>0?-r:r;w(z)},[w,r]),D=(0,R.useCallback)(_=>{if(_.button!==0||_.isPrimary===!1)return;v(!0),g({x:_.clientX,y:_.clientY}),m(f);let z=_.currentTarget;z instanceof HTMLElement&&z.setPointerCapture(_.pointerId)},[f]),A=(0,R.useCallback)(_=>{if(!y)return;_.preventDefault();let z=_.clientX-S.x,G=_.clientY-S.y;p({x:x.x+z,y:x.y+G})},[y,S,x]),P=(0,R.useCallback)(_=>{v(!1);let z=_.currentTarget;z instanceof HTMLElement&&z.releasePointerCapture(_.pointerId)},[]);return(0,R.useEffect)(()=>{let _=s.current;if(_)return _.addEventListener("wheel",E,{passive:!1}),()=>{_.removeEventListener("wheel",E)}},[E]),(0,R.useEffect)(()=>{let _=u.current;if(_&&y)return document.body.style.userSelect="none",_.addEventListener("pointermove",A,{passive:!1}),_.addEventListener("pointerup",P),_.addEventListener("pointercancel",P),()=>{document.body.style.userSelect="",_.removeEventListener("pointermove",A),_.removeEventListener("pointerup",P),_.removeEventListener("pointercancel",P)}},[y,A,P]),(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:k,title:"Zoom in",type:"button",children:(0,M.jsx)(hz,{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:C,title:"Zoom out",type:"button",children:(0,M.jsx)(gz,{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:T,title:"Reset zoom and pan",type:"button",children:(0,M.jsx)(mz,{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:D,ref:u,role:"application",style:{transform:`translate(${f.x}px, ${f.y}px) scale(${c})`,transformOrigin:"center center",touchAction:"none",willChange:"transform"},children:e})]})},Ky=({chart:e,className:t,config:a,fullscreen:n=!1,showControls:r=!0})=>{let[o,l]=(0,R.useState)(null),[i,s]=(0,R.useState)(!1),[u,c]=(0,R.useState)(""),[d,f]=(0,R.useState)(""),[p,y]=(0,R.useState)(0),{mermaid:v}=(0,R.useContext)(aa),S=ox(),g=v?.errorComponent,{shouldRender:x,containerRef:m}=dz({immediate:n});if((0,R.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 k=S.getMermaid(a),C=e.split("").reduce((D,A)=>(D<<5)-D+A.charCodeAt(0)|0,0),T=`mermaid-${Math.abs(C)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:E}=await k.render(T,e);c(E),f(E)}catch(k){if(!(d||u)){let C=k instanceof Error?k.message:"Failed to render Mermaid chart";l(C)}}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(C=>C+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)(Jz,{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 U2=Gt((Tee,B2)=>{"use strict";function k6(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)}}B2.exports=k6});var uu=F(we(),1),Ux=F(A0(),1);var cO="https://app.waniwani.ai/api/mcp/chat",dO={api:cO,title:"Assistant",position:"bottom-right",width:400,height:600};function fO(){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 jc(){let e=fO();if(!e)return{};let t=T=>e.getAttribute(T)??void 0,a=T=>{let E=e.getAttribute(T);if(E==null)return;let D=Number(E);return Number.isFinite(D)?D:void 0},n=T=>{let E=e.getAttribute(T);if(E==null)return;let D=E.trim().toLowerCase();if(D==="true"||D==="1"||D==="")return!0;if(D==="false"||D==="0")return!1},r={},o=t("data-api");o&&(r.api=o);let l=t("data-token");l&&(r.token=l);let i=t("data-title");i&&(r.title=i);let s=t("data-welcome-message");s&&(r.welcomeMessage=s);let u=t("data-placeholder");u&&(r.placeholder=u);let c=t("data-mcp-server-url");c&&(r.mcpServerUrl=c);let d=t("data-css");d&&(r.css=d);let f=t("data-suggestions");f&&(r.suggestions=f.split(",").map(T=>T.trim()).filter(Boolean));let p=t("data-position");(p==="bottom-right"||p==="bottom-left")&&(r.position=p);let y=t("data-mode");(y==="floating"||y==="custom"||y==="inline")&&(r.mode=y);let v=t("data-layout");(v==="card"||v==="bar"||v==="embed")&&(r.layout=v);let S=a("data-width");S&&(r.width=S);let g=a("data-height");g&&(r.height=g);let x=n("data-enable-thread-history");x!==void 0&&(r.enableThreadHistory=x);let m=t("data-primary-color"),w=t("data-background-color"),k=t("data-text-color"),C=t("data-font-family");return(m||w||k||C)&&(r.theme={},m&&(r.theme.primaryColor=m),w&&(r.theme.backgroundColor=w),k&&(r.theme.textColor=k),C&&(r.theme.fontFamily=C)),r}function Vc(e,t,a){let n=a??jc(),r={token:"",...dO,...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 Gc(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 xt=F(we(),1);var Zt=F(we(),1);var $c=F(we());var Wc=(...e)=>e.filter((t,a,n)=>!!t&&t.trim()!==""&&n.indexOf(t)===a).join(" ").trim();var M0=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var E0=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,a,n)=>n?n.toUpperCase():a.toLowerCase());var kh=e=>{let t=E0(e);return t.charAt(0).toUpperCase()+t.slice(1)};var ds=F(we());var R0={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 D0=e=>{for(let t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1};var _0=(0,ds.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:n,className:r="",children:o,iconNode:l,...i},s)=>(0,ds.createElement)("svg",{ref:s,...R0,width:t,height:t,stroke:e,strokeWidth:n?Number(a)*24/Number(t):a,className:Wc("lucide",r),...!o&&!D0(i)&&{"aria-hidden":"true"},...i},[...l.map(([u,c])=>(0,ds.createElement)(u,c)),...Array.isArray(o)?o:[o]]));var rt=(e,t)=>{let a=(0,$c.forwardRef)(({className:n,...r},o)=>(0,$c.createElement)(_0,{ref:o,iconNode:t,className:Wc(`lucide-${M0(kh(e))}`,`lucide-${e}`,n),...r}));return a.displayName=kh(e),a};var pO=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],fs=rt("arrow-down",pO);var mO=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],ps=rt("arrow-up",mO);var hO=[["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"}]],Lr=rt("braces",hO);var gO=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],ms=rt("check",gO);var yO=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],hs=rt("chevron-down",yO);var xO=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],gs=rt("chevron-right",xO);var vO=[["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"}]],ys=rt("clipboard-copy",vO);var wO=[["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"}]],xs=rt("file",wO);var bO=[["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"}]],vs=rt("loader",bO);var SO=[["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"}]],ws=rt("paperclip",SO);var CO=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],bs=rt("square",CO);var IO=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],co=rt("x",IO);var j0=F(we(),1);var Ht=F(we(),1);var kO={damping:.7,stiffness:.05,mass:1.25},LO=70,TO=1e3/60,AO=350,Xc=!1;globalThis.document?.addEventListener("mousedown",()=>{Xc=!0});globalThis.document?.addEventListener("mouseup",()=>{Xc=!1});globalThis.document?.addEventListener("click",()=>{Xc=!1});var P0=(e={})=>{let[t,a]=(0,Ht.useState)(!1),[n,r]=(0,Ht.useState)(e.initial!==!1),[o,l]=(0,Ht.useState)(!1),i=(0,Ht.useRef)(null);i.current=e;let s=(0,Ht.useCallback)(()=>{if(!Xc)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,Ht.useCallback)(x=>{d.isAtBottom=x,r(x)},[]),c=(0,Ht.useCallback)(x=>{d.escapedFromLock=x,a(x)},[]),d=(0,Ht.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<=LO}}},[]),f=(0,Ht.useCallback)((x={})=>{typeof x=="string"&&(x={animation:x}),x.preserveScrollPosition||u(!0);let m=Date.now()+(Number(x.wait)||0),w=Th(i.current,x.animation),{ignoreEscapes:k=!1}=x,C,T=d.calculatedTargetScrollTop;x.duration instanceof Promise?x.duration.finally(()=>{C=Date.now()}):C=m+(x.duration??0);let E=async()=>{let D=new Promise(requestAnimationFrame).then(()=>{if(!d.isAtBottom)return d.animation=void 0,!1;let{scrollTop:A}=d,P=performance.now(),_=(P-(d.lastTick??P))/TO;if(d.animation||(d.animation={behavior:w,promise:D,ignoreEscapes:k}),d.animation.behavior===w&&(d.lastTick=P),s()||m>Date.now())return E();if(A<Math.min(T,d.calculatedTargetScrollTop)){if(d.animation?.behavior===w){if(w==="instant")return d.scrollTop=d.calculatedTargetScrollTop,E();d.velocity=(w.damping*d.velocity+w.stiffness*d.scrollDifference)/w.mass,d.accumulated+=d.velocity*_,d.scrollTop+=d.accumulated,d.scrollTop!==A&&(d.accumulated=0)}return E()}return C>Date.now()?(T=d.calculatedTargetScrollTop,E()):(d.animation=void 0,d.scrollTop<d.calculatedTargetScrollTop?f({animation:Th(i.current,i.current.resize),ignoreEscapes:k,duration:Math.max(0,C-Date.now())||void 0}):d.isAtBottom)});return D.then(A=>(requestAnimationFrame(()=>{d.animation||(d.lastTick=void 0,d.velocity=0)}),A))};return x.wait!==!0&&(d.animation=void 0),d.animation?.behavior===w?d.animation.promise:E()},[u,s,d]),p=(0,Ht.useCallback)(()=>{c(!0),u(!1)},[c,u]),y=(0,Ht.useCallback)(({target:x})=>{if(x!==S.current)return;let{scrollTop:m,ignoreScrollToTop:w}=d,{lastScrollTop:k=m}=d;d.lastScrollTop=m,d.ignoreScrollToTop=void 0,w&&w>m&&(k=w),l(d.isNearBottom),setTimeout(()=>{if(d.resizeDifference||m===w)return;if(s()){c(!0),u(!1);return}let C=m>k,T=m<k;if(d.animation?.ignoreEscapes){d.scrollTop=k;return}T&&(c(!0),u(!1)),C&&c(!1),!d.escapedFromLock&&d.isNearBottom&&u(!0)},1)},[c,u,s,d]),v=(0,Ht.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=O0(x=>{S.current?.removeEventListener("scroll",y),S.current?.removeEventListener("wheel",v),x?.addEventListener("scroll",y,{passive:!0}),x?.addEventListener("wheel",v,{passive:!0})},[]),g=O0(x=>{if(d.resizeObserver?.disconnect(),!x)return;let m;d.resizeObserver=new ResizeObserver(([w])=>{let{height:k}=w.contentRect,C=k-(m??k);if(d.resizeDifference=C,d.scrollTop>d.targetScrollTop&&(d.scrollTop=d.targetScrollTop),l(d.isNearBottom),C>=0){let T=Th(i.current,m?i.current.resize:i.current.initial);f({animation:T,wait:!0,preserveScrollPosition:!0,duration:T==="instant"?void 0:AO})}else d.isNearBottom&&(c(!1),u(!0));m=k,requestAnimationFrame(()=>{setTimeout(()=>{d.resizeDifference===C&&(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 O0(e,t){let a=(0,Ht.useCallback)(n=>(a.current=n,e(n)),t);return a}var Lh=new Map;function Th(...e){let t={...kO},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 Lh.has(n)||Lh.set(n,Object.freeze(t)),a?"instant":Lh.get(n)}var fo=F(we(),1),da=F(we(),1);var N0=(0,da.createContext)(null),MO=typeof window<"u"?da.useLayoutEffect:da.useEffect;function Ss({instance:e,children:t,resize:a,initial:n,mass:r,damping:o,stiffness:l,targetScrollTop:i,contextRef:s,...u}){let c=(0,da.useRef)(null),d=fo.useCallback((k,C)=>(w?.targetScrollTop??i)?.(k,C)??k,[i]),f=P0({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,da.useMemo)(()=>({scrollToBottom:v,stopScroll:S,scrollRef:p,isAtBottom:g,escapedFromLock:x,contentRef:y,state:m,get targetScrollTop(){return c.current},set targetScrollTop(k){c.current=k}}),[v,g,y,p,S,x,m]);return(0,da.useImperativeHandle)(s,()=>w,[w]),MO(()=>{p.current&&getComputedStyle(p.current).overflow==="visible"&&(p.current.style.overflow="auto")},[]),fo.createElement(N0.Provider,{value:w},fo.createElement("div",{...u},typeof t=="function"?t(w):t))}(function(e){function t({children:a,scrollClassName:n,...r}){let o=Ah();return fo.createElement("div",{ref:o.scrollRef,style:{height:"100%",width:"100%",scrollbarGutter:"stable both-edges"},className:n},fo.createElement("div",{...r,ref:o.contentRef},typeof a=="function"?a(o):a))}e.Content=t})(Ss||(Ss={}));function Ah(){let e=(0,da.useContext)(N0);if(!e)throw new Error("use-stick-to-bottom component context must be used within a StickToBottom component");return e}Mh();Rh();var EO=U0({prefix:"ww"});function X(...e){return EO(Zc(e))}var H0=F(ee(),1),fn=({className:e,variant:t="default",size:a="default",type:n="button",...r})=>(0,H0.jsx)("button",{type:n,className:X("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 Cs=F(ee(),1),Ml=({className:e,...t})=>(0,Cs.jsx)(Ss,{className:X("ww:relative ww:flex-1 ww:overflow-y-hidden",e),initial:"smooth",resize:"smooth",role:"log",...t}),El=({className:e,...t})=>(0,Cs.jsx)(Ss.Content,{className:X("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}),Rl=({className:e,...t})=>{let{isAtBottom:a,scrollToBottom:n}=Ah(),r=(0,j0.useCallback)(()=>{n()},[n]);return!a&&(0,Cs.jsx)(fn,{className:X("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,Cs.jsx)(fs,{className:"ww:size-4"})})};var Is=(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 $e=F(we(),1);var Jt=F(ee(),1),_O=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}},V0=(0,$e.createContext)(null),G0=()=>{let e=(0,$e.useContext)(V0);if(!e)throw new Error("usePromptInputAttachments must be used within a PromptInput");return e},Dl=({className:e,accept:t,multiple:a,globalDrop:n,maxFiles:r,maxFileSize:o,onSubmit:l,children:i,...s})=>{let u=(0,$e.useRef)(null),c=(0,$e.useRef)(null),[d,f]=(0,$e.useState)([]),p=(0,$e.useRef)(d);(0,$e.useEffect)(()=>{p.current=d},[d]);let y=(0,$e.useCallback)(()=>{u.current?.click()},[]),v=(0,$e.useCallback)(k=>{let C=[...k];if(C.length===0)return;let T=D=>o?D.size<=o:!0,E=C.filter(T);f(D=>{let A=typeof r=="number"?Math.max(0,r-D.length):void 0,P=typeof A=="number"?E.slice(0,A):E;return[...D,...P.map(_=>({filename:_.name,id:Is(),mediaType:_.type,type:"file",url:URL.createObjectURL(_)}))]})},[r,o]),S=(0,$e.useCallback)(k=>{f(C=>{let T=C.find(E=>E.id===k);return T?.url&&URL.revokeObjectURL(T.url),C.filter(E=>E.id!==k)})},[]),g=(0,$e.useCallback)(()=>{f(k=>{for(let C of k)C.url&&URL.revokeObjectURL(C.url);return[]})},[]);(0,$e.useEffect)(()=>()=>{for(let k of p.current)k.url&&URL.revokeObjectURL(k.url)},[]);let x=(0,$e.useCallback)(k=>{k.currentTarget.files&&v(k.currentTarget.files),k.currentTarget.value=""},[v]);(0,$e.useEffect)(()=>{if(!n)return;let k=T=>{T.dataTransfer?.types?.includes("Files")&&T.preventDefault()},C=T=>{T.dataTransfer?.types?.includes("Files")&&T.preventDefault(),T.dataTransfer?.files&&T.dataTransfer.files.length>0&&v(T.dataTransfer.files)};return document.addEventListener("dragover",k),document.addEventListener("drop",C),()=>{document.removeEventListener("dragover",k),document.removeEventListener("drop",C)}},[v,n]);let m=(0,$e.useCallback)(async k=>{k.preventDefault();let C=k.currentTarget,E=new FormData(C).get("message")||"";C.reset();let D=await Promise.all(d.map(async({id:A,...P})=>{if(P.url?.startsWith("blob:")){let _=await _O(P.url);return{...P,url:_??P.url}}return P}));try{let A=l({files:D,text:E},k);A instanceof Promise&&await A,g()}catch{}},[d,l,g]),w=(0,$e.useMemo)(()=>({add:v,clear:g,files:d,openFileDialog:y,remove:S}),[d,v,S,g,y]);return(0,Jt.jsxs)(V0.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:X("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 _l=({onChange:e,onKeyDown:t,className:a,placeholder:n="What would you like to know?",...r})=>{let o=G0(),[l,i]=(0,$e.useState)(!1),s=(0,$e.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,$e.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:X("ww:field-sizing-content ww:max-h-48 ww:min-h-0 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})},Ol=({className:e,status:t,onStop:a,onClick:n,children:r,...o})=>{let l=t==="submitted"||t==="streaming",i=(0,Jt.jsx)(ps,{className:"ww:size-4"});t==="submitted"?i=(0,Jt.jsx)(vs,{className:"ww:size-4 ww:animate-spin"}):t==="streaming"&&(i=(0,Jt.jsx)(bs,{className:"ww:size-4"}));let s=(0,$e.useCallback)(u=>{if(l&&a){u.preventDefault(),a();return}n?.(u)},[l,a,n]);return(0,Jt.jsx)(fn,{"aria-label":l?"Stop":"Submit",className:X("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})},Pl=({className:e,children:t,...a})=>{let n=G0();return n.files.length>0?(0,Jt.jsxs)(fn,{className:X("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)(co,{className:"ww:absolute ww:size-4 ww:opacity-0 ww:transition-opacity ww:group-hover:opacity-100"})]}):(0,Jt.jsx)(fn,{className:X(e),onClick:()=>n.openFileDialog(),size:"icon-sm",type:"button",variant:"ghost",...a,children:t??(0,Jt.jsx)(ws,{className:"ww:size-4"})})};var Kc=F(we(),1);var po=F(ee(),1),W0=({className:e,...t})=>(0,po.jsx)("div",{className:X("ww:flex ww:flex-col ww:gap-1 ww:px-3 ww:py-2",e),...t}),$0=({className:e,...t})=>(0,po.jsx)("li",{className:X("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}),X0=({className:e,...t})=>(0,po.jsx)("span",{className:X("ww:inline-block ww:size-2 ww:shrink-0 ww:rounded-full ww:border ww:border-muted-foreground/50",e),...t}),Z0=({className:e,...t})=>(0,po.jsx)("span",{className:X("ww:line-clamp-1 ww:grow ww:break-words ww:text-muted-foreground",e),...t}),Q0=({className:e,...t})=>(0,po.jsx)("div",{className:X("ww:flex ww:shrink-0 ww:gap-1 ww:opacity-0 ww:transition-opacity ww:group-hover:opacity-100",e),...t}),K0=({className:e,...t})=>(0,po.jsx)(fn,{className:X("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 Fa=F(ee(),1),Y0=(0,Kc.memo)(({message:e,onRemove:t})=>{let a=(0,Kc.useCallback)(()=>t(e.id),[t,e.id]);return(0,Fa.jsxs)($0,{children:[(0,Fa.jsx)(X0,{}),(0,Fa.jsx)(Z0,{children:e.text||"(attachment)"}),(0,Fa.jsx)(Q0,{children:(0,Fa.jsx)(K0,{"aria-label":"Remove from queue",onClick:a,children:(0,Fa.jsx)(co,{className:"ww:size-3"})})})]})});Y0.displayName="ChatQueueItem";function Nl({queuedMessages:e,onRemove:t,className:a}){return e.length===0?null:(0,Fa.jsxs)(W0,{className:X("ww:border-t ww:border-border",a),children:[(0,Fa.jsxs)("div",{className:"ww:text-[11px] ww:font-medium ww:text-muted-foreground ww:px-2",children:[e.length," queued"]}),(0,Fa.jsx)("ul",{children:e.map(n=>(0,Fa.jsx)(Y0,{message:n,onRemove:t},n.id))})]})}var Dh=F(we(),1),J0=F(ee(),1);function Yc({messages:e,evalEnabled:t,api:a="/api/waniwani"}){let[n,r]=(0,Dh.useState)(!1),[o,l]=(0,Dh.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,J0.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 Tr=F(ee(),1),eC=({files:e,className:t,...a})=>e.length===0?null:(0,Tr.jsx)("div",{className:X("ww:flex ww:flex-wrap ww:gap-1.5",t),...a,children:e.map((n,r)=>(0,Tr.jsx)(OO,{file:n},r))});function OO({file:e}){return e.mediaType?.startsWith("image/")&&e.url?(0,Tr.jsx)("img",{src:e.url,alt:e.filename??"attachment",className:"ww:h-16 ww:max-w-32 ww:rounded ww:object-cover"}):(0,Tr.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,Tr.jsx)(xs,{className:"ww:size-3 ww:shrink-0"}),(0,Tr.jsx)("span",{className:"ww:max-w-24 ww:truncate",children:e.filename??"file"})]})}var _h=F(ee(),1),Oh=({className:e,size:t=5,...a})=>(0,_h.jsx)("div",{className:X("ww:flex ww:items-center ww:gap-1",e),...a,children:[0,1,2].map(n=>(0,_h.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 tC={name:"cjk-noop",type:"cjk",remarkPluginsBefore:[],remarkPluginsAfter:[],remarkPlugins:[]};var aC={name:"shiki-noop",type:"code-highlighter",supportsLanguage:()=>!1,getSupportedLanguages:()=>[],getThemes:()=>["github-light","github-dark"],highlight:()=>null};var OM=F(we(),1);af();var Ys=F(ee(),1),uf=({className:e,from:t,children:a,...n})=>(0,Ys.jsx)("div",{className:X("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,Ys.jsx)("div",{className:X("ww:flex ww:min-w-0 ww:flex-col ww:gap-2","ww:w-full"),children:a})}),cf=({children:e,className:t,...a})=>(0,Ys.jsx)("div",{className:X("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}),eq={cjk:tC,code:aC},df=(0,OM.memo)(({className:e,...t})=>(0,Ys.jsx)(sf,{className:X("ww:size-full ww:[&>*:first-child]:mt-0 ww:[&>*:last-child]:mb-0",e),plugins:eq,...t}),(e,t)=>e.children===t.children);df.displayName="MessageResponse";var NM=F(ee(),1);function PM({className:e,text:t,...a}){return t?(0,NM.jsx)("pre",{className:X("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 Tt=F(we(),1);var me=F(ee(),1);function tq(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 aq({text:e,className:t}){let[a,n]=(0,Tt.useState)(!1),r=(0,Tt.useRef)(null);(0,Tt.useEffect)(()=>()=>{r.current&&clearTimeout(r.current)},[]);let o=(0,Tt.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,me.jsx)(fn,{variant:"ghost",size:"sm",onClick:o,className:X("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,me.jsxs)(me.Fragment,{children:[(0,me.jsx)(ms,{className:"ww:size-3.5"}),(0,me.jsx)("span",{children:"Copied"})]}):(0,me.jsxs)(me.Fragment,{children:[(0,me.jsx)(ys,{className:"ww:size-3.5"}),(0,me.jsx)("span",{children:"Copy"})]})})}function zM({data:e,label:t,className:a,...n}){let[r,o]=(0,Tt.useState)(!1),l=(0,Tt.useMemo)(()=>JSON.stringify(e,null,2),[e]),i=tq(e);return(0,me.jsxs)("div",{className:X("ww:rounded-lg ww:bg-tool-card",a),...n,children:[(0,me.jsxs)("div",{className:"ww:flex ww:items-center ww:justify-between ww:px-3 ww:pt-2.5 ww:pb-1.5",children:[(0,me.jsx)("span",{className:"ww:text-xs ww:font-medium ww:text-muted-foreground",children:t}),(0,me.jsx)(aq,{text:l})]}),(0,me.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,me.jsx)(gs,{className:X("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,me.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,me.jsx)("code",{children:l})}):(0,me.jsx)("span",{className:"ww:truncate ww:text-xs ww:font-mono ww:text-foreground/80",children:i})]})]})}var ux=(0,Tt.createContext)({open:!1,toggle:()=>{}});function qM({className:e,defaultOpen:t=!1,children:a,...n}){let[r,o]=(0,Tt.useState)(t);return(0,me.jsx)(ux.Provider,{value:{open:r,toggle:()=>o(l=>!l)},children:(0,me.jsx)("div",{className:X("ww:mb-4 ww:w-full",e),"data-state":r?"open":"closed",...n,children:a})})}function FM({className:e,title:t,state:a,...n}){let{open:r,toggle:o}=(0,Tt.useContext)(ux),l=a==="input-available"||a==="input-streaming";return(0,me.jsxs)("button",{type:"button",onClick:o,className:X("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,me.jsxs)("div",{className:"ww:flex ww:min-w-0 ww:items-center ww:gap-2",children:[(0,me.jsx)(Lr,{className:"ww:size-4 ww:shrink-0 ww:text-muted-foreground"}),(0,me.jsx)("span",{className:"ww:truncate ww:text-sm ww:font-medium",children:t}),l&&(0,me.jsx)("span",{className:"ww:size-2 ww:shrink-0 ww:rounded-full ww:bg-primary ww:animate-pulse"})]}),(0,me.jsx)(hs,{className:X("ww:size-4 ww:shrink-0 ww:text-muted-foreground ww:transition-transform ww:duration-200",r&&"ww:rotate-180")})]})}function HM({className:e,children:t,...a}){let{open:n}=(0,Tt.useContext)(ux);return(0,me.jsx)("div",{className:X("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,me.jsx)("div",{className:"ww:min-h-0 ww:overflow-hidden",children:(0,me.jsx)("div",{className:X("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 jM({className:e,input:t,debug:a,...n}){let r=(0,Tt.useMemo)(()=>{if(!a&&typeof t=="object"&&t!==null&&!Array.isArray(t)){let{_meta:o,...l}=t;return l}return t},[t,a]);return(0,me.jsx)(zM,{data:r,label:"Request",className:e,...n})}function sx(e){if(!(typeof e!="object"||e===null))return e}function VM(e){return sx(e?.ui)}function GM(e){return sx(sx(e)?._meta)}function BM(e){if(!e)return;let t=VM(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 UM(e){return VM(e)?.autoHeight===!0}function ff(e,t,a){if(e){let n=BM(a?.[e]?._meta);if(n)return n}return BM(GM(t))}function WM(e,t,a){return e&&UM(a?.[e]?._meta)?!0:UM(GM(t))}function $M({className:e,output:t,errorText:a,debug:n,...r}){let o=(0,Tt.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,me.jsxs)("div",{className:X("ww:space-y-2",e),...r,children:[(0,me.jsx)("h4",{className:"ww:text-xs ww:font-medium ww:uppercase ww:tracking-wide ww:text-muted-foreground",children:"Error"}),(0,me.jsx)("div",{className:"ww:rounded-lg ww:bg-destructive/10 ww:p-3 ww:text-xs ww:text-destructive",children:a})]}):(0,me.jsx)(zM,{data:o,label:"Response",className:e,...r}):null}var Xe=F(we(),1);function Xl(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 XM(e,t){return!Xl(e)&&!Xl(t)?null:Xl(e)?Xl(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 KM=F(ee(),1),nq="/api/mcp/resource",ZM=500,rq=120,oq=16,lq="2026-01-26",iq=300,sq=3e3,uq=3;function cq(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function dq(e,t,a){return ff(e,t,a)?!1:t._meta?.["waniwani/autoInjectResultText"]!==!1}function QM({resourceUri:e,toolInput:t,toolResult:a,resourceEndpoint:n=nq,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,Xe.useRef)(null),v=(0,Xe.useRef)(t),S=(0,Xe.useRef)(a),g=(0,Xe.useRef)({width:0,height:0}),x=(0,Xe.useRef)(null),m=(0,Xe.useRef)(!1),w=(0,Xe.useRef)(0),k=(0,Xe.useRef)("inline"),C=(0,Xe.useRef)(!1),[T,E]=(0,Xe.useState)(rq),[D,A]=(0,Xe.useState)(void 0),P=(0,Xe.useRef)(s),_=(0,Xe.useRef)(u),z=(0,Xe.useRef)(c),G=(0,Xe.useRef)(d),V=(0,Xe.useRef)(r),H=(0,Xe.useRef)(p);v.current=t,S.current=a,P.current=s,_.current=u,z.current=c,G.current=d,V.current=r,H.current=p;let K=(0,Xe.useCallback)(b=>i||C.current?Math.max(b+oq,0):Math.min(Math.max(b,50),ZM),[i]),De=(0,Xe.useMemo)(()=>{let b=n.includes("?")?"&":"?";return`${n}${b}uri=${encodeURIComponent(e)}`},[n,e]),tt=(0,Xe.useRef)(o);return tt.current=o,(0,Xe.useEffect)(()=>{if(!m.current)return;let b=y.current;b?.contentWindow&&b.contentWindow.postMessage({jsonrpc:"2.0",method:"ui/notifications/host-context-changed",params:{theme:o?"dark":"light"}},"*")},[o]),(0,Xe.useEffect)(()=>{let b=y.current;if(!b)return;let ve=!1,le=!1,L=null,Ce=null,Vt=setTimeout(()=>{if(ve||le||w.current>=uq)return;w.current+=1;let Se=new URL(b.src);Se.searchParams.set("_retry",String(w.current)),b.src=Se.toString()},sq),ot=Se=>{b.contentWindow?.postMessage(Se,"*")},Pt=Se=>{if(ve||Se.source!==b.contentWindow)return;let _e=Se.data;if(!_e||typeof _e!="object"||_e.jsonrpc!=="2.0")return;let Ae=_e.method,Pe=_e.id;if(Ae==="ui/initialize"&&Pe!=null){le=!0,clearTimeout(Vt),ot({jsonrpc:"2.0",id:Pe,result:{protocolVersion:_e.params?.protocolVersion??lq,hostInfo:{name:"WaniWani Chat",version:"1.0.0"},hostCapabilities:{openLinks:{},message:{text:{}},tools:{},updateModelContext:{text:{},structuredContent:{}}},hostContext:{theme:tt.current?"dark":"light",displayMode:k.current}}});return}if(Ae==="ui/notifications/initialized"){m.current=!0;let Ie=v.current,de=S.current,Me=de._meta&&typeof de._meta=="object"?de._meta:null,Ge=cq(V.current),ft=Me&&typeof Me.waniwani=="object"&&Me.waniwani!==null?Me.waniwani:null,Xa=ft||Ge?{...ft??{},...Ge?{sessionId:Ge}:{}}:void 0,nn=Me||Xa?{...Me??{},...Xa?{waniwani:Xa}:{}}:void 0;ot({jsonrpc:"2.0",method:"ui/notifications/tool-input",params:{arguments:Ie}});let wn=de.content??[{type:"text",text:JSON.stringify(de)}];ot({jsonrpc:"2.0",method:"ui/notifications/tool-result",params:{content:wn,structuredContent:de.structuredContent,_meta:nn,meta:nn}});return}if(Ae==="ui/notifications/size-changed"){let Ie=_e.params,de=typeof Ie?.height=="number"?Ie.height:void 0,Me=typeof Ie?.width=="number"?Ie.width:void 0,Ge=g.current,ft=de!==void 0&&de!==Ge.height,Xa=Me!==void 0&&Me!==Ge.width;if(!ft&&!Xa)return;if(ft&&de!==void 0){Ge.height=de,!i&&!C.current&&de>ZM&&(C.current=!0);let nn=K(de),wn=b.getBoundingClientRect().height;if(x.current&&(x.current.cancel(),x.current=null),E(nn),b.animate&&Math.abs(wn-nn)>2){let bn=b.animate([{height:`${wn}px`},{height:`${nn}px`}],{duration:iq,easing:"ease-out",fill:"forwards"});x.current=bn,bn.onfinish=()=>{x.current===bn&&(bn.cancel(),x.current=null)}}}Xa&&i&&Me!==void 0&&(Ge.width=Me,A(Me));return}if(Ae==="ui/open-link"&&Pe!=null){let Ie=_e.params?.url;typeof Ie=="string"&&(P.current?P.current(Ie):window.open(Ie,"_blank","noopener,noreferrer")),ot({jsonrpc:"2.0",id:Pe,result:{}});return}if(Ae==="ui/message"&&Pe!=null){if(_.current&&_e.params){let Ie=_e.params,de=L;if(L=null,Ce){clearTimeout(Ce.timer);let Me=Ce.text;Ce=null;let Ge=(Ie.content??[]).map(ft=>ft.text??"").join("").trim();Ie={...Ie,content:[{type:"text",text:`${Ge}
|
|
121
|
+
`||e[t]==="\r");)t-=1;return t>=1&&e[t]==="$"&&e[t-1]==="$"},ex=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},RM=e=>{let t=jz.test(e),a=Vz.test(e);if(t||a)return[e];let n=Ta.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(Gz);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=Jy(u),d=ex(u);if(c&&d%2===1){r[s-1]=u+i;continue}}if(s>0&&$z(i)){let u=r[s-1],c=Jy(u),d=ex(u),f=ex(i);if(c&&d%2===1&&!Jy(i)&&f===1){r[s-1]=u+i;continue}}r.push(i)}return r},DM={raw:dC,sanitize:[id,{}],harden:[uC,{allowedImagePrefixes:["*"],allowedLinkPrefixes:["*"],allowedProtocols:["*"],defaultOrigin:void 0,allowDataImages:!0}]},_M={gfm:[Dd,{}]},Xz=Object.values(DM),Zz=Object.values(_M),Qz={block:" \u258B",circle:" \u25CF"},Kz={shikiTheme:["github-light","github-dark"],controls:!0,isAnimating:!1,mode:"streaming",mermaid:void 0,linkSafety:{enabled:!0}},aa=(0,R.createContext)(Kz),ix=(0,R.memo)(({content:e,shouldParseIncompleteMarkdown:t,index:a,...n})=>(0,M.jsx)(EM,{...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)});ix.displayName="Block";Yz=["github-light","github-dark"],sf=(0,R.memo)(({children:e,mode:t="streaming",parseIncompleteMarkdown:a=!0,components:n,rehypePlugins:r=Xz,remarkPlugins:o=Zz,className:l,shikiTheme:i=Yz,mermaid:s,controls:u=!0,isAnimating:c=!1,BlockComponent:d=ix,parseMarkdownIntoBlocksFn:f=RM,caret:p,plugins:y,remend:v,linkSafety:S={enabled:!0},...g})=>{let x=(0,R.useId)(),[m,w]=(0,R.useTransition)(),k=(0,R.useMemo)(()=>typeof e!="string"?"":t==="streaming"&&a?Ck(e,v):e,[e,t,a,v]),C=(0,R.useMemo)(()=>f(k),[k,f]),[T,E]=(0,R.useState)(C);(0,R.useEffect)(()=>{t==="streaming"?w(()=>{E(C)}):E(C)},[C,t]);let D=t==="streaming"?T:C,A=(0,R.useMemo)(()=>D.map((H,K)=>`${x}-${K}`),[D.length,x]),P=(0,R.useMemo)(()=>{var H,K;return{shikiTheme:(K=(H=y?.code)==null?void 0:H.getThemes())!=null?K:i,controls:u,isAnimating:c,mode:t,mermaid:s,linkSafety:S}},[i,u,c,t,s,S,y?.code]),_=(0,R.useMemo)(()=>({...Uz,...n}),[n]),z=(0,R.useMemo)(()=>{let H=[];return y!=null&&y.cjk&&(H=[...H,...y.cjk.remarkPluginsBefore]),H=[...H,...o],y!=null&&y.cjk&&(H=[...H,...y.cjk.remarkPluginsAfter]),y!=null&&y.math&&(H=[...H,y.math.remarkPlugin]),H},[o,y?.math,y?.cjk]),G=(0,R.useMemo)(()=>y!=null&&y.math?[...r,y.math.rehypePlugin]:r,[r,y?.math]),V=(0,R.useMemo)(()=>p&&c?{"--streamdown-caret":`"${Qz[p]}"`}:void 0,[p,c]);return t==="static"?(0,M.jsx)(tx.Provider,{value:y??null,children:(0,M.jsx)(aa.Provider,{value:P,children:(0,M.jsx)("div",{className:Y("space-y-4 whitespace-normal *:first:mt-0 *:last:mb-0",l),children:(0,M.jsx)(EM,{components:_,rehypePlugins:G,remarkPlugins:z,...g,children:e})})})}):(0,M.jsx)(tx.Provider,{value:y??null,children:(0,M.jsx)(aa.Provider,{value:P,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:[D.length===0&&p&&c&&(0,M.jsx)("span",{}),D.map((H,K)=>(0,M.jsx)(d,{components:_,content:H,index:K,rehypePlugins:G,remarkPlugins:z,shouldParseIncompleteMarkdown:a,...g},A[K]))]})})})},(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);sf.displayName="Streamdown";Jz=({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,R.useRef)(null),u=(0,R.useRef)(null),[c,d]=(0,R.useState)(l),[f,p]=(0,R.useState)({x:0,y:0}),[y,v]=(0,R.useState)(!1),[S,g]=(0,R.useState)({x:0,y:0}),[x,m]=(0,R.useState)({x:0,y:0}),w=(0,R.useCallback)(_=>{d(z=>Math.max(a,Math.min(n,z+_)))},[a,n]),k=(0,R.useCallback)(()=>{w(r)},[w,r]),C=(0,R.useCallback)(()=>{w(-r)},[w,r]),T=(0,R.useCallback)(()=>{d(l),p({x:0,y:0})},[l]),E=(0,R.useCallback)(_=>{_.preventDefault();let z=_.deltaY>0?-r:r;w(z)},[w,r]),D=(0,R.useCallback)(_=>{if(_.button!==0||_.isPrimary===!1)return;v(!0),g({x:_.clientX,y:_.clientY}),m(f);let z=_.currentTarget;z instanceof HTMLElement&&z.setPointerCapture(_.pointerId)},[f]),A=(0,R.useCallback)(_=>{if(!y)return;_.preventDefault();let z=_.clientX-S.x,G=_.clientY-S.y;p({x:x.x+z,y:x.y+G})},[y,S,x]),P=(0,R.useCallback)(_=>{v(!1);let z=_.currentTarget;z instanceof HTMLElement&&z.releasePointerCapture(_.pointerId)},[]);return(0,R.useEffect)(()=>{let _=s.current;if(_)return _.addEventListener("wheel",E,{passive:!1}),()=>{_.removeEventListener("wheel",E)}},[E]),(0,R.useEffect)(()=>{let _=u.current;if(_&&y)return document.body.style.userSelect="none",_.addEventListener("pointermove",A,{passive:!1}),_.addEventListener("pointerup",P),_.addEventListener("pointercancel",P),()=>{document.body.style.userSelect="",_.removeEventListener("pointermove",A),_.removeEventListener("pointerup",P),_.removeEventListener("pointercancel",P)}},[y,A,P]),(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:k,title:"Zoom in",type:"button",children:(0,M.jsx)(hz,{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:C,title:"Zoom out",type:"button",children:(0,M.jsx)(gz,{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:T,title:"Reset zoom and pan",type:"button",children:(0,M.jsx)(mz,{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:D,ref:u,role:"application",style:{transform:`translate(${f.x}px, ${f.y}px) scale(${c})`,transformOrigin:"center center",touchAction:"none",willChange:"transform"},children:e})]})},Ky=({chart:e,className:t,config:a,fullscreen:n=!1,showControls:r=!0})=>{let[o,l]=(0,R.useState)(null),[i,s]=(0,R.useState)(!1),[u,c]=(0,R.useState)(""),[d,f]=(0,R.useState)(""),[p,y]=(0,R.useState)(0),{mermaid:v}=(0,R.useContext)(aa),S=ox(),g=v?.errorComponent,{shouldRender:x,containerRef:m}=dz({immediate:n});if((0,R.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 k=S.getMermaid(a),C=e.split("").reduce((D,A)=>(D<<5)-D+A.charCodeAt(0)|0,0),T=`mermaid-${Math.abs(C)}-${Date.now()}-${Math.random().toString(36).substring(2,9)}`,{svg:E}=await k.render(T,e);c(E),f(E)}catch(k){if(!(d||u)){let C=k instanceof Error?k.message:"Failed to render Mermaid chart";l(C)}}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(C=>C+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)(Jz,{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 U2=Gt((Tee,B2)=>{"use strict";function k6(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)}}B2.exports=k6});var uu=F(we(),1),Ux=F(A0(),1);var cO="https://app.waniwani.ai/api/mcp/chat",dO={api:cO,title:"Assistant",position:"bottom-right",width:400,height:600};function fO(){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 jc(){let e=fO();if(!e)return{};let t=T=>e.getAttribute(T)??void 0,a=T=>{let E=e.getAttribute(T);if(E==null)return;let D=Number(E);return Number.isFinite(D)?D:void 0},n=T=>{let E=e.getAttribute(T);if(E==null)return;let D=E.trim().toLowerCase();if(D==="true"||D==="1"||D==="")return!0;if(D==="false"||D==="0")return!1},r={},o=t("data-api");o&&(r.api=o);let l=t("data-token");l&&(r.token=l);let i=t("data-title");i&&(r.title=i);let s=t("data-welcome-message");s&&(r.welcomeMessage=s);let u=t("data-placeholder");u&&(r.placeholder=u);let c=t("data-mcp-server-url");c&&(r.mcpServerUrl=c);let d=t("data-css");d&&(r.css=d);let f=t("data-suggestions");f&&(r.suggestions=f.split(",").map(T=>T.trim()).filter(Boolean));let p=t("data-position");(p==="bottom-right"||p==="bottom-left")&&(r.position=p);let y=t("data-mode");(y==="floating"||y==="custom"||y==="inline")&&(r.mode=y);let v=t("data-layout");(v==="card"||v==="bar"||v==="embed")&&(r.layout=v);let S=a("data-width");S&&(r.width=S);let g=a("data-height");g&&(r.height=g);let x=n("data-enable-thread-history");x!==void 0&&(r.enableThreadHistory=x);let m=t("data-primary-color"),w=t("data-background-color"),k=t("data-text-color"),C=t("data-font-family");return(m||w||k||C)&&(r.theme={},m&&(r.theme.primaryColor=m),w&&(r.theme.backgroundColor=w),k&&(r.theme.textColor=k),C&&(r.theme.fontFamily=C)),r}function Vc(e,t,a){let n=a??jc(),r={token:"",...dO,...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 Gc(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 xt=F(we(),1);var Zt=F(we(),1);var $c=F(we());var Wc=(...e)=>e.filter((t,a,n)=>!!t&&t.trim()!==""&&n.indexOf(t)===a).join(" ").trim();var M0=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var E0=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,a,n)=>n?n.toUpperCase():a.toLowerCase());var kh=e=>{let t=E0(e);return t.charAt(0).toUpperCase()+t.slice(1)};var ds=F(we());var R0={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 D0=e=>{for(let t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1};var _0=(0,ds.forwardRef)(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:n,className:r="",children:o,iconNode:l,...i},s)=>(0,ds.createElement)("svg",{ref:s,...R0,width:t,height:t,stroke:e,strokeWidth:n?Number(a)*24/Number(t):a,className:Wc("lucide",r),...!o&&!D0(i)&&{"aria-hidden":"true"},...i},[...l.map(([u,c])=>(0,ds.createElement)(u,c)),...Array.isArray(o)?o:[o]]));var rt=(e,t)=>{let a=(0,$c.forwardRef)(({className:n,...r},o)=>(0,$c.createElement)(_0,{ref:o,iconNode:t,className:Wc(`lucide-${M0(kh(e))}`,`lucide-${e}`,n),...r}));return a.displayName=kh(e),a};var pO=[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]],fs=rt("arrow-down",pO);var mO=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],ps=rt("arrow-up",mO);var hO=[["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"}]],Lr=rt("braces",hO);var gO=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],ms=rt("check",gO);var yO=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],hs=rt("chevron-down",yO);var xO=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],gs=rt("chevron-right",xO);var vO=[["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"}]],ys=rt("clipboard-copy",vO);var wO=[["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"}]],xs=rt("file",wO);var bO=[["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"}]],vs=rt("loader",bO);var SO=[["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"}]],ws=rt("paperclip",SO);var CO=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]],bs=rt("square",CO);var IO=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],co=rt("x",IO);var j0=F(we(),1);var Ht=F(we(),1);var kO={damping:.7,stiffness:.05,mass:1.25},LO=70,TO=1e3/60,AO=350,Xc=!1;globalThis.document?.addEventListener("mousedown",()=>{Xc=!0});globalThis.document?.addEventListener("mouseup",()=>{Xc=!1});globalThis.document?.addEventListener("click",()=>{Xc=!1});var P0=(e={})=>{let[t,a]=(0,Ht.useState)(!1),[n,r]=(0,Ht.useState)(e.initial!==!1),[o,l]=(0,Ht.useState)(!1),i=(0,Ht.useRef)(null);i.current=e;let s=(0,Ht.useCallback)(()=>{if(!Xc)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,Ht.useCallback)(x=>{d.isAtBottom=x,r(x)},[]),c=(0,Ht.useCallback)(x=>{d.escapedFromLock=x,a(x)},[]),d=(0,Ht.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<=LO}}},[]),f=(0,Ht.useCallback)((x={})=>{typeof x=="string"&&(x={animation:x}),x.preserveScrollPosition||u(!0);let m=Date.now()+(Number(x.wait)||0),w=Th(i.current,x.animation),{ignoreEscapes:k=!1}=x,C,T=d.calculatedTargetScrollTop;x.duration instanceof Promise?x.duration.finally(()=>{C=Date.now()}):C=m+(x.duration??0);let E=async()=>{let D=new Promise(requestAnimationFrame).then(()=>{if(!d.isAtBottom)return d.animation=void 0,!1;let{scrollTop:A}=d,P=performance.now(),_=(P-(d.lastTick??P))/TO;if(d.animation||(d.animation={behavior:w,promise:D,ignoreEscapes:k}),d.animation.behavior===w&&(d.lastTick=P),s()||m>Date.now())return E();if(A<Math.min(T,d.calculatedTargetScrollTop)){if(d.animation?.behavior===w){if(w==="instant")return d.scrollTop=d.calculatedTargetScrollTop,E();d.velocity=(w.damping*d.velocity+w.stiffness*d.scrollDifference)/w.mass,d.accumulated+=d.velocity*_,d.scrollTop+=d.accumulated,d.scrollTop!==A&&(d.accumulated=0)}return E()}return C>Date.now()?(T=d.calculatedTargetScrollTop,E()):(d.animation=void 0,d.scrollTop<d.calculatedTargetScrollTop?f({animation:Th(i.current,i.current.resize),ignoreEscapes:k,duration:Math.max(0,C-Date.now())||void 0}):d.isAtBottom)});return D.then(A=>(requestAnimationFrame(()=>{d.animation||(d.lastTick=void 0,d.velocity=0)}),A))};return x.wait!==!0&&(d.animation=void 0),d.animation?.behavior===w?d.animation.promise:E()},[u,s,d]),p=(0,Ht.useCallback)(()=>{c(!0),u(!1)},[c,u]),y=(0,Ht.useCallback)(({target:x})=>{if(x!==S.current)return;let{scrollTop:m,ignoreScrollToTop:w}=d,{lastScrollTop:k=m}=d;d.lastScrollTop=m,d.ignoreScrollToTop=void 0,w&&w>m&&(k=w),l(d.isNearBottom),setTimeout(()=>{if(d.resizeDifference||m===w)return;if(s()){c(!0),u(!1);return}let C=m>k,T=m<k;if(d.animation?.ignoreEscapes){d.scrollTop=k;return}T&&(c(!0),u(!1)),C&&c(!1),!d.escapedFromLock&&d.isNearBottom&&u(!0)},1)},[c,u,s,d]),v=(0,Ht.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=O0(x=>{S.current?.removeEventListener("scroll",y),S.current?.removeEventListener("wheel",v),x?.addEventListener("scroll",y,{passive:!0}),x?.addEventListener("wheel",v,{passive:!0})},[]),g=O0(x=>{if(d.resizeObserver?.disconnect(),!x)return;let m;d.resizeObserver=new ResizeObserver(([w])=>{let{height:k}=w.contentRect,C=k-(m??k);if(d.resizeDifference=C,d.scrollTop>d.targetScrollTop&&(d.scrollTop=d.targetScrollTop),l(d.isNearBottom),C>=0){let T=Th(i.current,m?i.current.resize:i.current.initial);f({animation:T,wait:!0,preserveScrollPosition:!0,duration:T==="instant"?void 0:AO})}else d.isNearBottom&&(c(!1),u(!0));m=k,requestAnimationFrame(()=>{setTimeout(()=>{d.resizeDifference===C&&(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 O0(e,t){let a=(0,Ht.useCallback)(n=>(a.current=n,e(n)),t);return a}var Lh=new Map;function Th(...e){let t={...kO},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 Lh.has(n)||Lh.set(n,Object.freeze(t)),a?"instant":Lh.get(n)}var fo=F(we(),1),da=F(we(),1);var N0=(0,da.createContext)(null),MO=typeof window<"u"?da.useLayoutEffect:da.useEffect;function Ss({instance:e,children:t,resize:a,initial:n,mass:r,damping:o,stiffness:l,targetScrollTop:i,contextRef:s,...u}){let c=(0,da.useRef)(null),d=fo.useCallback((k,C)=>(w?.targetScrollTop??i)?.(k,C)??k,[i]),f=P0({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,da.useMemo)(()=>({scrollToBottom:v,stopScroll:S,scrollRef:p,isAtBottom:g,escapedFromLock:x,contentRef:y,state:m,get targetScrollTop(){return c.current},set targetScrollTop(k){c.current=k}}),[v,g,y,p,S,x,m]);return(0,da.useImperativeHandle)(s,()=>w,[w]),MO(()=>{p.current&&getComputedStyle(p.current).overflow==="visible"&&(p.current.style.overflow="auto")},[]),fo.createElement(N0.Provider,{value:w},fo.createElement("div",{...u},typeof t=="function"?t(w):t))}(function(e){function t({children:a,scrollClassName:n,...r}){let o=Ah();return fo.createElement("div",{ref:o.scrollRef,style:{height:"100%",width:"100%",scrollbarGutter:"stable both-edges"},className:n},fo.createElement("div",{...r,ref:o.contentRef},typeof a=="function"?a(o):a))}e.Content=t})(Ss||(Ss={}));function Ah(){let e=(0,da.useContext)(N0);if(!e)throw new Error("use-stick-to-bottom component context must be used within a StickToBottom component");return e}Mh();Rh();var EO=U0({prefix:"ww"});function X(...e){return EO(Zc(e))}var H0=F(ee(),1),fn=({className:e,variant:t="default",size:a="default",type:n="button",...r})=>(0,H0.jsx)("button",{type:n,className:X("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 Cs=F(ee(),1),Ml=({className:e,...t})=>(0,Cs.jsx)(Ss,{className:X("ww:relative ww:flex-1 ww:overflow-y-hidden",e),initial:"smooth",resize:"smooth",role:"log",...t}),El=({className:e,...t})=>(0,Cs.jsx)(Ss.Content,{className:X("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}),Rl=({className:e,...t})=>{let{isAtBottom:a,scrollToBottom:n}=Ah(),r=(0,j0.useCallback)(()=>{n()},[n]);return!a&&(0,Cs.jsx)(fn,{className:X("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,Cs.jsx)(fs,{className:"ww:size-4"})})};var Is=(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 $e=F(we(),1);var Jt=F(ee(),1),_O=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}},V0=(0,$e.createContext)(null),G0=()=>{let e=(0,$e.useContext)(V0);if(!e)throw new Error("usePromptInputAttachments must be used within a PromptInput");return e},Dl=({className:e,accept:t,multiple:a,globalDrop:n,maxFiles:r,maxFileSize:o,onSubmit:l,children:i,...s})=>{let u=(0,$e.useRef)(null),c=(0,$e.useRef)(null),[d,f]=(0,$e.useState)([]),p=(0,$e.useRef)(d);(0,$e.useEffect)(()=>{p.current=d},[d]);let y=(0,$e.useCallback)(()=>{u.current?.click()},[]),v=(0,$e.useCallback)(k=>{let C=[...k];if(C.length===0)return;let T=D=>o?D.size<=o:!0,E=C.filter(T);f(D=>{let A=typeof r=="number"?Math.max(0,r-D.length):void 0,P=typeof A=="number"?E.slice(0,A):E;return[...D,...P.map(_=>({filename:_.name,id:Is(),mediaType:_.type,type:"file",url:URL.createObjectURL(_)}))]})},[r,o]),S=(0,$e.useCallback)(k=>{f(C=>{let T=C.find(E=>E.id===k);return T?.url&&URL.revokeObjectURL(T.url),C.filter(E=>E.id!==k)})},[]),g=(0,$e.useCallback)(()=>{f(k=>{for(let C of k)C.url&&URL.revokeObjectURL(C.url);return[]})},[]);(0,$e.useEffect)(()=>()=>{for(let k of p.current)k.url&&URL.revokeObjectURL(k.url)},[]);let x=(0,$e.useCallback)(k=>{k.currentTarget.files&&v(k.currentTarget.files),k.currentTarget.value=""},[v]);(0,$e.useEffect)(()=>{if(!n)return;let k=T=>{T.dataTransfer?.types?.includes("Files")&&T.preventDefault()},C=T=>{T.dataTransfer?.types?.includes("Files")&&T.preventDefault(),T.dataTransfer?.files&&T.dataTransfer.files.length>0&&v(T.dataTransfer.files)};return document.addEventListener("dragover",k),document.addEventListener("drop",C),()=>{document.removeEventListener("dragover",k),document.removeEventListener("drop",C)}},[v,n]);let m=(0,$e.useCallback)(async k=>{k.preventDefault();let C=k.currentTarget,E=new FormData(C).get("message")||"";C.reset();let D=await Promise.all(d.map(async({id:A,...P})=>{if(P.url?.startsWith("blob:")){let _=await _O(P.url);return{...P,url:_??P.url}}return P}));try{let A=l({files:D,text:E},k);A instanceof Promise&&await A,g()}catch{}},[d,l,g]),w=(0,$e.useMemo)(()=>({add:v,clear:g,files:d,openFileDialog:y,remove:S}),[d,v,S,g,y]);return(0,Jt.jsxs)(V0.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:X("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 _l=({onChange:e,onKeyDown:t,className:a,placeholder:n="What would you like to know?",...r})=>{let o=G0(),[l,i]=(0,$e.useState)(!1),s=(0,$e.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,$e.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:X("ww:field-sizing-content ww:max-h-48 ww:min-h-0 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})},Ol=({className:e,status:t,onStop:a,onClick:n,children:r,...o})=>{let l=t==="submitted"||t==="streaming",i=(0,Jt.jsx)(ps,{className:"ww:size-4"});t==="submitted"?i=(0,Jt.jsx)(vs,{className:"ww:size-4 ww:animate-spin"}):t==="streaming"&&(i=(0,Jt.jsx)(bs,{className:"ww:size-4"}));let s=(0,$e.useCallback)(u=>{if(l&&a){u.preventDefault(),a();return}n?.(u)},[l,a,n]);return(0,Jt.jsx)(fn,{"aria-label":l?"Stop":"Submit",className:X("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})},Pl=({className:e,children:t,...a})=>{let n=G0();return n.files.length>0?(0,Jt.jsxs)(fn,{className:X("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)(co,{className:"ww:absolute ww:size-4 ww:opacity-0 ww:transition-opacity ww:group-hover:opacity-100"})]}):(0,Jt.jsx)(fn,{className:X(e),onClick:()=>n.openFileDialog(),size:"icon-sm",type:"button",variant:"ghost",...a,children:t??(0,Jt.jsx)(ws,{className:"ww:size-4"})})};var Kc=F(we(),1);var po=F(ee(),1),W0=({className:e,...t})=>(0,po.jsx)("div",{className:X("ww:flex ww:flex-col ww:gap-1 ww:px-3 ww:py-2",e),...t}),$0=({className:e,...t})=>(0,po.jsx)("li",{className:X("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}),X0=({className:e,...t})=>(0,po.jsx)("span",{className:X("ww:inline-block ww:size-2 ww:shrink-0 ww:rounded-full ww:border ww:border-muted-foreground/50",e),...t}),Z0=({className:e,...t})=>(0,po.jsx)("span",{className:X("ww:line-clamp-1 ww:grow ww:break-words ww:text-muted-foreground",e),...t}),Q0=({className:e,...t})=>(0,po.jsx)("div",{className:X("ww:flex ww:shrink-0 ww:gap-1 ww:opacity-0 ww:transition-opacity ww:group-hover:opacity-100",e),...t}),K0=({className:e,...t})=>(0,po.jsx)(fn,{className:X("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 Fa=F(ee(),1),Y0=(0,Kc.memo)(({message:e,onRemove:t})=>{let a=(0,Kc.useCallback)(()=>t(e.id),[t,e.id]);return(0,Fa.jsxs)($0,{children:[(0,Fa.jsx)(X0,{}),(0,Fa.jsx)(Z0,{children:e.text||"(attachment)"}),(0,Fa.jsx)(Q0,{children:(0,Fa.jsx)(K0,{"aria-label":"Remove from queue",onClick:a,children:(0,Fa.jsx)(co,{className:"ww:size-3"})})})]})});Y0.displayName="ChatQueueItem";function Nl({queuedMessages:e,onRemove:t,className:a}){return e.length===0?null:(0,Fa.jsxs)(W0,{className:X("ww:border-t ww:border-border",a),children:[(0,Fa.jsxs)("div",{className:"ww:text-[11px] ww:font-medium ww:text-muted-foreground ww:px-2",children:[e.length," queued"]}),(0,Fa.jsx)("ul",{children:e.map(n=>(0,Fa.jsx)(Y0,{message:n,onRemove:t},n.id))})]})}var Dh=F(we(),1),J0=F(ee(),1);function Yc({messages:e,evalEnabled:t,api:a="/api/waniwani"}){let[n,r]=(0,Dh.useState)(!1),[o,l]=(0,Dh.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,J0.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 Tr=F(ee(),1),eC=({files:e,className:t,...a})=>e.length===0?null:(0,Tr.jsx)("div",{className:X("ww:flex ww:flex-wrap ww:gap-1.5",t),...a,children:e.map((n,r)=>(0,Tr.jsx)(OO,{file:n},r))});function OO({file:e}){return e.mediaType?.startsWith("image/")&&e.url?(0,Tr.jsx)("img",{src:e.url,alt:e.filename??"attachment",className:"ww:h-16 ww:max-w-32 ww:rounded ww:object-cover"}):(0,Tr.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,Tr.jsx)(xs,{className:"ww:size-3 ww:shrink-0"}),(0,Tr.jsx)("span",{className:"ww:max-w-24 ww:truncate",children:e.filename??"file"})]})}var _h=F(ee(),1),Oh=({className:e,size:t=5,...a})=>(0,_h.jsx)("div",{className:X("ww:flex ww:items-center ww:gap-1",e),...a,children:[0,1,2].map(n=>(0,_h.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 tC={name:"cjk-noop",type:"cjk",remarkPluginsBefore:[],remarkPluginsAfter:[],remarkPlugins:[]};var aC={name:"shiki-noop",type:"code-highlighter",supportsLanguage:()=>!1,getSupportedLanguages:()=>[],getThemes:()=>["github-light","github-dark"],highlight:()=>null};var OM=F(we(),1);af();var Ys=F(ee(),1),uf=({className:e,from:t,children:a,...n})=>(0,Ys.jsx)("div",{className:X("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,Ys.jsx)("div",{className:X("ww:flex ww:min-w-0 ww:flex-col ww:gap-2","ww:w-full"),children:a})}),cf=({children:e,className:t,...a})=>(0,Ys.jsx)("div",{className:X("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}),eq={cjk:tC,code:aC},df=(0,OM.memo)(({className:e,...t})=>(0,Ys.jsx)(sf,{className:X("ww:size-full ww:[&>*:first-child]:mt-0 ww:[&>*:last-child]:mb-0",e),plugins:eq,...t}),(e,t)=>e.children===t.children);df.displayName="MessageResponse";var NM=F(ee(),1);function PM({className:e,text:t,...a}){return t?(0,NM.jsx)("pre",{className:X("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 Tt=F(we(),1);var me=F(ee(),1);function tq(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 aq({text:e,className:t}){let[a,n]=(0,Tt.useState)(!1),r=(0,Tt.useRef)(null);(0,Tt.useEffect)(()=>()=>{r.current&&clearTimeout(r.current)},[]);let o=(0,Tt.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,me.jsx)(fn,{variant:"ghost",size:"sm",onClick:o,className:X("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,me.jsxs)(me.Fragment,{children:[(0,me.jsx)(ms,{className:"ww:size-3.5"}),(0,me.jsx)("span",{children:"Copied"})]}):(0,me.jsxs)(me.Fragment,{children:[(0,me.jsx)(ys,{className:"ww:size-3.5"}),(0,me.jsx)("span",{children:"Copy"})]})})}function zM({data:e,label:t,className:a,...n}){let[r,o]=(0,Tt.useState)(!1),l=(0,Tt.useMemo)(()=>JSON.stringify(e,null,2),[e]),i=tq(e);return(0,me.jsxs)("div",{className:X("ww:rounded-lg ww:bg-tool-card",a),...n,children:[(0,me.jsxs)("div",{className:"ww:flex ww:items-center ww:justify-between ww:px-3 ww:pt-2.5 ww:pb-1.5",children:[(0,me.jsx)("span",{className:"ww:text-xs ww:font-medium ww:text-muted-foreground",children:t}),(0,me.jsx)(aq,{text:l})]}),(0,me.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,me.jsx)(gs,{className:X("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,me.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,me.jsx)("code",{children:l})}):(0,me.jsx)("span",{className:"ww:truncate ww:text-xs ww:font-mono ww:text-foreground/80",children:i})]})]})}var ux=(0,Tt.createContext)({open:!1,toggle:()=>{}});function qM({className:e,defaultOpen:t=!1,children:a,...n}){let[r,o]=(0,Tt.useState)(t);return(0,me.jsx)(ux.Provider,{value:{open:r,toggle:()=>o(l=>!l)},children:(0,me.jsx)("div",{className:X("ww:mb-4 ww:w-full",e),"data-state":r?"open":"closed",...n,children:a})})}function FM({className:e,title:t,state:a,...n}){let{open:r,toggle:o}=(0,Tt.useContext)(ux),l=a==="input-available"||a==="input-streaming";return(0,me.jsxs)("button",{type:"button",onClick:o,className:X("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,me.jsxs)("div",{className:"ww:flex ww:min-w-0 ww:items-center ww:gap-2",children:[(0,me.jsx)(Lr,{className:"ww:size-4 ww:shrink-0 ww:text-muted-foreground"}),(0,me.jsx)("span",{className:"ww:truncate ww:text-sm ww:font-medium",children:t}),l&&(0,me.jsx)("span",{className:"ww:size-2 ww:shrink-0 ww:rounded-full ww:bg-primary ww:animate-pulse"})]}),(0,me.jsx)(hs,{className:X("ww:size-4 ww:shrink-0 ww:text-muted-foreground ww:transition-transform ww:duration-200",r&&"ww:rotate-180")})]})}function HM({className:e,children:t,...a}){let{open:n}=(0,Tt.useContext)(ux);return(0,me.jsx)("div",{className:X("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,me.jsx)("div",{className:"ww:min-h-0 ww:overflow-hidden",children:(0,me.jsx)("div",{className:X("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 jM({className:e,input:t,debug:a,...n}){let r=(0,Tt.useMemo)(()=>{if(!a&&typeof t=="object"&&t!==null&&!Array.isArray(t)){let{_meta:o,...l}=t;return l}return t},[t,a]);return(0,me.jsx)(zM,{data:r,label:"Request",className:e,...n})}function sx(e){if(!(typeof e!="object"||e===null))return e}function VM(e){return sx(e?.ui)}function GM(e){return sx(sx(e)?._meta)}function BM(e){if(!e)return;let t=VM(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 UM(e){return VM(e)?.autoHeight===!0}function ff(e,t,a){if(e){let n=BM(a?.[e]?._meta);if(n)return n}return BM(GM(t))}function WM(e,t,a){return e&&UM(a?.[e]?._meta)?!0:UM(GM(t))}function $M({className:e,output:t,errorText:a,debug:n,...r}){let o=(0,Tt.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,me.jsxs)("div",{className:X("ww:space-y-2",e),...r,children:[(0,me.jsx)("h4",{className:"ww:text-xs ww:font-medium ww:uppercase ww:tracking-wide ww:text-muted-foreground",children:"Error"}),(0,me.jsx)("div",{className:"ww:rounded-lg ww:bg-destructive/10 ww:p-3 ww:text-xs ww:text-destructive",children:a})]}):(0,me.jsx)(zM,{data:o,label:"Response",className:e,...r}):null}var Xe=F(we(),1);function Xl(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 XM(e,t){return!Xl(e)&&!Xl(t)?null:Xl(e)?Xl(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 KM=F(ee(),1),nq="/api/mcp/resource",ZM=500,rq=120,oq=16,lq="2026-01-26",iq=300,sq=3e3,uq=3;function cq(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function dq(e,t,a){return ff(e,t,a)?!1:t._meta?.["waniwani/autoInjectResultText"]!==!1}function QM({resourceUri:e,toolInput:t,toolResult:a,resourceEndpoint:n=nq,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,Xe.useRef)(null),v=(0,Xe.useRef)(t),S=(0,Xe.useRef)(a),g=(0,Xe.useRef)({width:0,height:0}),x=(0,Xe.useRef)(null),m=(0,Xe.useRef)(!1),w=(0,Xe.useRef)(0),k=(0,Xe.useRef)("inline"),C=(0,Xe.useRef)(!1),[T,E]=(0,Xe.useState)(rq),[D,A]=(0,Xe.useState)(void 0),P=(0,Xe.useRef)(s),_=(0,Xe.useRef)(u),z=(0,Xe.useRef)(c),G=(0,Xe.useRef)(d),V=(0,Xe.useRef)(r),H=(0,Xe.useRef)(p);v.current=t,S.current=a,P.current=s,_.current=u,z.current=c,G.current=d,V.current=r,H.current=p;let K=(0,Xe.useCallback)(b=>i?Math.max(b+oq,0):C.current?Math.max(b,0):Math.min(Math.max(b,50),ZM),[i]),De=(0,Xe.useMemo)(()=>{let b=n.includes("?")?"&":"?";return`${n}${b}uri=${encodeURIComponent(e)}`},[n,e]),tt=(0,Xe.useRef)(o);return tt.current=o,(0,Xe.useEffect)(()=>{if(!m.current)return;let b=y.current;b?.contentWindow&&b.contentWindow.postMessage({jsonrpc:"2.0",method:"ui/notifications/host-context-changed",params:{theme:o?"dark":"light"}},"*")},[o]),(0,Xe.useEffect)(()=>{let b=y.current;if(!b)return;let ve=!1,le=!1,L=null,Ce=null,Vt=setTimeout(()=>{if(ve||le||w.current>=uq)return;w.current+=1;let Se=new URL(b.src);Se.searchParams.set("_retry",String(w.current)),b.src=Se.toString()},sq),ot=Se=>{b.contentWindow?.postMessage(Se,"*")},Pt=Se=>{if(ve||Se.source!==b.contentWindow)return;let _e=Se.data;if(!_e||typeof _e!="object"||_e.jsonrpc!=="2.0")return;let Ae=_e.method,Pe=_e.id;if(Ae==="ui/initialize"&&Pe!=null){le=!0,clearTimeout(Vt),ot({jsonrpc:"2.0",id:Pe,result:{protocolVersion:_e.params?.protocolVersion??lq,hostInfo:{name:"WaniWani Chat",version:"1.0.0"},hostCapabilities:{openLinks:{},message:{text:{}},tools:{},updateModelContext:{text:{},structuredContent:{}}},hostContext:{theme:tt.current?"dark":"light",displayMode:k.current}}});return}if(Ae==="ui/notifications/initialized"){m.current=!0;let Ie=v.current,de=S.current,Me=de._meta&&typeof de._meta=="object"?de._meta:null,Ge=cq(V.current),ft=Me&&typeof Me.waniwani=="object"&&Me.waniwani!==null?Me.waniwani:null,Xa=ft||Ge?{...ft??{},...Ge?{sessionId:Ge}:{}}:void 0,nn=Me||Xa?{...Me??{},...Xa?{waniwani:Xa}:{}}:void 0;ot({jsonrpc:"2.0",method:"ui/notifications/tool-input",params:{arguments:Ie}});let wn=de.content??[{type:"text",text:JSON.stringify(de)}];ot({jsonrpc:"2.0",method:"ui/notifications/tool-result",params:{content:wn,structuredContent:de.structuredContent,_meta:nn,meta:nn}});return}if(Ae==="ui/notifications/size-changed"){let Ie=_e.params,de=typeof Ie?.height=="number"?Ie.height:void 0,Me=typeof Ie?.width=="number"?Ie.width:void 0,Ge=g.current,ft=de!==void 0&&de!==Ge.height,Xa=Me!==void 0&&Me!==Ge.width;if(!ft&&!Xa)return;if(ft&&de!==void 0){Ge.height=de,!i&&!C.current&&de>ZM&&(C.current=!0);let nn=K(de),wn=b.getBoundingClientRect().height;if(x.current&&(x.current.cancel(),x.current=null),E(nn),b.animate&&Math.abs(wn-nn)>2){let bn=b.animate([{height:`${wn}px`},{height:`${nn}px`}],{duration:iq,easing:"ease-out",fill:"forwards"});x.current=bn,bn.onfinish=()=>{x.current===bn&&(bn.cancel(),x.current=null)}}}Xa&&i&&Me!==void 0&&(Ge.width=Me,A(Me));return}if(Ae==="ui/open-link"&&Pe!=null){let Ie=_e.params?.url;typeof Ie=="string"&&(P.current?P.current(Ie):window.open(Ie,"_blank","noopener,noreferrer")),ot({jsonrpc:"2.0",id:Pe,result:{}});return}if(Ae==="ui/message"&&Pe!=null){if(_.current&&_e.params){let Ie=_e.params,de=L;if(L=null,Ce){clearTimeout(Ce.timer);let Me=Ce.text;Ce=null;let Ge=(Ie.content??[]).map(ft=>ft.text??"").join("").trim();Ie={...Ie,content:[{type:"text",text:`${Ge}
|
|
122
122
|
|
|
123
123
|
${Me}`}]}}_.current({...Ie,...de?{modelContext:de}:{}})}ot({jsonrpc:"2.0",id:Pe,result:{}});return}if(Ae==="ui/update-model-context"&&Pe!=null){L=XM(L,_e.params),ot({jsonrpc:"2.0",id:Pe,result:{}});return}if(Ae==="tools/call"&&Pe!=null){let Ie=z.current;if(!Ie){ot({jsonrpc:"2.0",id:Pe,error:{code:-32601,message:"tools/call not supported"}});return}let de=_e.params?.name;Ie({name:de,arguments:_e.params?.arguments??{}}).then(Me=>{ot({jsonrpc:"2.0",id:Pe,result:Me});let Ge=Me.content?.map(ft=>ft.text??"").join("").trim();Ge&&dq(de,Me,H.current)&&(Ce&&clearTimeout(Ce.timer),Ce={text:Ge,timer:setTimeout(()=>{if(ve)return;let ft=L;L=null,Ce=null,_.current?.({role:"user",content:[{type:"text",text:Ge}],...ft?{modelContext:ft}:{}})},500)})}).catch(Me=>{let Ge=Me instanceof Error?Me.message:"Tool call failed";ot({jsonrpc:"2.0",id:Pe,error:{code:-32e3,message:Ge}})});return}if(Ae==="ui/request-display-mode"&&Pe!=null){let Ie=_e.params?.mode,de=Ie==="fullscreen"||Ie==="inline"||Ie==="pip"?Ie:"inline";k.current=de,ot({jsonrpc:"2.0",id:Pe,result:{mode:de}}),ot({jsonrpc:"2.0",method:"ui/notifications/host-context-changed",params:{displayMode:de}}),G.current?.(de);return}if(Ae==="ui/resource-teardown"&&Pe!=null){ot({jsonrpc:"2.0",id:Pe,result:{}});return}Ae==="ping"&&Pe!=null&&ot({jsonrpc:"2.0",id:Pe,result:{}})};return window.addEventListener("message",Pt),()=>{ve=!0,clearTimeout(Vt),Ce&&clearTimeout(Ce.timer),window.removeEventListener("message",Pt)}},[i,K]),(0,KM.jsx)("iframe",{ref:y,src:De,sandbox:"allow-scripts allow-forms allow-same-origin",className:X(!f&&"ww:rounded-md ww:border ww:border-border",l),style:{height:f?"100%":T,minWidth:f||!D?void 0:`min(${D}px, 100%)`,width:"100%",border:"none",colorScheme:o?"dark":"auto"},title:"MCP App"})}var Ur=F(ee(),1);function YM({icon:e,title:t,description:a,suggestions:n,onSuggestionSelect:r}){return(0,Ur.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,Ur.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,Ur.jsx)("h2",{className:"ww:text-lg ww:font-semibold ww:text-foreground",children:t}),a&&(0,Ur.jsx)("p",{className:"ww:mt-1 ww:text-sm ww:text-muted-foreground ww:max-w-sm",children:a}),n&&n.length>0&&(0,Ur.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,Ur.jsx)("button",{type:"button",onClick:()=>r?.(o),className:X("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 JM=F(we(),1);var Js=F(ee(),1),pf=class extends JM.Component{constructor(){super(...arguments);ke(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,Js.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,Js.jsx)("span",{children:"Widget failed to load"}),(0,Js.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 qe=F(ee(),1);function fq(e){return e?e.replace(/[-_]/g," ").replace(/^\w/,t=>t.toUpperCase()):"Tool"}function Zl({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,qe.jsxs)(qe.Fragment,{children:[!x&&(!S&&n?(0,qe.jsx)(YM,{...n,onSuggestionSelect:r}):a&&(0,qe.jsx)(uf,{from:"assistant",children:(0,qe.jsx)(cf,{children:(0,qe.jsx)(df,{children:a})})})),e.map(m=>{let w=m.parts.filter(P=>P.type==="text"),k=m.parts.filter(P=>P.type==="reasoning"),C=m.parts.filter(P=>P.type==="file"),T=m.parts.filter(P=>"toolCallId"in P),E=m===v&&m.role==="assistant",D=w.length>0,A=x?T.some(P=>P.toolCallId===d):!1;return x&&!A?(0,qe.jsx)("div",{style:{display:"none"}},m.id):(0,qe.jsxs)(uf,{from:m.role,children:[!A&&k.map((P,_)=>(0,qe.jsx)(PM,{text:P.text},`reasoning-${m.id}-${_}`)),T.map(P=>{let _="output"in P?P.output:void 0,z=ff(P.toolName,_,p),G=WM(P.toolName,_,p),V=P.toolCallId===d;return(0,qe.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,qe.jsx)("div",{style:V?{display:"none"}:void 0,children:(0,qe.jsxs)(qM,{children:[(0,qe.jsx)(FM,{title:P.title??fq(P.toolName),state:P.state}),(0,qe.jsxs)(HM,{children:[(0,qe.jsx)(jM,{input:P.input,debug:f}),_!==void 0&&(0,qe.jsx)($M,{output:_,errorText:"errorText"in P?P.errorText:void 0,debug:f})]})]})}),z&&o&&_!==void 0&&(0,qe.jsx)(pf,{children:(0,qe.jsx)(QM,{isFullscreen:V,resourceUri:z,toolInput:P.input??{},toolResult:{content:_.content,structuredContent:_.structuredContent,_meta:_._meta},resourceEndpoint:o,chatSessionId:l,isDark:i,autoHeight:G,toolDefinitions:p,onFollowUp:s,onCallTool:u,onDisplayModeChange:c?H=>c(H,{toolCallId:P.toolCallId,resourceUri:z,toolInput:P.input??{},toolResult:{content:_.content,structuredContent:_.structuredContent,_meta:_._meta},autoHeight:G}):void 0})})]},P.toolCallId)}),!A&&(0,qe.jsx)("div",{children:(0,qe.jsxs)(cf,{children:[C.length>0&&(0,qe.jsx)(eC,{files:C}),D?w.map((P,_)=>(0,qe.jsx)(df,{children:P.type==="text"?P.text:""},`${m.id}-${_}`)):E&&y&&(0,qe.jsx)(Oh,{})]})})]},m.id)}),!x&&g&&(0,qe.jsx)(uf,{from:"assistant",children:(0,qe.jsx)(cf,{children:(0,qe.jsx)(Oh,{})})})]})}var eu=F(ee(),1);function Ql({suggestions:e,isLoading:t,onSelect:a,className:n,...r}){return e.length===0&&!t?null:(0,eu.jsx)("div",{className:X("ww:px-4 ww:py-2",n),...r,children:(0,eu.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,eu.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,eu.jsx)("button",{type:"button",onClick:()=>a(o),className:X("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 Kl=F(we(),1),Te=F(ee(),1),eE=20;function pq(e){let t=Date.parse(e);if(Number.isNaN(t))return"";let a=Date.now()-t;return a<6e4?"just now":a<60*6e4?`${Math.floor(a/6e4)}m ago`:a<1440*6e4?`${Math.floor(a/(60*6e4))}h ago`:`${Math.floor(a/(1440*6e4))}d ago`}function mq(){return(0,Te.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",role:"img","aria-label":"New chat",children:[(0,Te.jsx)("title",{children:"New chat"}),(0,Te.jsx)("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),(0,Te.jsx)("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]})}function hq(){return(0,Te.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",role:"img","aria-label":"Thread history",children:[(0,Te.jsx)("title",{children:"Thread history"}),(0,Te.jsx)("path",{d:"M3 12a9 9 0 1 0 3-6.7"}),(0,Te.jsx)("polyline",{points:"3 4 3 9 8 9"}),(0,Te.jsx)("line",{x1:"12",y1:"7",x2:"12",y2:"12"}),(0,Te.jsx)("line",{x1:"12",y1:"12",x2:"15",y2:"14"})]})}function gq(){return(0,Te.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",role:"img","aria-label":"Delete thread",children:[(0,Te.jsx)("title",{children:"Delete thread"}),(0,Te.jsx)("polyline",{points:"3 6 5 6 21 6"}),(0,Te.jsx)("path",{d:"M19 6l-2 14a2 2 0 0 1-2 2H9a2 2 0 0 1-2-2L5 6"}),(0,Te.jsx)("path",{d:"M10 11v6"}),(0,Te.jsx)("path",{d:"M14 11v6"})]})}function tE({threads:e,activeThreadId:t,onNewThread:a,onSelectThread:n,onDeleteThread:r}){let[o,l]=(0,Kl.useState)(!1),i=(0,Kl.useRef)(null);(0,Kl.useEffect)(()=>{if(!o)return;let c=d=>{i.current&&!i.current.contains(d.target)&&l(!1)};return document.addEventListener("mousedown",c),()=>document.removeEventListener("mousedown",c)},[o]);let s=e.slice(0,eE),u=Math.max(0,e.length-eE);return(0,Te.jsxs)("div",{ref:i,className:"ww:relative ww:flex ww:items-center ww:gap-1",children:[(0,Te.jsx)("button",{type:"button",onClick:a,title:"New chat","aria-label":"New chat",className:"ww:p-1.5 ww:rounded-md ww:text-muted-foreground hover:ww:text-foreground hover:ww:bg-foreground/5 ww:transition-colors ww:cursor-pointer",children:(0,Te.jsx)(mq,{})}),(0,Te.jsx)("button",{type:"button",onClick:()=>l(c=>!c),title:"Thread history","aria-label":"Thread history","aria-expanded":o,className:"ww:p-1.5 ww:rounded-md ww:text-muted-foreground hover:ww:text-foreground hover:ww:bg-foreground/5 ww:transition-colors ww:cursor-pointer",children:(0,Te.jsx)(hq,{})}),o&&(0,Te.jsxs)("div",{role:"menu",className:"ww:absolute ww:right-0 ww:top-full ww:mt-1 ww:w-72 ww:max-h-80 ww:overflow-y-auto ww:rounded-lg ww:border ww:border-border ww:bg-background ww:shadow-lg ww:z-50",children:[s.length===0&&(0,Te.jsx)("div",{className:"ww:px-3 ww:py-3 ww:text-xs ww:text-muted-foreground",children:"No previous chats yet."}),s.map(c=>{let d=c.threadId===t;return(0,Te.jsxs)("div",{className:`ww:flex ww:items-center ww:gap-2 ww:px-3 ww:py-2 ww:text-xs hover:ww:bg-foreground/5 ${d?"ww:bg-foreground/5":""}`,children:[(0,Te.jsxs)("button",{type:"button",onClick:()=>{n(c.threadId),l(!1)},className:"ww:flex-1 ww:min-w-0 ww:text-left ww:cursor-pointer",children:[(0,Te.jsx)("div",{className:"ww:truncate ww:text-foreground ww:font-medium",children:c.title}),(0,Te.jsx)("div",{className:"ww:text-[10px] ww:text-muted-foreground",children:pq(c.updatedAt)})]}),(0,Te.jsx)("button",{type:"button",onClick:f=>{f.stopPropagation(),r(c.threadId)},title:"Delete thread","aria-label":"Delete thread",className:"ww:p-1 ww:rounded ww:text-muted-foreground hover:ww:text-foreground hover:ww:bg-foreground/10 ww:transition-colors ww:cursor-pointer",children:(0,Te.jsx)(gq,{})})]},c.threadId)}),u>0&&(0,Te.jsxs)("div",{className:"ww:px-3 ww:py-2 ww:text-[10px] ww:text-muted-foreground ww:border-t ww:border-border",children:[u," older thread",u===1?"":"s"," hidden"]})]})]})}var mf=F(we(),1);function Yl(e){let t=(0,mf.useRef)(e);return t.current=e,(0,mf.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 Wa=F(we(),1);var EE="vercel.ai.error",yq=Symbol.for(EE),aE,nE,xe=class RE extends(nE=Error,aE=yq,nE){constructor({name:t,message:a,cause:n}){super(a),this[aE]=!0,this.name=t,this.cause=n}static isInstance(t){return RE.hasMarker(t,EE)}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}},DE="AI_APICallError",_E=`vercel.ai.error.${DE}`,xq=Symbol.for(_E),rE,oE,KY=class extends(oE=xe,rE=xq,oE){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:DE,message:e,cause:l}),this[rE]=!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 xe.hasMarker(e,_E)}},OE="AI_EmptyResponseBodyError",PE=`vercel.ai.error.${OE}`,vq=Symbol.for(PE),lE,iE,YY=class extends(iE=xe,lE=vq,iE){constructor({message:e="Empty response body"}={}){super({name:OE,message:e}),this[lE]=!0}static isInstance(e){return xe.hasMarker(e,PE)}};function NE(e){return e==null?"unknown error":typeof e=="string"?e:e instanceof Error?e.message:JSON.stringify(e)}var BE="AI_InvalidArgumentError",UE=`vercel.ai.error.${BE}`,wq=Symbol.for(UE),sE,uE,zE=class extends(uE=xe,sE=wq,uE){constructor({message:e,cause:t,argument:a}){super({name:BE,message:e,cause:t}),this[sE]=!0,this.argument=a}static isInstance(e){return xe.hasMarker(e,UE)}},qE="AI_InvalidPromptError",FE=`vercel.ai.error.${qE}`,bq=Symbol.for(FE),cE,dE,JY=class extends(dE=xe,cE=bq,dE){constructor({prompt:e,message:t,cause:a}){super({name:qE,message:`Invalid prompt: ${t}`,cause:a}),this[cE]=!0,this.prompt=e}static isInstance(e){return xe.hasMarker(e,FE)}},HE="AI_InvalidResponseDataError",jE=`vercel.ai.error.${HE}`,Sq=Symbol.for(jE),fE,pE,eJ=class extends(pE=xe,fE=Sq,pE){constructor({data:e,message:t=`Invalid response data: ${JSON.stringify(e)}.`}){super({name:HE,message:t}),this[fE]=!0,this.data=e}static isInstance(e){return xe.hasMarker(e,jE)}},VE="AI_JSONParseError",GE=`vercel.ai.error.${VE}`,Cq=Symbol.for(GE),mE,hE,dx=class extends(hE=xe,mE=Cq,hE){constructor({text:e,cause:t}){super({name:VE,message:`JSON parsing failed: Text: ${e}.
|
|
124
124
|
Error message: ${NE(t)}`,cause:t}),this[mE]=!0,this.text=e}static isInstance(e){return xe.hasMarker(e,GE)}},WE="AI_LoadAPIKeyError",$E=`vercel.ai.error.${WE}`,Iq=Symbol.for($E),gE,yE,tJ=class extends(yE=xe,gE=Iq,yE){constructor({message:e}){super({name:WE,message:e}),this[gE]=!0}static isInstance(e){return xe.hasMarker(e,$E)}},XE="AI_LoadSettingError",ZE=`vercel.ai.error.${XE}`,kq=Symbol.for(ZE),xE,vE,aJ=class extends(vE=xe,xE=kq,vE){constructor({message:e}){super({name:XE,message:e}),this[xE]=!0}static isInstance(e){return xe.hasMarker(e,ZE)}},QE="AI_NoContentGeneratedError",KE=`vercel.ai.error.${QE}`,Lq=Symbol.for(KE),wE,bE,nJ=class extends(bE=xe,wE=Lq,bE){constructor({message:e="No content generated."}={}){super({name:QE,message:e}),this[wE]=!0}static isInstance(e){return xe.hasMarker(e,KE)}},YE="AI_NoSuchModelError",JE=`vercel.ai.error.${YE}`,Tq=Symbol.for(JE),SE,CE,rJ=class extends(CE=xe,SE=Tq,CE){constructor({errorName:e=YE,modelId:t,modelType:a,message:n=`No such ${a}: ${t}`}){super({name:e,message:n}),this[SE]=!0,this.modelId=t,this.modelType=a}static isInstance(e){return xe.hasMarker(e,JE)}},e2="AI_TooManyEmbeddingValuesForCallError",t2=`vercel.ai.error.${e2}`,Aq=Symbol.for(t2),IE,kE,oJ=class extends(kE=xe,IE=Aq,kE){constructor(e){super({name:e2,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[IE]=!0,this.provider=e.provider,this.modelId=e.modelId,this.maxEmbeddingsPerCall=e.maxEmbeddingsPerCall,this.values=e.values}static isInstance(e){return xe.hasMarker(e,t2)}},a2="AI_TypeValidationError",n2=`vercel.ai.error.${a2}`,Mq=Symbol.for(n2),LE,TE,gn=class cx extends(TE=xe,LE=Mq,TE){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:a2,message:`${r}: Value: ${JSON.stringify(t)}.
|