@waniwani/sdk 0.13.3 → 0.14.0

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.
@@ -135,7 +135,7 @@ Error message: ${YE(a)}`,cause:a}),this[HE]=!0,this.value=t,this.context=n}stati
135
135
  `)},flush(e){e.enqueue(`data: [DONE]
136
136
 
137
137
  `)}})}};var vx=uf(()=>Zs(m.union([m.strictObject({type:m.literal("text-start"),id:m.string(),providerMetadata:$.optional()}),m.strictObject({type:m.literal("text-delta"),id:m.string(),delta:m.string(),providerMetadata:$.optional()}),m.strictObject({type:m.literal("text-end"),id:m.string(),providerMetadata:$.optional()}),m.strictObject({type:m.literal("error"),errorText:m.string()}),m.strictObject({type:m.literal("tool-input-start"),toolCallId:m.string(),toolName:m.string(),providerExecuted:m.boolean().optional(),providerMetadata:$.optional(),dynamic:m.boolean().optional(),title:m.string().optional()}),m.strictObject({type:m.literal("tool-input-delta"),toolCallId:m.string(),inputTextDelta:m.string()}),m.strictObject({type:m.literal("tool-input-available"),toolCallId:m.string(),toolName:m.string(),input:m.unknown(),providerExecuted:m.boolean().optional(),providerMetadata:$.optional(),dynamic:m.boolean().optional(),title:m.string().optional()}),m.strictObject({type:m.literal("tool-input-error"),toolCallId:m.string(),toolName:m.string(),input:m.unknown(),providerExecuted:m.boolean().optional(),providerMetadata:$.optional(),dynamic:m.boolean().optional(),errorText:m.string(),title:m.string().optional()}),m.strictObject({type:m.literal("tool-approval-request"),approvalId:m.string(),toolCallId:m.string()}),m.strictObject({type:m.literal("tool-output-available"),toolCallId:m.string(),output:m.unknown(),providerExecuted:m.boolean().optional(),providerMetadata:$.optional(),dynamic:m.boolean().optional(),preliminary:m.boolean().optional()}),m.strictObject({type:m.literal("tool-output-error"),toolCallId:m.string(),errorText:m.string(),providerExecuted:m.boolean().optional(),providerMetadata:$.optional(),dynamic:m.boolean().optional()}),m.strictObject({type:m.literal("tool-output-denied"),toolCallId:m.string()}),m.strictObject({type:m.literal("reasoning-start"),id:m.string(),providerMetadata:$.optional()}),m.strictObject({type:m.literal("reasoning-delta"),id:m.string(),delta:m.string(),providerMetadata:$.optional()}),m.strictObject({type:m.literal("reasoning-end"),id:m.string(),providerMetadata:$.optional()}),m.strictObject({type:m.literal("source-url"),sourceId:m.string(),url:m.string(),title:m.string().optional(),providerMetadata:$.optional()}),m.strictObject({type:m.literal("source-document"),sourceId:m.string(),mediaType:m.string(),title:m.string(),filename:m.string().optional(),providerMetadata:$.optional()}),m.strictObject({type:m.literal("file"),url:m.string(),mediaType:m.string(),providerMetadata:$.optional()}),m.strictObject({type:m.custom(e=>typeof e=="string"&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:m.string().optional(),data:m.unknown(),transient:m.boolean().optional()}),m.strictObject({type:m.literal("start-step")}),m.strictObject({type:m.literal("finish-step")}),m.strictObject({type:m.literal("start"),messageId:m.string().optional(),messageMetadata:m.unknown().optional()}),m.strictObject({type:m.literal("finish"),finishReason:m.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:m.unknown().optional()}),m.strictObject({type:m.literal("abort"),reason:m.string().optional()}),m.strictObject({type:m.literal("message-metadata"),messageMetadata:m.unknown()})])));function V6(e){return e.type.startsWith("data-")}function wx(e){return e.type.startsWith("tool-")}function G6(e){return e.type==="dynamic-tool"}function pf(e){return wx(e)||G6(e)}function z2(e){return e.type.split("-").slice(1).join("-")}function W6({lastMessage:e,messageId:t}){return{message:e?.role==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function $6({stream:e,messageMetadataSchema:t,dataPartSchemas:a,runUpdateMessageJob:n,onError:r,onToolCall:o,onData:l}){return e.pipeThrough(new TransformStream({async transform(i,s){await n(async({state:u,write:c})=>{var d,f,p,g;function w(h){let A=u.message.parts.filter(pf).find(b=>b.toolCallId===h);if(A==null)throw new Ql({chunkType:"tool-invocation",chunkId:h,message:`No tool invocation found for tool call ID "${h}".`});return A}function v(h){var C;let A=u.message.parts.find(E=>wx(E)&&E.toolCallId===h.toolCallId),b=h,M=A;if(A!=null){A.state=h.state,M.input=b.input,M.output=b.output,M.errorText=b.errorText,M.rawInput=b.rawInput,M.preliminary=b.preliminary,h.title!==void 0&&(M.title=h.title),M.providerExecuted=(C=b.providerExecuted)!=null?C:A.providerExecuted;let E=b.providerMetadata;if(E!=null)if(h.state==="output-available"||h.state==="output-error"){let _=A;_.resultProviderMetadata=E}else A.callProviderMetadata=E}else u.message.parts.push({type:`tool-${h.toolName}`,toolCallId:h.toolCallId,state:h.state,title:h.title,input:b.input,output:b.output,rawInput:b.rawInput,errorText:b.errorText,providerExecuted:b.providerExecuted,preliminary:b.preliminary,...b.providerMetadata!=null&&(h.state==="output-available"||h.state==="output-error")?{resultProviderMetadata:b.providerMetadata}:{},...b.providerMetadata!=null&&!(h.state==="output-available"||h.state==="output-error")?{callProviderMetadata:b.providerMetadata}:{}})}function y(h){var C,A;let b=u.message.parts.find(_=>_.type==="dynamic-tool"&&_.toolCallId===h.toolCallId),M=h,E=b;if(b!=null){b.state=h.state,E.toolName=h.toolName,E.input=M.input,E.output=M.output,E.errorText=M.errorText,E.rawInput=(C=M.rawInput)!=null?C:E.rawInput,E.preliminary=M.preliminary,h.title!==void 0&&(E.title=h.title),E.providerExecuted=(A=M.providerExecuted)!=null?A:b.providerExecuted;let _=M.providerMetadata;if(_!=null)if(h.state==="output-available"||h.state==="output-error"){let k=b;k.resultProviderMetadata=_}else b.callProviderMetadata=_}else u.message.parts.push({type:"dynamic-tool",toolName:h.toolName,toolCallId:h.toolCallId,state:h.state,input:M.input,output:M.output,errorText:M.errorText,preliminary:M.preliminary,providerExecuted:M.providerExecuted,title:h.title,...M.providerMetadata!=null&&(h.state==="output-available"||h.state==="output-error")?{resultProviderMetadata:M.providerMetadata}:{},...M.providerMetadata!=null&&!(h.state==="output-available"||h.state==="output-error")?{callProviderMetadata:M.providerMetadata}:{}})}async function x(h){if(h!=null){let C=u.message.metadata!=null?Q2(u.message.metadata,h):h;t!=null&&await ff({value:C,schema:t,context:{field:"message.metadata",entityId:u.message.id}}),u.message.metadata=C}}switch(i.type){case"text-start":{let h={type:"text",text:"",providerMetadata:i.providerMetadata,state:"streaming"};u.activeTextParts[i.id]=h,u.message.parts.push(h),c();break}case"text-delta":{let h=u.activeTextParts[i.id];if(h==null)throw new Ql({chunkType:"text-delta",chunkId:i.id,message:`Received text-delta for missing text part with ID "${i.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});h.text+=i.delta,h.providerMetadata=(d=i.providerMetadata)!=null?d:h.providerMetadata,c();break}case"text-end":{let h=u.activeTextParts[i.id];if(h==null)throw new Ql({chunkType:"text-end",chunkId:i.id,message:`Received text-end for missing text part with ID "${i.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});h.state="done",h.providerMetadata=(f=i.providerMetadata)!=null?f:h.providerMetadata,delete u.activeTextParts[i.id],c();break}case"reasoning-start":{let h={type:"reasoning",text:"",providerMetadata:i.providerMetadata,state:"streaming"};u.activeReasoningParts[i.id]=h,u.message.parts.push(h),c();break}case"reasoning-delta":{let h=u.activeReasoningParts[i.id];if(h==null)throw new Ql({chunkType:"reasoning-delta",chunkId:i.id,message:`Received reasoning-delta for missing reasoning part with ID "${i.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});h.text+=i.delta,h.providerMetadata=(p=i.providerMetadata)!=null?p:h.providerMetadata,c();break}case"reasoning-end":{let h=u.activeReasoningParts[i.id];if(h==null)throw new Ql({chunkType:"reasoning-end",chunkId:i.id,message:`Received reasoning-end for missing reasoning part with ID "${i.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});h.providerMetadata=(g=i.providerMetadata)!=null?g:h.providerMetadata,h.state="done",delete u.activeReasoningParts[i.id],c();break}case"file":{u.message.parts.push({type:"file",mediaType:i.mediaType,url:i.url,...i.providerMetadata!=null?{providerMetadata:i.providerMetadata}:{}}),c();break}case"source-url":{u.message.parts.push({type:"source-url",sourceId:i.sourceId,url:i.url,title:i.title,providerMetadata:i.providerMetadata}),c();break}case"source-document":{u.message.parts.push({type:"source-document",sourceId:i.sourceId,mediaType:i.mediaType,title:i.title,filename:i.filename,providerMetadata:i.providerMetadata}),c();break}case"tool-input-start":{let h=u.message.parts.filter(wx);u.partialToolCalls[i.toolCallId]={text:"",toolName:i.toolName,index:h.length,dynamic:i.dynamic,title:i.title},i.dynamic?y({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-streaming",input:void 0,providerExecuted:i.providerExecuted,title:i.title,providerMetadata:i.providerMetadata}):v({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-streaming",input:void 0,providerExecuted:i.providerExecuted,title:i.title,providerMetadata:i.providerMetadata}),c();break}case"tool-input-delta":{let h=u.partialToolCalls[i.toolCallId];if(h==null)throw new Ql({chunkType:"tool-input-delta",chunkId:i.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${i.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});h.text+=i.inputTextDelta;let{value:C}=await Ks(h.text);h.dynamic?y({toolCallId:i.toolCallId,toolName:h.toolName,state:"input-streaming",input:C,title:h.title}):v({toolCallId:i.toolCallId,toolName:h.toolName,state:"input-streaming",input:C,title:h.title}),c();break}case"tool-input-available":{i.dynamic?y({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-available",input:i.input,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:i.title}):v({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-available",input:i.input,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:i.title}),c(),o&&!i.providerExecuted&&await o({toolCall:i});break}case"tool-input-error":{let h=u.message.parts.filter(pf).find(A=>A.toolCallId===i.toolCallId);(h!=null?h.type==="dynamic-tool":!!i.dynamic)?y({toolCallId:i.toolCallId,toolName:i.toolName,state:"output-error",input:i.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata}):v({toolCallId:i.toolCallId,toolName:i.toolName,state:"output-error",input:void 0,rawInput:i.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata}),c();break}case"tool-approval-request":{let h=w(i.toolCallId);h.state="approval-requested",h.approval={id:i.approvalId},c();break}case"tool-output-denied":{let h=w(i.toolCallId);h.state="output-denied",c();break}case"tool-output-available":{let h=w(i.toolCallId);h.type==="dynamic-tool"?y({toolCallId:i.toolCallId,toolName:h.toolName,state:"output-available",input:h.input,output:i.output,preliminary:i.preliminary,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:h.title}):v({toolCallId:i.toolCallId,toolName:z2(h),state:"output-available",input:h.input,output:i.output,providerExecuted:i.providerExecuted,preliminary:i.preliminary,providerMetadata:i.providerMetadata,title:h.title}),c();break}case"tool-output-error":{let h=w(i.toolCallId);h.type==="dynamic-tool"?y({toolCallId:i.toolCallId,toolName:h.toolName,state:"output-error",input:h.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:h.title}):v({toolCallId:i.toolCallId,toolName:z2(h),state:"output-error",input:h.input,rawInput:h.rawInput,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:h.title}),c();break}case"start-step":{u.message.parts.push({type:"step-start"});break}case"finish-step":{u.activeTextParts={},u.activeReasoningParts={};break}case"start":{i.messageId!=null&&(u.message.id=i.messageId),await x(i.messageMetadata),(i.messageId!=null||i.messageMetadata!=null)&&c();break}case"finish":{i.finishReason!=null&&(u.finishReason=i.finishReason),await x(i.messageMetadata),i.messageMetadata!=null&&c();break}case"message-metadata":{await x(i.messageMetadata),i.messageMetadata!=null&&c();break}case"error":{r?.(new Error(i.errorText));break}default:if(V6(i)){if(a?.[i.type]!=null){let A=u.message.parts.findIndex(M=>"id"in M&&"data"in M&&M.id===i.id&&M.type===i.type),b=A>=0?A:u.message.parts.length;await ff({value:i.data,schema:a[i.type],context:{field:`message.parts[${b}].data`,entityName:i.type,entityId:i.id}})}let h=i;if(h.transient){l?.(h);break}let C=h.id!=null?u.message.parts.find(A=>h.type===A.type&&h.id===A.id):void 0;C!=null?C.data=h.data:u.message.parts.push(h),l?.(h),c()}}s.enqueue(i)})}}))}async function X6({stream:e,onError:t}){let a=e.getReader();try{for(;;){let{done:n}=await a.read();if(n)break}}catch(n){t?.(n)}finally{a.releaseLock()}}var Hte=Kn({prefix:"aitxt",size:24});var Gte=uf(()=>Zs(m.array(m.object({id:m.string(),role:m.enum(["system","user","assistant"]),metadata:m.unknown().optional(),parts:m.array(m.union([m.object({type:m.literal("text"),text:m.string(),state:m.enum(["streaming","done"]).optional(),providerMetadata:$.optional()}),m.object({type:m.literal("reasoning"),text:m.string(),state:m.enum(["streaming","done"]).optional(),providerMetadata:$.optional()}),m.object({type:m.literal("source-url"),sourceId:m.string(),url:m.string(),title:m.string().optional(),providerMetadata:$.optional()}),m.object({type:m.literal("source-document"),sourceId:m.string(),mediaType:m.string(),title:m.string(),filename:m.string().optional(),providerMetadata:$.optional()}),m.object({type:m.literal("file"),mediaType:m.string(),filename:m.string().optional(),url:m.string(),providerMetadata:$.optional()}),m.object({type:m.literal("step-start")}),m.object({type:m.string().startsWith("data-"),id:m.string().optional(),data:m.unknown()}),m.object({type:m.literal("dynamic-tool"),toolName:m.string(),toolCallId:m.string(),state:m.literal("input-streaming"),input:m.unknown().optional(),providerExecuted:m.boolean().optional(),callProviderMetadata:$.optional(),output:m.never().optional(),errorText:m.never().optional(),approval:m.never().optional()}),m.object({type:m.literal("dynamic-tool"),toolName:m.string(),toolCallId:m.string(),state:m.literal("input-available"),input:m.unknown(),providerExecuted:m.boolean().optional(),output:m.never().optional(),errorText:m.never().optional(),callProviderMetadata:$.optional(),approval:m.never().optional()}),m.object({type:m.literal("dynamic-tool"),toolName:m.string(),toolCallId:m.string(),state:m.literal("approval-requested"),input:m.unknown(),providerExecuted:m.boolean().optional(),output:m.never().optional(),errorText:m.never().optional(),callProviderMetadata:$.optional(),approval:m.object({id:m.string(),approved:m.never().optional(),reason:m.never().optional()})}),m.object({type:m.literal("dynamic-tool"),toolName:m.string(),toolCallId:m.string(),state:m.literal("approval-responded"),input:m.unknown(),providerExecuted:m.boolean().optional(),output:m.never().optional(),errorText:m.never().optional(),callProviderMetadata:$.optional(),approval:m.object({id:m.string(),approved:m.boolean(),reason:m.string().optional()})}),m.object({type:m.literal("dynamic-tool"),toolName:m.string(),toolCallId:m.string(),state:m.literal("output-available"),input:m.unknown(),providerExecuted:m.boolean().optional(),output:m.unknown(),errorText:m.never().optional(),callProviderMetadata:$.optional(),resultProviderMetadata:$.optional(),preliminary:m.boolean().optional(),approval:m.object({id:m.string(),approved:m.literal(!0),reason:m.string().optional()}).optional()}),m.object({type:m.literal("dynamic-tool"),toolName:m.string(),toolCallId:m.string(),state:m.literal("output-error"),input:m.unknown(),rawInput:m.unknown().optional(),providerExecuted:m.boolean().optional(),output:m.never().optional(),errorText:m.string(),callProviderMetadata:$.optional(),resultProviderMetadata:$.optional(),approval:m.object({id:m.string(),approved:m.literal(!0),reason:m.string().optional()}).optional()}),m.object({type:m.literal("dynamic-tool"),toolName:m.string(),toolCallId:m.string(),state:m.literal("output-denied"),input:m.unknown(),providerExecuted:m.boolean().optional(),output:m.never().optional(),errorText:m.never().optional(),callProviderMetadata:$.optional(),approval:m.object({id:m.string(),approved:m.literal(!1),reason:m.string().optional()})}),m.object({type:m.string().startsWith("tool-"),toolCallId:m.string(),state:m.literal("input-streaming"),providerExecuted:m.boolean().optional(),callProviderMetadata:$.optional(),input:m.unknown().optional(),output:m.never().optional(),errorText:m.never().optional(),approval:m.never().optional()}),m.object({type:m.string().startsWith("tool-"),toolCallId:m.string(),state:m.literal("input-available"),providerExecuted:m.boolean().optional(),input:m.unknown(),output:m.never().optional(),errorText:m.never().optional(),callProviderMetadata:$.optional(),approval:m.never().optional()}),m.object({type:m.string().startsWith("tool-"),toolCallId:m.string(),state:m.literal("approval-requested"),input:m.unknown(),providerExecuted:m.boolean().optional(),output:m.never().optional(),errorText:m.never().optional(),callProviderMetadata:$.optional(),approval:m.object({id:m.string(),approved:m.never().optional(),reason:m.never().optional()})}),m.object({type:m.string().startsWith("tool-"),toolCallId:m.string(),state:m.literal("approval-responded"),input:m.unknown(),providerExecuted:m.boolean().optional(),output:m.never().optional(),errorText:m.never().optional(),callProviderMetadata:$.optional(),approval:m.object({id:m.string(),approved:m.boolean(),reason:m.string().optional()})}),m.object({type:m.string().startsWith("tool-"),toolCallId:m.string(),state:m.literal("output-available"),providerExecuted:m.boolean().optional(),input:m.unknown(),output:m.unknown(),errorText:m.never().optional(),callProviderMetadata:$.optional(),resultProviderMetadata:$.optional(),preliminary:m.boolean().optional(),approval:m.object({id:m.string(),approved:m.literal(!0),reason:m.string().optional()}).optional()}),m.object({type:m.string().startsWith("tool-"),toolCallId:m.string(),state:m.literal("output-error"),providerExecuted:m.boolean().optional(),input:m.unknown(),rawInput:m.unknown().optional(),output:m.never().optional(),errorText:m.string(),callProviderMetadata:$.optional(),resultProviderMetadata:$.optional(),approval:m.object({id:m.string(),approved:m.literal(!0),reason:m.string().optional()}).optional()}),m.object({type:m.string().startsWith("tool-"),toolCallId:m.string(),state:m.literal("output-denied"),providerExecuted:m.boolean().optional(),input:m.unknown(),output:m.never().optional(),errorText:m.never().optional(),callProviderMetadata:$.optional(),approval:m.object({id:m.string(),approved:m.literal(!1),reason:m.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty")));var $te=Kn({prefix:"aiobj",size:24});function K2(e){return({url:t,abortSignal:a})=>k6({url:t,maxBytes:e?.maxBytes,abortSignal:a})}var Z6=class{constructor(){this.queue=[],this.isProcessing=!1}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;)await this.queue[0](),this.queue.shift();this.isProcessing=!1}}async run(e){return new Promise((t,a)=>{this.queue.push(async()=>{try{await e(),t()}catch(n){a(n)}}),this.processQueue()})}};var Zte=Kn({prefix:"aiobj",size:24});var Qte=K2();var Q6="AI_NoSuchProviderError",K6=`vercel.ai.error.${Q6}`,Y6=Symbol.for(K6),J6;J6=Y6;var Kte=K2();async function eH(e){if(e==null)return[];if(!globalThis.FileList||!(e instanceof globalThis.FileList))throw new Error("FileList is not supported in the current environment");return Promise.all(Array.from(e).map(async t=>{let{name:a,type:n}=t,r=await new Promise((o,l)=>{let i=new FileReader;i.onload=s=>{var u;o((u=s.target)==null?void 0:u.result)},i.onerror=s=>l(s),i.readAsDataURL(t)});return{type:"file",mediaType:n,filename:a,url:r}}))}var tH=class{constructor({api:e="/api/chat",credentials:t,headers:a,body:n,fetch:r,prepareSendMessagesRequest:o,prepareReconnectToStreamRequest:l}){this.api=e,this.credentials=t,this.headers=a,this.body=n,this.fetch=r,this.prepareSendMessagesRequest=o,this.prepareReconnectToStreamRequest=l}async sendMessages({abortSignal:e,...t}){var a,n,r,o,l;let i=await xn(this.body),s=await xn(this.headers),u=await xn(this.credentials),c={...Hr(s),...Hr(t.headers)},d=await((a=this.prepareSendMessagesRequest)==null?void 0:a.call(this,{api:this.api,id:t.chatId,messages:t.messages,body:{...i,...t.body},headers:c,credentials:u,requestMetadata:t.metadata,trigger:t.trigger,messageId:t.messageId})),f=(n=d?.api)!=null?n:this.api,p=d?.headers!==void 0?Hr(d.headers):c,g=d?.body!==void 0?d.body:{...i,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},w=(r=d?.credentials)!=null?r:u,y=await((o=this.fetch)!=null?o:globalThis.fetch)(f,{method:"POST",headers:{"Content-Type":"application/json",...p},body:JSON.stringify(g),credentials:w,signal:e});if(!y.ok)throw new Error((l=await y.text())!=null?l:"Failed to fetch the chat response.");if(!y.body)throw new Error("The response body is empty.");return this.processResponseStream(y.body)}async reconnectToStream(e){var t,a,n,r,o;let l=await xn(this.body),i=await xn(this.headers),s=await xn(this.credentials),u={...Hr(i),...Hr(e.headers)},c=await((t=this.prepareReconnectToStreamRequest)==null?void 0:t.call(this,{api:this.api,id:e.chatId,body:{...l,...e.body},headers:u,credentials:s,requestMetadata:e.metadata})),d=(a=c?.api)!=null?a:`${this.api}/${e.chatId}/stream`,f=c?.headers!==void 0?Hr(c.headers):u,p=(n=c?.credentials)!=null?n:s,w=await((r=this.fetch)!=null?r:globalThis.fetch)(d,{method:"GET",headers:f,credentials:p});if(w.status===204)return null;if(!w.ok)throw new Error((o=await w.text())!=null?o:"Failed to fetch the chat response.");if(!w.body)throw new Error("The response body is empty.");return this.processResponseStream(w.body)}},bx=class extends tH{constructor(e={}){super(e)}processResponseStream(e){return U2({stream:e,schema:vx}).pipeThrough(new TransformStream({async transform(t,a){if(!t.success)throw t.error;a.enqueue(t.value)}}))}},Y2=class{constructor({generateId:e=D2,id:t=e(),transport:a=new bx,messageMetadataSchema:n,dataPartSchemas:r,state:o,onError:l,onToolCall:i,onFinish:s,onData:u,sendAutomaticallyWhen:c}){this.activeResponse=void 0,this.jobExecutor=new Z6,this.sendMessage=async(d,f)=>{var p,g,w,v;if(d==null){await this.makeRequest({trigger:"submit-message",messageId:(p=this.lastMessage)==null?void 0:p.id,...f});return}let y;if("text"in d||"files"in d?y={parts:[...Array.isArray(d.files)?d.files:await eH(d.files),..."text"in d&&d.text!=null?[{type:"text",text:d.text}]:[]]}:y=d,d.messageId!=null){let x=this.state.messages.findIndex(h=>h.id===d.messageId);if(x===-1)throw new Error(`message with id ${d.messageId} not found`);if(this.state.messages[x].role!=="user")throw new Error(`message with id ${d.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,x+1),this.state.replaceMessage(x,{...y,id:d.messageId,role:(g=y.role)!=null?g:"user",metadata:d.metadata})}else this.state.pushMessage({...y,id:(w=y.id)!=null?w:this.generateId(),role:(v=y.role)!=null?v:"user",metadata:d.metadata});await this.makeRequest({trigger:"submit-message",messageId:d.messageId,...f})},this.regenerate=async({messageId:d,...f}={})=>{let p=d==null?this.state.messages.length-1:this.state.messages.findIndex(g=>g.id===d);if(p===-1)throw new Error(`message ${d} not found`);this.state.messages=this.state.messages.slice(0,this.messages[p].role==="assistant"?p:p+1),await this.makeRequest({trigger:"regenerate-message",messageId:d,...f})},this.resumeStream=async(d={})=>{await this.makeRequest({trigger:"resume-stream",...d})},this.clearError=()=>{this.status==="error"&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolApprovalResponse=async({id:d,approved:f,reason:p,options:g})=>this.jobExecutor.run(async()=>{let w=this.state.messages,v=w[w.length-1],y=x=>pf(x)&&x.state==="approval-requested"&&x.approval.id===d?{...x,state:"approval-responded",approval:{id:d,approved:f,reason:p}}:x;this.state.replaceMessage(w.length-1,{...v,parts:v.parts.map(y)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(y)),this.status!=="streaming"&&this.status!=="submitted"&&this.sendAutomaticallyWhen&&this.shouldSendAutomatically().then(x=>{var h;x&&this.makeRequest({trigger:"submit-message",messageId:(h=this.lastMessage)==null?void 0:h.id,...g})})}),this.addToolOutput=async({state:d="output-available",toolCallId:f,output:p,errorText:g,options:w})=>this.jobExecutor.run(async()=>{let v=this.state.messages,y=v[v.length-1],x=h=>pf(h)&&h.toolCallId===f?{...h,state:d,output:p,errorText:g}:h;this.state.replaceMessage(v.length-1,{...y,parts:y.parts.map(x)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(x)),this.status!=="streaming"&&this.status!=="submitted"&&this.sendAutomaticallyWhen&&this.shouldSendAutomatically().then(h=>{var C;h&&this.makeRequest({trigger:"submit-message",messageId:(C=this.lastMessage)==null?void 0:C.id,...w})})}),this.addToolResult=this.addToolOutput,this.stop=async()=>{var d;this.status!=="streaming"&&this.status!=="submitted"||(d=this.activeResponse)!=null&&d.abortController&&this.activeResponse.abortController.abort()},this.id=t,this.transport=a,this.generateId=e,this.messageMetadataSchema=n,this.dataPartSchemas=r,this.state=o,this.onError=l,this.onToolCall=i,this.onFinish=s,this.onData=u,this.sendAutomaticallyWhen=c}get status(){return this.state.status}setStatus({status:e,error:t}){this.status!==e&&(this.state.status=e,this.state.error=t)}get error(){return this.state.error}get messages(){return this.state.messages}get lastMessage(){return this.state.messages[this.state.messages.length-1]}set messages(e){this.state.messages=e}async shouldSendAutomatically(){if(!this.sendAutomaticallyWhen)return!1;let e=this.sendAutomaticallyWhen({messages:this.state.messages});return e&&typeof e=="object"&&"then"in e?await e:e}async makeRequest({trigger:e,metadata:t,headers:a,body:n,messageId:r}){var o,l,i;let s;if(e==="resume-stream")try{let p=await this.transport.reconnectToStream({chatId:this.id,metadata:t,headers:a,body:n});if(p==null)return;s=p}catch(p){this.onError&&p instanceof Error&&this.onError(p),this.setStatus({status:"error",error:p});return}this.setStatus({status:"submitted",error:void 0});let u=this.lastMessage,c=!1,d=!1,f=!1;try{let p={state:W6({lastMessage:this.state.snapshot(u),messageId:this.generateId()}),abortController:new AbortController};p.abortController.signal.addEventListener("abort",()=>{c=!0}),this.activeResponse=p;let g;e==="resume-stream"?g=s:g=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:p.abortController.signal,metadata:t,headers:a,body:n,trigger:e,messageId:r});let w=v=>this.jobExecutor.run(()=>v({state:p.state,write:()=>{var y;this.setStatus({status:"streaming"}),p.state.message.id===((y=this.lastMessage)==null?void 0:y.id)?this.state.replaceMessage(this.state.messages.length-1,p.state.message):this.state.pushMessage(p.state.message)}}));await X6({stream:$6({stream:g,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:w,onError:v=>{throw v}}),onError:v=>{throw v}}),this.setStatus({status:"ready"})}catch(p){if(c||p.name==="AbortError")return c=!0,this.setStatus({status:"ready"}),null;f=!0,p instanceof TypeError&&(p.message.toLowerCase().includes("fetch")||p.message.toLowerCase().includes("network"))&&(d=!0),this.onError&&p instanceof Error&&this.onError(p),this.setStatus({status:"error",error:p})}finally{try{(l=this.onFinish)==null||l.call(this,{message:this.activeResponse.state.message,messages:this.state.messages,isAbort:c,isDisconnect:d,isError:f,finishReason:(o=this.activeResponse)==null?void 0:o.state.finishReason})}catch(p){console.error(p)}this.activeResponse=void 0}!f&&await this.shouldSendAutomatically()&&await this.makeRequest({trigger:"submit-message",messageId:(i=this.lastMessage)==null?void 0:i.id,metadata:t,headers:a,body:n})}};var nR=F(eR(),1);var tu=F(Pe(),1);var gf=F(Pe(),1);var aR=(e,t,a)=>{if(!t.has(e))throw TypeError("Cannot "+a)},rt=(e,t,a)=>(aR(e,t,"read from private field"),a?a.call(e):t.get(e)),wn=(e,t,a)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,a)},Vr=(e,t,a,n)=>(aR(e,t,"write to private field"),n?n.call(e,a):t.set(e,a),a);function nH(e,t){return t!=null?(0,nR.default)(e,t):e}var Ga,mf,hf,Ys,Js,eu,Kl,Sx,Cx,rH=class{constructor(e=[]){wn(this,Ga,void 0),wn(this,mf,"ready"),wn(this,hf,void 0),wn(this,Ys,new Set),wn(this,Js,new Set),wn(this,eu,new Set),this.pushMessage=t=>{Vr(this,Ga,rt(this,Ga).concat(t)),rt(this,Kl).call(this)},this.popMessage=()=>{Vr(this,Ga,rt(this,Ga).slice(0,-1)),rt(this,Kl).call(this)},this.replaceMessage=(t,a)=>{Vr(this,Ga,[...rt(this,Ga).slice(0,t),this.snapshot(a),...rt(this,Ga).slice(t+1)]),rt(this,Kl).call(this)},this.snapshot=t=>structuredClone(t),this["~registerMessagesCallback"]=(t,a)=>{let n=a?nH(t,a):t;return rt(this,Ys).add(n),()=>{rt(this,Ys).delete(n)}},this["~registerStatusCallback"]=t=>(rt(this,Js).add(t),()=>{rt(this,Js).delete(t)}),this["~registerErrorCallback"]=t=>(rt(this,eu).add(t),()=>{rt(this,eu).delete(t)}),wn(this,Kl,()=>{rt(this,Ys).forEach(t=>t())}),wn(this,Sx,()=>{rt(this,Js).forEach(t=>t())}),wn(this,Cx,()=>{rt(this,eu).forEach(t=>t())}),Vr(this,Ga,e)}get status(){return rt(this,mf)}set status(e){Vr(this,mf,e),rt(this,Sx).call(this)}get error(){return rt(this,hf)}set error(e){Vr(this,hf,e),rt(this,Cx).call(this)}get messages(){return rt(this,Ga)}set messages(e){Vr(this,Ga,[...e]),rt(this,Kl).call(this)}};Ga=new WeakMap;mf=new WeakMap;hf=new WeakMap;Ys=new WeakMap;Js=new WeakMap;eu=new WeakMap;Kl=new WeakMap;Sx=new WeakMap;Cx=new WeakMap;var Yl,tR=class extends Y2{constructor({messages:e,...t}){let a=new rH(e);super({...t,state:a}),wn(this,Yl,void 0),this["~registerMessagesCallback"]=(n,r)=>rt(this,Yl)["~registerMessagesCallback"](n,r),this["~registerStatusCallback"]=n=>rt(this,Yl)["~registerStatusCallback"](n),this["~registerErrorCallback"]=n=>rt(this,Yl)["~registerErrorCallback"](n),Vr(this,Yl,a)}};Yl=new WeakMap;function rR({experimental_throttle:e,resume:t=!1,...a}={}){let n=(0,Wa.useRef)("chat"in a?{}:{onToolCall:a.onToolCall,onData:a.onData,onFinish:a.onFinish,onError:a.onError,sendAutomaticallyWhen:a.sendAutomaticallyWhen});"chat"in a||(n.current={onToolCall:a.onToolCall,onData:a.onData,onFinish:a.onFinish,onError:a.onError,sendAutomaticallyWhen:a.sendAutomaticallyWhen});let r={...a,onToolCall:f=>{var p,g;return(g=(p=n.current).onToolCall)==null?void 0:g.call(p,f)},onData:f=>{var p,g;return(g=(p=n.current).onData)==null?void 0:g.call(p,f)},onFinish:f=>{var p,g;return(g=(p=n.current).onFinish)==null?void 0:g.call(p,f)},onError:f=>{var p,g;return(g=(p=n.current).onError)==null?void 0:g.call(p,f)},sendAutomaticallyWhen:f=>{var p,g,w;return(w=(g=(p=n.current).sendAutomaticallyWhen)==null?void 0:g.call(p,f))!=null?w:!1}},o=(0,Wa.useRef)("chat"in a?a.chat:new tR(r));("chat"in a&&a.chat!==o.current||"id"in a&&o.current.id!==a.id)&&(o.current="chat"in a?a.chat:new tR(r));let i=(0,Wa.useCallback)(f=>o.current["~registerMessagesCallback"](f,e),[e,o.current.id]),s=(0,Wa.useSyncExternalStore)(i,()=>o.current.messages,()=>o.current.messages),u=(0,Wa.useSyncExternalStore)(o.current["~registerStatusCallback"],()=>o.current.status,()=>o.current.status),c=(0,Wa.useSyncExternalStore)(o.current["~registerErrorCallback"],()=>o.current.error,()=>o.current.error),d=(0,Wa.useCallback)(f=>{typeof f=="function"&&(f=f(o.current.messages)),o.current.messages=f},[o]);return(0,Wa.useEffect)(()=>{t&&o.current.resumeStream()},[t,o]),{id:o.current.id,messages:s,setMessages:d,sendMessage:o.current.sendMessage,regenerate:o.current.regenerate,clearError:o.current.clearError,stop:o.current.stop,error:c,resumeStream:o.current.resumeStream,status:u,addToolResult:o.current.addToolOutput,addToolOutput:o.current.addToolOutput,addToolApprovalResponse:o.current.addToolApprovalResponse}}var X=F(Pe(),1);function oH(e){let t=e?.cause,a=t?.issues??t?.errors;if(!Array.isArray(a))return null;let n=a.find(r=>r.code==="invalid_union");if(!n?.errors)return null;for(let r of n.errors){if(!Array.isArray(r)||r.some(i=>(i.code==="invalid_value"||i.code==="invalid_literal")&&i.path?.[0]==="type"))continue;let l=r.filter(i=>i.code==="unrecognized_keys").flatMap(i=>i.keys??[]);if(l.length>0)return l}return null}var yf=class extends bx{processResponseStream(t){let a="",n=vx(),r=n.validate?.bind(n);return t.pipeThrough(new TextDecoderStream).pipeThrough(new TransformStream({async transform(o,l){a+=o;let i=a.split(`
138
- `);a=i.pop()??"";for(let s of i){let u=s.trim();if(!u.startsWith("data:"))continue;let c=u.slice(5).trim();if(c!=="[DONE]")try{let d=JSON.parse(c);if(!r){l.enqueue(d);continue}let f=await r(d);if(f.success){l.enqueue(f.value);continue}let p=oH(f.error);if(p?.length){let g={...d};for(let v of p)delete g[v];let w=await r(g);w.success&&l.enqueue(w.value)}}catch{}}}}))}};var lH="waniwani-memory";var Aa="threads",xf="by_memoryUserId",iH="by_updatedAt";var lR="memoryUserId",oR="waniwani-memory-user-id",Ix=null;function Lx(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function sH(e,t){if(t<1&&(e.objectStoreNames.contains("ids")||e.createObjectStore("ids")),t<2&&!e.objectStoreNames.contains(Aa)){let a=e.createObjectStore(Aa,{keyPath:"threadId"});a.createIndex(xf,"memoryUserId",{unique:!1}),a.createIndex(iH,"updatedAt",{unique:!1})}}async function kx(){return new Promise((e,t)=>{let a=indexedDB.open(lH,2);a.onupgradeneeded=n=>{sH(a.result,n.oldVersion)},a.onsuccess=()=>e(a.result),a.onerror=()=>t(a.error)})}async function uH(){return kx()}async function cH(e){return new Promise((t,a)=>{let o=e.transaction("ids","readonly").objectStore("ids").get(lR);o.onsuccess=()=>t(typeof o.result=="string"?o.result:null),o.onerror=()=>a(o.error)})}async function dH(e,t){return new Promise((a,n)=>{let l=e.transaction("ids","readwrite").objectStore("ids").put(t,lR);l.onsuccess=()=>a(),l.onerror=()=>n(l.error)})}async function fH(){if(typeof indexedDB>"u")return null;try{let e=await uH();try{let t=await cH(e);if(t)return t;let a=Lx();return await dH(e,a),a}finally{e.close()}}catch{return null}}function pH(){try{let e=localStorage.getItem(oR);if(e)return e;let t=Lx();return localStorage.setItem(oR,t),t}catch{return null}}async function iR(){let e=await fH();if(e)return e;let t=pH();return t||(Ix||(Ix=Lx()),Ix)}var sR=50,uR=1e3;function wf(e){if(!e||typeof e!="object")return!1;let t=e;return typeof t.threadId=="string"&&typeof t.memoryUserId=="string"&&typeof t.title=="string"&&Array.isArray(t.messages)&&typeof t.createdAt=="string"&&typeof t.updatedAt=="string"}async function vf(e){if(typeof indexedDB>"u")return null;let t=null;try{return t=await kx(),await e(t)}catch{return null}finally{try{t?.close()}catch{}}}function Tx(e){return new Promise((t,a)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>a(e.error)})}async function Mx(e){return await vf(async a=>{let o=a.transaction(Aa,"readonly").objectStore(Aa).index(xf),i=(await Tx(o.getAll(e))??[]).filter(wf);return i.sort((s,u)=>s.updatedAt<u.updatedAt?1:-1),i})??[]}async function bf(e){return await vf(async a=>{let r=a.transaction(Aa,"readonly").objectStore(Aa),o=await Tx(r.get(e));return wf(o)?o:null})??null}async function Ax(e){if(!wf(e))return;let t=e.messages.length>uR?{...e,messages:e.messages.slice(e.messages.length-uR)}:e;await vf(async a=>{await new Promise((s,u)=>{let c=a.transaction(Aa,"readwrite");c.oncomplete=()=>s(),c.onerror=()=>u(c.error),c.onabort=()=>u(c.error),c.objectStore(Aa).put(t)});let n=a.transaction(Aa,"readwrite"),r=n.objectStore(Aa),o=r.index(xf),i=(await Tx(o.getAll(t.memoryUserId))??[]).filter(wf);if(i.length>sR){i.sort((u,c)=>u.updatedAt<c.updatedAt?-1:1);let s=i.slice(0,i.length-sR);for(let u of s)r.delete(u.threadId)}return await new Promise((s,u)=>{n.oncomplete=()=>s(),n.onerror=()=>u(n.error),n.onabort=()=>u(n.error)}),null})}async function cR(e){await vf(async t=>(await new Promise((a,n)=>{let r=t.transaction(Aa,"readwrite");r.oncomplete=()=>a(),r.onerror=()=>n(r.error),r.onabort=()=>n(r.error),r.objectStore(Aa).delete(e)}),null))}async function Ex(e){return(await Mx(e))[0]?.threadId??null}function dR(e){let t=e.trim();if(!t)return`Conversation on ${new Date().toISOString().slice(0,10)}`;let a=t.split(/\r?\n/,1)[0]??t;return a.length<=60?a:`${a.slice(0,60).trimEnd()}\u2026`}var fR="waniwani-visitor-id";function pR(e,t){return e.match(t)?.[1]??null}function mH(e){let t=[["Edge",/Edg(?:e|A|iOS)?\/(\S+)/],["Opera",/(?:OPR|Opera)\/(\S+)/],["Samsung Internet",/SamsungBrowser\/(\S+)/],["Firefox",/Firefox\/(\S+)/],["Chrome",/Chrome\/(\S+)/],["Safari",/Version\/(\S+).*Safari/]];for(let[a,n]of t){let r=pR(e,n);if(r)return{name:a,version:r}}return null}function hH(e){let t=[["iOS",/(?:iPhone|iPad|iPod).+?OS (\d+[_.\d]*)/],["Android",/Android (\d+[.\d]*)/],["macOS",/Mac OS X (\d+[_.\d]*)/],["Windows",/Windows NT (\d+[.\d]*)/],["ChromeOS",/CrOS \S+ (\d+[.\d]*)/],["Linux",/Linux/]];for(let[a,n]of t){let r=pR(e,n);if(r)return{name:a,version:r.replace(/_/g,".")};if(a==="Linux"&&n.test(e))return{name:a,version:""}}return null}function gH(e){return typeof navigator<"u"&&"userAgentData"in navigator&&navigator.userAgentData?.mobile?"mobile":/iPad|tablet|PlayBook/i.test(e)?"tablet":/Mobi|Android.*Mobile|iPhone|iPod/i.test(e)?"mobile":"desktop"}async function yH(e){let t=new TextEncoder().encode(e),a=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(a)).map(n=>n.toString(16).padStart(2,"0")).join("")}async function xH(){try{let a=localStorage.getItem(fR);if(a)return a}catch{}let e=[navigator.userAgent,screen.width,screen.height,screen.colorDepth,Intl.DateTimeFormat().resolvedOptions().timeZone,navigator.language,navigator.hardwareConcurrency??"",navigator.platform??""].join("|"),t=await yH(e);try{localStorage.setItem(fR,t)}catch{}return t}async function Rx(){let e=navigator.userAgent,[t,a]=await Promise.all([xH(),iR()]);return{userAgent:e,browser:mH(e),os:hH(e),deviceType:gH(e),language:navigator.language,languages:[...navigator.languages],timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,screenWidth:screen.width,screenHeight:screen.height,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,colorDepth:screen.colorDepth,devicePixelRatio:window.devicePixelRatio??1,touchSupport:"ontouchstart"in window||navigator.maxTouchPoints>0,connectionType:navigator.connection?.effectiveType??"unknown",referrer:document.referrer,visitorId:t,memoryUserId:a}}var wH="x-session-id",vH=250;function mR(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():hs()}function Sf(){return new Date().toISOString()}function hR(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}async function bH(e,t){let a=`${e.replace(/\/$/,"")}/tools`,n=await fetch(a,{method:"GET",headers:t?{...t}:void 0});if(!n.ok)throw new Error(`[WaniWani] Failed to fetch /tools: ${n.status} ${n.statusText}`);let r=await n.json();if(!r||!Array.isArray(r.tools))return{};let o={};for(let l of r.tools)l&&typeof l.name=="string"&&(o[l.name]=l);return o}function gR(e){let{api:t="/api/waniwani",headers:a,body:n,onMessageSent:r,onResponseReceived:o,enableThreadHistory:l=!1,activeThreadId:i,onThreadChange:s}=e,u=(0,X.useRef)(a),c=(0,X.useRef)(n),d=(0,X.useRef)(l);(0,X.useEffect)(()=>{d.current=l},[l]);let f=(0,X.useRef)(void 0),p=(0,X.useRef)(null),[g,w]=(0,X.useState)(void 0),v=(0,X.useRef)(g),[y,x]=(0,X.useState)(i),h=(0,X.useRef)(y),[C,A]=(0,X.useState)([]),[b,M]=(0,X.useState)(!l),E=(0,X.useRef)(void 0),_=(0,X.useRef)(void 0),k=(0,X.useRef)(void 0),U=(0,X.useRef)(void 0),P=(0,X.useRef)(0),R=(0,X.useRef)(s);(0,X.useEffect)(()=>{R.current=s},[s]);let V=(0,X.useCallback)(B=>{h.current=B,x(B),B&&R.current?.(B)},[]),G=(0,X.useCallback)(async()=>{if(!l)return;let B=p.current?.memoryUserId;if(!B)return;let ae=await Mx(B);A(ae)},[l]),ee=(0,X.useCallback)(()=>v.current,[]),pe=(0,X.useCallback)(B=>{let ae=hR(B);ae&&v.current!==ae&&(v.current=ae,w(ae))},[]),Q=(0,X.useCallback)(()=>{v.current=void 0,w(void 0)},[]);(0,X.useEffect)(()=>{u.current=a},[a]),(0,X.useEffect)(()=>{c.current=n},[n]),(0,X.useEffect)(()=>{let B=!1,ae=P.current;return(async()=>{try{let ct=await Rx();if(B)return;p.current=ct}catch{}if(!l)return;let J=p.current?.memoryUserId;if(!J){M(!0);return}try{let ct=i??await Ex(J);if(B||ae!==P.current)return;if(ct){let je=await bf(ct);if(B||ae!==P.current)return;je&&je.memoryUserId===J&&(h.current=je.threadId,x(je.threadId),E.current=je.createdAt,_.current=je.title,je.sessionId&&(v.current=je.sessionId,w(je.sessionId)),Be(je.messages))}await G()}finally{B||M(!0)}})(),()=>{B=!0}},[]);let fe=(0,X.useRef)(new yf({api:t,headers:()=>({...u.current}),body:()=>{let B={...c.current??{}},ae=Object.hasOwn(B,"sessionId"),J=hR(B.sessionId);if(J)pe(J),B.sessionId=J;else if(ae)Q(),delete B.sessionId;else{let Za=ee();Za&&(B.sessionId=Za)}if(Wl(f.current)&&(B.modelContext=f.current),p.current){let Za=p.current;B.visitorContext={timezone:Za.timezone,language:Za.language,languages:Za.languages,deviceType:Za.deviceType,referrer:Za.referrer,visitorId:Za.visitorId};let Sn=typeof B.visitor=="object"&&B.visitor!==null?B.visitor:{},MR=typeof Sn.client=="object"&&Sn.client!==null?Sn.client:{};B.visitor={...Sn,client:{...MR,memoryUserId:Za.memoryUserId}}}let ct=typeof B.extra=="object"&&B.extra!==null&&!Array.isArray(B.extra)?B.extra:void 0,je=p.current?.memoryUserId,At=p.current?.language,lu={};if(je&&(lu.memoryUserId=je),At&&(lu.locale=At),(Object.keys(lu).length>0||ct)&&(B.extra={...lu,...ct??{}}),d.current)if(Object.hasOwn(B,"threadId"))typeof B.threadId=="string"&&(h.current=B.threadId);else{let Sn=h.current;Sn||(Sn=mR(),E.current=Sf(),_.current=void 0,V(Sn)),B.threadId=Sn}return B},fetch:(async(B,ae)=>{let J=await fetch(B,ae);return f.current=void 0,pe(J.headers.get(wH)),J})})),I=(0,X.useRef)(null),st=(0,X.useRef)(null),ut=(0,X.useRef)({}),[L,xt]=(0,X.useState)(0),$e=e.skipRemoteConfig===!0,Ot=(0,X.useCallback)(async()=>{if(!$e)try{let B=await bH(t,u.current);ut.current=B,xt(ae=>ae+1)}catch(B){console.warn("[WaniWani] Failed to fetch tool definitions:",B instanceof Error?B.message:B)}},[t,$e]);(0,X.useEffect)(()=>{Ot()},[Ot]);let{messages:Ne,sendMessage:oe,setMessages:Be,status:ce}=rR({messages:e.initialMessages,transport:fe.current,onFinish({message:B}){o?.(),I.current&&(st.current=B)},onError(B){console.warn("[WaniWani] Chat error:",B.message),I.current&&(I.current.reject(B),I.current=null)}}),ge=(0,X.useRef)(Ne);(0,X.useEffect)(()=>{ge.current=Ne},[Ne]);let ve=(0,X.useRef)(l);(0,X.useEffect)(()=>{if(!l||ve.current||(ve.current=!0,ge.current.length>0))return;let B=!1,ae=P.current;return M(!1),(async()=>{try{let J=p.current;if(!J)try{J=await Rx(),p.current=J}catch{}let ct=J?.memoryUserId;if(!ct||B||ae!==P.current){B||M(!0);return}let je=i??await Ex(ct);if(B||ae!==P.current)return;if(je){let At=await bf(je);if(B||ae!==P.current)return;At&&At.memoryUserId===ct&&(h.current=At.threadId,x(At.threadId),E.current=At.createdAt,_.current=At.title,At.sessionId&&(v.current=At.sessionId,w(At.sessionId)),Be(At.messages))}await G()}finally{B||M(!0)}})(),()=>{B=!0}},[l]),(0,X.useEffect)(()=>{if(ce==="ready"&&I.current&&st.current){let B=I.current,ae=st.current;I.current=null,st.current=null,B.resolve(ae)}},[ce]);let[j,Y]=(0,X.useState)(""),[Ie,Je]=(0,X.useState)([]),Mt=ce==="submitted"||ce==="streaming",ha=(0,X.useCallback)(B=>{Je(ae=>ae.filter(J=>J.id!==B))},[]),$a=Mt&&Ie.length>0,ru=(0,X.useCallback)(B=>{let ae=!!B.text?.trim(),J=!!B.files?.length;if(ae||J){if(Mt){if(Ie.length>0)return;Je(ct=>[...ct,{id:hs(),text:B.text||"",files:B.files??[],modelContext:B.modelContext}]),Y("");return}f.current=B.modelContext,oe({text:B.text||"",files:B.files}),r?.(B.text||""),Y("")}},[oe,r,Mt,Ie.length]),Mf=(0,X.useCallback)(B=>new Promise((ae,J)=>{I.current={resolve:ae,reject:J},oe({text:B}),r?.(B)}),[oe,r]);(0,X.useEffect)(()=>{if(ce!=="ready"||Ie.length===0)return;let[B,...ae]=Ie;Je(ae),f.current=B.modelContext,oe({text:B.text,files:B.files.length>0?B.files:void 0}),r?.(B.text)},[ce,oe,r,Ie]);let Af=(0,X.useCallback)(()=>{Be([]),Je([]),Q(),Y(""),ut.current={},xt(B=>B+1),Ot()},[Be,Q,Ot]),No=(0,X.useCallback)(()=>{if(!d.current)return;let B=p.current?.memoryUserId,ae=h.current,J=ge.current;if(!(!B||!ae||J.length===0)){if(E.current||(E.current=Sf()),!_.current){let ct=J.find(At=>At.role==="user"),je=ct?ct.parts.map(At=>"text"in At&&typeof At.text=="string"?At.text:"").join(" "):"";_.current=dR(je)}return{threadId:ae,memoryUserId:B,title:_.current,messages:J,sessionId:v.current,createdAt:E.current,updatedAt:Sf()}}},[]),ou=(0,X.useCallback)(async()=>{let B=No();B&&(await Ax(B),await G())},[No,G]);(0,X.useEffect)(()=>{if(l&&b&&!(ce==="submitted"||ce==="streaming")&&Ne.length!==0)return k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{k.current=void 0;let B=ou().finally(()=>{U.current===B&&(U.current=void 0)});U.current=B},vH),()=>{k.current&&clearTimeout(k.current)}},[l,b,Ne,ce,ou]);let Bo=(0,X.useCallback)(()=>{let B=U.current,ae=k.current,J=ae?No():void 0;return ae&&(clearTimeout(ae),k.current=void 0),(async()=>{B&&await B,J&&(await Ax(J),await G())})()},[No,G]),O=(0,X.useCallback)(()=>{P.current+=1,Bo(),Be([]),Je([]),Q(),Y("");let B=mR();return E.current=Sf(),_.current=void 0,V(B),G(),B},[Be,Q,V,G,Bo]),q=(0,X.useCallback)(async B=>{P.current+=1;let ae=P.current;if(await Bo(),ae!==P.current)return;let J=await bf(B);ae===P.current&&J&&(V(J.threadId),E.current=J.createdAt,_.current=J.title,J.sessionId?(v.current=J.sessionId,w(J.sessionId)):Q(),Be(J.messages),Je([]),Y(""))},[Be,Q,V,Bo]),le=(0,X.useCallback)(async B=>{if(h.current===B){P.current+=1,k.current&&(clearTimeout(k.current),k.current=void 0);let ae=U.current;ae&&await ae}await cR(B),await G(),h.current===B&&(Be([]),Je([]),Q(),Y(""),h.current=void 0,x(void 0),E.current=void 0,_.current=void 0)},[Be,Q,G]);(0,X.useEffect)(()=>{l&&b&&i!==void 0&&i!==h.current&&q(i)},[i,l,b,q]);let ye=(0,X.useCallback)(B=>{Y(B.target.value)},[]),Oe=Ne[Ne.length-1],oa=Ne.length>0,bn=Mt&&(!oa||Oe.role==="user"),Xa=ut.current;return{messages:Ne,status:ce,text:j,setText:Y,handleSubmit:ru,handleTextChange:ye,isLoading:Mt,showLoaderBubble:bn,lastMessage:Oe,hasMessages:oa,sendMessage:oe,sendMessageAndWait:Mf,reset:Af,queuedMessages:Ie,queueFull:$a,removeQueuedMessage:ha,sessionId:g,toolDefinitions:Xa,refreshToolDefinitions:Ot,threads:C,activeThreadId:y,isThreadHistoryReady:b,startNewThread:O,switchThread:q,deleteThread:le}}var vn=F(Pe(),1);function SH(e){for(let t of e.parts){let a=t;if(a.type==="data"||a.type==="data-suggestions"){let n=a.data;if(n&&Array.isArray(n.suggestions))return n.suggestions}}return null}function yR(e){return typeof e=="object"&&e!==null&&"initial"in e}function xR(e){let{messages:t,status:a,config:n}=e,r=yR(n)&&n.initial?n.initial:void 0,[o,l]=(0,vn.useState)(r??[]),i=(0,vn.useRef)(a),s=n===!0||yR(n)&&n.dynamic!==!1,u=(0,vn.useCallback)(()=>{l([])},[]),c=t.length>0;(0,vn.useEffect)(()=>{!c&&r&&r.length>0&&l(r)},[r,c]);let d=t[t.length-1];return(0,vn.useEffect)(()=>{d?.role==="user"&&u()},[d,u]),(0,vn.useEffect)(()=>{let f=i.current;if(i.current=a,f==="streaming"&&a==="ready"&&s){let p=[...t].reverse().find(w=>w.role==="assistant");if(!p)return;let g=SH(p);g&&l(g)}},[a,s,t]),{suggestions:o,isLoading:!1,clear:u}}function wR(e,t){let a=t?.Authorization,n=typeof a=="string"&&a.startsWith("Bearer ")?a.slice(7):null;return n?`${e}/resource?token=${encodeURIComponent(n)}`:`${e}/resource`}var CH={primaryColor:["--ww-primary","--ww-color-primary"],primaryForeground:["--ww-primary-fg","--ww-color-primary-foreground"],backgroundColor:["--ww-bg","--ww-color-background"],textColor:["--ww-text","--ww-color-foreground","--ww-color-accent-foreground"],mutedColor:["--ww-muted","--ww-color-muted-foreground"],borderColor:["--ww-border","--ww-color-border"],borderWidth:["--ww-border-width"],boxShadow:["--ww-shadow"],assistantBubbleColor:["--ww-assistant-bubble","--ww-color-accent"],userBubbleColor:["--ww-user-bubble"],inputBackgroundColor:["--ww-input-bg","--ww-color-input"],borderRadius:["--ww-radius"],messageBorderRadius:["--ww-msg-radius"],fontFamily:["--ww-font"],headerBackgroundColor:["--ww-header-bg"],headerTextColor:["--ww-header-text"],statusColor:["--ww-status"],toolCardColor:["--ww-tool-card","--ww-color-tool-card"]};function Cf(e){let t={};for(let[a,n]of Object.entries(CH)){let r=e[a];if(r===void 0)continue;let o=typeof r=="number"?`${r}px`:String(r);for(let l of n)t[l]=o}return t}var He=F(re(),1),If=(0,Qe.forwardRef)(function(t,a){let{locale:n,messages:r}=t;return(0,He.jsx)(ms,{locale:n,messages:r,children:(0,He.jsx)(IH,{...t,ref:a})})}),IH=(0,Qe.forwardRef)(function(t,a){let{t:n,ready:r}=De(),{appearance:o,className:l,allowAttachments:i=!1,welcomeMessage:s,welcome:u,placeholder:c=n.promptInput.placeholder,triggerEvent:d="triggerDemoRequest",api:f,mcp:p,debug:g=!1,readOnly:w=!1,title:v,headerActions:y,hideHeader:x=!1,enableThreadHistory:h=!1,showToolCalls:C=!0,initializing:A=!1,disclaimer:b}=t,M=o?.theme,E=o?.variables,_=E?Cf(E):{},[k,U]=(0,Qe.useState)(!1);(0,Qe.useEffect)(()=>{if(M!=="auto"||typeof window>"u")return;let j=window.matchMedia("(prefers-color-scheme: dark)");U(j.matches);let Y=()=>U(j.matches);return j.addEventListener("change",Y),()=>j.removeEventListener("change",Y)},[M]);let P=M==="dark"||M==="auto"&&k,R=gR({...t,api:f}),V=yE({...t,api:f,sessionId:R.sessionId,onCallTool:p?.onCallTool}),G=p?.resourceEndpoint??wR(f,t.headers),ee=Hc(c,!R.text),[pe,Q]=(0,Qe.useState)(null),fe=(0,Qe.useRef)(null),I=(0,Qe.useRef)(null),st=(0,Qe.useRef)(null),ut=(0,Qe.useRef)(null),[L,xt]=(0,Qe.useState)(!0),$e=(0,Qe.useRef)(L);$e.current=L;let Ot=(0,Qe.useCallback)(()=>{let j=fe.current;if(!j)return;let Y=j.querySelector("textarea");Y&&Y.focus()},[]),Ne=(0,Qe.useCallback)((j="smooth")=>{let Y=I.current;Y&&Y.scrollTo({top:Y.scrollHeight,behavior:j})},[]);(0,Qe.useEffect)(()=>{let j=ut.current,Y=I.current;if(!j||!Y)return;let Ie=new IntersectionObserver(([Je])=>xt(Je.isIntersecting),{root:Y,rootMargin:"0px 0px 200px 0px",threshold:0});return Ie.observe(j),()=>Ie.disconnect()},[]),(0,Qe.useEffect)(()=>{(R.messages[R.messages.length-1]?.role==="user"||$e.current)&&Ne("smooth")},[R.messages.length,R.messages[R.messages.length-1]]),(0,Qe.useEffect)(()=>{Ne("auto")},[Ne]),(0,Qe.useEffect)(()=>{if(typeof ResizeObserver>"u")return;let j=I.current,Y=st.current;if(!j&&!Y)return;let Ie=j?.scrollHeight??0,Je=j?.clientHeight??0,Mt=new ResizeObserver(()=>{let ha=I.current;if(!ha)return;let $a=ha.scrollTop+Je>=Ie-5;Ie=ha.scrollHeight,Je=ha.clientHeight,$a&&Ne("auto")});return j&&Mt.observe(j),Y&&Mt.observe(Y),()=>Mt.disconnect()},[Ne]);let oe=xR({messages:R.messages,status:R.status,config:t.suggestions}),Be=(0,Qe.useCallback)(j=>{let Y=j.content.map(Ie=>Ie.text??"").join("").trim();Y&&R.handleSubmit({text:Y,files:[],modelContext:j.modelContext})},[R.handleSubmit]),ce=(0,Qe.useCallback)(j=>{oe.clear(),R.handleSubmit({text:j,files:[]})},[oe.clear,R.handleSubmit]);(0,Qe.useImperativeHandle)(a,()=>({sendMessage:j=>{R.handleSubmit({text:j,files:[]}),Ot()},sendMessageAndWait:j=>R.sendMessageAndWait(j),reset:R.reset,focus:Ot,get messages(){return R.messages},get sessionId(){return R.sessionId}}),[R.handleSubmit,R.sendMessageAndWait,R.reset,R.messages,R.sessionId,Ot]),(0,Qe.useEffect)(()=>{if(!d)return;let j=Y=>{let Ie=Y.detail,Je=typeof Ie?.message=="string"?Ie.message:void 0;Je&&R.handleSubmit({text:Je,files:[]}),Ot()};return window.addEventListener(d,j),()=>window.removeEventListener(d,j)},[d,R.handleSubmit,Ot]);let ge=!x&&!!(v||h||y),ve=A||!r;return(0,He.jsxs)("div",{ref:fe,style:{..._,maxHeight:"inherit",opacity:ve?0:1,transition:"opacity 220ms ease-out"},"data-waniwani-chat":"","data-waniwani-layout":"embed","data-color-scheme":M==="auto"?"auto":void 0,...ve?{"data-waniwani-initializing":""}:{},...P?{"data-waniwani-dark":""}:{},className:W("ww:relative ww:w-full ww:h-full ww:flex ww:flex-col ww:bg-background ww:text-foreground ww:font-[family-name:var(--ww-font)] ww:overflow-hidden",M==="dark"&&"dark",l),children:[ge&&(0,He.jsxs)("div",{className:"ww:shrink-0 ww:flex ww:items-center ww:gap-2 ww:pl-4 ww:pr-3 ww:py-3 ww:border-b ww:border-border",style:{backgroundColor:"var(--ww-color-card-header)",color:"var(--ww-color-card-header-foreground)"},children:[v&&(0,He.jsx)("div",{className:"ww:text-sm ww:font-semibold ww:truncate ww:flex-1 ww:min-w-0",children:v}),!v&&(0,He.jsx)("div",{className:"ww:flex-1"}),h&&(0,He.jsx)(gE,{threads:R.threads,activeThreadId:R.activeThreadId,onNewThread:R.startNewThread,onSelectThread:j=>{R.switchThread(j)},onDeleteThread:j=>{R.deleteThread(j)}}),y]}),(0,He.jsxs)("div",{ref:I,className:W("ww:relative ww:flex-1 ww:min-h-0",pe?"ww:overflow-hidden":"ww:overflow-y-auto"),children:[(0,He.jsxs)("div",{ref:st,className:W("ww:mx-auto ww:w-full ww:max-w-3xl ww:px-4 ww:py-6 ww:flex ww:flex-col ww:gap-6",pe&&"ww:!py-0"),children:[(0,He.jsx)(fE,{messages:R.messages,status:R.status,welcomeMessage:s,welcome:u,onSuggestionSelect:ce,resourceEndpoint:G,chatSessionId:R.sessionId,isDark:P,onFollowUp:Be,onCallTool:V,fullscreenToolCallId:pe,debug:g,showToolCalls:C,toolDefinitions:R.toolDefinitions,onWidgetDisplayModeChange:(j,Y)=>{Q(j==="fullscreen"?Y.toolCallId:null)}}),(0,He.jsx)("div",{ref:ut,"aria-hidden":!0,style:{height:1}})]}),!L&&!pe&&(0,He.jsx)("div",{className:"ww:sticky ww:bottom-2 ww:flex ww:justify-center ww:pointer-events-none",children:(0,He.jsx)(pn,{type:"button",onClick:()=>Ne("smooth"),size:"icon",variant:"outline",className:"ww:rounded-full ww:shadow ww:pointer-events-auto","aria-label":"Scroll to latest",children:(0,He.jsx)(as,{className:"ww:size-4"})})})]}),!w&&(0,He.jsxs)("div",{className:"ww:shrink-0 ww:bg-background",style:pe?{display:"none"}:void 0,children:[(0,He.jsx)(mE,{suggestions:oe.suggestions,isLoading:oe.isLoading,onSelect:ce}),(0,He.jsx)(rC,{queuedMessages:R.queuedMessages,onRemove:R.removeQueuedMessage}),(0,He.jsx)("div",{className:"ww:px-4 ww:pb-2 ww:pt-2",children:(0,He.jsxs)("div",{className:"ww:mx-auto ww:w-full ww:max-w-3xl",children:[(0,He.jsx)(G0,{onSubmit:R.handleSubmit,globalDrop:i,multiple:i,className:"ww:rounded-2xl ww:border-border ww:bg-input",children:(0,He.jsxs)("div",{className:"ww:flex ww:items-center ww:gap-1 ww:pl-4 ww:pr-3 ww:py-2.5",children:[i&&(0,He.jsx)(X0,{}),(0,He.jsx)(W0,{onChange:R.handleTextChange,value:R.text,placeholder:ee,className:"ww:min-h-0 ww:py-1 ww:px-0"}),(0,He.jsx)($0,{status:R.status,disabled:R.queueFull})]})}),(0,He.jsxs)("div",{className:"ww:pt-2 ww:pb-1 ww:flex ww:justify-center ww:items-center ww:gap-1.5",children:[(0,He.jsx)(pE,{}),(0,He.jsx)(Z0,{text:b})]})]})})]})]})});var au=F(Pe(),1);var LH="waniwani:config:";function vR(e,t,a){return`${LH}${e}|${t}|${a??""}`}function kH(e,t,a){if(typeof window>"u")return null;try{let n=window.sessionStorage.getItem(vR(e,t,a));if(!n)return null;let r=JSON.parse(n);return r&&typeof r=="object"?r:null}catch{return null}}function TH(e,t,a,n){if(!(typeof window>"u"))try{window.sessionStorage.setItem(vR(e,t,a),JSON.stringify(n))}catch{}}var MH=600;async function AH(e,t,a,n){try{let r=`${e.replace(/\/$/,"")}/config`,o=n?`${r}?channel=${encodeURIComponent(n)}`:r,l=await fetch(o,{method:"GET",headers:{Authorization:`Bearer ${t}`},signal:a});if(!l.ok)return{};let i=await l.json(),s=i&&typeof i=="object"&&"data"in i&&i.data?i.data:i;return s?EH(s):{}}catch{return{}}}function EH(e){let t={};return e.title!=null&&(t.title=e.title),e.welcomeMessage!=null&&(t.welcomeMessage=e.welcomeMessage),e.placeholder!=null&&(t.placeholder=e.placeholder),e.suggestions!=null&&e.suggestions.length>0&&(t.suggestions=e.suggestions),typeof e.enableThreadHistory=="boolean"&&(t.enableThreadHistory=e.enableThreadHistory),t}function Lf(e,t,a){let[n,r]=(0,au.useState)(e),[o,l]=(0,au.useState)(!1);return(0,au.useEffect)(()=>{let i=e.api,s=e.token,u=e.channelId;if(!i||!s){l(!0);return}let c=kH(i,s,u);if(c)try{r(es(t,c,a)),l(!0)}catch{}let d=new AbortController,f=setTimeout(()=>l(!0),MH);return AH(i,s,d.signal,u).then(p=>{if(!d.signal.aborted){if(Object.keys(p).length>0){TH(i,s,u,p);try{r(es(t,p,a))}catch(g){console.error("[WaniWani] Failed to apply remote config:",g)}}l(!0)}}).catch(p=>{console.error("[WaniWani] Remote config fetch failed:",p),l(!0)}).finally(()=>clearTimeout(f)),()=>{d.abort(),clearTimeout(f)}},[e.api,e.token,e.channelId]),{config:n,ready:o}}var yt=F(re(),1),RH=3500,bR=(0,it.forwardRef)(function(t,a){return(0,yt.jsx)(ms,{locale:t.config.locale,children:(0,yt.jsx)(DH,{...t,ref:a})})}),DH=(0,it.forwardRef)(function({config:t,programmatic:a,scriptConfig:n},r){let{t:o}=De(),{config:l,ready:i}=Lf(t,a,n),s=(0,it.useRef)(null),u=(0,it.useRef)(null),[c,d]=(0,it.useState)("input"),[f,p]=(0,it.useState)(""),g=(0,it.useRef)(!1),[w,v]=(0,it.useState)(0),y=l.appearance?.theme,x=l.appearance?.variables,h=l.position??"bottom-center",C=(0,it.useMemo)(()=>x?Cf(x):{},[x]),A=l.suggestions??[],b=l.launcherText??l.placeholder??o.launcher.prompt,M=Hc(b,f.length===0),E="var(--ww-shadow, 0 10px 30px rgba(0, 0, 0, 0.08))";(0,it.useEffect)(()=>{if(A.length===0)return;let Q=setTimeout(()=>{!g.current&&(s.current?.messages.length??0)===0&&d(fe=>fe==="input"?"expanded":fe)},RH);return()=>clearTimeout(Q)},[A.length]),(0,it.useEffect)(()=>{w>0&&c==="open"&&s.current?.focus()},[w,c]);let _=(0,it.useCallback)(()=>{g.current=!0,d("open")},[]),k=(0,it.useCallback)(()=>{g.current=!0,d("input")},[]),U=(0,it.useCallback)(Q=>{_();let fe=Q.trim();fe&&s.current?.sendMessage(fe)},[_]);(0,it.useImperativeHandle)(r,()=>({open:()=>_(),close:()=>k(),toggle:()=>{g.current=!0,d(Q=>Q==="open"?"input":"open")},sendMessage:Q=>U(Q),sendMessageAndWait:async Q=>{_();let fe=s.current;if(fe)return await fe.sendMessageAndWait(Q)},reset:()=>s.current?.reset(),focus:()=>{_(),v(Q=>Q+1)},getMessages:()=>s.current?.messages??[],getSessionId:()=>s.current?.sessionId}),[U,_,k]);let P=(0,it.useCallback)(()=>{f.trim()&&(U(f),p(""))},[f,U]),R=(0,it.useCallback)(()=>{g.current=!0,(s.current?.messages.length??0)>0?(d("open"),v(Q=>Q+1)):A.length>0&&d(Q=>Q==="input"?"expanded":Q)},[A.length]),V={};l.mcpServerUrl&&(V.mcpServerUrl=l.mcpServerUrl),l.channelId&&(V.channelId=l.channelId);let G=h==="bottom-left"?"ww:left-4 ww:right-auto":h==="bottom-right"?"ww:right-4 ww:left-auto":"ww:left-0 ww:right-0 ww:mx-auto",ee=h==="bottom-left"?"ww:sm:left-4 ww:sm:right-auto":h==="bottom-right"?"ww:sm:right-4 ww:sm:left-auto":"ww:sm:left-0 ww:sm:right-0 ww:sm:mx-auto",pe=(0,yt.jsx)("button",{type:"button",onClick:k,"aria-label":o.launcher.close,className:"ww:flex ww:size-7 ww:items-center ww:justify-center ww:rounded-md ww:text-muted-foreground ww:transition-colors hover:ww:bg-accent hover:ww:text-foreground",children:(0,yt.jsx)(El,{className:"ww:size-4"})});return(0,yt.jsxs)("div",{"data-waniwani-chat":"","data-color-scheme":y==="auto"?"auto":void 0,className:W("ww:contents ww:font-[family-name:var(--ww-font-sans)]",y==="dark"&&"dark"),style:C,children:[(0,yt.jsxs)("div",{"data-waniwani-floating":"dock","data-state":c==="open"?"hidden":"shown",className:W("ww:fixed ww:bottom-4 ww:z-[2147483002] ww:flex ww:flex-col ww:gap-2","ww:w-[calc(100vw-2rem)] ww:max-w-[480px]",G),children:[A.length>0&&(0,yt.jsxs)("div",{className:W("ww:flex ww:flex-col ww:gap-2 ww:origin-bottom ww:transition-all ww:duration-300 ww:ease-out",c==="expanded"?"ww:max-h-96 ww:translate-y-0 ww:opacity-100":"ww:pointer-events-none ww:max-h-0 ww:translate-y-2 ww:overflow-hidden ww:opacity-0"),children:[(0,yt.jsx)("div",{className:"ww:flex ww:justify-end",children:(0,yt.jsx)("button",{type:"button",onClick:k,"aria-label":o.launcher.minimize,className:"ww:flex ww:size-7 ww:items-center ww:justify-center ww:rounded-full ww:bg-background/80 ww:text-muted-foreground ww:shadow ww:backdrop-blur ww:transition-colors hover:ww:text-foreground",children:(0,yt.jsx)(El,{className:"ww:size-4"})})}),A.map(Q=>(0,yt.jsxs)("button",{type:"button",onClick:()=>U(Q),style:{boxShadow:E},className:"ww:flex ww:items-center ww:justify-between ww:gap-3 ww:rounded-full ww:bg-background ww:px-5 ww:py-3 ww:text-left ww:text-sm ww:font-medium ww:text-foreground ww:transition-colors hover:ww:bg-accent",children:[(0,yt.jsx)("span",{className:"ww:truncate",children:Q}),(0,yt.jsx)(ns,{className:"ww:size-4 ww:shrink-0 ww:opacity-50"})]},Q))]}),(0,yt.jsxs)("div",{style:{boxShadow:E},className:"ww:flex ww:items-center ww:gap-2 ww:rounded-full ww:border ww:border-border ww:bg-background ww:px-4 ww:py-2.5",children:[(0,yt.jsx)(Mr,{className:"ww:size-4 ww:shrink-0 ww:text-muted-foreground"}),(0,yt.jsx)("input",{ref:u,type:"text",value:f,placeholder:M,onChange:Q=>p(Q.target.value),onFocus:R,onKeyDown:Q=>{Q.key==="Enter"&&!Q.shiftKey&&(Q.preventDefault(),P())},className:"ww:min-w-0 ww:flex-1 ww:bg-transparent ww:text-sm ww:text-foreground ww:outline-none ww:placeholder:text-muted-foreground"}),(0,yt.jsx)("button",{type:"button",onClick:P,disabled:!f.trim(),"aria-label":o.promptInput.submit,className:"ww:flex ww:size-8 ww:shrink-0 ww:items-center ww:justify-center ww:rounded-full ww:bg-foreground ww:text-background ww:transition-opacity hover:ww:opacity-90 disabled:ww:opacity-40",children:(0,yt.jsx)(mo,{className:"ww:size-4"})})]})]}),(0,yt.jsx)("div",{role:"dialog","aria-label":l.title??b,"data-waniwani-floating":"panel","data-state":c==="open"?"shown":"hidden",style:{boxShadow:E},className:W("ww:fixed ww:z-[2147483002] ww:flex ww:flex-col ww:overflow-hidden ww:bg-background","ww:inset-0 ww:w-full ww:rounded-none","ww:sm:inset-auto ww:sm:bottom-4 ww:sm:h-[640px] ww:sm:max-h-[calc(100dvh-2rem)] ww:sm:w-[calc(100vw-2rem)] ww:sm:max-w-[480px] ww:sm:rounded-2xl ww:sm:border ww:sm:border-border",ee),children:(0,yt.jsx)(If,{ref:s,api:l.api??"",headers:{Authorization:`Bearer ${l.token}`},skipRemoteConfig:!0,body:Object.keys(V).length>0?V:void 0,appearance:l.appearance,title:l.title,headerActions:pe,hideHeader:!1,welcomeMessage:l.welcomeMessage,placeholder:l.placeholder,suggestions:l.suggestions?{initial:l.suggestions}:void 0,enableThreadHistory:l.enableThreadHistory,showToolCalls:l.showToolCalls,locale:l.locale,initializing:!i})})]})});var Gr=F(Pe(),1);var CR=F(re(),1),SR=(0,Gr.forwardRef)(function({config:t,programmatic:a,scriptConfig:n,onReady:r},o){let{config:l,ready:i}=Lf(t,a,n),s=(0,Gr.useRef)(null);(0,Gr.useEffect)(()=>{r?.()},[]),(0,Gr.useImperativeHandle)(o,()=>({get chat(){return s.current}}),[]);let u={};return l.mcpServerUrl&&(u.mcpServerUrl=l.mcpServerUrl),l.channelId&&(u.channelId=l.channelId),(0,CR.jsx)(If,{ref:s,api:l.api??"",headers:{Authorization:`Bearer ${l.token}`},skipRemoteConfig:!0,body:Object.keys(u).length>0?u:void 0,appearance:l.appearance,title:l.title,hideHeader:l.hideHeader,welcomeMessage:l.welcomeMessage,placeholder:l.placeholder,suggestions:l.suggestions?{initial:l.suggestions}:void 0,enableThreadHistory:l.enableThreadHistory,showToolCalls:l.showToolCalls,locale:l.locale,initializing:!i})});var Dx="/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--ww-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--ww-color-blue-400:oklch(70.7% .165 254.624);--ww-spacing:.25rem;--ww-container-sm:24rem;--ww-container-md:28rem;--ww-container-3xl:48rem;--ww-text-xs:.75rem;--ww-text-xs--line-height:calc(1/.75);--ww-text-sm:.875rem;--ww-text-sm--line-height:calc(1.25/.875);--ww-text-base:1rem;--ww-text-base--line-height:calc(1.5/1);--ww-text-lg:1.125rem;--ww-text-lg--line-height:calc(1.75/1.125);--ww-font-weight-medium:500;--ww-font-weight-semibold:600;--ww-tracking-wide:.025em;--ww-tracking-wider:.05em;--ww-radius-md:.375rem;--ww-radius-lg:.5rem;--ww-radius-xl:.75rem;--ww-radius-2xl:1rem;--ww-ease-out:cubic-bezier(0,0,.2,1);--ww-animate-spin:spin 1s linear infinite;--ww-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--ww-default-transition-duration:.15s;--ww-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--ww-default-font-family:var(--ww-font-sans,system-ui,-apple-system,\"Segoe UI\",sans-serif);--ww-default-mono-font-family:var(--ww-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ww-default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--ww-default-font-feature-settings,normal);font-variation-settings:var(--ww-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ww-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--ww-default-mono-font-feature-settings,normal);font-variation-settings:var(--ww-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.ww\\:pointer-events-auto{pointer-events:auto}.ww\\:pointer-events-none{pointer-events:none}.ww\\:\\!relative{position:relative!important}.ww\\:absolute{position:absolute}.ww\\:fixed{position:fixed}.ww\\:relative{position:relative}.ww\\:sticky{position:sticky}.ww\\:inset-0{inset:calc(var(--ww-spacing)*0)}.ww\\:top-full{top:100%}.ww\\:right-0{right:calc(var(--ww-spacing)*0)}.ww\\:right-4{right:calc(var(--ww-spacing)*4)}.ww\\:right-auto{right:auto}.ww\\:bottom-2{bottom:calc(var(--ww-spacing)*2)}.ww\\:bottom-4{bottom:calc(var(--ww-spacing)*4)}.ww\\:left-0{left:calc(var(--ww-spacing)*0)}.ww\\:left-4{left:calc(var(--ww-spacing)*4)}.ww\\:left-\\[50\\%\\]{left:50%}.ww\\:left-auto{left:auto}.ww\\:z-50{z-index:50}.ww\\:z-\\[2147483002\\]{z-index:2147483002}.ww\\:mx-auto{margin-inline:auto}.ww\\:mt-0\\.5{margin-top:calc(var(--ww-spacing)*.5)}.ww\\:mt-1{margin-top:calc(var(--ww-spacing)*1)}.ww\\:mt-2{margin-top:calc(var(--ww-spacing)*2)}.ww\\:mt-6{margin-top:calc(var(--ww-spacing)*6)}.ww\\:mb-4{margin-bottom:calc(var(--ww-spacing)*4)}.ww\\:ml-auto{margin-left:auto}.ww\\:line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ww\\:contents{display:contents}.ww\\:flex{display:flex}.ww\\:grid{display:grid}.ww\\:hidden{display:none}.ww\\:inline-block{display:inline-block}.ww\\:inline-flex{display:inline-flex}.ww\\:field-sizing-content{field-sizing:content}.ww\\:size-2{width:calc(var(--ww-spacing)*2);height:calc(var(--ww-spacing)*2)}.ww\\:size-3{width:calc(var(--ww-spacing)*3);height:calc(var(--ww-spacing)*3)}.ww\\:size-3\\.5{width:calc(var(--ww-spacing)*3.5);height:calc(var(--ww-spacing)*3.5)}.ww\\:size-4{width:calc(var(--ww-spacing)*4);height:calc(var(--ww-spacing)*4)}.ww\\:size-5{width:calc(var(--ww-spacing)*5);height:calc(var(--ww-spacing)*5)}.ww\\:size-7{width:calc(var(--ww-spacing)*7);height:calc(var(--ww-spacing)*7)}.ww\\:size-8{width:calc(var(--ww-spacing)*8);height:calc(var(--ww-spacing)*8)}.ww\\:size-9{width:calc(var(--ww-spacing)*9);height:calc(var(--ww-spacing)*9)}.ww\\:size-12{width:calc(var(--ww-spacing)*12);height:calc(var(--ww-spacing)*12)}.ww\\:size-auto{width:auto;height:auto}.ww\\:size-full{width:100%;height:100%}.ww\\:h-2\\.5{height:calc(var(--ww-spacing)*2.5)}.ww\\:h-7{height:calc(var(--ww-spacing)*7)}.ww\\:h-8{height:calc(var(--ww-spacing)*8)}.ww\\:h-9{height:calc(var(--ww-spacing)*9)}.ww\\:h-16{height:calc(var(--ww-spacing)*16)}.ww\\:h-auto{height:auto}.ww\\:h-full{height:100%}.ww\\:max-h-0{max-height:calc(var(--ww-spacing)*0)}.ww\\:max-h-48{max-height:calc(var(--ww-spacing)*48)}.ww\\:max-h-80{max-height:calc(var(--ww-spacing)*80)}.ww\\:max-h-96{max-height:calc(var(--ww-spacing)*96)}.ww\\:min-h-0{min-height:calc(var(--ww-spacing)*0)}.ww\\:min-h-full{min-height:100%}.ww\\:w-72{width:calc(var(--ww-spacing)*72)}.ww\\:w-\\[calc\\(100vw-2rem\\)\\]{width:calc(100vw - 2rem)}.ww\\:w-auto{width:auto}.ww\\:w-fit{width:fit-content}.ww\\:w-full{width:100%}.ww\\:max-w-3xl{max-width:var(--ww-container-3xl)}.ww\\:max-w-24{max-width:calc(var(--ww-spacing)*24)}.ww\\:max-w-32{max-width:calc(var(--ww-spacing)*32)}.ww\\:max-w-\\[80\\%\\]{max-width:80%}.ww\\:max-w-\\[480px\\]{max-width:480px}.ww\\:max-w-full{max-width:100%}.ww\\:max-w-md{max-width:var(--ww-container-md)}.ww\\:max-w-sm{max-width:var(--ww-container-sm)}.ww\\:min-w-0{min-width:calc(var(--ww-spacing)*0)}.ww\\:flex-1{flex:1}.ww\\:shrink-0{flex-shrink:0}.ww\\:grow{flex-grow:1}.ww\\:origin-bottom{transform-origin:bottom}.ww\\:translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:translate-y-0{--tw-translate-y:calc(var(--ww-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:translate-y-2{--tw-translate-y:calc(var(--ww-spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:rotate-90{rotate:90deg}.ww\\:rotate-180{rotate:180deg}.ww\\:animate-\\[ww-fade-in_0\\.2s_ease-out_both\\]{animation:.2s ease-out both ww-fade-in}.ww\\:animate-pulse{animation:var(--ww-animate-pulse)}.ww\\:animate-spin{animation:var(--ww-animate-spin)}.ww\\:cursor-pointer{cursor:pointer}.ww\\:resize-none{resize:none}.ww\\:grid-rows-\\[0fr\\]{grid-template-rows:0fr}.ww\\:grid-rows-\\[1fr\\]{grid-template-rows:1fr}.ww\\:flex-col{flex-direction:column}.ww\\:flex-wrap{flex-wrap:wrap}.ww\\:items-center{align-items:center}.ww\\:items-end{align-items:flex-end}.ww\\:items-start{align-items:flex-start}.ww\\:justify-between{justify-content:space-between}.ww\\:justify-center{justify-content:center}.ww\\:justify-end{justify-content:flex-end}.ww\\:gap-1{gap:calc(var(--ww-spacing)*1)}.ww\\:gap-1\\.5{gap:calc(var(--ww-spacing)*1.5)}.ww\\:gap-2{gap:calc(var(--ww-spacing)*2)}.ww\\:gap-3{gap:calc(var(--ww-spacing)*3)}.ww\\:gap-6{gap:calc(var(--ww-spacing)*6)}:where(.ww\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ww-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ww-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.ww\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ww-spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ww-spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}.ww\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ww\\:\\!overflow-hidden{overflow:hidden!important}.ww\\:overflow-hidden{overflow:hidden}.ww\\:overflow-x-auto{overflow-x:auto}.ww\\:overflow-y-auto{overflow-y:auto}.ww\\:overflow-y-hidden{overflow-y:hidden}.ww\\:\\!rounded-full{border-radius:3.40282e38px!important}.ww\\:rounded{border-radius:var(--ww-radius,16px)}.ww\\:rounded-2xl{border-radius:var(--ww-radius-2xl)}.ww\\:rounded-\\[var\\(--ww-radius\\)\\]{border-radius:var(--ww-radius)}.ww\\:rounded-full{border-radius:3.40282e38px}.ww\\:rounded-lg{border-radius:var(--ww-radius-lg)}.ww\\:rounded-md{border-radius:var(--ww-radius-md)}.ww\\:rounded-none{border-radius:0}.ww\\:rounded-xl{border-radius:var(--ww-radius-xl)}.ww\\:border{border-style:var(--tw-border-style);border-width:1px}.ww\\:border-0{border-style:var(--tw-border-style);border-width:0}.ww\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.ww\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ww\\:border-border{border-color:var(--ww-color-border,#e5e7eb)}.ww\\:border-muted-foreground\\/50{border-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:border-muted-foreground\\/50{border-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)50%,transparent)}}.ww\\:bg-accent{background-color:var(--ww-color-accent,#f3f4f6)}.ww\\:bg-background,.ww\\:bg-background\\/20{background-color:var(--ww-color-background,#fff)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-background\\/20{background-color:color-mix(in oklab,var(--ww-color-background,#fff)20%,transparent)}}.ww\\:bg-background\\/80{background-color:var(--ww-color-background,#fff)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-background\\/80{background-color:color-mix(in oklab,var(--ww-color-background,#fff)80%,transparent)}}.ww\\:bg-foreground,.ww\\:bg-foreground\\/5{background-color:var(--ww-color-foreground,#1f2937)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-foreground\\/5{background-color:color-mix(in oklab,var(--ww-color-foreground,#1f2937)5%,transparent)}}.ww\\:bg-input{background-color:var(--ww-color-input,#f9fafb)}.ww\\:bg-muted{background-color:var(--ww-color-muted,#f1f5f9)}.ww\\:bg-muted-foreground\\/60{background-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-muted-foreground\\/60{background-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)60%,transparent)}}.ww\\:bg-muted\\/50{background-color:var(--ww-color-muted,#f1f5f9)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-muted\\/50{background-color:color-mix(in oklab,var(--ww-color-muted,#f1f5f9)50%,transparent)}}.ww\\:bg-primary{background-color:var(--ww-color-primary,#6366f1)}.ww\\:bg-tool-card{background-color:var(--ww-color-tool-card,#f4f4f5)}.ww\\:bg-transparent{background-color:#0000}.ww\\:object-cover{object-fit:cover}.ww\\:p-1{padding:calc(var(--ww-spacing)*1)}.ww\\:p-1\\.5{padding:calc(var(--ww-spacing)*1.5)}.ww\\:p-3{padding:calc(var(--ww-spacing)*3)}.ww\\:px-0{padding-inline:calc(var(--ww-spacing)*0)}.ww\\:px-1\\.5{padding-inline:calc(var(--ww-spacing)*1.5)}.ww\\:px-2{padding-inline:calc(var(--ww-spacing)*2)}.ww\\:px-3{padding-inline:calc(var(--ww-spacing)*3)}.ww\\:px-4{padding-inline:calc(var(--ww-spacing)*4)}.ww\\:px-5{padding-inline:calc(var(--ww-spacing)*5)}.ww\\:px-6{padding-inline:calc(var(--ww-spacing)*6)}.ww\\:\\!py-0{padding-block:calc(var(--ww-spacing)*0)!important}.ww\\:py-0\\.5{padding-block:calc(var(--ww-spacing)*.5)}.ww\\:py-1{padding-block:calc(var(--ww-spacing)*1)}.ww\\:py-2{padding-block:calc(var(--ww-spacing)*2)}.ww\\:py-2\\.5{padding-block:calc(var(--ww-spacing)*2.5)}.ww\\:py-3{padding-block:calc(var(--ww-spacing)*3)}.ww\\:py-6{padding-block:calc(var(--ww-spacing)*6)}.ww\\:py-12{padding-block:calc(var(--ww-spacing)*12)}.ww\\:pt-2{padding-top:calc(var(--ww-spacing)*2)}.ww\\:pt-2\\.5{padding-top:calc(var(--ww-spacing)*2.5)}.ww\\:pt-3{padding-top:calc(var(--ww-spacing)*3)}.ww\\:pr-3{padding-right:calc(var(--ww-spacing)*3)}.ww\\:pb-1{padding-bottom:calc(var(--ww-spacing)*1)}.ww\\:pb-1\\.5{padding-bottom:calc(var(--ww-spacing)*1.5)}.ww\\:pb-2{padding-bottom:calc(var(--ww-spacing)*2)}.ww\\:pb-3{padding-bottom:calc(var(--ww-spacing)*3)}.ww\\:pb-8{padding-bottom:calc(var(--ww-spacing)*8)}.ww\\:pl-4{padding-left:calc(var(--ww-spacing)*4)}.ww\\:text-center{text-align:center}.ww\\:text-left{text-align:left}.ww\\:font-\\[family-name\\:var\\(--ww-font\\)\\]{font-family:var(--ww-font)}.ww\\:font-\\[family-name\\:var\\(--ww-font-sans\\)\\]{font-family:var(--ww-font-sans)}.ww\\:font-mono{font-family:var(--ww-font-mono)}.ww\\:text-base{font-size:var(--ww-text-base);line-height:var(--tw-leading,var(--ww-text-base--line-height))}.ww\\:text-lg{font-size:var(--ww-text-lg);line-height:var(--tw-leading,var(--ww-text-lg--line-height))}.ww\\:text-sm{font-size:var(--ww-text-sm);line-height:var(--tw-leading,var(--ww-text-sm--line-height))}.ww\\:text-xs{font-size:var(--ww-text-xs);line-height:var(--tw-leading,var(--ww-text-xs--line-height))}.ww\\:text-\\[10px\\]{font-size:10px}.ww\\:text-\\[11px\\]{font-size:11px}.ww\\:font-medium{--tw-font-weight:var(--ww-font-weight-medium);font-weight:var(--ww-font-weight-medium)}.ww\\:font-semibold{--tw-font-weight:var(--ww-font-weight-semibold);font-weight:var(--ww-font-weight-semibold)}.ww\\:tracking-wide{--tw-tracking:var(--ww-tracking-wide);letter-spacing:var(--ww-tracking-wide)}.ww\\:tracking-wider{--tw-tracking:var(--ww-tracking-wider);letter-spacing:var(--ww-tracking-wider)}.ww\\:break-words{overflow-wrap:break-word}.ww\\:break-all{word-break:break-all}.ww\\:whitespace-pre-wrap{white-space:pre-wrap}.ww\\:text-background{color:var(--ww-color-background,#fff)}.ww\\:text-foreground,.ww\\:text-foreground\\/80{color:var(--ww-color-foreground,#1f2937)}@supports (color:color-mix(in lab, red, red)){.ww\\:text-foreground\\/80{color:color-mix(in oklab,var(--ww-color-foreground,#1f2937)80%,transparent)}}.ww\\:text-muted-foreground{color:var(--ww-color-muted-foreground,#6b7280)}.ww\\:text-primary{color:var(--ww-color-primary,#6366f1)}.ww\\:text-primary-foreground{color:var(--ww-color-primary-foreground,#1f2937)}.ww\\:uppercase{text-transform:uppercase}.ww\\:opacity-0{opacity:0}.ww\\:opacity-50{opacity:.5}.ww\\:opacity-70{opacity:.7}.ww\\:opacity-100{opacity:1}.ww\\:shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ww\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ww\\:ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ww\\:ring-blue-400\\/70{--tw-ring-color:var(--ww-color-blue-400)}@supports (color:color-mix(in lab, red, red)){.ww\\:ring-blue-400\\/70{--tw-ring-color:color-mix(in oklab,var(--ww-color-blue-400)70%,transparent)}}.ww\\:ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ww\\:ring-offset-background{--tw-ring-offset-color:var(--ww-color-background,#fff)}.ww\\:backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.ww\\:transition-\\[grid-template-rows\\,opacity\\]{transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.ww\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.ww\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.ww\\:ease-out{--tw-ease:var(--ww-ease-out);transition-timing-function:var(--ww-ease-out)}.ww\\:outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.ww\\:group-hover\\:opacity-0:is(:where(.ww\\:group):hover *){opacity:0}.ww\\:group-hover\\:opacity-100:is(:where(.ww\\:group):hover *){opacity:1}}.ww\\:group-\\[\\.is-assistant\\]\\:text-foreground:is(:where(.ww\\:group).is-assistant *){color:var(--ww-color-foreground,#1f2937)}.ww\\:group-\\[\\.is-user\\]\\:ml-auto:is(:where(.ww\\:group).is-user *){margin-left:auto}.ww\\:group-\\[\\.is-user\\]\\:rounded-lg:is(:where(.ww\\:group).is-user *){border-radius:var(--ww-radius-lg)}.ww\\:group-\\[\\.is-user\\]\\:bg-user-bubble:is(:where(.ww\\:group).is-user *){background-color:var(--ww-color-user-bubble,#f4f4f4)}.ww\\:group-\\[\\.is-user\\]\\:px-4:is(:where(.ww\\:group).is-user *){padding-inline:calc(var(--ww-spacing)*4)}.ww\\:group-\\[\\.is-user\\]\\:py-3:is(:where(.ww\\:group).is-user *){padding-block:calc(var(--ww-spacing)*3)}.ww\\:group-\\[\\.is-user\\]\\:text-primary-foreground:is(:where(.ww\\:group).is-user *){color:var(--ww-color-primary-foreground,#1f2937)}.ww\\:placeholder\\:text-muted-foreground::placeholder{color:var(--ww-color-muted-foreground,#6b7280)}@media (hover:hover){.ww\\:hover\\:border-primary\\/30:hover{border-color:var(--ww-color-primary,#6366f1)}@supports (color:color-mix(in lab, red, red)){.ww\\:hover\\:border-primary\\/30:hover{border-color:color-mix(in oklab,var(--ww-color-primary,#6366f1)30%,transparent)}}.ww\\:hover\\:bg-accent:hover{background-color:var(--ww-color-accent,#f3f4f6)}.ww\\:hover\\:bg-foreground:hover{background-color:var(--ww-color-foreground,#1f2937)}.ww\\:hover\\:bg-muted:hover{background-color:var(--ww-color-muted,#f1f5f9)}.ww\\:hover\\:bg-muted-foreground\\/10:hover{background-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:hover\\:bg-muted-foreground\\/10:hover{background-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)10%,transparent)}}.ww\\:hover\\:bg-primary\\/90:hover{background-color:var(--ww-color-primary,#6366f1)}@supports (color:color-mix(in lab, red, red)){.ww\\:hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab,var(--ww-color-primary,#6366f1)90%,transparent)}}.ww\\:hover\\:text-accent-foreground:hover{color:var(--ww-color-accent-foreground,#1f2937)}.ww\\:hover\\:text-foreground:hover{color:var(--ww-color-foreground,#1f2937)}.ww\\:hover\\:underline:hover{text-decoration-line:underline}}.ww\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.ww\\:disabled\\:opacity-40:disabled{opacity:.4}.ww\\:disabled\\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.ww\\:sm\\:inset-auto{inset:auto}.ww\\:sm\\:right-0{right:calc(var(--ww-spacing)*0)}.ww\\:sm\\:right-4{right:calc(var(--ww-spacing)*4)}.ww\\:sm\\:right-auto{right:auto}.ww\\:sm\\:bottom-4{bottom:calc(var(--ww-spacing)*4)}.ww\\:sm\\:left-0{left:calc(var(--ww-spacing)*0)}.ww\\:sm\\:left-4{left:calc(var(--ww-spacing)*4)}.ww\\:sm\\:left-auto{left:auto}.ww\\:sm\\:mx-auto{margin-inline:auto}.ww\\:sm\\:h-\\[640px\\]{height:640px}.ww\\:sm\\:max-h-\\[calc\\(100dvh-2rem\\)\\]{max-height:calc(100dvh - 2rem)}.ww\\:sm\\:w-\\[calc\\(100vw-2rem\\)\\]{width:calc(100vw - 2rem)}.ww\\:sm\\:max-w-\\[480px\\]{max-width:480px}.ww\\:sm\\:rounded-2xl{border-radius:var(--ww-radius-2xl)}.ww\\:sm\\:border{border-style:var(--tw-border-style);border-width:1px}.ww\\:sm\\:border-border{border-color:var(--ww-color-border,#e5e7eb)}.ww\\:sm\\:text-sm{font-size:var(--ww-text-sm);line-height:var(--tw-leading,var(--ww-text-sm--line-height))}}.ww\\:\\[\\&\\>\\*\\:first-child\\]\\:mt-0>:first-child{margin-top:calc(var(--ww-spacing)*0)}.ww\\:\\[\\&\\>\\*\\:last-child\\]\\:mb-0>:last-child{margin-bottom:calc(var(--ww-spacing)*0)}}@keyframes ww-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes ww-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}@keyframes ww-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@keyframes ww-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){[data-waniwani-chat] [data-waniwani-shimmer]{color:var(--ww-color-muted-foreground)!important;animation:none!important}}[data-waniwani-floating]{transition:opacity .28s,transform .28s,visibility 0s linear .28s}[data-waniwani-floating][data-state=shown]{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .28s,transform .28s,visibility;transform:translateY(0)}[data-waniwani-floating][data-state=hidden]{opacity:0;visibility:hidden;pointer-events:none}[data-waniwani-floating=dock][data-state=hidden]{transform:translateY(.5rem)}[data-waniwani-floating=panel][data-state=hidden]{transform:translateY(2rem)}@media (prefers-reduced-motion:reduce){[data-waniwani-floating]{transition:visibility 0s linear 10ms}[data-waniwani-floating][data-state=shown]{transition:visibility}}[data-waniwani-chat] ::-webkit-scrollbar{width:8px}[data-waniwani-chat] ::-webkit-scrollbar-track{background:0 0}[data-waniwani-chat] ::-webkit-scrollbar-thumb{background:var(--ww-color-border);border-radius:9999px}[data-waniwani-chat] ::-webkit-scrollbar-thumb:hover{background:var(--ww-color-muted-foreground)}[data-waniwani-chat] *{scrollbar-width:thin;scrollbar-color:var(--ww-color-border)transparent}[data-waniwani-chat]{--ww-color-background:var(--ww-bg,#fff);--ww-color-foreground:var(--ww-text,#1f2937);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#1f2937);--ww-color-muted-foreground:var(--ww-muted,#6b7280);--ww-color-border:var(--ww-border,#e5e7eb);--ww-color-input:var(--ww-input-bg,#f9fafb);--ww-color-accent:var(--ww-assistant-bubble,#f3f4f6);--ww-color-accent-foreground:var(--ww-text,#1f2937);--ww-color-user-bubble:var(--ww-user-bubble,#f4f4f4);--ww-color-card:var(--ww-bg,#fff);--ww-color-card-foreground:var(--ww-text,#1f2937);--ww-color-card-header:var(--ww-header-bg,#fff);--ww-color-card-header-foreground:var(--ww-header-text,#1f2937);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#f4f4f5);--ww-radius:var(--ww-radius,16px);--ww-font-sans:var(--ww-font,system-ui,-apple-system,\"Segoe UI\",sans-serif);border-style:solid;border-width:var(--ww-border-width,0);border-color:var(--ww-color-border);box-shadow:var(--ww-shadow,none)}.dark [data-waniwani-chat],[data-waniwani-chat].dark{--ww-color-background:var(--ww-bg,#212121);--ww-color-foreground:var(--ww-text,#ececec);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#fff);--ww-color-muted-foreground:var(--ww-muted,#8e8ea0);--ww-color-border:var(--ww-border,#444);--ww-color-input:var(--ww-input-bg,#2f2f2f);--ww-color-accent:var(--ww-assistant-bubble,#2f2f2f);--ww-color-accent-foreground:var(--ww-text,#ececec);--ww-color-user-bubble:var(--ww-user-bubble,#303030);--ww-color-card:var(--ww-bg,#212121);--ww-color-card-foreground:var(--ww-text,#ececec);--ww-color-card-header:var(--ww-header-bg,#1e1e1e);--ww-color-card-header-foreground:var(--ww-header-text,#ececec);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#262626)}@media (prefers-color-scheme:dark){[data-waniwani-chat][data-color-scheme=auto]{--ww-color-background:var(--ww-bg,#212121);--ww-color-foreground:var(--ww-text,#ececec);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#fff);--ww-color-muted-foreground:var(--ww-muted,#8e8ea0);--ww-color-border:var(--ww-border,#444);--ww-color-input:var(--ww-input-bg,#2f2f2f);--ww-color-accent:var(--ww-assistant-bubble,#2f2f2f);--ww-color-accent-foreground:var(--ww-text,#ececec);--ww-color-user-bubble:var(--ww-user-bubble,#303030);--ww-color-card:var(--ww-bg,#212121);--ww-color-card-foreground:var(--ww-text,#ececec);--ww-color-card-header:var(--ww-header-bg,#1e1e1e);--ww-color-card-header-foreground:var(--ww-header-text,#ececec);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#262626)}}[data-waniwani-chat] [data-streamdown=table-wrapper]{flex-direction:column;gap:.5rem;margin-top:1rem;margin-bottom:1rem;display:flex}[data-waniwani-chat] [data-streamdown=table-wrapper]>div:first-child:has(button){justify-content:flex-end;align-items:center;gap:.25rem;display:flex}[data-waniwani-chat] [data-streamdown=table-wrapper]>div:last-child{overflow-x:auto}[data-waniwani-chat] [data-streamdown=table]{border-collapse:collapse;border:1px solid var(--ww-color-border);border-radius:.75rem;width:100%;overflow:hidden}[data-waniwani-chat] [data-streamdown=table-header]{background-color:var(--ww-color-accent)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=table-header]{background-color:color-mix(in srgb,var(--ww-color-accent)80%,transparent)}}[data-waniwani-chat] [data-streamdown=table-body]{background-color:var(--ww-color-accent)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=table-body]{background-color:color-mix(in srgb,var(--ww-color-accent)40%,transparent)}}[data-waniwani-chat] [data-streamdown=table-body]>tr+tr{border-top:1px solid var(--ww-color-border)}[data-waniwani-chat] [data-streamdown=table-row]{border-bottom:1px solid var(--ww-color-border)}[data-waniwani-chat] [data-streamdown=table-header-cell]{white-space:nowrap;text-align:left;padding:.5rem 1rem;font-size:.875rem;font-weight:600}[data-waniwani-chat] [data-streamdown=table-cell]{padding:.5rem 1rem;font-size:.875rem}[data-waniwani-chat] [data-streamdown=link]{color:var(--ww-color-primary);overflow-wrap:anywhere;cursor:pointer;font-weight:500;text-decoration:underline}[data-waniwani-chat].dark [data-streamdown=link],.dark [data-waniwani-chat] [data-streamdown=link]{color:var(--ww-color-primary)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat].dark [data-streamdown=link],.dark [data-waniwani-chat] [data-streamdown=link]{color:color-mix(in oklab,var(--ww-color-primary)55%,white)}}@media (prefers-color-scheme:dark){[data-waniwani-chat][data-color-scheme=auto] [data-streamdown=link]{color:var(--ww-color-primary)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat][data-color-scheme=auto] [data-streamdown=link]{color:color-mix(in oklab,var(--ww-color-primary)55%,white)}}}[data-waniwani-chat].dark [data-waniwani-logo],.dark [data-waniwani-chat] [data-waniwani-logo]{filter:invert()}@media (prefers-color-scheme:dark){[data-waniwani-chat][data-color-scheme=auto] [data-waniwani-logo]{filter:invert()}}[data-waniwani-chat] [data-streamdown=link-safety-modal]{z-index:50;background-color:var(--ww-color-background);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=link-safety-modal]{background-color:color-mix(in srgb,var(--ww-color-background)50%,transparent)}}[data-waniwani-chat] [data-streamdown=link-safety-modal]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div{border:1px solid var(--ww-color-border);background-color:var(--ww-color-background);width:100%;max-width:28rem;color:var(--ww-color-foreground);border-radius:.75rem;flex-direction:column;gap:1rem;margin:0 1rem;padding:1.5rem;display:flex;position:relative;box-shadow:0 10px 25px #0000001a}[data-waniwani-chat] [data-streamdown=link-safety-modal] button{cursor:pointer}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>button:first-child{color:var(--ww-color-muted-foreground);background:0 0;border:none;border-radius:.375rem;padding:.25rem;transition:background-color .15s,color .15s;position:absolute;top:1rem;right:1rem}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>button:first-child:hover{background-color:var(--ww-color-accent);color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type{flex-direction:column;gap:.5rem;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type>div{align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type>p{color:var(--ww-color-muted-foreground);font-size:.875rem}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:nth-child(3){word-break:break-all;background-color:var(--ww-color-accent);border-radius:.375rem;max-height:8rem;padding:.75rem;font-family:ui-monospace,monospace;font-size:.875rem;overflow-y:auto}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child{gap:.5rem;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button{border:none;border-radius:.375rem;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .15s;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:first-child{border:1px solid var(--ww-color-border);background-color:var(--ww-color-background);color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:first-child:hover{background-color:var(--ww-color-accent)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:last-child{background-color:var(--ww-color-primary);color:#fff}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:last-child:hover{opacity:.9}[data-waniwani-chat] [data-streamdown=ordered-list]{white-space:normal;list-style-type:decimal;list-style-position:inside}[data-waniwani-chat] li [data-streamdown=ordered-list]{padding-left:1.5rem}[data-waniwani-chat] [data-streamdown=unordered-list]{white-space:normal;list-style-type:disc;list-style-position:inside}[data-waniwani-chat] li [data-streamdown=unordered-list]{padding-left:1.5rem}[data-waniwani-chat] [data-streamdown=list-item]{padding-top:.25rem;padding-bottom:.25rem}[data-waniwani-chat] [data-streamdown=list-item]>p{display:inline}[data-waniwani-chat] [data-streamdown=inline-code]{background-color:var(--ww-color-accent);border-radius:.25rem;padding:.125rem .375rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:.875rem}[data-waniwani-chat] [data-streamdown=heading-1]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.875rem;font-weight:600;line-height:2.25rem}[data-waniwani-chat] [data-streamdown=heading-2]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.5rem;font-weight:600;line-height:2rem}[data-waniwani-chat] [data-streamdown=heading-3]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.25rem;font-weight:600;line-height:1.75rem}[data-waniwani-chat] [data-streamdown=heading-4]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.125rem;font-weight:600;line-height:1.75rem}[data-waniwani-chat] [data-streamdown=heading-5]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1rem;font-weight:600;line-height:1.5rem}[data-waniwani-chat] [data-streamdown=heading-6]{margin-top:1.5rem;margin-bottom:.5rem;font-size:.875rem;font-weight:600;line-height:1.25rem}[data-waniwani-chat] [data-streamdown=blockquote]{border-left:4px solid var(--ww-color-muted-foreground);margin-top:1rem;margin-bottom:1rem}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=blockquote]{border-left:4px solid color-mix(in srgb,var(--ww-color-muted-foreground)30%,transparent)}}[data-waniwani-chat] [data-streamdown=blockquote]{color:var(--ww-color-muted-foreground);padding-left:1rem;font-style:italic}[data-waniwani-chat] [data-streamdown=horizontal-rule]{border-color:var(--ww-color-border);margin-top:1.5rem;margin-bottom:1.5rem}[data-waniwani-chat] [data-streamdown=strong]{font-weight:600}[data-waniwani-chat] [data-streamdown=image-wrapper]{margin-top:1rem;margin-bottom:1rem;display:inline-block;position:relative}[data-waniwani-chat] [data-streamdown=image]{border-radius:.5rem;max-width:100%}[data-waniwani-chat] [data-streamdown=code-block]{border:1px solid var(--ww-color-border);border-radius:.75rem;width:100%;margin-top:1rem;margin-bottom:1rem;overflow:hidden}[data-waniwani-chat] [data-streamdown=code-block-header]{background-color:var(--ww-color-accent);justify-content:space-between;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=code-block-header]{background-color:color-mix(in srgb,var(--ww-color-accent)80%,transparent)}}[data-waniwani-chat] [data-streamdown=code-block-header]{color:var(--ww-color-muted-foreground);padding:.75rem;font-size:.75rem}[data-waniwani-chat] [data-streamdown=code-block-body]{padding:1rem;font-size:.875rem;overflow-x:auto}[data-waniwani-chat] [data-streamdown=code-block-copy-button],[data-waniwani-chat] [data-streamdown=code-block-download-button]{cursor:pointer;color:var(--ww-color-muted-foreground);background:0 0;border:none;padding:.25rem;transition:color .15s}[data-waniwani-chat] [data-streamdown=code-block-copy-button]:hover,[data-waniwani-chat] [data-streamdown=code-block-download-button]:hover{color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=mermaid-block]{border:1px solid var(--ww-color-border);border-radius:.75rem;height:auto;margin-top:1rem;margin-bottom:1rem;padding:1rem;position:relative}[data-waniwani-chat] [data-streamdown=mermaid]{width:100%;height:100%}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}",zt=null,Wr=null,ra=null,kf=null,_H="waniwani-chat-sizing",OH="waniwani-chat-defaults",PH="waniwani-chat-chrome",NH="waniwani-chat-auto-card",BH=`:where([data-waniwani-embed]){height:${L0}}`,UH=":where([data-waniwani-embed]){border-radius:16px;overflow:hidden}",zH=":where([data-waniwani-embed]){border-style:solid;border-width:var(--ww-border-width,0);border-color:var(--ww-border,transparent);box-shadow:var(--ww-shadow,none)}",qH=":where([data-waniwani-embed][data-waniwani-auto]){width:100%;max-width:28rem;margin-inline:auto;border-radius:16px;overflow:hidden;border-style:solid;border-width:var(--ww-border-width,1px);border-color:var(--ww-border,rgba(0,0,0,0.1));box-shadow:var(--ww-shadow,0 10px 30px rgba(0,0,0,0.08))}";function Tf(e,t){if(typeof document>"u"||document.getElementById(e))return;let a=document.createElement("style");a.id=e,a.textContent=t,document.head.appendChild(a)}function FH(e,t){let a=t.appearance?.variables;!a||!(e instanceof HTMLElement)||(typeof a.borderWidth=="number"&&e.style.setProperty("--ww-border-width",`${a.borderWidth}px`),a.borderColor&&e.style.setProperty("--ww-border",a.borderColor),a.boxShadow&&e.style.setProperty("--ww-shadow",a.boxShadow))}function kR(e,t){if(Dx&&Dx!=="__WANIWANI_EMBED_CSS__"){let n=document.createElement("style");n.textContent=Dx,e.appendChild(n)}let a=document.createElement("style");if(a.textContent="[data-waniwani-chat]{border-width:0;box-shadow:none}",e.appendChild(a),t.css)try{let n=new URL(t.css,window.location.href);if(n.protocol==="https:"||n.protocol==="http:"){let r=document.createElement("link");r.rel="stylesheet",r.href=n.href,e.appendChild(r)}else console.warn("[WaniWani] Custom CSS URL must use http or https protocol.")}catch{console.warn("[WaniWani] Invalid custom CSS URL:",t.css)}}var IR="data-waniwani-embed",_x="data-waniwani-auto";function HH(e){let t=document.querySelector(`[${IR}]`);if(t)return t;let a=document.createElement("div");a.setAttribute(IR,""),a.setAttribute(_x,"");let n=e?!!document.head?.contains(e):!1;return e?.parentNode&&!n?e.parentNode.insertBefore(a,e):document.body.appendChild(a),a}function jH(e){return/^\d+$/.test(e.trim())?`${e.trim()}px`:e.trim()}function VH(e,t,a,n){let r=HH(n);Tf(_H,BH),e.height&&r instanceof HTMLElement&&(r.style.height=jH(e.height)),e.appearance?.theme&&Tf(OH,UH),Tf(PH,zH),r.hasAttribute(_x)&&Tf(NH,qH),FH(r,e),ra=document.createElement("div"),ra.id="waniwani-chat-embed",ra.style.cssText="width:100%;height:100%;max-height:inherit;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;",r.appendChild(ra);let o=ra,l=()=>{let c=getComputedStyle(r);if(!c.maxHeight.endsWith("px")){o.style.removeProperty("max-height");return}let d=Number.parseFloat(c.maxHeight);if(!Number.isFinite(d)){o.style.removeProperty("max-height");return}let f=d;c.boxSizing==="border-box"&&(f-=(Number.parseFloat(c.paddingTop)||0)+(Number.parseFloat(c.paddingBottom)||0)+(Number.parseFloat(c.borderTopWidth)||0)+(Number.parseFloat(c.borderBottomWidth)||0)),f>0?o.style.maxHeight=`${f}px`:o.style.removeProperty("max-height")};l(),kf=new ResizeObserver(l),kf.observe(r);let i=ra.attachShadow({mode:"open"});kR(i,e);let s=document.createElement("div");s.className="ww:contents",i.appendChild(s);let u=nu.default.createRef();return Wr=Ox.default.createRoot(s),Wr.render(nu.default.createElement(SR,{ref:u,config:e,programmatic:t,scriptConfig:a})),{destroy:()=>{kf?.disconnect(),kf=null,Wr?.unmount(),Wr=null,ra?.remove(),ra=null,r.hasAttribute(_x)&&r.remove(),zt=null},open:()=>{},close:()=>{},toggle:()=>{},sendMessage:c=>u.current?.chat?.sendMessage(c),sendMessageAndWait:async c=>{let d=u.current?.chat;if(d)return await d.sendMessageAndWait(c)},reset:()=>u.current?.chat?.reset(),focus:()=>u.current?.chat?.focus(),getMessages:()=>u.current?.chat?.messages??[],getSessionId:()=>u.current?.chat?.sessionId}}function GH(e,t,a){ra=document.createElement("div"),ra.id="waniwani-chat-embed",ra.style.cssText="position:fixed;inset:0;z-index:2147483000;pointer-events:none;",document.body.appendChild(ra);let n=ra.attachShadow({mode:"open"});kR(n,e);let r=document.createElement("div");r.className="ww:contents",n.appendChild(r);let o=nu.default.createRef();return Wr=Ox.default.createRoot(r),Wr.render(nu.default.createElement(bR,{ref:o,config:e,programmatic:t,scriptConfig:a})),{destroy:()=>{Wr?.unmount(),Wr=null,ra?.remove(),ra=null,zt=null},open:()=>o.current?.open(),close:()=>o.current?.close(),toggle:()=>o.current?.toggle(),sendMessage:l=>o.current?.sendMessage(l),sendMessageAndWait:async l=>{if(o.current)return o.current.sendMessageAndWait(l)},reset:()=>o.current?.reset(),focus:()=>o.current?.focus(),getMessages:()=>o.current?.getMessages()??[],getSessionId:()=>o.current?.getSessionId()}}function TR(e){if(zt)return console.warn("[WaniWani] Chat widget is already initialized. Call destroy() first to re-initialize."),zt;let t=gh(),a=zc(),n=es(e,void 0,a);return zt=n.mode==="floating"?GH(n,e,a):VH(n,e,a,t),zt}function WH(){zt&&zt.destroy()}window.WaniWani=window.WaniWani||{};window.WaniWani.chat={init:TR,destroy:WH,open:()=>zt?.open(),close:()=>zt?.close(),toggle:()=>zt?.toggle(),sendMessage:e=>zt?.sendMessage(e),sendMessageAndWait:async e=>{if(zt)return zt.sendMessageAndWait(e)},reset:()=>zt?.reset(),focus:()=>zt?.focus(),getMessages:()=>zt?.getMessages()??[],getSessionId:()=>zt?.getSessionId()};function LR(){if(zc().token)try{TR()}catch(t){console.error("[WaniWani] Auto-initialization failed:",t)}}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",LR):LR();})();
138
+ `);a=i.pop()??"";for(let s of i){let u=s.trim();if(!u.startsWith("data:"))continue;let c=u.slice(5).trim();if(c!=="[DONE]")try{let d=JSON.parse(c);if(!r){l.enqueue(d);continue}let f=await r(d);if(f.success){l.enqueue(f.value);continue}let p=oH(f.error);if(p?.length){let g={...d};for(let v of p)delete g[v];let w=await r(g);w.success&&l.enqueue(w.value)}}catch{}}}}))}};var lH="waniwani-memory";var Aa="threads",xf="by_memoryUserId",iH="by_updatedAt";var lR="memoryUserId",oR="waniwani-memory-user-id",Ix=null;function Lx(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function sH(e,t){if(t<1&&(e.objectStoreNames.contains("ids")||e.createObjectStore("ids")),t<2&&!e.objectStoreNames.contains(Aa)){let a=e.createObjectStore(Aa,{keyPath:"threadId"});a.createIndex(xf,"memoryUserId",{unique:!1}),a.createIndex(iH,"updatedAt",{unique:!1})}}async function kx(){return new Promise((e,t)=>{let a=indexedDB.open(lH,2);a.onupgradeneeded=n=>{sH(a.result,n.oldVersion)},a.onsuccess=()=>e(a.result),a.onerror=()=>t(a.error)})}async function uH(){return kx()}async function cH(e){return new Promise((t,a)=>{let o=e.transaction("ids","readonly").objectStore("ids").get(lR);o.onsuccess=()=>t(typeof o.result=="string"?o.result:null),o.onerror=()=>a(o.error)})}async function dH(e,t){return new Promise((a,n)=>{let l=e.transaction("ids","readwrite").objectStore("ids").put(t,lR);l.onsuccess=()=>a(),l.onerror=()=>n(l.error)})}async function fH(){if(typeof indexedDB>"u")return null;try{let e=await uH();try{let t=await cH(e);if(t)return t;let a=Lx();return await dH(e,a),a}finally{e.close()}}catch{return null}}function pH(){try{let e=localStorage.getItem(oR);if(e)return e;let t=Lx();return localStorage.setItem(oR,t),t}catch{return null}}async function iR(){let e=await fH();if(e)return e;let t=pH();return t||(Ix||(Ix=Lx()),Ix)}var sR=50,uR=1e3;function wf(e){if(!e||typeof e!="object")return!1;let t=e;return typeof t.threadId=="string"&&typeof t.memoryUserId=="string"&&typeof t.title=="string"&&Array.isArray(t.messages)&&typeof t.createdAt=="string"&&typeof t.updatedAt=="string"}async function vf(e){if(typeof indexedDB>"u")return null;let t=null;try{return t=await kx(),await e(t)}catch{return null}finally{try{t?.close()}catch{}}}function Tx(e){return new Promise((t,a)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>a(e.error)})}async function Mx(e){return await vf(async a=>{let o=a.transaction(Aa,"readonly").objectStore(Aa).index(xf),i=(await Tx(o.getAll(e))??[]).filter(wf);return i.sort((s,u)=>s.updatedAt<u.updatedAt?1:-1),i})??[]}async function bf(e){return await vf(async a=>{let r=a.transaction(Aa,"readonly").objectStore(Aa),o=await Tx(r.get(e));return wf(o)?o:null})??null}async function Ax(e){if(!wf(e))return;let t=e.messages.length>uR?{...e,messages:e.messages.slice(e.messages.length-uR)}:e;await vf(async a=>{await new Promise((s,u)=>{let c=a.transaction(Aa,"readwrite");c.oncomplete=()=>s(),c.onerror=()=>u(c.error),c.onabort=()=>u(c.error),c.objectStore(Aa).put(t)});let n=a.transaction(Aa,"readwrite"),r=n.objectStore(Aa),o=r.index(xf),i=(await Tx(o.getAll(t.memoryUserId))??[]).filter(wf);if(i.length>sR){i.sort((u,c)=>u.updatedAt<c.updatedAt?-1:1);let s=i.slice(0,i.length-sR);for(let u of s)r.delete(u.threadId)}return await new Promise((s,u)=>{n.oncomplete=()=>s(),n.onerror=()=>u(n.error),n.onabort=()=>u(n.error)}),null})}async function cR(e){await vf(async t=>(await new Promise((a,n)=>{let r=t.transaction(Aa,"readwrite");r.oncomplete=()=>a(),r.onerror=()=>n(r.error),r.onabort=()=>n(r.error),r.objectStore(Aa).delete(e)}),null))}async function Ex(e){return(await Mx(e))[0]?.threadId??null}function dR(e){let t=e.trim();if(!t)return`Conversation on ${new Date().toISOString().slice(0,10)}`;let a=t.split(/\r?\n/,1)[0]??t;return a.length<=60?a:`${a.slice(0,60).trimEnd()}\u2026`}var fR="waniwani-visitor-id";function pR(e,t){return e.match(t)?.[1]??null}function mH(e){let t=[["Edge",/Edg(?:e|A|iOS)?\/(\S+)/],["Opera",/(?:OPR|Opera)\/(\S+)/],["Samsung Internet",/SamsungBrowser\/(\S+)/],["Firefox",/Firefox\/(\S+)/],["Chrome",/Chrome\/(\S+)/],["Safari",/Version\/(\S+).*Safari/]];for(let[a,n]of t){let r=pR(e,n);if(r)return{name:a,version:r}}return null}function hH(e){let t=[["iOS",/(?:iPhone|iPad|iPod).+?OS (\d+[_.\d]*)/],["Android",/Android (\d+[.\d]*)/],["macOS",/Mac OS X (\d+[_.\d]*)/],["Windows",/Windows NT (\d+[.\d]*)/],["ChromeOS",/CrOS \S+ (\d+[.\d]*)/],["Linux",/Linux/]];for(let[a,n]of t){let r=pR(e,n);if(r)return{name:a,version:r.replace(/_/g,".")};if(a==="Linux"&&n.test(e))return{name:a,version:""}}return null}function gH(e){return typeof navigator<"u"&&"userAgentData"in navigator&&navigator.userAgentData?.mobile?"mobile":/iPad|tablet|PlayBook/i.test(e)?"tablet":/Mobi|Android.*Mobile|iPhone|iPod/i.test(e)?"mobile":"desktop"}async function yH(e){let t=new TextEncoder().encode(e),a=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(a)).map(n=>n.toString(16).padStart(2,"0")).join("")}async function xH(){try{let a=localStorage.getItem(fR);if(a)return a}catch{}let e=[navigator.userAgent,screen.width,screen.height,screen.colorDepth,Intl.DateTimeFormat().resolvedOptions().timeZone,navigator.language,navigator.hardwareConcurrency??"",navigator.platform??""].join("|"),t=await yH(e);try{localStorage.setItem(fR,t)}catch{}return t}async function Rx(){let e=navigator.userAgent,[t,a]=await Promise.all([xH(),iR()]);return{userAgent:e,browser:mH(e),os:hH(e),deviceType:gH(e),language:navigator.language,languages:[...navigator.languages],timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,screenWidth:screen.width,screenHeight:screen.height,viewportWidth:window.innerWidth,viewportHeight:window.innerHeight,colorDepth:screen.colorDepth,devicePixelRatio:window.devicePixelRatio??1,touchSupport:"ontouchstart"in window||navigator.maxTouchPoints>0,connectionType:navigator.connection?.effectiveType??"unknown",referrer:document.referrer,visitorId:t,memoryUserId:a}}var wH="x-session-id",vH=250;function mR(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():hs()}function Sf(){return new Date().toISOString()}function hR(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}async function bH(e,t){let a=`${e.replace(/\/$/,"")}/tools`,n=await fetch(a,{method:"GET",headers:t?{...t}:void 0});if(!n.ok)throw new Error(`[WaniWani] Failed to fetch /tools: ${n.status} ${n.statusText}`);let r=await n.json();if(!r||!Array.isArray(r.tools))return{};let o={};for(let l of r.tools)l&&typeof l.name=="string"&&(o[l.name]=l);return o}function gR(e){let{api:t="/api/waniwani",headers:a,body:n,onMessageSent:r,onResponseReceived:o,enableThreadHistory:l=!1,activeThreadId:i,onThreadChange:s}=e,u=(0,X.useRef)(a),c=(0,X.useRef)(n),d=(0,X.useRef)(l);(0,X.useEffect)(()=>{d.current=l},[l]);let f=(0,X.useRef)(void 0),p=(0,X.useRef)(null),[g,w]=(0,X.useState)(void 0),v=(0,X.useRef)(g),[y,x]=(0,X.useState)(i),h=(0,X.useRef)(y),[C,A]=(0,X.useState)([]),[b,M]=(0,X.useState)(!l),E=(0,X.useRef)(void 0),_=(0,X.useRef)(void 0),k=(0,X.useRef)(void 0),U=(0,X.useRef)(void 0),P=(0,X.useRef)(0),R=(0,X.useRef)(s);(0,X.useEffect)(()=>{R.current=s},[s]);let V=(0,X.useCallback)(B=>{h.current=B,x(B),B&&R.current?.(B)},[]),G=(0,X.useCallback)(async()=>{if(!l)return;let B=p.current?.memoryUserId;if(!B)return;let ae=await Mx(B);A(ae)},[l]),ee=(0,X.useCallback)(()=>v.current,[]),pe=(0,X.useCallback)(B=>{let ae=hR(B);ae&&v.current!==ae&&(v.current=ae,w(ae))},[]),Q=(0,X.useCallback)(()=>{v.current=void 0,w(void 0)},[]);(0,X.useEffect)(()=>{u.current=a},[a]),(0,X.useEffect)(()=>{c.current=n},[n]),(0,X.useEffect)(()=>{let B=!1,ae=P.current;return(async()=>{try{let ct=await Rx();if(B)return;p.current=ct}catch{}if(!l)return;let J=p.current?.memoryUserId;if(!J){M(!0);return}try{let ct=i??await Ex(J);if(B||ae!==P.current)return;if(ct){let je=await bf(ct);if(B||ae!==P.current)return;je&&je.memoryUserId===J&&(h.current=je.threadId,x(je.threadId),E.current=je.createdAt,_.current=je.title,je.sessionId&&(v.current=je.sessionId,w(je.sessionId)),Be(je.messages))}await G()}finally{B||M(!0)}})(),()=>{B=!0}},[]);let fe=(0,X.useRef)(new yf({api:t,headers:()=>({...u.current}),body:()=>{let B={...c.current??{}},ae=Object.hasOwn(B,"sessionId"),J=hR(B.sessionId);if(J)pe(J),B.sessionId=J;else if(ae)Q(),delete B.sessionId;else{let Za=ee();Za&&(B.sessionId=Za)}if(Wl(f.current)&&(B.modelContext=f.current),p.current){let Za=p.current;B.visitorContext={timezone:Za.timezone,language:Za.language,languages:Za.languages,deviceType:Za.deviceType,referrer:Za.referrer,visitorId:Za.visitorId};let Sn=typeof B.visitor=="object"&&B.visitor!==null?B.visitor:{},MR=typeof Sn.client=="object"&&Sn.client!==null?Sn.client:{};B.visitor={...Sn,client:{...MR,memoryUserId:Za.memoryUserId}}}let ct=typeof B.extra=="object"&&B.extra!==null&&!Array.isArray(B.extra)?B.extra:void 0,je=p.current?.memoryUserId,At=p.current?.language,lu={};if(je&&(lu.memoryUserId=je),At&&(lu.locale=At),(Object.keys(lu).length>0||ct)&&(B.extra={...lu,...ct??{}}),d.current)if(Object.hasOwn(B,"threadId"))typeof B.threadId=="string"&&(h.current=B.threadId);else{let Sn=h.current;Sn||(Sn=mR(),E.current=Sf(),_.current=void 0,V(Sn)),B.threadId=Sn}return B},fetch:(async(B,ae)=>{let J=await fetch(B,ae);return f.current=void 0,pe(J.headers.get(wH)),J})})),I=(0,X.useRef)(null),st=(0,X.useRef)(null),ut=(0,X.useRef)({}),[L,xt]=(0,X.useState)(0),$e=e.skipRemoteConfig===!0,Ot=(0,X.useCallback)(async()=>{if(!$e)try{let B=await bH(t,u.current);ut.current=B,xt(ae=>ae+1)}catch(B){console.warn("[WaniWani] Failed to fetch tool definitions:",B instanceof Error?B.message:B)}},[t,$e]);(0,X.useEffect)(()=>{Ot()},[Ot]);let{messages:Ne,sendMessage:oe,setMessages:Be,status:ce}=rR({messages:e.initialMessages,transport:fe.current,onFinish({message:B}){o?.(),I.current&&(st.current=B)},onError(B){console.warn("[WaniWani] Chat error:",B.message),I.current&&(I.current.reject(B),I.current=null)}}),ge=(0,X.useRef)(Ne);(0,X.useEffect)(()=>{ge.current=Ne},[Ne]);let ve=(0,X.useRef)(l);(0,X.useEffect)(()=>{if(!l||ve.current||(ve.current=!0,ge.current.length>0))return;let B=!1,ae=P.current;return M(!1),(async()=>{try{let J=p.current;if(!J)try{J=await Rx(),p.current=J}catch{}let ct=J?.memoryUserId;if(!ct||B||ae!==P.current){B||M(!0);return}let je=i??await Ex(ct);if(B||ae!==P.current)return;if(je){let At=await bf(je);if(B||ae!==P.current)return;At&&At.memoryUserId===ct&&(h.current=At.threadId,x(At.threadId),E.current=At.createdAt,_.current=At.title,At.sessionId&&(v.current=At.sessionId,w(At.sessionId)),Be(At.messages))}await G()}finally{B||M(!0)}})(),()=>{B=!0}},[l]),(0,X.useEffect)(()=>{if(ce==="ready"&&I.current&&st.current){let B=I.current,ae=st.current;I.current=null,st.current=null,B.resolve(ae)}},[ce]);let[j,Y]=(0,X.useState)(""),[Ie,Je]=(0,X.useState)([]),Mt=ce==="submitted"||ce==="streaming",ha=(0,X.useCallback)(B=>{Je(ae=>ae.filter(J=>J.id!==B))},[]),$a=Mt&&Ie.length>0,ru=(0,X.useCallback)(B=>{let ae=!!B.text?.trim(),J=!!B.files?.length;if(ae||J){if(Mt){if(Ie.length>0)return;Je(ct=>[...ct,{id:hs(),text:B.text||"",files:B.files??[],modelContext:B.modelContext}]),Y("");return}f.current=B.modelContext,oe({text:B.text||"",files:B.files}),r?.(B.text||""),Y("")}},[oe,r,Mt,Ie.length]),Mf=(0,X.useCallback)(B=>new Promise((ae,J)=>{I.current={resolve:ae,reject:J},oe({text:B}),r?.(B)}),[oe,r]);(0,X.useEffect)(()=>{if(ce!=="ready"||Ie.length===0)return;let[B,...ae]=Ie;Je(ae),f.current=B.modelContext,oe({text:B.text,files:B.files.length>0?B.files:void 0}),r?.(B.text)},[ce,oe,r,Ie]);let Af=(0,X.useCallback)(()=>{Be([]),Je([]),Q(),Y(""),ut.current={},xt(B=>B+1),Ot()},[Be,Q,Ot]),No=(0,X.useCallback)(()=>{if(!d.current)return;let B=p.current?.memoryUserId,ae=h.current,J=ge.current;if(!(!B||!ae||J.length===0)){if(E.current||(E.current=Sf()),!_.current){let ct=J.find(At=>At.role==="user"),je=ct?ct.parts.map(At=>"text"in At&&typeof At.text=="string"?At.text:"").join(" "):"";_.current=dR(je)}return{threadId:ae,memoryUserId:B,title:_.current,messages:J,sessionId:v.current,createdAt:E.current,updatedAt:Sf()}}},[]),ou=(0,X.useCallback)(async()=>{let B=No();B&&(await Ax(B),await G())},[No,G]);(0,X.useEffect)(()=>{if(l&&b&&!(ce==="submitted"||ce==="streaming")&&Ne.length!==0)return k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{k.current=void 0;let B=ou().finally(()=>{U.current===B&&(U.current=void 0)});U.current=B},vH),()=>{k.current&&clearTimeout(k.current)}},[l,b,Ne,ce,ou]);let Bo=(0,X.useCallback)(()=>{let B=U.current,ae=k.current,J=ae?No():void 0;return ae&&(clearTimeout(ae),k.current=void 0),(async()=>{B&&await B,J&&(await Ax(J),await G())})()},[No,G]),O=(0,X.useCallback)(()=>{P.current+=1,Bo(),Be([]),Je([]),Q(),Y("");let B=mR();return E.current=Sf(),_.current=void 0,V(B),G(),B},[Be,Q,V,G,Bo]),q=(0,X.useCallback)(async B=>{P.current+=1;let ae=P.current;if(await Bo(),ae!==P.current)return;let J=await bf(B);ae===P.current&&J&&(V(J.threadId),E.current=J.createdAt,_.current=J.title,J.sessionId?(v.current=J.sessionId,w(J.sessionId)):Q(),Be(J.messages),Je([]),Y(""))},[Be,Q,V,Bo]),le=(0,X.useCallback)(async B=>{if(h.current===B){P.current+=1,k.current&&(clearTimeout(k.current),k.current=void 0);let ae=U.current;ae&&await ae}await cR(B),await G(),h.current===B&&(Be([]),Je([]),Q(),Y(""),h.current=void 0,x(void 0),E.current=void 0,_.current=void 0)},[Be,Q,G]);(0,X.useEffect)(()=>{l&&b&&i!==void 0&&i!==h.current&&q(i)},[i,l,b,q]);let ye=(0,X.useCallback)(B=>{Y(B.target.value)},[]),Oe=Ne[Ne.length-1],oa=Ne.length>0,bn=Mt&&(!oa||Oe.role==="user"),Xa=ut.current;return{messages:Ne,status:ce,text:j,setText:Y,handleSubmit:ru,handleTextChange:ye,isLoading:Mt,showLoaderBubble:bn,lastMessage:Oe,hasMessages:oa,sendMessage:oe,sendMessageAndWait:Mf,reset:Af,queuedMessages:Ie,queueFull:$a,removeQueuedMessage:ha,sessionId:g,toolDefinitions:Xa,refreshToolDefinitions:Ot,threads:C,activeThreadId:y,isThreadHistoryReady:b,startNewThread:O,switchThread:q,deleteThread:le}}var vn=F(Pe(),1);function SH(e){for(let t of e.parts){let a=t;if(a.type==="data"||a.type==="data-suggestions"){let n=a.data;if(n&&Array.isArray(n.suggestions))return n.suggestions}}return null}function yR(e){return typeof e=="object"&&e!==null&&"initial"in e}function xR(e){let{messages:t,status:a,config:n}=e,r=yR(n)&&n.initial?n.initial:void 0,[o,l]=(0,vn.useState)(r??[]),i=(0,vn.useRef)(a),s=n===!0||yR(n)&&n.dynamic!==!1,u=(0,vn.useCallback)(()=>{l([])},[]),c=t.length>0;(0,vn.useEffect)(()=>{!c&&r&&r.length>0&&l(r)},[r,c]);let d=t[t.length-1];return(0,vn.useEffect)(()=>{d?.role==="user"&&u()},[d,u]),(0,vn.useEffect)(()=>{let f=i.current;if(i.current=a,f==="streaming"&&a==="ready"&&s){let p=[...t].reverse().find(w=>w.role==="assistant");if(!p)return;let g=SH(p);g&&l(g)}},[a,s,t]),{suggestions:o,isLoading:!1,clear:u}}function wR(e,t){let a=t?.Authorization,n=typeof a=="string"&&a.startsWith("Bearer ")?a.slice(7):null;return n?`${e}/resource?token=${encodeURIComponent(n)}`:`${e}/resource`}var CH={primaryColor:["--ww-primary","--ww-color-primary"],primaryForeground:["--ww-primary-fg","--ww-color-primary-foreground"],backgroundColor:["--ww-bg","--ww-color-background"],textColor:["--ww-text","--ww-color-foreground","--ww-color-accent-foreground"],mutedColor:["--ww-muted","--ww-color-muted-foreground"],borderColor:["--ww-border","--ww-color-border"],borderWidth:["--ww-border-width"],boxShadow:["--ww-shadow"],assistantBubbleColor:["--ww-assistant-bubble","--ww-color-accent"],userBubbleColor:["--ww-user-bubble"],inputBackgroundColor:["--ww-input-bg","--ww-color-input"],borderRadius:["--ww-radius"],messageBorderRadius:["--ww-msg-radius"],fontFamily:["--ww-font"],headerBackgroundColor:["--ww-header-bg"],headerTextColor:["--ww-header-text"],statusColor:["--ww-status"],toolCardColor:["--ww-tool-card","--ww-color-tool-card"]};function Cf(e){let t={};for(let[a,n]of Object.entries(CH)){let r=e[a];if(r===void 0)continue;let o=typeof r=="number"?`${r}px`:String(r);for(let l of n)t[l]=o}return t}var He=F(re(),1),If=(0,Qe.forwardRef)(function(t,a){let{locale:n,messages:r}=t;return(0,He.jsx)(ms,{locale:n,messages:r,children:(0,He.jsx)(IH,{...t,ref:a})})}),IH=(0,Qe.forwardRef)(function(t,a){let{t:n,ready:r}=De(),{appearance:o,className:l,allowAttachments:i=!1,welcomeMessage:s,welcome:u,placeholder:c=n.promptInput.placeholder,triggerEvent:d="triggerDemoRequest",api:f,mcp:p,debug:g=!1,readOnly:w=!1,title:v,headerActions:y,hideHeader:x=!1,enableThreadHistory:h=!1,showToolCalls:C=!0,initializing:A=!1,disclaimer:b}=t,M=o?.theme,E=o?.variables,_=E?Cf(E):{},[k,U]=(0,Qe.useState)(!1);(0,Qe.useEffect)(()=>{if(M!=="auto"||typeof window>"u")return;let j=window.matchMedia("(prefers-color-scheme: dark)");U(j.matches);let Y=()=>U(j.matches);return j.addEventListener("change",Y),()=>j.removeEventListener("change",Y)},[M]);let P=M==="dark"||M==="auto"&&k,R=gR({...t,api:f}),V=yE({...t,api:f,sessionId:R.sessionId,onCallTool:p?.onCallTool}),G=p?.resourceEndpoint??wR(f,t.headers),ee=Hc(c,!R.text),[pe,Q]=(0,Qe.useState)(null),fe=(0,Qe.useRef)(null),I=(0,Qe.useRef)(null),st=(0,Qe.useRef)(null),ut=(0,Qe.useRef)(null),[L,xt]=(0,Qe.useState)(!0),$e=(0,Qe.useRef)(L);$e.current=L;let Ot=(0,Qe.useCallback)(()=>{let j=fe.current;if(!j)return;let Y=j.querySelector("textarea");Y&&Y.focus()},[]),Ne=(0,Qe.useCallback)((j="smooth")=>{let Y=I.current;Y&&Y.scrollTo({top:Y.scrollHeight,behavior:j})},[]);(0,Qe.useEffect)(()=>{let j=ut.current,Y=I.current;if(!j||!Y)return;let Ie=new IntersectionObserver(([Je])=>xt(Je.isIntersecting),{root:Y,rootMargin:"0px 0px 200px 0px",threshold:0});return Ie.observe(j),()=>Ie.disconnect()},[]),(0,Qe.useEffect)(()=>{(R.messages[R.messages.length-1]?.role==="user"||$e.current)&&Ne("smooth")},[R.messages.length,R.messages[R.messages.length-1]]),(0,Qe.useEffect)(()=>{Ne("auto")},[Ne]),(0,Qe.useEffect)(()=>{if(typeof ResizeObserver>"u")return;let j=I.current,Y=st.current;if(!j&&!Y)return;let Ie=j?.scrollHeight??0,Je=j?.clientHeight??0,Mt=new ResizeObserver(()=>{let ha=I.current;if(!ha)return;let $a=ha.scrollTop+Je>=Ie-5;Ie=ha.scrollHeight,Je=ha.clientHeight,$a&&Ne("auto")});return j&&Mt.observe(j),Y&&Mt.observe(Y),()=>Mt.disconnect()},[Ne]);let oe=xR({messages:R.messages,status:R.status,config:t.suggestions}),Be=(0,Qe.useCallback)(j=>{let Y=j.content.map(Ie=>Ie.text??"").join("").trim();Y&&R.handleSubmit({text:Y,files:[],modelContext:j.modelContext})},[R.handleSubmit]),ce=(0,Qe.useCallback)(j=>{oe.clear(),R.handleSubmit({text:j,files:[]})},[oe.clear,R.handleSubmit]);(0,Qe.useImperativeHandle)(a,()=>({sendMessage:j=>{R.handleSubmit({text:j,files:[]}),Ot()},sendMessageAndWait:j=>R.sendMessageAndWait(j),reset:R.reset,focus:Ot,get messages(){return R.messages},get sessionId(){return R.sessionId}}),[R.handleSubmit,R.sendMessageAndWait,R.reset,R.messages,R.sessionId,Ot]),(0,Qe.useEffect)(()=>{if(!d)return;let j=Y=>{let Ie=Y.detail,Je=typeof Ie?.message=="string"?Ie.message:void 0;Je&&R.handleSubmit({text:Je,files:[]}),Ot()};return window.addEventListener(d,j),()=>window.removeEventListener(d,j)},[d,R.handleSubmit,Ot]);let ge=!x&&!!(v||h||y),ve=A||!r;return(0,He.jsxs)("div",{ref:fe,style:{..._,maxHeight:"inherit",opacity:ve?0:1,transition:"opacity 220ms ease-out"},"data-waniwani-chat":"","data-waniwani-layout":"embed","data-color-scheme":M==="auto"?"auto":void 0,...ve?{"data-waniwani-initializing":""}:{},...P?{"data-waniwani-dark":""}:{},className:W("ww:relative ww:w-full ww:h-full ww:flex ww:flex-col ww:bg-background ww:text-foreground ww:font-[family-name:var(--ww-font)] ww:overflow-hidden",M==="dark"&&"dark",l),children:[ge&&(0,He.jsxs)("div",{className:"ww:shrink-0 ww:flex ww:items-center ww:gap-2 ww:pl-4 ww:pr-3 ww:py-3 ww:border-b ww:border-border",style:{backgroundColor:"var(--ww-color-card-header)",color:"var(--ww-color-card-header-foreground)"},children:[v&&(0,He.jsx)("div",{className:"ww:text-sm ww:font-semibold ww:truncate ww:flex-1 ww:min-w-0",children:v}),!v&&(0,He.jsx)("div",{className:"ww:flex-1"}),h&&(0,He.jsx)(gE,{threads:R.threads,activeThreadId:R.activeThreadId,onNewThread:R.startNewThread,onSelectThread:j=>{R.switchThread(j)},onDeleteThread:j=>{R.deleteThread(j)}}),y]}),(0,He.jsxs)("div",{ref:I,className:W("ww:relative ww:flex-1 ww:min-h-0",pe?"ww:overflow-hidden":"ww:overflow-y-auto"),children:[(0,He.jsxs)("div",{ref:st,className:W("ww:mx-auto ww:w-full ww:max-w-3xl ww:px-4 ww:py-6 ww:flex ww:flex-col ww:gap-6",pe&&"ww:!py-0"),children:[(0,He.jsx)(fE,{messages:R.messages,status:R.status,welcomeMessage:s,welcome:u,onSuggestionSelect:ce,resourceEndpoint:G,chatSessionId:R.sessionId,isDark:P,onFollowUp:Be,onCallTool:V,fullscreenToolCallId:pe,debug:g,showToolCalls:C,toolDefinitions:R.toolDefinitions,onWidgetDisplayModeChange:(j,Y)=>{Q(j==="fullscreen"?Y.toolCallId:null)}}),(0,He.jsx)("div",{ref:ut,"aria-hidden":!0,style:{height:1}})]}),!L&&!pe&&(0,He.jsx)("div",{className:"ww:sticky ww:bottom-2 ww:flex ww:justify-center ww:pointer-events-none",children:(0,He.jsx)(pn,{type:"button",onClick:()=>Ne("smooth"),size:"icon",variant:"outline",className:"ww:rounded-full ww:shadow ww:pointer-events-auto","aria-label":"Scroll to latest",children:(0,He.jsx)(as,{className:"ww:size-4"})})})]}),!w&&(0,He.jsxs)("div",{className:"ww:shrink-0 ww:bg-background",style:pe?{display:"none"}:void 0,children:[(0,He.jsx)(mE,{suggestions:oe.suggestions,isLoading:oe.isLoading,onSelect:ce}),(0,He.jsx)(rC,{queuedMessages:R.queuedMessages,onRemove:R.removeQueuedMessage}),(0,He.jsx)("div",{className:"ww:px-4 ww:pb-2 ww:pt-2",children:(0,He.jsxs)("div",{className:"ww:mx-auto ww:w-full ww:max-w-3xl",children:[(0,He.jsx)(G0,{onSubmit:R.handleSubmit,globalDrop:i,multiple:i,className:"ww:rounded-2xl ww:border-border ww:bg-input",children:(0,He.jsxs)("div",{className:"ww:flex ww:items-center ww:gap-1 ww:pl-4 ww:pr-3 ww:py-2.5",children:[i&&(0,He.jsx)(X0,{}),(0,He.jsx)(W0,{onChange:R.handleTextChange,value:R.text,placeholder:ee,className:"ww:min-h-0 ww:py-1 ww:px-0"}),(0,He.jsx)($0,{status:R.status,disabled:R.queueFull})]})}),(0,He.jsxs)("div",{className:"ww:pt-2 ww:pb-1 ww:flex ww:justify-center ww:items-center ww:gap-1.5",children:[(0,He.jsx)(pE,{}),(0,He.jsx)(Z0,{text:b})]})]})})]})]})});var au=F(Pe(),1);var LH="waniwani:config:";function vR(e,t,a){return`${LH}${e}|${t}|${a??""}`}function kH(e,t,a){if(typeof window>"u")return null;try{let n=window.sessionStorage.getItem(vR(e,t,a));if(!n)return null;let r=JSON.parse(n);return r&&typeof r=="object"?r:null}catch{return null}}function TH(e,t,a,n){if(!(typeof window>"u"))try{window.sessionStorage.setItem(vR(e,t,a),JSON.stringify(n))}catch{}}var MH=600;async function AH(e,t,a,n){try{let r=`${e.replace(/\/$/,"")}/config`,o=n?`${r}?channel=${encodeURIComponent(n)}`:r,l=await fetch(o,{method:"GET",headers:{Authorization:`Bearer ${t}`},signal:a});if(!l.ok)return{};let i=await l.json(),s=i&&typeof i=="object"&&"data"in i&&i.data?i.data:i;return s?EH(s):{}}catch{return{}}}function EH(e){let t={};return e.title!=null&&(t.title=e.title),e.welcomeMessage!=null&&(t.welcomeMessage=e.welcomeMessage),e.placeholder!=null&&(t.placeholder=e.placeholder),e.suggestions!=null&&e.suggestions.length>0&&(t.suggestions=e.suggestions),typeof e.enableThreadHistory=="boolean"&&(t.enableThreadHistory=e.enableThreadHistory),e.toolCallDisplay==="full"?t.showToolCalls=!0:e.toolCallDisplay==="titles-only"?t.showToolCalls="titles-only":e.toolCallDisplay==="hidden"&&(t.showToolCalls=!1),t}function Lf(e,t,a){let[n,r]=(0,au.useState)(e),[o,l]=(0,au.useState)(!1);return(0,au.useEffect)(()=>{let i=e.api,s=e.token,u=e.channelId;if(!i||!s){l(!0);return}let c=kH(i,s,u);if(c)try{r(es(t,c,a)),l(!0)}catch{}let d=new AbortController,f=setTimeout(()=>l(!0),MH);return AH(i,s,d.signal,u).then(p=>{if(!d.signal.aborted){if(Object.keys(p).length>0){TH(i,s,u,p);try{r(es(t,p,a))}catch(g){console.error("[WaniWani] Failed to apply remote config:",g)}}l(!0)}}).catch(p=>{console.error("[WaniWani] Remote config fetch failed:",p),l(!0)}).finally(()=>clearTimeout(f)),()=>{d.abort(),clearTimeout(f)}},[e.api,e.token,e.channelId]),{config:n,ready:o}}var yt=F(re(),1),RH=3500,bR=(0,it.forwardRef)(function(t,a){return(0,yt.jsx)(ms,{locale:t.config.locale,children:(0,yt.jsx)(DH,{...t,ref:a})})}),DH=(0,it.forwardRef)(function({config:t,programmatic:a,scriptConfig:n},r){let{t:o}=De(),{config:l,ready:i}=Lf(t,a,n),s=(0,it.useRef)(null),u=(0,it.useRef)(null),[c,d]=(0,it.useState)("input"),[f,p]=(0,it.useState)(""),g=(0,it.useRef)(!1),[w,v]=(0,it.useState)(0),y=l.appearance?.theme,x=l.appearance?.variables,h=l.position??"bottom-center",C=(0,it.useMemo)(()=>x?Cf(x):{},[x]),A=l.suggestions??[],b=l.launcherText??l.placeholder??o.launcher.prompt,M=Hc(b,f.length===0),E="var(--ww-shadow, 0 10px 30px rgba(0, 0, 0, 0.08))";(0,it.useEffect)(()=>{if(A.length===0)return;let Q=setTimeout(()=>{!g.current&&(s.current?.messages.length??0)===0&&d(fe=>fe==="input"?"expanded":fe)},RH);return()=>clearTimeout(Q)},[A.length]),(0,it.useEffect)(()=>{w>0&&c==="open"&&s.current?.focus()},[w,c]);let _=(0,it.useCallback)(()=>{g.current=!0,d("open")},[]),k=(0,it.useCallback)(()=>{g.current=!0,d("input")},[]),U=(0,it.useCallback)(Q=>{_();let fe=Q.trim();fe&&s.current?.sendMessage(fe)},[_]);(0,it.useImperativeHandle)(r,()=>({open:()=>_(),close:()=>k(),toggle:()=>{g.current=!0,d(Q=>Q==="open"?"input":"open")},sendMessage:Q=>U(Q),sendMessageAndWait:async Q=>{_();let fe=s.current;if(fe)return await fe.sendMessageAndWait(Q)},reset:()=>s.current?.reset(),focus:()=>{_(),v(Q=>Q+1)},getMessages:()=>s.current?.messages??[],getSessionId:()=>s.current?.sessionId}),[U,_,k]);let P=(0,it.useCallback)(()=>{f.trim()&&(U(f),p(""))},[f,U]),R=(0,it.useCallback)(()=>{g.current=!0,(s.current?.messages.length??0)>0?(d("open"),v(Q=>Q+1)):A.length>0&&d(Q=>Q==="input"?"expanded":Q)},[A.length]),V={};l.mcpServerUrl&&(V.mcpServerUrl=l.mcpServerUrl),l.channelId&&(V.channelId=l.channelId);let G=h==="bottom-left"?"ww:left-4 ww:right-auto":h==="bottom-right"?"ww:right-4 ww:left-auto":"ww:left-0 ww:right-0 ww:mx-auto",ee=h==="bottom-left"?"ww:sm:left-4 ww:sm:right-auto":h==="bottom-right"?"ww:sm:right-4 ww:sm:left-auto":"ww:sm:left-0 ww:sm:right-0 ww:sm:mx-auto",pe=(0,yt.jsx)("button",{type:"button",onClick:k,"aria-label":o.launcher.close,className:"ww:flex ww:size-7 ww:items-center ww:justify-center ww:rounded-md ww:text-muted-foreground ww:transition-colors hover:ww:bg-accent hover:ww:text-foreground",children:(0,yt.jsx)(El,{className:"ww:size-4"})});return(0,yt.jsxs)("div",{"data-waniwani-chat":"","data-color-scheme":y==="auto"?"auto":void 0,className:W("ww:contents ww:font-[family-name:var(--ww-font-sans)]",y==="dark"&&"dark"),style:C,children:[(0,yt.jsxs)("div",{"data-waniwani-floating":"dock","data-state":c==="open"?"hidden":"shown",className:W("ww:fixed ww:bottom-4 ww:z-[2147483002] ww:flex ww:flex-col ww:gap-2","ww:w-[calc(100vw-2rem)] ww:max-w-[480px]",G),children:[A.length>0&&(0,yt.jsxs)("div",{className:W("ww:flex ww:flex-col ww:gap-2 ww:origin-bottom ww:transition-all ww:duration-300 ww:ease-out",c==="expanded"?"ww:max-h-96 ww:translate-y-0 ww:opacity-100":"ww:pointer-events-none ww:max-h-0 ww:translate-y-2 ww:overflow-hidden ww:opacity-0"),children:[(0,yt.jsx)("div",{className:"ww:flex ww:justify-end",children:(0,yt.jsx)("button",{type:"button",onClick:k,"aria-label":o.launcher.minimize,className:"ww:flex ww:size-7 ww:items-center ww:justify-center ww:rounded-full ww:bg-background/80 ww:text-muted-foreground ww:shadow ww:backdrop-blur ww:transition-colors hover:ww:text-foreground",children:(0,yt.jsx)(El,{className:"ww:size-4"})})}),A.map(Q=>(0,yt.jsxs)("button",{type:"button",onClick:()=>U(Q),style:{boxShadow:E},className:"ww:flex ww:items-center ww:justify-between ww:gap-3 ww:rounded-full ww:bg-background ww:px-5 ww:py-3 ww:text-left ww:text-sm ww:font-medium ww:text-foreground ww:transition-colors hover:ww:bg-accent",children:[(0,yt.jsx)("span",{className:"ww:truncate",children:Q}),(0,yt.jsx)(ns,{className:"ww:size-4 ww:shrink-0 ww:opacity-50"})]},Q))]}),(0,yt.jsxs)("div",{style:{boxShadow:E},className:"ww:flex ww:items-center ww:gap-2 ww:rounded-full ww:border ww:border-border ww:bg-background ww:px-4 ww:py-2.5",children:[(0,yt.jsx)(Mr,{className:"ww:size-4 ww:shrink-0 ww:text-muted-foreground"}),(0,yt.jsx)("input",{ref:u,type:"text",value:f,placeholder:M,onChange:Q=>p(Q.target.value),onFocus:R,onKeyDown:Q=>{Q.key==="Enter"&&!Q.shiftKey&&(Q.preventDefault(),P())},className:"ww:min-w-0 ww:flex-1 ww:bg-transparent ww:text-sm ww:text-foreground ww:outline-none ww:placeholder:text-muted-foreground"}),(0,yt.jsx)("button",{type:"button",onClick:P,disabled:!f.trim(),"aria-label":o.promptInput.submit,className:"ww:flex ww:size-8 ww:shrink-0 ww:items-center ww:justify-center ww:rounded-full ww:bg-foreground ww:text-background ww:transition-opacity hover:ww:opacity-90 disabled:ww:opacity-40",children:(0,yt.jsx)(mo,{className:"ww:size-4"})})]})]}),(0,yt.jsx)("div",{role:"dialog","aria-label":l.title??b,"data-waniwani-floating":"panel","data-state":c==="open"?"shown":"hidden",style:{boxShadow:E},className:W("ww:fixed ww:z-[2147483002] ww:flex ww:flex-col ww:overflow-hidden ww:bg-background","ww:inset-0 ww:w-full ww:rounded-none","ww:sm:inset-auto ww:sm:bottom-4 ww:sm:h-[640px] ww:sm:max-h-[calc(100dvh-2rem)] ww:sm:w-[calc(100vw-2rem)] ww:sm:max-w-[480px] ww:sm:rounded-2xl ww:sm:border ww:sm:border-border",ee),children:(0,yt.jsx)(If,{ref:s,api:l.api??"",headers:{Authorization:`Bearer ${l.token}`},skipRemoteConfig:!0,body:Object.keys(V).length>0?V:void 0,appearance:l.appearance,title:l.title,headerActions:pe,hideHeader:!1,welcomeMessage:l.welcomeMessage,placeholder:l.placeholder,suggestions:l.suggestions?{initial:l.suggestions}:void 0,enableThreadHistory:l.enableThreadHistory,showToolCalls:l.showToolCalls,locale:l.locale,initializing:!i})})]})});var Gr=F(Pe(),1);var CR=F(re(),1),SR=(0,Gr.forwardRef)(function({config:t,programmatic:a,scriptConfig:n,onReady:r},o){let{config:l,ready:i}=Lf(t,a,n),s=(0,Gr.useRef)(null);(0,Gr.useEffect)(()=>{r?.()},[]),(0,Gr.useImperativeHandle)(o,()=>({get chat(){return s.current}}),[]);let u={};return l.mcpServerUrl&&(u.mcpServerUrl=l.mcpServerUrl),l.channelId&&(u.channelId=l.channelId),(0,CR.jsx)(If,{ref:s,api:l.api??"",headers:{Authorization:`Bearer ${l.token}`},skipRemoteConfig:!0,body:Object.keys(u).length>0?u:void 0,appearance:l.appearance,title:l.title,hideHeader:l.hideHeader,welcomeMessage:l.welcomeMessage,placeholder:l.placeholder,suggestions:l.suggestions?{initial:l.suggestions}:void 0,enableThreadHistory:l.enableThreadHistory,showToolCalls:l.showToolCalls,locale:l.locale,initializing:!i})});var Dx="/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--ww-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--ww-color-blue-400:oklch(70.7% .165 254.624);--ww-spacing:.25rem;--ww-container-sm:24rem;--ww-container-md:28rem;--ww-container-3xl:48rem;--ww-text-xs:.75rem;--ww-text-xs--line-height:calc(1/.75);--ww-text-sm:.875rem;--ww-text-sm--line-height:calc(1.25/.875);--ww-text-base:1rem;--ww-text-base--line-height:calc(1.5/1);--ww-text-lg:1.125rem;--ww-text-lg--line-height:calc(1.75/1.125);--ww-font-weight-medium:500;--ww-font-weight-semibold:600;--ww-tracking-wide:.025em;--ww-tracking-wider:.05em;--ww-radius-md:.375rem;--ww-radius-lg:.5rem;--ww-radius-xl:.75rem;--ww-radius-2xl:1rem;--ww-ease-out:cubic-bezier(0,0,.2,1);--ww-animate-spin:spin 1s linear infinite;--ww-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--ww-default-transition-duration:.15s;--ww-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--ww-default-font-family:var(--ww-font-sans,system-ui,-apple-system,\"Segoe UI\",sans-serif);--ww-default-mono-font-family:var(--ww-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ww-default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--ww-default-font-feature-settings,normal);font-variation-settings:var(--ww-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ww-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--ww-default-mono-font-feature-settings,normal);font-variation-settings:var(--ww-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.ww\\:pointer-events-auto{pointer-events:auto}.ww\\:pointer-events-none{pointer-events:none}.ww\\:\\!relative{position:relative!important}.ww\\:absolute{position:absolute}.ww\\:fixed{position:fixed}.ww\\:relative{position:relative}.ww\\:sticky{position:sticky}.ww\\:inset-0{inset:calc(var(--ww-spacing)*0)}.ww\\:top-full{top:100%}.ww\\:right-0{right:calc(var(--ww-spacing)*0)}.ww\\:right-4{right:calc(var(--ww-spacing)*4)}.ww\\:right-auto{right:auto}.ww\\:bottom-2{bottom:calc(var(--ww-spacing)*2)}.ww\\:bottom-4{bottom:calc(var(--ww-spacing)*4)}.ww\\:left-0{left:calc(var(--ww-spacing)*0)}.ww\\:left-4{left:calc(var(--ww-spacing)*4)}.ww\\:left-\\[50\\%\\]{left:50%}.ww\\:left-auto{left:auto}.ww\\:z-50{z-index:50}.ww\\:z-\\[2147483002\\]{z-index:2147483002}.ww\\:mx-auto{margin-inline:auto}.ww\\:mt-0\\.5{margin-top:calc(var(--ww-spacing)*.5)}.ww\\:mt-1{margin-top:calc(var(--ww-spacing)*1)}.ww\\:mt-2{margin-top:calc(var(--ww-spacing)*2)}.ww\\:mt-6{margin-top:calc(var(--ww-spacing)*6)}.ww\\:mb-4{margin-bottom:calc(var(--ww-spacing)*4)}.ww\\:ml-auto{margin-left:auto}.ww\\:line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ww\\:contents{display:contents}.ww\\:flex{display:flex}.ww\\:grid{display:grid}.ww\\:hidden{display:none}.ww\\:inline-block{display:inline-block}.ww\\:inline-flex{display:inline-flex}.ww\\:field-sizing-content{field-sizing:content}.ww\\:size-2{width:calc(var(--ww-spacing)*2);height:calc(var(--ww-spacing)*2)}.ww\\:size-3{width:calc(var(--ww-spacing)*3);height:calc(var(--ww-spacing)*3)}.ww\\:size-3\\.5{width:calc(var(--ww-spacing)*3.5);height:calc(var(--ww-spacing)*3.5)}.ww\\:size-4{width:calc(var(--ww-spacing)*4);height:calc(var(--ww-spacing)*4)}.ww\\:size-5{width:calc(var(--ww-spacing)*5);height:calc(var(--ww-spacing)*5)}.ww\\:size-7{width:calc(var(--ww-spacing)*7);height:calc(var(--ww-spacing)*7)}.ww\\:size-8{width:calc(var(--ww-spacing)*8);height:calc(var(--ww-spacing)*8)}.ww\\:size-9{width:calc(var(--ww-spacing)*9);height:calc(var(--ww-spacing)*9)}.ww\\:size-12{width:calc(var(--ww-spacing)*12);height:calc(var(--ww-spacing)*12)}.ww\\:size-auto{width:auto;height:auto}.ww\\:size-full{width:100%;height:100%}.ww\\:h-2\\.5{height:calc(var(--ww-spacing)*2.5)}.ww\\:h-7{height:calc(var(--ww-spacing)*7)}.ww\\:h-8{height:calc(var(--ww-spacing)*8)}.ww\\:h-9{height:calc(var(--ww-spacing)*9)}.ww\\:h-16{height:calc(var(--ww-spacing)*16)}.ww\\:h-auto{height:auto}.ww\\:h-full{height:100%}.ww\\:max-h-0{max-height:calc(var(--ww-spacing)*0)}.ww\\:max-h-48{max-height:calc(var(--ww-spacing)*48)}.ww\\:max-h-80{max-height:calc(var(--ww-spacing)*80)}.ww\\:max-h-96{max-height:calc(var(--ww-spacing)*96)}.ww\\:min-h-0{min-height:calc(var(--ww-spacing)*0)}.ww\\:min-h-full{min-height:100%}.ww\\:w-72{width:calc(var(--ww-spacing)*72)}.ww\\:w-\\[calc\\(100vw-2rem\\)\\]{width:calc(100vw - 2rem)}.ww\\:w-auto{width:auto}.ww\\:w-fit{width:fit-content}.ww\\:w-full{width:100%}.ww\\:max-w-3xl{max-width:var(--ww-container-3xl)}.ww\\:max-w-24{max-width:calc(var(--ww-spacing)*24)}.ww\\:max-w-32{max-width:calc(var(--ww-spacing)*32)}.ww\\:max-w-\\[80\\%\\]{max-width:80%}.ww\\:max-w-\\[480px\\]{max-width:480px}.ww\\:max-w-full{max-width:100%}.ww\\:max-w-md{max-width:var(--ww-container-md)}.ww\\:max-w-sm{max-width:var(--ww-container-sm)}.ww\\:min-w-0{min-width:calc(var(--ww-spacing)*0)}.ww\\:flex-1{flex:1}.ww\\:shrink-0{flex-shrink:0}.ww\\:grow{flex-grow:1}.ww\\:origin-bottom{transform-origin:bottom}.ww\\:translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:translate-y-0{--tw-translate-y:calc(var(--ww-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:translate-y-2{--tw-translate-y:calc(var(--ww-spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:rotate-90{rotate:90deg}.ww\\:rotate-180{rotate:180deg}.ww\\:animate-\\[ww-fade-in_0\\.2s_ease-out_both\\]{animation:.2s ease-out both ww-fade-in}.ww\\:animate-pulse{animation:var(--ww-animate-pulse)}.ww\\:animate-spin{animation:var(--ww-animate-spin)}.ww\\:cursor-pointer{cursor:pointer}.ww\\:resize-none{resize:none}.ww\\:grid-rows-\\[0fr\\]{grid-template-rows:0fr}.ww\\:grid-rows-\\[1fr\\]{grid-template-rows:1fr}.ww\\:flex-col{flex-direction:column}.ww\\:flex-wrap{flex-wrap:wrap}.ww\\:items-center{align-items:center}.ww\\:items-end{align-items:flex-end}.ww\\:items-start{align-items:flex-start}.ww\\:justify-between{justify-content:space-between}.ww\\:justify-center{justify-content:center}.ww\\:justify-end{justify-content:flex-end}.ww\\:gap-1{gap:calc(var(--ww-spacing)*1)}.ww\\:gap-1\\.5{gap:calc(var(--ww-spacing)*1.5)}.ww\\:gap-2{gap:calc(var(--ww-spacing)*2)}.ww\\:gap-3{gap:calc(var(--ww-spacing)*3)}.ww\\:gap-6{gap:calc(var(--ww-spacing)*6)}:where(.ww\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ww-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ww-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.ww\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ww-spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ww-spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}.ww\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ww\\:\\!overflow-hidden{overflow:hidden!important}.ww\\:overflow-hidden{overflow:hidden}.ww\\:overflow-x-auto{overflow-x:auto}.ww\\:overflow-y-auto{overflow-y:auto}.ww\\:overflow-y-hidden{overflow-y:hidden}.ww\\:\\!rounded-full{border-radius:3.40282e38px!important}.ww\\:rounded{border-radius:var(--ww-radius,16px)}.ww\\:rounded-2xl{border-radius:var(--ww-radius-2xl)}.ww\\:rounded-\\[var\\(--ww-radius\\)\\]{border-radius:var(--ww-radius)}.ww\\:rounded-full{border-radius:3.40282e38px}.ww\\:rounded-lg{border-radius:var(--ww-radius-lg)}.ww\\:rounded-md{border-radius:var(--ww-radius-md)}.ww\\:rounded-none{border-radius:0}.ww\\:rounded-xl{border-radius:var(--ww-radius-xl)}.ww\\:border{border-style:var(--tw-border-style);border-width:1px}.ww\\:border-0{border-style:var(--tw-border-style);border-width:0}.ww\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.ww\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ww\\:border-border{border-color:var(--ww-color-border,#e5e7eb)}.ww\\:border-muted-foreground\\/50{border-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:border-muted-foreground\\/50{border-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)50%,transparent)}}.ww\\:bg-accent{background-color:var(--ww-color-accent,#f3f4f6)}.ww\\:bg-background,.ww\\:bg-background\\/20{background-color:var(--ww-color-background,#fff)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-background\\/20{background-color:color-mix(in oklab,var(--ww-color-background,#fff)20%,transparent)}}.ww\\:bg-background\\/80{background-color:var(--ww-color-background,#fff)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-background\\/80{background-color:color-mix(in oklab,var(--ww-color-background,#fff)80%,transparent)}}.ww\\:bg-foreground,.ww\\:bg-foreground\\/5{background-color:var(--ww-color-foreground,#1f2937)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-foreground\\/5{background-color:color-mix(in oklab,var(--ww-color-foreground,#1f2937)5%,transparent)}}.ww\\:bg-input{background-color:var(--ww-color-input,#f9fafb)}.ww\\:bg-muted{background-color:var(--ww-color-muted,#f1f5f9)}.ww\\:bg-muted-foreground\\/60{background-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-muted-foreground\\/60{background-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)60%,transparent)}}.ww\\:bg-muted\\/50{background-color:var(--ww-color-muted,#f1f5f9)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-muted\\/50{background-color:color-mix(in oklab,var(--ww-color-muted,#f1f5f9)50%,transparent)}}.ww\\:bg-primary{background-color:var(--ww-color-primary,#6366f1)}.ww\\:bg-tool-card{background-color:var(--ww-color-tool-card,#f4f4f5)}.ww\\:bg-transparent{background-color:#0000}.ww\\:object-cover{object-fit:cover}.ww\\:p-1{padding:calc(var(--ww-spacing)*1)}.ww\\:p-1\\.5{padding:calc(var(--ww-spacing)*1.5)}.ww\\:p-3{padding:calc(var(--ww-spacing)*3)}.ww\\:px-0{padding-inline:calc(var(--ww-spacing)*0)}.ww\\:px-1\\.5{padding-inline:calc(var(--ww-spacing)*1.5)}.ww\\:px-2{padding-inline:calc(var(--ww-spacing)*2)}.ww\\:px-3{padding-inline:calc(var(--ww-spacing)*3)}.ww\\:px-4{padding-inline:calc(var(--ww-spacing)*4)}.ww\\:px-5{padding-inline:calc(var(--ww-spacing)*5)}.ww\\:px-6{padding-inline:calc(var(--ww-spacing)*6)}.ww\\:\\!py-0{padding-block:calc(var(--ww-spacing)*0)!important}.ww\\:py-0\\.5{padding-block:calc(var(--ww-spacing)*.5)}.ww\\:py-1{padding-block:calc(var(--ww-spacing)*1)}.ww\\:py-2{padding-block:calc(var(--ww-spacing)*2)}.ww\\:py-2\\.5{padding-block:calc(var(--ww-spacing)*2.5)}.ww\\:py-3{padding-block:calc(var(--ww-spacing)*3)}.ww\\:py-6{padding-block:calc(var(--ww-spacing)*6)}.ww\\:py-12{padding-block:calc(var(--ww-spacing)*12)}.ww\\:pt-2{padding-top:calc(var(--ww-spacing)*2)}.ww\\:pt-2\\.5{padding-top:calc(var(--ww-spacing)*2.5)}.ww\\:pt-3{padding-top:calc(var(--ww-spacing)*3)}.ww\\:pr-3{padding-right:calc(var(--ww-spacing)*3)}.ww\\:pb-1{padding-bottom:calc(var(--ww-spacing)*1)}.ww\\:pb-1\\.5{padding-bottom:calc(var(--ww-spacing)*1.5)}.ww\\:pb-2{padding-bottom:calc(var(--ww-spacing)*2)}.ww\\:pb-3{padding-bottom:calc(var(--ww-spacing)*3)}.ww\\:pb-8{padding-bottom:calc(var(--ww-spacing)*8)}.ww\\:pl-4{padding-left:calc(var(--ww-spacing)*4)}.ww\\:text-center{text-align:center}.ww\\:text-left{text-align:left}.ww\\:font-\\[family-name\\:var\\(--ww-font\\)\\]{font-family:var(--ww-font)}.ww\\:font-\\[family-name\\:var\\(--ww-font-sans\\)\\]{font-family:var(--ww-font-sans)}.ww\\:font-mono{font-family:var(--ww-font-mono)}.ww\\:text-base{font-size:var(--ww-text-base);line-height:var(--tw-leading,var(--ww-text-base--line-height))}.ww\\:text-lg{font-size:var(--ww-text-lg);line-height:var(--tw-leading,var(--ww-text-lg--line-height))}.ww\\:text-sm{font-size:var(--ww-text-sm);line-height:var(--tw-leading,var(--ww-text-sm--line-height))}.ww\\:text-xs{font-size:var(--ww-text-xs);line-height:var(--tw-leading,var(--ww-text-xs--line-height))}.ww\\:text-\\[10px\\]{font-size:10px}.ww\\:text-\\[11px\\]{font-size:11px}.ww\\:font-medium{--tw-font-weight:var(--ww-font-weight-medium);font-weight:var(--ww-font-weight-medium)}.ww\\:font-semibold{--tw-font-weight:var(--ww-font-weight-semibold);font-weight:var(--ww-font-weight-semibold)}.ww\\:tracking-wide{--tw-tracking:var(--ww-tracking-wide);letter-spacing:var(--ww-tracking-wide)}.ww\\:tracking-wider{--tw-tracking:var(--ww-tracking-wider);letter-spacing:var(--ww-tracking-wider)}.ww\\:break-words{overflow-wrap:break-word}.ww\\:break-all{word-break:break-all}.ww\\:whitespace-pre-wrap{white-space:pre-wrap}.ww\\:text-background{color:var(--ww-color-background,#fff)}.ww\\:text-foreground,.ww\\:text-foreground\\/80{color:var(--ww-color-foreground,#1f2937)}@supports (color:color-mix(in lab, red, red)){.ww\\:text-foreground\\/80{color:color-mix(in oklab,var(--ww-color-foreground,#1f2937)80%,transparent)}}.ww\\:text-muted-foreground{color:var(--ww-color-muted-foreground,#6b7280)}.ww\\:text-primary{color:var(--ww-color-primary,#6366f1)}.ww\\:text-primary-foreground{color:var(--ww-color-primary-foreground,#1f2937)}.ww\\:uppercase{text-transform:uppercase}.ww\\:opacity-0{opacity:0}.ww\\:opacity-50{opacity:.5}.ww\\:opacity-70{opacity:.7}.ww\\:opacity-100{opacity:1}.ww\\:shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ww\\:shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a),0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ww\\:ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ww\\:ring-blue-400\\/70{--tw-ring-color:var(--ww-color-blue-400)}@supports (color:color-mix(in lab, red, red)){.ww\\:ring-blue-400\\/70{--tw-ring-color:color-mix(in oklab,var(--ww-color-blue-400)70%,transparent)}}.ww\\:ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ww\\:ring-offset-background{--tw-ring-offset-color:var(--ww-color-background,#fff)}.ww\\:backdrop-blur{--tw-backdrop-blur:blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.ww\\:transition-\\[grid-template-rows\\,opacity\\]{transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.ww\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.ww\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.ww\\:ease-out{--tw-ease:var(--ww-ease-out);transition-timing-function:var(--ww-ease-out)}.ww\\:outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.ww\\:group-hover\\:opacity-0:is(:where(.ww\\:group):hover *){opacity:0}.ww\\:group-hover\\:opacity-100:is(:where(.ww\\:group):hover *){opacity:1}}.ww\\:group-\\[\\.is-assistant\\]\\:text-foreground:is(:where(.ww\\:group).is-assistant *){color:var(--ww-color-foreground,#1f2937)}.ww\\:group-\\[\\.is-user\\]\\:ml-auto:is(:where(.ww\\:group).is-user *){margin-left:auto}.ww\\:group-\\[\\.is-user\\]\\:rounded-lg:is(:where(.ww\\:group).is-user *){border-radius:var(--ww-radius-lg)}.ww\\:group-\\[\\.is-user\\]\\:bg-user-bubble:is(:where(.ww\\:group).is-user *){background-color:var(--ww-color-user-bubble,#f4f4f4)}.ww\\:group-\\[\\.is-user\\]\\:px-4:is(:where(.ww\\:group).is-user *){padding-inline:calc(var(--ww-spacing)*4)}.ww\\:group-\\[\\.is-user\\]\\:py-3:is(:where(.ww\\:group).is-user *){padding-block:calc(var(--ww-spacing)*3)}.ww\\:group-\\[\\.is-user\\]\\:text-primary-foreground:is(:where(.ww\\:group).is-user *){color:var(--ww-color-primary-foreground,#1f2937)}.ww\\:placeholder\\:text-muted-foreground::placeholder{color:var(--ww-color-muted-foreground,#6b7280)}@media (hover:hover){.ww\\:hover\\:border-primary\\/30:hover{border-color:var(--ww-color-primary,#6366f1)}@supports (color:color-mix(in lab, red, red)){.ww\\:hover\\:border-primary\\/30:hover{border-color:color-mix(in oklab,var(--ww-color-primary,#6366f1)30%,transparent)}}.ww\\:hover\\:bg-accent:hover{background-color:var(--ww-color-accent,#f3f4f6)}.ww\\:hover\\:bg-foreground:hover{background-color:var(--ww-color-foreground,#1f2937)}.ww\\:hover\\:bg-muted:hover{background-color:var(--ww-color-muted,#f1f5f9)}.ww\\:hover\\:bg-muted-foreground\\/10:hover{background-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:hover\\:bg-muted-foreground\\/10:hover{background-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)10%,transparent)}}.ww\\:hover\\:bg-primary\\/90:hover{background-color:var(--ww-color-primary,#6366f1)}@supports (color:color-mix(in lab, red, red)){.ww\\:hover\\:bg-primary\\/90:hover{background-color:color-mix(in oklab,var(--ww-color-primary,#6366f1)90%,transparent)}}.ww\\:hover\\:text-accent-foreground:hover{color:var(--ww-color-accent-foreground,#1f2937)}.ww\\:hover\\:text-foreground:hover{color:var(--ww-color-foreground,#1f2937)}.ww\\:hover\\:underline:hover{text-decoration-line:underline}}.ww\\:disabled\\:pointer-events-none:disabled{pointer-events:none}.ww\\:disabled\\:opacity-40:disabled{opacity:.4}.ww\\:disabled\\:opacity-50:disabled{opacity:.5}@media (min-width:40rem){.ww\\:sm\\:inset-auto{inset:auto}.ww\\:sm\\:right-0{right:calc(var(--ww-spacing)*0)}.ww\\:sm\\:right-4{right:calc(var(--ww-spacing)*4)}.ww\\:sm\\:right-auto{right:auto}.ww\\:sm\\:bottom-4{bottom:calc(var(--ww-spacing)*4)}.ww\\:sm\\:left-0{left:calc(var(--ww-spacing)*0)}.ww\\:sm\\:left-4{left:calc(var(--ww-spacing)*4)}.ww\\:sm\\:left-auto{left:auto}.ww\\:sm\\:mx-auto{margin-inline:auto}.ww\\:sm\\:h-\\[640px\\]{height:640px}.ww\\:sm\\:max-h-\\[calc\\(100dvh-2rem\\)\\]{max-height:calc(100dvh - 2rem)}.ww\\:sm\\:w-\\[calc\\(100vw-2rem\\)\\]{width:calc(100vw - 2rem)}.ww\\:sm\\:max-w-\\[480px\\]{max-width:480px}.ww\\:sm\\:rounded-2xl{border-radius:var(--ww-radius-2xl)}.ww\\:sm\\:border{border-style:var(--tw-border-style);border-width:1px}.ww\\:sm\\:border-border{border-color:var(--ww-color-border,#e5e7eb)}.ww\\:sm\\:text-sm{font-size:var(--ww-text-sm);line-height:var(--tw-leading,var(--ww-text-sm--line-height))}}.ww\\:\\[\\&\\>\\*\\:first-child\\]\\:mt-0>:first-child{margin-top:calc(var(--ww-spacing)*0)}.ww\\:\\[\\&\\>\\*\\:last-child\\]\\:mb-0>:last-child{margin-bottom:calc(var(--ww-spacing)*0)}}@keyframes ww-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes ww-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}@keyframes ww-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@keyframes ww-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){[data-waniwani-chat] [data-waniwani-shimmer]{color:var(--ww-color-muted-foreground)!important;animation:none!important}}[data-waniwani-floating]{transition:opacity .28s,transform .28s,visibility 0s linear .28s}[data-waniwani-floating][data-state=shown]{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .28s,transform .28s,visibility;transform:translateY(0)}[data-waniwani-floating][data-state=hidden]{opacity:0;visibility:hidden;pointer-events:none}[data-waniwani-floating=dock][data-state=hidden]{transform:translateY(.5rem)}[data-waniwani-floating=panel][data-state=hidden]{transform:translateY(2rem)}@media (prefers-reduced-motion:reduce){[data-waniwani-floating]{transition:visibility 0s linear 10ms}[data-waniwani-floating][data-state=shown]{transition:visibility}}[data-waniwani-chat] ::-webkit-scrollbar{width:8px}[data-waniwani-chat] ::-webkit-scrollbar-track{background:0 0}[data-waniwani-chat] ::-webkit-scrollbar-thumb{background:var(--ww-color-border);border-radius:9999px}[data-waniwani-chat] ::-webkit-scrollbar-thumb:hover{background:var(--ww-color-muted-foreground)}[data-waniwani-chat] *{scrollbar-width:thin;scrollbar-color:var(--ww-color-border)transparent}[data-waniwani-chat]{--ww-color-background:var(--ww-bg,#fff);--ww-color-foreground:var(--ww-text,#1f2937);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#1f2937);--ww-color-muted-foreground:var(--ww-muted,#6b7280);--ww-color-border:var(--ww-border,#e5e7eb);--ww-color-input:var(--ww-input-bg,#f9fafb);--ww-color-accent:var(--ww-assistant-bubble,#f3f4f6);--ww-color-accent-foreground:var(--ww-text,#1f2937);--ww-color-user-bubble:var(--ww-user-bubble,#f4f4f4);--ww-color-card:var(--ww-bg,#fff);--ww-color-card-foreground:var(--ww-text,#1f2937);--ww-color-card-header:var(--ww-header-bg,#fff);--ww-color-card-header-foreground:var(--ww-header-text,#1f2937);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#f4f4f5);--ww-radius:var(--ww-radius,16px);--ww-font-sans:var(--ww-font,system-ui,-apple-system,\"Segoe UI\",sans-serif);border-style:solid;border-width:var(--ww-border-width,0);border-color:var(--ww-color-border);box-shadow:var(--ww-shadow,none)}.dark [data-waniwani-chat],[data-waniwani-chat].dark{--ww-color-background:var(--ww-bg,#212121);--ww-color-foreground:var(--ww-text,#ececec);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#fff);--ww-color-muted-foreground:var(--ww-muted,#8e8ea0);--ww-color-border:var(--ww-border,#444);--ww-color-input:var(--ww-input-bg,#2f2f2f);--ww-color-accent:var(--ww-assistant-bubble,#2f2f2f);--ww-color-accent-foreground:var(--ww-text,#ececec);--ww-color-user-bubble:var(--ww-user-bubble,#303030);--ww-color-card:var(--ww-bg,#212121);--ww-color-card-foreground:var(--ww-text,#ececec);--ww-color-card-header:var(--ww-header-bg,#1e1e1e);--ww-color-card-header-foreground:var(--ww-header-text,#ececec);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#262626)}@media (prefers-color-scheme:dark){[data-waniwani-chat][data-color-scheme=auto]{--ww-color-background:var(--ww-bg,#212121);--ww-color-foreground:var(--ww-text,#ececec);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#fff);--ww-color-muted-foreground:var(--ww-muted,#8e8ea0);--ww-color-border:var(--ww-border,#444);--ww-color-input:var(--ww-input-bg,#2f2f2f);--ww-color-accent:var(--ww-assistant-bubble,#2f2f2f);--ww-color-accent-foreground:var(--ww-text,#ececec);--ww-color-user-bubble:var(--ww-user-bubble,#303030);--ww-color-card:var(--ww-bg,#212121);--ww-color-card-foreground:var(--ww-text,#ececec);--ww-color-card-header:var(--ww-header-bg,#1e1e1e);--ww-color-card-header-foreground:var(--ww-header-text,#ececec);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#262626)}}[data-waniwani-chat] [data-streamdown=table-wrapper]{flex-direction:column;gap:.5rem;margin-top:1rem;margin-bottom:1rem;display:flex}[data-waniwani-chat] [data-streamdown=table-wrapper]>div:first-child:has(button){justify-content:flex-end;align-items:center;gap:.25rem;display:flex}[data-waniwani-chat] [data-streamdown=table-wrapper]>div:last-child{overflow-x:auto}[data-waniwani-chat] [data-streamdown=table]{border-collapse:collapse;border:1px solid var(--ww-color-border);border-radius:.75rem;width:100%;overflow:hidden}[data-waniwani-chat] [data-streamdown=table-header]{background-color:var(--ww-color-accent)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=table-header]{background-color:color-mix(in srgb,var(--ww-color-accent)80%,transparent)}}[data-waniwani-chat] [data-streamdown=table-body]{background-color:var(--ww-color-accent)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=table-body]{background-color:color-mix(in srgb,var(--ww-color-accent)40%,transparent)}}[data-waniwani-chat] [data-streamdown=table-body]>tr+tr{border-top:1px solid var(--ww-color-border)}[data-waniwani-chat] [data-streamdown=table-row]{border-bottom:1px solid var(--ww-color-border)}[data-waniwani-chat] [data-streamdown=table-header-cell]{white-space:nowrap;text-align:left;padding:.5rem 1rem;font-size:.875rem;font-weight:600}[data-waniwani-chat] [data-streamdown=table-cell]{padding:.5rem 1rem;font-size:.875rem}[data-waniwani-chat] [data-streamdown=link]{color:var(--ww-color-primary);overflow-wrap:anywhere;cursor:pointer;font-weight:500;text-decoration:underline}[data-waniwani-chat].dark [data-streamdown=link],.dark [data-waniwani-chat] [data-streamdown=link]{color:var(--ww-color-primary)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat].dark [data-streamdown=link],.dark [data-waniwani-chat] [data-streamdown=link]{color:color-mix(in oklab,var(--ww-color-primary)55%,white)}}@media (prefers-color-scheme:dark){[data-waniwani-chat][data-color-scheme=auto] [data-streamdown=link]{color:var(--ww-color-primary)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat][data-color-scheme=auto] [data-streamdown=link]{color:color-mix(in oklab,var(--ww-color-primary)55%,white)}}}[data-waniwani-chat].dark [data-waniwani-logo],.dark [data-waniwani-chat] [data-waniwani-logo]{filter:invert()}@media (prefers-color-scheme:dark){[data-waniwani-chat][data-color-scheme=auto] [data-waniwani-logo]{filter:invert()}}[data-waniwani-chat] [data-streamdown=link-safety-modal]{z-index:50;background-color:var(--ww-color-background);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=link-safety-modal]{background-color:color-mix(in srgb,var(--ww-color-background)50%,transparent)}}[data-waniwani-chat] [data-streamdown=link-safety-modal]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div{border:1px solid var(--ww-color-border);background-color:var(--ww-color-background);width:100%;max-width:28rem;color:var(--ww-color-foreground);border-radius:.75rem;flex-direction:column;gap:1rem;margin:0 1rem;padding:1.5rem;display:flex;position:relative;box-shadow:0 10px 25px #0000001a}[data-waniwani-chat] [data-streamdown=link-safety-modal] button{cursor:pointer}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>button:first-child{color:var(--ww-color-muted-foreground);background:0 0;border:none;border-radius:.375rem;padding:.25rem;transition:background-color .15s,color .15s;position:absolute;top:1rem;right:1rem}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>button:first-child:hover{background-color:var(--ww-color-accent);color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type{flex-direction:column;gap:.5rem;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type>div{align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type>p{color:var(--ww-color-muted-foreground);font-size:.875rem}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:nth-child(3){word-break:break-all;background-color:var(--ww-color-accent);border-radius:.375rem;max-height:8rem;padding:.75rem;font-family:ui-monospace,monospace;font-size:.875rem;overflow-y:auto}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child{gap:.5rem;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button{border:none;border-radius:.375rem;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .15s;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:first-child{border:1px solid var(--ww-color-border);background-color:var(--ww-color-background);color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:first-child:hover{background-color:var(--ww-color-accent)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:last-child{background-color:var(--ww-color-primary);color:#fff}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:last-child:hover{opacity:.9}[data-waniwani-chat] [data-streamdown=ordered-list]{white-space:normal;list-style-type:decimal;list-style-position:inside}[data-waniwani-chat] li [data-streamdown=ordered-list]{padding-left:1.5rem}[data-waniwani-chat] [data-streamdown=unordered-list]{white-space:normal;list-style-type:disc;list-style-position:inside}[data-waniwani-chat] li [data-streamdown=unordered-list]{padding-left:1.5rem}[data-waniwani-chat] [data-streamdown=list-item]{padding-top:.25rem;padding-bottom:.25rem}[data-waniwani-chat] [data-streamdown=list-item]>p{display:inline}[data-waniwani-chat] [data-streamdown=inline-code]{background-color:var(--ww-color-accent);border-radius:.25rem;padding:.125rem .375rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:.875rem}[data-waniwani-chat] [data-streamdown=heading-1]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.875rem;font-weight:600;line-height:2.25rem}[data-waniwani-chat] [data-streamdown=heading-2]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.5rem;font-weight:600;line-height:2rem}[data-waniwani-chat] [data-streamdown=heading-3]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.25rem;font-weight:600;line-height:1.75rem}[data-waniwani-chat] [data-streamdown=heading-4]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.125rem;font-weight:600;line-height:1.75rem}[data-waniwani-chat] [data-streamdown=heading-5]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1rem;font-weight:600;line-height:1.5rem}[data-waniwani-chat] [data-streamdown=heading-6]{margin-top:1.5rem;margin-bottom:.5rem;font-size:.875rem;font-weight:600;line-height:1.25rem}[data-waniwani-chat] [data-streamdown=blockquote]{border-left:4px solid var(--ww-color-muted-foreground);margin-top:1rem;margin-bottom:1rem}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=blockquote]{border-left:4px solid color-mix(in srgb,var(--ww-color-muted-foreground)30%,transparent)}}[data-waniwani-chat] [data-streamdown=blockquote]{color:var(--ww-color-muted-foreground);padding-left:1rem;font-style:italic}[data-waniwani-chat] [data-streamdown=horizontal-rule]{border-color:var(--ww-color-border);margin-top:1.5rem;margin-bottom:1.5rem}[data-waniwani-chat] [data-streamdown=strong]{font-weight:600}[data-waniwani-chat] [data-streamdown=image-wrapper]{margin-top:1rem;margin-bottom:1rem;display:inline-block;position:relative}[data-waniwani-chat] [data-streamdown=image]{border-radius:.5rem;max-width:100%}[data-waniwani-chat] [data-streamdown=code-block]{border:1px solid var(--ww-color-border);border-radius:.75rem;width:100%;margin-top:1rem;margin-bottom:1rem;overflow:hidden}[data-waniwani-chat] [data-streamdown=code-block-header]{background-color:var(--ww-color-accent);justify-content:space-between;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=code-block-header]{background-color:color-mix(in srgb,var(--ww-color-accent)80%,transparent)}}[data-waniwani-chat] [data-streamdown=code-block-header]{color:var(--ww-color-muted-foreground);padding:.75rem;font-size:.75rem}[data-waniwani-chat] [data-streamdown=code-block-body]{padding:1rem;font-size:.875rem;overflow-x:auto}[data-waniwani-chat] [data-streamdown=code-block-copy-button],[data-waniwani-chat] [data-streamdown=code-block-download-button]{cursor:pointer;color:var(--ww-color-muted-foreground);background:0 0;border:none;padding:.25rem;transition:color .15s}[data-waniwani-chat] [data-streamdown=code-block-copy-button]:hover,[data-waniwani-chat] [data-streamdown=code-block-download-button]:hover{color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=mermaid-block]{border:1px solid var(--ww-color-border);border-radius:.75rem;height:auto;margin-top:1rem;margin-bottom:1rem;padding:1rem;position:relative}[data-waniwani-chat] [data-streamdown=mermaid]{width:100%;height:100%}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-backdrop-blur{syntax:\"*\";inherits:false}@property --tw-backdrop-brightness{syntax:\"*\";inherits:false}@property --tw-backdrop-contrast{syntax:\"*\";inherits:false}@property --tw-backdrop-grayscale{syntax:\"*\";inherits:false}@property --tw-backdrop-hue-rotate{syntax:\"*\";inherits:false}@property --tw-backdrop-invert{syntax:\"*\";inherits:false}@property --tw-backdrop-opacity{syntax:\"*\";inherits:false}@property --tw-backdrop-saturate{syntax:\"*\";inherits:false}@property --tw-backdrop-sepia{syntax:\"*\";inherits:false}@property --tw-duration{syntax:\"*\";inherits:false}@property --tw-ease{syntax:\"*\";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}",zt=null,Wr=null,ra=null,kf=null,_H="waniwani-chat-sizing",OH="waniwani-chat-defaults",PH="waniwani-chat-chrome",NH="waniwani-chat-auto-card",BH=`:where([data-waniwani-embed]){height:${L0}}`,UH=":where([data-waniwani-embed]){border-radius:16px;overflow:hidden}",zH=":where([data-waniwani-embed]){border-style:solid;border-width:var(--ww-border-width,0);border-color:var(--ww-border,transparent);box-shadow:var(--ww-shadow,none)}",qH=":where([data-waniwani-embed][data-waniwani-auto]){width:100%;max-width:28rem;margin-inline:auto;border-radius:16px;overflow:hidden;border-style:solid;border-width:var(--ww-border-width,1px);border-color:var(--ww-border,rgba(0,0,0,0.1));box-shadow:var(--ww-shadow,0 10px 30px rgba(0,0,0,0.08))}";function Tf(e,t){if(typeof document>"u"||document.getElementById(e))return;let a=document.createElement("style");a.id=e,a.textContent=t,document.head.appendChild(a)}function FH(e,t){let a=t.appearance?.variables;!a||!(e instanceof HTMLElement)||(typeof a.borderWidth=="number"&&e.style.setProperty("--ww-border-width",`${a.borderWidth}px`),a.borderColor&&e.style.setProperty("--ww-border",a.borderColor),a.boxShadow&&e.style.setProperty("--ww-shadow",a.boxShadow))}function kR(e,t){if(Dx&&Dx!=="__WANIWANI_EMBED_CSS__"){let n=document.createElement("style");n.textContent=Dx,e.appendChild(n)}let a=document.createElement("style");if(a.textContent="[data-waniwani-chat]{border-width:0;box-shadow:none}",e.appendChild(a),t.css)try{let n=new URL(t.css,window.location.href);if(n.protocol==="https:"||n.protocol==="http:"){let r=document.createElement("link");r.rel="stylesheet",r.href=n.href,e.appendChild(r)}else console.warn("[WaniWani] Custom CSS URL must use http or https protocol.")}catch{console.warn("[WaniWani] Invalid custom CSS URL:",t.css)}}var IR="data-waniwani-embed",_x="data-waniwani-auto";function HH(e){let t=document.querySelector(`[${IR}]`);if(t)return t;let a=document.createElement("div");a.setAttribute(IR,""),a.setAttribute(_x,"");let n=e?!!document.head?.contains(e):!1;return e?.parentNode&&!n?e.parentNode.insertBefore(a,e):document.body.appendChild(a),a}function jH(e){return/^\d+$/.test(e.trim())?`${e.trim()}px`:e.trim()}function VH(e,t,a,n){let r=HH(n);Tf(_H,BH),e.height&&r instanceof HTMLElement&&(r.style.height=jH(e.height)),e.appearance?.theme&&Tf(OH,UH),Tf(PH,zH),r.hasAttribute(_x)&&Tf(NH,qH),FH(r,e),ra=document.createElement("div"),ra.id="waniwani-chat-embed",ra.style.cssText="width:100%;height:100%;max-height:inherit;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;",r.appendChild(ra);let o=ra,l=()=>{let c=getComputedStyle(r);if(!c.maxHeight.endsWith("px")){o.style.removeProperty("max-height");return}let d=Number.parseFloat(c.maxHeight);if(!Number.isFinite(d)){o.style.removeProperty("max-height");return}let f=d;c.boxSizing==="border-box"&&(f-=(Number.parseFloat(c.paddingTop)||0)+(Number.parseFloat(c.paddingBottom)||0)+(Number.parseFloat(c.borderTopWidth)||0)+(Number.parseFloat(c.borderBottomWidth)||0)),f>0?o.style.maxHeight=`${f}px`:o.style.removeProperty("max-height")};l(),kf=new ResizeObserver(l),kf.observe(r);let i=ra.attachShadow({mode:"open"});kR(i,e);let s=document.createElement("div");s.className="ww:contents",i.appendChild(s);let u=nu.default.createRef();return Wr=Ox.default.createRoot(s),Wr.render(nu.default.createElement(SR,{ref:u,config:e,programmatic:t,scriptConfig:a})),{destroy:()=>{kf?.disconnect(),kf=null,Wr?.unmount(),Wr=null,ra?.remove(),ra=null,r.hasAttribute(_x)&&r.remove(),zt=null},open:()=>{},close:()=>{},toggle:()=>{},sendMessage:c=>u.current?.chat?.sendMessage(c),sendMessageAndWait:async c=>{let d=u.current?.chat;if(d)return await d.sendMessageAndWait(c)},reset:()=>u.current?.chat?.reset(),focus:()=>u.current?.chat?.focus(),getMessages:()=>u.current?.chat?.messages??[],getSessionId:()=>u.current?.chat?.sessionId}}function GH(e,t,a){ra=document.createElement("div"),ra.id="waniwani-chat-embed",ra.style.cssText="position:fixed;inset:0;z-index:2147483000;pointer-events:none;",document.body.appendChild(ra);let n=ra.attachShadow({mode:"open"});kR(n,e);let r=document.createElement("div");r.className="ww:contents",n.appendChild(r);let o=nu.default.createRef();return Wr=Ox.default.createRoot(r),Wr.render(nu.default.createElement(bR,{ref:o,config:e,programmatic:t,scriptConfig:a})),{destroy:()=>{Wr?.unmount(),Wr=null,ra?.remove(),ra=null,zt=null},open:()=>o.current?.open(),close:()=>o.current?.close(),toggle:()=>o.current?.toggle(),sendMessage:l=>o.current?.sendMessage(l),sendMessageAndWait:async l=>{if(o.current)return o.current.sendMessageAndWait(l)},reset:()=>o.current?.reset(),focus:()=>o.current?.focus(),getMessages:()=>o.current?.getMessages()??[],getSessionId:()=>o.current?.getSessionId()}}function TR(e){if(zt)return console.warn("[WaniWani] Chat widget is already initialized. Call destroy() first to re-initialize."),zt;let t=gh(),a=zc(),n=es(e,void 0,a);return zt=n.mode==="floating"?GH(n,e,a):VH(n,e,a,t),zt}function WH(){zt&&zt.destroy()}window.WaniWani=window.WaniWani||{};window.WaniWani.chat={init:TR,destroy:WH,open:()=>zt?.open(),close:()=>zt?.close(),toggle:()=>zt?.toggle(),sendMessage:e=>zt?.sendMessage(e),sendMessageAndWait:async e=>{if(zt)return zt.sendMessageAndWait(e)},reset:()=>zt?.reset(),focus:()=>zt?.focus(),getMessages:()=>zt?.getMessages()??[],getSessionId:()=>zt?.getSessionId()};function LR(){if(zc().token)try{TR()}catch(t){console.error("[WaniWani] Auto-initialization failed:",t)}}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",LR):LR();})();
139
139
  /*! Bundled license information:
140
140
 
141
141
  react/cjs/react.production.js: