@waniwani/sdk 0.11.13 → 0.11.14
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/README.md +1 -1
- package/dist/chat/embed.js +1 -1
- package/dist/chat/embed.js.map +1 -1
- package/dist/chat/index.d.ts +6 -18
- package/dist/chat/index.js +8 -8
- package/dist/chat/index.js.map +1 -1
- package/dist/chat/styles.css +1 -1
- package/dist/chunk-BZRGY3DY.js +8 -0
- package/dist/chunk-BZRGY3DY.js.map +1 -0
- package/dist/chunk-F4KBGLBK.js +2 -0
- package/dist/chunk-F4KBGLBK.js.map +1 -0
- package/dist/internal/index.d.ts +52 -0
- package/dist/internal/index.js +2 -0
- package/dist/internal/index.js.map +1 -0
- package/dist/legacy/index.d.ts +790 -1
- package/dist/legacy/index.js +68 -1
- package/dist/legacy/index.js.map +1 -1
- package/dist/mcp-apps-client-GGRBZ3XV.js +2 -0
- package/dist/mcp-apps-client-GGRBZ3XV.js.map +1 -0
- package/dist/openai-client-URAITCJJ.js +4 -0
- package/dist/openai-client-URAITCJJ.js.map +1 -0
- package/dist/platform-3OQJPJOZ.js +2 -0
- package/dist/platform-3OQJPJOZ.js.map +1 -0
- package/package.json +6 -1
package/README.md
CHANGED
|
@@ -87,7 +87,7 @@ For production, swap `MemoryKvStore` for a real backend (Redis, Upstash, Cloudfl
|
|
|
87
87
|
| `WaniwaniKvStore` | Free tier | Hosted, encrypted-at-rest flow state on `app.waniwani.ai` |
|
|
88
88
|
| `withWaniwani`, `useWaniwani` | Both | Tool tracking, session bridging, browser hook (no-op without a key) |
|
|
89
89
|
| `waniwani()`, `tracking`, `kb` | Free tier | Event tracking, funnel analytics, knowledge base |
|
|
90
|
-
| `
|
|
90
|
+
| `ChatEmbed`, `embed.js` | Free tier | Embeddable chat UI |
|
|
91
91
|
|
|
92
92
|
Get a free key at [app.waniwani.ai](https://app.waniwani.ai).
|
|
93
93
|
|
package/dist/chat/embed.js
CHANGED
|
@@ -135,7 +135,7 @@ Error message: ${aE(a)}`,cause:a}),this[XM]=!0,this.value=t,this.context=r}stati
|
|
|
135
135
|
`)},flush(e){e.enqueue(`data: [DONE]
|
|
136
136
|
|
|
137
137
|
`)}})}};var qy=Fd(()=>Ts(m.union([m.strictObject({type:m.literal("text-start"),id:m.string(),providerMetadata:G.optional()}),m.strictObject({type:m.literal("text-delta"),id:m.string(),delta:m.string(),providerMetadata:G.optional()}),m.strictObject({type:m.literal("text-end"),id:m.string(),providerMetadata:G.optional()}),m.strictObject({type:m.literal("error"),errorText:m.string()}),m.strictObject({type:m.literal("tool-input-start"),toolCallId:m.string(),toolName:m.string(),providerExecuted:m.boolean().optional(),providerMetadata:G.optional(),dynamic:m.boolean().optional(),title:m.string().optional()}),m.strictObject({type:m.literal("tool-input-delta"),toolCallId:m.string(),inputTextDelta:m.string()}),m.strictObject({type:m.literal("tool-input-available"),toolCallId:m.string(),toolName:m.string(),input:m.unknown(),providerExecuted:m.boolean().optional(),providerMetadata:G.optional(),dynamic:m.boolean().optional(),title:m.string().optional()}),m.strictObject({type:m.literal("tool-input-error"),toolCallId:m.string(),toolName:m.string(),input:m.unknown(),providerExecuted:m.boolean().optional(),providerMetadata:G.optional(),dynamic:m.boolean().optional(),errorText:m.string(),title:m.string().optional()}),m.strictObject({type:m.literal("tool-approval-request"),approvalId:m.string(),toolCallId:m.string()}),m.strictObject({type:m.literal("tool-output-available"),toolCallId:m.string(),output:m.unknown(),providerExecuted:m.boolean().optional(),providerMetadata:G.optional(),dynamic:m.boolean().optional(),preliminary:m.boolean().optional()}),m.strictObject({type:m.literal("tool-output-error"),toolCallId:m.string(),errorText:m.string(),providerExecuted:m.boolean().optional(),providerMetadata:G.optional(),dynamic:m.boolean().optional()}),m.strictObject({type:m.literal("tool-output-denied"),toolCallId:m.string()}),m.strictObject({type:m.literal("reasoning-start"),id:m.string(),providerMetadata:G.optional()}),m.strictObject({type:m.literal("reasoning-delta"),id:m.string(),delta:m.string(),providerMetadata:G.optional()}),m.strictObject({type:m.literal("reasoning-end"),id:m.string(),providerMetadata:G.optional()}),m.strictObject({type:m.literal("source-url"),sourceId:m.string(),url:m.string(),title:m.string().optional(),providerMetadata:G.optional()}),m.strictObject({type:m.literal("source-document"),sourceId:m.string(),mediaType:m.string(),title:m.string(),filename:m.string().optional(),providerMetadata:G.optional()}),m.strictObject({type:m.literal("file"),url:m.string(),mediaType:m.string(),providerMetadata:G.optional()}),m.strictObject({type:m.custom(e=>typeof e=="string"&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:m.string().optional(),data:m.unknown(),transient:m.boolean().optional()}),m.strictObject({type:m.literal("start-step")}),m.strictObject({type:m.literal("finish-step")}),m.strictObject({type:m.literal("start"),messageId:m.string().optional(),messageMetadata:m.unknown().optional()}),m.strictObject({type:m.literal("finish"),finishReason:m.enum(["stop","length","content-filter","tool-calls","error","other"]).optional(),messageMetadata:m.unknown().optional()}),m.strictObject({type:m.literal("abort"),reason:m.string().optional()}),m.strictObject({type:m.literal("message-metadata"),messageMetadata:m.unknown()})])));function UF(e){return e.type.startsWith("data-")}function zy(e){return e.type.startsWith("tool-")}function zF(e){return e.type==="dynamic-tool"}function Gd(e){return zy(e)||zF(e)}function jE(e){return e.type.split("-").slice(1).join("-")}function qF({lastMessage:e,messageId:t}){return{message:e?.role==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function FF({stream:e,messageMetadataSchema:t,dataPartSchemas:a,runUpdateMessageJob:r,onError:n,onToolCall:o,onData:l}){return e.pipeThrough(new TransformStream({async transform(i,s){await r(async({state:u,write:c})=>{var d,f,p,g;function v(h){let k=u.message.parts.filter(Gd).find(I=>I.toolCallId===h);if(k==null)throw new _l({chunkType:"tool-invocation",chunkId:h,message:`No tool invocation found for tool call ID "${h}".`});return k}function C(h){var w;let k=u.message.parts.find(_=>zy(_)&&_.toolCallId===h.toolCallId),I=h,M=k;if(k!=null){k.state=h.state,M.input=I.input,M.output=I.output,M.errorText=I.errorText,M.rawInput=I.rawInput,M.preliminary=I.preliminary,h.title!==void 0&&(M.title=h.title),M.providerExecuted=(w=I.providerExecuted)!=null?w:k.providerExecuted;let _=I.providerMetadata;if(_!=null)if(h.state==="output-available"||h.state==="output-error"){let P=k;P.resultProviderMetadata=_}else k.callProviderMetadata=_}else u.message.parts.push({type:`tool-${h.toolName}`,toolCallId:h.toolCallId,state:h.state,title:h.title,input:I.input,output:I.output,rawInput:I.rawInput,errorText:I.errorText,providerExecuted:I.providerExecuted,preliminary:I.preliminary,...I.providerMetadata!=null&&(h.state==="output-available"||h.state==="output-error")?{resultProviderMetadata:I.providerMetadata}:{},...I.providerMetadata!=null&&!(h.state==="output-available"||h.state==="output-error")?{callProviderMetadata:I.providerMetadata}:{}})}function y(h){var w,k;let I=u.message.parts.find(P=>P.type==="dynamic-tool"&&P.toolCallId===h.toolCallId),M=h,_=I;if(I!=null){I.state=h.state,_.toolName=h.toolName,_.input=M.input,_.output=M.output,_.errorText=M.errorText,_.rawInput=(w=M.rawInput)!=null?w:_.rawInput,_.preliminary=M.preliminary,h.title!==void 0&&(_.title=h.title),_.providerExecuted=(k=M.providerExecuted)!=null?k:I.providerExecuted;let P=M.providerMetadata;if(P!=null)if(h.state==="output-available"||h.state==="output-error"){let T=I;T.resultProviderMetadata=P}else I.callProviderMetadata=P}else u.message.parts.push({type:"dynamic-tool",toolName:h.toolName,toolCallId:h.toolCallId,state:h.state,input:M.input,output:M.output,errorText:M.errorText,preliminary:M.preliminary,providerExecuted:M.providerExecuted,title:h.title,...M.providerMetadata!=null&&(h.state==="output-available"||h.state==="output-error")?{resultProviderMetadata:M.providerMetadata}:{},...M.providerMetadata!=null&&!(h.state==="output-available"||h.state==="output-error")?{callProviderMetadata:M.providerMetadata}:{}})}async function x(h){if(h!=null){let w=u.message.metadata!=null?e2(u.message.metadata,h):h;t!=null&&await Vd({value:w,schema:t,context:{field:"message.metadata",entityId:u.message.id}}),u.message.metadata=w}}switch(i.type){case"text-start":{let h={type:"text",text:"",providerMetadata:i.providerMetadata,state:"streaming"};u.activeTextParts[i.id]=h,u.message.parts.push(h),c();break}case"text-delta":{let h=u.activeTextParts[i.id];if(h==null)throw new _l({chunkType:"text-delta",chunkId:i.id,message:`Received text-delta for missing text part with ID "${i.id}". Ensure a "text-start" chunk is sent before any "text-delta" chunks.`});h.text+=i.delta,h.providerMetadata=(d=i.providerMetadata)!=null?d:h.providerMetadata,c();break}case"text-end":{let h=u.activeTextParts[i.id];if(h==null)throw new _l({chunkType:"text-end",chunkId:i.id,message:`Received text-end for missing text part with ID "${i.id}". Ensure a "text-start" chunk is sent before any "text-end" chunks.`});h.state="done",h.providerMetadata=(f=i.providerMetadata)!=null?f:h.providerMetadata,delete u.activeTextParts[i.id],c();break}case"reasoning-start":{let h={type:"reasoning",text:"",providerMetadata:i.providerMetadata,state:"streaming"};u.activeReasoningParts[i.id]=h,u.message.parts.push(h),c();break}case"reasoning-delta":{let h=u.activeReasoningParts[i.id];if(h==null)throw new _l({chunkType:"reasoning-delta",chunkId:i.id,message:`Received reasoning-delta for missing reasoning part with ID "${i.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-delta" chunks.`});h.text+=i.delta,h.providerMetadata=(p=i.providerMetadata)!=null?p:h.providerMetadata,c();break}case"reasoning-end":{let h=u.activeReasoningParts[i.id];if(h==null)throw new _l({chunkType:"reasoning-end",chunkId:i.id,message:`Received reasoning-end for missing reasoning part with ID "${i.id}". Ensure a "reasoning-start" chunk is sent before any "reasoning-end" chunks.`});h.providerMetadata=(g=i.providerMetadata)!=null?g:h.providerMetadata,h.state="done",delete u.activeReasoningParts[i.id],c();break}case"file":{u.message.parts.push({type:"file",mediaType:i.mediaType,url:i.url,...i.providerMetadata!=null?{providerMetadata:i.providerMetadata}:{}}),c();break}case"source-url":{u.message.parts.push({type:"source-url",sourceId:i.sourceId,url:i.url,title:i.title,providerMetadata:i.providerMetadata}),c();break}case"source-document":{u.message.parts.push({type:"source-document",sourceId:i.sourceId,mediaType:i.mediaType,title:i.title,filename:i.filename,providerMetadata:i.providerMetadata}),c();break}case"tool-input-start":{let h=u.message.parts.filter(zy);u.partialToolCalls[i.toolCallId]={text:"",toolName:i.toolName,index:h.length,dynamic:i.dynamic,title:i.title},i.dynamic?y({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-streaming",input:void 0,providerExecuted:i.providerExecuted,title:i.title,providerMetadata:i.providerMetadata}):C({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-streaming",input:void 0,providerExecuted:i.providerExecuted,title:i.title,providerMetadata:i.providerMetadata}),c();break}case"tool-input-delta":{let h=u.partialToolCalls[i.toolCallId];if(h==null)throw new _l({chunkType:"tool-input-delta",chunkId:i.toolCallId,message:`Received tool-input-delta for missing tool call with ID "${i.toolCallId}". Ensure a "tool-input-start" chunk is sent before any "tool-input-delta" chunks.`});h.text+=i.inputTextDelta;let{value:w}=await Ms(h.text);h.dynamic?y({toolCallId:i.toolCallId,toolName:h.toolName,state:"input-streaming",input:w,title:h.title}):C({toolCallId:i.toolCallId,toolName:h.toolName,state:"input-streaming",input:w,title:h.title}),c();break}case"tool-input-available":{i.dynamic?y({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-available",input:i.input,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:i.title}):C({toolCallId:i.toolCallId,toolName:i.toolName,state:"input-available",input:i.input,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:i.title}),c(),o&&!i.providerExecuted&&await o({toolCall:i});break}case"tool-input-error":{let h=u.message.parts.filter(Gd).find(k=>k.toolCallId===i.toolCallId);(h!=null?h.type==="dynamic-tool":!!i.dynamic)?y({toolCallId:i.toolCallId,toolName:i.toolName,state:"output-error",input:i.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata}):C({toolCallId:i.toolCallId,toolName:i.toolName,state:"output-error",input:void 0,rawInput:i.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata}),c();break}case"tool-approval-request":{let h=v(i.toolCallId);h.state="approval-requested",h.approval={id:i.approvalId},c();break}case"tool-output-denied":{let h=v(i.toolCallId);h.state="output-denied",c();break}case"tool-output-available":{let h=v(i.toolCallId);h.type==="dynamic-tool"?y({toolCallId:i.toolCallId,toolName:h.toolName,state:"output-available",input:h.input,output:i.output,preliminary:i.preliminary,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:h.title}):C({toolCallId:i.toolCallId,toolName:jE(h),state:"output-available",input:h.input,output:i.output,providerExecuted:i.providerExecuted,preliminary:i.preliminary,providerMetadata:i.providerMetadata,title:h.title}),c();break}case"tool-output-error":{let h=v(i.toolCallId);h.type==="dynamic-tool"?y({toolCallId:i.toolCallId,toolName:h.toolName,state:"output-error",input:h.input,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:h.title}):C({toolCallId:i.toolCallId,toolName:jE(h),state:"output-error",input:h.input,rawInput:h.rawInput,errorText:i.errorText,providerExecuted:i.providerExecuted,providerMetadata:i.providerMetadata,title:h.title}),c();break}case"start-step":{u.message.parts.push({type:"step-start"});break}case"finish-step":{u.activeTextParts={},u.activeReasoningParts={};break}case"start":{i.messageId!=null&&(u.message.id=i.messageId),await x(i.messageMetadata),(i.messageId!=null||i.messageMetadata!=null)&&c();break}case"finish":{i.finishReason!=null&&(u.finishReason=i.finishReason),await x(i.messageMetadata),i.messageMetadata!=null&&c();break}case"message-metadata":{await x(i.messageMetadata),i.messageMetadata!=null&&c();break}case"error":{n?.(new Error(i.errorText));break}default:if(UF(i)){if(a?.[i.type]!=null){let k=u.message.parts.findIndex(M=>"id"in M&&"data"in M&&M.id===i.id&&M.type===i.type),I=k>=0?k:u.message.parts.length;await Vd({value:i.data,schema:a[i.type],context:{field:`message.parts[${I}].data`,entityName:i.type,entityId:i.id}})}let h=i;if(h.transient){l?.(h);break}let w=h.id!=null?u.message.parts.find(k=>h.type===k.type&&h.id===k.id):void 0;w!=null?w.data=h.data:u.message.parts.push(h),l?.(h),c()}}s.enqueue(i)})}}))}async function HF({stream:e,onError:t}){let a=e.getReader();try{for(;;){let{done:r}=await a.read();if(r)break}}catch(r){t?.(r)}finally{a.releaseLock()}}var xJ=zr({prefix:"aitxt",size:24});var bJ=Fd(()=>Ts(m.array(m.object({id:m.string(),role:m.enum(["system","user","assistant"]),metadata:m.unknown().optional(),parts:m.array(m.union([m.object({type:m.literal("text"),text:m.string(),state:m.enum(["streaming","done"]).optional(),providerMetadata:G.optional()}),m.object({type:m.literal("reasoning"),text:m.string(),state:m.enum(["streaming","done"]).optional(),providerMetadata:G.optional()}),m.object({type:m.literal("source-url"),sourceId:m.string(),url:m.string(),title:m.string().optional(),providerMetadata:G.optional()}),m.object({type:m.literal("source-document"),sourceId:m.string(),mediaType:m.string(),title:m.string(),filename:m.string().optional(),providerMetadata:G.optional()}),m.object({type:m.literal("file"),mediaType:m.string(),filename:m.string().optional(),url:m.string(),providerMetadata:G.optional()}),m.object({type:m.literal("step-start")}),m.object({type:m.string().startsWith("data-"),id:m.string().optional(),data:m.unknown()}),m.object({type:m.literal("dynamic-tool"),toolName:m.string(),toolCallId:m.string(),state:m.literal("input-streaming"),input:m.unknown().optional(),providerExecuted:m.boolean().optional(),callProviderMetadata:G.optional(),output:m.never().optional(),errorText:m.never().optional(),approval:m.never().optional()}),m.object({type:m.literal("dynamic-tool"),toolName:m.string(),toolCallId:m.string(),state:m.literal("input-available"),input:m.unknown(),providerExecuted:m.boolean().optional(),output:m.never().optional(),errorText:m.never().optional(),callProviderMetadata:G.optional(),approval:m.never().optional()}),m.object({type:m.literal("dynamic-tool"),toolName:m.string(),toolCallId:m.string(),state:m.literal("approval-requested"),input:m.unknown(),providerExecuted:m.boolean().optional(),output:m.never().optional(),errorText:m.never().optional(),callProviderMetadata:G.optional(),approval:m.object({id:m.string(),approved:m.never().optional(),reason:m.never().optional()})}),m.object({type:m.literal("dynamic-tool"),toolName:m.string(),toolCallId:m.string(),state:m.literal("approval-responded"),input:m.unknown(),providerExecuted:m.boolean().optional(),output:m.never().optional(),errorText:m.never().optional(),callProviderMetadata:G.optional(),approval:m.object({id:m.string(),approved:m.boolean(),reason:m.string().optional()})}),m.object({type:m.literal("dynamic-tool"),toolName:m.string(),toolCallId:m.string(),state:m.literal("output-available"),input:m.unknown(),providerExecuted:m.boolean().optional(),output:m.unknown(),errorText:m.never().optional(),callProviderMetadata:G.optional(),resultProviderMetadata:G.optional(),preliminary:m.boolean().optional(),approval:m.object({id:m.string(),approved:m.literal(!0),reason:m.string().optional()}).optional()}),m.object({type:m.literal("dynamic-tool"),toolName:m.string(),toolCallId:m.string(),state:m.literal("output-error"),input:m.unknown(),rawInput:m.unknown().optional(),providerExecuted:m.boolean().optional(),output:m.never().optional(),errorText:m.string(),callProviderMetadata:G.optional(),resultProviderMetadata:G.optional(),approval:m.object({id:m.string(),approved:m.literal(!0),reason:m.string().optional()}).optional()}),m.object({type:m.literal("dynamic-tool"),toolName:m.string(),toolCallId:m.string(),state:m.literal("output-denied"),input:m.unknown(),providerExecuted:m.boolean().optional(),output:m.never().optional(),errorText:m.never().optional(),callProviderMetadata:G.optional(),approval:m.object({id:m.string(),approved:m.literal(!1),reason:m.string().optional()})}),m.object({type:m.string().startsWith("tool-"),toolCallId:m.string(),state:m.literal("input-streaming"),providerExecuted:m.boolean().optional(),callProviderMetadata:G.optional(),input:m.unknown().optional(),output:m.never().optional(),errorText:m.never().optional(),approval:m.never().optional()}),m.object({type:m.string().startsWith("tool-"),toolCallId:m.string(),state:m.literal("input-available"),providerExecuted:m.boolean().optional(),input:m.unknown(),output:m.never().optional(),errorText:m.never().optional(),callProviderMetadata:G.optional(),approval:m.never().optional()}),m.object({type:m.string().startsWith("tool-"),toolCallId:m.string(),state:m.literal("approval-requested"),input:m.unknown(),providerExecuted:m.boolean().optional(),output:m.never().optional(),errorText:m.never().optional(),callProviderMetadata:G.optional(),approval:m.object({id:m.string(),approved:m.never().optional(),reason:m.never().optional()})}),m.object({type:m.string().startsWith("tool-"),toolCallId:m.string(),state:m.literal("approval-responded"),input:m.unknown(),providerExecuted:m.boolean().optional(),output:m.never().optional(),errorText:m.never().optional(),callProviderMetadata:G.optional(),approval:m.object({id:m.string(),approved:m.boolean(),reason:m.string().optional()})}),m.object({type:m.string().startsWith("tool-"),toolCallId:m.string(),state:m.literal("output-available"),providerExecuted:m.boolean().optional(),input:m.unknown(),output:m.unknown(),errorText:m.never().optional(),callProviderMetadata:G.optional(),resultProviderMetadata:G.optional(),preliminary:m.boolean().optional(),approval:m.object({id:m.string(),approved:m.literal(!0),reason:m.string().optional()}).optional()}),m.object({type:m.string().startsWith("tool-"),toolCallId:m.string(),state:m.literal("output-error"),providerExecuted:m.boolean().optional(),input:m.unknown(),rawInput:m.unknown().optional(),output:m.never().optional(),errorText:m.string(),callProviderMetadata:G.optional(),resultProviderMetadata:G.optional(),approval:m.object({id:m.string(),approved:m.literal(!0),reason:m.string().optional()}).optional()}),m.object({type:m.string().startsWith("tool-"),toolCallId:m.string(),state:m.literal("output-denied"),providerExecuted:m.boolean().optional(),input:m.unknown(),output:m.never().optional(),errorText:m.never().optional(),callProviderMetadata:G.optional(),approval:m.object({id:m.string(),approved:m.literal(!1),reason:m.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty")));var CJ=zr({prefix:"aiobj",size:24});function t2(e){return({url:t,abortSignal:a})=>wF({url:t,maxBytes:e?.maxBytes,abortSignal:a})}var jF=class{constructor(){this.queue=[],this.isProcessing=!1}async processQueue(){if(!this.isProcessing){for(this.isProcessing=!0;this.queue.length>0;)await this.queue[0](),this.queue.shift();this.isProcessing=!1}}async run(e){return new Promise((t,a)=>{this.queue.push(async()=>{try{await e(),t()}catch(r){a(r)}}),this.processQueue()})}};var LJ=zr({prefix:"aiobj",size:24});var kJ=t2();var VF="AI_NoSuchProviderError",GF=`vercel.ai.error.${VF}`,XF=Symbol.for(GF),$F;$F=XF;var TJ=t2();async function WF(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:r}=t,n=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:r,filename:a,url:n}}))}var ZF=class{constructor({api:e="/api/chat",credentials:t,headers:a,body:r,fetch:n,prepareSendMessagesRequest:o,prepareReconnectToStreamRequest:l}){this.api=e,this.credentials=t,this.headers=a,this.body=r,this.fetch=n,this.prepareSendMessagesRequest=o,this.prepareReconnectToStreamRequest=l}async sendMessages({abortSignal:e,...t}){var a,r,n,o,l;let i=await lr(this.body),s=await lr(this.headers),u=await lr(this.credentials),c={...En(s),...En(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=(r=d?.api)!=null?r:this.api,p=d?.headers!==void 0?En(d.headers):c,g=d?.body!==void 0?d.body:{...i,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},v=(n=d?.credentials)!=null?n:u,y=await((o=this.fetch)!=null?o:globalThis.fetch)(f,{method:"POST",headers:{"Content-Type":"application/json",...p},body:JSON.stringify(g),credentials:v,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,r,n,o;let l=await lr(this.body),i=await lr(this.headers),s=await lr(this.credentials),u={...En(i),...En(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?En(c.headers):u,p=(r=c?.credentials)!=null?r:s,v=await((n=this.fetch)!=null?n:globalThis.fetch)(d,{method:"GET",headers:f,credentials:p});if(v.status===204)return null;if(!v.ok)throw new Error((o=await v.text())!=null?o:"Failed to fetch the chat response.");if(!v.body)throw new Error("The response body is empty.");return this.processResponseStream(v.body)}},Fy=class extends ZF{constructor(e={}){super(e)}processResponseStream(e){return HE({stream:e,schema:qy}).pipeThrough(new TransformStream({async transform(t,a){if(!t.success)throw t.error;a.enqueue(t.value)}}))}},a2=class{constructor({generateId:e=NE,id:t=e(),transport:a=new Fy,messageMetadataSchema:r,dataPartSchemas:n,state:o,onError:l,onToolCall:i,onFinish:s,onData:u,sendAutomaticallyWhen:c}){this.activeResponse=void 0,this.jobExecutor=new jF,this.sendMessage=async(d,f)=>{var p,g,v,C;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 WF(d.files),..."text"in d&&d.text!=null?[{type:"text",text:d.text}]:[]]}:y=d,d.messageId!=null){let x=this.state.messages.findIndex(h=>h.id===d.messageId);if(x===-1)throw new Error(`message with id ${d.messageId} not found`);if(this.state.messages[x].role!=="user")throw new Error(`message with id ${d.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,x+1),this.state.replaceMessage(x,{...y,id:d.messageId,role:(g=y.role)!=null?g:"user",metadata:d.metadata})}else this.state.pushMessage({...y,id:(v=y.id)!=null?v:this.generateId(),role:(C=y.role)!=null?C:"user",metadata:d.metadata});await this.makeRequest({trigger:"submit-message",messageId:d.messageId,...f})},this.regenerate=async({messageId:d,...f}={})=>{let p=d==null?this.state.messages.length-1:this.state.messages.findIndex(g=>g.id===d);if(p===-1)throw new Error(`message ${d} not found`);this.state.messages=this.state.messages.slice(0,this.messages[p].role==="assistant"?p:p+1),await this.makeRequest({trigger:"regenerate-message",messageId:d,...f})},this.resumeStream=async(d={})=>{await this.makeRequest({trigger:"resume-stream",...d})},this.clearError=()=>{this.status==="error"&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolApprovalResponse=async({id:d,approved:f,reason:p,options:g})=>this.jobExecutor.run(async()=>{let v=this.state.messages,C=v[v.length-1],y=x=>Gd(x)&&x.state==="approval-requested"&&x.approval.id===d?{...x,state:"approval-responded",approval:{id:d,approved:f,reason:p}}:x;this.state.replaceMessage(v.length-1,{...C,parts:C.parts.map(y)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(y)),this.status!=="streaming"&&this.status!=="submitted"&&this.sendAutomaticallyWhen&&this.shouldSendAutomatically().then(x=>{var h;x&&this.makeRequest({trigger:"submit-message",messageId:(h=this.lastMessage)==null?void 0:h.id,...g})})}),this.addToolOutput=async({state:d="output-available",toolCallId:f,output:p,errorText:g,options:v})=>this.jobExecutor.run(async()=>{let C=this.state.messages,y=C[C.length-1],x=h=>Gd(h)&&h.toolCallId===f?{...h,state:d,output:p,errorText:g}:h;this.state.replaceMessage(C.length-1,{...y,parts:y.parts.map(x)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(x)),this.status!=="streaming"&&this.status!=="submitted"&&this.sendAutomaticallyWhen&&this.shouldSendAutomatically().then(h=>{var w;h&&this.makeRequest({trigger:"submit-message",messageId:(w=this.lastMessage)==null?void 0:w.id,...v})})}),this.addToolResult=this.addToolOutput,this.stop=async()=>{var d;this.status!=="streaming"&&this.status!=="submitted"||(d=this.activeResponse)!=null&&d.abortController&&this.activeResponse.abortController.abort()},this.id=t,this.transport=a,this.generateId=e,this.messageMetadataSchema=r,this.dataPartSchemas=n,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:r,messageId:n}){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:r});if(p==null)return;s=p}catch(p){this.onError&&p instanceof Error&&this.onError(p),this.setStatus({status:"error",error:p});return}this.setStatus({status:"submitted",error:void 0});let u=this.lastMessage,c=!1,d=!1,f=!1;try{let p={state:qF({lastMessage:this.state.snapshot(u),messageId:this.generateId()}),abortController:new AbortController};p.abortController.signal.addEventListener("abort",()=>{c=!0}),this.activeResponse=p;let g;e==="resume-stream"?g=s:g=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:p.abortController.signal,metadata:t,headers:a,body:r,trigger:e,messageId:n});let v=C=>this.jobExecutor.run(()=>C({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 HF({stream:FF({stream:g,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:v,onError:C=>{throw C}}),onError:C=>{throw C}}),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:r})}};var i2=F(n2(),1);var _s=F(Ze(),1);var Wd=F(Ze(),1);var l2=(e,t,a)=>{if(!t.has(e))throw TypeError("Cannot "+a)},Je=(e,t,a)=>(l2(e,t,"read from private field"),a?a.call(e):t.get(e)),ir=(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)},Dn=(e,t,a,r)=>(l2(e,t,"write to private field"),r?r.call(e,a):t.set(e,a),a);function KF(e,t){return t!=null?(0,i2.default)(e,t):e}var Na,Xd,$d,Es,Rs,Ds,Ol,Hy,jy,YF=class{constructor(e=[]){ir(this,Na,void 0),ir(this,Xd,"ready"),ir(this,$d,void 0),ir(this,Es,new Set),ir(this,Rs,new Set),ir(this,Ds,new Set),this.pushMessage=t=>{Dn(this,Na,Je(this,Na).concat(t)),Je(this,Ol).call(this)},this.popMessage=()=>{Dn(this,Na,Je(this,Na).slice(0,-1)),Je(this,Ol).call(this)},this.replaceMessage=(t,a)=>{Dn(this,Na,[...Je(this,Na).slice(0,t),this.snapshot(a),...Je(this,Na).slice(t+1)]),Je(this,Ol).call(this)},this.snapshot=t=>structuredClone(t),this["~registerMessagesCallback"]=(t,a)=>{let r=a?KF(t,a):t;return Je(this,Es).add(r),()=>{Je(this,Es).delete(r)}},this["~registerStatusCallback"]=t=>(Je(this,Rs).add(t),()=>{Je(this,Rs).delete(t)}),this["~registerErrorCallback"]=t=>(Je(this,Ds).add(t),()=>{Je(this,Ds).delete(t)}),ir(this,Ol,()=>{Je(this,Es).forEach(t=>t())}),ir(this,Hy,()=>{Je(this,Rs).forEach(t=>t())}),ir(this,jy,()=>{Je(this,Ds).forEach(t=>t())}),Dn(this,Na,e)}get status(){return Je(this,Xd)}set status(e){Dn(this,Xd,e),Je(this,Hy).call(this)}get error(){return Je(this,$d)}set error(e){Dn(this,$d,e),Je(this,jy).call(this)}get messages(){return Je(this,Na)}set messages(e){Dn(this,Na,[...e]),Je(this,Ol).call(this)}};Na=new WeakMap;Xd=new WeakMap;$d=new WeakMap;Es=new WeakMap;Rs=new WeakMap;Ds=new WeakMap;Ol=new WeakMap;Hy=new WeakMap;jy=new WeakMap;var Pl,o2=class extends a2{constructor({messages:e,...t}){let a=new YF(e);super({...t,state:a}),ir(this,Pl,void 0),this["~registerMessagesCallback"]=(r,n)=>Je(this,Pl)["~registerMessagesCallback"](r,n),this["~registerStatusCallback"]=r=>Je(this,Pl)["~registerStatusCallback"](r),this["~registerErrorCallback"]=r=>Je(this,Pl)["~registerErrorCallback"](r),Dn(this,Pl,a)}};Pl=new WeakMap;function s2({experimental_throttle:e,resume:t=!1,...a}={}){let r=(0,Ba.useRef)("chat"in a?{}:{onToolCall:a.onToolCall,onData:a.onData,onFinish:a.onFinish,onError:a.onError,sendAutomaticallyWhen:a.sendAutomaticallyWhen});"chat"in a||(r.current={onToolCall:a.onToolCall,onData:a.onData,onFinish:a.onFinish,onError:a.onError,sendAutomaticallyWhen:a.sendAutomaticallyWhen});let n={...a,onToolCall:f=>{var p,g;return(g=(p=r.current).onToolCall)==null?void 0:g.call(p,f)},onData:f=>{var p,g;return(g=(p=r.current).onData)==null?void 0:g.call(p,f)},onFinish:f=>{var p,g;return(g=(p=r.current).onFinish)==null?void 0:g.call(p,f)},onError:f=>{var p,g;return(g=(p=r.current).onError)==null?void 0:g.call(p,f)},sendAutomaticallyWhen:f=>{var p,g,v;return(v=(g=(p=r.current).sendAutomaticallyWhen)==null?void 0:g.call(p,f))!=null?v:!1}},o=(0,Ba.useRef)("chat"in a?a.chat:new o2(n));("chat"in a&&a.chat!==o.current||"id"in a&&o.current.id!==a.id)&&(o.current="chat"in a?a.chat:new o2(n));let i=(0,Ba.useCallback)(f=>o.current["~registerMessagesCallback"](f,e),[e,o.current.id]),s=(0,Ba.useSyncExternalStore)(i,()=>o.current.messages,()=>o.current.messages),u=(0,Ba.useSyncExternalStore)(o.current["~registerStatusCallback"],()=>o.current.status,()=>o.current.status),c=(0,Ba.useSyncExternalStore)(o.current["~registerErrorCallback"],()=>o.current.error,()=>o.current.error),d=(0,Ba.useCallback)(f=>{typeof f=="function"&&(f=f(o.current.messages)),o.current.messages=f},[o]);return(0,Ba.useEffect)(()=>{t&&o.current.resumeStream()},[t,o]),{id:o.current.id,messages:s,setMessages:d,sendMessage:o.current.sendMessage,regenerate:o.current.regenerate,clearError:o.current.clearError,stop:o.current.stop,error:c,resumeStream:o.current.resumeStream,status:u,addToolResult:o.current.addToolOutput,addToolOutput:o.current.addToolOutput,addToolApprovalResponse:o.current.addToolApprovalResponse}}var X=F(Ze(),1);function JF(e){let t=e?.cause,a=t?.issues??t?.errors;if(!Array.isArray(a))return null;let r=a.find(n=>n.code==="invalid_union");if(!r?.errors)return null;for(let n of r.errors){if(!Array.isArray(n)||n.some(i=>(i.code==="invalid_value"||i.code==="invalid_literal")&&i.path?.[0]==="type"))continue;let l=n.filter(i=>i.code==="unrecognized_keys").flatMap(i=>i.keys??[]);if(l.length>0)return l}return null}var Zd=class extends Fy{processResponseStream(t){let a="",r=qy(),n=r.validate?.bind(r);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(!n){l.enqueue(d);continue}let f=await n(d);if(f.success){l.enqueue(f.value);continue}let p=JF(f.error);if(p?.length){let g={...d};for(let C of p)delete g[C];let v=await n(g);v.success&&l.enqueue(v.value)}}catch{}}}}))}};var e6="waniwani-memory";var wa="threads",Qd="by_memoryUserId",t6="by_updatedAt";var c2="memoryUserId",u2="waniwani-memory-user-id",Vy=null;function Gy(){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 a6(e,t){if(t<1&&(e.objectStoreNames.contains("ids")||e.createObjectStore("ids")),t<2&&!e.objectStoreNames.contains(wa)){let a=e.createObjectStore(wa,{keyPath:"threadId"});a.createIndex(Qd,"memoryUserId",{unique:!1}),a.createIndex(t6,"updatedAt",{unique:!1})}}async function Xy(){return new Promise((e,t)=>{let a=indexedDB.open(e6,2);a.onupgradeneeded=r=>{a6(a.result,r.oldVersion)},a.onsuccess=()=>e(a.result),a.onerror=()=>t(a.error)})}async function r6(){return Xy()}async function n6(e){return new Promise((t,a)=>{let o=e.transaction("ids","readonly").objectStore("ids").get(c2);o.onsuccess=()=>t(typeof o.result=="string"?o.result:null),o.onerror=()=>a(o.error)})}async function o6(e,t){return new Promise((a,r)=>{let l=e.transaction("ids","readwrite").objectStore("ids").put(t,c2);l.onsuccess=()=>a(),l.onerror=()=>r(l.error)})}async function l6(){if(typeof indexedDB>"u")return null;try{let e=await r6();try{let t=await n6(e);if(t)return t;let a=Gy();return await o6(e,a),a}finally{e.close()}}catch{return null}}function i6(){try{let e=localStorage.getItem(u2);if(e)return e;let t=Gy();return localStorage.setItem(u2,t),t}catch{return null}}async function d2(){let e=await l6();if(e)return e;let t=i6();return t||(Vy||(Vy=Gy()),Vy)}var f2=50,p2=1e3;function Kd(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 Yd(e){if(typeof indexedDB>"u")return null;let t=null;try{return t=await Xy(),await e(t)}catch{return null}finally{try{t?.close()}catch{}}}function $y(e){return new Promise((t,a)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>a(e.error)})}async function Wy(e){return await Yd(async a=>{let o=a.transaction(wa,"readonly").objectStore(wa).index(Qd),i=(await $y(o.getAll(e))??[]).filter(Kd);return i.sort((s,u)=>s.updatedAt<u.updatedAt?1:-1),i})??[]}async function Zy(e){return await Yd(async a=>{let n=a.transaction(wa,"readonly").objectStore(wa),o=await $y(n.get(e));return Kd(o)?o:null})??null}async function Qy(e){if(!Kd(e))return;let t=e.messages.length>p2?{...e,messages:e.messages.slice(e.messages.length-p2)}:e;await Yd(async a=>{await new Promise((s,u)=>{let c=a.transaction(wa,"readwrite");c.oncomplete=()=>s(),c.onerror=()=>u(c.error),c.onabort=()=>u(c.error),c.objectStore(wa).put(t)});let r=a.transaction(wa,"readwrite"),n=r.objectStore(wa),o=n.index(Qd),i=(await $y(o.getAll(t.memoryUserId))??[]).filter(Kd);if(i.length>f2){i.sort((u,c)=>u.updatedAt<c.updatedAt?-1:1);let s=i.slice(0,i.length-f2);for(let u of s)n.delete(u.threadId)}return await new Promise((s,u)=>{r.oncomplete=()=>s(),r.onerror=()=>u(r.error),r.onabort=()=>u(r.error)}),null})}async function m2(e){await Yd(async t=>(await new Promise((a,r)=>{let n=t.transaction(wa,"readwrite");n.oncomplete=()=>a(),n.onerror=()=>r(n.error),n.onabort=()=>r(n.error),n.objectStore(wa).delete(e)}),null))}async function h2(e){return(await Wy(e))[0]?.threadId??null}function g2(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 y2="waniwani-visitor-id";function x2(e,t){return e.match(t)?.[1]??null}function s6(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,r]of t){let n=x2(e,r);if(n)return{name:a,version:n}}return null}function u6(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,r]of t){let n=x2(e,r);if(n)return{name:a,version:n.replace(/_/g,".")};if(a==="Linux"&&r.test(e))return{name:a,version:""}}return null}function c6(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 d6(e){let t=new TextEncoder().encode(e),a=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(a)).map(r=>r.toString(16).padStart(2,"0")).join("")}async function f6(){try{let a=localStorage.getItem(y2);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 d6(e);try{localStorage.setItem(y2,t)}catch{}return t}async function v2(){let e=navigator.userAgent,[t,a]=await Promise.all([f6(),d2()]);return{userAgent:e,browser:s6(e),os:u6(e),deviceType:c6(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 p6="x-session-id",m6=250;function w2(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():Zi()}function Jd(){return new Date().toISOString()}function b2(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}async function h6(e,t){let a=`${e.replace(/\/$/,"")}/tools`,r=await fetch(a,{method:"GET",headers:t?{...t}:void 0});if(!r.ok)throw new Error(`[WaniWani] Failed to fetch /tools: ${r.status} ${r.statusText}`);let n=await r.json();if(!n||!Array.isArray(n.tools))return{};let o={};for(let l of n.tools)l&&typeof l.name=="string"&&(o[l.name]=l);return o}function S2(e){let{api:t="/api/waniwani",headers:a,body:r,onMessageSent:n,onResponseReceived:o,enableThreadHistory:l=!1,activeThreadId:i,onThreadChange:s}=e,u=(0,X.useRef)(a),c=(0,X.useRef)(r),d=(0,X.useRef)(l);(0,X.useEffect)(()=>{d.current=l},[l]);let f=(0,X.useRef)(void 0),p=(0,X.useRef)(null),[g,v]=(0,X.useState)(void 0),C=(0,X.useRef)(g),[y,x]=(0,X.useState)(i),h=(0,X.useRef)(y),[w,k]=(0,X.useState)([]),[I,M]=(0,X.useState)(!l),_=(0,X.useRef)(void 0),P=(0,X.useRef)(void 0),T=(0,X.useRef)(void 0),H=(0,X.useRef)(void 0),R=(0,X.useRef)(0),B=(0,X.useRef)(s);(0,X.useEffect)(()=>{B.current=s},[s]);let j=(0,X.useCallback)(N=>{h.current=N,x(N),N&&B.current?.(N)},[]),V=(0,X.useCallback)(async()=>{if(!l)return;let N=p.current?.memoryUserId;if(!N)return;let re=await Wy(N);k(re)},[l]),K=(0,X.useCallback)(()=>C.current,[]),me=(0,X.useCallback)(N=>{let re=b2(N);re&&C.current!==re&&(C.current=re,v(re))},[]),Re=(0,X.useCallback)(()=>{C.current=void 0,v(void 0)},[]);(0,X.useEffect)(()=>{u.current=a},[a]),(0,X.useEffect)(()=>{c.current=r},[r]),(0,X.useEffect)(()=>{let N=!1,re=R.current;return(async()=>{try{let Ge=await v2();if(N)return;p.current=Ge}catch{}if(!l)return;let fe=p.current?.memoryUserId;if(!fe){M(!0);return}try{let Ge=i??await h2(fe);if(N||re!==R.current)return;if(Ge){let ut=await Zy(Ge);if(N||re!==R.current)return;ut&&ut.memoryUserId===fe&&(h.current=ut.threadId,x(ut.threadId),_.current=ut.createdAt,P.current=ut.title,ut.sessionId&&(C.current=ut.sessionId,v(ut.sessionId)),Ae(ut.messages))}await V()}finally{N||M(!0)}})(),()=>{N=!0}},[]);let ye=(0,X.useRef)(new Zd({api:t,headers:()=>({...u.current}),body:()=>{let N={...c.current??{}},re=Object.hasOwn(N,"sessionId"),fe=b2(N.sessionId);if(fe)me(fe),N.sessionId=fe;else if(re)Re(),delete N.sessionId;else{let za=K();za&&(N.sessionId=za)}if(Ml(f.current)&&(N.modelContext=f.current),p.current){let za=p.current;N.visitorContext={timezone:za.timezone,language:za.language,languages:za.languages,deviceType:za.deviceType,referrer:za.referrer,visitorId:za.visitorId};let dr=typeof N.visitor=="object"&&N.visitor!==null?N.visitor:{},z2=typeof dr.client=="object"&&dr.client!==null?dr.client:{};N.visitor={...dr,client:{...z2,memoryUserId:za.memoryUserId}}}let Ge=typeof N.extra=="object"&&N.extra!==null&&!Array.isArray(N.extra)?N.extra:void 0,ut=p.current?.memoryUserId,At=p.current?.language,Ns={};if(ut&&(Ns.memoryUserId=ut),At&&(Ns.locale=At),(Object.keys(Ns).length>0||Ge)&&(N.extra={...Ns,...Ge??{}}),d.current)if(Object.hasOwn(N,"threadId"))typeof N.threadId=="string"&&(h.current=N.threadId);else{let dr=h.current;dr||(dr=w2(),_.current=Jd(),P.current=void 0,j(dr)),N.threadId=dr}return N},fetch:(async(N,re)=>{let fe=await fetch(N,re);return f.current=void 0,me(fe.headers.get(p6)),fe})})),S=(0,X.useRef)(null),st=(0,X.useRef)(null),ot=(0,X.useRef)({}),[L,W]=(0,X.useState)(0),ee=e.skipRemoteConfig===!0,lt=(0,X.useCallback)(async()=>{if(!ee)try{let N=await h6(t,u.current);ot.current=N,W(re=>re+1)}catch(N){console.warn("[WaniWani] Failed to fetch tool definitions:",N instanceof Error?N.message:N)}},[t,ee]);(0,X.useEffect)(()=>{lt()},[lt]);let{messages:De,sendMessage:ae,setMessages:Ae,status:se}=s2({messages:e.initialMessages,transport:ye.current,onFinish({message:N}){o?.(),S.current&&(st.current=N)},onError(N){console.warn("[WaniWani] Chat error:",N.message),S.current&&(S.current.reject(N),S.current=null)}}),be=(0,X.useRef)(De);(0,X.useEffect)(()=>{be.current=De},[De]),(0,X.useEffect)(()=>{if(se==="ready"&&S.current&&st.current){let N=S.current,re=st.current;S.current=null,st.current=null,N.resolve(re)}},[se]);let[Ie,Se]=(0,X.useState)(""),[Ve,it]=(0,X.useState)([]),Ht=se==="submitted"||se==="streaming",Ua=(0,X.useCallback)(N=>{it(re=>re.filter(fe=>fe.id!==N))},[]),Fr=Ht&&Ve.length>0,ur=(0,X.useCallback)(N=>{let re=!!N.text?.trim(),fe=!!N.files?.length;if(re||fe){if(Ht){if(Ve.length>0)return;it(Ge=>[...Ge,{id:Zi(),text:N.text||"",files:N.files??[],modelContext:N.modelContext}]),Se("");return}f.current=N.modelContext,ae({text:N.text||"",files:N.files}),n?.(N.text||""),Se("")}},[ae,n,Ht,Ve.length]),Os=(0,X.useCallback)(N=>new Promise((re,fe)=>{S.current={resolve:re,reject:fe},ae({text:N}),n?.(N)}),[ae,n]);(0,X.useEffect)(()=>{if(se!=="ready"||Ve.length===0)return;let[N,...re]=Ve;it(re),f.current=N.modelContext,ae({text:N.text,files:N.files.length>0?N.files:void 0}),n?.(N.text)},[se,ae,n,Ve]);let rf=(0,X.useCallback)(()=>{Ae([]),it([]),Re(),Se(""),ot.current={},W(N=>N+1),lt()},[Ae,Re,lt]),Io=(0,X.useCallback)(()=>{if(!d.current)return;let N=p.current?.memoryUserId,re=h.current,fe=be.current;if(!(!N||!re||fe.length===0)){if(_.current||(_.current=Jd()),!P.current){let Ge=fe.find(At=>At.role==="user"),ut=Ge?Ge.parts.map(At=>"text"in At&&typeof At.text=="string"?At.text:"").join(" "):"";P.current=g2(ut)}return{threadId:re,memoryUserId:N,title:P.current,messages:fe,sessionId:C.current,createdAt:_.current,updatedAt:Jd()}}},[]),Ps=(0,X.useCallback)(async()=>{let N=Io();N&&(await Qy(N),await V())},[Io,V]);(0,X.useEffect)(()=>{if(l&&I&&!(se==="submitted"||se==="streaming")&&De.length!==0)return T.current&&clearTimeout(T.current),T.current=setTimeout(()=>{T.current=void 0;let N=Ps().finally(()=>{H.current===N&&(H.current=void 0)});H.current=N},m6),()=>{T.current&&clearTimeout(T.current)}},[l,I,De,se,Ps]);let Lo=(0,X.useCallback)(()=>{let N=H.current,re=T.current,fe=re?Io():void 0;return re&&(clearTimeout(re),T.current=void 0),(async()=>{N&&await N,fe&&(await Qy(fe),await V())})()},[Io,V]),nf=(0,X.useCallback)(()=>{R.current+=1,Lo(),Ae([]),it([]),Re(),Se("");let N=w2();return _.current=Jd(),P.current=void 0,j(N),V(),N},[Ae,Re,j,V,Lo]),D=(0,X.useCallback)(async N=>{R.current+=1;let re=R.current;if(await Lo(),re!==R.current)return;let fe=await Zy(N);re===R.current&&fe&&(j(fe.threadId),_.current=fe.createdAt,P.current=fe.title,fe.sessionId?(C.current=fe.sessionId,v(fe.sessionId)):Re(),Ae(fe.messages),it([]),Se(""))},[Ae,Re,j,Lo]),z=(0,X.useCallback)(async N=>{if(h.current===N){R.current+=1,T.current&&(clearTimeout(T.current),T.current=void 0);let re=H.current;re&&await re}await m2(N),await V(),h.current===N&&(Ae([]),it([]),Re(),Se(""),h.current=void 0,x(void 0),_.current=void 0,P.current=void 0)},[Ae,Re,V]);(0,X.useEffect)(()=>{l&&I&&i!==void 0&&i!==h.current&&D(i)},[i,l,I,D]);let te=(0,X.useCallback)(N=>{Se(N.target.value)},[]),de=De[De.length-1],_e=De.length>0,la=Ht&&(!_e||de.role==="user"),cr=ot.current;return{messages:De,status:se,text:Ie,setText:Se,handleSubmit:ur,handleTextChange:te,isLoading:Ht,showLoaderBubble:la,lastMessage:de,hasMessages:_e,sendMessage:ae,sendMessageAndWait:Os,reset:rf,queuedMessages:Ve,queueFull:Fr,removeQueuedMessage:Ua,sessionId:g,toolDefinitions:cr,refreshToolDefinitions:lt,threads:w,activeThreadId:y,isThreadHistoryReady:I,startNewThread:nf,switchThread:D,deleteThread:z}}var sr=F(Ze(),1);function g6(e){for(let t of e.parts){let a=t;if(a.type==="data"||a.type==="data-suggestions"){let r=a.data;if(r&&Array.isArray(r.suggestions))return r.suggestions}}return null}function C2(e){return typeof e=="object"&&e!==null&&"initial"in e}function I2(e){let{messages:t,status:a,config:r}=e,n=C2(r)&&r.initial?r.initial:void 0,[o,l]=(0,sr.useState)(n??[]),i=(0,sr.useRef)(a),s=r===!0||C2(r)&&r.dynamic!==!1,u=(0,sr.useCallback)(()=>{l([])},[]),c=t.length>0;(0,sr.useEffect)(()=>{!c&&n&&n.length>0&&l(n)},[n,c]);let d=t[t.length-1];return(0,sr.useEffect)(()=>{d?.role==="user"&&u()},[d,u]),(0,sr.useEffect)(()=>{let f=i.current;if(i.current=a,f==="streaming"&&a==="ready"&&s){let p=[...t].reverse().find(v=>v.role==="assistant");if(!p)return;let g=g6(p);g&&l(g)}},[a,s,t]),{suggestions:o,isLoading:!1,clear:u}}var Nl=F(Ze(),1),y6=50,x6=30,v6=2e3,L2=500;function k2(e,t=!0){let[a,r]=(0,Nl.useState)(""),n=(0,Nl.useRef)(void 0);return(0,Nl.useEffect)(()=>{if(!t){r("");return}let o=0,l=!1,i=!1,s=()=>{i||(l?(o--,r(e.slice(0,o)),o<=0?(l=!1,n.current=setTimeout(s,L2)):n.current=setTimeout(s,x6)):(o++,r(e.slice(0,o)),o>=e.length?(l=!0,n.current=setTimeout(s,v6)):n.current=setTimeout(s,y6)))};return n.current=setTimeout(s,L2),()=>{i=!0,clearTimeout(n.current)}},[e,t]),a}function T2(e,t){let a=t?.Authorization,r=typeof a=="string"&&a.startsWith("Bearer ")?a.slice(7):null;return r?`${e}/resource?token=${encodeURIComponent(r)}`:`${e}/resource`}var w6={primaryColor:"#6366f1",primaryForeground:"#1f2937",backgroundColor:"#ffffff",textColor:"#1f2937",mutedColor:"#6b7280",borderColor:"#e5e7eb",assistantBubbleColor:"#f3f4f6",userBubbleColor:"#f4f4f4",inputBackgroundColor:"#f9fafb",borderRadius:16,messageBorderRadius:12,fontFamily:"system-ui, -apple-system, 'Segoe UI', sans-serif",headerBackgroundColor:"#ffffff",headerTextColor:"#1f2937",statusColor:"#22c55e",toolCardColor:"#f4f4f5"};var b6={primaryColor:["--ww-primary","--ww-color-primary"],primaryForeground:["--ww-primary-fg","--ww-color-primary-foreground"],backgroundColor:["--ww-bg","--ww-color-background"],textColor:["--ww-text","--ww-color-foreground","--ww-color-accent-foreground"],mutedColor:["--ww-muted","--ww-color-muted-foreground"],borderColor:["--ww-border","--ww-color-border"],assistantBubbleColor:["--ww-assistant-bubble","--ww-color-accent"],userBubbleColor:["--ww-user-bubble"],inputBackgroundColor:["--ww-input-bg","--ww-color-input"],borderRadius:["--ww-radius"],messageBorderRadius:["--ww-msg-radius"],fontFamily:["--ww-font"],headerBackgroundColor:["--ww-header-bg"],headerTextColor:["--ww-header-text"],statusColor:["--ww-status"],toolCardColor:["--ww-tool-card","--ww-color-tool-card"]};function A2(e){return{...w6,...e}}function M2(e){let t=e.backgroundColor.replace("#",""),a=parseInt(t.substring(0,2),16),r=parseInt(t.substring(2,4),16),n=parseInt(t.substring(4,6),16);return(a*299+r*587+n*114)/1e3<128}function E2(e){let t={};for(let[a,r]of Object.entries(b6)){let n=e[a],o=typeof n=="number"?`${n}px`:String(n);for(let l of r)t[l]=o}return t}var et=F(ce(),1),R2=(0,nt.forwardRef)(function(t,a){let{theme:r,className:n,allowAttachments:o=!1,welcomeMessage:l,welcome:i,placeholder:s="Ask me anything...",triggerEvent:u="triggerDemoRequest",api:c,mcp:d,debug:f=!1,readOnly:p=!1,title:g,headerActions:v,enableThreadHistory:C=!1,showToolCalls:y=!0}=t,x=A2(r),h=E2(x),w=M2(x),k=S2({...t,api:c}),I=bM({...t,api:c,sessionId:k.sessionId,onCallTool:d?.onCallTool}),M=d?.resourceEndpoint??T2(c,t.headers),_=k2(s,!k.text),[P,T]=(0,nt.useState)(null),H=(0,nt.useRef)(null),R=(0,nt.useRef)(null),B=(0,nt.useRef)(null),j=(0,nt.useRef)(null),[V,K]=(0,nt.useState)(!0),me=(0,nt.useRef)(V);me.current=V;let Re=(0,nt.useCallback)(()=>{let W=H.current;if(!W)return;let ee=W.querySelector("textarea");ee&&ee.focus()},[]),ye=(0,nt.useCallback)((W="smooth")=>{let ee=R.current;ee&&ee.scrollTo({top:ee.scrollHeight,behavior:W})},[]);(0,nt.useEffect)(()=>{let W=j.current,ee=R.current;if(!W||!ee)return;let lt=new IntersectionObserver(([De])=>K(De.isIntersecting),{root:ee,rootMargin:"0px 0px 200px 0px",threshold:0});return lt.observe(W),()=>lt.disconnect()},[]),(0,nt.useEffect)(()=>{(k.messages[k.messages.length-1]?.role==="user"||me.current)&&ye("smooth")},[k.messages.length,k.messages[k.messages.length-1]]),(0,nt.useEffect)(()=>{ye("auto")},[ye]),(0,nt.useEffect)(()=>{if(typeof ResizeObserver>"u")return;let W=R.current,ee=B.current;if(!W&&!ee)return;let lt=W?.scrollHeight??0,De=W?.clientHeight??0,ae=new ResizeObserver(()=>{let Ae=R.current;if(!Ae)return;let se=Ae.scrollTop+De>=lt-5;lt=Ae.scrollHeight,De=Ae.clientHeight,se&&ye("auto")});return W&&ae.observe(W),ee&&ae.observe(ee),()=>ae.disconnect()},[ye]);let S=I2({messages:k.messages,status:k.status,config:t.suggestions}),st=(0,nt.useCallback)(W=>{let ee=W.content.map(lt=>lt.text??"").join("").trim();ee&&k.handleSubmit({text:ee,files:[],modelContext:W.modelContext})},[k.handleSubmit]),ot=(0,nt.useCallback)(W=>{S.clear(),k.handleSubmit({text:W,files:[]})},[S.clear,k.handleSubmit]);(0,nt.useImperativeHandle)(a,()=>({sendMessage:W=>{k.handleSubmit({text:W,files:[]}),Re()},sendMessageAndWait:W=>k.sendMessageAndWait(W),reset:k.reset,focus:Re,get messages(){return k.messages}}),[k.handleSubmit,k.sendMessageAndWait,k.reset,k.messages,Re]),(0,nt.useEffect)(()=>{if(!u)return;let W=ee=>{let lt=ee.detail,De=typeof lt?.message=="string"?lt.message:void 0;De&&k.handleSubmit({text:De,files:[]}),Re()};return window.addEventListener(u,W),()=>window.removeEventListener(u,W)},[u,k.handleSubmit,Re]);let L=!!(g||C||v);return(0,et.jsxs)("div",{ref:H,style:{...h,maxHeight:"inherit"},"data-waniwani-chat":"","data-waniwani-layout":"embed",...w?{"data-waniwani-dark":""}:{},className:Q("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",n),children:[L&&(0,et.jsxs)("div",{className:"ww:shrink-0 ww:flex ww:items-center ww:gap-2 ww:px-6 ww:py-3 ww:bg-background ww:border-b ww:border-border",style:{backgroundColor:x.headerBackgroundColor,color:x.headerTextColor},children:[g&&(0,et.jsx)("div",{className:"ww:text-sm ww:font-semibold ww:truncate ww:flex-1 ww:min-w-0",children:g}),!g&&(0,et.jsx)("div",{className:"ww:flex-1"}),v,C&&(0,et.jsx)(wM,{threads:k.threads,activeThreadId:k.activeThreadId,onNewThread:k.startNewThread,onSelectThread:W=>{k.switchThread(W)},onDeleteThread:W=>{k.deleteThread(W)}})]}),(0,et.jsxs)("div",{ref:R,className:Q("ww:relative ww:flex-1 ww:min-h-0",P?"ww:overflow-hidden":"ww:overflow-y-auto"),children:[(0,et.jsxs)("div",{ref:B,className:Q("ww:mx-auto ww:w-full ww:max-w-3xl ww:px-4 ww:py-6 ww:flex ww:flex-col ww:gap-6",P&&"ww:!py-0"),children:[(0,et.jsx)(gM,{messages:k.messages,status:k.status,welcomeMessage:l,welcome:i,onSuggestionSelect:ot,resourceEndpoint:M,chatSessionId:k.sessionId,isDark:w,onFollowUp:st,onCallTool:I,fullscreenToolCallId:P,debug:f,showToolCalls:y,toolDefinitions:k.toolDefinitions,onWidgetDisplayModeChange:(W,ee)=>{T(W==="fullscreen"?ee.toolCallId:null)}}),(0,et.jsx)("div",{ref:j,"aria-hidden":!0,style:{height:1}})]}),!V&&!P&&(0,et.jsx)("div",{className:"ww:sticky ww:bottom-2 ww:flex ww:justify-center ww:pointer-events-none",children:(0,et.jsx)(tr,{type:"button",onClick:()=>ye("smooth"),size:"icon",variant:"outline",className:"ww:rounded-full ww:shadow ww:pointer-events-auto","aria-label":"Scroll to latest",children:(0,et.jsx)(zi,{className:"ww:size-4"})})})]}),!p&&(0,et.jsxs)("div",{className:"ww:shrink-0 ww:bg-background",style:P?{display:"none"}:void 0,children:[(0,et.jsx)(xM,{suggestions:S.suggestions,isLoading:S.isLoading,onSelect:ot}),(0,et.jsx)(m0,{queuedMessages:k.queuedMessages,onRemove:k.removeQueuedMessage}),(0,et.jsx)("div",{className:"ww:px-4 ww:pb-2 ww:pt-2",children:(0,et.jsxs)("div",{className:"ww:mx-auto ww:w-full ww:max-w-3xl",children:[(0,et.jsx)(r0,{onSubmit:k.handleSubmit,globalDrop:o,multiple:o,className:"ww:rounded-2xl ww:border-border ww:bg-input",children:(0,et.jsxs)("div",{className:"ww:flex ww:items-center ww:gap-1 ww:pl-4 ww:pr-3 ww:py-2.5",children:[o&&(0,et.jsx)(l0,{}),(0,et.jsx)(n0,{onChange:k.handleTextChange,value:k.text,placeholder:_,className:"ww:min-h-0 ww:py-1 ww:px-0"}),(0,et.jsx)(o0,{status:k.status,disabled:k.queueFull})]})}),(0,et.jsx)(yM,{})]})})]})]})});var ef=F(Ze(),1);async function S6(e,t,a){try{let r=`${e.replace(/\/$/,"")}/config`,n=await fetch(r,{method:"GET",headers:{Authorization:`Bearer ${t}`},signal:a});if(!n.ok)return{};let o=await n.json(),l=o&&typeof o=="object"&&"data"in o&&o.data?o.data:o;return l?C6(l):{}}catch{return{}}}function C6(e){let t={};return e.title!=null&&(t.title=e.title),e.welcomeMessage!=null&&(t.welcomeMessage=e.welcomeMessage),e.placeholder!=null&&(t.placeholder=e.placeholder),e.suggestions!=null&&e.suggestions.length>0&&(t.suggestions=e.suggestions),typeof e.enableThreadHistory=="boolean"&&(t.enableThreadHistory=e.enableThreadHistory),t}function D2(e,t,a){let[r,n]=(0,ef.useState)(e);return(0,ef.useEffect)(()=>{let o=e.api,l=e.token;if(!o||!l)return;let i=new AbortController;return S6(o,l,i.signal).then(s=>{if(!i.signal.aborted&&Object.keys(s).length!==0)try{n(gc(t,s,a))}catch(u){console.error("[WaniWani] Failed to apply remote config:",u)}}).catch(s=>{console.error("[WaniWani] Remote config fetch failed:",s)}),()=>i.abort()},[e.api,e.token]),r}var O2=F(ce(),1),_2=(0,_n.forwardRef)(function({config:t,programmatic:a,scriptConfig:r,onReady:n},o){let l=D2(t,a,r),i=(0,_n.useRef)(null);(0,_n.useEffect)(()=>{n?.()},[]),(0,_n.useImperativeHandle)(o,()=>({get chat(){return i.current}}),[]);let s=jS(l),u={};return l.mcpServerUrl&&(u.mcpServerUrl=l.mcpServerUrl),l.channelId&&(u.channelId=l.channelId),(0,O2.jsx)(R2,{ref:i,api:l.api??"",headers:{Authorization:`Bearer ${l.token}`},skipRemoteConfig:!0,body:Object.keys(u).length>0?u:void 0,theme:s,title:l.title,welcomeMessage:l.welcomeMessage,placeholder:l.placeholder,suggestions:l.suggestions?{initial:l.suggestions}:void 0,enableThreadHistory:l.enableThreadHistory,showToolCalls:l.showToolCalls})});var Ky="/*! 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\\:relative{position:relative}.ww\\:sticky{position:sticky}.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-4{bottom:calc(var(--ww-spacing)*4)}.ww\\:left-\\[50\\%\\]{left:50%}.ww\\:z-50{z-index:50}.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-2{margin-bottom:calc(var(--ww-spacing)*2)}.ww\\:mb-4{margin-bottom:calc(var(--ww-spacing)*4)}.ww\\:ml-auto{margin-left:auto}.ww\\:line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ww\\:contents{display:contents}.ww\\:flex{display:flex}.ww\\:grid{display:grid}.ww\\:hidden{display:none}.ww\\:inline-block{display:inline-block}.ww\\:inline-flex{display:inline-flex}.ww\\:field-sizing-content{field-sizing:content}.ww\\:size-2{width:calc(var(--ww-spacing)*2);height:calc(var(--ww-spacing)*2)}.ww\\:size-3{width:calc(var(--ww-spacing)*3);height:calc(var(--ww-spacing)*3)}.ww\\:size-3\\.5{width:calc(var(--ww-spacing)*3.5);height:calc(var(--ww-spacing)*3.5)}.ww\\:size-4{width:calc(var(--ww-spacing)*4);height:calc(var(--ww-spacing)*4)}.ww\\:size-5{width:calc(var(--ww-spacing)*5);height:calc(var(--ww-spacing)*5)}.ww\\:size-7{width:calc(var(--ww-spacing)*7);height:calc(var(--ww-spacing)*7)}.ww\\:size-8{width:calc(var(--ww-spacing)*8);height:calc(var(--ww-spacing)*8)}.ww\\:size-9{width:calc(var(--ww-spacing)*9);height:calc(var(--ww-spacing)*9)}.ww\\:size-12{width:calc(var(--ww-spacing)*12);height:calc(var(--ww-spacing)*12)}.ww\\:size-auto{width:auto;height:auto}.ww\\:size-full{width:100%;height:100%}.ww\\:h-2\\.5{height:calc(var(--ww-spacing)*2.5)}.ww\\:h-7{height:calc(var(--ww-spacing)*7)}.ww\\:h-8{height:calc(var(--ww-spacing)*8)}.ww\\:h-9{height:calc(var(--ww-spacing)*9)}.ww\\:h-16{height:calc(var(--ww-spacing)*16)}.ww\\:h-auto{height:auto}.ww\\:h-full{height:100%}.ww\\:max-h-48{max-height:calc(var(--ww-spacing)*48)}.ww\\:max-h-80{max-height:calc(var(--ww-spacing)*80)}.ww\\:min-h-0{min-height:calc(var(--ww-spacing)*0)}.ww\\:min-h-full{min-height:100%}.ww\\:w-72{width:calc(var(--ww-spacing)*72)}.ww\\:w-auto{width:auto}.ww\\:w-fit{width:fit-content}.ww\\:w-full{width:100%}.ww\\:max-w-3xl{max-width:var(--ww-container-3xl)}.ww\\:max-w-24{max-width:calc(var(--ww-spacing)*24)}.ww\\:max-w-32{max-width:calc(var(--ww-spacing)*32)}.ww\\:max-w-\\[80\\%\\]{max-width:80%}.ww\\:max-w-full{max-width:100%}.ww\\:max-w-md{max-width:var(--ww-container-md)}.ww\\:max-w-sm{max-width:var(--ww-container-sm)}.ww\\:min-w-0{min-width:calc(var(--ww-spacing)*0)}.ww\\:flex-1{flex:1}.ww\\:shrink-0{flex-shrink:0}.ww\\:grow{flex-grow:1}.ww\\:translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:rotate-90{rotate:90deg}.ww\\:rotate-180{rotate:180deg}.ww\\:animate-\\[ww-fade-in_0\\.2s_ease-out_both\\]{animation:.2s ease-out both ww-fade-in}.ww\\:animate-pulse{animation:var(--ww-animate-pulse)}.ww\\:animate-spin{animation:var(--ww-animate-spin)}.ww\\:cursor-pointer{cursor:pointer}.ww\\:resize-none{resize:none}.ww\\:grid-rows-\\[0fr\\]{grid-template-rows:0fr}.ww\\:grid-rows-\\[1fr\\]{grid-template-rows:1fr}.ww\\:flex-col{flex-direction:column}.ww\\:flex-wrap{flex-wrap:wrap}.ww\\:items-center{align-items:center}.ww\\:items-end{align-items:flex-end}.ww\\:items-start{align-items:flex-start}.ww\\:justify-between{justify-content:space-between}.ww\\:justify-center{justify-content:center}.ww\\:gap-1{gap:calc(var(--ww-spacing)*1)}.ww\\:gap-1\\.5{gap:calc(var(--ww-spacing)*1.5)}.ww\\:gap-2{gap:calc(var(--ww-spacing)*2)}.ww\\:gap-3{gap:calc(var(--ww-spacing)*3)}.ww\\:gap-6{gap:calc(var(--ww-spacing)*6)}:where(.ww\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ww-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ww-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.ww\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ww-spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ww-spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}.ww\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ww\\:\\!overflow-hidden{overflow:hidden!important}.ww\\:overflow-hidden{overflow:hidden}.ww\\:overflow-x-auto{overflow-x:auto}.ww\\:overflow-y-auto{overflow-y:auto}.ww\\:overflow-y-hidden{overflow-y:hidden}.ww\\:\\!rounded-full{border-radius:3.40282e38px!important}.ww\\:rounded{border-radius:var(--ww-radius,16px)}.ww\\:rounded-2xl{border-radius:var(--ww-radius-2xl)}.ww\\:rounded-\\[var\\(--ww-radius\\)\\]{border-radius:var(--ww-radius)}.ww\\:rounded-full{border-radius:3.40282e38px}.ww\\:rounded-lg{border-radius:var(--ww-radius-lg)}.ww\\:rounded-md{border-radius:var(--ww-radius-md)}.ww\\:rounded-xl{border-radius:var(--ww-radius-xl)}.ww\\:border{border-style:var(--tw-border-style);border-width:1px}.ww\\:border-0{border-style:var(--tw-border-style);border-width:0}.ww\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.ww\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ww\\:border-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-foreground,.ww\\:bg-foreground\\/5{background-color:var(--ww-color-foreground,#1f2937)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-foreground\\/5{background-color:color-mix(in oklab,var(--ww-color-foreground,#1f2937)5%,transparent)}}.ww\\:bg-input{background-color:var(--ww-color-input,#f9fafb)}.ww\\:bg-muted{background-color:var(--ww-color-muted,#f1f5f9)}.ww\\:bg-muted-foreground\\/60{background-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-muted-foreground\\/60{background-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)60%,transparent)}}.ww\\:bg-muted\\/50{background-color:var(--ww-color-muted,#f1f5f9)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-muted\\/50{background-color:color-mix(in oklab,var(--ww-color-muted,#f1f5f9)50%,transparent)}}.ww\\:bg-primary{background-color:var(--ww-color-primary,#6366f1)}.ww\\:bg-tool-card{background-color:var(--ww-color-tool-card,#f4f4f5)}.ww\\:bg-transparent{background-color:#0000}.ww\\:object-cover{object-fit:cover}.ww\\:p-1{padding:calc(var(--ww-spacing)*1)}.ww\\:p-1\\.5{padding:calc(var(--ww-spacing)*1.5)}.ww\\:p-3{padding:calc(var(--ww-spacing)*3)}.ww\\:px-0{padding-inline:calc(var(--ww-spacing)*0)}.ww\\:px-1\\.5{padding-inline:calc(var(--ww-spacing)*1.5)}.ww\\:px-2{padding-inline:calc(var(--ww-spacing)*2)}.ww\\:px-3{padding-inline:calc(var(--ww-spacing)*3)}.ww\\:px-4{padding-inline:calc(var(--ww-spacing)*4)}.ww\\:px-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-2{padding-top:calc(var(--ww-spacing)*2)}.ww\\:pt-2\\.5{padding-top:calc(var(--ww-spacing)*2.5)}.ww\\:pt-3{padding-top:calc(var(--ww-spacing)*3)}.ww\\:pr-3{padding-right:calc(var(--ww-spacing)*3)}.ww\\:pb-1{padding-bottom:calc(var(--ww-spacing)*1)}.ww\\:pb-1\\.5{padding-bottom:calc(var(--ww-spacing)*1.5)}.ww\\:pb-2{padding-bottom:calc(var(--ww-spacing)*2)}.ww\\:pb-3{padding-bottom:calc(var(--ww-spacing)*3)}.ww\\:pb-8{padding-bottom:calc(var(--ww-spacing)*8)}.ww\\:pl-4{padding-left:calc(var(--ww-spacing)*4)}.ww\\:text-center{text-align:center}.ww\\:text-left{text-align:left}.ww\\:font-\\[family-name\\:var\\(--ww-font\\)\\]{font-family:var(--ww-font)}.ww\\:font-mono{font-family:var(--ww-font-mono)}.ww\\:text-base{font-size:var(--ww-text-base);line-height:var(--tw-leading,var(--ww-text-base--line-height))}.ww\\:text-lg{font-size:var(--ww-text-lg);line-height:var(--tw-leading,var(--ww-text-lg--line-height))}.ww\\:text-sm{font-size:var(--ww-text-sm);line-height:var(--tw-leading,var(--ww-text-sm--line-height))}.ww\\:text-xs{font-size:var(--ww-text-xs);line-height:var(--tw-leading,var(--ww-text-xs--line-height))}.ww\\:text-\\[10px\\]{font-size:10px}.ww\\:text-\\[11px\\]{font-size:11px}.ww\\:font-medium{--tw-font-weight:var(--ww-font-weight-medium);font-weight:var(--ww-font-weight-medium)}.ww\\:font-semibold{--tw-font-weight:var(--ww-font-weight-semibold);font-weight:var(--ww-font-weight-semibold)}.ww\\:tracking-wide{--tw-tracking:var(--ww-tracking-wide);letter-spacing:var(--ww-tracking-wide)}.ww\\:tracking-wider{--tw-tracking:var(--ww-tracking-wider);letter-spacing:var(--ww-tracking-wider)}.ww\\:break-words{overflow-wrap:break-word}.ww\\:break-all{word-break:break-all}.ww\\:whitespace-pre-wrap{white-space:pre-wrap}.ww\\:text-background{color:var(--ww-color-background,#fff)}.ww\\:text-foreground,.ww\\:text-foreground\\/80{color:var(--ww-color-foreground,#1f2937)}@supports (color:color-mix(in lab, red, red)){.ww\\:text-foreground\\/80{color:color-mix(in oklab,var(--ww-color-foreground,#1f2937)80%,transparent)}}.ww\\:text-muted-foreground{color:var(--ww-color-muted-foreground,#6b7280)}.ww\\:text-primary{color:var(--ww-color-primary,#6366f1)}.ww\\:text-primary-foreground{color:var(--ww-color-primary-foreground,#1f2937)}.ww\\:uppercase{text-transform:uppercase}.ww\\:italic{font-style:italic}.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\\:shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ww\\:ring-2{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ww\\:ring-blue-400\\/70{--tw-ring-color:var(--ww-color-blue-400)}@supports (color:color-mix(in lab, red, red)){.ww\\:ring-blue-400\\/70{--tw-ring-color:color-mix(in oklab,var(--ww-color-blue-400)70%,transparent)}}.ww\\:ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color)}.ww\\:ring-offset-background{--tw-ring-offset-color:var(--ww-color-background,#fff)}.ww\\:transition-\\[grid-template-rows\\,opacity\\]{transition-property:grid-template-rows,opacity;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--ww-default-transition-timing-function));transition-duration:var(--tw-duration,var(--ww-default-transition-duration))}.ww\\:duration-150{--tw-duration:.15s;transition-duration:.15s}.ww\\:duration-200{--tw-duration:.2s;transition-duration:.2s}.ww\\:duration-300{--tw-duration:.3s;transition-duration:.3s}.ww\\:ease-out{--tw-ease:var(--ww-ease-out);transition-timing-function:var(--ww-ease-out)}.ww\\:outline-none{--tw-outline-style:none;outline-style:none}@media (hover:hover){.ww\\:group-hover\\:opacity-0:is(:where(.ww\\:group):hover *){opacity:0}.ww\\:group-hover\\:opacity-100:is(:where(.ww\\:group):hover *){opacity:1}}.ww\\:group-\\[\\.is-assistant\\]\\:text-foreground:is(:where(.ww\\:group).is-assistant *){color:var(--ww-color-foreground,#1f2937)}.ww\\:group-\\[\\.is-user\\]\\:ml-auto:is(:where(.ww\\:group).is-user *){margin-left:auto}.ww\\:group-\\[\\.is-user\\]\\:rounded-lg:is(:where(.ww\\:group).is-user *){border-radius:var(--ww-radius-lg)}.ww\\:group-\\[\\.is-user\\]\\:bg-user-bubble:is(:where(.ww\\:group).is-user *){background-color:var(--ww-color-user-bubble,#f4f4f4)}.ww\\:group-\\[\\.is-user\\]\\:px-4:is(:where(.ww\\:group).is-user *){padding-inline:calc(var(--ww-spacing)*4)}.ww\\:group-\\[\\.is-user\\]\\:py-3:is(:where(.ww\\:group).is-user *){padding-block:calc(var(--ww-spacing)*3)}.ww\\:group-\\[\\.is-user\\]\\:text-primary-foreground:is(:where(.ww\\:group).is-user *){color:var(--ww-color-primary-foreground,#1f2937)}.ww\\:placeholder\\:text-muted-foreground::placeholder{color:var(--ww-color-muted-foreground,#6b7280)}@media (hover:hover){.ww\\:hover\\:border-primary\\/30:hover{border-color:var(--ww-color-primary,#6366f1)}@supports (color:color-mix(in lab, red, red)){.ww\\:hover\\:border-primary\\/30:hover{border-color:color-mix(in oklab,var(--ww-color-primary,#6366f1)30%,transparent)}}.ww\\:hover\\:bg-accent:hover{background-color:var(--ww-color-accent,#f3f4f6)}.ww\\:hover\\:bg-foreground:hover{background-color:var(--ww-color-foreground,#1f2937)}.ww\\:hover\\:bg-muted:hover{background-color:var(--ww-color-muted,#f1f5f9)}.ww\\:hover\\:bg-muted-foreground\\/10:hover{background-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:hover\\:bg-muted-foreground\\/10:hover{background-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)10%,transparent)}}.ww\\:hover\\:bg-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}.ww\\:\\[\\&\\>\\*\\:first-child\\]\\:mt-0>:first-child{margin-top:calc(var(--ww-spacing)*0)}.ww\\:\\[\\&\\>\\*\\:last-child\\]\\:mb-0>:last-child{margin-bottom:calc(var(--ww-spacing)*0)}}@keyframes ww-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes ww-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}@keyframes ww-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}[data-waniwani-chat] ::-webkit-scrollbar{width:8px}[data-waniwani-chat] ::-webkit-scrollbar-track{background:0 0}[data-waniwani-chat] ::-webkit-scrollbar-thumb{background:var(--ww-color-border);border-radius:9999px}[data-waniwani-chat] ::-webkit-scrollbar-thumb:hover{background:var(--ww-color-muted-foreground)}[data-waniwani-chat] *{scrollbar-width:thin;scrollbar-color:var(--ww-color-border)transparent}[data-waniwani-chat]{--ww-color-background:var(--ww-bg,#fff);--ww-color-foreground:var(--ww-text,#1f2937);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#1f2937);--ww-color-muted-foreground:var(--ww-muted,#6b7280);--ww-color-border:var(--ww-border,#e5e7eb);--ww-color-input:var(--ww-input-bg,#f9fafb);--ww-color-accent:var(--ww-assistant-bubble,#f3f4f6);--ww-color-accent-foreground:var(--ww-text,#1f2937);--ww-color-user-bubble:var(--ww-user-bubble,#f4f4f4);--ww-color-card:var(--ww-bg,#fff);--ww-color-card-foreground:var(--ww-text,#1f2937);--ww-color-card-header:var(--ww-header-bg,#fff);--ww-color-card-header-foreground:var(--ww-header-text,#1f2937);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#f4f4f5);--ww-radius:var(--ww-radius,16px);--ww-font-sans:var(--ww-font,system-ui,-apple-system,\"Segoe UI\",sans-serif)}.dark [data-waniwani-chat],[data-waniwani-chat].dark{--ww-color-background:var(--ww-bg,#212121);--ww-color-foreground:var(--ww-text,#ececec);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#fff);--ww-color-muted-foreground:var(--ww-muted,#8e8ea0);--ww-color-border:var(--ww-border,#444);--ww-color-input:var(--ww-input-bg,#2f2f2f);--ww-color-accent:var(--ww-assistant-bubble,#2f2f2f);--ww-color-accent-foreground:var(--ww-text,#ececec);--ww-color-user-bubble:var(--ww-user-bubble,#303030);--ww-color-card:var(--ww-bg,#212121);--ww-color-card-foreground:var(--ww-text,#ececec);--ww-color-card-header:var(--ww-header-bg,#1e1e1e);--ww-color-card-header-foreground:var(--ww-header-text,#ececec);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#262626)}[data-waniwani-chat] [data-streamdown=table-wrapper]{flex-direction:column;gap:.5rem;margin-top:1rem;margin-bottom:1rem;display:flex}[data-waniwani-chat] [data-streamdown=table-wrapper]>div:first-child:has(button){justify-content:flex-end;align-items:center;gap:.25rem;display:flex}[data-waniwani-chat] [data-streamdown=table-wrapper]>div:last-child{overflow-x:auto}[data-waniwani-chat] [data-streamdown=table]{border-collapse:collapse;border:1px solid var(--ww-color-border);border-radius:.75rem;width:100%;overflow:hidden}[data-waniwani-chat] [data-streamdown=table-header]{background-color:var(--ww-color-accent)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=table-header]{background-color:color-mix(in srgb,var(--ww-color-accent)80%,transparent)}}[data-waniwani-chat] [data-streamdown=table-body]{background-color:var(--ww-color-accent)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=table-body]{background-color:color-mix(in srgb,var(--ww-color-accent)40%,transparent)}}[data-waniwani-chat] [data-streamdown=table-body]>tr+tr{border-top:1px solid var(--ww-color-border)}[data-waniwani-chat] [data-streamdown=table-row]{border-bottom:1px solid var(--ww-color-border)}[data-waniwani-chat] [data-streamdown=table-header-cell]{white-space:nowrap;text-align:left;padding:.5rem 1rem;font-size:.875rem;font-weight:600}[data-waniwani-chat] [data-streamdown=table-cell]{padding:.5rem 1rem;font-size:.875rem}[data-waniwani-chat] [data-streamdown=link]{color:var(--ww-color-primary);overflow-wrap:anywhere;cursor:pointer;font-weight:500;text-decoration:underline}[data-waniwani-chat] [data-streamdown=link-safety-modal]{z-index:50;background-color:var(--ww-color-background);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=link-safety-modal]{background-color:color-mix(in srgb,var(--ww-color-background)50%,transparent)}}[data-waniwani-chat] [data-streamdown=link-safety-modal]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div{border:1px solid var(--ww-color-border);background-color:var(--ww-color-background);width:100%;max-width:28rem;color:var(--ww-color-foreground);border-radius:.75rem;flex-direction:column;gap:1rem;margin:0 1rem;padding:1.5rem;display:flex;position:relative;box-shadow:0 10px 25px #0000001a}[data-waniwani-chat] [data-streamdown=link-safety-modal] button{cursor:pointer}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>button:first-child{color:var(--ww-color-muted-foreground);background:0 0;border:none;border-radius:.375rem;padding:.25rem;transition:background-color .15s,color .15s;position:absolute;top:1rem;right:1rem}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>button:first-child:hover{background-color:var(--ww-color-accent);color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type{flex-direction:column;gap:.5rem;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type>div{align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type>p{color:var(--ww-color-muted-foreground);font-size:.875rem}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:nth-child(3){word-break:break-all;background-color:var(--ww-color-accent);border-radius:.375rem;max-height:8rem;padding:.75rem;font-family:ui-monospace,monospace;font-size:.875rem;overflow-y:auto}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child{gap:.5rem;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button{border:none;border-radius:.375rem;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .15s;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:first-child{border:1px solid var(--ww-color-border);background-color:var(--ww-color-background);color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:first-child:hover{background-color:var(--ww-color-accent)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:last-child{background-color:var(--ww-color-primary);color:#fff}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:last-child:hover{opacity:.9}[data-waniwani-chat] [data-streamdown=ordered-list]{white-space:normal;list-style-type:decimal;list-style-position:inside}[data-waniwani-chat] li [data-streamdown=ordered-list]{padding-left:1.5rem}[data-waniwani-chat] [data-streamdown=unordered-list]{white-space:normal;list-style-type:disc;list-style-position:inside}[data-waniwani-chat] li [data-streamdown=unordered-list]{padding-left:1.5rem}[data-waniwani-chat] [data-streamdown=list-item]{padding-top:.25rem;padding-bottom:.25rem}[data-waniwani-chat] [data-streamdown=list-item]>p{display:inline}[data-waniwani-chat] [data-streamdown=inline-code]{background-color:var(--ww-color-accent);border-radius:.25rem;padding:.125rem .375rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:.875rem}[data-waniwani-chat] [data-streamdown=heading-1]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.875rem;font-weight:600;line-height:2.25rem}[data-waniwani-chat] [data-streamdown=heading-2]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.5rem;font-weight:600;line-height:2rem}[data-waniwani-chat] [data-streamdown=heading-3]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.25rem;font-weight:600;line-height:1.75rem}[data-waniwani-chat] [data-streamdown=heading-4]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.125rem;font-weight:600;line-height:1.75rem}[data-waniwani-chat] [data-streamdown=heading-5]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1rem;font-weight:600;line-height:1.5rem}[data-waniwani-chat] [data-streamdown=heading-6]{margin-top:1.5rem;margin-bottom:.5rem;font-size:.875rem;font-weight:600;line-height:1.25rem}[data-waniwani-chat] [data-streamdown=blockquote]{border-left:4px solid var(--ww-color-muted-foreground);margin-top:1rem;margin-bottom:1rem}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=blockquote]{border-left:4px solid color-mix(in srgb,var(--ww-color-muted-foreground)30%,transparent)}}[data-waniwani-chat] [data-streamdown=blockquote]{color:var(--ww-color-muted-foreground);padding-left:1rem;font-style:italic}[data-waniwani-chat] [data-streamdown=horizontal-rule]{border-color:var(--ww-color-border);margin-top:1.5rem;margin-bottom:1.5rem}[data-waniwani-chat] [data-streamdown=strong]{font-weight:600}[data-waniwani-chat] [data-streamdown=image-wrapper]{margin-top:1rem;margin-bottom:1rem;display:inline-block;position:relative}[data-waniwani-chat] [data-streamdown=image]{border-radius:.5rem;max-width:100%}[data-waniwani-chat] [data-streamdown=code-block]{border:1px solid var(--ww-color-border);border-radius:.75rem;width:100%;margin-top:1rem;margin-bottom:1rem;overflow:hidden}[data-waniwani-chat] [data-streamdown=code-block-header]{background-color:var(--ww-color-accent);justify-content:space-between;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=code-block-header]{background-color:color-mix(in srgb,var(--ww-color-accent)80%,transparent)}}[data-waniwani-chat] [data-streamdown=code-block-header]{color:var(--ww-color-muted-foreground);padding:.75rem;font-size:.75rem}[data-waniwani-chat] [data-streamdown=code-block-body]{padding:1rem;font-size:.875rem;overflow-x:auto}[data-waniwani-chat] [data-streamdown=code-block-copy-button],[data-waniwani-chat] [data-streamdown=code-block-download-button]{cursor:pointer;color:var(--ww-color-muted-foreground);background:0 0;border:none;padding:.25rem;transition:color .15s}[data-waniwani-chat] [data-streamdown=code-block-copy-button]:hover,[data-waniwani-chat] [data-streamdown=code-block-download-button]:hover{color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=mermaid-block]{border:1px solid var(--ww-color-border);border-radius:.75rem;height:auto;margin-top:1rem;margin-bottom:1rem;padding:1rem;position:relative}[data-waniwani-chat] [data-streamdown=mermaid]{width:100%;height:100%}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-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}}",Pn=null,tf=null,On=null,af=null;function I6(e,t){if(Ky&&Ky!=="__WANIWANI_EMBED_CSS__"){let a=document.createElement("style");a.textContent=Ky,e.appendChild(a)}if(t.css)try{let a=new URL(t.css,window.location.href);if(a.protocol==="https:"||a.protocol==="http:"){let r=document.createElement("link");r.rel="stylesheet",r.href=a.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 P2="data-waniwani-embed";function L6(e,t,a){let r=document.querySelector(`[${P2}]`);if(!r)throw new Error(`[WaniWani] No inline mount target. Place \`<div ${P2}></div>\` in your page.`);On=document.createElement("div"),On.id="waniwani-chat-embed",On.style.cssText="width:100%;height:100%;max-height:inherit;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;",r.appendChild(On);let n=On,o=()=>{let u=getComputedStyle(r);if(!u.maxHeight.endsWith("px")){n.style.removeProperty("max-height");return}let c=Number.parseFloat(u.maxHeight);if(!Number.isFinite(c)){n.style.removeProperty("max-height");return}let d=c;u.boxSizing==="border-box"&&(d-=(Number.parseFloat(u.paddingTop)||0)+(Number.parseFloat(u.paddingBottom)||0)+(Number.parseFloat(u.borderTopWidth)||0)+(Number.parseFloat(u.borderBottomWidth)||0)),d>0?n.style.maxHeight=`${d}px`:n.style.removeProperty("max-height")};o(),af=new ResizeObserver(o),af.observe(r);let l=On.attachShadow({mode:"open"});I6(l,e);let i=document.createElement("div");i.className="ww:contents",l.appendChild(i);let s=Yy.default.createRef();return tf=B2.default.createRoot(i),tf.render(Yy.default.createElement(_2,{ref:s,config:e,programmatic:t,scriptConfig:a})),{destroy:()=>{af?.disconnect(),af=null,tf?.unmount(),tf=null,On?.remove(),On=null,Pn=null},sendMessage:u=>s.current?.chat?.sendMessage(u)}}function U2(e){if(Pn)return console.warn("[WaniWani] Chat widget is already initialized. Call destroy() first to re-initialize."),Pn;let t=hc(),a=gc(e,void 0,t);return Pn=L6(a,e,t),Pn}function k6(){Pn&&Pn.destroy()}window.WaniWani=window.WaniWani||{};window.WaniWani.chat={init:U2,destroy:k6,sendMessage:e=>Pn?.sendMessage(e)};function N2(){if(hc().token)try{U2()}catch(t){console.error("[WaniWani] Auto-initialization failed:",t)}}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",N2):N2();})();
|
|
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(!n){l.enqueue(d);continue}let f=await n(d);if(f.success){l.enqueue(f.value);continue}let p=JF(f.error);if(p?.length){let g={...d};for(let C of p)delete g[C];let v=await n(g);v.success&&l.enqueue(v.value)}}catch{}}}}))}};var e6="waniwani-memory";var wa="threads",Qd="by_memoryUserId",t6="by_updatedAt";var c2="memoryUserId",u2="waniwani-memory-user-id",Vy=null;function Gy(){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 a6(e,t){if(t<1&&(e.objectStoreNames.contains("ids")||e.createObjectStore("ids")),t<2&&!e.objectStoreNames.contains(wa)){let a=e.createObjectStore(wa,{keyPath:"threadId"});a.createIndex(Qd,"memoryUserId",{unique:!1}),a.createIndex(t6,"updatedAt",{unique:!1})}}async function Xy(){return new Promise((e,t)=>{let a=indexedDB.open(e6,2);a.onupgradeneeded=r=>{a6(a.result,r.oldVersion)},a.onsuccess=()=>e(a.result),a.onerror=()=>t(a.error)})}async function r6(){return Xy()}async function n6(e){return new Promise((t,a)=>{let o=e.transaction("ids","readonly").objectStore("ids").get(c2);o.onsuccess=()=>t(typeof o.result=="string"?o.result:null),o.onerror=()=>a(o.error)})}async function o6(e,t){return new Promise((a,r)=>{let l=e.transaction("ids","readwrite").objectStore("ids").put(t,c2);l.onsuccess=()=>a(),l.onerror=()=>r(l.error)})}async function l6(){if(typeof indexedDB>"u")return null;try{let e=await r6();try{let t=await n6(e);if(t)return t;let a=Gy();return await o6(e,a),a}finally{e.close()}}catch{return null}}function i6(){try{let e=localStorage.getItem(u2);if(e)return e;let t=Gy();return localStorage.setItem(u2,t),t}catch{return null}}async function d2(){let e=await l6();if(e)return e;let t=i6();return t||(Vy||(Vy=Gy()),Vy)}var f2=50,p2=1e3;function Kd(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 Yd(e){if(typeof indexedDB>"u")return null;let t=null;try{return t=await Xy(),await e(t)}catch{return null}finally{try{t?.close()}catch{}}}function $y(e){return new Promise((t,a)=>{e.onsuccess=()=>t(e.result),e.onerror=()=>a(e.error)})}async function Wy(e){return await Yd(async a=>{let o=a.transaction(wa,"readonly").objectStore(wa).index(Qd),i=(await $y(o.getAll(e))??[]).filter(Kd);return i.sort((s,u)=>s.updatedAt<u.updatedAt?1:-1),i})??[]}async function Zy(e){return await Yd(async a=>{let n=a.transaction(wa,"readonly").objectStore(wa),o=await $y(n.get(e));return Kd(o)?o:null})??null}async function Qy(e){if(!Kd(e))return;let t=e.messages.length>p2?{...e,messages:e.messages.slice(e.messages.length-p2)}:e;await Yd(async a=>{await new Promise((s,u)=>{let c=a.transaction(wa,"readwrite");c.oncomplete=()=>s(),c.onerror=()=>u(c.error),c.onabort=()=>u(c.error),c.objectStore(wa).put(t)});let r=a.transaction(wa,"readwrite"),n=r.objectStore(wa),o=n.index(Qd),i=(await $y(o.getAll(t.memoryUserId))??[]).filter(Kd);if(i.length>f2){i.sort((u,c)=>u.updatedAt<c.updatedAt?-1:1);let s=i.slice(0,i.length-f2);for(let u of s)n.delete(u.threadId)}return await new Promise((s,u)=>{r.oncomplete=()=>s(),r.onerror=()=>u(r.error),r.onabort=()=>u(r.error)}),null})}async function m2(e){await Yd(async t=>(await new Promise((a,r)=>{let n=t.transaction(wa,"readwrite");n.oncomplete=()=>a(),n.onerror=()=>r(n.error),n.onabort=()=>r(n.error),n.objectStore(wa).delete(e)}),null))}async function h2(e){return(await Wy(e))[0]?.threadId??null}function g2(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 y2="waniwani-visitor-id";function x2(e,t){return e.match(t)?.[1]??null}function s6(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,r]of t){let n=x2(e,r);if(n)return{name:a,version:n}}return null}function u6(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,r]of t){let n=x2(e,r);if(n)return{name:a,version:n.replace(/_/g,".")};if(a==="Linux"&&r.test(e))return{name:a,version:""}}return null}function c6(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 d6(e){let t=new TextEncoder().encode(e),a=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(a)).map(r=>r.toString(16).padStart(2,"0")).join("")}async function f6(){try{let a=localStorage.getItem(y2);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 d6(e);try{localStorage.setItem(y2,t)}catch{}return t}async function v2(){let e=navigator.userAgent,[t,a]=await Promise.all([f6(),d2()]);return{userAgent:e,browser:s6(e),os:u6(e),deviceType:c6(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 p6="x-session-id",m6=250;function w2(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():Zi()}function Jd(){return new Date().toISOString()}function b2(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}async function h6(e,t){let a=`${e.replace(/\/$/,"")}/tools`,r=await fetch(a,{method:"GET",headers:t?{...t}:void 0});if(!r.ok)throw new Error(`[WaniWani] Failed to fetch /tools: ${r.status} ${r.statusText}`);let n=await r.json();if(!n||!Array.isArray(n.tools))return{};let o={};for(let l of n.tools)l&&typeof l.name=="string"&&(o[l.name]=l);return o}function S2(e){let{api:t="/api/waniwani",headers:a,body:r,onMessageSent:n,onResponseReceived:o,enableThreadHistory:l=!1,activeThreadId:i,onThreadChange:s}=e,u=(0,X.useRef)(a),c=(0,X.useRef)(r),d=(0,X.useRef)(l);(0,X.useEffect)(()=>{d.current=l},[l]);let f=(0,X.useRef)(void 0),p=(0,X.useRef)(null),[g,v]=(0,X.useState)(void 0),C=(0,X.useRef)(g),[y,x]=(0,X.useState)(i),h=(0,X.useRef)(y),[w,k]=(0,X.useState)([]),[I,M]=(0,X.useState)(!l),_=(0,X.useRef)(void 0),P=(0,X.useRef)(void 0),T=(0,X.useRef)(void 0),H=(0,X.useRef)(void 0),R=(0,X.useRef)(0),B=(0,X.useRef)(s);(0,X.useEffect)(()=>{B.current=s},[s]);let j=(0,X.useCallback)(N=>{h.current=N,x(N),N&&B.current?.(N)},[]),V=(0,X.useCallback)(async()=>{if(!l)return;let N=p.current?.memoryUserId;if(!N)return;let re=await Wy(N);k(re)},[l]),K=(0,X.useCallback)(()=>C.current,[]),me=(0,X.useCallback)(N=>{let re=b2(N);re&&C.current!==re&&(C.current=re,v(re))},[]),Re=(0,X.useCallback)(()=>{C.current=void 0,v(void 0)},[]);(0,X.useEffect)(()=>{u.current=a},[a]),(0,X.useEffect)(()=>{c.current=r},[r]),(0,X.useEffect)(()=>{let N=!1,re=R.current;return(async()=>{try{let Ge=await v2();if(N)return;p.current=Ge}catch{}if(!l)return;let fe=p.current?.memoryUserId;if(!fe){M(!0);return}try{let Ge=i??await h2(fe);if(N||re!==R.current)return;if(Ge){let ut=await Zy(Ge);if(N||re!==R.current)return;ut&&ut.memoryUserId===fe&&(h.current=ut.threadId,x(ut.threadId),_.current=ut.createdAt,P.current=ut.title,ut.sessionId&&(C.current=ut.sessionId,v(ut.sessionId)),Ae(ut.messages))}await V()}finally{N||M(!0)}})(),()=>{N=!0}},[]);let ye=(0,X.useRef)(new Zd({api:t,headers:()=>({...u.current}),body:()=>{let N={...c.current??{}},re=Object.hasOwn(N,"sessionId"),fe=b2(N.sessionId);if(fe)me(fe),N.sessionId=fe;else if(re)Re(),delete N.sessionId;else{let za=K();za&&(N.sessionId=za)}if(Ml(f.current)&&(N.modelContext=f.current),p.current){let za=p.current;N.visitorContext={timezone:za.timezone,language:za.language,languages:za.languages,deviceType:za.deviceType,referrer:za.referrer,visitorId:za.visitorId};let dr=typeof N.visitor=="object"&&N.visitor!==null?N.visitor:{},z2=typeof dr.client=="object"&&dr.client!==null?dr.client:{};N.visitor={...dr,client:{...z2,memoryUserId:za.memoryUserId}}}let Ge=typeof N.extra=="object"&&N.extra!==null&&!Array.isArray(N.extra)?N.extra:void 0,ut=p.current?.memoryUserId,At=p.current?.language,Ns={};if(ut&&(Ns.memoryUserId=ut),At&&(Ns.locale=At),(Object.keys(Ns).length>0||Ge)&&(N.extra={...Ns,...Ge??{}}),d.current)if(Object.hasOwn(N,"threadId"))typeof N.threadId=="string"&&(h.current=N.threadId);else{let dr=h.current;dr||(dr=w2(),_.current=Jd(),P.current=void 0,j(dr)),N.threadId=dr}return N},fetch:(async(N,re)=>{let fe=await fetch(N,re);return f.current=void 0,me(fe.headers.get(p6)),fe})})),S=(0,X.useRef)(null),st=(0,X.useRef)(null),ot=(0,X.useRef)({}),[L,W]=(0,X.useState)(0),ee=e.skipRemoteConfig===!0,lt=(0,X.useCallback)(async()=>{if(!ee)try{let N=await h6(t,u.current);ot.current=N,W(re=>re+1)}catch(N){console.warn("[WaniWani] Failed to fetch tool definitions:",N instanceof Error?N.message:N)}},[t,ee]);(0,X.useEffect)(()=>{lt()},[lt]);let{messages:De,sendMessage:ae,setMessages:Ae,status:se}=s2({messages:e.initialMessages,transport:ye.current,onFinish({message:N}){o?.(),S.current&&(st.current=N)},onError(N){console.warn("[WaniWani] Chat error:",N.message),S.current&&(S.current.reject(N),S.current=null)}}),be=(0,X.useRef)(De);(0,X.useEffect)(()=>{be.current=De},[De]),(0,X.useEffect)(()=>{if(se==="ready"&&S.current&&st.current){let N=S.current,re=st.current;S.current=null,st.current=null,N.resolve(re)}},[se]);let[Ie,Se]=(0,X.useState)(""),[Ve,it]=(0,X.useState)([]),Ht=se==="submitted"||se==="streaming",Ua=(0,X.useCallback)(N=>{it(re=>re.filter(fe=>fe.id!==N))},[]),Fr=Ht&&Ve.length>0,ur=(0,X.useCallback)(N=>{let re=!!N.text?.trim(),fe=!!N.files?.length;if(re||fe){if(Ht){if(Ve.length>0)return;it(Ge=>[...Ge,{id:Zi(),text:N.text||"",files:N.files??[],modelContext:N.modelContext}]),Se("");return}f.current=N.modelContext,ae({text:N.text||"",files:N.files}),n?.(N.text||""),Se("")}},[ae,n,Ht,Ve.length]),Os=(0,X.useCallback)(N=>new Promise((re,fe)=>{S.current={resolve:re,reject:fe},ae({text:N}),n?.(N)}),[ae,n]);(0,X.useEffect)(()=>{if(se!=="ready"||Ve.length===0)return;let[N,...re]=Ve;it(re),f.current=N.modelContext,ae({text:N.text,files:N.files.length>0?N.files:void 0}),n?.(N.text)},[se,ae,n,Ve]);let rf=(0,X.useCallback)(()=>{Ae([]),it([]),Re(),Se(""),ot.current={},W(N=>N+1),lt()},[Ae,Re,lt]),Io=(0,X.useCallback)(()=>{if(!d.current)return;let N=p.current?.memoryUserId,re=h.current,fe=be.current;if(!(!N||!re||fe.length===0)){if(_.current||(_.current=Jd()),!P.current){let Ge=fe.find(At=>At.role==="user"),ut=Ge?Ge.parts.map(At=>"text"in At&&typeof At.text=="string"?At.text:"").join(" "):"";P.current=g2(ut)}return{threadId:re,memoryUserId:N,title:P.current,messages:fe,sessionId:C.current,createdAt:_.current,updatedAt:Jd()}}},[]),Ps=(0,X.useCallback)(async()=>{let N=Io();N&&(await Qy(N),await V())},[Io,V]);(0,X.useEffect)(()=>{if(l&&I&&!(se==="submitted"||se==="streaming")&&De.length!==0)return T.current&&clearTimeout(T.current),T.current=setTimeout(()=>{T.current=void 0;let N=Ps().finally(()=>{H.current===N&&(H.current=void 0)});H.current=N},m6),()=>{T.current&&clearTimeout(T.current)}},[l,I,De,se,Ps]);let Lo=(0,X.useCallback)(()=>{let N=H.current,re=T.current,fe=re?Io():void 0;return re&&(clearTimeout(re),T.current=void 0),(async()=>{N&&await N,fe&&(await Qy(fe),await V())})()},[Io,V]),nf=(0,X.useCallback)(()=>{R.current+=1,Lo(),Ae([]),it([]),Re(),Se("");let N=w2();return _.current=Jd(),P.current=void 0,j(N),V(),N},[Ae,Re,j,V,Lo]),D=(0,X.useCallback)(async N=>{R.current+=1;let re=R.current;if(await Lo(),re!==R.current)return;let fe=await Zy(N);re===R.current&&fe&&(j(fe.threadId),_.current=fe.createdAt,P.current=fe.title,fe.sessionId?(C.current=fe.sessionId,v(fe.sessionId)):Re(),Ae(fe.messages),it([]),Se(""))},[Ae,Re,j,Lo]),z=(0,X.useCallback)(async N=>{if(h.current===N){R.current+=1,T.current&&(clearTimeout(T.current),T.current=void 0);let re=H.current;re&&await re}await m2(N),await V(),h.current===N&&(Ae([]),it([]),Re(),Se(""),h.current=void 0,x(void 0),_.current=void 0,P.current=void 0)},[Ae,Re,V]);(0,X.useEffect)(()=>{l&&I&&i!==void 0&&i!==h.current&&D(i)},[i,l,I,D]);let te=(0,X.useCallback)(N=>{Se(N.target.value)},[]),de=De[De.length-1],_e=De.length>0,la=Ht&&(!_e||de.role==="user"),cr=ot.current;return{messages:De,status:se,text:Ie,setText:Se,handleSubmit:ur,handleTextChange:te,isLoading:Ht,showLoaderBubble:la,lastMessage:de,hasMessages:_e,sendMessage:ae,sendMessageAndWait:Os,reset:rf,queuedMessages:Ve,queueFull:Fr,removeQueuedMessage:Ua,sessionId:g,toolDefinitions:cr,refreshToolDefinitions:lt,threads:w,activeThreadId:y,isThreadHistoryReady:I,startNewThread:nf,switchThread:D,deleteThread:z}}var sr=F(Ze(),1);function g6(e){for(let t of e.parts){let a=t;if(a.type==="data"||a.type==="data-suggestions"){let r=a.data;if(r&&Array.isArray(r.suggestions))return r.suggestions}}return null}function C2(e){return typeof e=="object"&&e!==null&&"initial"in e}function I2(e){let{messages:t,status:a,config:r}=e,n=C2(r)&&r.initial?r.initial:void 0,[o,l]=(0,sr.useState)(n??[]),i=(0,sr.useRef)(a),s=r===!0||C2(r)&&r.dynamic!==!1,u=(0,sr.useCallback)(()=>{l([])},[]),c=t.length>0;(0,sr.useEffect)(()=>{!c&&n&&n.length>0&&l(n)},[n,c]);let d=t[t.length-1];return(0,sr.useEffect)(()=>{d?.role==="user"&&u()},[d,u]),(0,sr.useEffect)(()=>{let f=i.current;if(i.current=a,f==="streaming"&&a==="ready"&&s){let p=[...t].reverse().find(v=>v.role==="assistant");if(!p)return;let g=g6(p);g&&l(g)}},[a,s,t]),{suggestions:o,isLoading:!1,clear:u}}var Nl=F(Ze(),1),y6=50,x6=30,v6=2e3,L2=500;function k2(e,t=!0){let[a,r]=(0,Nl.useState)(""),n=(0,Nl.useRef)(void 0);return(0,Nl.useEffect)(()=>{if(!t){r("");return}let o=0,l=!1,i=!1,s=()=>{i||(l?(o--,r(e.slice(0,o)),o<=0?(l=!1,n.current=setTimeout(s,L2)):n.current=setTimeout(s,x6)):(o++,r(e.slice(0,o)),o>=e.length?(l=!0,n.current=setTimeout(s,v6)):n.current=setTimeout(s,y6)))};return n.current=setTimeout(s,L2),()=>{i=!0,clearTimeout(n.current)}},[e,t]),a}function T2(e,t){let a=t?.Authorization,r=typeof a=="string"&&a.startsWith("Bearer ")?a.slice(7):null;return r?`${e}/resource?token=${encodeURIComponent(r)}`:`${e}/resource`}var w6={primaryColor:"#6366f1",primaryForeground:"#1f2937",backgroundColor:"#ffffff",textColor:"#1f2937",mutedColor:"#6b7280",borderColor:"#e5e7eb",assistantBubbleColor:"#f3f4f6",userBubbleColor:"#f4f4f4",inputBackgroundColor:"#f9fafb",borderRadius:16,messageBorderRadius:12,fontFamily:"system-ui, -apple-system, 'Segoe UI', sans-serif",headerBackgroundColor:"#ffffff",headerTextColor:"#1f2937",statusColor:"#22c55e",toolCardColor:"#f4f4f5"};var b6={primaryColor:["--ww-primary","--ww-color-primary"],primaryForeground:["--ww-primary-fg","--ww-color-primary-foreground"],backgroundColor:["--ww-bg","--ww-color-background"],textColor:["--ww-text","--ww-color-foreground","--ww-color-accent-foreground"],mutedColor:["--ww-muted","--ww-color-muted-foreground"],borderColor:["--ww-border","--ww-color-border"],assistantBubbleColor:["--ww-assistant-bubble","--ww-color-accent"],userBubbleColor:["--ww-user-bubble"],inputBackgroundColor:["--ww-input-bg","--ww-color-input"],borderRadius:["--ww-radius"],messageBorderRadius:["--ww-msg-radius"],fontFamily:["--ww-font"],headerBackgroundColor:["--ww-header-bg"],headerTextColor:["--ww-header-text"],statusColor:["--ww-status"],toolCardColor:["--ww-tool-card","--ww-color-tool-card"]};function A2(e){return{...w6,...e}}function M2(e){let t=e.backgroundColor.replace("#",""),a=parseInt(t.substring(0,2),16),r=parseInt(t.substring(2,4),16),n=parseInt(t.substring(4,6),16);return(a*299+r*587+n*114)/1e3<128}function E2(e){let t={};for(let[a,r]of Object.entries(b6)){let n=e[a],o=typeof n=="number"?`${n}px`:String(n);for(let l of r)t[l]=o}return t}var et=F(ce(),1),R2=(0,nt.forwardRef)(function(t,a){let{theme:r,className:n,allowAttachments:o=!1,welcomeMessage:l,welcome:i,placeholder:s="Ask me anything...",triggerEvent:u="triggerDemoRequest",api:c,mcp:d,debug:f=!1,readOnly:p=!1,title:g,headerActions:v,enableThreadHistory:C=!1,showToolCalls:y=!0}=t,x=A2(r),h=E2(x),w=M2(x),k=S2({...t,api:c}),I=bM({...t,api:c,sessionId:k.sessionId,onCallTool:d?.onCallTool}),M=d?.resourceEndpoint??T2(c,t.headers),_=k2(s,!k.text),[P,T]=(0,nt.useState)(null),H=(0,nt.useRef)(null),R=(0,nt.useRef)(null),B=(0,nt.useRef)(null),j=(0,nt.useRef)(null),[V,K]=(0,nt.useState)(!0),me=(0,nt.useRef)(V);me.current=V;let Re=(0,nt.useCallback)(()=>{let W=H.current;if(!W)return;let ee=W.querySelector("textarea");ee&&ee.focus()},[]),ye=(0,nt.useCallback)((W="smooth")=>{let ee=R.current;ee&&ee.scrollTo({top:ee.scrollHeight,behavior:W})},[]);(0,nt.useEffect)(()=>{let W=j.current,ee=R.current;if(!W||!ee)return;let lt=new IntersectionObserver(([De])=>K(De.isIntersecting),{root:ee,rootMargin:"0px 0px 200px 0px",threshold:0});return lt.observe(W),()=>lt.disconnect()},[]),(0,nt.useEffect)(()=>{(k.messages[k.messages.length-1]?.role==="user"||me.current)&&ye("smooth")},[k.messages.length,k.messages[k.messages.length-1]]),(0,nt.useEffect)(()=>{ye("auto")},[ye]),(0,nt.useEffect)(()=>{if(typeof ResizeObserver>"u")return;let W=R.current,ee=B.current;if(!W&&!ee)return;let lt=W?.scrollHeight??0,De=W?.clientHeight??0,ae=new ResizeObserver(()=>{let Ae=R.current;if(!Ae)return;let se=Ae.scrollTop+De>=lt-5;lt=Ae.scrollHeight,De=Ae.clientHeight,se&&ye("auto")});return W&&ae.observe(W),ee&&ae.observe(ee),()=>ae.disconnect()},[ye]);let S=I2({messages:k.messages,status:k.status,config:t.suggestions}),st=(0,nt.useCallback)(W=>{let ee=W.content.map(lt=>lt.text??"").join("").trim();ee&&k.handleSubmit({text:ee,files:[],modelContext:W.modelContext})},[k.handleSubmit]),ot=(0,nt.useCallback)(W=>{S.clear(),k.handleSubmit({text:W,files:[]})},[S.clear,k.handleSubmit]);(0,nt.useImperativeHandle)(a,()=>({sendMessage:W=>{k.handleSubmit({text:W,files:[]}),Re()},sendMessageAndWait:W=>k.sendMessageAndWait(W),reset:k.reset,focus:Re,get messages(){return k.messages}}),[k.handleSubmit,k.sendMessageAndWait,k.reset,k.messages,Re]),(0,nt.useEffect)(()=>{if(!u)return;let W=ee=>{let lt=ee.detail,De=typeof lt?.message=="string"?lt.message:void 0;De&&k.handleSubmit({text:De,files:[]}),Re()};return window.addEventListener(u,W),()=>window.removeEventListener(u,W)},[u,k.handleSubmit,Re]);let L=!!(g||C||v);return(0,et.jsxs)("div",{ref:H,style:{...h,maxHeight:"inherit"},"data-waniwani-chat":"","data-waniwani-layout":"embed",...w?{"data-waniwani-dark":""}:{},className:Q("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",n),children:[L&&(0,et.jsxs)("div",{className:"ww:shrink-0 ww:flex ww:items-center ww:gap-2 ww:px-6 ww:py-3 ww:bg-background ww:border-b ww:border-border",style:{backgroundColor:x.headerBackgroundColor,color:x.headerTextColor},children:[g&&(0,et.jsx)("div",{className:"ww:text-sm ww:font-semibold ww:truncate ww:flex-1 ww:min-w-0",children:g}),!g&&(0,et.jsx)("div",{className:"ww:flex-1"}),v,C&&(0,et.jsx)(wM,{threads:k.threads,activeThreadId:k.activeThreadId,onNewThread:k.startNewThread,onSelectThread:W=>{k.switchThread(W)},onDeleteThread:W=>{k.deleteThread(W)}})]}),(0,et.jsxs)("div",{ref:R,className:Q("ww:relative ww:flex-1 ww:min-h-0",P?"ww:overflow-hidden":"ww:overflow-y-auto"),children:[(0,et.jsxs)("div",{ref:B,className:Q("ww:mx-auto ww:w-full ww:max-w-3xl ww:px-4 ww:py-6 ww:flex ww:flex-col ww:gap-6",P&&"ww:!py-0"),children:[(0,et.jsx)(gM,{messages:k.messages,status:k.status,welcomeMessage:l,welcome:i,onSuggestionSelect:ot,resourceEndpoint:M,chatSessionId:k.sessionId,isDark:w,onFollowUp:st,onCallTool:I,fullscreenToolCallId:P,debug:f,showToolCalls:y,toolDefinitions:k.toolDefinitions,onWidgetDisplayModeChange:(W,ee)=>{T(W==="fullscreen"?ee.toolCallId:null)}}),(0,et.jsx)("div",{ref:j,"aria-hidden":!0,style:{height:1}})]}),!V&&!P&&(0,et.jsx)("div",{className:"ww:sticky ww:bottom-2 ww:flex ww:justify-center ww:pointer-events-none",children:(0,et.jsx)(tr,{type:"button",onClick:()=>ye("smooth"),size:"icon",variant:"outline",className:"ww:rounded-full ww:shadow ww:pointer-events-auto","aria-label":"Scroll to latest",children:(0,et.jsx)(zi,{className:"ww:size-4"})})})]}),!p&&(0,et.jsxs)("div",{className:"ww:shrink-0 ww:bg-background",style:P?{display:"none"}:void 0,children:[(0,et.jsx)(xM,{suggestions:S.suggestions,isLoading:S.isLoading,onSelect:ot}),(0,et.jsx)(m0,{queuedMessages:k.queuedMessages,onRemove:k.removeQueuedMessage}),(0,et.jsx)("div",{className:"ww:px-4 ww:pb-2 ww:pt-2",children:(0,et.jsxs)("div",{className:"ww:mx-auto ww:w-full ww:max-w-3xl",children:[(0,et.jsx)(r0,{onSubmit:k.handleSubmit,globalDrop:o,multiple:o,className:"ww:rounded-2xl ww:border-border ww:bg-input",children:(0,et.jsxs)("div",{className:"ww:flex ww:items-center ww:gap-1 ww:pl-4 ww:pr-3 ww:py-2.5",children:[o&&(0,et.jsx)(l0,{}),(0,et.jsx)(n0,{onChange:k.handleTextChange,value:k.text,placeholder:_,className:"ww:min-h-0 ww:py-1 ww:px-0"}),(0,et.jsx)(o0,{status:k.status,disabled:k.queueFull})]})}),(0,et.jsx)(yM,{})]})})]})]})});var ef=F(Ze(),1);async function S6(e,t,a){try{let r=`${e.replace(/\/$/,"")}/config`,n=await fetch(r,{method:"GET",headers:{Authorization:`Bearer ${t}`},signal:a});if(!n.ok)return{};let o=await n.json(),l=o&&typeof o=="object"&&"data"in o&&o.data?o.data:o;return l?C6(l):{}}catch{return{}}}function C6(e){let t={};return e.title!=null&&(t.title=e.title),e.welcomeMessage!=null&&(t.welcomeMessage=e.welcomeMessage),e.placeholder!=null&&(t.placeholder=e.placeholder),e.suggestions!=null&&e.suggestions.length>0&&(t.suggestions=e.suggestions),typeof e.enableThreadHistory=="boolean"&&(t.enableThreadHistory=e.enableThreadHistory),t}function D2(e,t,a){let[r,n]=(0,ef.useState)(e);return(0,ef.useEffect)(()=>{let o=e.api,l=e.token;if(!o||!l)return;let i=new AbortController;return S6(o,l,i.signal).then(s=>{if(!i.signal.aborted&&Object.keys(s).length!==0)try{n(gc(t,s,a))}catch(u){console.error("[WaniWani] Failed to apply remote config:",u)}}).catch(s=>{console.error("[WaniWani] Remote config fetch failed:",s)}),()=>i.abort()},[e.api,e.token]),r}var O2=F(ce(),1),_2=(0,_n.forwardRef)(function({config:t,programmatic:a,scriptConfig:r,onReady:n},o){let l=D2(t,a,r),i=(0,_n.useRef)(null);(0,_n.useEffect)(()=>{n?.()},[]),(0,_n.useImperativeHandle)(o,()=>({get chat(){return i.current}}),[]);let s=jS(l),u={};return l.mcpServerUrl&&(u.mcpServerUrl=l.mcpServerUrl),l.channelId&&(u.channelId=l.channelId),(0,O2.jsx)(R2,{ref:i,api:l.api??"",headers:{Authorization:`Bearer ${l.token}`},skipRemoteConfig:!0,body:Object.keys(u).length>0?u:void 0,theme:s,title:l.title,welcomeMessage:l.welcomeMessage,placeholder:l.placeholder,suggestions:l.suggestions?{initial:l.suggestions}:void 0,enableThreadHistory:l.enableThreadHistory,showToolCalls:l.showToolCalls})});var Ky="/*! 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\\:relative{position:relative}.ww\\:sticky{position:sticky}.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-4{bottom:calc(var(--ww-spacing)*4)}.ww\\:left-\\[50\\%\\]{left:50%}.ww\\:z-50{z-index:50}.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-2{margin-bottom:calc(var(--ww-spacing)*2)}.ww\\:mb-4{margin-bottom:calc(var(--ww-spacing)*4)}.ww\\:ml-auto{margin-left:auto}.ww\\:line-clamp-1{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.ww\\:contents{display:contents}.ww\\:flex{display:flex}.ww\\:grid{display:grid}.ww\\:hidden{display:none}.ww\\:inline-block{display:inline-block}.ww\\:inline-flex{display:inline-flex}.ww\\:field-sizing-content{field-sizing:content}.ww\\:size-2{width:calc(var(--ww-spacing)*2);height:calc(var(--ww-spacing)*2)}.ww\\:size-3{width:calc(var(--ww-spacing)*3);height:calc(var(--ww-spacing)*3)}.ww\\:size-3\\.5{width:calc(var(--ww-spacing)*3.5);height:calc(var(--ww-spacing)*3.5)}.ww\\:size-4{width:calc(var(--ww-spacing)*4);height:calc(var(--ww-spacing)*4)}.ww\\:size-5{width:calc(var(--ww-spacing)*5);height:calc(var(--ww-spacing)*5)}.ww\\:size-7{width:calc(var(--ww-spacing)*7);height:calc(var(--ww-spacing)*7)}.ww\\:size-8{width:calc(var(--ww-spacing)*8);height:calc(var(--ww-spacing)*8)}.ww\\:size-9{width:calc(var(--ww-spacing)*9);height:calc(var(--ww-spacing)*9)}.ww\\:size-12{width:calc(var(--ww-spacing)*12);height:calc(var(--ww-spacing)*12)}.ww\\:size-auto{width:auto;height:auto}.ww\\:size-full{width:100%;height:100%}.ww\\:h-2\\.5{height:calc(var(--ww-spacing)*2.5)}.ww\\:h-7{height:calc(var(--ww-spacing)*7)}.ww\\:h-8{height:calc(var(--ww-spacing)*8)}.ww\\:h-9{height:calc(var(--ww-spacing)*9)}.ww\\:h-16{height:calc(var(--ww-spacing)*16)}.ww\\:h-auto{height:auto}.ww\\:h-full{height:100%}.ww\\:max-h-48{max-height:calc(var(--ww-spacing)*48)}.ww\\:max-h-80{max-height:calc(var(--ww-spacing)*80)}.ww\\:min-h-0{min-height:calc(var(--ww-spacing)*0)}.ww\\:min-h-full{min-height:100%}.ww\\:w-72{width:calc(var(--ww-spacing)*72)}.ww\\:w-auto{width:auto}.ww\\:w-fit{width:fit-content}.ww\\:w-full{width:100%}.ww\\:max-w-3xl{max-width:var(--ww-container-3xl)}.ww\\:max-w-24{max-width:calc(var(--ww-spacing)*24)}.ww\\:max-w-32{max-width:calc(var(--ww-spacing)*32)}.ww\\:max-w-\\[80\\%\\]{max-width:80%}.ww\\:max-w-full{max-width:100%}.ww\\:max-w-md{max-width:var(--ww-container-md)}.ww\\:max-w-sm{max-width:var(--ww-container-sm)}.ww\\:min-w-0{min-width:calc(var(--ww-spacing)*0)}.ww\\:flex-1{flex:1}.ww\\:shrink-0{flex-shrink:0}.ww\\:grow{flex-grow:1}.ww\\:translate-x-\\[-50\\%\\]{--tw-translate-x:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.ww\\:rotate-90{rotate:90deg}.ww\\:rotate-180{rotate:180deg}.ww\\:animate-\\[ww-fade-in_0\\.2s_ease-out_both\\]{animation:.2s ease-out both ww-fade-in}.ww\\:animate-pulse{animation:var(--ww-animate-pulse)}.ww\\:animate-spin{animation:var(--ww-animate-spin)}.ww\\:cursor-pointer{cursor:pointer}.ww\\:resize-none{resize:none}.ww\\:grid-rows-\\[0fr\\]{grid-template-rows:0fr}.ww\\:grid-rows-\\[1fr\\]{grid-template-rows:1fr}.ww\\:flex-col{flex-direction:column}.ww\\:flex-wrap{flex-wrap:wrap}.ww\\:items-center{align-items:center}.ww\\:items-end{align-items:flex-end}.ww\\:items-start{align-items:flex-start}.ww\\:justify-between{justify-content:space-between}.ww\\:justify-center{justify-content:center}.ww\\:gap-1{gap:calc(var(--ww-spacing)*1)}.ww\\:gap-1\\.5{gap:calc(var(--ww-spacing)*1.5)}.ww\\:gap-2{gap:calc(var(--ww-spacing)*2)}.ww\\:gap-3{gap:calc(var(--ww-spacing)*3)}.ww\\:gap-6{gap:calc(var(--ww-spacing)*6)}:where(.ww\\:space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ww-spacing)*2)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ww-spacing)*2)*calc(1 - var(--tw-space-y-reverse)))}:where(.ww\\:space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--ww-spacing)*3)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--ww-spacing)*3)*calc(1 - var(--tw-space-y-reverse)))}.ww\\:truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ww\\:\\!overflow-hidden{overflow:hidden!important}.ww\\:overflow-hidden{overflow:hidden}.ww\\:overflow-x-auto{overflow-x:auto}.ww\\:overflow-y-auto{overflow-y:auto}.ww\\:overflow-y-hidden{overflow-y:hidden}.ww\\:\\!rounded-full{border-radius:3.40282e38px!important}.ww\\:rounded{border-radius:var(--ww-radius,16px)}.ww\\:rounded-2xl{border-radius:var(--ww-radius-2xl)}.ww\\:rounded-\\[var\\(--ww-radius\\)\\]{border-radius:var(--ww-radius)}.ww\\:rounded-full{border-radius:3.40282e38px}.ww\\:rounded-lg{border-radius:var(--ww-radius-lg)}.ww\\:rounded-md{border-radius:var(--ww-radius-md)}.ww\\:rounded-xl{border-radius:var(--ww-radius-xl)}.ww\\:border{border-style:var(--tw-border-style);border-width:1px}.ww\\:border-0{border-style:var(--tw-border-style);border-width:0}.ww\\:border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.ww\\:border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.ww\\:border-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-foreground,.ww\\:bg-foreground\\/5{background-color:var(--ww-color-foreground,#1f2937)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-foreground\\/5{background-color:color-mix(in oklab,var(--ww-color-foreground,#1f2937)5%,transparent)}}.ww\\:bg-input{background-color:var(--ww-color-input,#f9fafb)}.ww\\:bg-muted{background-color:var(--ww-color-muted,#f1f5f9)}.ww\\:bg-muted-foreground\\/60{background-color:var(--ww-color-muted-foreground,#6b7280)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-muted-foreground\\/60{background-color:color-mix(in oklab,var(--ww-color-muted-foreground,#6b7280)60%,transparent)}}.ww\\:bg-muted\\/50{background-color:var(--ww-color-muted,#f1f5f9)}@supports (color:color-mix(in lab, red, red)){.ww\\:bg-muted\\/50{background-color:color-mix(in oklab,var(--ww-color-muted,#f1f5f9)50%,transparent)}}.ww\\:bg-primary{background-color:var(--ww-color-primary,#6366f1)}.ww\\:bg-tool-card{background-color:var(--ww-color-tool-card,#f4f4f5)}.ww\\:bg-transparent{background-color:#0000}.ww\\:object-cover{object-fit:cover}.ww\\:p-1{padding:calc(var(--ww-spacing)*1)}.ww\\:p-1\\.5{padding:calc(var(--ww-spacing)*1.5)}.ww\\:p-3{padding:calc(var(--ww-spacing)*3)}.ww\\:px-0{padding-inline:calc(var(--ww-spacing)*0)}.ww\\:px-1\\.5{padding-inline:calc(var(--ww-spacing)*1.5)}.ww\\:px-2{padding-inline:calc(var(--ww-spacing)*2)}.ww\\:px-3{padding-inline:calc(var(--ww-spacing)*3)}.ww\\:px-4{padding-inline:calc(var(--ww-spacing)*4)}.ww\\:px-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-2{padding-top:calc(var(--ww-spacing)*2)}.ww\\:pt-2\\.5{padding-top:calc(var(--ww-spacing)*2.5)}.ww\\:pt-3{padding-top:calc(var(--ww-spacing)*3)}.ww\\:pr-3{padding-right:calc(var(--ww-spacing)*3)}.ww\\:pb-1{padding-bottom:calc(var(--ww-spacing)*1)}.ww\\:pb-1\\.5{padding-bottom:calc(var(--ww-spacing)*1.5)}.ww\\:pb-2{padding-bottom:calc(var(--ww-spacing)*2)}.ww\\:pb-3{padding-bottom:calc(var(--ww-spacing)*3)}.ww\\:pb-8{padding-bottom:calc(var(--ww-spacing)*8)}.ww\\:pl-4{padding-left:calc(var(--ww-spacing)*4)}.ww\\:text-center{text-align:center}.ww\\:text-left{text-align:left}.ww\\:font-\\[family-name\\:var\\(--ww-font\\)\\]{font-family:var(--ww-font)}.ww\\:font-mono{font-family:var(--ww-font-mono)}.ww\\:text-base{font-size:var(--ww-text-base);line-height:var(--tw-leading,var(--ww-text-base--line-height))}.ww\\:text-lg{font-size:var(--ww-text-lg);line-height:var(--tw-leading,var(--ww-text-lg--line-height))}.ww\\:text-sm{font-size:var(--ww-text-sm);line-height:var(--tw-leading,var(--ww-text-sm--line-height))}.ww\\:text-xs{font-size:var(--ww-text-xs);line-height:var(--tw-leading,var(--ww-text-xs--line-height))}.ww\\:text-\\[10px\\]{font-size:10px}.ww\\:text-\\[11px\\]{font-size:11px}.ww\\:font-medium{--tw-font-weight:var(--ww-font-weight-medium);font-weight:var(--ww-font-weight-medium)}.ww\\:font-semibold{--tw-font-weight:var(--ww-font-weight-semibold);font-weight:var(--ww-font-weight-semibold)}.ww\\:tracking-wide{--tw-tracking:var(--ww-tracking-wide);letter-spacing:var(--ww-tracking-wide)}.ww\\:tracking-wider{--tw-tracking:var(--ww-tracking-wider);letter-spacing:var(--ww-tracking-wider)}.ww\\:break-words{overflow-wrap:break-word}.ww\\:break-all{word-break:break-all}.ww\\:whitespace-pre-wrap{white-space:pre-wrap}.ww\\:text-background{color:var(--ww-color-background,#fff)}.ww\\:text-foreground,.ww\\:text-foreground\\/80{color:var(--ww-color-foreground,#1f2937)}@supports (color:color-mix(in lab, red, red)){.ww\\:text-foreground\\/80{color:color-mix(in oklab,var(--ww-color-foreground,#1f2937)80%,transparent)}}.ww\\:text-muted-foreground{color:var(--ww-color-muted-foreground,#6b7280)}.ww\\:text-primary{color:var(--ww-color-primary,#6366f1)}.ww\\:text-primary-foreground{color:var(--ww-color-primary-foreground,#1f2937)}.ww\\:uppercase{text-transform:uppercase}.ww\\:italic{font-style:italic}.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-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\\: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}.ww\\:\\[\\&\\>\\*\\:first-child\\]\\:mt-0>:first-child{margin-top:calc(var(--ww-spacing)*0)}.ww\\:\\[\\&\\>\\*\\:last-child\\]\\:mb-0>:last-child{margin-bottom:calc(var(--ww-spacing)*0)}}@keyframes ww-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes ww-fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-4px)}}@keyframes ww-pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}[data-waniwani-chat] ::-webkit-scrollbar{width:8px}[data-waniwani-chat] ::-webkit-scrollbar-track{background:0 0}[data-waniwani-chat] ::-webkit-scrollbar-thumb{background:var(--ww-color-border);border-radius:9999px}[data-waniwani-chat] ::-webkit-scrollbar-thumb:hover{background:var(--ww-color-muted-foreground)}[data-waniwani-chat] *{scrollbar-width:thin;scrollbar-color:var(--ww-color-border)transparent}[data-waniwani-chat]{--ww-color-background:var(--ww-bg,#fff);--ww-color-foreground:var(--ww-text,#1f2937);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#1f2937);--ww-color-muted-foreground:var(--ww-muted,#6b7280);--ww-color-border:var(--ww-border,#e5e7eb);--ww-color-input:var(--ww-input-bg,#f9fafb);--ww-color-accent:var(--ww-assistant-bubble,#f3f4f6);--ww-color-accent-foreground:var(--ww-text,#1f2937);--ww-color-user-bubble:var(--ww-user-bubble,#f4f4f4);--ww-color-card:var(--ww-bg,#fff);--ww-color-card-foreground:var(--ww-text,#1f2937);--ww-color-card-header:var(--ww-header-bg,#fff);--ww-color-card-header-foreground:var(--ww-header-text,#1f2937);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#f4f4f5);--ww-radius:var(--ww-radius,16px);--ww-font-sans:var(--ww-font,system-ui,-apple-system,\"Segoe UI\",sans-serif)}.dark [data-waniwani-chat],[data-waniwani-chat].dark{--ww-color-background:var(--ww-bg,#212121);--ww-color-foreground:var(--ww-text,#ececec);--ww-color-primary:var(--ww-primary,#6366f1);--ww-color-primary-foreground:var(--ww-primary-fg,#fff);--ww-color-muted-foreground:var(--ww-muted,#8e8ea0);--ww-color-border:var(--ww-border,#444);--ww-color-input:var(--ww-input-bg,#2f2f2f);--ww-color-accent:var(--ww-assistant-bubble,#2f2f2f);--ww-color-accent-foreground:var(--ww-text,#ececec);--ww-color-user-bubble:var(--ww-user-bubble,#303030);--ww-color-card:var(--ww-bg,#212121);--ww-color-card-foreground:var(--ww-text,#ececec);--ww-color-card-header:var(--ww-header-bg,#1e1e1e);--ww-color-card-header-foreground:var(--ww-header-text,#ececec);--ww-color-status:var(--ww-status,#22c55e);--ww-color-tool-card:var(--ww-tool-card,#262626)}[data-waniwani-chat] [data-streamdown=table-wrapper]{flex-direction:column;gap:.5rem;margin-top:1rem;margin-bottom:1rem;display:flex}[data-waniwani-chat] [data-streamdown=table-wrapper]>div:first-child:has(button){justify-content:flex-end;align-items:center;gap:.25rem;display:flex}[data-waniwani-chat] [data-streamdown=table-wrapper]>div:last-child{overflow-x:auto}[data-waniwani-chat] [data-streamdown=table]{border-collapse:collapse;border:1px solid var(--ww-color-border);border-radius:.75rem;width:100%;overflow:hidden}[data-waniwani-chat] [data-streamdown=table-header]{background-color:var(--ww-color-accent)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=table-header]{background-color:color-mix(in srgb,var(--ww-color-accent)80%,transparent)}}[data-waniwani-chat] [data-streamdown=table-body]{background-color:var(--ww-color-accent)}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=table-body]{background-color:color-mix(in srgb,var(--ww-color-accent)40%,transparent)}}[data-waniwani-chat] [data-streamdown=table-body]>tr+tr{border-top:1px solid var(--ww-color-border)}[data-waniwani-chat] [data-streamdown=table-row]{border-bottom:1px solid var(--ww-color-border)}[data-waniwani-chat] [data-streamdown=table-header-cell]{white-space:nowrap;text-align:left;padding:.5rem 1rem;font-size:.875rem;font-weight:600}[data-waniwani-chat] [data-streamdown=table-cell]{padding:.5rem 1rem;font-size:.875rem}[data-waniwani-chat] [data-streamdown=link]{color:var(--ww-color-primary);overflow-wrap:anywhere;cursor:pointer;font-weight:500;text-decoration:underline}[data-waniwani-chat] [data-streamdown=link-safety-modal]{z-index:50;background-color:var(--ww-color-background);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=link-safety-modal]{background-color:color-mix(in srgb,var(--ww-color-background)50%,transparent)}}[data-waniwani-chat] [data-streamdown=link-safety-modal]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div{border:1px solid var(--ww-color-border);background-color:var(--ww-color-background);width:100%;max-width:28rem;color:var(--ww-color-foreground);border-radius:.75rem;flex-direction:column;gap:1rem;margin:0 1rem;padding:1.5rem;display:flex;position:relative;box-shadow:0 10px 25px #0000001a}[data-waniwani-chat] [data-streamdown=link-safety-modal] button{cursor:pointer}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>button:first-child{color:var(--ww-color-muted-foreground);background:0 0;border:none;border-radius:.375rem;padding:.25rem;transition:background-color .15s,color .15s;position:absolute;top:1rem;right:1rem}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>button:first-child:hover{background-color:var(--ww-color-accent);color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type{flex-direction:column;gap:.5rem;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type>div{align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:first-of-type>p{color:var(--ww-color-muted-foreground);font-size:.875rem}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:nth-child(3){word-break:break-all;background-color:var(--ww-color-accent);border-radius:.375rem;max-height:8rem;padding:.75rem;font-family:ui-monospace,monospace;font-size:.875rem;overflow-y:auto}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child{gap:.5rem;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button{border:none;border-radius:.375rem;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:background-color .15s;display:flex}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:first-child{border:1px solid var(--ww-color-border);background-color:var(--ww-color-background);color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:first-child:hover{background-color:var(--ww-color-accent)}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:last-child{background-color:var(--ww-color-primary);color:#fff}[data-waniwani-chat] [data-streamdown=link-safety-modal]>div>div:last-child>button:last-child:hover{opacity:.9}[data-waniwani-chat] [data-streamdown=ordered-list]{white-space:normal;list-style-type:decimal;list-style-position:inside}[data-waniwani-chat] li [data-streamdown=ordered-list]{padding-left:1.5rem}[data-waniwani-chat] [data-streamdown=unordered-list]{white-space:normal;list-style-type:disc;list-style-position:inside}[data-waniwani-chat] li [data-streamdown=unordered-list]{padding-left:1.5rem}[data-waniwani-chat] [data-streamdown=list-item]{padding-top:.25rem;padding-bottom:.25rem}[data-waniwani-chat] [data-streamdown=list-item]>p{display:inline}[data-waniwani-chat] [data-streamdown=inline-code]{background-color:var(--ww-color-accent);border-radius:.25rem;padding:.125rem .375rem;font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,monospace;font-size:.875rem}[data-waniwani-chat] [data-streamdown=heading-1]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.875rem;font-weight:600;line-height:2.25rem}[data-waniwani-chat] [data-streamdown=heading-2]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.5rem;font-weight:600;line-height:2rem}[data-waniwani-chat] [data-streamdown=heading-3]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.25rem;font-weight:600;line-height:1.75rem}[data-waniwani-chat] [data-streamdown=heading-4]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1.125rem;font-weight:600;line-height:1.75rem}[data-waniwani-chat] [data-streamdown=heading-5]{margin-top:1.5rem;margin-bottom:.5rem;font-size:1rem;font-weight:600;line-height:1.5rem}[data-waniwani-chat] [data-streamdown=heading-6]{margin-top:1.5rem;margin-bottom:.5rem;font-size:.875rem;font-weight:600;line-height:1.25rem}[data-waniwani-chat] [data-streamdown=blockquote]{border-left:4px solid var(--ww-color-muted-foreground);margin-top:1rem;margin-bottom:1rem}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=blockquote]{border-left:4px solid color-mix(in srgb,var(--ww-color-muted-foreground)30%,transparent)}}[data-waniwani-chat] [data-streamdown=blockquote]{color:var(--ww-color-muted-foreground);padding-left:1rem;font-style:italic}[data-waniwani-chat] [data-streamdown=horizontal-rule]{border-color:var(--ww-color-border);margin-top:1.5rem;margin-bottom:1.5rem}[data-waniwani-chat] [data-streamdown=strong]{font-weight:600}[data-waniwani-chat] [data-streamdown=image-wrapper]{margin-top:1rem;margin-bottom:1rem;display:inline-block;position:relative}[data-waniwani-chat] [data-streamdown=image]{border-radius:.5rem;max-width:100%}[data-waniwani-chat] [data-streamdown=code-block]{border:1px solid var(--ww-color-border);border-radius:.75rem;width:100%;margin-top:1rem;margin-bottom:1rem;overflow:hidden}[data-waniwani-chat] [data-streamdown=code-block-header]{background-color:var(--ww-color-accent);justify-content:space-between;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){[data-waniwani-chat] [data-streamdown=code-block-header]{background-color:color-mix(in srgb,var(--ww-color-accent)80%,transparent)}}[data-waniwani-chat] [data-streamdown=code-block-header]{color:var(--ww-color-muted-foreground);padding:.75rem;font-size:.75rem}[data-waniwani-chat] [data-streamdown=code-block-body]{padding:1rem;font-size:.875rem;overflow-x:auto}[data-waniwani-chat] [data-streamdown=code-block-copy-button],[data-waniwani-chat] [data-streamdown=code-block-download-button]{cursor:pointer;color:var(--ww-color-muted-foreground);background:0 0;border:none;padding:.25rem;transition:color .15s}[data-waniwani-chat] [data-streamdown=code-block-copy-button]:hover,[data-waniwani-chat] [data-streamdown=code-block-download-button]:hover{color:var(--ww-color-foreground)}[data-waniwani-chat] [data-streamdown=mermaid-block]{border:1px solid var(--ww-color-border);border-radius:.75rem;height:auto;margin-top:1rem;margin-bottom:1rem;padding:1rem;position:relative}[data-waniwani-chat] [data-streamdown=mermaid]{width:100%;height:100%}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-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}}",Pn=null,tf=null,On=null,af=null;function I6(e,t){if(Ky&&Ky!=="__WANIWANI_EMBED_CSS__"){let a=document.createElement("style");a.textContent=Ky,e.appendChild(a)}if(t.css)try{let a=new URL(t.css,window.location.href);if(a.protocol==="https:"||a.protocol==="http:"){let r=document.createElement("link");r.rel="stylesheet",r.href=a.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 P2="data-waniwani-embed";function L6(e,t,a){let r=document.querySelector(`[${P2}]`);if(!r)throw new Error(`[WaniWani] No inline mount target. Place \`<div ${P2}></div>\` in your page.`);On=document.createElement("div"),On.id="waniwani-chat-embed",On.style.cssText="width:100%;height:100%;max-height:inherit;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;",r.appendChild(On);let n=On,o=()=>{let u=getComputedStyle(r);if(!u.maxHeight.endsWith("px")){n.style.removeProperty("max-height");return}let c=Number.parseFloat(u.maxHeight);if(!Number.isFinite(c)){n.style.removeProperty("max-height");return}let d=c;u.boxSizing==="border-box"&&(d-=(Number.parseFloat(u.paddingTop)||0)+(Number.parseFloat(u.paddingBottom)||0)+(Number.parseFloat(u.borderTopWidth)||0)+(Number.parseFloat(u.borderBottomWidth)||0)),d>0?n.style.maxHeight=`${d}px`:n.style.removeProperty("max-height")};o(),af=new ResizeObserver(o),af.observe(r);let l=On.attachShadow({mode:"open"});I6(l,e);let i=document.createElement("div");i.className="ww:contents",l.appendChild(i);let s=Yy.default.createRef();return tf=B2.default.createRoot(i),tf.render(Yy.default.createElement(_2,{ref:s,config:e,programmatic:t,scriptConfig:a})),{destroy:()=>{af?.disconnect(),af=null,tf?.unmount(),tf=null,On?.remove(),On=null,Pn=null},sendMessage:u=>s.current?.chat?.sendMessage(u)}}function U2(e){if(Pn)return console.warn("[WaniWani] Chat widget is already initialized. Call destroy() first to re-initialize."),Pn;let t=hc(),a=gc(e,void 0,t);return Pn=L6(a,e,t),Pn}function k6(){Pn&&Pn.destroy()}window.WaniWani=window.WaniWani||{};window.WaniWani.chat={init:U2,destroy:k6,sendMessage:e=>Pn?.sendMessage(e)};function N2(){if(hc().token)try{U2()}catch(t){console.error("[WaniWani] Auto-initialization failed:",t)}}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",N2):N2();})();
|
|
139
139
|
/*! Bundled license information:
|
|
140
140
|
|
|
141
141
|
react/cjs/react.production.js:
|