@waniwani/sdk 0.14.8 → 0.14.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chat/embed.js +1 -1
- package/dist/chat/embed.js.map +1 -1
- package/package.json +1 -1
package/dist/chat/embed.js
CHANGED
|
@@ -135,7 +135,7 @@ Error message: ${w2(a)}`,cause:a}),this[s2]=!0,this.value=t,this.context=n}stati
|
|
|
135
135
|
`)},flush(e){e.enqueue(`data: [DONE]
|
|
136
136
|
|
|
137
137
|
`)}})}};var Rw=wf(()=>au(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 vH(e){return e.type.startsWith("data-")}function Ew(e){return e.type.startsWith("tool-")}function bH(e){return e.type==="dynamic-tool"}function Sf(e){return Ew(e)||bH(e)}function oR(e){return e.type.split("-").slice(1).join("-")}function SH({lastMessage:e,messageId:t}){return{message:e?.role==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function CH({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(Sf).find(C=>C.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 S(g){var b;let M=u.message.parts.find(E=>Ew(E)&&E.toolCallId===g.toolCallId),C=g,A=M;if(M!=null){M.state=g.state,A.input=C.input,A.output=C.output,A.errorText=C.errorText,A.rawInput=C.rawInput,A.preliminary=C.preliminary,g.title!==void 0&&(A.title=g.title),A.providerExecuted=(b=C.providerExecuted)!=null?b:M.providerExecuted;let E=C.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:C.input,output:C.output,rawInput:C.rawInput,errorText:C.errorText,providerExecuted:C.providerExecuted,preliminary:C.preliminary,...C.providerMetadata!=null&&(g.state==="output-available"||g.state==="output-error")?{resultProviderMetadata:C.providerMetadata}:{},...C.providerMetadata!=null&&!(g.state==="output-available"||g.state==="output-error")?{callProviderMetadata:C.providerMetadata}:{}})}function y(g){var b,M;let C=u.message.parts.find(_=>_.type==="dynamic-tool"&&_.toolCallId===g.toolCallId),A=g,E=C;if(C!=null){C.state=g.state,E.toolName=g.toolName,E.input=A.input,E.output=A.output,E.errorText=A.errorText,E.rawInput=(b=A.rawInput)!=null?b:E.rawInput,E.preliminary=A.preliminary,g.title!==void 0&&(E.title=g.title),E.providerExecuted=(M=A.providerExecuted)!=null?M:C.providerExecuted;let _=A.providerMetadata;if(_!=null)if(g.state==="output-available"||g.state==="output-error"){let k=C;k.resultProviderMetadata=_}else C.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 b=u.message.metadata!=null?gR(u.message.metadata,g):g;t!=null&&await bf({value:b,schema:t,context:{field:"message.metadata",entityId:u.message.id}}),u.message.metadata=b}}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(Ew);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}):S({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-streaming",input:void 0,providerExecuted:i.providerExecuted,title:i.title,providerMetadata:i.providerMetadata}),c();break}case"tool-input-delta":{let 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:b}=await ru(g.text);g.dynamic?y({toolCallId:i.toolCallId,toolName:g.toolName,state:"input-streaming",input:b,title:g.title}):S({toolCallId:i.toolCallId,toolName:g.toolName,state:"input-streaming",input:b,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}):S({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-available",input:i.input,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:i.title}),c(),o&&!i.providerExecuted&&await o({toolCall:i});break}case"tool-input-error":{let g=u.message.parts.filter(Sf).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}):S({toolCallId:i.toolCallId,toolName:i.toolName,state:"output-error",input:void 0,rawInput:i.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata}),c();break}case"tool-approval-request":{let 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}):S({toolCallId:i.toolCallId,toolName:oR(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}):S({toolCallId:i.toolCallId,toolName:oR(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(vH(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),C=M>=0?M:u.message.parts.length;await bf({value:i.data,schema:a[i.type],context:{field:`message.parts[${C}].data`,entityName:i.type,entityId:i.id}})}let g=i;if(g.transient){l?.(g);break}let b=g.id!=null?u.message.parts.find(M=>g.type===M.type&&g.id===M.id):void 0;b!=null?b.data=g.data:u.message.parts.push(g),l?.(g),c()}}s.enqueue(i)})}}))}async function IH({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 Pae=er({prefix:"aitxt",size:24});var Uae=wf(()=>au(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 qae=er({prefix:"aiobj",size:24});function yR(e){return({url:t,abortSignal:a})=>aH({url:t,maxBytes:e?.maxBytes,abortSignal:a})}var LH=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 Hae=er({prefix:"aiobj",size:24});var jae=yR();var kH="AI_NoSuchProviderError",TH=`vercel.ai.error.${kH}`,AH=Symbol.for(TH),MH;MH=AH;var Vae=yR();async function EH(e){if(e==null)return[];if(!globalThis.FileList||!(e instanceof globalThis.FileList))throw new Error("FileList is not supported in the current environment");return Promise.all(Array.from(e).map(async t=>{let{name:a,type:n}=t,r=await new Promise((o,l)=>{let i=new FileReader;i.onload=s=>{var u;o((u=s.target)==null?void 0:u.result)},i.onerror=s=>l(s),i.readAsDataURL(t)});return{type:"file",mediaType:n,filename:a,url:r}}))}var RH=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)}},Dw=class extends RH{constructor(e={}){super(e)}processResponseStream(e){return rR({stream:e,schema:Rw}).pipeThrough(new TransformStream({async transform(t,a){if(!t.success)throw t.error;a.enqueue(t.value)}}))}},wR=class{constructor({generateId:e=Y2,id:t=e(),transport:a=new Dw,messageMetadataSchema:n,dataPartSchemas:r,state:o,onError:l,onToolCall:i,onFinish:s,onData:u,sendAutomaticallyWhen:c}){this.activeResponse=void 0,this.jobExecutor=new LH,this.sendMessage=async(d,f)=>{var p,m,x,S;if(d==null){await this.makeRequest({trigger:"submit-message",messageId:(p=this.lastMessage)==null?void 0:p.id,...f});return}let y;if("text"in d||"files"in d?y={parts:[...Array.isArray(d.files)?d.files:await EH(d.files),..."text"in d&&d.text!=null?[{type:"text",text:d.text}]:[]]}:y=d,d.messageId!=null){let 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:(S=y.role)!=null?S:"user",metadata:d.metadata});await this.makeRequest({trigger:"submit-message",messageId:d.messageId,...f})},this.regenerate=async({messageId:d,...f}={})=>{let p=d==null?this.state.messages.length-1:this.state.messages.findIndex(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,S=x[x.length-1],y=w=>Sf(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,{...S,parts:S.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 S=this.state.messages,y=S[S.length-1],w=g=>Sf(g)&&g.toolCallId===f?{...g,state:d,output:p,errorText:m}:g;this.state.replaceMessage(S.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 b;g&&this.makeRequest({trigger:"submit-message",messageId:(b=this.lastMessage)==null?void 0:b.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:SH({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=S=>this.jobExecutor.run(()=>S({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 IH({stream:CH({stream:m,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:x,onError:S=>{throw S}}),onError:S=>{throw S}}),this.setStatus({status:"ready"})}catch(p){if(c||p.name==="AbortError")return c=!0,this.setStatus({status:"ready"}),null;f=!0,p instanceof TypeError&&(p.message.toLowerCase().includes("fetch")||p.message.toLowerCase().includes("network"))&&(d=!0),this.onError&&p instanceof Error&&this.onError(p),this.setStatus({status:"error",error:p})}finally{try{(l=this.onFinish)==null||l.call(this,{message:this.activeResponse.state.message,messages:this.state.messages,isAbort:c,isDisconnect:d,isError:f,finishReason:(o=this.activeResponse)==null?void 0:o.state.finishReason})}catch(p){console.error(p)}this.activeResponse=void 0}!f&&await this.shouldSendAutomatically()&&await this.makeRequest({trigger:"submit-message",messageId:(i=this.lastMessage)==null?void 0:i.id,metadata:t,headers:a,body:n})}};var CR=F(vR(),1);var su=F(Ae(),1);var Lf=F(Ae(),1);var SR=(e,t,a)=>{if(!t.has(e))throw TypeError("Cannot "+a)},st=(e,t,a)=>(SR(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)=>(SR(e,t,"write to private field"),n?n.call(e,a):t.set(e,a),a);function _H(e,t){return t!=null?(0,CR.default)(e,t):e}var Xa,Cf,If,ou,lu,iu,ei,_w,Ow,OH=class{constructor(e=[]){Sn(this,Xa,void 0),Sn(this,Cf,"ready"),Sn(this,If,void 0),Sn(this,ou,new Set),Sn(this,lu,new Set),Sn(this,iu,new Set),this.pushMessage=t=>{$r(this,Xa,st(this,Xa).concat(t)),st(this,ei).call(this)},this.popMessage=()=>{$r(this,Xa,st(this,Xa).slice(0,-1)),st(this,ei).call(this)},this.replaceMessage=(t,a)=>{$r(this,Xa,[...st(this,Xa).slice(0,t),this.snapshot(a),...st(this,Xa).slice(t+1)]),st(this,ei).call(this)},this.snapshot=t=>structuredClone(t),this["~registerMessagesCallback"]=(t,a)=>{let n=a?_H(t,a):t;return st(this,ou).add(n),()=>{st(this,ou).delete(n)}},this["~registerStatusCallback"]=t=>(st(this,lu).add(t),()=>{st(this,lu).delete(t)}),this["~registerErrorCallback"]=t=>(st(this,iu).add(t),()=>{st(this,iu).delete(t)}),Sn(this,ei,()=>{st(this,ou).forEach(t=>t())}),Sn(this,_w,()=>{st(this,lu).forEach(t=>t())}),Sn(this,Ow,()=>{st(this,iu).forEach(t=>t())}),$r(this,Xa,e)}get status(){return st(this,Cf)}set status(e){$r(this,Cf,e),st(this,_w).call(this)}get error(){return st(this,If)}set error(e){$r(this,If,e),st(this,Ow).call(this)}get messages(){return st(this,Xa)}set messages(e){$r(this,Xa,[...e]),st(this,ei).call(this)}};Xa=new WeakMap;Cf=new WeakMap;If=new WeakMap;ou=new WeakMap;lu=new WeakMap;iu=new WeakMap;ei=new WeakMap;_w=new WeakMap;Ow=new WeakMap;var ti,bR=class extends wR{constructor({messages:e,...t}){let a=new OH(e);super({...t,state:a}),Sn(this,ti,void 0),this["~registerMessagesCallback"]=(n,r)=>st(this,ti)["~registerMessagesCallback"](n,r),this["~registerStatusCallback"]=n=>st(this,ti)["~registerStatusCallback"](n),this["~registerErrorCallback"]=n=>st(this,ti)["~registerErrorCallback"](n),$r(this,ti,a)}};ti=new WeakMap;function IR({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 bR(r));("chat"in a&&a.chat!==o.current||"id"in a&&o.current.id!==a.id)&&(o.current="chat"in a?a.chat:new bR(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 PH(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 kf=class extends Dw{processResponseStream(t){let a="",n=Rw(),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=PH(f.error);if(p?.length){let m={...d};for(let S of p)delete m[S];let x=await r(m);x.success&&l.enqueue(x.value)}}catch{}}}}))}};var NH="waniwani-memory";var Ra="threads",Tf="by_memoryUserId",BH="by_updatedAt";var kR="memoryUserId",LR="waniwani-memory-user-id",Pw=null;function Nw(){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 UH(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(Tf,"memoryUserId",{unique:!1}),a.createIndex(BH,"updatedAt",{unique:!1})}}async function Bw(){return new Promise((e,t)=>{let a=indexedDB.open(NH,2);a.onupgradeneeded=n=>{UH(a.result,n.oldVersion)},a.onsuccess=()=>e(a.result),a.onerror=()=>t(a.error)})}async function zH(){return Bw()}async function qH(e){return new Promise((t,a)=>{let o=e.transaction("ids","readonly").objectStore("ids").get(kR);o.onsuccess=()=>t(typeof o.result=="string"?o.result:null),o.onerror=()=>a(o.error)})}async function FH(e,t){return new Promise((a,n)=>{let l=e.transaction("ids","readwrite").objectStore("ids").put(t,kR);l.onsuccess=()=>a(),l.onerror=()=>n(l.error)})}async function HH(){if(typeof indexedDB>"u")return null;try{let e=await zH();try{let t=await qH(e);if(t)return t;let a=Nw();return await FH(e,a),a}finally{e.close()}}catch{return null}}function jH(){try{let e=localStorage.getItem(LR);if(e)return e;let t=Nw();return localStorage.setItem(LR,t),t}catch{return null}}async function TR(){let e=await HH();if(e)return e;let t=jH();return t||(Pw||(Pw=Nw()),Pw)}var AR=50,MR=1e3;function Af(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 Mf(e){if(typeof indexedDB>"u")return null;let t=null;try{return t=await Bw(),await e(t)}catch{return null}finally{try{t?.close()}catch{}}}function Uw(e){return new Promise((t,a)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>a(e.error)})}async function zw(e){return await Mf(async a=>{let o=a.transaction(Ra,"readonly").objectStore(Ra).index(Tf),i=(await Uw(o.getAll(e))??[]).filter(Af);return i.sort((s,u)=>s.updatedAt<u.updatedAt?1:-1),i})??[]}async function Ef(e){return await Mf(async a=>{let r=a.transaction(Ra,"readonly").objectStore(Ra),o=await Uw(r.get(e));return Af(o)?o:null})??null}async function qw(e){if(!Af(e))return;let t=e.messages.length>MR?{...e,messages:e.messages.slice(e.messages.length-MR)}:e;await Mf(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(Tf),i=(await Uw(o.getAll(t.memoryUserId))??[]).filter(Af);if(i.length>AR){i.sort((u,c)=>u.updatedAt<c.updatedAt?-1:1);let s=i.slice(0,i.length-AR);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 ER(e){await Mf(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 Fw(e){return(await zw(e))[0]?.threadId??null}function RR(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 DR="waniwani-visitor-id";function _R(e,t){return e.match(t)?.[1]??null}function VH(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=_R(e,n);if(r)return{name:a,version:r}}return null}function GH(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=_R(e,n);if(r)return{name:a,version:r.replace(/_/g,".")};if(a==="Linux"&&n.test(e))return{name:a,version:""}}return null}function $H(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 WH(e){let t=new TextEncoder().encode(e),a=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(a)).map(n=>n.toString(16).padStart(2,"0")).join("")}async function XH(){try{let a=localStorage.getItem(DR);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 WH(e);try{localStorage.setItem(DR,t)}catch{}return t}async function uu(){let e=navigator.userAgent,[t,a]=await Promise.all([XH(),TR()]);return{userAgent:e,browser:VH(e),os:GH(e),deviceType:$H(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 ZH="x-session-id",QH=250;function OR(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():vs()}function Rf(){return new Date().toISOString()}function PR(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}async function KH(e,t){let a=`${e.replace(/\/$/,"")}/tools`,n=await fetch(a,{method:"GET",headers:t?{...t}:void 0});if(!n.ok)throw new Error(`[Waniwani] Failed to fetch /tools: ${n.status} ${n.statusText}`);let r=await n.json();if(!r||!Array.isArray(r.tools))return{};let o={};for(let l of r.tools)l&&typeof l.name=="string"&&(o[l.name]=l);return o}function NR(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),S=(0,Z.useRef)(m),[y,w]=(0,Z.useState)(i),g=(0,Z.useRef)(y),[b,M]=(0,Z.useState)([]),[C,A]=(0,Z.useState)(!l),E=(0,Z.useRef)(void 0),_=(0,Z.useRef)(void 0),k=(0,Z.useRef)(void 0),$=(0,Z.useRef)(void 0),U=(0,Z.useRef)(0),R=(0,Z.useRef)(s);(0,Z.useEffect)(()=>{R.current=s},[s]);let O=(0,Z.useCallback)(B=>{g.current=B,w(B),B&&R.current?.(B)},[]),q=(0,Z.useCallback)(async()=>{if(!l)return;let B=p.current?.memoryUserId;if(!B)return;let ae=await zw(B);M(ae)},[l]),W=(0,Z.useCallback)(()=>S.current,[]),re=(0,Z.useCallback)(B=>{let ae=PR(B);ae&&S.current!==ae&&(S.current=ae,x(ae))},[]),ge=(0,Z.useCallback)(()=>{S.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,ae=U.current;return(async()=>{try{let dt=await uu();if(B)return;p.current=dt}catch{}if(!l)return;let J=p.current?.memoryUserId;if(!J){A(!0);return}try{let dt=i??await Fw(J);if(B||ae!==U.current)return;if(dt){let Ge=await Ef(dt);if(B||ae!==U.current)return;Ge&&Ge.memoryUserId===J&&(g.current=Ge.threadId,w(Ge.threadId),E.current=Ge.createdAt,_.current=Ge.title,Ge.sessionId&&(S.current=Ge.sessionId,x(Ge.sessionId)),ze(Ge.messages))}await q()}finally{B||A(!0)}})(),()=>{B=!0}},[]);let fe=(0,Z.useRef)(new kf({api:t,headers:()=>({...u.current}),body:()=>{let B={...c.current??{}},ae=Object.hasOwn(B,"sessionId"),J=PR(B.sessionId);if(J)re(J),B.sessionId=J;else if(ae)ge(),delete B.sessionId;else{let Da=W();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:{},KR=typeof Ln.client=="object"&&Ln.client!==null?Ln.client:{};B.visitor={...Ln,id:Da.visitorId,client:{...KR,memoryUserId:Da.memoryUserId}}}let dt=typeof B.extra=="object"&&B.extra!==null&&!Array.isArray(B.extra)?B.extra:void 0,Ge=p.current?.memoryUserId,Et=p.current?.language,mu={};if(Ge&&(mu.memoryUserId=Ge),Et&&(mu.locale=Et),(Object.keys(mu).length>0||dt)&&(B.extra={...mu,...dt??{}}),d.current)if(Object.hasOwn(B,"threadId"))typeof B.threadId=="string"&&(g.current=B.threadId);else{let Ln=g.current;Ln||(Ln=OR(),E.current=Rf(),_.current=void 0,O(Ln)),B.threadId=Ln}return B},fetch:(async(B,ae)=>{let J=await fetch(B,ae);return f.current=void 0,re(J.headers.get(ZH)),J})})),v=(0,Z.useRef)(null),Te=(0,Z.useRef)(null),et=(0,Z.useRef)({}),[L,wt]=(0,Z.useState)(0),Qe=e.skipRemoteConfig===!0,Nt=(0,Z.useCallback)(async()=>{if(!Qe)try{let B=await KH(t,u.current);et.current=B,wt(ae=>ae+1)}catch(B){console.warn("[Waniwani] Failed to fetch tool definitions:",B instanceof Error?B.message:B)}},[t,Qe]);(0,Z.useEffect)(()=>{Nt()},[Nt]);let{messages:Ue,sendMessage:oe,setMessages:ze,status:ce}=IR({messages:e.initialMessages,transport:fe.current,onFinish({message:B}){o?.(),v.current&&(Te.current=B)},onError(B){console.warn("[Waniwani] Chat error:",B.message),v.current&&(v.current.reject(B),v.current=null)}}),ye=(0,Z.useRef)(Ue);(0,Z.useEffect)(()=>{ye.current=Ue},[Ue]);let be=(0,Z.useRef)(l);(0,Z.useEffect)(()=>{if(!l||be.current||(be.current=!0,ye.current.length>0))return;let B=!1,ae=U.current;return A(!1),(async()=>{try{let J=p.current;if(!J)try{J=await uu(),p.current=J}catch{}let dt=J?.memoryUserId;if(!dt||B||ae!==U.current){B||A(!0);return}let Ge=i??await Fw(dt);if(B||ae!==U.current)return;if(Ge){let Et=await Ef(Ge);if(B||ae!==U.current)return;Et&&Et.memoryUserId===dt&&(g.current=Et.threadId,w(Et.threadId),E.current=Et.createdAt,_.current=Et.title,Et.sessionId&&(S.current=Et.sessionId,x(Et.sessionId)),ze(Et.messages))}await q()}finally{B||A(!0)}})(),()=>{B=!0}},[l]),(0,Z.useEffect)(()=>{if(ce==="ready"&&v.current&&Te.current){let B=v.current,ae=Te.current;v.current=null,Te.current=null,B.resolve(ae)}},[ce]);let[G,Y]=(0,Z.useState)(""),[Le,nt]=(0,Z.useState)([]),Mt=ce==="submitted"||ce==="streaming",ya=(0,Z.useCallback)(B=>{nt(ae=>ae.filter(J=>J.id!==B))},[]),Qa=Mt&&Le.length>0,fu=(0,Z.useCallback)(B=>{let ae=!!B.text?.trim(),J=!!B.files?.length;if(ae||J){if(Mt){if(Le.length>0)return;nt(dt=>[...dt,{id:vs(),text:B.text||"",files:B.files??[],modelContext:B.modelContext}]),Y("");return}f.current=B.modelContext,oe({text:B.text||"",files:B.files}),r?.(B.text||""),Y("")}},[oe,r,Mt,Le.length]),qf=(0,Z.useCallback)(B=>new Promise((ae,J)=>{v.current={resolve:ae,reject:J},oe({text:B}),r?.(B)}),[oe,r]);(0,Z.useEffect)(()=>{if(ce!=="ready"||Le.length===0)return;let[B,...ae]=Le;nt(ae),f.current=B.modelContext,oe({text:B.text,files:B.files.length>0?B.files:void 0}),r?.(B.text)},[ce,oe,r,Le]);let Ff=(0,Z.useCallback)(()=>{ze([]),nt([]),ge(),Y(""),et.current={},wt(B=>B+1),Nt()},[ze,ge,Nt]),zo=(0,Z.useCallback)(()=>{if(!d.current)return;let B=p.current?.memoryUserId,ae=g.current,J=ye.current;if(!(!B||!ae||J.length===0)){if(E.current||(E.current=Rf()),!_.current){let dt=J.find(Et=>Et.role==="user"),Ge=dt?dt.parts.map(Et=>"text"in Et&&typeof Et.text=="string"?Et.text:"").join(" "):"";_.current=RR(Ge)}return{threadId:ae,memoryUserId:B,title:_.current,messages:J,sessionId:S.current,createdAt:E.current,updatedAt:Rf()}}},[]),pu=(0,Z.useCallback)(async()=>{let B=zo();B&&(await qw(B),await q())},[zo,q]);(0,Z.useEffect)(()=>{if(l&&C&&!(ce==="submitted"||ce==="streaming")&&Ue.length!==0)return k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{k.current=void 0;let B=pu().finally(()=>{$.current===B&&($.current=void 0)});$.current=B},QH),()=>{k.current&&clearTimeout(k.current)}},[l,C,Ue,ce,pu]);let qo=(0,Z.useCallback)(()=>{let B=$.current,ae=k.current,J=ae?zo():void 0;return ae&&(clearTimeout(ae),k.current=void 0),(async()=>{B&&await B,J&&(await qw(J),await q())})()},[zo,q]),P=(0,Z.useCallback)(()=>{U.current+=1,qo(),ze([]),nt([]),ge(),Y("");let B=OR();return E.current=Rf(),_.current=void 0,O(B),q(),B},[ze,ge,O,q,qo]),H=(0,Z.useCallback)(async B=>{U.current+=1;let ae=U.current;if(await qo(),ae!==U.current)return;let J=await Ef(B);ae===U.current&&J&&(O(J.threadId),E.current=J.createdAt,_.current=J.title,J.sessionId?(S.current=J.sessionId,x(J.sessionId)):ge(),ze(J.messages),nt([]),Y(""))},[ze,ge,O,qo]),le=(0,Z.useCallback)(async B=>{if(g.current===B){U.current+=1,k.current&&(clearTimeout(k.current),k.current=void 0);let ae=$.current;ae&&await ae}await ER(B),await q(),g.current===B&&(ze([]),nt([]),ge(),Y(""),g.current=void 0,w(void 0),E.current=void 0,_.current=void 0)},[ze,ge,q]);(0,Z.useEffect)(()=>{l&&C&&i!==void 0&&i!==g.current&&H(i)},[i,l,C,H]);let we=(0,Z.useCallback)(B=>{Y(B.target.value)},[]),Be=Ue[Ue.length-1],ia=Ue.length>0,In=Mt&&(!ia||Be.role==="user"),Ka=et.current;return{messages:Ue,status:ce,text:G,setText:Y,handleSubmit:fu,handleTextChange:we,isLoading:Mt,showLoaderBubble:In,lastMessage:Be,hasMessages:ia,sendMessage:oe,sendMessageAndWait:qf,reset:Ff,queuedMessages:Le,queueFull:Qa,removeQueuedMessage:ya,sessionId:m,toolDefinitions:Ka,refreshToolDefinitions:Nt,threads:b,activeThreadId:y,isThreadHistoryReady:C,startNewThread:P,switchThread:H,deleteThread:le}}var Cn=F(Ae(),1);function YH(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 BR(e){return typeof e=="object"&&e!==null&&"initial"in e}function UR(e){let{messages:t,status:a,config:n}=e,r=BR(n)&&n.initial?n.initial:void 0,[o,l]=(0,Cn.useState)(r??[]),i=(0,Cn.useRef)(a),s=n===!0||BR(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=YH(p);m&&l(m)}},[a,s,t]),{suggestions:o,isLoading:!1,clear:u}}function zR(e,t){let a=t?.Authorization,n=typeof a=="string"&&a.startsWith("Bearer ")?a.slice(7):null;return n?`${e}/resource?token=${encodeURIComponent(n)}`:`${e}/resource`}var JH={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 Df(e){let t={};for(let[a,n]of Object.entries(JH)){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 Ve=F(ee(),1),_f=(0,Je.forwardRef)(function(t,a){let{locale:n,messages:r}=t;return(0,Ve.jsx)(xs,{locale:n,messages:r,children:(0,Ve.jsx)(e9,{...t,ref:a})})}),e9=(0,Je.forwardRef)(function(t,a){let{t:n,ready:r}=Me(),{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:S,headerActions:y,hideHeader:w=!1,enableThreadHistory:g=!1,showToolCalls:b=!0,initializing:M=!1,disclaimer:C}=t,A=o?.theme,E=o?.variables,_=E?Df(E):{},[k,$]=(0,Je.useState)(!1);(0,Je.useEffect)(()=>{if(A!=="auto"||typeof window>"u")return;let G=window.matchMedia("(prefers-color-scheme: dark)");$(G.matches);let Y=()=>$(G.matches);return G.addEventListener("change",Y),()=>G.removeEventListener("change",Y)},[A]);let U=A==="dark"||A==="auto"&&k,R=NR({...t,api:f}),O=BE({...t,api:f,sessionId:R.sessionId,onCallTool:p?.onCallTool}),q=p?.resourceEndpoint??zR(f,t.headers),W=Jc(c,!R.text),[re,ge]=(0,Je.useState)(null),fe=(0,Je.useRef)(null),v=(0,Je.useRef)(null),Te=(0,Je.useRef)(null),et=(0,Je.useRef)(null),[L,wt]=(0,Je.useState)(!0),Qe=(0,Je.useRef)(L);Qe.current=L;let Nt=(0,Je.useCallback)(()=>{let G=fe.current;if(!G)return;let Y=G.querySelector("textarea");Y&&Y.focus()},[]),Ue=(0,Je.useCallback)((G="smooth")=>{let Y=v.current;Y&&Y.scrollTo({top:Y.scrollHeight,behavior:G})},[]);(0,Je.useEffect)(()=>{let G=et.current,Y=v.current;if(!G||!Y)return;let Le=new IntersectionObserver(([nt])=>wt(nt.isIntersecting),{root:Y,rootMargin:"0px 0px 200px 0px",threshold:0});return Le.observe(G),()=>Le.disconnect()},[]),(0,Je.useEffect)(()=>{(R.messages[R.messages.length-1]?.role==="user"||Qe.current)&&Ue("smooth")},[R.messages.length,R.messages[R.messages.length-1]]),(0,Je.useEffect)(()=>{Ue("auto")},[Ue]),(0,Je.useEffect)(()=>{if(typeof ResizeObserver>"u")return;let G=v.current,Y=Te.current;if(!G&&!Y)return;let Le=G?.scrollHeight??0,nt=G?.clientHeight??0,Mt=new ResizeObserver(()=>{let ya=v.current;if(!ya)return;let Qa=ya.scrollTop+nt>=Le-5;Le=ya.scrollHeight,nt=ya.clientHeight,Qa&&Ue("auto")});return G&&Mt.observe(G),Y&&Mt.observe(Y),()=>Mt.disconnect()},[Ue]);let oe=UR({messages:R.messages,status:R.status,config:t.suggestions}),ze=(0,Je.useCallback)(G=>{let Y=G.content.map(Le=>Le.text??"").join("").trim();Y&&R.handleSubmit({text:Y,files:[],modelContext:G.modelContext})},[R.handleSubmit]),ce=(0,Je.useCallback)(G=>{oe.clear(),R.handleSubmit({text:G,files:[]})},[oe.clear,R.handleSubmit]);(0,Je.useImperativeHandle)(a,()=>({sendMessage:G=>{R.handleSubmit({text:G,files:[]}),Nt()},sendMessageAndWait:G=>R.sendMessageAndWait(G),reset:R.reset,focus:Nt,get messages(){return R.messages},get sessionId(){return R.sessionId}}),[R.handleSubmit,R.sendMessageAndWait,R.reset,R.messages,R.sessionId,Nt]),(0,Je.useEffect)(()=>{if(!d)return;let G=Y=>{let Le=Y.detail,nt=typeof Le?.message=="string"?Le.message:void 0;nt&&R.handleSubmit({text:nt,files:[]}),Nt()};return window.addEventListener(d,G),()=>window.removeEventListener(d,G)},[d,R.handleSubmit,Nt]);let ye=!w&&!!(S||g||y),be=M||!r;return(0,Ve.jsxs)("div",{ref:fe,style:{..._,maxHeight:"inherit",opacity:be?0:1,transition:"opacity 220ms ease-out"},"data-waniwani-chat":"","data-waniwani-layout":"embed","data-color-scheme":A==="auto"?"auto":void 0,...be?{"data-waniwani-initializing":""}:{},...U?{"data-waniwani-dark":""}:{},className:V("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:[ye&&(0,Ve.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:[S&&(0,Ve.jsx)("div",{className:"ww:text-sm ww:font-semibold ww:truncate ww:flex-1 ww:min-w-0",children:S}),!S&&(0,Ve.jsx)("div",{className:"ww:flex-1"}),g&&(0,Ve.jsx)(NE,{threads:R.threads,activeThreadId:R.activeThreadId,onNewThread:R.startNewThread,onSelectThread:G=>{R.switchThread(G)},onDeleteThread:G=>{R.deleteThread(G)}}),y]}),(0,Ve.jsxs)("div",{ref:v,className:V("ww:relative ww:flex-1 ww:min-h-0",re?"ww:overflow-hidden":"ww:overflow-y-auto"),children:[(0,Ve.jsxs)("div",{ref:Te,className:V("ww:mx-auto ww:w-full ww:max-w-3xl ww:px-4 ww:py-6 ww:flex ww:flex-col ww:gap-6",re&&"ww:!py-0"),children:[(0,Ve.jsx)(_E,{messages:R.messages,status:R.status,welcomeMessage:s,welcome:u,onSuggestionSelect:ce,resourceEndpoint:q,chatSessionId:R.sessionId,isDark:U,onFollowUp:ze,onCallTool:O,fullscreenToolCallId:re,debug:m,showToolCalls:b,toolDefinitions:R.toolDefinitions,onWidgetDisplayModeChange:(G,Y)=>{ge(G==="fullscreen"?Y.toolCallId:null)}}),(0,Ve.jsx)("div",{ref:et,"aria-hidden":!0,style:{height:1}})]}),!L&&!re&&(0,Ve.jsx)("div",{className:"ww:sticky ww:bottom-2 ww:flex ww:justify-center ww:pointer-events-none",children:(0,Ve.jsx)(gn,{type:"button",onClick:()=>Ue("smooth"),size:"icon",variant:"outline",className:"ww:rounded-full ww:shadow ww:pointer-events-auto","aria-label":"Scroll to latest",children:(0,Ve.jsx)(ls,{className:"ww:size-4"})})})]}),!x&&(0,Ve.jsxs)("div",{className:"ww:shrink-0 ww:bg-background",style:re?{display:"none"}:void 0,children:[(0,Ve.jsx)(Yc,{suggestions:oe.suggestions,isLoading:oe.isLoading,onSelect:ce}),(0,Ve.jsx)(wC,{queuedMessages:R.queuedMessages,onRemove:R.removeQueuedMessage}),(0,Ve.jsx)("div",{className:"ww:px-4 ww:pb-2 ww:pt-2",children:(0,Ve.jsxs)("div",{className:"ww:mx-auto ww:w-full ww:max-w-3xl",children:[(0,Ve.jsx)(oC,{onSubmit:R.handleSubmit,globalDrop:i,multiple:i,className:"ww:rounded-2xl ww:border-border ww:bg-input",children:(0,Ve.jsxs)("div",{className:"ww:flex ww:items-center ww:gap-1 ww:pl-4 ww:pr-3 ww:py-2.5",children:[i&&(0,Ve.jsx)(sC,{}),(0,Ve.jsx)(lC,{onChange:R.handleTextChange,value:R.text,placeholder:W,className:"ww:min-h-0 ww:py-1 ww:px-0"}),(0,Ve.jsx)(iC,{status:R.status,disabled:R.queueFull})]})}),(0,Ve.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,Ve.jsx)(OE,{}),(0,Ve.jsx)(uC,{text:C})]})]})})]})]})});var cu=F(Ae(),1);function t9(){if(typeof window>"u")return!1;try{return window.WANIWANI_DEBUG?!0:!!window.localStorage?.getItem("WANIWANI_DEBUG")}catch{return!1}}function ai(...e){t9()&&console.log("[Waniwani]",...e)}var Hw=new Set;function a9(e,t,a){return`${e}|${t}|${a??""}`}function n9(e){try{return`${new URL(e).origin}/api/mcp/events/v2/batch`}catch{return e.replace(/\/$/,"").replace(/\/chat$/,"/events/v2/batch")}}async function qR(e){let{api:t,token:a,channelId:n,mode:r,source:o}=e;if(typeof window>"u"||!t||!a||!o)return;let l=a9(t,a,n);if(!Hw.has(l)){Hw.add(l);try{let i=await uu(),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(n9(t),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:u,keepalive:!0})}catch{Hw.delete(l)}}}var r9="waniwani:config:";function FR(e,t,a){return`${r9}${e}|${t}|${a??""}`}function jw(e,t,a){if(typeof window>"u")return null;try{let n=window.sessionStorage.getItem(FR(e,t,a));if(!n)return null;let r=JSON.parse(n);return r&&typeof r=="object"?r:null}catch{return null}}function o9(e,t,a,n){if(!(typeof window>"u"))try{window.sessionStorage.setItem(FR(e,t,a),JSON.stringify(n))}catch{}}var l9=600;async function i9(e,t,a,n){try{let r=`${e.replace(/\/$/,"")}/config`,o=n?`${r}?channel=${encodeURIComponent(n)}`:r,l=await fetch(o,{method:"GET",headers:{Authorization:`Bearer ${t}`},signal:a});if(!l.ok)return{};let i=await l.json(),s=i&&typeof i=="object"&&"data"in i&&i.data?i.data:i;return s?s9(s):{}}catch{return{}}}function s9(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 Of(e,t,a){let[n,r]=(0,cu.useState)(e),[o,l]=(0,cu.useState)(!1);return(0,cu.useEffect)(()=>{let i=e.api,s=e.token,u=e.channelId;if(!i||!s){l(!0);return}let c=m=>{e.disablePageView||qR({api:i,token:s,channelId:u,mode:e.mode,source:m})},d=jw(i,s,u);if(d)try{let m=rs(t,d,a);r(m),l(!0),ai("config resolved (sessionStorage cache)",{config:m,visibility:m.visibility}),c(d.source)}catch{}let f=new AbortController,p=setTimeout(()=>l(!0),l9);return i9(i,s,f.signal,u).then(m=>{if(!f.signal.aborted){if(ai("remote /config response",m),Object.keys(m).length>0){o9(i,s,u,m);try{let x=rs(t,m,a);r(x),ai("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 Nf=F(Ae(),1);function u9(e){return e?.patterns??e?.rules??[]}var HR="\0\0";function c9(e){let a=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\\\*\\\*/g,HR).replace(/\\\*/g,"[^/]*").split(HR).join(".*");return new RegExp(`^${a}$`)}function d9(e,t){try{return c9(e).test(t)}catch{return!1}}function Pf(e,t){if(!e)return!0;let a=!1;for(let n of u9(e))if(d9(n.glob,t)){if(n.action==="hide")return!1;a=!0}return a?!0:(e.default??"show")!=="hide"}var Vw="waniwani:locationchange",jR=!1;function f9(){if(!(jR||typeof history>"u")){jR=!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(Vw)),r}}}}function p9(e){return f9(),window.addEventListener(Vw,e),window.addEventListener("popstate",e),()=>{window.removeEventListener(Vw,e),window.removeEventListener("popstate",e)}}function m9(){return window.location.pathname}function h9(){return"/"}function g9(){return(0,Nf.useSyncExternalStore)(p9,m9,h9)}function Bf(e,t){let a=g9(),n=t&&Pf(e,a);return(0,Nf.useEffect)(()=>{ai("visibility gate",{pathname:a,ready:t,visible:n,rules:e})},[a,t,n]),n}var At=F(ee(),1),y9=2e3,w9=500,VR=(0,Ze.forwardRef)(function(t,a){return(0,At.jsx)(xs,{locale:t.config.locale,children:(0,At.jsx)(x9,{...t,ref:a})})}),x9=(0,Ze.forwardRef)(function({config:t,programmatic:a,scriptConfig:n},r){let{t:o}=Me(),{config:l,ready:i}=Of(t,a,n),s=Bf(l.visibility,i),u=(0,Ze.useRef)(null),c=(0,Ze.useRef)(null),d=(0,Ze.useRef)(null),[f,p]=(0,Ze.useState)("input"),[m,x]=(0,Ze.useState)(""),[S,y]=(0,Ze.useState)(!1),[w,g]=(0,Ze.useState)(!1),[b,M]=(0,Ze.useState)(0),C=l.appearance?.theme,A=l.appearance?.variables,E=(0,Ze.useMemo)(()=>A?Df(A):{},[A]),_=l.suggestions??[],k=l.launcherText??l.placeholder??o.launcher.prompt,$=Jc(k,m.length===0),U="var(--ww-shadow, 0 10px 30px rgba(0, 0, 0, 0.08))";(0,Ze.useEffect)(()=>{let v=l.appearDelay??y9,Te=setTimeout(()=>y(!0),Math.max(0,v));return()=>clearTimeout(Te)},[l.appearDelay]),(0,Ze.useEffect)(()=>{b>0&&f==="open"&&u.current?.focus()},[b,f]);let R=(0,Ze.useCallback)(()=>{p("open")},[]),O=(0,Ze.useCallback)(()=>{p("input")},[]);(0,Ze.useEffect)(()=>{if(f!=="expanded"){g(!1);return}let v=setTimeout(()=>g(!0),w9);return()=>clearTimeout(v)},[f]),(0,Ze.useEffect)(()=>{if(f!=="expanded")return;let v=Te=>{let et=d.current;et&&!Te.composedPath().includes(et)&&O()};return document.addEventListener("pointerdown",v,!0),()=>document.removeEventListener("pointerdown",v,!0)},[f,O]);let q=(0,Ze.useCallback)(v=>{R();let Te=v.trim();Te&&u.current?.sendMessage(Te)},[R]);(0,Ze.useImperativeHandle)(r,()=>({open:()=>R(),close:()=>O(),toggle:()=>{p(v=>v==="open"?"input":"open")},sendMessage:v=>q(v),sendMessageAndWait:async v=>{R();let Te=u.current;if(Te)return await Te.sendMessageAndWait(v)},reset:()=>u.current?.reset(),focus:()=>{R(),M(v=>v+1)},getMessages:()=>u.current?.messages??[],getSessionId:()=>u.current?.sessionId}),[q,R,O]);let W=(0,Ze.useCallback)(()=>{m.trim()&&(q(m),x(""))},[m,q]),re=(0,Ze.useCallback)(()=>{(u.current?.messages.length??0)>0?(p("open"),M(v=>v+1)):p(v=>v==="input"?"expanded":v)},[]),ge={};l.mcpServerUrl&&(ge.mcpServerUrl=l.mcpServerUrl),l.channelId&&(ge.channelId=l.channelId);let fe=(0,At.jsx)("button",{type:"button",onClick:O,"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,At.jsx)(ps,{className:"ww:size-4"})});return(0,At.jsx)("div",{"data-waniwani-chat":"","data-color-scheme":C==="auto"?"auto":void 0,className:V("ww:contents ww:font-[family-name:var(--ww-font-sans)]",C==="dark"&&"dark"),style:E,children:s&&(0,At.jsxs)(At.Fragment,{children:[(0,At.jsxs)("div",{ref:d,"data-waniwani-floating":"dock","data-state":f==="open"?"hidden":"shown","data-appeared":S?"true":"false",className:V("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:gap-1","ww:w-[calc(100vw-2rem)] ww:transition-[max-width] ww:duration-300 ww:ease-out",f==="input"?"ww:max-w-[440px]":"ww:max-w-[720px]"),children:[_.length>0&&(0,At.jsx)("div",{className:V("ww:origin-bottom ww:transition-all ww:duration-300 ww:ease-out",w?"ww:max-h-96 ww:translate-y-0 ww:opacity-100":"ww:pointer-events-none ww:max-h-0 ww:translate-y-2 ww:overflow-hidden ww:opacity-0"),children:(0,At.jsx)(Yc,{suggestions:_,onSelect:q,className:"ww:px-1 ww:pb-1.5 ww:pt-0"})}),(0,At.jsx)(W0,{animated:S,backgroundColor:"var(--ww-color-input)",borderRadius:16,edgeSensitivity:30,coneSpread:25,colors:["#c084fc","#f472b6","#38bdf8"],className:"ww:border-border",style:{boxShadow:U},children:(0,At.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,At.jsx)("input",{ref:c,type:"text",value:m,placeholder:$,onChange:v=>x(v.target.value),onFocus:re,onKeyDown:v=>{v.key==="Enter"&&!v.shiftKey&&(v.preventDefault(),W())},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,At.jsx)("button",{type:"button",onClick:W,disabled:!m.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,At.jsx)(ho,{className:"ww:size-4"})})]})})]}),(0,At.jsx)("div",{role:"dialog","aria-label":l.title??k,"data-waniwani-floating":"panel","data-state":f==="open"?"shown":"hidden",style:{boxShadow:U},className:V("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,At.jsx)(_f,{ref:u,api:l.api??"",headers:{Authorization:`Bearer ${l.token}`},skipRemoteConfig:!0,body:Object.keys(ge).length>0?ge:void 0,appearance:l.appearance,title:l.title,headerActions:fe,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 $R=F(ee(),1),GR=(0,ar.forwardRef)(function({config:t,programmatic:a,scriptConfig:n,onReady:r,onVisibilityChange:o},l){let{config:i,ready:s}=Of(t,a,n),u=(0,ar.useRef)(null);(0,ar.useEffect)(()=>{r?.()},[]);let c=Bf(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,$R.jsx)(_f,{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 Gw="/*! 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-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--ww-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--ww-color-blue-400:oklch(70.7% .165 254.624);--ww-spacing:.25rem;--ww-container-sm:24rem;--ww-container-md:28rem;--ww-container-3xl:48rem;--ww-text-xs:.75rem;--ww-text-xs--line-height:calc(1/.75);--ww-text-sm:.875rem;--ww-text-sm--line-height:calc(1.25/.875);--ww-text-base:1rem;--ww-text-base--line-height:calc(1.5/1);--ww-text-lg:1.125rem;--ww-text-lg--line-height:calc(1.75/1.125);--ww-font-weight-medium:500;--ww-font-weight-semibold:600;--ww-tracking-wide:.025em;--ww-tracking-wider:.05em;--ww-radius-md:.375rem;--ww-radius-lg:.5rem;--ww-radius-xl:.75rem;--ww-radius-2xl:1rem;--ww-ease-out:cubic-bezier(0,0,.2,1);--ww-animate-spin:spin 1s linear infinite;--ww-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--ww-default-transition-duration:.15s;--ww-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--ww-default-font-family:var(--ww-font-sans,system-ui,-apple-system,\"Segoe UI\",sans-serif);--ww-default-mono-font-family:var(--ww-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ww-default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--ww-default-font-feature-settings,normal);font-variation-settings:var(--ww-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ww-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--ww-default-mono-font-feature-settings,normal);font-variation-settings:var(--ww-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.ww\\:pointer-events-auto{pointer-events:auto}.ww\\:pointer-events-none{pointer-events:none}.ww\\:\\!relative{position:relative!important}.ww\\:absolute{position:absolute}.ww\\:fixed{position:fixed}.ww\\:relative{position:relative}.ww\\:sticky{position:sticky}.ww\\:inset-0{inset:calc(var(--ww-spacing)*0)}.ww\\:top-full{top:100%}.ww\\:right-0{right:calc(var(--ww-spacing)*0)}.ww\\: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-7{height:calc(var(--ww-spacing)*7)}.ww\\:h-8{height:calc(var(--ww-spacing)*8)}.ww\\:h-9{height:calc(var(--ww-spacing)*9)}.ww\\:h-16{height:calc(var(--ww-spacing)*16)}.ww\\:h-auto{height:auto}.ww\\:h-full{height:100%}.ww\\:max-h-0{max-height:calc(var(--ww-spacing)*0)}.ww\\:max-h-48{max-height:calc(var(--ww-spacing)*48)}.ww\\:max-h-80{max-height:calc(var(--ww-spacing)*80)}.ww\\:max-h-96{max-height:calc(var(--ww-spacing)*96)}.ww\\:min-h-0{min-height:calc(var(--ww-spacing)*0)}.ww\\:min-h-full{min-height:100%}.ww\\:w-72{width:calc(var(--ww-spacing)*72)}.ww\\:w-\\[calc\\(100vw-2rem\\)\\]{width:calc(100vw - 2rem)}.ww\\:w-auto{width:auto}.ww\\:w-fit{width:fit-content}.ww\\:w-full{width:100%}.ww\\: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\\:origin-bottom{transform-origin:bottom}.ww\\:translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:translate-y-0{--tw-translate-y:calc(var(--ww-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:translate-y-2{--tw-translate-y:calc(var(--ww-spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:rotate-90{rotate:90deg}.ww\\:rotate-180{rotate:180deg}.ww\\:animate-\\[ww-fade-in_0\\.2s_ease-out_both\\]{animation:.2s ease-out both ww-fade-in}.ww\\:animate-pulse{animation:var(--ww-animate-pulse)}.ww\\:animate-spin{animation:var(--ww-animate-spin)}.ww\\:cursor-pointer{cursor:pointer}.ww\\:resize-none{resize:none}.ww\\:grid-rows-\\[0fr\\]{grid-template-rows:0fr}.ww\\:grid-rows-\\[1fr\\]{grid-template-rows:1fr}.ww\\:flex-col{flex-direction:column}.ww\\:flex-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-\\[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\\: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-1{padding:calc(var(--ww-spacing)*1)}.ww\\:p-1\\.5{padding:calc(var(--ww-spacing)*1.5)}.ww\\:p-3{padding:calc(var(--ww-spacing)*3)}.ww\\:px-0{padding-inline:calc(var(--ww-spacing)*0)}.ww\\:px-1{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-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-0{padding-top:calc(var(--ww-spacing)*0)}.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-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\\: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);border-style:solid;border-width:var(--ww-border-width,0);border-color:var(--ww-color-border);box-shadow:var(--ww-shadow,none)}.dark [data-waniwani-chat],[data-waniwani-chat].dark{--ww-color-background:var(--ww-bg,#212121);--ww-color-foreground:var(--ww-text,#ececec);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#fff);--ww-color-muted-foreground:var(--ww-muted,#8e8ea0);--ww-color-border:var(--ww-border,#444);--ww-color-input:var(--ww-input-bg,#2f2f2f);--ww-color-accent:var(--ww-assistant-bubble,#2f2f2f);--ww-color-accent-foreground:var(--ww-text,#ececec);--ww-color-user-bubble:var(--ww-user-bubble,#303030);--ww-color-card:var(--ww-bg,#212121);--ww-color-card-foreground:var(--ww-text,#ececec);--ww-color-card-header:var(--ww-header-bg,#1e1e1e);--ww-color-card-header-foreground:var(--ww-header-text,#ececec);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#262626)}@media (prefers-color-scheme:dark){[data-waniwani-chat][data-color-scheme=auto]{--ww-color-background:var(--ww-bg,#212121);--ww-color-foreground:var(--ww-text,#ececec);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#fff);--ww-color-muted-foreground:var(--ww-muted,#8e8ea0);--ww-color-border:var(--ww-border,#444);--ww-color-input:var(--ww-input-bg,#2f2f2f);--ww-color-accent:var(--ww-assistant-bubble,#2f2f2f);--ww-color-accent-foreground:var(--ww-text,#ececec);--ww-color-user-bubble:var(--ww-user-bubble,#303030);--ww-color-card:var(--ww-bg,#212121);--ww-color-card-foreground:var(--ww-text,#ececec);--ww-color-card-header:var(--ww-header-bg,#1e1e1e);--ww-color-card-header-foreground:var(--ww-header-text,#ececec);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#262626)}}[data-waniwani-chat] [data-streamdown=table-wrapper]{flex-direction:column;gap:.5rem;margin-top:1rem;margin-bottom:1rem;display:flex}[data-waniwani-chat] [data-streamdown=table-wrapper]>div:first-child:has(button){justify-content:flex-end;align-items:center;gap:.25rem;display:flex}[data-waniwani-chat] [data-streamdown=table-wrapper]>div:last-child{overflow-x:auto}[data-waniwani-chat] [data-streamdown=table]{border-collapse:collapse;border:1px solid var(--ww-color-border);border-radius:.75rem;width:100%;overflow:hidden}[data-waniwani-chat] [data-streamdown=table-header]{background-color:var(--ww-color-accent)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=table-header]{background-color:color-mix(in srgb,var(--ww-color-accent)80%,transparent)}}[data-waniwani-chat] [data-streamdown=table-body]{background-color:var(--ww-color-accent)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=table-body]{background-color:color-mix(in srgb,var(--ww-color-accent)40%,transparent)}}[data-waniwani-chat] [data-streamdown=table-body]>tr+tr{border-top:1px solid var(--ww-color-border)}[data-waniwani-chat] [data-streamdown=table-row]{border-bottom:1px solid var(--ww-color-border)}[data-waniwani-chat] [data-streamdown=table-header-cell]{white-space:nowrap;text-align:left;padding:.5rem 1rem;font-size:.875rem;font-weight:600}[data-waniwani-chat] [data-streamdown=table-cell]{padding:.5rem 1rem;font-size:.875rem}[data-waniwani-chat] [data-streamdown=link]{color:var(--ww-color-primary);overflow-wrap:anywhere;cursor:pointer;font-weight:500;text-decoration:underline}[data-waniwani-chat].dark [data-streamdown=link],.dark [data-waniwani-chat] [data-streamdown=link]{color:var(--ww-color-primary)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat].dark [data-streamdown=link],.dark [data-waniwani-chat] [data-streamdown=link]{color:color-mix(in oklab,var(--ww-color-primary)55%,white)}}@media (prefers-color-scheme:dark){[data-waniwani-chat][data-color-scheme=auto] [data-streamdown=link]{color:var(--ww-color-primary)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat][data-color-scheme=auto] [data-streamdown=link]{color:color-mix(in oklab,var(--ww-color-primary)55%,white)}}}[data-waniwani-chat].dark [data-waniwani-logo],.dark [data-waniwani-chat] [data-waniwani-logo]{filter:invert()}@media (prefers-color-scheme:dark){[data-waniwani-chat][data-color-scheme=auto] [data-waniwani-logo]{filter:invert()}}[data-waniwani-chat] [data-streamdown=link-safety-modal]{z-index:50;background-color:var(--ww-color-background);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=link-safety-modal]{background-color:color-mix(in srgb,var(--ww-color-background)50%,transparent)}}[data-waniwani-chat] [data-streamdown=link-safety-modal]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div{border:1px solid var(--ww-color-border);background-color:var(--ww-color-background);width:100%;max-width:28rem;color:var(--ww-color-foreground);border-radius:.75rem;flex-direction:column;gap:1rem;margin:0 1rem;padding:1.5rem;display:flex;position:relative;box-shadow:0 10px 25px #0000001a}[data-waniwani-chat] [data-streamdown=link-safety-modal] button{cursor:pointer}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>button:first-child{color:var(--ww-color-muted-foreground);background:0 0;border:none;border-radius:.375rem;padding:.25rem;transition:background-color .15s,color .15s;position:absolute;top:1rem;right:1rem}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>button:first-child:hover{background-color:var(--ww-color-accent);color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type{flex-direction:column;gap:.5rem;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type>div{align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type>p{color:var(--ww-color-muted-foreground);font-size:.875rem}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:nth-child(3){word-break:break-all;background-color:var(--ww-color-accent);border-radius:.375rem;max-height:8rem;padding:.75rem;font-family:ui-monospace,monospace;font-size:.875rem;overflow-y:auto}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child{gap:.5rem;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button{border:none;border-radius:.375rem;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .15s;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:first-child{border:1px solid var(--ww-color-border);background-color:var(--ww-color-background);color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:first-child:hover{background-color:var(--ww-color-accent)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:last-child{background-color:var(--ww-color-primary);color:#fff}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:last-child:hover{opacity:.9}[data-waniwani-chat] [data-streamdown=ordered-list]{white-space:normal;list-style-type:decimal;list-style-position:inside}[data-waniwani-chat] li [data-streamdown=ordered-list]{padding-left:1.5rem}[data-waniwani-chat] [data-streamdown=unordered-list]{white-space:normal;list-style-type:disc;list-style-position:inside}[data-waniwani-chat] li [data-streamdown=unordered-list]{padding-left:1.5rem}[data-waniwani-chat] [data-streamdown=list-item]{padding-top:.25rem;padding-bottom:.25rem}[data-waniwani-chat] [data-streamdown=list-item]>p{display:inline}[data-waniwani-chat] [data-streamdown=inline-code]{background-color:var(--ww-color-accent);border-radius:.25rem;padding:.125rem .375rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:.875rem}[data-waniwani-chat] [data-streamdown=heading-1]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.875rem;font-weight:600;line-height:2.25rem}[data-waniwani-chat] [data-streamdown=heading-2]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.5rem;font-weight:600;line-height:2rem}[data-waniwani-chat] [data-streamdown=heading-3]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.25rem;font-weight:600;line-height:1.75rem}[data-waniwani-chat] [data-streamdown=heading-4]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.125rem;font-weight:600;line-height:1.75rem}[data-waniwani-chat] [data-streamdown=heading-5]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1rem;font-weight:600;line-height:1.5rem}[data-waniwani-chat] [data-streamdown=heading-6]{margin-top:1.5rem;margin-bottom:.5rem;font-size:.875rem;font-weight:600;line-height:1.25rem}[data-waniwani-chat] [data-streamdown=blockquote]{border-left:4px solid var(--ww-color-muted-foreground);margin-top:1rem;margin-bottom:1rem}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=blockquote]{border-left:4px solid color-mix(in srgb,var(--ww-color-muted-foreground)30%,transparent)}}[data-waniwani-chat] [data-streamdown=blockquote]{color:var(--ww-color-muted-foreground);padding-left:1rem;font-style:italic}[data-waniwani-chat] [data-streamdown=horizontal-rule]{border-color:var(--ww-color-border);margin-top:1.5rem;margin-bottom:1.5rem}[data-waniwani-chat] [data-streamdown=strong]{font-weight:600}[data-waniwani-chat] [data-streamdown=image-wrapper]{margin-top:1rem;margin-bottom:1rem;display:inline-block;position:relative}[data-waniwani-chat] [data-streamdown=image]{border-radius:.5rem;max-width:100%}[data-waniwani-chat] [data-streamdown=code-block]{border:1px solid var(--ww-color-border);border-radius:.75rem;width:100%;margin-top:1rem;margin-bottom:1rem;overflow:hidden}[data-waniwani-chat] [data-streamdown=code-block-header]{background-color:var(--ww-color-accent);justify-content:space-between;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=code-block-header]{background-color:color-mix(in srgb,var(--ww-color-accent)80%,transparent)}}[data-waniwani-chat] [data-streamdown=code-block-header]{color:var(--ww-color-muted-foreground);padding:.75rem;font-size:.75rem}[data-waniwani-chat] [data-streamdown=code-block-body]{padding:1rem;font-size:.875rem;overflow-x:auto}[data-waniwani-chat] [data-streamdown=code-block-copy-button],[data-waniwani-chat] [data-streamdown=code-block-download-button]{cursor:pointer;color:var(--ww-color-muted-foreground);background:0 0;border:none;padding:.25rem;transition:color .15s}[data-waniwani-chat] [data-streamdown=code-block-copy-button]:hover,[data-waniwani-chat] [data-streamdown=code-block-download-button]:hover{color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=mermaid-block]{border:1px solid var(--ww-color-border);border-radius:.75rem;height:auto;margin-top:1rem;margin-bottom:1rem;padding:1rem;position:relative}[data-waniwani-chat] [data-streamdown=mermaid]{width:100%;height:100%}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-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,Uf=null,v9="waniwani-chat-sizing",b9="waniwani-chat-defaults",S9="waniwani-chat-chrome",C9="waniwani-chat-auto-card",I9=`:where([data-waniwani-embed]){height:${U0}}`,L9=":where([data-waniwani-embed]){border-radius:16px;overflow:hidden}",k9=":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)}",T9=":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 zf(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 A9(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 ZR(e,t){if(Gw&&Gw!=="__WANIWANI_EMBED_CSS__"){let n=document.createElement("style");n.textContent=Gw,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 WR="data-waniwani-embed",$w="data-waniwani-auto";function M9(e){let t=document.querySelector(`[${WR}]`);if(t)return t;let a=document.createElement("div");a.setAttribute(WR,""),a.setAttribute($w,"");let n=e?!!document.head?.contains(e):!1;return e?.parentNode&&!n?e.parentNode.insertBefore(a,e):document.body.appendChild(a),a}function E9(e){return/^\d+$/.test(e.trim())?`${e.trim()}px`:e.trim()}function R9(e,t,a,n){let r=M9(n);zf(v9,I9),e.height&&r instanceof HTMLElement&&(r.style.height=E9(e.height)),e.appearance?.theme&&zf(b9,L9),zf(S9,k9),r.hasAttribute($w)&&zf(C9,T9),A9(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(),Uf=new ResizeObserver(l),Uf.observe(r);let i=la.attachShadow({mode:"open"});ZR(i,e);let s=document.createElement("div");s.className="ww:contents",i.appendChild(s);let u=du.default.createRef(),c=d=>{r instanceof HTMLElement&&(r.style.display=d?"":"none")};if(e.token){let d=jw(e.api??"",e.token,e.channelId);d?.visibility&&!Pf(d.visibility,window.location.pathname)&&c(!1)}return Wr=Ww.default.createRoot(s),Wr.render(du.default.createElement(GR,{ref:u,config:e,programmatic:t,scriptConfig:a,onVisibilityChange:c})),{destroy:()=>{Uf?.disconnect(),Uf=null,Wr?.unmount(),Wr=null,la?.remove(),la=null,r.hasAttribute($w)&&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 D9(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"});ZR(n,e);let r=document.createElement("div");r.className="ww:contents",n.appendChild(r);let o=du.default.createRef();return Wr=Ww.default.createRoot(r),Wr.render(du.default.createElement(VR,{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 QR(e){if(Ft)return console.warn("[Waniwani] Chat widget is already initialized. Call destroy() first to re-initialize."),Ft;let t=Ah(),a=Wc(),n=rs(e,void 0,a);return Ft=n.mode==="floating"?D9(n,e,a):R9(n,e,a,t),Ft}function _9(){Ft&&Ft.destroy()}window.WaniWani=window.WaniWani||{};window.WaniWani.chat={init:QR,destroy:_9,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 XR(){if(Wc().token)try{QR()}catch(t){console.error("[Waniwani] Auto-initialization failed:",t)}}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",XR):XR();})();
|
|
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=PH(f.error);if(p?.length){let m={...d};for(let S of p)delete m[S];let x=await r(m);x.success&&l.enqueue(x.value)}}catch{}}}}))}};var NH="waniwani-memory";var Ra="threads",Tf="by_memoryUserId",BH="by_updatedAt";var kR="memoryUserId",LR="waniwani-memory-user-id",Pw=null;function Nw(){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 UH(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(Tf,"memoryUserId",{unique:!1}),a.createIndex(BH,"updatedAt",{unique:!1})}}async function Bw(){return new Promise((e,t)=>{let a=indexedDB.open(NH,2);a.onupgradeneeded=n=>{UH(a.result,n.oldVersion)},a.onsuccess=()=>e(a.result),a.onerror=()=>t(a.error)})}async function zH(){return Bw()}async function qH(e){return new Promise((t,a)=>{let o=e.transaction("ids","readonly").objectStore("ids").get(kR);o.onsuccess=()=>t(typeof o.result=="string"?o.result:null),o.onerror=()=>a(o.error)})}async function FH(e,t){return new Promise((a,n)=>{let l=e.transaction("ids","readwrite").objectStore("ids").put(t,kR);l.onsuccess=()=>a(),l.onerror=()=>n(l.error)})}async function HH(){if(typeof indexedDB>"u")return null;try{let e=await zH();try{let t=await qH(e);if(t)return t;let a=Nw();return await FH(e,a),a}finally{e.close()}}catch{return null}}function jH(){try{let e=localStorage.getItem(LR);if(e)return e;let t=Nw();return localStorage.setItem(LR,t),t}catch{return null}}async function TR(){let e=await HH();if(e)return e;let t=jH();return t||(Pw||(Pw=Nw()),Pw)}var AR=50,MR=1e3;function Af(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 Mf(e){if(typeof indexedDB>"u")return null;let t=null;try{return t=await Bw(),await e(t)}catch{return null}finally{try{t?.close()}catch{}}}function Uw(e){return new Promise((t,a)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>a(e.error)})}async function zw(e){return await Mf(async a=>{let o=a.transaction(Ra,"readonly").objectStore(Ra).index(Tf),i=(await Uw(o.getAll(e))??[]).filter(Af);return i.sort((s,u)=>s.updatedAt<u.updatedAt?1:-1),i})??[]}async function Ef(e){return await Mf(async a=>{let r=a.transaction(Ra,"readonly").objectStore(Ra),o=await Uw(r.get(e));return Af(o)?o:null})??null}async function qw(e){if(!Af(e))return;let t=e.messages.length>MR?{...e,messages:e.messages.slice(e.messages.length-MR)}:e;await Mf(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(Tf),i=(await Uw(o.getAll(t.memoryUserId))??[]).filter(Af);if(i.length>AR){i.sort((u,c)=>u.updatedAt<c.updatedAt?-1:1);let s=i.slice(0,i.length-AR);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 ER(e){await Mf(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 Fw(e){return(await zw(e))[0]?.threadId??null}function RR(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 DR="waniwani-visitor-id";function _R(e,t){return e.match(t)?.[1]??null}function VH(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=_R(e,n);if(r)return{name:a,version:r}}return null}function GH(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=_R(e,n);if(r)return{name:a,version:r.replace(/_/g,".")};if(a==="Linux"&&n.test(e))return{name:a,version:""}}return null}function $H(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 WH(e){let t=new TextEncoder().encode(e),a=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(a)).map(n=>n.toString(16).padStart(2,"0")).join("")}async function XH(){try{let a=localStorage.getItem(DR);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 WH(e);try{localStorage.setItem(DR,t)}catch{}return t}async function uu(){let e=navigator.userAgent,[t,a]=await Promise.all([XH(),TR()]);return{userAgent:e,browser:VH(e),os:GH(e),deviceType:$H(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 ZH="x-session-id",QH=250;function OR(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():vs()}function Rf(){return new Date().toISOString()}function PR(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}async function KH(e,t){let a=`${e.replace(/\/$/,"")}/tools`,n=await fetch(a,{method:"GET",headers:t?{...t}:void 0});if(!n.ok)throw new Error(`[Waniwani] Failed to fetch /tools: ${n.status} ${n.statusText}`);let r=await n.json();if(!r||!Array.isArray(r.tools))return{};let o={};for(let l of r.tools)l&&typeof l.name=="string"&&(o[l.name]=l);return o}function NR(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),S=(0,Z.useRef)(m),[y,w]=(0,Z.useState)(i),g=(0,Z.useRef)(y),[b,M]=(0,Z.useState)([]),[C,A]=(0,Z.useState)(!l),E=(0,Z.useRef)(void 0),_=(0,Z.useRef)(void 0),k=(0,Z.useRef)(void 0),$=(0,Z.useRef)(void 0),U=(0,Z.useRef)(0),R=(0,Z.useRef)(s);(0,Z.useEffect)(()=>{R.current=s},[s]);let O=(0,Z.useCallback)(B=>{g.current=B,w(B),B&&R.current?.(B)},[]),q=(0,Z.useCallback)(async()=>{if(!l)return;let B=p.current?.memoryUserId;if(!B)return;let ae=await zw(B);M(ae)},[l]),W=(0,Z.useCallback)(()=>S.current,[]),re=(0,Z.useCallback)(B=>{let ae=PR(B);ae&&S.current!==ae&&(S.current=ae,x(ae))},[]),ge=(0,Z.useCallback)(()=>{S.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,ae=U.current;return(async()=>{try{let dt=await uu();if(B)return;p.current=dt}catch{}if(!l)return;let J=p.current?.memoryUserId;if(!J){A(!0);return}try{let dt=i??await Fw(J);if(B||ae!==U.current)return;if(dt){let Ge=await Ef(dt);if(B||ae!==U.current)return;Ge&&Ge.memoryUserId===J&&(g.current=Ge.threadId,w(Ge.threadId),E.current=Ge.createdAt,_.current=Ge.title,Ge.sessionId&&(S.current=Ge.sessionId,x(Ge.sessionId)),ze(Ge.messages))}await q()}finally{B||A(!0)}})(),()=>{B=!0}},[]);let fe=(0,Z.useRef)(new kf({api:t,headers:()=>({...u.current}),body:()=>{let B={...c.current??{}},ae=Object.hasOwn(B,"sessionId"),J=PR(B.sessionId);if(J)re(J),B.sessionId=J;else if(ae)ge(),delete B.sessionId;else{let Da=W();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:{},KR=typeof Ln.client=="object"&&Ln.client!==null?Ln.client:{};B.visitor={...Ln,id:Da.visitorId,client:{...KR,memoryUserId:Da.memoryUserId}}}let dt=typeof B.extra=="object"&&B.extra!==null&&!Array.isArray(B.extra)?B.extra:void 0,Ge=p.current?.memoryUserId,Et=p.current?.language,mu={};if(Ge&&(mu.memoryUserId=Ge),Et&&(mu.locale=Et),(Object.keys(mu).length>0||dt)&&(B.extra={...mu,...dt??{}}),d.current)if(Object.hasOwn(B,"threadId"))typeof B.threadId=="string"&&(g.current=B.threadId);else{let Ln=g.current;Ln||(Ln=OR(),E.current=Rf(),_.current=void 0,O(Ln)),B.threadId=Ln}return B},fetch:(async(B,ae)=>{let J=await fetch(B,ae);return f.current=void 0,re(J.headers.get(ZH)),J})})),v=(0,Z.useRef)(null),Te=(0,Z.useRef)(null),et=(0,Z.useRef)({}),[L,wt]=(0,Z.useState)(0),Qe=e.skipRemoteConfig===!0,Nt=(0,Z.useCallback)(async()=>{if(!Qe)try{let B=await KH(t,u.current);et.current=B,wt(ae=>ae+1)}catch(B){console.warn("[Waniwani] Failed to fetch tool definitions:",B instanceof Error?B.message:B)}},[t,Qe]);(0,Z.useEffect)(()=>{Nt()},[Nt]);let{messages:Ue,sendMessage:oe,setMessages:ze,status:ce}=IR({messages:e.initialMessages,transport:fe.current,onFinish({message:B}){o?.(),v.current&&(Te.current=B)},onError(B){console.warn("[Waniwani] Chat error:",B.message),v.current&&(v.current.reject(B),v.current=null)}}),ye=(0,Z.useRef)(Ue);(0,Z.useEffect)(()=>{ye.current=Ue},[Ue]);let be=(0,Z.useRef)(l);(0,Z.useEffect)(()=>{if(!l||be.current||(be.current=!0,ye.current.length>0))return;let B=!1,ae=U.current;return A(!1),(async()=>{try{let J=p.current;if(!J)try{J=await uu(),p.current=J}catch{}let dt=J?.memoryUserId;if(!dt||B||ae!==U.current){B||A(!0);return}let Ge=i??await Fw(dt);if(B||ae!==U.current)return;if(Ge){let Et=await Ef(Ge);if(B||ae!==U.current)return;Et&&Et.memoryUserId===dt&&(g.current=Et.threadId,w(Et.threadId),E.current=Et.createdAt,_.current=Et.title,Et.sessionId&&(S.current=Et.sessionId,x(Et.sessionId)),ze(Et.messages))}await q()}finally{B||A(!0)}})(),()=>{B=!0}},[l]),(0,Z.useEffect)(()=>{if(ce==="ready"&&v.current&&Te.current){let B=v.current,ae=Te.current;v.current=null,Te.current=null,B.resolve(ae)}},[ce]);let[G,Y]=(0,Z.useState)(""),[Le,nt]=(0,Z.useState)([]),Mt=ce==="submitted"||ce==="streaming",ya=(0,Z.useCallback)(B=>{nt(ae=>ae.filter(J=>J.id!==B))},[]),Qa=Mt&&Le.length>0,fu=(0,Z.useCallback)(B=>{let ae=!!B.text?.trim(),J=!!B.files?.length;if(ae||J){if(Mt){if(Le.length>0)return;nt(dt=>[...dt,{id:vs(),text:B.text||"",files:B.files??[],modelContext:B.modelContext}]),Y("");return}f.current=B.modelContext,oe({text:B.text||"",files:B.files}),r?.(B.text||""),Y("")}},[oe,r,Mt,Le.length]),qf=(0,Z.useCallback)(B=>new Promise((ae,J)=>{v.current={resolve:ae,reject:J},oe({text:B}),r?.(B)}),[oe,r]);(0,Z.useEffect)(()=>{if(ce!=="ready"||Le.length===0)return;let[B,...ae]=Le;nt(ae),f.current=B.modelContext,oe({text:B.text,files:B.files.length>0?B.files:void 0}),r?.(B.text)},[ce,oe,r,Le]);let Ff=(0,Z.useCallback)(()=>{ze([]),nt([]),ge(),Y(""),et.current={},wt(B=>B+1),Nt()},[ze,ge,Nt]),zo=(0,Z.useCallback)(()=>{if(!d.current)return;let B=p.current?.memoryUserId,ae=g.current,J=ye.current;if(!(!B||!ae||J.length===0)){if(E.current||(E.current=Rf()),!_.current){let dt=J.find(Et=>Et.role==="user"),Ge=dt?dt.parts.map(Et=>"text"in Et&&typeof Et.text=="string"?Et.text:"").join(" "):"";_.current=RR(Ge)}return{threadId:ae,memoryUserId:B,title:_.current,messages:J,sessionId:S.current,createdAt:E.current,updatedAt:Rf()}}},[]),pu=(0,Z.useCallback)(async()=>{let B=zo();B&&(await qw(B),await q())},[zo,q]);(0,Z.useEffect)(()=>{if(l&&C&&!(ce==="submitted"||ce==="streaming")&&Ue.length!==0)return k.current&&clearTimeout(k.current),k.current=setTimeout(()=>{k.current=void 0;let B=pu().finally(()=>{$.current===B&&($.current=void 0)});$.current=B},QH),()=>{k.current&&clearTimeout(k.current)}},[l,C,Ue,ce,pu]);let qo=(0,Z.useCallback)(()=>{let B=$.current,ae=k.current,J=ae?zo():void 0;return ae&&(clearTimeout(ae),k.current=void 0),(async()=>{B&&await B,J&&(await qw(J),await q())})()},[zo,q]),P=(0,Z.useCallback)(()=>{U.current+=1,qo(),ze([]),nt([]),ge(),Y("");let B=OR();return E.current=Rf(),_.current=void 0,O(B),q(),B},[ze,ge,O,q,qo]),H=(0,Z.useCallback)(async B=>{U.current+=1;let ae=U.current;if(await qo(),ae!==U.current)return;let J=await Ef(B);ae===U.current&&J&&(O(J.threadId),E.current=J.createdAt,_.current=J.title,J.sessionId?(S.current=J.sessionId,x(J.sessionId)):ge(),ze(J.messages),nt([]),Y(""))},[ze,ge,O,qo]),le=(0,Z.useCallback)(async B=>{if(g.current===B){U.current+=1,k.current&&(clearTimeout(k.current),k.current=void 0);let ae=$.current;ae&&await ae}await ER(B),await q(),g.current===B&&(ze([]),nt([]),ge(),Y(""),g.current=void 0,w(void 0),E.current=void 0,_.current=void 0)},[ze,ge,q]);(0,Z.useEffect)(()=>{l&&C&&i!==void 0&&i!==g.current&&H(i)},[i,l,C,H]);let we=(0,Z.useCallback)(B=>{Y(B.target.value)},[]),Be=Ue[Ue.length-1],ia=Ue.length>0,In=Mt&&(!ia||Be.role==="user"),Ka=et.current;return{messages:Ue,status:ce,text:G,setText:Y,handleSubmit:fu,handleTextChange:we,isLoading:Mt,showLoaderBubble:In,lastMessage:Be,hasMessages:ia,sendMessage:oe,sendMessageAndWait:qf,reset:Ff,queuedMessages:Le,queueFull:Qa,removeQueuedMessage:ya,sessionId:m,toolDefinitions:Ka,refreshToolDefinitions:Nt,threads:b,activeThreadId:y,isThreadHistoryReady:C,startNewThread:P,switchThread:H,deleteThread:le}}var Cn=F(Ae(),1);function YH(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 BR(e){return typeof e=="object"&&e!==null&&"initial"in e}function UR(e){let{messages:t,status:a,config:n}=e,r=BR(n)&&n.initial?n.initial:void 0,[o,l]=(0,Cn.useState)(r??[]),i=(0,Cn.useRef)(a),s=n===!0||BR(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=YH(p);m&&l(m)}},[a,s,t]),{suggestions:o,isLoading:!1,clear:u}}function zR(e,t){let a=t?.Authorization,n=typeof a=="string"&&a.startsWith("Bearer ")?a.slice(7):null;return n?`${e}/resource?token=${encodeURIComponent(n)}`:`${e}/resource`}var JH={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 Df(e){let t={};for(let[a,n]of Object.entries(JH)){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 Ve=F(ee(),1),_f=(0,Je.forwardRef)(function(t,a){let{locale:n,messages:r}=t;return(0,Ve.jsx)(xs,{locale:n,messages:r,children:(0,Ve.jsx)(e9,{...t,ref:a})})}),e9=(0,Je.forwardRef)(function(t,a){let{t:n,ready:r}=Me(),{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:S,headerActions:y,hideHeader:w=!1,enableThreadHistory:g=!1,showToolCalls:b=!0,initializing:M=!1,disclaimer:C}=t,A=o?.theme,E=o?.variables,_=E?Df(E):{},[k,$]=(0,Je.useState)(!1);(0,Je.useEffect)(()=>{if(A!=="auto"||typeof window>"u")return;let G=window.matchMedia("(prefers-color-scheme: dark)");$(G.matches);let Y=()=>$(G.matches);return G.addEventListener("change",Y),()=>G.removeEventListener("change",Y)},[A]);let U=A==="dark"||A==="auto"&&k,R=NR({...t,api:f}),O=BE({...t,api:f,sessionId:R.sessionId,onCallTool:p?.onCallTool}),q=p?.resourceEndpoint??zR(f,t.headers),W=Jc(c,!R.text),[re,ge]=(0,Je.useState)(null),fe=(0,Je.useRef)(null),v=(0,Je.useRef)(null),Te=(0,Je.useRef)(null),et=(0,Je.useRef)(null),[L,wt]=(0,Je.useState)(!0),Qe=(0,Je.useRef)(L);Qe.current=L;let Nt=(0,Je.useCallback)(()=>{let G=fe.current;if(!G)return;let Y=G.querySelector("textarea");Y&&Y.focus()},[]),Ue=(0,Je.useCallback)((G="smooth")=>{let Y=v.current;Y&&Y.scrollTo({top:Y.scrollHeight,behavior:G})},[]);(0,Je.useEffect)(()=>{let G=et.current,Y=v.current;if(!G||!Y)return;let Le=new IntersectionObserver(([nt])=>wt(nt.isIntersecting),{root:Y,rootMargin:"0px 0px 200px 0px",threshold:0});return Le.observe(G),()=>Le.disconnect()},[]),(0,Je.useEffect)(()=>{(R.messages[R.messages.length-1]?.role==="user"||Qe.current)&&Ue("smooth")},[R.messages.length,R.messages[R.messages.length-1]]),(0,Je.useEffect)(()=>{Ue("auto")},[Ue]),(0,Je.useEffect)(()=>{if(typeof ResizeObserver>"u")return;let G=v.current,Y=Te.current;if(!G&&!Y)return;let Le=G?.scrollHeight??0,nt=G?.clientHeight??0,Mt=new ResizeObserver(()=>{let ya=v.current;if(!ya)return;let Qa=ya.scrollTop+nt>=Le-5;Le=ya.scrollHeight,nt=ya.clientHeight,Qa&&Ue("auto")});return G&&Mt.observe(G),Y&&Mt.observe(Y),()=>Mt.disconnect()},[Ue]);let oe=UR({messages:R.messages,status:R.status,config:t.suggestions}),ze=(0,Je.useCallback)(G=>{let Y=G.content.map(Le=>Le.text??"").join("").trim();Y&&R.handleSubmit({text:Y,files:[],modelContext:G.modelContext})},[R.handleSubmit]),ce=(0,Je.useCallback)(G=>{oe.clear(),R.handleSubmit({text:G,files:[]})},[oe.clear,R.handleSubmit]);(0,Je.useImperativeHandle)(a,()=>({sendMessage:G=>{R.handleSubmit({text:G,files:[]}),Nt()},sendMessageAndWait:G=>R.sendMessageAndWait(G),reset:R.reset,focus:Nt,get messages(){return R.messages},get sessionId(){return R.sessionId}}),[R.handleSubmit,R.sendMessageAndWait,R.reset,R.messages,R.sessionId,Nt]),(0,Je.useEffect)(()=>{if(!d)return;let G=Y=>{let Le=Y.detail,nt=typeof Le?.message=="string"?Le.message:void 0;nt&&R.handleSubmit({text:nt,files:[]}),Nt()};return window.addEventListener(d,G),()=>window.removeEventListener(d,G)},[d,R.handleSubmit,Nt]);let ye=!w&&!!(S||g||y),be=M||!r;return(0,Ve.jsxs)("div",{ref:fe,style:{..._,maxHeight:"inherit",opacity:be?0:1,transition:"opacity 220ms ease-out"},"data-waniwani-chat":"","data-waniwani-layout":"embed","data-color-scheme":A==="auto"?"auto":void 0,...be?{"data-waniwani-initializing":""}:{},...U?{"data-waniwani-dark":""}:{},className:V("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:[ye&&(0,Ve.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:[S&&(0,Ve.jsx)("div",{className:"ww:text-sm ww:font-semibold ww:truncate ww:flex-1 ww:min-w-0",children:S}),!S&&(0,Ve.jsx)("div",{className:"ww:flex-1"}),g&&(0,Ve.jsx)(NE,{threads:R.threads,activeThreadId:R.activeThreadId,onNewThread:R.startNewThread,onSelectThread:G=>{R.switchThread(G)},onDeleteThread:G=>{R.deleteThread(G)}}),y]}),(0,Ve.jsxs)("div",{ref:v,className:V("ww:relative ww:flex-1 ww:min-h-0",re?"ww:overflow-hidden":"ww:overflow-y-auto"),children:[(0,Ve.jsxs)("div",{ref:Te,className:V("ww:mx-auto ww:w-full ww:max-w-3xl ww:px-4 ww:py-6 ww:flex ww:flex-col ww:gap-6",re&&"ww:!py-0"),children:[(0,Ve.jsx)(_E,{messages:R.messages,status:R.status,welcomeMessage:s,welcome:u,onSuggestionSelect:ce,resourceEndpoint:q,chatSessionId:R.sessionId,isDark:U,onFollowUp:ze,onCallTool:O,fullscreenToolCallId:re,debug:m,showToolCalls:b,toolDefinitions:R.toolDefinitions,onWidgetDisplayModeChange:(G,Y)=>{ge(G==="fullscreen"?Y.toolCallId:null)}}),(0,Ve.jsx)("div",{ref:et,"aria-hidden":!0,style:{height:1}})]}),!L&&!re&&(0,Ve.jsx)("div",{className:"ww:sticky ww:bottom-2 ww:flex ww:justify-center ww:pointer-events-none",children:(0,Ve.jsx)(gn,{type:"button",onClick:()=>Ue("smooth"),size:"icon",variant:"outline",className:"ww:rounded-full ww:shadow ww:pointer-events-auto","aria-label":"Scroll to latest",children:(0,Ve.jsx)(ls,{className:"ww:size-4"})})})]}),!x&&(0,Ve.jsxs)("div",{className:"ww:shrink-0 ww:bg-background",style:re?{display:"none"}:void 0,children:[(0,Ve.jsx)(Yc,{suggestions:oe.suggestions,isLoading:oe.isLoading,onSelect:ce}),(0,Ve.jsx)(wC,{queuedMessages:R.queuedMessages,onRemove:R.removeQueuedMessage}),(0,Ve.jsx)("div",{className:"ww:px-4 ww:pb-2 ww:pt-2",children:(0,Ve.jsxs)("div",{className:"ww:mx-auto ww:w-full ww:max-w-3xl",children:[(0,Ve.jsx)(oC,{onSubmit:R.handleSubmit,globalDrop:i,multiple:i,className:"ww:rounded-2xl ww:border-border ww:bg-input",children:(0,Ve.jsxs)("div",{className:"ww:flex ww:items-center ww:gap-1 ww:pl-4 ww:pr-3 ww:py-2.5",children:[i&&(0,Ve.jsx)(sC,{}),(0,Ve.jsx)(lC,{onChange:R.handleTextChange,value:R.text,placeholder:W,className:"ww:min-h-0 ww:py-1 ww:px-0"}),(0,Ve.jsx)(iC,{status:R.status,disabled:R.queueFull})]})}),(0,Ve.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,Ve.jsx)(OE,{}),(0,Ve.jsx)(uC,{text:C})]})]})})]})]})});var cu=F(Ae(),1);function t9(){if(typeof window>"u")return!1;try{return window.WANIWANI_DEBUG?!0:!!window.localStorage?.getItem("WANIWANI_DEBUG")}catch{return!1}}function ai(...e){t9()&&console.log("[Waniwani]",...e)}var Hw=new Set;function a9(e,t,a){return`${e}|${t}|${a??""}`}function n9(e){try{return`${new URL(e).origin}/api/mcp/events/v2/batch`}catch{return e.replace(/\/$/,"").replace(/\/chat$/,"/events/v2/batch")}}async function qR(e){let{api:t,token:a,channelId:n,mode:r,source:o}=e;if(typeof window>"u"||!t||!a||!o)return;let l=a9(t,a,n);if(!Hw.has(l)){Hw.add(l);try{let i=await uu(),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(n9(t),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`},body:u,keepalive:!0})}catch{Hw.delete(l)}}}var r9="waniwani:config:";function FR(e,t,a){return`${r9}${e}|${t}|${a??""}`}function jw(e,t,a){if(typeof window>"u")return null;try{let n=window.sessionStorage.getItem(FR(e,t,a));if(!n)return null;let r=JSON.parse(n);return r&&typeof r=="object"?r:null}catch{return null}}function o9(e,t,a,n){if(!(typeof window>"u"))try{window.sessionStorage.setItem(FR(e,t,a),JSON.stringify(n))}catch{}}var l9=600;async function i9(e,t,a,n){try{let r=`${e.replace(/\/$/,"")}/config`,o=n?`${r}?channel=${encodeURIComponent(n)}`:r,l=await fetch(o,{method:"GET",headers:{Authorization:`Bearer ${t}`},signal:a});if(!l.ok)return{};let i=await l.json(),s=i&&typeof i=="object"&&"data"in i&&i.data?i.data:i;return s?s9(s):{}}catch{return{}}}function s9(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 Of(e,t,a){let[n,r]=(0,cu.useState)(e),[o,l]=(0,cu.useState)(!1);return(0,cu.useEffect)(()=>{let i=e.api,s=e.token,u=e.channelId;if(!i||!s){l(!0);return}let c=m=>{e.disablePageView||qR({api:i,token:s,channelId:u,mode:e.mode,source:m})},d=jw(i,s,u);if(d)try{let m=rs(t,d,a);r(m),l(!0),ai("config resolved (sessionStorage cache)",{config:m,visibility:m.visibility}),c(d.source)}catch{}let f=new AbortController,p=setTimeout(()=>l(!0),l9);return i9(i,s,f.signal,u).then(m=>{if(!f.signal.aborted){if(ai("remote /config response",m),Object.keys(m).length>0){o9(i,s,u,m);try{let x=rs(t,m,a);r(x),ai("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 Nf=F(Ae(),1);function u9(e){return e?.patterns??e?.rules??[]}var HR="\0\0";function c9(e){let a=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\\\*\\\*/g,HR).replace(/\\\*/g,"[^/]*").split(HR).join(".*");return new RegExp(`^${a}$`)}function d9(e,t){try{return c9(e).test(t)}catch{return!1}}function Pf(e,t){if(!e)return!0;let a=!1;for(let n of u9(e))if(d9(n.glob,t)){if(n.action==="hide")return!1;a=!0}return a?!0:(e.default??"show")!=="hide"}var Vw="waniwani:locationchange",jR=!1;function f9(){if(!(jR||typeof history>"u")){jR=!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(Vw)),r}}}}function p9(e){return f9(),window.addEventListener(Vw,e),window.addEventListener("popstate",e),()=>{window.removeEventListener(Vw,e),window.removeEventListener("popstate",e)}}function m9(){return window.location.pathname}function h9(){return"/"}function g9(){return(0,Nf.useSyncExternalStore)(p9,m9,h9)}function Bf(e,t){let a=g9(),n=t&&Pf(e,a);return(0,Nf.useEffect)(()=>{ai("visibility gate",{pathname:a,ready:t,visible:n,rules:e})},[a,t,n]),n}var At=F(ee(),1),y9=2e3,w9=500,VR=(0,Ze.forwardRef)(function(t,a){return(0,At.jsx)(xs,{locale:t.config.locale,children:(0,At.jsx)(x9,{...t,ref:a})})}),x9=(0,Ze.forwardRef)(function({config:t,programmatic:a,scriptConfig:n},r){let{t:o}=Me(),{config:l,ready:i}=Of(t,a,n),s=Bf(l.visibility,i),u=(0,Ze.useRef)(null),c=(0,Ze.useRef)(null),d=(0,Ze.useRef)(null),[f,p]=(0,Ze.useState)("input"),[m,x]=(0,Ze.useState)(""),[S,y]=(0,Ze.useState)(!1),[w,g]=(0,Ze.useState)(!1),[b,M]=(0,Ze.useState)(0),C=l.appearance?.theme,A=l.appearance?.variables,E=(0,Ze.useMemo)(()=>A?Df(A):{},[A]),_=l.suggestions??[],k=l.launcherText??l.placeholder??o.launcher.prompt,$=Jc(k,m.length===0),U="var(--ww-shadow, 0 10px 30px rgba(0, 0, 0, 0.08))";(0,Ze.useEffect)(()=>{if(!s){y(!1);return}let v=l.appearDelay??y9,Te=setTimeout(()=>y(!0),Math.max(0,v));return()=>clearTimeout(Te)},[s,l.appearDelay]),(0,Ze.useEffect)(()=>{b>0&&f==="open"&&u.current?.focus()},[b,f]);let R=(0,Ze.useCallback)(()=>{p("open")},[]),O=(0,Ze.useCallback)(()=>{p("input")},[]);(0,Ze.useEffect)(()=>{if(f!=="expanded"){g(!1);return}let v=setTimeout(()=>g(!0),w9);return()=>clearTimeout(v)},[f]),(0,Ze.useEffect)(()=>{if(f!=="expanded")return;let v=Te=>{let et=d.current;et&&!Te.composedPath().includes(et)&&O()};return document.addEventListener("pointerdown",v,!0),()=>document.removeEventListener("pointerdown",v,!0)},[f,O]);let q=(0,Ze.useCallback)(v=>{R();let Te=v.trim();Te&&u.current?.sendMessage(Te)},[R]);(0,Ze.useImperativeHandle)(r,()=>({open:()=>R(),close:()=>O(),toggle:()=>{p(v=>v==="open"?"input":"open")},sendMessage:v=>q(v),sendMessageAndWait:async v=>{R();let Te=u.current;if(Te)return await Te.sendMessageAndWait(v)},reset:()=>u.current?.reset(),focus:()=>{R(),M(v=>v+1)},getMessages:()=>u.current?.messages??[],getSessionId:()=>u.current?.sessionId}),[q,R,O]);let W=(0,Ze.useCallback)(()=>{m.trim()&&(q(m),x(""))},[m,q]),re=(0,Ze.useCallback)(()=>{(u.current?.messages.length??0)>0?(p("open"),M(v=>v+1)):p(v=>v==="input"?"expanded":v)},[]),ge={};l.mcpServerUrl&&(ge.mcpServerUrl=l.mcpServerUrl),l.channelId&&(ge.channelId=l.channelId);let fe=(0,At.jsx)("button",{type:"button",onClick:O,"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,At.jsx)(ps,{className:"ww:size-4"})});return(0,At.jsx)("div",{"data-waniwani-chat":"","data-color-scheme":C==="auto"?"auto":void 0,className:V("ww:contents ww:font-[family-name:var(--ww-font-sans)]",C==="dark"&&"dark"),style:E,children:s&&(0,At.jsxs)(At.Fragment,{children:[(0,At.jsxs)("div",{ref:d,"data-waniwani-floating":"dock","data-state":f==="open"?"hidden":"shown","data-appeared":S?"true":"false",className:V("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:gap-1","ww:w-[calc(100vw-2rem)] ww:transition-[max-width] ww:duration-300 ww:ease-out",f==="input"?"ww:max-w-[440px]":"ww:max-w-[720px]"),children:[_.length>0&&(0,At.jsx)("div",{className:V("ww:origin-bottom ww:transition-all ww:duration-300 ww:ease-out",w?"ww:max-h-96 ww:translate-y-0 ww:opacity-100":"ww:pointer-events-none ww:max-h-0 ww:translate-y-2 ww:overflow-hidden ww:opacity-0"),children:(0,At.jsx)(Yc,{suggestions:_,onSelect:q,className:"ww:px-1 ww:pb-1.5 ww:pt-0"})}),(0,At.jsx)(W0,{animated:S,backgroundColor:"var(--ww-color-input)",borderRadius:16,edgeSensitivity:30,coneSpread:25,colors:["#c084fc","#f472b6","#38bdf8"],className:"ww:border-border",style:{boxShadow:U},children:(0,At.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,At.jsx)("input",{ref:c,type:"text",value:m,placeholder:$,onChange:v=>x(v.target.value),onFocus:re,onKeyDown:v=>{v.key==="Enter"&&!v.shiftKey&&(v.preventDefault(),W())},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,At.jsx)("button",{type:"button",onClick:W,disabled:!m.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,At.jsx)(ho,{className:"ww:size-4"})})]})})]}),(0,At.jsx)("div",{role:"dialog","aria-label":l.title??k,"data-waniwani-floating":"panel","data-state":f==="open"?"shown":"hidden",style:{boxShadow:U},className:V("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,At.jsx)(_f,{ref:u,api:l.api??"",headers:{Authorization:`Bearer ${l.token}`},skipRemoteConfig:!0,body:Object.keys(ge).length>0?ge:void 0,appearance:l.appearance,title:l.title,headerActions:fe,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 $R=F(ee(),1),GR=(0,ar.forwardRef)(function({config:t,programmatic:a,scriptConfig:n,onReady:r,onVisibilityChange:o},l){let{config:i,ready:s}=Of(t,a,n),u=(0,ar.useRef)(null);(0,ar.useEffect)(()=>{r?.()},[]);let c=Bf(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,$R.jsx)(_f,{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 Gw="/*! 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-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--ww-font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--ww-color-blue-400:oklch(70.7% .165 254.624);--ww-spacing:.25rem;--ww-container-sm:24rem;--ww-container-md:28rem;--ww-container-3xl:48rem;--ww-text-xs:.75rem;--ww-text-xs--line-height:calc(1/.75);--ww-text-sm:.875rem;--ww-text-sm--line-height:calc(1.25/.875);--ww-text-base:1rem;--ww-text-base--line-height:calc(1.5/1);--ww-text-lg:1.125rem;--ww-text-lg--line-height:calc(1.75/1.125);--ww-font-weight-medium:500;--ww-font-weight-semibold:600;--ww-tracking-wide:.025em;--ww-tracking-wider:.05em;--ww-radius-md:.375rem;--ww-radius-lg:.5rem;--ww-radius-xl:.75rem;--ww-radius-2xl:1rem;--ww-ease-out:cubic-bezier(0,0,.2,1);--ww-animate-spin:spin 1s linear infinite;--ww-animate-pulse:pulse 2s cubic-bezier(.4,0,.6,1)infinite;--ww-default-transition-duration:.15s;--ww-default-transition-timing-function:cubic-bezier(.4,0,.2,1);--ww-default-font-family:var(--ww-font-sans,system-ui,-apple-system,\"Segoe UI\",sans-serif);--ww-default-mono-font-family:var(--ww-font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--ww-default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--ww-default-font-feature-settings,normal);font-variation-settings:var(--ww-default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--ww-default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--ww-default-mono-font-feature-settings,normal);font-variation-settings:var(--ww-default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.ww\\:pointer-events-auto{pointer-events:auto}.ww\\:pointer-events-none{pointer-events:none}.ww\\:\\!relative{position:relative!important}.ww\\:absolute{position:absolute}.ww\\:fixed{position:fixed}.ww\\:relative{position:relative}.ww\\:sticky{position:sticky}.ww\\:inset-0{inset:calc(var(--ww-spacing)*0)}.ww\\:top-full{top:100%}.ww\\:right-0{right:calc(var(--ww-spacing)*0)}.ww\\: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-7{height:calc(var(--ww-spacing)*7)}.ww\\:h-8{height:calc(var(--ww-spacing)*8)}.ww\\:h-9{height:calc(var(--ww-spacing)*9)}.ww\\:h-16{height:calc(var(--ww-spacing)*16)}.ww\\:h-auto{height:auto}.ww\\:h-full{height:100%}.ww\\:max-h-0{max-height:calc(var(--ww-spacing)*0)}.ww\\:max-h-48{max-height:calc(var(--ww-spacing)*48)}.ww\\:max-h-80{max-height:calc(var(--ww-spacing)*80)}.ww\\:max-h-96{max-height:calc(var(--ww-spacing)*96)}.ww\\:min-h-0{min-height:calc(var(--ww-spacing)*0)}.ww\\:min-h-full{min-height:100%}.ww\\:w-72{width:calc(var(--ww-spacing)*72)}.ww\\:w-\\[calc\\(100vw-2rem\\)\\]{width:calc(100vw - 2rem)}.ww\\:w-auto{width:auto}.ww\\:w-fit{width:fit-content}.ww\\:w-full{width:100%}.ww\\: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\\:origin-bottom{transform-origin:bottom}.ww\\:translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:translate-y-0{--tw-translate-y:calc(var(--ww-spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:translate-y-2{--tw-translate-y:calc(var(--ww-spacing)*2);translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:rotate-90{rotate:90deg}.ww\\:rotate-180{rotate:180deg}.ww\\:animate-\\[ww-fade-in_0\\.2s_ease-out_both\\]{animation:.2s ease-out both ww-fade-in}.ww\\:animate-pulse{animation:var(--ww-animate-pulse)}.ww\\:animate-spin{animation:var(--ww-animate-spin)}.ww\\:cursor-pointer{cursor:pointer}.ww\\:resize-none{resize:none}.ww\\:grid-rows-\\[0fr\\]{grid-template-rows:0fr}.ww\\:grid-rows-\\[1fr\\]{grid-template-rows:1fr}.ww\\:flex-col{flex-direction:column}.ww\\:flex-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-\\[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\\: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-1{padding:calc(var(--ww-spacing)*1)}.ww\\:p-1\\.5{padding:calc(var(--ww-spacing)*1.5)}.ww\\:p-3{padding:calc(var(--ww-spacing)*3)}.ww\\:px-0{padding-inline:calc(var(--ww-spacing)*0)}.ww\\:px-1{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-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-0{padding-top:calc(var(--ww-spacing)*0)}.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-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\\: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);border-style:solid;border-width:var(--ww-border-width,0);border-color:var(--ww-color-border);box-shadow:var(--ww-shadow,none)}.dark [data-waniwani-chat],[data-waniwani-chat].dark{--ww-color-background:var(--ww-bg,#212121);--ww-color-foreground:var(--ww-text,#ececec);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#fff);--ww-color-muted-foreground:var(--ww-muted,#8e8ea0);--ww-color-border:var(--ww-border,#444);--ww-color-input:var(--ww-input-bg,#2f2f2f);--ww-color-accent:var(--ww-assistant-bubble,#2f2f2f);--ww-color-accent-foreground:var(--ww-text,#ececec);--ww-color-user-bubble:var(--ww-user-bubble,#303030);--ww-color-card:var(--ww-bg,#212121);--ww-color-card-foreground:var(--ww-text,#ececec);--ww-color-card-header:var(--ww-header-bg,#1e1e1e);--ww-color-card-header-foreground:var(--ww-header-text,#ececec);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#262626)}@media (prefers-color-scheme:dark){[data-waniwani-chat][data-color-scheme=auto]{--ww-color-background:var(--ww-bg,#212121);--ww-color-foreground:var(--ww-text,#ececec);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#fff);--ww-color-muted-foreground:var(--ww-muted,#8e8ea0);--ww-color-border:var(--ww-border,#444);--ww-color-input:var(--ww-input-bg,#2f2f2f);--ww-color-accent:var(--ww-assistant-bubble,#2f2f2f);--ww-color-accent-foreground:var(--ww-text,#ececec);--ww-color-user-bubble:var(--ww-user-bubble,#303030);--ww-color-card:var(--ww-bg,#212121);--ww-color-card-foreground:var(--ww-text,#ececec);--ww-color-card-header:var(--ww-header-bg,#1e1e1e);--ww-color-card-header-foreground:var(--ww-header-text,#ececec);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#262626)}}[data-waniwani-chat] [data-streamdown=table-wrapper]{flex-direction:column;gap:.5rem;margin-top:1rem;margin-bottom:1rem;display:flex}[data-waniwani-chat] [data-streamdown=table-wrapper]>div:first-child:has(button){justify-content:flex-end;align-items:center;gap:.25rem;display:flex}[data-waniwani-chat] [data-streamdown=table-wrapper]>div:last-child{overflow-x:auto}[data-waniwani-chat] [data-streamdown=table]{border-collapse:collapse;border:1px solid var(--ww-color-border);border-radius:.75rem;width:100%;overflow:hidden}[data-waniwani-chat] [data-streamdown=table-header]{background-color:var(--ww-color-accent)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=table-header]{background-color:color-mix(in srgb,var(--ww-color-accent)80%,transparent)}}[data-waniwani-chat] [data-streamdown=table-body]{background-color:var(--ww-color-accent)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=table-body]{background-color:color-mix(in srgb,var(--ww-color-accent)40%,transparent)}}[data-waniwani-chat] [data-streamdown=table-body]>tr+tr{border-top:1px solid var(--ww-color-border)}[data-waniwani-chat] [data-streamdown=table-row]{border-bottom:1px solid var(--ww-color-border)}[data-waniwani-chat] [data-streamdown=table-header-cell]{white-space:nowrap;text-align:left;padding:.5rem 1rem;font-size:.875rem;font-weight:600}[data-waniwani-chat] [data-streamdown=table-cell]{padding:.5rem 1rem;font-size:.875rem}[data-waniwani-chat] [data-streamdown=link]{color:var(--ww-color-primary);overflow-wrap:anywhere;cursor:pointer;font-weight:500;text-decoration:underline}[data-waniwani-chat].dark [data-streamdown=link],.dark [data-waniwani-chat] [data-streamdown=link]{color:var(--ww-color-primary)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat].dark [data-streamdown=link],.dark [data-waniwani-chat] [data-streamdown=link]{color:color-mix(in oklab,var(--ww-color-primary)55%,white)}}@media (prefers-color-scheme:dark){[data-waniwani-chat][data-color-scheme=auto] [data-streamdown=link]{color:var(--ww-color-primary)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat][data-color-scheme=auto] [data-streamdown=link]{color:color-mix(in oklab,var(--ww-color-primary)55%,white)}}}[data-waniwani-chat].dark [data-waniwani-logo],.dark [data-waniwani-chat] [data-waniwani-logo]{filter:invert()}@media (prefers-color-scheme:dark){[data-waniwani-chat][data-color-scheme=auto] [data-waniwani-logo]{filter:invert()}}[data-waniwani-chat] [data-streamdown=link-safety-modal]{z-index:50;background-color:var(--ww-color-background);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=link-safety-modal]{background-color:color-mix(in srgb,var(--ww-color-background)50%,transparent)}}[data-waniwani-chat] [data-streamdown=link-safety-modal]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div{border:1px solid var(--ww-color-border);background-color:var(--ww-color-background);width:100%;max-width:28rem;color:var(--ww-color-foreground);border-radius:.75rem;flex-direction:column;gap:1rem;margin:0 1rem;padding:1.5rem;display:flex;position:relative;box-shadow:0 10px 25px #0000001a}[data-waniwani-chat] [data-streamdown=link-safety-modal] button{cursor:pointer}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>button:first-child{color:var(--ww-color-muted-foreground);background:0 0;border:none;border-radius:.375rem;padding:.25rem;transition:background-color .15s,color .15s;position:absolute;top:1rem;right:1rem}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>button:first-child:hover{background-color:var(--ww-color-accent);color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type{flex-direction:column;gap:.5rem;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type>div{align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type>p{color:var(--ww-color-muted-foreground);font-size:.875rem}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:nth-child(3){word-break:break-all;background-color:var(--ww-color-accent);border-radius:.375rem;max-height:8rem;padding:.75rem;font-family:ui-monospace,monospace;font-size:.875rem;overflow-y:auto}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child{gap:.5rem;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button{border:none;border-radius:.375rem;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .15s;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:first-child{border:1px solid var(--ww-color-border);background-color:var(--ww-color-background);color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:first-child:hover{background-color:var(--ww-color-accent)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:last-child{background-color:var(--ww-color-primary);color:#fff}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:last-child:hover{opacity:.9}[data-waniwani-chat] [data-streamdown=ordered-list]{white-space:normal;list-style-type:decimal;list-style-position:inside}[data-waniwani-chat] li [data-streamdown=ordered-list]{padding-left:1.5rem}[data-waniwani-chat] [data-streamdown=unordered-list]{white-space:normal;list-style-type:disc;list-style-position:inside}[data-waniwani-chat] li [data-streamdown=unordered-list]{padding-left:1.5rem}[data-waniwani-chat] [data-streamdown=list-item]{padding-top:.25rem;padding-bottom:.25rem}[data-waniwani-chat] [data-streamdown=list-item]>p{display:inline}[data-waniwani-chat] [data-streamdown=inline-code]{background-color:var(--ww-color-accent);border-radius:.25rem;padding:.125rem .375rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:.875rem}[data-waniwani-chat] [data-streamdown=heading-1]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.875rem;font-weight:600;line-height:2.25rem}[data-waniwani-chat] [data-streamdown=heading-2]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.5rem;font-weight:600;line-height:2rem}[data-waniwani-chat] [data-streamdown=heading-3]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.25rem;font-weight:600;line-height:1.75rem}[data-waniwani-chat] [data-streamdown=heading-4]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.125rem;font-weight:600;line-height:1.75rem}[data-waniwani-chat] [data-streamdown=heading-5]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1rem;font-weight:600;line-height:1.5rem}[data-waniwani-chat] [data-streamdown=heading-6]{margin-top:1.5rem;margin-bottom:.5rem;font-size:.875rem;font-weight:600;line-height:1.25rem}[data-waniwani-chat] [data-streamdown=blockquote]{border-left:4px solid var(--ww-color-muted-foreground);margin-top:1rem;margin-bottom:1rem}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=blockquote]{border-left:4px solid color-mix(in srgb,var(--ww-color-muted-foreground)30%,transparent)}}[data-waniwani-chat] [data-streamdown=blockquote]{color:var(--ww-color-muted-foreground);padding-left:1rem;font-style:italic}[data-waniwani-chat] [data-streamdown=horizontal-rule]{border-color:var(--ww-color-border);margin-top:1.5rem;margin-bottom:1.5rem}[data-waniwani-chat] [data-streamdown=strong]{font-weight:600}[data-waniwani-chat] [data-streamdown=image-wrapper]{margin-top:1rem;margin-bottom:1rem;display:inline-block;position:relative}[data-waniwani-chat] [data-streamdown=image]{border-radius:.5rem;max-width:100%}[data-waniwani-chat] [data-streamdown=code-block]{border:1px solid var(--ww-color-border);border-radius:.75rem;width:100%;margin-top:1rem;margin-bottom:1rem;overflow:hidden}[data-waniwani-chat] [data-streamdown=code-block-header]{background-color:var(--ww-color-accent);justify-content:space-between;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=code-block-header]{background-color:color-mix(in srgb,var(--ww-color-accent)80%,transparent)}}[data-waniwani-chat] [data-streamdown=code-block-header]{color:var(--ww-color-muted-foreground);padding:.75rem;font-size:.75rem}[data-waniwani-chat] [data-streamdown=code-block-body]{padding:1rem;font-size:.875rem;overflow-x:auto}[data-waniwani-chat] [data-streamdown=code-block-copy-button],[data-waniwani-chat] [data-streamdown=code-block-download-button]{cursor:pointer;color:var(--ww-color-muted-foreground);background:0 0;border:none;padding:.25rem;transition:color .15s}[data-waniwani-chat] [data-streamdown=code-block-copy-button]:hover,[data-waniwani-chat] [data-streamdown=code-block-download-button]:hover{color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=mermaid-block]{border:1px solid var(--ww-color-border);border-radius:.75rem;height:auto;margin-top:1rem;margin-bottom:1rem;padding:1rem;position:relative}[data-waniwani-chat] [data-streamdown=mermaid]{width:100%;height:100%}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-tracking{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-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,Uf=null,v9="waniwani-chat-sizing",b9="waniwani-chat-defaults",S9="waniwani-chat-chrome",C9="waniwani-chat-auto-card",I9=`:where([data-waniwani-embed]){height:${U0}}`,L9=":where([data-waniwani-embed]){border-radius:16px;overflow:hidden}",k9=":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)}",T9=":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 zf(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 A9(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 ZR(e,t){if(Gw&&Gw!=="__WANIWANI_EMBED_CSS__"){let n=document.createElement("style");n.textContent=Gw,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 WR="data-waniwani-embed",$w="data-waniwani-auto";function M9(e){let t=document.querySelector(`[${WR}]`);if(t)return t;let a=document.createElement("div");a.setAttribute(WR,""),a.setAttribute($w,"");let n=e?!!document.head?.contains(e):!1;return e?.parentNode&&!n?e.parentNode.insertBefore(a,e):document.body.appendChild(a),a}function E9(e){return/^\d+$/.test(e.trim())?`${e.trim()}px`:e.trim()}function R9(e,t,a,n){let r=M9(n);zf(v9,I9),e.height&&r instanceof HTMLElement&&(r.style.height=E9(e.height)),e.appearance?.theme&&zf(b9,L9),zf(S9,k9),r.hasAttribute($w)&&zf(C9,T9),A9(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(),Uf=new ResizeObserver(l),Uf.observe(r);let i=la.attachShadow({mode:"open"});ZR(i,e);let s=document.createElement("div");s.className="ww:contents",i.appendChild(s);let u=du.default.createRef(),c=d=>{r instanceof HTMLElement&&(r.style.display=d?"":"none")};if(e.token){let d=jw(e.api??"",e.token,e.channelId);d?.visibility&&!Pf(d.visibility,window.location.pathname)&&c(!1)}return Wr=Ww.default.createRoot(s),Wr.render(du.default.createElement(GR,{ref:u,config:e,programmatic:t,scriptConfig:a,onVisibilityChange:c})),{destroy:()=>{Uf?.disconnect(),Uf=null,Wr?.unmount(),Wr=null,la?.remove(),la=null,r.hasAttribute($w)&&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 D9(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"});ZR(n,e);let r=document.createElement("div");r.className="ww:contents",n.appendChild(r);let o=du.default.createRef();return Wr=Ww.default.createRoot(r),Wr.render(du.default.createElement(VR,{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 QR(e){if(Ft)return console.warn("[Waniwani] Chat widget is already initialized. Call destroy() first to re-initialize."),Ft;let t=Ah(),a=Wc(),n=rs(e,void 0,a);return Ft=n.mode==="floating"?D9(n,e,a):R9(n,e,a,t),Ft}function _9(){Ft&&Ft.destroy()}window.WaniWani=window.WaniWani||{};window.WaniWani.chat={init:QR,destroy:_9,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 XR(){if(Wc().token)try{QR()}catch(t){console.error("[Waniwani] Auto-initialization failed:",t)}}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",XR):XR();})();
|
|
139
139
|
/*! Bundled license information:
|
|
140
140
|
|
|
141
141
|
react/cjs/react.production.js:
|