@waniwani/sdk 0.14.14 → 0.14.15

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: ${b2(a)}`,cause:a}),this[d2]=!0,this.value=t,this.context=n}stati
135
135
  `)},flush(e){e.enqueue(`data: [DONE]
136
136
 
137
137
  `)}})}};var _w=xf(()=>nu(h.union([h.strictObject({type:h.literal("text-start"),id:h.string(),providerMetadata:X.optional()}),h.strictObject({type:h.literal("text-delta"),id:h.string(),delta:h.string(),providerMetadata:X.optional()}),h.strictObject({type:h.literal("text-end"),id:h.string(),providerMetadata:X.optional()}),h.strictObject({type:h.literal("error"),errorText:h.string()}),h.strictObject({type:h.literal("tool-input-start"),toolCallId:h.string(),toolName:h.string(),providerExecuted:h.boolean().optional(),providerMetadata:X.optional(),dynamic:h.boolean().optional(),title:h.string().optional()}),h.strictObject({type:h.literal("tool-input-delta"),toolCallId:h.string(),inputTextDelta:h.string()}),h.strictObject({type:h.literal("tool-input-available"),toolCallId:h.string(),toolName:h.string(),input:h.unknown(),providerExecuted:h.boolean().optional(),providerMetadata:X.optional(),dynamic:h.boolean().optional(),title:h.string().optional()}),h.strictObject({type:h.literal("tool-input-error"),toolCallId:h.string(),toolName:h.string(),input:h.unknown(),providerExecuted:h.boolean().optional(),providerMetadata:X.optional(),dynamic:h.boolean().optional(),errorText:h.string(),title:h.string().optional()}),h.strictObject({type:h.literal("tool-approval-request"),approvalId:h.string(),toolCallId:h.string()}),h.strictObject({type:h.literal("tool-output-available"),toolCallId:h.string(),output:h.unknown(),providerExecuted:h.boolean().optional(),providerMetadata:X.optional(),dynamic:h.boolean().optional(),preliminary:h.boolean().optional()}),h.strictObject({type:h.literal("tool-output-error"),toolCallId:h.string(),errorText:h.string(),providerExecuted:h.boolean().optional(),providerMetadata:X.optional(),dynamic:h.boolean().optional()}),h.strictObject({type:h.literal("tool-output-denied"),toolCallId:h.string()}),h.strictObject({type:h.literal("reasoning-start"),id:h.string(),providerMetadata:X.optional()}),h.strictObject({type:h.literal("reasoning-delta"),id:h.string(),delta:h.string(),providerMetadata:X.optional()}),h.strictObject({type:h.literal("reasoning-end"),id:h.string(),providerMetadata:X.optional()}),h.strictObject({type:h.literal("source-url"),sourceId:h.string(),url:h.string(),title:h.string().optional(),providerMetadata:X.optional()}),h.strictObject({type:h.literal("source-document"),sourceId:h.string(),mediaType:h.string(),title:h.string(),filename:h.string().optional(),providerMetadata:X.optional()}),h.strictObject({type:h.literal("file"),url:h.string(),mediaType:h.string(),providerMetadata:X.optional()}),h.strictObject({type:h.custom(e=>typeof e=="string"&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:h.string().optional(),data:h.unknown(),transient:h.boolean().optional()}),h.strictObject({type:h.literal("start-step")}),h.strictObject({type:h.literal("finish-step")}),h.strictObject({type:h.literal("start"),messageId:h.string().optional(),messageMetadata:h.unknown().optional()}),h.strictObject({type:h.literal("finish"),finishReason:h.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:h.unknown().optional()}),h.strictObject({type:h.literal("abort"),reason:h.string().optional()}),h.strictObject({type:h.literal("message-metadata"),messageMetadata:h.unknown()})])));function kH(e){return e.type.startsWith("data-")}function Dw(e){return e.type.startsWith("tool-")}function TH(e){return e.type==="dynamic-tool"}function Cf(e){return Dw(e)||TH(e)}function sR(e){return e.type.split("-").slice(1).join("-")}function AH({lastMessage:e,messageId:t}){return{message:e?.role==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function MH({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,m;function x(g){let M=u.message.parts.filter(Cf).find(S=>S.toolCallId===g);if(M==null)throw new Jl({chunkType:"tool-invocation",chunkId:g,message:`No tool invocation found for tool call ID "${g}".`});return M}function b(g){var v;let M=u.message.parts.find(E=>Dw(E)&&E.toolCallId===g.toolCallId),S=g,A=M;if(M!=null){M.state=g.state,A.input=S.input,A.output=S.output,A.errorText=S.errorText,A.rawInput=S.rawInput,A.preliminary=S.preliminary,g.title!==void 0&&(A.title=g.title),A.providerExecuted=(v=S.providerExecuted)!=null?v:M.providerExecuted;let E=S.providerMetadata;if(E!=null)if(g.state==="output-available"||g.state==="output-error"){let _=M;_.resultProviderMetadata=E}else M.callProviderMetadata=E}else u.message.parts.push({type:`tool-${g.toolName}`,toolCallId:g.toolCallId,state:g.state,title:g.title,input:S.input,output:S.output,rawInput:S.rawInput,errorText:S.errorText,providerExecuted:S.providerExecuted,preliminary:S.preliminary,...S.providerMetadata!=null&&(g.state==="output-available"||g.state==="output-error")?{resultProviderMetadata:S.providerMetadata}:{},...S.providerMetadata!=null&&!(g.state==="output-available"||g.state==="output-error")?{callProviderMetadata:S.providerMetadata}:{}})}function y(g){var v,M;let S=u.message.parts.find(_=>_.type==="dynamic-tool"&&_.toolCallId===g.toolCallId),A=g,E=S;if(S!=null){S.state=g.state,E.toolName=g.toolName,E.input=A.input,E.output=A.output,E.errorText=A.errorText,E.rawInput=(v=A.rawInput)!=null?v:E.rawInput,E.preliminary=A.preliminary,g.title!==void 0&&(E.title=g.title),E.providerExecuted=(M=A.providerExecuted)!=null?M:S.providerExecuted;let _=A.providerMetadata;if(_!=null)if(g.state==="output-available"||g.state==="output-error"){let k=S;k.resultProviderMetadata=_}else S.callProviderMetadata=_}else u.message.parts.push({type:"dynamic-tool",toolName:g.toolName,toolCallId:g.toolCallId,state:g.state,input:A.input,output:A.output,errorText:A.errorText,preliminary:A.preliminary,providerExecuted:A.providerExecuted,title:g.title,...A.providerMetadata!=null&&(g.state==="output-available"||g.state==="output-error")?{resultProviderMetadata:A.providerMetadata}:{},...A.providerMetadata!=null&&!(g.state==="output-available"||g.state==="output-error")?{callProviderMetadata:A.providerMetadata}:{}})}async function w(g){if(g!=null){let v=u.message.metadata!=null?xR(u.message.metadata,g):g;t!=null&&await Sf({value:v,schema:t,context:{field:"message.metadata",entityId:u.message.id}}),u.message.metadata=v}}switch(i.type){case"text-start":{let g={type:"text",text:"",providerMetadata:i.providerMetadata,state:"streaming"};u.activeTextParts[i.id]=g,u.message.parts.push(g),c();break}case"text-delta":{let g=u.activeTextParts[i.id];if(g==null)throw new Jl({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.`});g.text+=i.delta,g.providerMetadata=(d=i.providerMetadata)!=null?d:g.providerMetadata,c();break}case"text-end":{let g=u.activeTextParts[i.id];if(g==null)throw new Jl({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.`});g.state="done",g.providerMetadata=(f=i.providerMetadata)!=null?f:g.providerMetadata,delete u.activeTextParts[i.id],c();break}case"reasoning-start":{let g={type:"reasoning",text:"",providerMetadata:i.providerMetadata,state:"streaming"};u.activeReasoningParts[i.id]=g,u.message.parts.push(g),c();break}case"reasoning-delta":{let g=u.activeReasoningParts[i.id];if(g==null)throw new Jl({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.`});g.text+=i.delta,g.providerMetadata=(p=i.providerMetadata)!=null?p:g.providerMetadata,c();break}case"reasoning-end":{let g=u.activeReasoningParts[i.id];if(g==null)throw new Jl({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.`});g.providerMetadata=(m=i.providerMetadata)!=null?m:g.providerMetadata,g.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 g=u.message.parts.filter(Dw);u.partialToolCalls[i.toolCallId]={text:"",toolName:i.toolName,index:g.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}):b({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 g=u.partialToolCalls[i.toolCallId];if(g==null)throw new Jl({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.`});g.text+=i.inputTextDelta;let{value:v}=await ou(g.text);g.dynamic?y({toolCallId:i.toolCallId,toolName:g.toolName,state:"input-streaming",input:v,title:g.title}):b({toolCallId:i.toolCallId,toolName:g.toolName,state:"input-streaming",input:v,title:g.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}):b({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 g=u.message.parts.filter(Cf).find(M=>M.toolCallId===i.toolCallId);(g!=null?g.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}):b({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 g=x(i.toolCallId);g.state="approval-requested",g.approval={id:i.approvalId},c();break}case"tool-output-denied":{let g=x(i.toolCallId);g.state="output-denied",c();break}case"tool-output-available":{let g=x(i.toolCallId);g.type==="dynamic-tool"?y({toolCallId:i.toolCallId,toolName:g.toolName,state:"output-available",input:g.input,output:i.output,preliminary:i.preliminary,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:g.title}):b({toolCallId:i.toolCallId,toolName:sR(g),state:"output-available",input:g.input,output:i.output,providerExecuted:i.providerExecuted,preliminary:i.preliminary,providerMetadata:i.providerMetadata,title:g.title}),c();break}case"tool-output-error":{let g=x(i.toolCallId);g.type==="dynamic-tool"?y({toolCallId:i.toolCallId,toolName:g.toolName,state:"output-error",input:g.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:g.title}):b({toolCallId:i.toolCallId,toolName:sR(g),state:"output-error",input:g.input,rawInput:g.rawInput,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:g.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 w(i.messageMetadata),(i.messageId!=null||i.messageMetadata!=null)&&c();break}case"finish":{i.finishReason!=null&&(u.finishReason=i.finishReason),await w(i.messageMetadata),i.messageMetadata!=null&&c();break}case"message-metadata":{await w(i.messageMetadata),i.messageMetadata!=null&&c();break}case"error":{r?.(new Error(i.errorText));break}default:if(kH(i)){if(a?.[i.type]!=null){let M=u.message.parts.findIndex(A=>"id"in A&&"data"in A&&A.id===i.id&&A.type===i.type),S=M>=0?M:u.message.parts.length;await Sf({value:i.data,schema:a[i.type],context:{field:`message.parts[${S}].data`,entityName:i.type,entityId:i.id}})}let g=i;if(g.transient){l?.(g);break}let v=g.id!=null?u.message.parts.find(M=>g.type===M.type&&g.id===M.id):void 0;v!=null?v.data=g.data:u.message.parts.push(g),l?.(g),c()}}s.enqueue(i)})}}))}async function EH({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 jae=er({prefix:"aitxt",size:24});var $ae=xf(()=>nu(h.array(h.object({id:h.string(),role:h.enum(["system","user","assistant"]),metadata:h.unknown().optional(),parts:h.array(h.union([h.object({type:h.literal("text"),text:h.string(),state:h.enum(["streaming","done"]).optional(),providerMetadata:X.optional()}),h.object({type:h.literal("reasoning"),text:h.string(),state:h.enum(["streaming","done"]).optional(),providerMetadata:X.optional()}),h.object({type:h.literal("source-url"),sourceId:h.string(),url:h.string(),title:h.string().optional(),providerMetadata:X.optional()}),h.object({type:h.literal("source-document"),sourceId:h.string(),mediaType:h.string(),title:h.string(),filename:h.string().optional(),providerMetadata:X.optional()}),h.object({type:h.literal("file"),mediaType:h.string(),filename:h.string().optional(),url:h.string(),providerMetadata:X.optional()}),h.object({type:h.literal("step-start")}),h.object({type:h.string().startsWith("data-"),id:h.string().optional(),data:h.unknown()}),h.object({type:h.literal("dynamic-tool"),toolName:h.string(),toolCallId:h.string(),state:h.literal("input-streaming"),input:h.unknown().optional(),providerExecuted:h.boolean().optional(),callProviderMetadata:X.optional(),output:h.never().optional(),errorText:h.never().optional(),approval:h.never().optional()}),h.object({type:h.literal("dynamic-tool"),toolName:h.string(),toolCallId:h.string(),state:h.literal("input-available"),input:h.unknown(),providerExecuted:h.boolean().optional(),output:h.never().optional(),errorText:h.never().optional(),callProviderMetadata:X.optional(),approval:h.never().optional()}),h.object({type:h.literal("dynamic-tool"),toolName:h.string(),toolCallId:h.string(),state:h.literal("approval-requested"),input:h.unknown(),providerExecuted:h.boolean().optional(),output:h.never().optional(),errorText:h.never().optional(),callProviderMetadata:X.optional(),approval:h.object({id:h.string(),approved:h.never().optional(),reason:h.never().optional()})}),h.object({type:h.literal("dynamic-tool"),toolName:h.string(),toolCallId:h.string(),state:h.literal("approval-responded"),input:h.unknown(),providerExecuted:h.boolean().optional(),output:h.never().optional(),errorText:h.never().optional(),callProviderMetadata:X.optional(),approval:h.object({id:h.string(),approved:h.boolean(),reason:h.string().optional()})}),h.object({type:h.literal("dynamic-tool"),toolName:h.string(),toolCallId:h.string(),state:h.literal("output-available"),input:h.unknown(),providerExecuted:h.boolean().optional(),output:h.unknown(),errorText:h.never().optional(),callProviderMetadata:X.optional(),resultProviderMetadata:X.optional(),preliminary:h.boolean().optional(),approval:h.object({id:h.string(),approved:h.literal(!0),reason:h.string().optional()}).optional()}),h.object({type:h.literal("dynamic-tool"),toolName:h.string(),toolCallId:h.string(),state:h.literal("output-error"),input:h.unknown(),rawInput:h.unknown().optional(),providerExecuted:h.boolean().optional(),output:h.never().optional(),errorText:h.string(),callProviderMetadata:X.optional(),resultProviderMetadata:X.optional(),approval:h.object({id:h.string(),approved:h.literal(!0),reason:h.string().optional()}).optional()}),h.object({type:h.literal("dynamic-tool"),toolName:h.string(),toolCallId:h.string(),state:h.literal("output-denied"),input:h.unknown(),providerExecuted:h.boolean().optional(),output:h.never().optional(),errorText:h.never().optional(),callProviderMetadata:X.optional(),approval:h.object({id:h.string(),approved:h.literal(!1),reason:h.string().optional()})}),h.object({type:h.string().startsWith("tool-"),toolCallId:h.string(),state:h.literal("input-streaming"),providerExecuted:h.boolean().optional(),callProviderMetadata:X.optional(),input:h.unknown().optional(),output:h.never().optional(),errorText:h.never().optional(),approval:h.never().optional()}),h.object({type:h.string().startsWith("tool-"),toolCallId:h.string(),state:h.literal("input-available"),providerExecuted:h.boolean().optional(),input:h.unknown(),output:h.never().optional(),errorText:h.never().optional(),callProviderMetadata:X.optional(),approval:h.never().optional()}),h.object({type:h.string().startsWith("tool-"),toolCallId:h.string(),state:h.literal("approval-requested"),input:h.unknown(),providerExecuted:h.boolean().optional(),output:h.never().optional(),errorText:h.never().optional(),callProviderMetadata:X.optional(),approval:h.object({id:h.string(),approved:h.never().optional(),reason:h.never().optional()})}),h.object({type:h.string().startsWith("tool-"),toolCallId:h.string(),state:h.literal("approval-responded"),input:h.unknown(),providerExecuted:h.boolean().optional(),output:h.never().optional(),errorText:h.never().optional(),callProviderMetadata:X.optional(),approval:h.object({id:h.string(),approved:h.boolean(),reason:h.string().optional()})}),h.object({type:h.string().startsWith("tool-"),toolCallId:h.string(),state:h.literal("output-available"),providerExecuted:h.boolean().optional(),input:h.unknown(),output:h.unknown(),errorText:h.never().optional(),callProviderMetadata:X.optional(),resultProviderMetadata:X.optional(),preliminary:h.boolean().optional(),approval:h.object({id:h.string(),approved:h.literal(!0),reason:h.string().optional()}).optional()}),h.object({type:h.string().startsWith("tool-"),toolCallId:h.string(),state:h.literal("output-error"),providerExecuted:h.boolean().optional(),input:h.unknown(),rawInput:h.unknown().optional(),output:h.never().optional(),errorText:h.string(),callProviderMetadata:X.optional(),resultProviderMetadata:X.optional(),approval:h.object({id:h.string(),approved:h.literal(!0),reason:h.string().optional()}).optional()}),h.object({type:h.string().startsWith("tool-"),toolCallId:h.string(),state:h.literal("output-denied"),providerExecuted:h.boolean().optional(),input:h.unknown(),output:h.never().optional(),errorText:h.never().optional(),callProviderMetadata:X.optional(),approval:h.object({id:h.string(),approved:h.literal(!1),reason:h.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty")));var Xae=er({prefix:"aiobj",size:24});function vR(e){return({url:t,abortSignal:a})=>sH({url:t,maxBytes:e?.maxBytes,abortSignal:a})}var RH=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 Qae=er({prefix:"aiobj",size:24});var Kae=vR();var DH="AI_NoSuchProviderError",_H=`vercel.ai.error.${DH}`,OH=Symbol.for(_H),PH;PH=OH;var Yae=vR();async function NH(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 BH=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 bn(this.body),s=await bn(this.headers),u=await bn(this.credentials),c={...Vr(s),...Vr(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?Vr(d.headers):c,m=d?.body!==void 0?d.body:{...i,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},x=(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(m),credentials:x,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 bn(this.body),i=await bn(this.headers),s=await bn(this.credentials),u={...Vr(i),...Vr(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?Vr(c.headers):u,p=(n=c?.credentials)!=null?n:s,x=await((r=this.fetch)!=null?r:globalThis.fetch)(d,{method:"GET",headers:f,credentials:p});if(x.status===204)return null;if(!x.ok)throw new Error((o=await x.text())!=null?o:"Failed to fetch the chat response.");if(!x.body)throw new Error("The response body is empty.");return this.processResponseStream(x.body)}},Ow=class extends BH{constructor(e={}){super(e)}processResponseStream(e){return iR({stream:e,schema:_w}).pipeThrough(new TransformStream({async transform(t,a){if(!t.success)throw t.error;a.enqueue(t.value)}}))}},bR=class{constructor({generateId:e=tR,id:t=e(),transport:a=new Ow,messageMetadataSchema:n,dataPartSchemas:r,state:o,onError:l,onToolCall:i,onFinish:s,onData:u,sendAutomaticallyWhen:c}){this.activeResponse=void 0,this.jobExecutor=new RH,this.sendMessage=async(d,f)=>{var p,m,x,b;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 NH(d.files),..."text"in d&&d.text!=null?[{type:"text",text:d.text}]:[]]}:y=d,d.messageId!=null){let w=this.state.messages.findIndex(g=>g.id===d.messageId);if(w===-1)throw new Error(`message with id ${d.messageId} not found`);if(this.state.messages[w].role!=="user")throw new Error(`message with id ${d.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,w+1),this.state.replaceMessage(w,{...y,id:d.messageId,role:(m=y.role)!=null?m:"user",metadata:d.metadata})}else this.state.pushMessage({...y,id:(x=y.id)!=null?x:this.generateId(),role:(b=y.role)!=null?b:"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(m=>m.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:m})=>this.jobExecutor.run(async()=>{let x=this.state.messages,b=x[x.length-1],y=w=>Cf(w)&&w.state==="approval-requested"&&w.approval.id===d?{...w,state:"approval-responded",approval:{id:d,approved:f,reason:p}}:w;this.state.replaceMessage(x.length-1,{...b,parts:b.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(w=>{var g;w&&this.makeRequest({trigger:"submit-message",messageId:(g=this.lastMessage)==null?void 0:g.id,...m})})}),this.addToolOutput=async({state:d="output-available",toolCallId:f,output:p,errorText:m,options:x})=>this.jobExecutor.run(async()=>{let b=this.state.messages,y=b[b.length-1],w=g=>Cf(g)&&g.toolCallId===f?{...g,state:d,output:p,errorText:m}:g;this.state.replaceMessage(b.length-1,{...y,parts:y.parts.map(w)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(w)),this.status!=="streaming"&&this.status!=="submitted"&&this.sendAutomaticallyWhen&&this.shouldSendAutomatically().then(g=>{var v;g&&this.makeRequest({trigger:"submit-message",messageId:(v=this.lastMessage)==null?void 0:v.id,...x})})}),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:AH({lastMessage:this.state.snapshot(u),messageId:this.generateId()}),abortController:new AbortController};p.abortController.signal.addEventListener("abort",()=>{c=!0}),this.activeResponse=p;let m;e==="resume-stream"?m=s:m=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 x=b=>this.jobExecutor.run(()=>b({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 EH({stream:MH({stream:m,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:x,onError:b=>{throw b}}),onError:b=>{throw b}}),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 kR=F(CR(),1);var uu=F(Ae(),1);var kf=F(Ae(),1);var LR=(e,t,a)=>{if(!t.has(e))throw TypeError("Cannot "+a)},ut=(e,t,a)=>(LR(e,t,"read from private field"),a?a.call(e):t.get(e)),Sn=(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)},$r=(e,t,a,n)=>(LR(e,t,"write to private field"),n?n.call(e,a):t.set(e,a),a);function zH(e,t){return t!=null?(0,kR.default)(e,t):e}var Xa,If,Lf,lu,iu,su,ei,Pw,Nw,qH=class{constructor(e=[]){Sn(this,Xa,void 0),Sn(this,If,"ready"),Sn(this,Lf,void 0),Sn(this,lu,new Set),Sn(this,iu,new Set),Sn(this,su,new Set),this.pushMessage=t=>{$r(this,Xa,ut(this,Xa).concat(t)),ut(this,ei).call(this)},this.popMessage=()=>{$r(this,Xa,ut(this,Xa).slice(0,-1)),ut(this,ei).call(this)},this.replaceMessage=(t,a)=>{$r(this,Xa,[...ut(this,Xa).slice(0,t),this.snapshot(a),...ut(this,Xa).slice(t+1)]),ut(this,ei).call(this)},this.snapshot=t=>structuredClone(t),this["~registerMessagesCallback"]=(t,a)=>{let n=a?zH(t,a):t;return ut(this,lu).add(n),()=>{ut(this,lu).delete(n)}},this["~registerStatusCallback"]=t=>(ut(this,iu).add(t),()=>{ut(this,iu).delete(t)}),this["~registerErrorCallback"]=t=>(ut(this,su).add(t),()=>{ut(this,su).delete(t)}),Sn(this,ei,()=>{ut(this,lu).forEach(t=>t())}),Sn(this,Pw,()=>{ut(this,iu).forEach(t=>t())}),Sn(this,Nw,()=>{ut(this,su).forEach(t=>t())}),$r(this,Xa,e)}get status(){return ut(this,If)}set status(e){$r(this,If,e),ut(this,Pw).call(this)}get error(){return ut(this,Lf)}set error(e){$r(this,Lf,e),ut(this,Nw).call(this)}get messages(){return ut(this,Xa)}set messages(e){$r(this,Xa,[...e]),ut(this,ei).call(this)}};Xa=new WeakMap;If=new WeakMap;Lf=new WeakMap;lu=new WeakMap;iu=new WeakMap;su=new WeakMap;ei=new WeakMap;Pw=new WeakMap;Nw=new WeakMap;var ti,IR=class extends bR{constructor({messages:e,...t}){let a=new qH(e);super({...t,state:a}),Sn(this,ti,void 0),this["~registerMessagesCallback"]=(n,r)=>ut(this,ti)["~registerMessagesCallback"](n,r),this["~registerStatusCallback"]=n=>ut(this,ti)["~registerStatusCallback"](n),this["~registerErrorCallback"]=n=>ut(this,ti)["~registerErrorCallback"](n),$r(this,ti,a)}};ti=new WeakMap;function TR({experimental_throttle:e,resume:t=!1,...a}={}){let n=(0,Za.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,m;return(m=(p=n.current).onToolCall)==null?void 0:m.call(p,f)},onData:f=>{var p,m;return(m=(p=n.current).onData)==null?void 0:m.call(p,f)},onFinish:f=>{var p,m;return(m=(p=n.current).onFinish)==null?void 0:m.call(p,f)},onError:f=>{var p,m;return(m=(p=n.current).onError)==null?void 0:m.call(p,f)},sendAutomaticallyWhen:f=>{var p,m,x;return(x=(m=(p=n.current).sendAutomaticallyWhen)==null?void 0:m.call(p,f))!=null?x:!1}},o=(0,Za.useRef)("chat"in a?a.chat:new IR(r));("chat"in a&&a.chat!==o.current||"id"in a&&o.current.id!==a.id)&&(o.current="chat"in a?a.chat:new IR(r));let i=(0,Za.useCallback)(f=>o.current["~registerMessagesCallback"](f,e),[e,o.current.id]),s=(0,Za.useSyncExternalStore)(i,()=>o.current.messages,()=>o.current.messages),u=(0,Za.useSyncExternalStore)(o.current["~registerStatusCallback"],()=>o.current.status,()=>o.current.status),c=(0,Za.useSyncExternalStore)(o.current["~registerErrorCallback"],()=>o.current.error,()=>o.current.error),d=(0,Za.useCallback)(f=>{typeof f=="function"&&(f=f(o.current.messages)),o.current.messages=f},[o]);return(0,Za.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 Z=F(Ae(),1);function ai(e,t,a){let[n,r=""]=e.split("?"),o=n.replace(/\/$/,""),l=new URLSearchParams(r);if(a)for(let[s,u]of Object.entries(a))l.set(s,u);let i=l.toString();return`${o}${t}${i?`?${i}`:""}`}function FH(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 Tf=class extends Ow{processResponseStream(t){let a="",n=_w(),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=FH(f.error);if(p?.length){let m={...d};for(let b of p)delete m[b];let x=await r(m);x.success&&l.enqueue(x.value)}}catch{}}}}))}};var HH="waniwani-memory";var Ra="threads",Af="by_memoryUserId",jH="by_updatedAt";var MR="memoryUserId",AR="waniwani-memory-user-id",Bw=null;function Uw(){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 VH(e,t){if(t<1&&(e.objectStoreNames.contains("ids")||e.createObjectStore("ids")),t<2&&!e.objectStoreNames.contains(Ra)){let a=e.createObjectStore(Ra,{keyPath:"threadId"});a.createIndex(Af,"memoryUserId",{unique:!1}),a.createIndex(jH,"updatedAt",{unique:!1})}}async function zw(){return new Promise((e,t)=>{let a=indexedDB.open(HH,2);a.onupgradeneeded=n=>{VH(a.result,n.oldVersion)},a.onsuccess=()=>e(a.result),a.onerror=()=>t(a.error)})}async function GH(){return zw()}async function $H(e){return new Promise((t,a)=>{let o=e.transaction("ids","readonly").objectStore("ids").get(MR);o.onsuccess=()=>t(typeof o.result=="string"?o.result:null),o.onerror=()=>a(o.error)})}async function WH(e,t){return new Promise((a,n)=>{let l=e.transaction("ids","readwrite").objectStore("ids").put(t,MR);l.onsuccess=()=>a(),l.onerror=()=>n(l.error)})}async function XH(){if(typeof indexedDB>"u")return null;try{let e=await GH();try{let t=await $H(e);if(t)return t;let a=Uw();return await WH(e,a),a}finally{e.close()}}catch{return null}}function ZH(){try{let e=localStorage.getItem(AR);if(e)return e;let t=Uw();return localStorage.setItem(AR,t),t}catch{return null}}async function ER(){let e=await XH();if(e)return e;let t=ZH();return t||(Bw||(Bw=Uw()),Bw)}var RR=50,DR=1e3;function Mf(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 Ef(e){if(typeof indexedDB>"u")return null;let t=null;try{return t=await zw(),await e(t)}catch{return null}finally{try{t?.close()}catch{}}}function qw(e){return new Promise((t,a)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>a(e.error)})}async function Fw(e){return await Ef(async a=>{let o=a.transaction(Ra,"readonly").objectStore(Ra).index(Af),i=(await qw(o.getAll(e))??[]).filter(Mf);return i.sort((s,u)=>s.updatedAt<u.updatedAt?1:-1),i})??[]}async function Rf(e){return await Ef(async a=>{let r=a.transaction(Ra,"readonly").objectStore(Ra),o=await qw(r.get(e));return Mf(o)?o:null})??null}async function Hw(e){if(!Mf(e))return;let t=e.messages.length>DR?{...e,messages:e.messages.slice(e.messages.length-DR)}:e;await Ef(async a=>{await new Promise((s,u)=>{let c=a.transaction(Ra,"readwrite");c.oncomplete=()=>s(),c.onerror=()=>u(c.error),c.onabort=()=>u(c.error),c.objectStore(Ra).put(t)});let n=a.transaction(Ra,"readwrite"),r=n.objectStore(Ra),o=r.index(Af),i=(await qw(o.getAll(t.memoryUserId))??[]).filter(Mf);if(i.length>RR){i.sort((u,c)=>u.updatedAt<c.updatedAt?-1:1);let s=i.slice(0,i.length-RR);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 _R(e){await Ef(async t=>(await new Promise((a,n)=>{let r=t.transaction(Ra,"readwrite");r.oncomplete=()=>a(),r.onerror=()=>n(r.error),r.onabort=()=>n(r.error),r.objectStore(Ra).delete(e)}),null))}async function jw(e){return(await Fw(e))[0]?.threadId??null}function OR(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 PR="waniwani-visitor-id";function NR(e,t){return e.match(t)?.[1]??null}function QH(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=NR(e,n);if(r)return{name:a,version:r}}return null}function KH(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=NR(e,n);if(r)return{name:a,version:r.replace(/_/g,".")};if(a==="Linux"&&n.test(e))return{name:a,version:""}}return null}function YH(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 JH(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 e9(){try{let a=localStorage.getItem(PR);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 JH(e);try{localStorage.setItem(PR,t)}catch{}return t}async function cu(){let e=navigator.userAgent,[t,a]=await Promise.all([e9(),ER()]);return{userAgent:e,browser:QH(e),os:KH(e),deviceType:YH(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 t9="x-session-id",a9=250;function BR(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():bs()}function Df(){return new Date().toISOString()}function UR(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}async function n9(e,t){let a=ai(e,"/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 zR(e){let{api:t="/api/waniwani",headers:a,body:n,onMessageSent:r,onResponseReceived:o,enableThreadHistory:l=!1,activeThreadId:i,onThreadChange:s}=e,u=(0,Z.useRef)(a),c=(0,Z.useRef)(n),d=(0,Z.useRef)(l);(0,Z.useEffect)(()=>{d.current=l},[l]);let f=(0,Z.useRef)(void 0),p=(0,Z.useRef)(null),[m,x]=(0,Z.useState)(void 0),b=(0,Z.useRef)(m),[y,w]=(0,Z.useState)(i),g=(0,Z.useRef)(y),[v,M]=(0,Z.useState)([]),[S,A]=(0,Z.useState)(!l),E=(0,Z.useRef)(void 0),_=(0,Z.useRef)(void 0),k=(0,Z.useRef)(void 0),W=(0,Z.useRef)(void 0),U=(0,Z.useRef)(0),D=(0,Z.useRef)(s);(0,Z.useEffect)(()=>{D.current=s},[s]);let P=(0,Z.useCallback)(B=>{g.current=B,w(B),B&&D.current?.(B)},[]),q=(0,Z.useCallback)(async()=>{if(!l)return;let B=p.current?.memoryUserId;if(!B)return;let re=await Fw(B);M(re)},[l]),G=(0,Z.useCallback)(()=>b.current,[]),ae=(0,Z.useCallback)(B=>{let re=UR(B);re&&b.current!==re&&(b.current=re,x(re))},[]),he=(0,Z.useCallback)(()=>{b.current=void 0,x(void 0)},[]);(0,Z.useEffect)(()=>{u.current=a},[a]),(0,Z.useEffect)(()=>{c.current=n},[n]),(0,Z.useEffect)(()=>{let B=!1,re=U.current;return(async()=>{try{let ft=await cu();if(B)return;p.current=ft}catch{}if(!l)return;let J=p.current?.memoryUserId;if(!J){A(!0);return}try{let ft=i??await jw(J);if(B||re!==U.current)return;if(ft){let We=await Rf(ft);if(B||re!==U.current)return;We&&We.memoryUserId===J&&(g.current=We.threadId,w(We.threadId),E.current=We.createdAt,_.current=We.title,We.sessionId&&(b.current=We.sessionId,x(We.sessionId)),qe(We.messages))}await q()}finally{B||A(!0)}})(),()=>{B=!0}},[]);let pe=(0,Z.useRef)(new Tf({api:t,headers:()=>({...u.current}),body:()=>{let B={...c.current??{}},re=Object.hasOwn(B,"sessionId"),J=UR(B.sessionId);if(J)ae(J),B.sessionId=J;else if(re)he(),delete B.sessionId;else{let Da=G();Da&&(B.sessionId=Da)}if(Zl(f.current)&&(B.modelContext=f.current),p.current){let Da=p.current;B.visitorContext={timezone:Da.timezone,language:Da.language,languages:Da.languages,deviceType:Da.deviceType,referrer:Da.referrer,visitorId:Da.visitorId};let Ln=typeof B.visitor=="object"&&B.visitor!==null?B.visitor:{},nD=typeof Ln.client=="object"&&Ln.client!==null?Ln.client:{};B.visitor={...Ln,id:Da.visitorId,client:{...nD,memoryUserId:Da.memoryUserId}}}let ft=typeof B.extra=="object"&&B.extra!==null&&!Array.isArray(B.extra)?B.extra:void 0,We=p.current?.memoryUserId,Et=p.current?.language,hu={};if(We&&(hu.memoryUserId=We),Et&&(hu.locale=Et),(Object.keys(hu).length>0||ft)&&(B.extra={...hu,...ft??{}}),d.current)if(Object.hasOwn(B,"threadId"))typeof B.threadId=="string"&&(g.current=B.threadId);else{let Ln=g.current;Ln||(Ln=BR(),E.current=Df(),_.current=void 0,P(Ln)),B.threadId=Ln}return B},fetch:(async(B,re)=>{let J=await fetch(B,re);return f.current=void 0,ae(J.headers.get(t9)),J})})),I=(0,Z.useRef)(null),$e=(0,Z.useRef)(null),Ye=(0,Z.useRef)({}),[L,ne]=(0,Z.useState)(0),ge=e.skipRemoteConfig===!0,Nt=(0,Z.useCallback)(async()=>{if(!ge)try{let B=await n9(t,u.current);Ye.current=B,ne(re=>re+1)}catch(B){console.warn("[Waniwani] Failed to fetch tool definitions:",B instanceof Error?B.message:B)}},[t,ge]);(0,Z.useEffect)(()=>{Nt()},[Nt]);let{messages:ze,sendMessage:le,setMessages:qe,status:de}=TR({messages:e.initialMessages,transport:pe.current,onFinish({message:B}){o?.(),I.current&&($e.current=B)},onError(B){console.warn("[Waniwani] Chat error:",B.message),I.current&&(I.current.reject(B),I.current=null)}}),xe=(0,Z.useRef)(ze);(0,Z.useEffect)(()=>{xe.current=ze},[ze]);let Ce=(0,Z.useRef)(l);(0,Z.useEffect)(()=>{if(!l||Ce.current||(Ce.current=!0,xe.current.length>0))return;let B=!1,re=U.current;return A(!1),(async()=>{try{let J=p.current;if(!J)try{J=await cu(),p.current=J}catch{}let ft=J?.memoryUserId;if(!ft||B||re!==U.current){B||A(!0);return}let We=i??await jw(ft);if(B||re!==U.current)return;if(We){let Et=await Rf(We);if(B||re!==U.current)return;Et&&Et.memoryUserId===ft&&(g.current=Et.threadId,w(Et.threadId),E.current=Et.createdAt,_.current=Et.title,Et.sessionId&&(b.current=Et.sessionId,x(Et.sessionId)),qe(Et.messages))}await q()}finally{B||A(!0)}})(),()=>{B=!0}},[l]),(0,Z.useEffect)(()=>{if(de==="ready"&&I.current&&$e.current){let B=I.current,re=$e.current;I.current=null,$e.current=null,B.resolve(re)}},[de]);let[$,Y]=(0,Z.useState)(""),[Te,rt]=(0,Z.useState)([]),Mt=de==="submitted"||de==="streaming",ya=(0,Z.useCallback)(B=>{rt(re=>re.filter(J=>J.id!==B))},[]),Qa=Mt&&Te.length>0,pu=(0,Z.useCallback)(B=>{let re=!!B.text?.trim(),J=!!B.files?.length;if(re||J){if(Mt){if(Te.length>0)return;rt(ft=>[...ft,{id:bs(),text:B.text||"",files:B.files??[],modelContext:B.modelContext}]),Y("");return}f.current=B.modelContext,le({text:B.text||"",files:B.files}),r?.(B.text||""),Y("")}},[le,r,Mt,Te.length]),Hf=(0,Z.useCallback)(B=>new Promise((re,J)=>{I.current={resolve:re,reject:J},le({text:B}),r?.(B)}),[le,r]);(0,Z.useEffect)(()=>{if(de!=="ready"||Te.length===0)return;let[B,...re]=Te;rt(re),f.current=B.modelContext,le({text:B.text,files:B.files.length>0?B.files:void 0}),r?.(B.text)},[de,le,r,Te]);let jf=(0,Z.useCallback)(()=>{qe([]),rt([]),he(),Y(""),Ye.current={},ne(B=>B+1),Nt()},[qe,he,Nt]),zo=(0,Z.useCallback)(()=>{if(!d.current)return;let B=p.current?.memoryUserId,re=g.current,J=xe.current;if(!(!B||!re||J.length===0)){if(E.current||(E.current=Df()),!_.current){let ft=J.find(Et=>Et.role==="user"),We=ft?ft.parts.map(Et=>"text"in Et&&typeof Et.text=="string"?Et.text:"").join(" "):"";_.current=OR(We)}return{threadId:re,memoryUserId:B,title:_.current,messages:J,sessionId:b.current,createdAt:E.current,updatedAt:Df()}}},[]),mu=(0,Z.useCallback)(async()=>{let B=zo();B&&(await Hw(B),await q())},[zo,q]);(0,Z.useEffect)(()=>{if(l&&S&&!(de==="submitted"||de==="streaming")&&ze.length!==0)return k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{k.current=void 0;let B=mu().finally(()=>{W.current===B&&(W.current=void 0)});W.current=B},a9),()=>{k.current&&clearTimeout(k.current)}},[l,S,ze,de,mu]);let qo=(0,Z.useCallback)(()=>{let B=W.current,re=k.current,J=re?zo():void 0;return re&&(clearTimeout(re),k.current=void 0),(async()=>{B&&await B,J&&(await Hw(J),await q())})()},[zo,q]),O=(0,Z.useCallback)(()=>{U.current+=1,qo(),qe([]),rt([]),he(),Y("");let B=BR();return E.current=Df(),_.current=void 0,P(B),q(),B},[qe,he,P,q,qo]),H=(0,Z.useCallback)(async B=>{U.current+=1;let re=U.current;if(await qo(),re!==U.current)return;let J=await Rf(B);re===U.current&&J&&(P(J.threadId),E.current=J.createdAt,_.current=J.title,J.sessionId?(b.current=J.sessionId,x(J.sessionId)):he(),qe(J.messages),rt([]),Y(""))},[qe,he,P,qo]),ie=(0,Z.useCallback)(async B=>{if(g.current===B){U.current+=1,k.current&&(clearTimeout(k.current),k.current=void 0);let re=W.current;re&&await re}await _R(B),await q(),g.current===B&&(qe([]),rt([]),he(),Y(""),g.current=void 0,w(void 0),E.current=void 0,_.current=void 0)},[qe,he,q]);(0,Z.useEffect)(()=>{l&&S&&i!==void 0&&i!==g.current&&H(i)},[i,l,S,H]);let ve=(0,Z.useCallback)(B=>{Y(B.target.value)},[]),Ue=ze[ze.length-1],ia=ze.length>0,In=Mt&&(!ia||Ue.role==="user"),Ka=Ye.current;return{messages:ze,status:de,text:$,setText:Y,handleSubmit:pu,handleTextChange:ve,isLoading:Mt,showLoaderBubble:In,lastMessage:Ue,hasMessages:ia,sendMessage:le,sendMessageAndWait:Hf,reset:jf,queuedMessages:Te,queueFull:Qa,removeQueuedMessage:ya,sessionId:m,toolDefinitions:Ka,refreshToolDefinitions:Nt,threads:v,activeThreadId:y,isThreadHistoryReady:S,startNewThread:O,switchThread:H,deleteThread:ie}}var Cn=F(Ae(),1);function r9(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 qR(e){return typeof e=="object"&&e!==null&&"initial"in e}function FR(e){let{messages:t,status:a,config:n}=e,r=qR(n)&&n.initial?n.initial:void 0,[o,l]=(0,Cn.useState)(r??[]),i=(0,Cn.useRef)(a),s=n===!0||qR(n)&&n.dynamic!==!1,u=(0,Cn.useCallback)(()=>{l([])},[]),c=t.length>0;(0,Cn.useEffect)(()=>{!c&&r&&r.length>0&&l(r)},[r,c]);let d=t[t.length-1];return(0,Cn.useEffect)(()=>{d?.role==="user"&&u()},[d,u]),(0,Cn.useEffect)(()=>{let f=i.current;if(i.current=a,f==="streaming"&&a==="ready"&&s){let p=[...t].reverse().find(x=>x.role==="assistant");if(!p)return;let m=r9(p);m&&l(m)}},[a,s,t]),{suggestions:o,isLoading:!1,clear:u}}function HR(e,t){let a=t?.Authorization,n=typeof a=="string"&&a.startsWith("Bearer ")?a.slice(7):null;return ai(e,"/resource",n?{token:n}:void 0)}var o9={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 _f(e){let t={};for(let[a,n]of Object.entries(o9)){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 Ge=F(ee(),1),Of=(0,tt.forwardRef)(function(t,a){let{locale:n,messages:r}=t;return(0,Ge.jsx)(vs,{locale:n,messages:r,children:(0,Ge.jsx)(l9,{...t,ref:a})})}),l9=(0,tt.forwardRef)(function(t,a){let{t:n,ready:r}=Ee(),{appearance:o,className:l,allowAttachments:i=!1,welcomeMessage:s,welcome:u,placeholder:c=n.promptInput.placeholder,triggerEvent:d="triggerDemoRequest",api:f,mcp:p,debug:m=!1,readOnly:x=!1,title:b,headerActions:y,hideHeader:w=!1,enableThreadHistory:g=!1,showToolCalls:v=!0,initializing:M=!1,disclaimer:S}=t,A=o?.theme,E=o?.variables,_=E?_f(E):{},[k,W]=(0,tt.useState)(!1);(0,tt.useEffect)(()=>{if(A!=="auto"||typeof window>"u")return;let $=window.matchMedia("(prefers-color-scheme: dark)");W($.matches);let Y=()=>W($.matches);return $.addEventListener("change",Y),()=>$.removeEventListener("change",Y)},[A]);let U=A==="dark"||A==="auto"&&k,D=zR({...t,api:f}),P=qE({...t,api:f,sessionId:D.sessionId,onCallTool:p?.onCallTool}),q=p?.resourceEndpoint??HR(f,t.headers),G=ed(c,!D.text),[ae,he]=(0,tt.useState)(null),pe=(0,tt.useRef)(null),I=(0,tt.useRef)(null),$e=(0,tt.useRef)(null),Ye=(0,tt.useRef)(null),[L,ne]=(0,tt.useState)(!0),ge=(0,tt.useRef)(L);ge.current=L;let Nt=(0,tt.useCallback)(()=>{let $=pe.current;if(!$)return;let Y=$.querySelector("textarea");Y&&Y.focus()},[]),ze=(0,tt.useCallback)(($="smooth")=>{let Y=I.current;Y&&Y.scrollTo({top:Y.scrollHeight,behavior:$})},[]);(0,tt.useEffect)(()=>{let $=Ye.current,Y=I.current;if(!$||!Y)return;let Te=new IntersectionObserver(([rt])=>ne(rt.isIntersecting),{root:Y,rootMargin:"0px 0px 200px 0px",threshold:0});return Te.observe($),()=>Te.disconnect()},[]),(0,tt.useEffect)(()=>{(D.messages[D.messages.length-1]?.role==="user"||ge.current)&&ze("smooth")},[D.messages.length,D.messages[D.messages.length-1]]),(0,tt.useEffect)(()=>{ze("auto")},[ze]),(0,tt.useEffect)(()=>{if(typeof ResizeObserver>"u")return;let $=I.current,Y=$e.current;if(!$&&!Y)return;let Te=$?.scrollHeight??0,rt=$?.clientHeight??0,Mt=new ResizeObserver(()=>{let ya=I.current;if(!ya)return;let Qa=ya.scrollTop+rt>=Te-5;Te=ya.scrollHeight,rt=ya.clientHeight,Qa&&ze("auto")});return $&&Mt.observe($),Y&&Mt.observe(Y),()=>Mt.disconnect()},[ze]);let le=FR({messages:D.messages,status:D.status,config:t.suggestions}),qe=(0,tt.useCallback)($=>{let Y=$.content.map(Te=>Te.text??"").join("").trim();Y&&D.handleSubmit({text:Y,files:[],modelContext:$.modelContext})},[D.handleSubmit]),de=(0,tt.useCallback)($=>{le.clear(),D.handleSubmit({text:$,files:[]})},[le.clear,D.handleSubmit]);(0,tt.useImperativeHandle)(a,()=>({sendMessage:$=>{D.handleSubmit({text:$,files:[]}),Nt()},sendMessageAndWait:$=>D.sendMessageAndWait($),reset:D.reset,focus:Nt,get messages(){return D.messages},get sessionId(){return D.sessionId}}),[D.handleSubmit,D.sendMessageAndWait,D.reset,D.messages,D.sessionId,Nt]),(0,tt.useEffect)(()=>{if(!d)return;let $=Y=>{let Te=Y.detail,rt=typeof Te?.message=="string"?Te.message:void 0;rt&&D.handleSubmit({text:rt,files:[]}),Nt()};return window.addEventListener(d,$),()=>window.removeEventListener(d,$)},[d,D.handleSubmit,Nt]);let xe=!w&&!!(b||g||y),Ce=M||!r;return(0,Ge.jsxs)("div",{ref:pe,style:{..._,maxHeight:"inherit",opacity:Ce?0:1,transition:"opacity 220ms ease-out"},"data-waniwani-chat":"","data-waniwani-layout":"embed","data-color-scheme":A==="auto"?"auto":void 0,...Ce?{"data-waniwani-initializing":""}:{},...U?{"data-waniwani-dark":""}:{},className:j("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",A==="dark"&&"dark",l),children:[xe&&(0,Ge.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:[b&&(0,Ge.jsx)("div",{className:"ww:text-sm ww:font-semibold ww:truncate ww:flex-1 ww:min-w-0",children:b}),!b&&(0,Ge.jsx)("div",{className:"ww:flex-1"}),g&&(0,Ge.jsx)(zE,{threads:D.threads,activeThreadId:D.activeThreadId,onNewThread:D.startNewThread,onSelectThread:$=>{D.switchThread($)},onDeleteThread:$=>{D.deleteThread($)}}),y]}),(0,Ge.jsxs)("div",{ref:I,className:j("ww:relative ww:flex-1 ww:min-h-0",ae?"ww:overflow-hidden":"ww:overflow-y-auto"),children:[(0,Ge.jsxs)("div",{ref:$e,className:j("ww:mx-auto ww:w-full ww:max-w-3xl ww:px-4 ww:py-6 ww:flex ww:flex-col ww:gap-6",ae&&"ww:!py-0"),children:[(0,Ge.jsx)(NE,{messages:D.messages,status:D.status,welcomeMessage:s,welcome:u,onSuggestionSelect:de,resourceEndpoint:q,chatSessionId:D.sessionId,isDark:U,onFollowUp:qe,onCallTool:P,fullscreenToolCallId:ae,debug:m,showToolCalls:v,toolDefinitions:D.toolDefinitions,onWidgetDisplayModeChange:($,Y)=>{he($==="fullscreen"?Y.toolCallId:null)}}),(0,Ge.jsx)("div",{ref:Ye,"aria-hidden":!0,style:{height:1}})]}),!L&&!ae&&(0,Ge.jsx)("div",{className:"ww:sticky ww:bottom-2 ww:flex ww:justify-center ww:pointer-events-none",children:(0,Ge.jsx)(gn,{type:"button",onClick:()=>ze("smooth"),size:"icon",variant:"outline",className:"ww:rounded-full ww:shadow ww:pointer-events-auto","aria-label":"Scroll to latest",children:(0,Ge.jsx)(is,{className:"ww:size-4"})})})]}),!x&&(0,Ge.jsxs)("div",{className:"ww:shrink-0 ww:bg-background",style:ae?{display:"none"}:void 0,children:[(0,Ge.jsx)(Jc,{suggestions:le.suggestions,isLoading:le.isLoading,onSelect:de}),(0,Ge.jsx)(bC,{queuedMessages:D.queuedMessages,onRemove:D.removeQueuedMessage}),(0,Ge.jsx)("div",{className:"ww:px-4 ww:pb-2 ww:pt-2",children:(0,Ge.jsxs)("div",{className:"ww:mx-auto ww:w-full ww:max-w-3xl",children:[(0,Ge.jsx)(sC,{onSubmit:D.handleSubmit,globalDrop:i,multiple:i,className:"ww:rounded-2xl ww:border-border ww:bg-input",children:(0,Ge.jsxs)("div",{className:"ww:flex ww:items-center ww:gap-1 ww:pl-4 ww:pr-3 ww:py-2.5",children:[i&&(0,Ge.jsx)(dC,{}),(0,Ge.jsx)(uC,{onChange:D.handleTextChange,value:D.text,placeholder:G,className:"ww:min-h-0 ww:py-1 ww:px-0"}),(0,Ge.jsx)(cC,{status:D.status,disabled:D.queueFull})]})}),(0,Ge.jsxs)("div",{className:"ww:pt-2 ww:pb-1 ww:flex ww:flex-nowrap ww:justify-center ww:items-center ww:gap-1.5",children:[(0,Ge.jsx)(BE,{}),(0,Ge.jsx)(fC,{text:S})]})]})})]})]})});var du=F(Ae(),1);function i9(){if(typeof window>"u")return!1;try{return window.WANIWANI_DEBUG?!0:!!window.localStorage?.getItem("WANIWANI_DEBUG")}catch{return!1}}function ni(...e){i9()&&console.log("[Waniwani]",...e)}var Vw=new Set;function s9(e,t,a){return`${e}|${t}|${a??""}`}function u9(e){try{return`${new URL(e).origin}/api/mcp/events/v2/batch`}catch{return e.replace(/\/$/,"").replace(/\/chat$/,"/events/v2/batch")}}async function jR(e){let{api:t,token:a,channelId:n,mode:r,source:o}=e;if(typeof window>"u"||!t||!a||!o)return;let l=s9(t,a,n);if(!Vw.has(l)){Vw.add(l);try{let i=await cu(),s=new Date().toISOString(),u=JSON.stringify({sentAt:s,source:{sdk:"@waniwani/sdk",version:"0.1.0"},events:[{id:crypto.randomUUID(),type:"mcp.event",name:"page.viewed",source:o,timestamp:s,correlation:{visitorId:i.visitorId},properties:{channelId:n,mode:r,url:window.location.href,referrer:i.referrer,deviceType:i.deviceType,language:i.language,timezone:i.timezone},metadata:{}}]});await fetch(u9(t),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:u,keepalive:!0})}catch{Vw.delete(l)}}}var c9="waniwani:config:";function VR(e,t,a){return`${c9}${e}|${t}|${a??""}`}function Gw(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 d9(e,t,a,n){if(!(typeof window>"u"))try{window.sessionStorage.setItem(VR(e,t,a),JSON.stringify(n))}catch{}}var f9=600;async function p9(e,t,a,n){try{let r=ai(e,"/config",n?{channel:n}:void 0),o=await fetch(r,{method:"GET",headers:{Authorization:`Bearer ${t}`},signal:a});if(!o.ok)return{};let l=await o.json(),i=l&&typeof l=="object"&&"data"in l&&l.data?l.data:l;return i?m9(i):{}}catch{return{}}}function m9(e){let t={};return e.source!=null&&(t.source=e.source),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),e.visibility&&(t.visibility=e.visibility),t}function Pf(e,t,a){let[n,r]=(0,du.useState)(e),[o,l]=(0,du.useState)(!1);return(0,du.useEffect)(()=>{let i=e.api,s=e.token,u=e.channelId;if(!i||!s){l(!0);return}let c=m=>{e.disablePageView||jR({api:i,token:s,channelId:u,mode:e.mode,source:m})},d=Gw(i,s,u);if(d)try{let m=os(t,d,a);r(m),l(!0),ni("config resolved (sessionStorage cache)",{config:m,visibility:m.visibility}),c(d.source)}catch{}let f=new AbortController,p=setTimeout(()=>l(!0),f9);return p9(i,s,f.signal,u).then(m=>{if(!f.signal.aborted){if(ni("remote /config response",m),Object.keys(m).length>0){d9(i,s,u,m);try{let x=os(t,m,a);r(x),ni("config resolved (remote)",{config:x,visibility:x.visibility})}catch(x){console.error("[Waniwani] Failed to apply remote config:",x)}}l(!0),c(m.source)}}).catch(m=>{console.error("[Waniwani] Remote config fetch failed:",m),l(!0)}).finally(()=>clearTimeout(p)),()=>{f.abort(),clearTimeout(p)}},[e.api,e.token,e.channelId]),{config:n,ready:o}}var Bf=F(Ae(),1);function h9(e){return e?.patterns??e?.rules??[]}var GR="\0\0";function g9(e){let a=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\\\*\\\*/g,GR).replace(/\\\*/g,"[^/]*").split(GR).join(".*");return new RegExp(`^${a}$`)}function $R(e,t){try{return g9(e).test(t)}catch{return!1}}function Nf(e,t){if(!e)return!0;let a=!1;for(let n of h9(e))if($R(n.glob,t)){if(n.action==="hide")return!1;a=!0}return a?!0:(e.default??"show")!=="hide"}function WR(e,t){for(let a of e?.appearRules??[])if($R(a.glob,t))return a.appearAfter;return null}var $w="waniwani:locationchange",XR=!1;function y9(){if(!(XR||typeof history>"u")){XR=!0;for(let e of["pushState","replaceState"]){let t=history[e];history[e]=function(...n){let r=t.apply(this,n);return window.dispatchEvent(new Event($w)),r}}}}function w9(e){return y9(),window.addEventListener($w,e),window.addEventListener("popstate",e),()=>{window.removeEventListener($w,e),window.removeEventListener("popstate",e)}}function x9(){return window.location.pathname}function v9(){return"/"}function Ww(){return(0,Bf.useSyncExternalStore)(w9,x9,v9)}function Uf(e,t){let a=Ww(),n=t&&Nf(e,a);return(0,Bf.useEffect)(()=>{ni("visibility gate",{pathname:a,ready:t,visible:n,rules:e})},[a,t,n]),n}var zf=F(Ae(),1),b9=3e3,S9=120,C9=24;function ZR(e){let[t,a]=(0,zf.useState)(!1);return(0,zf.useEffect)(()=>{if(!e||typeof document>"u"){a(!1);return}let n=!1,r=null,o=null,l=null,i=u=>{r=new IntersectionObserver(c=>{let d=c[0];d&&a(!d.isIntersecting&&d.boundingClientRect.bottom<=0)},{rootMargin:`0px 0px -${C9}px 0px`,threshold:0}),r.observe(u)},s=()=>{if(n)return;let u=null;try{u=document.querySelector(e)}catch{a(!0);return}if(u){i(u);return}o=setTimeout(s,S9)};return s(),l=setTimeout(()=>{n||r||(o&&clearTimeout(o),a(!0))},b9),()=>{n=!0,r?.disconnect(),o&&clearTimeout(o),l&&clearTimeout(l)}},[e]),t}var xt=F(ee(),1),I9=2e3,L9=90,k9=1e3,QR=(0,Ke.forwardRef)(function(t,a){return(0,xt.jsx)(vs,{locale:t.config.locale,children:(0,xt.jsx)(T9,{...t,ref:a})})}),T9=(0,Ke.forwardRef)(function({config:t,programmatic:a,scriptConfig:n},r){let{t:o}=Ee(),{config:l,ready:i}=Pf(t,a,n),s=Uf(l.visibility,i),u=Ww(),c=s?WR(l.visibility,u):null,d=ZR(c),f=(0,Ke.useRef)(null),p=(0,Ke.useRef)(null),m=(0,Ke.useRef)(null),[x,b]=(0,Ke.useState)("input"),[y,w]=(0,Ke.useState)(""),[g,v]=(0,Ke.useState)(!1),[M,S]=(0,Ke.useState)(!1),[A,E]=(0,Ke.useState)(0),_=l.appearance?.theme,k=l.appearance?.variables,W=(0,Ke.useMemo)(()=>k?_f(k):{},[k]),U=l.suggestions??[],D=l.launcherText??l.placeholder??o.launcher.prompt,P=ed(D,y.length===0),q="var(--ww-shadow, 0 10px 30px rgba(0, 0, 0, 0.08))";(0,Ke.useEffect)(()=>{if(!s){v(!1);return}if(c){v(d);return}let ne=l.appearDelay??I9,ge=setTimeout(()=>v(!0),Math.max(0,ne));return()=>clearTimeout(ge)},[s,l.appearDelay,c,d]),(0,Ke.useEffect)(()=>{if(!g||U.length===0)return;let ne=setTimeout(()=>b(ge=>ge==="input"?"expanded":ge),k9);return()=>clearTimeout(ne)},[g,U.length]),(0,Ke.useEffect)(()=>{A>0&&x==="open"&&f.current?.focus()},[A,x]);let G=(0,Ke.useCallback)(()=>{b("open")},[]),ae=(0,Ke.useCallback)(()=>{b("input")},[]);(0,Ke.useEffect)(()=>{if(x!=="expanded"){S(!1);return}let ne=setTimeout(()=>S(!0),L9);return()=>clearTimeout(ne)},[x]);let he=(0,Ke.useCallback)(ne=>{G();let ge=ne.trim();ge&&f.current?.sendMessage(ge)},[G]);(0,Ke.useImperativeHandle)(r,()=>({open:()=>G(),close:()=>ae(),toggle:()=>{b(ne=>ne==="open"?"input":"open")},sendMessage:ne=>he(ne),sendMessageAndWait:async ne=>{G();let ge=f.current;if(ge)return await ge.sendMessageAndWait(ne)},reset:()=>f.current?.reset(),focus:()=>{G(),E(ne=>ne+1)},getMessages:()=>f.current?.messages??[],getSessionId:()=>f.current?.sessionId}),[he,G,ae]);let pe=(0,Ke.useCallback)(()=>{y.trim()&&(he(y),w(""))},[y,he]),I=(0,Ke.useCallback)(()=>{(f.current?.messages.length??0)>0?(b("open"),E(ne=>ne+1)):b(ne=>ne==="input"?"expanded":ne)},[]),$e={};l.mcpServerUrl&&($e.mcpServerUrl=l.mcpServerUrl),l.channelId&&($e.channelId=l.channelId);let Ye=U.length>0&&x!=="input",L=(0,xt.jsx)("button",{type:"button",onClick:ae,"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,xt.jsx)(ms,{className:"ww:size-4"})});return(0,xt.jsx)("div",{"data-waniwani-chat":"","data-color-scheme":_==="auto"?"auto":void 0,className:j("ww:contents ww:font-[family-name:var(--ww-font-sans)]",_==="dark"&&"dark"),style:W,children:s&&(0,xt.jsxs)(xt.Fragment,{children:[(0,xt.jsx)("div",{ref:m,"data-waniwani-floating":"dock","data-state":x==="open"?"hidden":"shown","data-appeared":g?"true":"false",className:j("ww:fixed ww:bottom-3 ww:sm:bottom-4 ww:left-0 ww:right-0 ww:mx-auto ww:z-[2147483002] ww:flex ww:flex-col","ww:w-[calc(100vw-2rem)] ww:transition-[max-width] ww:duration-300 ww:ease-out",Ye?"ww:max-w-[720px]":"ww:max-w-[440px]"),children:(0,xt.jsxs)("div",{className:j("ww:flex ww:flex-col ww:rounded-[20px] ww:border ww:transition-all ww:duration-300 ww:ease-out",Ye?"ww:p-2 ww:backdrop-blur-xl ww:backdrop-saturate-150":"ww:border-transparent ww:p-0"),style:Ye?{boxShadow:q,backgroundColor:"var(--ww-glass)",borderColor:"var(--ww-glass-border)"}:void 0,children:[U.length>0&&(0,xt.jsx)("div",{className:j("ww:grid ww:transition-all ww:duration-300 ww:ease-out",M?"ww:grid-rows-[1fr] ww:opacity-100":"ww:pointer-events-none ww:grid-rows-[0fr] ww:opacity-0"),children:(0,xt.jsx)("div",{className:"ww:overflow-hidden",children:(0,xt.jsx)(Jc,{suggestions:U,onSelect:he,className:"ww:px-1 ww:pt-1 ww:pb-2.5"})})}),(0,xt.jsx)(Q0,{animated:g,backgroundColor:"var(--ww-color-input)",borderRadius:16,edgeSensitivity:30,coneSpread:25,colors:["#c084fc","#f472b6","#38bdf8"],className:"ww:border-border",style:{boxShadow:q},children:(0,xt.jsxs)("div",{className:"ww:flex ww:items-center ww:gap-1 ww:pl-3.5 ww:pr-1.5 ww:py-1.5 ww:sm:pl-4 ww:sm:pr-2 ww:sm:py-2",children:[(0,xt.jsx)("input",{ref:p,type:"text",value:y,placeholder:P,onChange:ne=>w(ne.target.value),onFocus:I,onKeyDown:ne=>{ne.key==="Enter"&&!ne.shiftKey&&(ne.preventDefault(),pe())},className:"ww:min-w-0 ww:flex-1 ww:bg-transparent ww:py-1 ww:text-base ww:sm:text-sm ww:text-foreground ww:outline-none ww:placeholder:text-muted-foreground"}),(0,xt.jsx)("button",{type:"button",onClick:pe,disabled:!y.trim(),"aria-label":o.promptInput.submit,className:"ww:relative 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,xt.jsx)(ho,{className:"ww:size-4"})})]})})]})}),(0,xt.jsx)("div",{role:"dialog","aria-label":l.title??D,"data-waniwani-floating":"panel","data-state":x==="open"?"shown":"hidden",style:{boxShadow:q},className:j("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:left-0 ww:sm:right-0 ww:sm:mx-auto ww:sm:h-[720px] ww:sm:max-h-[calc(100dvh-2rem)] ww:sm:w-[calc(100vw-2rem)] ww:sm:max-w-[1000px] ww:sm:rounded-2xl ww:sm:border ww:sm:border-border"),children:(0,xt.jsx)(Of,{ref:f,api:l.api??"",headers:{Authorization:`Bearer ${l.token}`},skipRemoteConfig:!0,body:Object.keys($e).length>0?$e:void 0,appearance:l.appearance,title:l.title,headerActions:L,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 ar=F(Ae(),1);var YR=F(ee(),1),KR=(0,ar.forwardRef)(function({config:t,programmatic:a,scriptConfig:n,onReady:r,onVisibilityChange:o},l){let{config:i,ready:s}=Pf(t,a,n),u=(0,ar.useRef)(null);(0,ar.useEffect)(()=>{r?.()},[]);let c=Uf(i.visibility,s);(0,ar.useEffect)(()=>{o?.(c)},[c,o]),(0,ar.useImperativeHandle)(l,()=>({get chat(){return u.current}}),[]);let d={};return i.mcpServerUrl&&(d.mcpServerUrl=i.mcpServerUrl),i.channelId&&(d.channelId=i.channelId),(0,YR.jsx)(Of,{ref:u,api:i.api??"",headers:{Authorization:`Bearer ${i.token}`},skipRemoteConfig:!0,body:Object.keys(d).length>0?d:void 0,appearance:i.appearance,title:i.title,hideHeader:i.hideHeader,welcomeMessage:i.welcomeMessage,placeholder:i.placeholder,suggestions:i.suggestions?{initial:i.suggestions}:void 0,enableThreadHistory:i.enableThreadHistory,showToolCalls:i.showToolCalls,locale:i.locale,initializing:!s})});var Xw="/*! 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-blur-xl:24px;--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\\:bottom-2{bottom:calc(var(--ww-spacing)*2)}.ww\\:bottom-3{bottom:calc(var(--ww-spacing)*3)}.ww\\:bottom-4{bottom:calc(var(--ww-spacing)*4)}.ww\\:left-0{left:calc(var(--ww-spacing)*0)}.ww\\:left-\\[50\\%\\]{left:50%}.ww\\:isolate{isolation:isolate}.ww\\:-z-\\[1\\]{z-index:calc(1*-1)}.ww\\:z-50{z-index:50}.ww\\:z-\\[1\\]{z-index:1}.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-0{margin-bottom:calc(var(--ww-spacing)*0)}.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-5{height:calc(var(--ww-spacing)*5)}.ww\\:h-8{height:calc(var(--ww-spacing)*8)}.ww\\:h-9{height:calc(var(--ww-spacing)*9)}.ww\\:h-16{height:calc(var(--ww-spacing)*16)}.ww\\:h-auto{height:auto}.ww\\:h-full{height:100%}.ww\\:max-h-48{max-height:calc(var(--ww-spacing)*48)}.ww\\:max-h-80{max-height:calc(var(--ww-spacing)*80)}.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\\:w-px{width:1px}.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-\\[440px\\]{max-width:440px}.ww\\:max-w-\\[720px\\]{max-width:720px}.ww\\:max-w-full{max-width:100%}.ww\\:max-w-md{max-width:var(--ww-container-md)}.ww\\:max-w-sm{max-width:var(--ww-container-sm)}.ww\\:min-w-0{min-width:calc(var(--ww-spacing)*0)}.ww\\:flex-1{flex:1}.ww\\:shrink-0{flex-shrink:0}.ww\\:grow{flex-grow:1}.ww\\:translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:rotate-90{rotate:90deg}.ww\\:rotate-180{rotate:180deg}.ww\\:animate-\\[ww-fade-in_0\\.2s_ease-out_both\\]{animation:.2s ease-out both ww-fade-in}.ww\\:animate-pulse{animation:var(--ww-animate-pulse)}.ww\\:animate-spin{animation:var(--ww-animate-spin)}.ww\\:cursor-pointer{cursor:pointer}.ww\\:resize-none{resize:none}.ww\\:grid-rows-\\[0fr\\]{grid-template-rows:0fr}.ww\\:grid-rows-\\[1fr\\]{grid-template-rows:1fr}.ww\\:flex-col{flex-direction:column}.ww\\:flex-nowrap{flex-wrap:nowrap}.ww\\:flex-wrap{flex-wrap:wrap}.ww\\:items-center{align-items:center}.ww\\:items-end{align-items:flex-end}.ww\\:items-start{align-items:flex-start}.ww\\:justify-between{justify-content:space-between}.ww\\:justify-center{justify-content:center}.ww\\:gap-1{gap:calc(var(--ww-spacing)*1)}.ww\\:gap-1\\.5{gap:calc(var(--ww-spacing)*1.5)}.ww\\:gap-2{gap:calc(var(--ww-spacing)*2)}.ww\\:gap-3{gap:calc(var(--ww-spacing)*3)}.ww\\:gap-6{gap:calc(var(--ww-spacing)*6)}:where(.ww\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ww-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ww-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.ww\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ww-spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ww-spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}.ww\\:self-stretch{align-self:stretch}.ww\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ww\\:\\!overflow-hidden{overflow:hidden!important}.ww\\:overflow-auto{overflow:auto}.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-\\[20px\\]{border-radius:20px}.ww\\:rounded-\\[inherit\\]{border-radius:inherit}.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\\:border-transparent{border-color:#0000}.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-border{background-color:var(--ww-color-border,#e5e7eb)}.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-0{padding:calc(var(--ww-spacing)*0)}.ww\\:p-1{padding:calc(var(--ww-spacing)*1)}.ww\\:p-1\\.5{padding:calc(var(--ww-spacing)*1.5)}.ww\\:p-2{padding:calc(var(--ww-spacing)*2)}.ww\\:p-3{padding:calc(var(--ww-spacing)*3)}.ww\\:px-0{padding-inline:calc(var(--ww-spacing)*0)}.ww\\:px-1{padding-inline:calc(var(--ww-spacing)*1)}.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-3\\.5{padding-inline:calc(var(--ww-spacing)*3.5)}.ww\\:px-4{padding-inline:calc(var(--ww-spacing)*4)}.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-1\\.5{padding-block:calc(var(--ww-spacing)*1.5)}.ww\\:py-2{padding-block:calc(var(--ww-spacing)*2)}.ww\\:py-2\\.5{padding-block:calc(var(--ww-spacing)*2.5)}.ww\\:py-3{padding-block:calc(var(--ww-spacing)*3)}.ww\\:py-6{padding-block:calc(var(--ww-spacing)*6)}.ww\\:py-12{padding-block:calc(var(--ww-spacing)*12)}.ww\\:pt-1{padding-top:calc(var(--ww-spacing)*1)}.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-1\\.5{padding-right:calc(var(--ww-spacing)*1.5)}.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-2\\.5{padding-bottom:calc(var(--ww-spacing)*2.5)}.ww\\:pb-3{padding-bottom:calc(var(--ww-spacing)*3)}.ww\\:pb-8{padding-bottom:calc(var(--ww-spacing)*8)}.ww\\:pl-3\\.5{padding-left:calc(var(--ww-spacing)*3.5)}.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-nowrap{white-space:nowrap}.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-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-xl{--tw-backdrop-blur:blur(var(--ww-blur-xl));-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\\:backdrop-saturate-150{--tw-backdrop-saturate:saturate(150%);-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-\\[max-width\\]{transition-property:max-width;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\\:bottom-4{bottom:calc(var(--ww-spacing)*4)}.ww\\:sm\\:left-0{left:calc(var(--ww-spacing)*0)}.ww\\:sm\\:mx-auto{margin-inline:auto}.ww\\:sm\\:h-\\[720px\\]{height:720px}.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-\\[1000px\\]{max-width:1000px}.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\\:py-2{padding-block:calc(var(--ww-spacing)*2)}.ww\\:sm\\:pr-2{padding-right:calc(var(--ww-spacing)*2)}.ww\\:sm\\:pl-4{padding-left:calc(var(--ww-spacing)*4)}.ww\\:sm\\:text-sm{font-size:var(--ww-text-sm);line-height:var(--tw-leading,var(--ww-text-sm--line-height))}.ww\\:sm\\:text-\\[11px\\]{font-size:11px}}.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=dock]{transition:opacity .32s,transform .42s cubic-bezier(.22,1,.36,1),max-width .3s,visibility 0s linear .42s}[data-waniwani-floating=dock][data-appeared=true][data-state=shown]{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .32s,transform .42s cubic-bezier(.22,1,.36,1),max-width .3s,visibility;transform:translateY(0)}[data-waniwani-floating=dock][data-appeared=false],[data-waniwani-floating=dock][data-state=hidden]{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(1rem)}[data-waniwani-floating=panel]{transition:clip-path .44s cubic-bezier(.22,1,.36,1),opacity .26s,visibility 0s linear .44s}[data-waniwani-floating=panel][data-state=shown]{visibility:visible;opacity:1;pointer-events:auto;clip-path:inset(-40px round 18px);transition:clip-path .44s cubic-bezier(.22,1,.36,1),opacity .26s,visibility}[data-waniwani-floating=panel][data-state=hidden]{opacity:0;visibility:hidden;pointer-events:none;clip-path:inset(calc(100% - 60px) 12% 0 round 24px)}@media (max-width:639px){[data-waniwani-floating=panel][data-state=shown]{clip-path:inset(0)}[data-waniwani-floating=panel][data-state=hidden]{clip-path:inset(calc(100% - 72px) 6% 0 round 22px)}}@media (prefers-reduced-motion:reduce){[data-waniwani-floating=dock],[data-waniwani-floating=panel]{clip-path:none;transition:visibility 0s linear 10ms}[data-waniwani-floating=dock][data-appeared=true][data-state=shown],[data-waniwani-floating=panel][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);--ww-glass:#eceef499;--ww-glass-border:#0000000f;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);--ww-glass:#282a3480;--ww-glass-border:#ffffff1f}@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);--ww-glass:#282a3480;--ww-glass-border:#ffffff1f}}[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}}",Ft=null,Wr=null,la=null,qf=null,A9="waniwani-chat-sizing",M9="waniwani-chat-defaults",E9="waniwani-chat-chrome",R9="waniwani-chat-auto-card",D9=`:where([data-waniwani-embed]){height:${F0}}`,_9=":where([data-waniwani-embed]){border-radius:16px;overflow:hidden}",O9=":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)}",P9=":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 Ff(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 N9(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 tD(e,t){if(Xw&&Xw!=="__WANIWANI_EMBED_CSS__"){let n=document.createElement("style");n.textContent=Xw,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 JR="data-waniwani-embed",Zw="data-waniwani-auto";function B9(e){let t=document.querySelector(`[${JR}]`);if(t)return t;let a=document.createElement("div");a.setAttribute(JR,""),a.setAttribute(Zw,"");let n=e?!!document.head?.contains(e):!1;return e?.parentNode&&!n?e.parentNode.insertBefore(a,e):document.body.appendChild(a),a}function U9(e){return/^\d+$/.test(e.trim())?`${e.trim()}px`:e.trim()}function z9(e,t,a,n){let r=B9(n);Ff(A9,D9),e.height&&r instanceof HTMLElement&&(r.style.height=U9(e.height)),e.appearance?.theme&&Ff(M9,_9),Ff(E9,O9),r.hasAttribute(Zw)&&Ff(R9,P9),N9(r,e),la=document.createElement("div"),la.id="waniwani-chat-embed",la.style.cssText="width:100%;height:100%;max-height:inherit;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;",r.appendChild(la);let o=la,l=()=>{let d=getComputedStyle(r);if(!d.maxHeight.endsWith("px")){o.style.removeProperty("max-height");return}let f=Number.parseFloat(d.maxHeight);if(!Number.isFinite(f)){o.style.removeProperty("max-height");return}let p=f;d.boxSizing==="border-box"&&(p-=(Number.parseFloat(d.paddingTop)||0)+(Number.parseFloat(d.paddingBottom)||0)+(Number.parseFloat(d.borderTopWidth)||0)+(Number.parseFloat(d.borderBottomWidth)||0)),p>0?o.style.maxHeight=`${p}px`:o.style.removeProperty("max-height")};l(),qf=new ResizeObserver(l),qf.observe(r);let i=la.attachShadow({mode:"open"});tD(i,e);let s=document.createElement("div");s.className="ww:contents",i.appendChild(s);let u=fu.default.createRef(),c=d=>{r instanceof HTMLElement&&(r.style.display=d?"":"none")};if(e.token){let d=Gw(e.api??"",e.token,e.channelId);d?.visibility&&!Nf(d.visibility,window.location.pathname)&&c(!1)}return Wr=Qw.default.createRoot(s),Wr.render(fu.default.createElement(KR,{ref:u,config:e,programmatic:t,scriptConfig:a,onVisibilityChange:c})),{destroy:()=>{qf?.disconnect(),qf=null,Wr?.unmount(),Wr=null,la?.remove(),la=null,r.hasAttribute(Zw)&&r.remove(),Ft=null},open:()=>{},close:()=>{},toggle:()=>{},sendMessage:d=>u.current?.chat?.sendMessage(d),sendMessageAndWait:async d=>{let f=u.current?.chat;if(f)return await f.sendMessageAndWait(d)},reset:()=>u.current?.chat?.reset(),focus:()=>u.current?.chat?.focus(),getMessages:()=>u.current?.chat?.messages??[],getSessionId:()=>u.current?.chat?.sessionId}}function q9(e,t,a){la=document.createElement("div"),la.id="waniwani-chat-embed",la.style.cssText="position:fixed;inset:0;z-index:2147483000;pointer-events:none;",document.body.appendChild(la);let n=la.attachShadow({mode:"open"});tD(n,e);let r=document.createElement("div");r.className="ww:contents",n.appendChild(r);let o=fu.default.createRef();return Wr=Qw.default.createRoot(r),Wr.render(fu.default.createElement(QR,{ref:o,config:e,programmatic:t,scriptConfig:a})),{destroy:()=>{Wr?.unmount(),Wr=null,la?.remove(),la=null,Ft=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 aD(e){if(Ft)return console.warn("[Waniwani] Chat widget is already initialized. Call destroy() first to re-initialize."),Ft;let t=Eh(),a=Xc(),n=os(e,void 0,a);return Ft=n.mode==="floating"?q9(n,e,a):z9(n,e,a,t),Ft}function F9(){Ft&&Ft.destroy()}window.WaniWani=window.WaniWani||{};window.WaniWani.chat={init:aD,destroy:F9,open:()=>Ft?.open(),close:()=>Ft?.close(),toggle:()=>Ft?.toggle(),sendMessage:e=>Ft?.sendMessage(e),sendMessageAndWait:async e=>{if(Ft)return Ft.sendMessageAndWait(e)},reset:()=>Ft?.reset(),focus:()=>Ft?.focus(),getMessages:()=>Ft?.getMessages()??[],getSessionId:()=>Ft?.getSessionId()};function eD(){if(Xc().token)try{aD()}catch(t){console.error("[Waniwani] Auto-initialization failed:",t)}}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",eD):eD();})();
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=FH(f.error);if(p?.length){let m={...d};for(let b of p)delete m[b];let x=await r(m);x.success&&l.enqueue(x.value)}}catch{}}}}))}};var HH="waniwani-memory";var Ra="threads",Af="by_memoryUserId",jH="by_updatedAt";var MR="memoryUserId",AR="waniwani-memory-user-id",Bw=null;function Uw(){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 VH(e,t){if(t<1&&(e.objectStoreNames.contains("ids")||e.createObjectStore("ids")),t<2&&!e.objectStoreNames.contains(Ra)){let a=e.createObjectStore(Ra,{keyPath:"threadId"});a.createIndex(Af,"memoryUserId",{unique:!1}),a.createIndex(jH,"updatedAt",{unique:!1})}}async function zw(){return new Promise((e,t)=>{let a=indexedDB.open(HH,2);a.onupgradeneeded=n=>{VH(a.result,n.oldVersion)},a.onsuccess=()=>e(a.result),a.onerror=()=>t(a.error)})}async function GH(){return zw()}async function $H(e){return new Promise((t,a)=>{let o=e.transaction("ids","readonly").objectStore("ids").get(MR);o.onsuccess=()=>t(typeof o.result=="string"?o.result:null),o.onerror=()=>a(o.error)})}async function WH(e,t){return new Promise((a,n)=>{let l=e.transaction("ids","readwrite").objectStore("ids").put(t,MR);l.onsuccess=()=>a(),l.onerror=()=>n(l.error)})}async function XH(){if(typeof indexedDB>"u")return null;try{let e=await GH();try{let t=await $H(e);if(t)return t;let a=Uw();return await WH(e,a),a}finally{e.close()}}catch{return null}}function ZH(){try{let e=localStorage.getItem(AR);if(e)return e;let t=Uw();return localStorage.setItem(AR,t),t}catch{return null}}async function ER(){let e=await XH();if(e)return e;let t=ZH();return t||(Bw||(Bw=Uw()),Bw)}var RR=50,DR=1e3;function Mf(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 Ef(e){if(typeof indexedDB>"u")return null;let t=null;try{return t=await zw(),await e(t)}catch{return null}finally{try{t?.close()}catch{}}}function qw(e){return new Promise((t,a)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>a(e.error)})}async function Fw(e){return await Ef(async a=>{let o=a.transaction(Ra,"readonly").objectStore(Ra).index(Af),i=(await qw(o.getAll(e))??[]).filter(Mf);return i.sort((s,u)=>s.updatedAt<u.updatedAt?1:-1),i})??[]}async function Rf(e){return await Ef(async a=>{let r=a.transaction(Ra,"readonly").objectStore(Ra),o=await qw(r.get(e));return Mf(o)?o:null})??null}async function Hw(e){if(!Mf(e))return;let t=e.messages.length>DR?{...e,messages:e.messages.slice(e.messages.length-DR)}:e;await Ef(async a=>{await new Promise((s,u)=>{let c=a.transaction(Ra,"readwrite");c.oncomplete=()=>s(),c.onerror=()=>u(c.error),c.onabort=()=>u(c.error),c.objectStore(Ra).put(t)});let n=a.transaction(Ra,"readwrite"),r=n.objectStore(Ra),o=r.index(Af),i=(await qw(o.getAll(t.memoryUserId))??[]).filter(Mf);if(i.length>RR){i.sort((u,c)=>u.updatedAt<c.updatedAt?-1:1);let s=i.slice(0,i.length-RR);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 _R(e){await Ef(async t=>(await new Promise((a,n)=>{let r=t.transaction(Ra,"readwrite");r.oncomplete=()=>a(),r.onerror=()=>n(r.error),r.onabort=()=>n(r.error),r.objectStore(Ra).delete(e)}),null))}async function jw(e){return(await Fw(e))[0]?.threadId??null}function OR(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 PR="waniwani-visitor-id";function NR(e,t){return e.match(t)?.[1]??null}function QH(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=NR(e,n);if(r)return{name:a,version:r}}return null}function KH(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=NR(e,n);if(r)return{name:a,version:r.replace(/_/g,".")};if(a==="Linux"&&n.test(e))return{name:a,version:""}}return null}function YH(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 JH(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 e9(){try{let a=localStorage.getItem(PR);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 JH(e);try{localStorage.setItem(PR,t)}catch{}return t}async function cu(){let e=navigator.userAgent,[t,a]=await Promise.all([e9(),ER()]);return{userAgent:e,browser:QH(e),os:KH(e),deviceType:YH(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 t9="x-session-id",a9=250;function BR(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():bs()}function Df(){return new Date().toISOString()}function UR(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}async function n9(e,t){let a=ai(e,"/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 zR(e){let{api:t="/api/waniwani",headers:a,body:n,onMessageSent:r,onResponseReceived:o,enableThreadHistory:l=!1,activeThreadId:i,onThreadChange:s}=e,u=(0,Z.useRef)(a),c=(0,Z.useRef)(n),d=(0,Z.useRef)(l);(0,Z.useEffect)(()=>{d.current=l},[l]);let f=(0,Z.useRef)(void 0),p=(0,Z.useRef)(null),[m,x]=(0,Z.useState)(void 0),b=(0,Z.useRef)(m),[y,w]=(0,Z.useState)(i),g=(0,Z.useRef)(y),[v,M]=(0,Z.useState)([]),[S,A]=(0,Z.useState)(!l),E=(0,Z.useRef)(void 0),_=(0,Z.useRef)(void 0),k=(0,Z.useRef)(void 0),W=(0,Z.useRef)(void 0),U=(0,Z.useRef)(0),D=(0,Z.useRef)(s);(0,Z.useEffect)(()=>{D.current=s},[s]);let P=(0,Z.useCallback)(B=>{g.current=B,w(B),B&&D.current?.(B)},[]),q=(0,Z.useCallback)(async()=>{if(!l)return;let B=p.current?.memoryUserId;if(!B)return;let re=await Fw(B);M(re)},[l]),G=(0,Z.useCallback)(()=>b.current,[]),ae=(0,Z.useCallback)(B=>{let re=UR(B);re&&b.current!==re&&(b.current=re,x(re))},[]),he=(0,Z.useCallback)(()=>{b.current=void 0,x(void 0)},[]);(0,Z.useEffect)(()=>{u.current=a},[a]),(0,Z.useEffect)(()=>{c.current=n},[n]),(0,Z.useEffect)(()=>{let B=!1,re=U.current;return(async()=>{try{let ft=await cu();if(B)return;p.current=ft}catch{}if(!l)return;let J=p.current?.memoryUserId;if(!J){A(!0);return}try{let ft=i??await jw(J);if(B||re!==U.current)return;if(ft){let We=await Rf(ft);if(B||re!==U.current)return;We&&We.memoryUserId===J&&(g.current=We.threadId,w(We.threadId),E.current=We.createdAt,_.current=We.title,We.sessionId&&(b.current=We.sessionId,x(We.sessionId)),qe(We.messages))}await q()}finally{B||A(!0)}})(),()=>{B=!0}},[]);let pe=(0,Z.useRef)(new Tf({api:t,headers:()=>({...u.current}),body:()=>{let B={...c.current??{}},re=Object.hasOwn(B,"sessionId"),J=UR(B.sessionId);if(J)ae(J),B.sessionId=J;else if(re)he(),delete B.sessionId;else{let Da=G();Da&&(B.sessionId=Da)}if(Zl(f.current)&&(B.modelContext=f.current),p.current){let Da=p.current;B.visitorContext={timezone:Da.timezone,language:Da.language,languages:Da.languages,deviceType:Da.deviceType,referrer:Da.referrer,visitorId:Da.visitorId};let Ln=typeof B.visitor=="object"&&B.visitor!==null?B.visitor:{},nD=typeof Ln.client=="object"&&Ln.client!==null?Ln.client:{};B.visitor={...Ln,id:Da.visitorId,client:{...nD,memoryUserId:Da.memoryUserId}}}let ft=typeof B.extra=="object"&&B.extra!==null&&!Array.isArray(B.extra)?B.extra:void 0,We=p.current?.memoryUserId,Et=p.current?.language,hu={};if(We&&(hu.memoryUserId=We),Et&&(hu.locale=Et),(Object.keys(hu).length>0||ft)&&(B.extra={...hu,...ft??{}}),d.current)if(Object.hasOwn(B,"threadId"))typeof B.threadId=="string"&&(g.current=B.threadId);else{let Ln=g.current;Ln||(Ln=BR(),E.current=Df(),_.current=void 0,P(Ln)),B.threadId=Ln}return B},fetch:(async(B,re)=>{let J=await fetch(B,re);return f.current=void 0,ae(J.headers.get(t9)),J})})),I=(0,Z.useRef)(null),$e=(0,Z.useRef)(null),Ye=(0,Z.useRef)({}),[L,ne]=(0,Z.useState)(0),ge=e.skipRemoteConfig===!0,Nt=(0,Z.useCallback)(async()=>{if(!ge)try{let B=await n9(t,u.current);Ye.current=B,ne(re=>re+1)}catch(B){console.warn("[Waniwani] Failed to fetch tool definitions:",B instanceof Error?B.message:B)}},[t,ge]);(0,Z.useEffect)(()=>{Nt()},[Nt]);let{messages:ze,sendMessage:le,setMessages:qe,status:de}=TR({messages:e.initialMessages,transport:pe.current,onFinish({message:B}){o?.(),I.current&&($e.current=B)},onError(B){console.warn("[Waniwani] Chat error:",B.message),I.current&&(I.current.reject(B),I.current=null)}}),xe=(0,Z.useRef)(ze);(0,Z.useEffect)(()=>{xe.current=ze},[ze]);let Ce=(0,Z.useRef)(l);(0,Z.useEffect)(()=>{if(!l||Ce.current||(Ce.current=!0,xe.current.length>0))return;let B=!1,re=U.current;return A(!1),(async()=>{try{let J=p.current;if(!J)try{J=await cu(),p.current=J}catch{}let ft=J?.memoryUserId;if(!ft||B||re!==U.current){B||A(!0);return}let We=i??await jw(ft);if(B||re!==U.current)return;if(We){let Et=await Rf(We);if(B||re!==U.current)return;Et&&Et.memoryUserId===ft&&(g.current=Et.threadId,w(Et.threadId),E.current=Et.createdAt,_.current=Et.title,Et.sessionId&&(b.current=Et.sessionId,x(Et.sessionId)),qe(Et.messages))}await q()}finally{B||A(!0)}})(),()=>{B=!0}},[l]),(0,Z.useEffect)(()=>{if(de==="ready"&&I.current&&$e.current){let B=I.current,re=$e.current;I.current=null,$e.current=null,B.resolve(re)}},[de]);let[$,Y]=(0,Z.useState)(""),[Te,rt]=(0,Z.useState)([]),Mt=de==="submitted"||de==="streaming",ya=(0,Z.useCallback)(B=>{rt(re=>re.filter(J=>J.id!==B))},[]),Qa=Mt&&Te.length>0,pu=(0,Z.useCallback)(B=>{let re=!!B.text?.trim(),J=!!B.files?.length;if(re||J){if(Mt){if(Te.length>0)return;rt(ft=>[...ft,{id:bs(),text:B.text||"",files:B.files??[],modelContext:B.modelContext}]),Y("");return}f.current=B.modelContext,le({text:B.text||"",files:B.files}),r?.(B.text||""),Y("")}},[le,r,Mt,Te.length]),Hf=(0,Z.useCallback)(B=>new Promise((re,J)=>{I.current={resolve:re,reject:J},le({text:B}),r?.(B)}),[le,r]);(0,Z.useEffect)(()=>{if(de!=="ready"||Te.length===0)return;let[B,...re]=Te;rt(re),f.current=B.modelContext,le({text:B.text,files:B.files.length>0?B.files:void 0}),r?.(B.text)},[de,le,r,Te]);let jf=(0,Z.useCallback)(()=>{qe([]),rt([]),he(),Y(""),Ye.current={},ne(B=>B+1),Nt()},[qe,he,Nt]),zo=(0,Z.useCallback)(()=>{if(!d.current)return;let B=p.current?.memoryUserId,re=g.current,J=xe.current;if(!(!B||!re||J.length===0)){if(E.current||(E.current=Df()),!_.current){let ft=J.find(Et=>Et.role==="user"),We=ft?ft.parts.map(Et=>"text"in Et&&typeof Et.text=="string"?Et.text:"").join(" "):"";_.current=OR(We)}return{threadId:re,memoryUserId:B,title:_.current,messages:J,sessionId:b.current,createdAt:E.current,updatedAt:Df()}}},[]),mu=(0,Z.useCallback)(async()=>{let B=zo();B&&(await Hw(B),await q())},[zo,q]);(0,Z.useEffect)(()=>{if(l&&S&&!(de==="submitted"||de==="streaming")&&ze.length!==0)return k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{k.current=void 0;let B=mu().finally(()=>{W.current===B&&(W.current=void 0)});W.current=B},a9),()=>{k.current&&clearTimeout(k.current)}},[l,S,ze,de,mu]);let qo=(0,Z.useCallback)(()=>{let B=W.current,re=k.current,J=re?zo():void 0;return re&&(clearTimeout(re),k.current=void 0),(async()=>{B&&await B,J&&(await Hw(J),await q())})()},[zo,q]),O=(0,Z.useCallback)(()=>{U.current+=1,qo(),qe([]),rt([]),he(),Y("");let B=BR();return E.current=Df(),_.current=void 0,P(B),q(),B},[qe,he,P,q,qo]),H=(0,Z.useCallback)(async B=>{U.current+=1;let re=U.current;if(await qo(),re!==U.current)return;let J=await Rf(B);re===U.current&&J&&(P(J.threadId),E.current=J.createdAt,_.current=J.title,J.sessionId?(b.current=J.sessionId,x(J.sessionId)):he(),qe(J.messages),rt([]),Y(""))},[qe,he,P,qo]),ie=(0,Z.useCallback)(async B=>{if(g.current===B){U.current+=1,k.current&&(clearTimeout(k.current),k.current=void 0);let re=W.current;re&&await re}await _R(B),await q(),g.current===B&&(qe([]),rt([]),he(),Y(""),g.current=void 0,w(void 0),E.current=void 0,_.current=void 0)},[qe,he,q]);(0,Z.useEffect)(()=>{l&&S&&i!==void 0&&i!==g.current&&H(i)},[i,l,S,H]);let ve=(0,Z.useCallback)(B=>{Y(B.target.value)},[]),Ue=ze[ze.length-1],ia=ze.length>0,In=Mt&&(!ia||Ue.role==="user"),Ka=Ye.current;return{messages:ze,status:de,text:$,setText:Y,handleSubmit:pu,handleTextChange:ve,isLoading:Mt,showLoaderBubble:In,lastMessage:Ue,hasMessages:ia,sendMessage:le,sendMessageAndWait:Hf,reset:jf,queuedMessages:Te,queueFull:Qa,removeQueuedMessage:ya,sessionId:m,toolDefinitions:Ka,refreshToolDefinitions:Nt,threads:v,activeThreadId:y,isThreadHistoryReady:S,startNewThread:O,switchThread:H,deleteThread:ie}}var Cn=F(Ae(),1);function r9(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 qR(e){return typeof e=="object"&&e!==null&&"initial"in e}function FR(e){let{messages:t,status:a,config:n}=e,r=qR(n)&&n.initial?n.initial:void 0,[o,l]=(0,Cn.useState)(r??[]),i=(0,Cn.useRef)(a),s=n===!0||qR(n)&&n.dynamic!==!1,u=(0,Cn.useCallback)(()=>{l([])},[]),c=t.length>0;(0,Cn.useEffect)(()=>{!c&&r&&r.length>0&&l(r)},[r,c]);let d=t[t.length-1];return(0,Cn.useEffect)(()=>{d?.role==="user"&&u()},[d,u]),(0,Cn.useEffect)(()=>{let f=i.current;if(i.current=a,f==="streaming"&&a==="ready"&&s){let p=[...t].reverse().find(x=>x.role==="assistant");if(!p)return;let m=r9(p);m&&l(m)}},[a,s,t]),{suggestions:o,isLoading:!1,clear:u}}function HR(e,t){let a=t?.Authorization,n=typeof a=="string"&&a.startsWith("Bearer ")?a.slice(7):null;return ai(e,"/resource",n?{token:n}:void 0)}var o9={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 _f(e){let t={};for(let[a,n]of Object.entries(o9)){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 Ge=F(ee(),1),Of=(0,tt.forwardRef)(function(t,a){let{locale:n,messages:r}=t;return(0,Ge.jsx)(vs,{locale:n,messages:r,children:(0,Ge.jsx)(l9,{...t,ref:a})})}),l9=(0,tt.forwardRef)(function(t,a){let{t:n,ready:r}=Ee(),{appearance:o,className:l,allowAttachments:i=!1,welcomeMessage:s,welcome:u,placeholder:c=n.promptInput.placeholder,triggerEvent:d="triggerDemoRequest",api:f,mcp:p,debug:m=!1,readOnly:x=!1,title:b,headerActions:y,hideHeader:w=!1,enableThreadHistory:g=!1,showToolCalls:v=!0,initializing:M=!1,disclaimer:S}=t,A=o?.theme,E=o?.variables,_=E?_f(E):{},[k,W]=(0,tt.useState)(!1);(0,tt.useEffect)(()=>{if(A!=="auto"||typeof window>"u")return;let $=window.matchMedia("(prefers-color-scheme: dark)");W($.matches);let Y=()=>W($.matches);return $.addEventListener("change",Y),()=>$.removeEventListener("change",Y)},[A]);let U=A==="dark"||A==="auto"&&k,D=zR({...t,api:f}),P=qE({...t,api:f,sessionId:D.sessionId,onCallTool:p?.onCallTool}),q=p?.resourceEndpoint??HR(f,t.headers),G=ed(c,!D.text),[ae,he]=(0,tt.useState)(null),pe=(0,tt.useRef)(null),I=(0,tt.useRef)(null),$e=(0,tt.useRef)(null),Ye=(0,tt.useRef)(null),[L,ne]=(0,tt.useState)(!0),ge=(0,tt.useRef)(L);ge.current=L;let Nt=(0,tt.useCallback)(()=>{let $=pe.current;if(!$)return;let Y=$.querySelector("textarea");Y&&Y.focus()},[]),ze=(0,tt.useCallback)(($="smooth")=>{let Y=I.current;Y&&Y.scrollTo({top:Y.scrollHeight,behavior:$})},[]);(0,tt.useEffect)(()=>{let $=Ye.current,Y=I.current;if(!$||!Y)return;let Te=new IntersectionObserver(([rt])=>ne(rt.isIntersecting),{root:Y,rootMargin:"0px 0px 200px 0px",threshold:0});return Te.observe($),()=>Te.disconnect()},[]),(0,tt.useEffect)(()=>{(D.messages[D.messages.length-1]?.role==="user"||ge.current)&&ze("smooth")},[D.messages.length,D.messages[D.messages.length-1]]),(0,tt.useEffect)(()=>{ze("auto")},[ze]),(0,tt.useEffect)(()=>{if(typeof ResizeObserver>"u")return;let $=I.current,Y=$e.current;if(!$&&!Y)return;let Te=$?.scrollHeight??0,rt=$?.clientHeight??0,Mt=new ResizeObserver(()=>{let ya=I.current;if(!ya)return;let Qa=ya.scrollTop+rt>=Te-5;Te=ya.scrollHeight,rt=ya.clientHeight,Qa&&ze("auto")});return $&&Mt.observe($),Y&&Mt.observe(Y),()=>Mt.disconnect()},[ze]);let le=FR({messages:D.messages,status:D.status,config:t.suggestions}),qe=(0,tt.useCallback)($=>{let Y=$.content.map(Te=>Te.text??"").join("").trim();Y&&D.handleSubmit({text:Y,files:[],modelContext:$.modelContext})},[D.handleSubmit]),de=(0,tt.useCallback)($=>{le.clear(),D.handleSubmit({text:$,files:[]})},[le.clear,D.handleSubmit]);(0,tt.useImperativeHandle)(a,()=>({sendMessage:$=>{D.handleSubmit({text:$,files:[]}),Nt()},sendMessageAndWait:$=>D.sendMessageAndWait($),reset:D.reset,focus:Nt,get messages(){return D.messages},get sessionId(){return D.sessionId}}),[D.handleSubmit,D.sendMessageAndWait,D.reset,D.messages,D.sessionId,Nt]),(0,tt.useEffect)(()=>{if(!d)return;let $=Y=>{let Te=Y.detail,rt=typeof Te?.message=="string"?Te.message:void 0;rt&&D.handleSubmit({text:rt,files:[]}),Nt()};return window.addEventListener(d,$),()=>window.removeEventListener(d,$)},[d,D.handleSubmit,Nt]);let xe=!w&&!!(b||g||y),Ce=M||!r;return(0,Ge.jsxs)("div",{ref:pe,style:{..._,maxHeight:"inherit",opacity:Ce?0:1,transition:"opacity 220ms ease-out"},"data-waniwani-chat":"","data-waniwani-layout":"embed","data-color-scheme":A==="auto"?"auto":void 0,...Ce?{"data-waniwani-initializing":""}:{},...U?{"data-waniwani-dark":""}:{},className:j("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",A==="dark"&&"dark",l),children:[xe&&(0,Ge.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:[b&&(0,Ge.jsx)("div",{className:"ww:text-sm ww:font-semibold ww:truncate ww:flex-1 ww:min-w-0",children:b}),!b&&(0,Ge.jsx)("div",{className:"ww:flex-1"}),g&&(0,Ge.jsx)(zE,{threads:D.threads,activeThreadId:D.activeThreadId,onNewThread:D.startNewThread,onSelectThread:$=>{D.switchThread($)},onDeleteThread:$=>{D.deleteThread($)}}),y]}),(0,Ge.jsxs)("div",{ref:I,className:j("ww:relative ww:flex-1 ww:min-h-0",ae?"ww:overflow-hidden":"ww:overflow-y-auto"),children:[(0,Ge.jsxs)("div",{ref:$e,className:j("ww:mx-auto ww:w-full ww:max-w-3xl ww:px-4 ww:py-6 ww:flex ww:flex-col ww:gap-6",ae&&"ww:!py-0"),children:[(0,Ge.jsx)(NE,{messages:D.messages,status:D.status,welcomeMessage:s,welcome:u,onSuggestionSelect:de,resourceEndpoint:q,chatSessionId:D.sessionId,isDark:U,onFollowUp:qe,onCallTool:P,fullscreenToolCallId:ae,debug:m,showToolCalls:v,toolDefinitions:D.toolDefinitions,onWidgetDisplayModeChange:($,Y)=>{he($==="fullscreen"?Y.toolCallId:null)}}),(0,Ge.jsx)("div",{ref:Ye,"aria-hidden":!0,style:{height:1}})]}),!L&&!ae&&(0,Ge.jsx)("div",{className:"ww:sticky ww:bottom-2 ww:flex ww:justify-center ww:pointer-events-none",children:(0,Ge.jsx)(gn,{type:"button",onClick:()=>ze("smooth"),size:"icon",variant:"outline",className:"ww:rounded-full ww:shadow ww:pointer-events-auto","aria-label":"Scroll to latest",children:(0,Ge.jsx)(is,{className:"ww:size-4"})})})]}),!x&&(0,Ge.jsxs)("div",{className:"ww:shrink-0 ww:bg-background",style:ae?{display:"none"}:void 0,children:[(0,Ge.jsx)(Jc,{suggestions:le.suggestions,isLoading:le.isLoading,onSelect:de}),(0,Ge.jsx)(bC,{queuedMessages:D.queuedMessages,onRemove:D.removeQueuedMessage}),(0,Ge.jsx)("div",{className:"ww:px-4 ww:pb-2 ww:pt-2",children:(0,Ge.jsxs)("div",{className:"ww:mx-auto ww:w-full ww:max-w-3xl",children:[(0,Ge.jsx)(sC,{onSubmit:D.handleSubmit,globalDrop:i,multiple:i,className:"ww:rounded-2xl ww:border-border ww:bg-input",children:(0,Ge.jsxs)("div",{className:"ww:flex ww:items-center ww:gap-1 ww:pl-4 ww:pr-3 ww:py-2.5",children:[i&&(0,Ge.jsx)(dC,{}),(0,Ge.jsx)(uC,{onChange:D.handleTextChange,value:D.text,placeholder:G,className:"ww:min-h-0 ww:py-1 ww:px-0"}),(0,Ge.jsx)(cC,{status:D.status,disabled:D.queueFull})]})}),(0,Ge.jsxs)("div",{className:"ww:pt-2 ww:pb-1 ww:flex ww:flex-nowrap ww:justify-center ww:items-center ww:gap-1.5",children:[(0,Ge.jsx)(BE,{}),(0,Ge.jsx)(fC,{text:S})]})]})})]})]})});var du=F(Ae(),1);function i9(){if(typeof window>"u")return!1;try{return window.WANIWANI_DEBUG?!0:!!window.localStorage?.getItem("WANIWANI_DEBUG")}catch{return!1}}function ni(...e){i9()&&console.log("[Waniwani]",...e)}var Vw=new Set;function s9(e,t,a){return`${e}|${t}|${a??""}`}function u9(e){try{return`${new URL(e).origin}/api/mcp/events/v2/batch`}catch{return e.replace(/\/$/,"").replace(/\/chat$/,"/events/v2/batch")}}async function jR(e){let{api:t,token:a,channelId:n,mode:r,source:o}=e;if(typeof window>"u"||!t||!a)return;let l=s9(t,a,n);if(!Vw.has(l)){Vw.add(l);try{let i=await cu(),s=new Date().toISOString(),u=JSON.stringify({sentAt:s,source:{sdk:"@waniwani/sdk",version:"0.1.0"},events:[{id:crypto.randomUUID(),type:"mcp.event",name:"page.viewed",source:o,timestamp:s,correlation:{visitorId:i.visitorId},properties:{channelId:n,mode:r,url:window.location.href,referrer:i.referrer,deviceType:i.deviceType,language:i.language,timezone:i.timezone},metadata:{}}]});await fetch(u9(t),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:u,keepalive:!0})}catch{Vw.delete(l)}}}var c9="waniwani:config:";function VR(e,t,a){return`${c9}${e}|${t}|${a??""}`}function Gw(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 d9(e,t,a,n){if(!(typeof window>"u"))try{window.sessionStorage.setItem(VR(e,t,a),JSON.stringify(n))}catch{}}var f9=600;async function p9(e,t,a,n){try{let r=ai(e,"/config",n?{channel:n}:void 0),o=await fetch(r,{method:"GET",headers:{Authorization:`Bearer ${t}`},signal:a});if(!o.ok)return{};let l=await o.json(),i=l&&typeof l=="object"&&"data"in l&&l.data?l.data:l;return i?m9(i):{}}catch{return{}}}function m9(e){let t={};return e.source!=null&&(t.source=e.source),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),e.visibility&&(t.visibility=e.visibility),t}function Pf(e,t,a){let[n,r]=(0,du.useState)(e),[o,l]=(0,du.useState)(!1);return(0,du.useEffect)(()=>{let i=e.api,s=e.token,u=e.channelId;if(!i||!s){l(!0);return}let c=m=>{e.disablePageView||jR({api:i,token:s,channelId:u,mode:e.mode,source:m})},d=Gw(i,s,u);if(d)try{let m=os(t,d,a);r(m),l(!0),ni("config resolved (sessionStorage cache)",{config:m,visibility:m.visibility}),c(d.source)}catch{}let f=new AbortController,p=setTimeout(()=>l(!0),f9);return p9(i,s,f.signal,u).then(m=>{if(!f.signal.aborted){if(ni("remote /config response",m),Object.keys(m).length>0){d9(i,s,u,m);try{let x=os(t,m,a);r(x),ni("config resolved (remote)",{config:x,visibility:x.visibility})}catch(x){console.error("[Waniwani] Failed to apply remote config:",x)}}l(!0),c(m.source)}}).catch(m=>{console.error("[Waniwani] Remote config fetch failed:",m),l(!0)}).finally(()=>clearTimeout(p)),()=>{f.abort(),clearTimeout(p)}},[e.api,e.token,e.channelId]),{config:n,ready:o}}var Bf=F(Ae(),1);function h9(e){return e?.patterns??e?.rules??[]}var GR="\0\0";function g9(e){let a=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\\\*\\\*/g,GR).replace(/\\\*/g,"[^/]*").split(GR).join(".*");return new RegExp(`^${a}$`)}function $R(e,t){try{return g9(e).test(t)}catch{return!1}}function Nf(e,t){if(!e)return!0;let a=!1;for(let n of h9(e))if($R(n.glob,t)){if(n.action==="hide")return!1;a=!0}return a?!0:(e.default??"show")!=="hide"}function WR(e,t){for(let a of e?.appearRules??[])if($R(a.glob,t))return a.appearAfter;return null}var $w="waniwani:locationchange",XR=!1;function y9(){if(!(XR||typeof history>"u")){XR=!0;for(let e of["pushState","replaceState"]){let t=history[e];history[e]=function(...n){let r=t.apply(this,n);return window.dispatchEvent(new Event($w)),r}}}}function w9(e){return y9(),window.addEventListener($w,e),window.addEventListener("popstate",e),()=>{window.removeEventListener($w,e),window.removeEventListener("popstate",e)}}function x9(){return window.location.pathname}function v9(){return"/"}function Ww(){return(0,Bf.useSyncExternalStore)(w9,x9,v9)}function Uf(e,t){let a=Ww(),n=t&&Nf(e,a);return(0,Bf.useEffect)(()=>{ni("visibility gate",{pathname:a,ready:t,visible:n,rules:e})},[a,t,n]),n}var zf=F(Ae(),1),b9=3e3,S9=120,C9=24;function ZR(e){let[t,a]=(0,zf.useState)(!1);return(0,zf.useEffect)(()=>{if(!e||typeof document>"u"){a(!1);return}let n=!1,r=null,o=null,l=null,i=u=>{r=new IntersectionObserver(c=>{let d=c[0];d&&a(!d.isIntersecting&&d.boundingClientRect.bottom<=0)},{rootMargin:`0px 0px -${C9}px 0px`,threshold:0}),r.observe(u)},s=()=>{if(n)return;let u=null;try{u=document.querySelector(e)}catch{a(!0);return}if(u){i(u);return}o=setTimeout(s,S9)};return s(),l=setTimeout(()=>{n||r||(o&&clearTimeout(o),a(!0))},b9),()=>{n=!0,r?.disconnect(),o&&clearTimeout(o),l&&clearTimeout(l)}},[e]),t}var xt=F(ee(),1),I9=2e3,L9=90,k9=1e3,QR=(0,Ke.forwardRef)(function(t,a){return(0,xt.jsx)(vs,{locale:t.config.locale,children:(0,xt.jsx)(T9,{...t,ref:a})})}),T9=(0,Ke.forwardRef)(function({config:t,programmatic:a,scriptConfig:n},r){let{t:o}=Ee(),{config:l,ready:i}=Pf(t,a,n),s=Uf(l.visibility,i),u=Ww(),c=s?WR(l.visibility,u):null,d=ZR(c),f=(0,Ke.useRef)(null),p=(0,Ke.useRef)(null),m=(0,Ke.useRef)(null),[x,b]=(0,Ke.useState)("input"),[y,w]=(0,Ke.useState)(""),[g,v]=(0,Ke.useState)(!1),[M,S]=(0,Ke.useState)(!1),[A,E]=(0,Ke.useState)(0),_=l.appearance?.theme,k=l.appearance?.variables,W=(0,Ke.useMemo)(()=>k?_f(k):{},[k]),U=l.suggestions??[],D=l.launcherText??l.placeholder??o.launcher.prompt,P=ed(D,y.length===0),q="var(--ww-shadow, 0 10px 30px rgba(0, 0, 0, 0.08))";(0,Ke.useEffect)(()=>{if(!s){v(!1);return}if(c){v(d);return}let ne=l.appearDelay??I9,ge=setTimeout(()=>v(!0),Math.max(0,ne));return()=>clearTimeout(ge)},[s,l.appearDelay,c,d]),(0,Ke.useEffect)(()=>{if(!g||U.length===0)return;let ne=setTimeout(()=>b(ge=>ge==="input"?"expanded":ge),k9);return()=>clearTimeout(ne)},[g,U.length]),(0,Ke.useEffect)(()=>{A>0&&x==="open"&&f.current?.focus()},[A,x]);let G=(0,Ke.useCallback)(()=>{b("open")},[]),ae=(0,Ke.useCallback)(()=>{b("input")},[]);(0,Ke.useEffect)(()=>{if(x!=="expanded"){S(!1);return}let ne=setTimeout(()=>S(!0),L9);return()=>clearTimeout(ne)},[x]);let he=(0,Ke.useCallback)(ne=>{G();let ge=ne.trim();ge&&f.current?.sendMessage(ge)},[G]);(0,Ke.useImperativeHandle)(r,()=>({open:()=>G(),close:()=>ae(),toggle:()=>{b(ne=>ne==="open"?"input":"open")},sendMessage:ne=>he(ne),sendMessageAndWait:async ne=>{G();let ge=f.current;if(ge)return await ge.sendMessageAndWait(ne)},reset:()=>f.current?.reset(),focus:()=>{G(),E(ne=>ne+1)},getMessages:()=>f.current?.messages??[],getSessionId:()=>f.current?.sessionId}),[he,G,ae]);let pe=(0,Ke.useCallback)(()=>{y.trim()&&(he(y),w(""))},[y,he]),I=(0,Ke.useCallback)(()=>{(f.current?.messages.length??0)>0?(b("open"),E(ne=>ne+1)):b(ne=>ne==="input"?"expanded":ne)},[]),$e={};l.mcpServerUrl&&($e.mcpServerUrl=l.mcpServerUrl),l.channelId&&($e.channelId=l.channelId);let Ye=U.length>0&&x!=="input",L=(0,xt.jsx)("button",{type:"button",onClick:ae,"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,xt.jsx)(ms,{className:"ww:size-4"})});return(0,xt.jsx)("div",{"data-waniwani-chat":"","data-color-scheme":_==="auto"?"auto":void 0,className:j("ww:contents ww:font-[family-name:var(--ww-font-sans)]",_==="dark"&&"dark"),style:W,children:s&&(0,xt.jsxs)(xt.Fragment,{children:[(0,xt.jsx)("div",{ref:m,"data-waniwani-floating":"dock","data-state":x==="open"?"hidden":"shown","data-appeared":g?"true":"false",className:j("ww:fixed ww:bottom-3 ww:sm:bottom-4 ww:left-0 ww:right-0 ww:mx-auto ww:z-[2147483002] ww:flex ww:flex-col","ww:w-[calc(100vw-2rem)] ww:transition-[max-width] ww:duration-300 ww:ease-out",Ye?"ww:max-w-[720px]":"ww:max-w-[440px]"),children:(0,xt.jsxs)("div",{className:j("ww:flex ww:flex-col ww:rounded-[20px] ww:border ww:transition-all ww:duration-300 ww:ease-out",Ye?"ww:p-2 ww:backdrop-blur-xl ww:backdrop-saturate-150":"ww:border-transparent ww:p-0"),style:Ye?{boxShadow:q,backgroundColor:"var(--ww-glass)",borderColor:"var(--ww-glass-border)"}:void 0,children:[U.length>0&&(0,xt.jsx)("div",{className:j("ww:grid ww:transition-all ww:duration-300 ww:ease-out",M?"ww:grid-rows-[1fr] ww:opacity-100":"ww:pointer-events-none ww:grid-rows-[0fr] ww:opacity-0"),children:(0,xt.jsx)("div",{className:"ww:overflow-hidden",children:(0,xt.jsx)(Jc,{suggestions:U,onSelect:he,className:"ww:px-1 ww:pt-1 ww:pb-2.5"})})}),(0,xt.jsx)(Q0,{animated:g,backgroundColor:"var(--ww-color-input)",borderRadius:16,edgeSensitivity:30,coneSpread:25,colors:["#c084fc","#f472b6","#38bdf8"],className:"ww:border-border",style:{boxShadow:q},children:(0,xt.jsxs)("div",{className:"ww:flex ww:items-center ww:gap-1 ww:pl-3.5 ww:pr-1.5 ww:py-1.5 ww:sm:pl-4 ww:sm:pr-2 ww:sm:py-2",children:[(0,xt.jsx)("input",{ref:p,type:"text",value:y,placeholder:P,onChange:ne=>w(ne.target.value),onFocus:I,onKeyDown:ne=>{ne.key==="Enter"&&!ne.shiftKey&&(ne.preventDefault(),pe())},className:"ww:min-w-0 ww:flex-1 ww:bg-transparent ww:py-1 ww:text-base ww:sm:text-sm ww:text-foreground ww:outline-none ww:placeholder:text-muted-foreground"}),(0,xt.jsx)("button",{type:"button",onClick:pe,disabled:!y.trim(),"aria-label":o.promptInput.submit,className:"ww:relative 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,xt.jsx)(ho,{className:"ww:size-4"})})]})})]})}),(0,xt.jsx)("div",{role:"dialog","aria-label":l.title??D,"data-waniwani-floating":"panel","data-state":x==="open"?"shown":"hidden",style:{boxShadow:q},className:j("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:left-0 ww:sm:right-0 ww:sm:mx-auto ww:sm:h-[720px] ww:sm:max-h-[calc(100dvh-2rem)] ww:sm:w-[calc(100vw-2rem)] ww:sm:max-w-[1000px] ww:sm:rounded-2xl ww:sm:border ww:sm:border-border"),children:(0,xt.jsx)(Of,{ref:f,api:l.api??"",headers:{Authorization:`Bearer ${l.token}`},skipRemoteConfig:!0,body:Object.keys($e).length>0?$e:void 0,appearance:l.appearance,title:l.title,headerActions:L,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 ar=F(Ae(),1);var YR=F(ee(),1),KR=(0,ar.forwardRef)(function({config:t,programmatic:a,scriptConfig:n,onReady:r,onVisibilityChange:o},l){let{config:i,ready:s}=Pf(t,a,n),u=(0,ar.useRef)(null);(0,ar.useEffect)(()=>{r?.()},[]);let c=Uf(i.visibility,s);(0,ar.useEffect)(()=>{o?.(c)},[c,o]),(0,ar.useImperativeHandle)(l,()=>({get chat(){return u.current}}),[]);let d={};return i.mcpServerUrl&&(d.mcpServerUrl=i.mcpServerUrl),i.channelId&&(d.channelId=i.channelId),(0,YR.jsx)(Of,{ref:u,api:i.api??"",headers:{Authorization:`Bearer ${i.token}`},skipRemoteConfig:!0,body:Object.keys(d).length>0?d:void 0,appearance:i.appearance,title:i.title,hideHeader:i.hideHeader,welcomeMessage:i.welcomeMessage,placeholder:i.placeholder,suggestions:i.suggestions?{initial:i.suggestions}:void 0,enableThreadHistory:i.enableThreadHistory,showToolCalls:i.showToolCalls,locale:i.locale,initializing:!s})});var Xw="/*! 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-blur-xl:24px;--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\\:bottom-2{bottom:calc(var(--ww-spacing)*2)}.ww\\:bottom-3{bottom:calc(var(--ww-spacing)*3)}.ww\\:bottom-4{bottom:calc(var(--ww-spacing)*4)}.ww\\:left-0{left:calc(var(--ww-spacing)*0)}.ww\\:left-\\[50\\%\\]{left:50%}.ww\\:isolate{isolation:isolate}.ww\\:-z-\\[1\\]{z-index:calc(1*-1)}.ww\\:z-50{z-index:50}.ww\\:z-\\[1\\]{z-index:1}.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-0{margin-bottom:calc(var(--ww-spacing)*0)}.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-5{height:calc(var(--ww-spacing)*5)}.ww\\:h-8{height:calc(var(--ww-spacing)*8)}.ww\\:h-9{height:calc(var(--ww-spacing)*9)}.ww\\:h-16{height:calc(var(--ww-spacing)*16)}.ww\\:h-auto{height:auto}.ww\\:h-full{height:100%}.ww\\:max-h-48{max-height:calc(var(--ww-spacing)*48)}.ww\\:max-h-80{max-height:calc(var(--ww-spacing)*80)}.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\\:w-px{width:1px}.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-\\[440px\\]{max-width:440px}.ww\\:max-w-\\[720px\\]{max-width:720px}.ww\\:max-w-full{max-width:100%}.ww\\:max-w-md{max-width:var(--ww-container-md)}.ww\\:max-w-sm{max-width:var(--ww-container-sm)}.ww\\:min-w-0{min-width:calc(var(--ww-spacing)*0)}.ww\\:flex-1{flex:1}.ww\\:shrink-0{flex-shrink:0}.ww\\:grow{flex-grow:1}.ww\\:translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:rotate-90{rotate:90deg}.ww\\:rotate-180{rotate:180deg}.ww\\:animate-\\[ww-fade-in_0\\.2s_ease-out_both\\]{animation:.2s ease-out both ww-fade-in}.ww\\:animate-pulse{animation:var(--ww-animate-pulse)}.ww\\:animate-spin{animation:var(--ww-animate-spin)}.ww\\:cursor-pointer{cursor:pointer}.ww\\:resize-none{resize:none}.ww\\:grid-rows-\\[0fr\\]{grid-template-rows:0fr}.ww\\:grid-rows-\\[1fr\\]{grid-template-rows:1fr}.ww\\:flex-col{flex-direction:column}.ww\\:flex-nowrap{flex-wrap:nowrap}.ww\\:flex-wrap{flex-wrap:wrap}.ww\\:items-center{align-items:center}.ww\\:items-end{align-items:flex-end}.ww\\:items-start{align-items:flex-start}.ww\\:justify-between{justify-content:space-between}.ww\\:justify-center{justify-content:center}.ww\\:gap-1{gap:calc(var(--ww-spacing)*1)}.ww\\:gap-1\\.5{gap:calc(var(--ww-spacing)*1.5)}.ww\\:gap-2{gap:calc(var(--ww-spacing)*2)}.ww\\:gap-3{gap:calc(var(--ww-spacing)*3)}.ww\\:gap-6{gap:calc(var(--ww-spacing)*6)}:where(.ww\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ww-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ww-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.ww\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ww-spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ww-spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}.ww\\:self-stretch{align-self:stretch}.ww\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ww\\:\\!overflow-hidden{overflow:hidden!important}.ww\\:overflow-auto{overflow:auto}.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-\\[20px\\]{border-radius:20px}.ww\\:rounded-\\[inherit\\]{border-radius:inherit}.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\\:border-transparent{border-color:#0000}.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-border{background-color:var(--ww-color-border,#e5e7eb)}.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-0{padding:calc(var(--ww-spacing)*0)}.ww\\:p-1{padding:calc(var(--ww-spacing)*1)}.ww\\:p-1\\.5{padding:calc(var(--ww-spacing)*1.5)}.ww\\:p-2{padding:calc(var(--ww-spacing)*2)}.ww\\:p-3{padding:calc(var(--ww-spacing)*3)}.ww\\:px-0{padding-inline:calc(var(--ww-spacing)*0)}.ww\\:px-1{padding-inline:calc(var(--ww-spacing)*1)}.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-3\\.5{padding-inline:calc(var(--ww-spacing)*3.5)}.ww\\:px-4{padding-inline:calc(var(--ww-spacing)*4)}.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-1\\.5{padding-block:calc(var(--ww-spacing)*1.5)}.ww\\:py-2{padding-block:calc(var(--ww-spacing)*2)}.ww\\:py-2\\.5{padding-block:calc(var(--ww-spacing)*2.5)}.ww\\:py-3{padding-block:calc(var(--ww-spacing)*3)}.ww\\:py-6{padding-block:calc(var(--ww-spacing)*6)}.ww\\:py-12{padding-block:calc(var(--ww-spacing)*12)}.ww\\:pt-1{padding-top:calc(var(--ww-spacing)*1)}.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-1\\.5{padding-right:calc(var(--ww-spacing)*1.5)}.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-2\\.5{padding-bottom:calc(var(--ww-spacing)*2.5)}.ww\\:pb-3{padding-bottom:calc(var(--ww-spacing)*3)}.ww\\:pb-8{padding-bottom:calc(var(--ww-spacing)*8)}.ww\\:pl-3\\.5{padding-left:calc(var(--ww-spacing)*3.5)}.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-nowrap{white-space:nowrap}.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-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-xl{--tw-backdrop-blur:blur(var(--ww-blur-xl));-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\\:backdrop-saturate-150{--tw-backdrop-saturate:saturate(150%);-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-\\[max-width\\]{transition-property:max-width;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\\:bottom-4{bottom:calc(var(--ww-spacing)*4)}.ww\\:sm\\:left-0{left:calc(var(--ww-spacing)*0)}.ww\\:sm\\:mx-auto{margin-inline:auto}.ww\\:sm\\:h-\\[720px\\]{height:720px}.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-\\[1000px\\]{max-width:1000px}.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\\:py-2{padding-block:calc(var(--ww-spacing)*2)}.ww\\:sm\\:pr-2{padding-right:calc(var(--ww-spacing)*2)}.ww\\:sm\\:pl-4{padding-left:calc(var(--ww-spacing)*4)}.ww\\:sm\\:text-sm{font-size:var(--ww-text-sm);line-height:var(--tw-leading,var(--ww-text-sm--line-height))}.ww\\:sm\\:text-\\[11px\\]{font-size:11px}}.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=dock]{transition:opacity .32s,transform .42s cubic-bezier(.22,1,.36,1),max-width .3s,visibility 0s linear .42s}[data-waniwani-floating=dock][data-appeared=true][data-state=shown]{visibility:visible;opacity:1;pointer-events:auto;transition:opacity .32s,transform .42s cubic-bezier(.22,1,.36,1),max-width .3s,visibility;transform:translateY(0)}[data-waniwani-floating=dock][data-appeared=false],[data-waniwani-floating=dock][data-state=hidden]{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(1rem)}[data-waniwani-floating=panel]{transition:clip-path .44s cubic-bezier(.22,1,.36,1),opacity .26s,visibility 0s linear .44s}[data-waniwani-floating=panel][data-state=shown]{visibility:visible;opacity:1;pointer-events:auto;clip-path:inset(-40px round 18px);transition:clip-path .44s cubic-bezier(.22,1,.36,1),opacity .26s,visibility}[data-waniwani-floating=panel][data-state=hidden]{opacity:0;visibility:hidden;pointer-events:none;clip-path:inset(calc(100% - 60px) 12% 0 round 24px)}@media (max-width:639px){[data-waniwani-floating=panel][data-state=shown]{clip-path:inset(0)}[data-waniwani-floating=panel][data-state=hidden]{clip-path:inset(calc(100% - 72px) 6% 0 round 22px)}}@media (prefers-reduced-motion:reduce){[data-waniwani-floating=dock],[data-waniwani-floating=panel]{clip-path:none;transition:visibility 0s linear 10ms}[data-waniwani-floating=dock][data-appeared=true][data-state=shown],[data-waniwani-floating=panel][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);--ww-glass:#eceef499;--ww-glass-border:#0000000f;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);--ww-glass:#282a3480;--ww-glass-border:#ffffff1f}@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);--ww-glass:#282a3480;--ww-glass-border:#ffffff1f}}[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}}",Ft=null,Wr=null,la=null,qf=null,A9="waniwani-chat-sizing",M9="waniwani-chat-defaults",E9="waniwani-chat-chrome",R9="waniwani-chat-auto-card",D9=`:where([data-waniwani-embed]){height:${F0}}`,_9=":where([data-waniwani-embed]){border-radius:16px;overflow:hidden}",O9=":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)}",P9=":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 Ff(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 N9(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 tD(e,t){if(Xw&&Xw!=="__WANIWANI_EMBED_CSS__"){let n=document.createElement("style");n.textContent=Xw,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 JR="data-waniwani-embed",Zw="data-waniwani-auto";function B9(e){let t=document.querySelector(`[${JR}]`);if(t)return t;let a=document.createElement("div");a.setAttribute(JR,""),a.setAttribute(Zw,"");let n=e?!!document.head?.contains(e):!1;return e?.parentNode&&!n?e.parentNode.insertBefore(a,e):document.body.appendChild(a),a}function U9(e){return/^\d+$/.test(e.trim())?`${e.trim()}px`:e.trim()}function z9(e,t,a,n){let r=B9(n);Ff(A9,D9),e.height&&r instanceof HTMLElement&&(r.style.height=U9(e.height)),e.appearance?.theme&&Ff(M9,_9),Ff(E9,O9),r.hasAttribute(Zw)&&Ff(R9,P9),N9(r,e),la=document.createElement("div"),la.id="waniwani-chat-embed",la.style.cssText="width:100%;height:100%;max-height:inherit;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;",r.appendChild(la);let o=la,l=()=>{let d=getComputedStyle(r);if(!d.maxHeight.endsWith("px")){o.style.removeProperty("max-height");return}let f=Number.parseFloat(d.maxHeight);if(!Number.isFinite(f)){o.style.removeProperty("max-height");return}let p=f;d.boxSizing==="border-box"&&(p-=(Number.parseFloat(d.paddingTop)||0)+(Number.parseFloat(d.paddingBottom)||0)+(Number.parseFloat(d.borderTopWidth)||0)+(Number.parseFloat(d.borderBottomWidth)||0)),p>0?o.style.maxHeight=`${p}px`:o.style.removeProperty("max-height")};l(),qf=new ResizeObserver(l),qf.observe(r);let i=la.attachShadow({mode:"open"});tD(i,e);let s=document.createElement("div");s.className="ww:contents",i.appendChild(s);let u=fu.default.createRef(),c=d=>{r instanceof HTMLElement&&(r.style.display=d?"":"none")};if(e.token){let d=Gw(e.api??"",e.token,e.channelId);d?.visibility&&!Nf(d.visibility,window.location.pathname)&&c(!1)}return Wr=Qw.default.createRoot(s),Wr.render(fu.default.createElement(KR,{ref:u,config:e,programmatic:t,scriptConfig:a,onVisibilityChange:c})),{destroy:()=>{qf?.disconnect(),qf=null,Wr?.unmount(),Wr=null,la?.remove(),la=null,r.hasAttribute(Zw)&&r.remove(),Ft=null},open:()=>{},close:()=>{},toggle:()=>{},sendMessage:d=>u.current?.chat?.sendMessage(d),sendMessageAndWait:async d=>{let f=u.current?.chat;if(f)return await f.sendMessageAndWait(d)},reset:()=>u.current?.chat?.reset(),focus:()=>u.current?.chat?.focus(),getMessages:()=>u.current?.chat?.messages??[],getSessionId:()=>u.current?.chat?.sessionId}}function q9(e,t,a){la=document.createElement("div"),la.id="waniwani-chat-embed",la.style.cssText="position:fixed;inset:0;z-index:2147483000;pointer-events:none;",document.body.appendChild(la);let n=la.attachShadow({mode:"open"});tD(n,e);let r=document.createElement("div");r.className="ww:contents",n.appendChild(r);let o=fu.default.createRef();return Wr=Qw.default.createRoot(r),Wr.render(fu.default.createElement(QR,{ref:o,config:e,programmatic:t,scriptConfig:a})),{destroy:()=>{Wr?.unmount(),Wr=null,la?.remove(),la=null,Ft=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 aD(e){if(Ft)return console.warn("[Waniwani] Chat widget is already initialized. Call destroy() first to re-initialize."),Ft;let t=Eh(),a=Xc(),n=os(e,void 0,a);return Ft=n.mode==="floating"?q9(n,e,a):z9(n,e,a,t),Ft}function F9(){Ft&&Ft.destroy()}window.WaniWani=window.WaniWani||{};window.WaniWani.chat={init:aD,destroy:F9,open:()=>Ft?.open(),close:()=>Ft?.close(),toggle:()=>Ft?.toggle(),sendMessage:e=>Ft?.sendMessage(e),sendMessageAndWait:async e=>{if(Ft)return Ft.sendMessageAndWait(e)},reset:()=>Ft?.reset(),focus:()=>Ft?.focus(),getMessages:()=>Ft?.getMessages()??[],getSessionId:()=>Ft?.getSessionId()};function eD(){if(Xc().token)try{aD()}catch(t){console.error("[Waniwani] Auto-initialization failed:",t)}}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",eD):eD();})();
139
139
  /*! Bundled license information:
140
140
 
141
141
  react/cjs/react.production.js: