@tinkrapp/widget 1.1.2 → 1.1.3
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.
|
@@ -503,7 +503,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
503
503
|
|
|
504
504
|
`)},flush(e){e.enqueue(`data: [DONE]
|
|
505
505
|
|
|
506
|
-
`)}})}};var pIe=M_(()=>lm(b.union([b.strictObject({type:b.literal("text-start"),id:b.string(),providerMetadata:je.optional()}),b.strictObject({type:b.literal("text-delta"),id:b.string(),delta:b.string(),providerMetadata:je.optional()}),b.strictObject({type:b.literal("text-end"),id:b.string(),providerMetadata:je.optional()}),b.strictObject({type:b.literal("error"),errorText:b.string()}),b.strictObject({type:b.literal("tool-input-start"),toolCallId:b.string(),toolName:b.string(),providerExecuted:b.boolean().optional(),dynamic:b.boolean().optional()}),b.strictObject({type:b.literal("tool-input-delta"),toolCallId:b.string(),inputTextDelta:b.string()}),b.strictObject({type:b.literal("tool-input-available"),toolCallId:b.string(),toolName:b.string(),input:b.unknown(),providerExecuted:b.boolean().optional(),providerMetadata:je.optional(),dynamic:b.boolean().optional()}),b.strictObject({type:b.literal("tool-input-error"),toolCallId:b.string(),toolName:b.string(),input:b.unknown(),providerExecuted:b.boolean().optional(),providerMetadata:je.optional(),dynamic:b.boolean().optional(),errorText:b.string()}),b.strictObject({type:b.literal("tool-output-available"),toolCallId:b.string(),output:b.unknown(),providerExecuted:b.boolean().optional(),dynamic:b.boolean().optional(),preliminary:b.boolean().optional()}),b.strictObject({type:b.literal("tool-output-error"),toolCallId:b.string(),errorText:b.string(),providerExecuted:b.boolean().optional(),dynamic:b.boolean().optional()}),b.strictObject({type:b.literal("reasoning-start"),id:b.string(),providerMetadata:je.optional()}),b.strictObject({type:b.literal("reasoning-delta"),id:b.string(),delta:b.string(),providerMetadata:je.optional()}),b.strictObject({type:b.literal("reasoning-end"),id:b.string(),providerMetadata:je.optional()}),b.strictObject({type:b.literal("source-url"),sourceId:b.string(),url:b.string(),title:b.string().optional(),providerMetadata:je.optional()}),b.strictObject({type:b.literal("source-document"),sourceId:b.string(),mediaType:b.string(),title:b.string(),filename:b.string().optional(),providerMetadata:je.optional()}),b.strictObject({type:b.literal("file"),url:b.string(),mediaType:b.string(),providerMetadata:je.optional()}),b.strictObject({type:b.custom(e=>typeof e=="string"&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:b.string().optional(),data:b.unknown(),transient:b.boolean().optional()}),b.strictObject({type:b.literal("start-step")}),b.strictObject({type:b.literal("finish-step")}),b.strictObject({type:b.literal("start"),messageId:b.string().optional(),messageMetadata:b.unknown().optional()}),b.strictObject({type:b.literal("finish"),finishReason:b.enum(["stop","length","content-filter","tool-calls","error","other","unknown"]).optional(),messageMetadata:b.unknown().optional()}),b.strictObject({type:b.literal("abort")}),b.strictObject({type:b.literal("message-metadata"),messageMetadata:b.unknown()})])));function mIe(e){return e.type.startsWith("data-")}function Dee(e,t){if(e===void 0&&t===void 0)return;if(e===void 0)return t;if(t===void 0)return e;let r={...e};for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let o=t[n];if(o===void 0)continue;let a=n in e?e[n]:void 0,i=o!==null&&typeof o=="object"&&!Array.isArray(o)&&!(o instanceof Date)&&!(o instanceof RegExp),s=a!=null&&typeof a=="object"&&!Array.isArray(a)&&!(a instanceof Date)&&!(a instanceof RegExp);i&&s?r[n]=Dee(a,o):r[n]=o}return r}function hIe(e){let t=["ROOT"],r=-1,n=null;function o(l,u,c){switch(l){case'"':{r=u,t.pop(),t.push(c),t.push("INSIDE_STRING");break}case"f":case"t":case"n":{r=u,n=u,t.pop(),t.push(c),t.push("INSIDE_LITERAL");break}case"-":{t.pop(),t.push(c),t.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{r=u,t.pop(),t.push(c),t.push("INSIDE_NUMBER");break}case"{":{r=u,t.pop(),t.push(c),t.push("INSIDE_OBJECT_START");break}case"[":{r=u,t.pop(),t.push(c),t.push("INSIDE_ARRAY_START");break}}}function a(l,u){switch(l){case",":{t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{r=u,t.pop();break}}}function i(l,u){switch(l){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{r=u,t.pop();break}}}for(let l=0;l<e.length;l++){let u=e[l];switch(t[t.length-1]){case"ROOT":o(u,l,"FINISH");break;case"INSIDE_OBJECT_START":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}case"}":{r=l,t.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{u==='"'&&(t.pop(),t.push("INSIDE_OBJECT_KEY"));break}case"INSIDE_OBJECT_KEY":{u==='"'&&(t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY"));break}case"INSIDE_OBJECT_AFTER_KEY":{u===":"&&(t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE"));break}case"INSIDE_OBJECT_BEFORE_VALUE":{o(u,l,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{a(u,l);break}case"INSIDE_STRING":{switch(u){case'"':{t.pop(),r=l;break}case"\\":{t.push("INSIDE_STRING_ESCAPE");break}default:r=l}break}case"INSIDE_ARRAY_START":{u==="]"?(r=l,t.pop()):(r=l,o(u,l,"INSIDE_ARRAY_AFTER_VALUE"));break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(u){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{r=l,t.pop();break}default:{r=l;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{o(u,l,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{t.pop(),r=l;break}case"INSIDE_NUMBER":{switch(u){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{r=l;break}case"e":case"E":case"-":case".":break;case",":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&a(u,l);break}case"}":{t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&a(u,l);break}case"]":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l);break}default:{t.pop();break}}break}case"INSIDE_LITERAL":{let d=e.substring(n,l+1);!"false".startsWith(d)&&!"true".startsWith(d)&&!"null".startsWith(d)?(t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?a(u,l):t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l)):r=l;break}}}let s=e.slice(0,r+1);for(let l=t.length-1;l>=0;l--)switch(t[l]){case"INSIDE_STRING":{s+='"';break}case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":{s+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{s+="]";break}case"INSIDE_LITERAL":{let c=e.substring(n,e.length);"true".startsWith(c)?s+="true".slice(c.length):"false".startsWith(c)?s+="false".slice(c.length):"null".startsWith(c)&&(s+="null".slice(c.length))}}return s}async function Oee(e){if(e===void 0)return{value:void 0,state:"undefined-input"};let t=await sm({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await sm({text:hIe(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}function Xl(e){return e.type.startsWith("tool-")}function gIe(e){return e.type==="dynamic-tool"}function _ee(e){return Xl(e)||gIe(e)}function Tee(e){return e.type.split("-").slice(1).join("-")}function vIe({lastMessage:e,messageId:t}){return{message:e?.role==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function xIe({stream:e,messageMetadataSchema:t,dataPartSchemas:r,runUpdateMessageJob:n,onError:o,onToolCall:a,onData:i}){return e.pipeThrough(new TransformStream({async transform(s,l){await n(async({state:u,write:c})=>{var d,f,p,m;function h(w){let k=u.message.parts.filter(Xl).find(C=>C.toolCallId===w);if(k==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return k}function y(w){let k=u.message.parts.filter(C=>C.type==="dynamic-tool").find(C=>C.toolCallId===w);if(k==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return k}function g(w){var _;let k=u.message.parts.find(M=>Xl(M)&&M.toolCallId===w.toolCallId),C=w,I=k;k!=null?(k.state=w.state,I.input=C.input,I.output=C.output,I.errorText=C.errorText,I.rawInput=C.rawInput,I.preliminary=C.preliminary,I.providerExecuted=(_=C.providerExecuted)!=null?_:k.providerExecuted,C.providerMetadata!=null&&k.state==="input-available"&&(k.callProviderMetadata=C.providerMetadata)):u.message.parts.push({type:`tool-${w.toolName}`,toolCallId:w.toolCallId,state:w.state,input:C.input,output:C.output,rawInput:C.rawInput,errorText:C.errorText,providerExecuted:C.providerExecuted,preliminary:C.preliminary,...C.providerMetadata!=null?{callProviderMetadata:C.providerMetadata}:{}})}function v(w){var _,k;let C=u.message.parts.find(L=>L.type==="dynamic-tool"&&L.toolCallId===w.toolCallId),I=w,M=C;C!=null?(C.state=w.state,M.toolName=w.toolName,M.input=I.input,M.output=I.output,M.errorText=I.errorText,M.rawInput=(_=I.rawInput)!=null?_:M.rawInput,M.preliminary=I.preliminary,M.providerExecuted=(k=I.providerExecuted)!=null?k:C.providerExecuted,I.providerMetadata!=null&&C.state==="input-available"&&(C.callProviderMetadata=I.providerMetadata)):u.message.parts.push({type:"dynamic-tool",toolName:w.toolName,toolCallId:w.toolCallId,state:w.state,input:I.input,output:I.output,errorText:I.errorText,preliminary:I.preliminary,providerExecuted:I.providerExecuted,...I.providerMetadata!=null?{callProviderMetadata:I.providerMetadata}:{}})}async function x(w){if(w!=null){let _=u.message.metadata!=null?Dee(u.message.metadata,w):w;t!=null&&await $_({value:_,schema:t}),u.message.metadata=_}}switch(s.type){case"text-start":{let w={type:"text",text:"",providerMetadata:s.providerMetadata,state:"streaming"};u.activeTextParts[s.id]=w,u.message.parts.push(w),c();break}case"text-delta":{let w=u.activeTextParts[s.id];w.text+=s.delta,w.providerMetadata=(d=s.providerMetadata)!=null?d:w.providerMetadata,c();break}case"text-end":{let w=u.activeTextParts[s.id];w.state="done",w.providerMetadata=(f=s.providerMetadata)!=null?f:w.providerMetadata,delete u.activeTextParts[s.id],c();break}case"reasoning-start":{let w={type:"reasoning",text:"",providerMetadata:s.providerMetadata,state:"streaming"};u.activeReasoningParts[s.id]=w,u.message.parts.push(w),c();break}case"reasoning-delta":{let w=u.activeReasoningParts[s.id];w.text+=s.delta,w.providerMetadata=(p=s.providerMetadata)!=null?p:w.providerMetadata,c();break}case"reasoning-end":{let w=u.activeReasoningParts[s.id];w.providerMetadata=(m=s.providerMetadata)!=null?m:w.providerMetadata,w.state="done",delete u.activeReasoningParts[s.id],c();break}case"file":{u.message.parts.push({type:"file",mediaType:s.mediaType,url:s.url}),c();break}case"source-url":{u.message.parts.push({type:"source-url",sourceId:s.sourceId,url:s.url,title:s.title,providerMetadata:s.providerMetadata}),c();break}case"source-document":{u.message.parts.push({type:"source-document",sourceId:s.sourceId,mediaType:s.mediaType,title:s.title,filename:s.filename,providerMetadata:s.providerMetadata}),c();break}case"tool-input-start":{let w=u.message.parts.filter(Xl);u.partialToolCalls[s.toolCallId]={text:"",toolName:s.toolName,index:w.length,dynamic:s.dynamic},s.dynamic?v({toolCallId:s.toolCallId,toolName:s.toolName,state:"input-streaming",input:void 0,providerExecuted:s.providerExecuted}):g({toolCallId:s.toolCallId,toolName:s.toolName,state:"input-streaming",input:void 0,providerExecuted:s.providerExecuted}),c();break}case"tool-input-delta":{let w=u.partialToolCalls[s.toolCallId];w.text+=s.inputTextDelta;let{value:_}=await Oee(w.text);w.dynamic?v({toolCallId:s.toolCallId,toolName:w.toolName,state:"input-streaming",input:_}):g({toolCallId:s.toolCallId,toolName:w.toolName,state:"input-streaming",input:_}),c();break}case"tool-input-available":{s.dynamic?v({toolCallId:s.toolCallId,toolName:s.toolName,state:"input-available",input:s.input,providerExecuted:s.providerExecuted,providerMetadata:s.providerMetadata}):g({toolCallId:s.toolCallId,toolName:s.toolName,state:"input-available",input:s.input,providerExecuted:s.providerExecuted,providerMetadata:s.providerMetadata}),c(),a&&!s.providerExecuted&&await a({toolCall:s});break}case"tool-input-error":{s.dynamic?v({toolCallId:s.toolCallId,toolName:s.toolName,state:"output-error",input:s.input,errorText:s.errorText,providerExecuted:s.providerExecuted,providerMetadata:s.providerMetadata}):g({toolCallId:s.toolCallId,toolName:s.toolName,state:"output-error",input:void 0,rawInput:s.input,errorText:s.errorText,providerExecuted:s.providerExecuted,providerMetadata:s.providerMetadata}),c();break}case"tool-output-available":{if(s.dynamic){let w=y(s.toolCallId);v({toolCallId:s.toolCallId,toolName:w.toolName,state:"output-available",input:w.input,output:s.output,preliminary:s.preliminary})}else{let w=h(s.toolCallId);g({toolCallId:s.toolCallId,toolName:Tee(w),state:"output-available",input:w.input,output:s.output,providerExecuted:s.providerExecuted,preliminary:s.preliminary})}c();break}case"tool-output-error":{if(s.dynamic){let w=y(s.toolCallId);v({toolCallId:s.toolCallId,toolName:w.toolName,state:"output-error",input:w.input,errorText:s.errorText,providerExecuted:s.providerExecuted})}else{let w=h(s.toolCallId);g({toolCallId:s.toolCallId,toolName:Tee(w),state:"output-error",input:w.input,rawInput:w.rawInput,errorText:s.errorText,providerExecuted:s.providerExecuted})}c();break}case"start-step":{u.message.parts.push({type:"step-start"});break}case"finish-step":{u.activeTextParts={},u.activeReasoningParts={};break}case"start":{s.messageId!=null&&(u.message.id=s.messageId),await x(s.messageMetadata),(s.messageId!=null||s.messageMetadata!=null)&&c();break}case"finish":{s.finishReason!=null&&(u.finishReason=s.finishReason),await x(s.messageMetadata),s.messageMetadata!=null&&c();break}case"message-metadata":{await x(s.messageMetadata),s.messageMetadata!=null&&c();break}case"error":{o?.(new Error(s.errorText));break}default:if(mIe(s)){r?.[s.type]!=null&&await $_({value:s.data,schema:r[s.type]});let w=s;if(w.transient){i?.(w);break}let _=w.id!=null?u.message.parts.find(k=>w.type===k.type&&w.id===k.id):void 0;_!=null?_.data=w.data:u.message.parts.push(w),i?.(w),c()}}l.enqueue(s)})}}))}async function yIe({stream:e,onError:t}){let r=e.getReader();try{for(;;){let{done:n}=await r.read();if(n)break}}catch(n){t?.(n)}finally{r.releaseLock()}}var nwt=ni({prefix:"aitxt",size:24});var awt=ni({prefix:"aiobj",size:24});var wIe=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,r)=>{this.queue.push(async()=>{try{await e(),t()}catch(n){r(n)}}),this.processQueue()})}};var swt=ni({prefix:"aiobj",size:24});var bIe={};a0e(bIe,{object:()=>kIe,text:()=>SIe});var SIe=()=>({type:"text",responseFormat:{type:"text"},async parsePartial({text:e}){return{partial:e}},async parseOutput({text:e}){return e}}),kIe=({schema:e})=>{let t=ez(e);return{type:"object",responseFormat:{type:"json",schema:t.jsonSchema},async parsePartial({text:r}){let n=await Oee(r);switch(n.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:n.value};default:{let o=n.state;throw new Error(`Unsupported parse state: ${o}`)}}},async parseOutput({text:r},n){let o=await sm({text:r});if(!o.success)throw new Iee({message:"No object generated: could not parse the response.",cause:o.error,text:r,response:n.response,usage:n.usage,finishReason:n.finishReason});let a=await D_({value:o.value,schema:t});if(!a.success)throw new Iee({message:"No object generated: response did not match schema.",cause:a.error,text:r,response:n.response,usage:n.usage,finishReason:n.finishReason});return a.value}}};var IIe="AI_NoSuchProviderError",CIe=`vercel.ai.error.${IIe}`,_Ie=Symbol.for(CIe),TIe;TIe=_Ie;async function PIe(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:r,type:n}=t,o=await new Promise((a,i)=>{let s=new FileReader;s.onload=l=>{var u;a((u=l.target)==null?void 0:u.result)},s.onerror=l=>i(l),s.readAsDataURL(t)});return{type:"file",mediaType:n,filename:r,url:o}}))}var LIe=class{constructor({api:e="/api/chat",credentials:t,headers:r,body:n,fetch:o,prepareSendMessagesRequest:a,prepareReconnectToStreamRequest:i}){this.api=e,this.credentials=t,this.headers=r,this.body=n,this.fetch=o,this.prepareSendMessagesRequest=a,this.prepareReconnectToStreamRequest=i}async sendMessages({abortSignal:e,...t}){var r,n,o,a,i;let s=await Wc(this.body),l=await Wc(this.headers),u=await Wc(this.credentials),c={...Jl(l),...Jl(t.headers)},d=await((r=this.prepareSendMessagesRequest)==null?void 0:r.call(this,{api:this.api,id:t.chatId,messages:t.messages,body:{...s,...t.body},headers:c,credentials:u,requestMetadata:t.metadata,trigger:t.trigger,messageId:t.messageId})),f=(n=d?.api)!=null?n:this.api,p=d?.headers!==void 0?Jl(d.headers):c,m=d?.body!==void 0?d.body:{...s,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},h=(o=d?.credentials)!=null?o:u,g=await((a=this.fetch)!=null?a:globalThis.fetch)(f,{method:"POST",headers:ay({"Content-Type":"application/json",...p},`ai-sdk/${Cee}`,YN()),body:JSON.stringify(m),credentials:h,signal:e});if(!g.ok)throw new Error((i=await g.text())!=null?i:"Failed to fetch the chat response.");if(!g.body)throw new Error("The response body is empty.");return this.processResponseStream(g.body)}async reconnectToStream(e){var t,r,n,o,a;let i=await Wc(this.body),s=await Wc(this.headers),l=await Wc(this.credentials),u={...Jl(s),...Jl(e.headers)},c=await((t=this.prepareReconnectToStreamRequest)==null?void 0:t.call(this,{api:this.api,id:e.chatId,body:{...i,...e.body},headers:u,credentials:l,requestMetadata:e.metadata})),d=(r=c?.api)!=null?r:`${this.api}/${e.chatId}/stream`,f=c?.headers!==void 0?Jl(c.headers):u,p=(n=c?.credentials)!=null?n:l,h=await((o=this.fetch)!=null?o:globalThis.fetch)(d,{method:"GET",headers:ay(f,`ai-sdk/${Cee}`,YN()),credentials:p});if(h.status===204)return null;if(!h.ok)throw new Error((a=await h.text())!=null?a:"Failed to fetch the chat response.");if(!h.body)throw new Error("The response body is empty.");return this.processResponseStream(h.body)}},rz=class extends LIe{constructor(e={}){super(e)}processResponseStream(e){return QN({stream:e,schema:pIe}).pipeThrough(new TransformStream({async transform(t,r){if(!t.success)throw t.error;r.enqueue(t.value)}}))}},Nee=class{constructor({generateId:e=oy,id:t=e(),transport:r=new rz,messageMetadataSchema:n,dataPartSchemas:o,state:a,onError:i,onToolCall:s,onFinish:l,onData:u,sendAutomaticallyWhen:c}){this.activeResponse=void 0,this.jobExecutor=new wIe,this.sendMessage=async(d,f)=>{var p,m,h,y;if(d==null){await this.makeRequest({trigger:"submit-message",messageId:(p=this.lastMessage)==null?void 0:p.id,...f});return}let g;if("text"in d||"files"in d?g={parts:[...Array.isArray(d.files)?d.files:await PIe(d.files),..."text"in d&&d.text!=null?[{type:"text",text:d.text}]:[]]}:g=d,d.messageId!=null){let v=this.state.messages.findIndex(x=>x.id===d.messageId);if(v===-1)throw new Error(`message with id ${d.messageId} not found`);if(this.state.messages[v].role!=="user")throw new Error(`message with id ${d.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,v+1),this.state.replaceMessage(v,{...g,id:d.messageId,role:(m=g.role)!=null?m:"user",metadata:d.metadata})}else this.state.pushMessage({...g,id:(h=g.id)!=null?h:this.generateId(),role:(y=g.role)!=null?y:"user",metadata:d.metadata});await this.makeRequest({trigger:"submit-message",messageId:d.messageId,...f})},this.regenerate=async({messageId:d,...f}={})=>{let p=d==null?this.state.messages.length-1:this.state.messages.findIndex(m=>m.id===d);if(p===-1)throw new Error(`message ${d} not found`);this.state.messages=this.state.messages.slice(0,this.messages[p].role==="assistant"?p:p+1),await this.makeRequest({trigger:"regenerate-message",messageId:d,...f})},this.resumeStream=async(d={})=>{await this.makeRequest({trigger:"resume-stream",...d})},this.clearError=()=>{this.status==="error"&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolOutput=async({state:d="output-available",tool:f,toolCallId:p,output:m,errorText:h})=>this.jobExecutor.run(async()=>{var y,g;let v=this.state.messages,x=v[v.length-1];this.state.replaceMessage(v.length-1,{...x,parts:x.parts.map(w=>_ee(w)&&w.toolCallId===p?{...w,state:d,output:m,errorText:h}:w)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(w=>_ee(w)&&w.toolCallId===p?{...w,state:d,output:m,errorText:h}:w)),this.status!=="streaming"&&this.status!=="submitted"&&((y=this.sendAutomaticallyWhen)!=null&&y.call(this,{messages:this.state.messages}))&&this.makeRequest({trigger:"submit-message",messageId:(g=this.lastMessage)==null?void 0:g.id})}),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=r,this.generateId=e,this.messageMetadataSchema=n,this.dataPartSchemas=o,this.state=a,this.onError=i,this.onToolCall=s,this.onFinish=l,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 makeRequest({trigger:e,metadata:t,headers:r,body:n,messageId:o}){var a,i,s,l;this.setStatus({status:"submitted",error:void 0});let u=this.lastMessage,c=!1,d=!1,f=!1;try{let p={state:vIe({lastMessage:this.state.snapshot(u),messageId:this.generateId()}),abortController:new AbortController};p.abortController.signal.addEventListener("abort",()=>{c=!0}),this.activeResponse=p;let m;if(e==="resume-stream"){let y=await this.transport.reconnectToStream({chatId:this.id,metadata:t,headers:r,body:n});if(y==null){this.setStatus({status:"ready"});return}m=y}else m=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:p.abortController.signal,metadata:t,headers:r,body:n,trigger:e,messageId:o});let h=y=>this.jobExecutor.run(()=>y({state:p.state,write:()=>{var g;this.setStatus({status:"streaming"}),p.state.message.id===((g=this.lastMessage)==null?void 0:g.id)?this.state.replaceMessage(this.state.messages.length-1,p.state.message):this.state.pushMessage(p.state.message)}}));await yIe({stream:xIe({stream:m,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:h,onError:y=>{throw y}}),onError:y=>{throw y}}),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{(i=this.onFinish)==null||i.call(this,{message:this.activeResponse.state.message,messages:this.state.messages,isAbort:c,isDisconnect:d,isError:f,finishReason:(a=this.activeResponse)==null?void 0:a.state.finishReason})}catch(p){console.error(p)}this.activeResponse=void 0}(s=this.sendAutomaticallyWhen)!=null&&s.call(this,{messages:this.state.messages})&&!f&&await this.makeRequest({trigger:"submit-message",messageId:(l=this.lastMessage)==null?void 0:l.id,metadata:t,headers:r,body:n})}};var mwt=M_(()=>lm(b.array(b.object({id:b.string(),role:b.enum(["system","user","assistant"]),metadata:b.unknown().optional(),parts:b.array(b.union([b.object({type:b.literal("text"),text:b.string(),state:b.enum(["streaming","done"]).optional(),providerMetadata:je.optional()}),b.object({type:b.literal("reasoning"),text:b.string(),state:b.enum(["streaming","done"]).optional(),providerMetadata:je.optional()}),b.object({type:b.literal("source-url"),sourceId:b.string(),url:b.string(),title:b.string().optional(),providerMetadata:je.optional()}),b.object({type:b.literal("source-document"),sourceId:b.string(),mediaType:b.string(),title:b.string(),filename:b.string().optional(),providerMetadata:je.optional()}),b.object({type:b.literal("file"),mediaType:b.string(),filename:b.string().optional(),url:b.string(),providerMetadata:je.optional()}),b.object({type:b.literal("step-start")}),b.object({type:b.string().startsWith("data-"),id:b.string().optional(),data:b.unknown()}),b.object({type:b.literal("dynamic-tool"),toolName:b.string(),toolCallId:b.string(),state:b.literal("input-streaming"),input:b.unknown().optional(),providerExecuted:b.boolean().optional(),output:b.never().optional(),errorText:b.never().optional()}),b.object({type:b.literal("dynamic-tool"),toolName:b.string(),toolCallId:b.string(),state:b.literal("input-available"),input:b.unknown(),providerExecuted:b.boolean().optional(),output:b.never().optional(),errorText:b.never().optional(),callProviderMetadata:je.optional()}),b.object({type:b.literal("dynamic-tool"),toolName:b.string(),toolCallId:b.string(),state:b.literal("output-available"),input:b.unknown(),providerExecuted:b.boolean().optional(),output:b.unknown(),errorText:b.never().optional(),callProviderMetadata:je.optional(),preliminary:b.boolean().optional()}),b.object({type:b.literal("dynamic-tool"),toolName:b.string(),toolCallId:b.string(),state:b.literal("output-error"),input:b.unknown(),providerExecuted:b.boolean().optional(),output:b.never().optional(),errorText:b.string(),callProviderMetadata:je.optional()}),b.object({type:b.string().startsWith("tool-"),toolCallId:b.string(),state:b.literal("input-streaming"),providerExecuted:b.boolean().optional(),input:b.unknown().optional(),output:b.never().optional(),errorText:b.never().optional(),approval:b.never().optional()}),b.object({type:b.string().startsWith("tool-"),toolCallId:b.string(),state:b.literal("input-available"),providerExecuted:b.boolean().optional(),input:b.unknown(),output:b.never().optional(),errorText:b.never().optional(),callProviderMetadata:je.optional(),approval:b.never().optional()}),b.object({type:b.string().startsWith("tool-"),toolCallId:b.string(),state:b.literal("approval-requested"),input:b.unknown(),providerExecuted:b.boolean().optional(),output:b.never().optional(),errorText:b.never().optional(),callProviderMetadata:je.optional(),approval:b.object({id:b.string(),approved:b.never().optional(),reason:b.never().optional()})}),b.object({type:b.string().startsWith("tool-"),toolCallId:b.string(),state:b.literal("approval-responded"),input:b.unknown(),providerExecuted:b.boolean().optional(),output:b.never().optional(),errorText:b.never().optional(),callProviderMetadata:je.optional(),approval:b.object({id:b.string(),approved:b.boolean(),reason:b.string().optional()})}),b.object({type:b.string().startsWith("tool-"),toolCallId:b.string(),state:b.literal("output-available"),providerExecuted:b.boolean().optional(),input:b.unknown(),output:b.unknown(),errorText:b.never().optional(),callProviderMetadata:je.optional(),preliminary:b.boolean().optional(),approval:b.object({id:b.string(),approved:b.literal(!0),reason:b.string().optional()}).optional()}),b.object({type:b.string().startsWith("tool-"),toolCallId:b.string(),state:b.literal("output-error"),providerExecuted:b.boolean().optional(),input:b.unknown(),output:b.never().optional(),errorText:b.string(),callProviderMetadata:je.optional(),approval:b.object({id:b.string(),approved:b.literal(!0),reason:b.string().optional()}).optional()}),b.object({type:b.string().startsWith("tool-"),toolCallId:b.string(),state:b.literal("output-denied"),providerExecuted:b.boolean().optional(),input:b.unknown(),output:b.never().optional(),errorText:b.never().optional(),callProviderMetadata:je.optional(),approval:b.object({id:b.string(),approved:b.literal(!1),reason:b.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty")));var nz=(e,t)=>{if(t==null)return[];let r=e.findIndex(n=>n.id===t);if(r===-1)throw new Error("useVercelAIThreadState: Message not found. This is likely an internal bug in assistant-ui.");for(;e[r+1]?.role==="assistant";)r++;return e.slice(0,r+1)};var oz=e=>{let r=[...e.content.filter(n=>n.type!=="file"),...e.attachments?.flatMap(n=>n.content.map(o=>({...o,filename:n.name})))??[]].map(n=>{switch(n.type){case"text":return{type:"text",text:n.text};case"image":return{type:"file",url:n.image,...n.filename&&{filename:n.filename},mediaType:"image/png"};case"file":return{type:"file",url:n.data,mediaType:n.mimeType,...n.filename&&{filename:n.filename}};default:throw new Error(`Unsupported part type: ${n.type}`)}});return{role:e.role,parts:r}};var EIe=e=>new Promise((t,r)=>{let n=new FileReader;n.onload=()=>t(n.result),n.onerror=o=>r(o),n.readAsDataURL(e)}),zee={accept:"image/*, text/plain, text/html, text/markdown, text/csv, text/xml, text/json, text/css",async add({file:e}){return{id:oy(),type:e.type.startsWith("image/")?"image":"file",name:e.name,file:e,contentType:e.type,content:[],status:{type:"requires-action",reason:"composer-send"}}},async send(e){return{...e,status:{type:"complete"},content:[{type:"file",mimeType:e.contentType,filename:e.name,data:await EIe(e.file)}]}},async remove(){}};var az=e=>vo(e);function AIe(e){return e.replace(/[}\]"]+$/,"")}var iz=(e,t)=>!e.parts||e.parts.length===0?[]:e.parts.filter(r=>r.type!=="step-start"&&r.type!=="file").map(r=>{let n=r.type;if(n==="text")return{type:"text",text:r.text};if(n==="reasoning")return{type:"reasoning",text:r.text};if(Xl(r)){let o=n.replace("tool-",""),a=r.toolCallId,i={},s,l=!1;r.state==="input-streaming"||r.state==="input-available"?i=r.input||{}:r.state==="output-available"?(i=r.input||{},s=r.output):r.state==="output-error"&&(i=r.input||{},l=!0,s={error:r.errorText});let u=JSON.stringify(i);r.state==="input-streaming"&&(u=AIe(u));let c=t.toolStatuses?.[a];return{type:"tool-call",toolName:o,toolCallId:a,argsText:u,args:i,result:s,isError:l,...c?.type==="interrupt"&&{interrupt:c.payload,status:{type:"requires-action",reason:"interrupt"}}}}if(n==="dynamic-tool"){let o=r.toolName,a=r.toolCallId,i={},s,l=!1;r.state==="input-streaming"||r.state==="input-available"?i=r.input||{}:r.state==="output-available"?(i=r.input||{},s=r.output):r.state==="output-error"&&(i=r.input||{},l=!0,s={error:r.errorText});let u=t.toolStatuses?.[a];return{type:"tool-call",toolName:o,toolCallId:a,argsText:JSON.stringify(i),args:i,result:s,isError:l,...u?.type==="interrupt"&&{interrupt:u.payload,status:{type:"requires-action",reason:"interrupt"}}}}return n==="source-url"?{type:"source",sourceType:"url",id:r.sourceId,url:r.url,title:r.title||""}:n==="source-document"?(console.warn(`Source document part type ${n} is not yet supported in conversion`),null):n.startsWith("data-")?{type:"data",name:n.substring(5),data:r.data}:(console.warn(`Unsupported message part type: ${n}`),null)}).filter(Boolean),sz=BP((e,t)=>{let r=new Date;switch(e.role){case"user":return{role:"user",id:e.id,createdAt:r,content:iz(e,t),attachments:e.parts?.filter(n=>n.type==="file").map((n,o)=>({id:o.toString(),type:n.mediaType.startsWith("image/")?"image":"file",name:n.filename??"file",content:[n.mediaType.startsWith("image/")?{type:"image",image:n.url,filename:n.filename}:{type:"file",filename:n.filename,data:n.url,mimeType:n.mediaType}],contentType:n.mediaType??"unknown/unknown",status:{type:"complete"}}))};case"system":return{role:"system",id:e.id,createdAt:r,content:iz(e,t)};case"assistant":return{role:"assistant",id:e.id,createdAt:r,content:iz(e,t),metadata:{unstable_annotations:e.annotations,unstable_data:Array.isArray(e.data)?e.data:e.data?[e.data]:void 0,custom:{}}};default:return console.warn(`Unsupported message role: ${e.role}`),[]}});var Fee={format:"ai-sdk/v5",encode({message:{id:e,parts:t,...r}}){return{...r,parts:t.filter(n=>n.type!=="file")}},decode(e){return{parentId:e.parent_id,message:{id:e.id,...e.content}}},getId(e){return e.id}};var Oo=S(A(),1),{MessageRepository:RIe}=qs,MIe=(e,t)=>({headId:t.headId,messages:t.messages.map(r=>{let n=e([r.message])[0];return{...r,message:n}})}),jee=(e,t,r,n,o)=>{let a=(0,Oo.useRef)(!1),i=ee(),s=(0,Oo.useCallback)(()=>i.threadListItem.source?i.threadListItem():null,[i]),[l,u]=(0,Oo.useState)(!1),c=(0,Oo.useRef)(new Set),d=(0,Oo.useRef)(()=>o);return(0,Oo.useEffect)(()=>{d.current=o}),(0,Oo.useEffect)(()=>{if(!t||a.current)return;let f=async()=>{u(!0);try{let p=await t.withFormat?.(n).load();if(p&&p.messages.length>0){let m=MIe(r,p);e.current.thread.import(m);let h=new RIe;h.import(m);let y=h.getMessages();d.current(y.map(vo).flat()),c.current=new Set(m.messages.map(g=>g.message.id))}}catch(p){console.error("Failed to load message history:",p)}finally{u(!1)}};if(!a.current){if(a.current=!0,!s()?.getState().remoteId){u(!1);return}f()}},[i,t,n,r,e,s]),(0,Oo.useEffect)(()=>e.current.thread.subscribe(async()=>{let{messages:f,isRunning:p}=e.current.thread.getState();if(!p)for(let m=0;m<f.length;m++){let h=f[m];if(h.status===void 0||h.status.type==="complete"||h.status.type==="incomplete"){if(c.current.has(h.id))continue;c.current.add(h.id);let y=m>0?f[m-1].id:null;await t?.withFormat?.(n).append({parentId:y,message:vo(h)[0]})}}}),[t,n,e]),l};var Bee=(e,{adapters:t,toCreateMessage:r,cancelPendingToolCallsOnSend:n=!0}={})=>{let o=mb(),[a,i]=(0,sy.useState)({}),s=Object.values(a).some(h=>h?.type==="executing"),l=e.status==="submitted"||e.status==="streaming"||s,u=sz.useThreadMessages({isRunning:l,messages:e.messages,metadata:(0,sy.useMemo)(()=>({toolStatuses:a,...e.error&&{error:e.error.message}}),[a,e.error])}),[c]=(0,sy.useState)(()=>({get current(){return m}})),d=qs.useToolInvocations({state:{messages:u,isRunning:l},getTools:()=>c.current.thread.getModelContext().tools,onResult:h=>{h.type==="add-tool-result"&&e.addToolResult({tool:h.toolName,toolCallId:h.toolCallId,output:h.result})},setToolStatuses:i}),f=jee(c,t?.history??o?.history,sz.toThreadMessages,Fee,h=>{e.setMessages(h)}),p=async()=>{n&&(await d.abort(),e.setMessages(h=>{let y=h.at(-1);if(y?.role!=="assistant")return h;let g=!1,v=y.parts?.map(x=>!Xl(x)||x.state==="output-available"||x.state==="output-error"?x:(g=!0,{...x,state:"output-error",errorText:"User cancelled tool call by sending a new message."}));return g?[...h.slice(0,-1),{...y,parts:v}]:h}))},m=bP({isRunning:l,messages:u,setMessages:h=>e.setMessages(h.map(az).filter(Boolean).flat()),onImport:h=>e.setMessages(h.map(az).filter(Boolean).flat()),onCancel:async()=>{e.stop(),await d.abort()},onNew:async h=>{await p();let y=(r??oz)(h);await e.sendMessage(y,{metadata:h.runConfig})},onEdit:async h=>{let y=nz(e.messages,h.parentId);e.setMessages(y);let g=(r??oz)(h);await e.sendMessage(g,{metadata:h.runConfig})},onReload:async(h,y)=>{let g=nz(e.messages,h);e.setMessages(g),await e.regenerate({metadata:y.runConfig})},onAddToolResult:({toolCallId:h,result:y,isError:g})=>{g?e.addToolOutput({state:"output-error",tool:h,toolCallId:h,errorText:typeof y=="string"?y:JSON.stringify(y)}):e.addToolOutput({state:"output-available",tool:h,toolCallId:h,output:y})},onResumeToolCall:h=>d.resume(h.toolCallId,h.payload),adapters:{attachments:zee,...o,...t},isLoading:f});return m};var ya=S(A(),1);var Wee=S(Vee(),1);var dy=S(A(),1);var F_=S(A(),1);var Hee=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)},It=(e,t,r)=>(Hee(e,t,"read from private field"),r?r.call(e):t.get(e)),oi=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},Yl=(e,t,r,n)=>(Hee(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r);function DIe(e,t){return t!=null?(0,Wee.default)(e,t):e}var No,N_,z_,ly,uy,cy,um,lz,uz,OIe=class{constructor(e=[]){oi(this,No,void 0),oi(this,N_,"ready"),oi(this,z_,void 0),oi(this,ly,new Set),oi(this,uy,new Set),oi(this,cy,new Set),this.pushMessage=t=>{Yl(this,No,It(this,No).concat(t)),It(this,um).call(this)},this.popMessage=()=>{Yl(this,No,It(this,No).slice(0,-1)),It(this,um).call(this)},this.replaceMessage=(t,r)=>{Yl(this,No,[...It(this,No).slice(0,t),this.snapshot(r),...It(this,No).slice(t+1)]),It(this,um).call(this)},this.snapshot=t=>structuredClone(t),this["~registerMessagesCallback"]=(t,r)=>{let n=r?DIe(t,r):t;return It(this,ly).add(n),()=>{It(this,ly).delete(n)}},this["~registerStatusCallback"]=t=>(It(this,uy).add(t),()=>{It(this,uy).delete(t)}),this["~registerErrorCallback"]=t=>(It(this,cy).add(t),()=>{It(this,cy).delete(t)}),oi(this,um,()=>{It(this,ly).forEach(t=>t())}),oi(this,lz,()=>{It(this,uy).forEach(t=>t())}),oi(this,uz,()=>{It(this,cy).forEach(t=>t())}),Yl(this,No,e)}get status(){return It(this,N_)}set status(e){Yl(this,N_,e),It(this,lz).call(this)}get error(){return It(this,z_)}set error(e){Yl(this,z_,e),It(this,uz).call(this)}get messages(){return It(this,No)}set messages(e){Yl(this,No,[...e]),It(this,um).call(this)}};No=new WeakMap;N_=new WeakMap;z_=new WeakMap;ly=new WeakMap;uy=new WeakMap;cy=new WeakMap;um=new WeakMap;lz=new WeakMap;uz=new WeakMap;var cm,qee=class extends Nee{constructor({messages:e,...t}){let r=new OIe(e);super({...t,state:r}),oi(this,cm,void 0),this["~registerMessagesCallback"]=(n,o)=>It(this,cm)["~registerMessagesCallback"](n,o),this["~registerStatusCallback"]=n=>It(this,cm)["~registerStatusCallback"](n),this["~registerErrorCallback"]=n=>It(this,cm)["~registerErrorCallback"](n),Yl(this,cm,r)}};cm=new WeakMap;function Zee({experimental_throttle:e,resume:t=!1,...r}={}){let n=(0,ya.useRef)("chat"in r?r.chat:new qee(r));("chat"in r&&r.chat!==n.current||"id"in r&&n.current.id!==r.id)&&(n.current="chat"in r?r.chat:new qee(r));let a=(0,ya.useCallback)(c=>n.current["~registerMessagesCallback"](c,e),[e,n.current.id]),i=(0,ya.useSyncExternalStore)(a,()=>n.current.messages,()=>n.current.messages),s=(0,ya.useSyncExternalStore)(n.current["~registerStatusCallback"],()=>n.current.status,()=>n.current.status),l=(0,ya.useSyncExternalStore)(n.current["~registerErrorCallback"],()=>n.current.error,()=>n.current.error),u=(0,ya.useCallback)(c=>{typeof c=="function"&&(c=c(n.current.messages)),n.current.messages=c},[n]);return(0,ya.useEffect)(()=>{t&&n.current.resumeStream()},[t,n]),{id:n.current.id,messages:i,setMessages:u,sendMessage:n.current.sendMessage,regenerate:n.current.regenerate,clearError:n.current.clearError,stop:n.current.stop,error:l,resumeStream:n.current.resumeStream,status:s,addToolResult:n.current.addToolOutput,addToolOutput:n.current.addToolOutput}}var NIe=e=>Object.fromEntries(Object.entries(e).map(([t,r])=>[t,{...r.description?{description:r.description}:void 0,parameters:r.parameters instanceof tz.ZodType?tz.toJSONSchema(r.parameters):r.parameters}])),zIe=e=>Object.fromEntries(Object.entries(e).filter(([,t])=>!t.disabled&&t.type!=="backend")),Ql=class extends rz{constructor(r){super({...r,prepareSendMessagesRequest:async n=>{let o=this.runtime?.thread.getModelContext(),a=(await this.runtime?.threads.mainItem.initialize())?.remoteId??n.id,i={...n,body:{callSettings:o?.callSettings,system:o?.system,tools:NIe(zIe(o?.tools??{})),...n?.body}},s=await r?.prepareSendMessagesRequest?.(i);return{...s,body:s?.body??{...i.body,id:a,messages:n.messages,trigger:n.trigger,messageId:n.messageId,metadata:n.requestMetadata}}}});P(this,"runtime")}setRuntime(r){this.runtime=r}};var dm=S(A(),1),FIe=e=>{let t=(0,dm.useRef)(e);return(0,dm.useEffect)(()=>{t.current=e}),(0,dm.useMemo)(()=>new Proxy(t.current,{get(n,o){let a=t.current[o];return typeof a=="function"?a.bind(t.current):a}}),[])},jIe=e=>{let{adapters:t,transport:r,toCreateMessage:n,...o}=e??{},a=FIe(r??new Ql),i=O(({threadListItem:u})=>u.id),s=Zee({...o,id:i,transport:a}),l=Bee(s,{adapters:t,...n&&{toCreateMessage:n}});return a instanceof Ql&&a.setRuntime(l),l},cz=({cloud:e,...t}={})=>{let r=ZP({cloud:e});return jh({runtimeHook:function(){return jIe(t)},adapter:r,allowNesting:!0})};var zo=S(A(),1),Jee=S(D(),1),Gee=(0,zo.createContext)(null);function Kee({children:e}){let[t,r]=(0,zo.useState)([]),n=(0,zo.useCallback)(l=>{console.log("[MessageContext] Adding context item:",l.id,l.title),r(u=>u.some(c=>c.id===l.id)?(console.log("[MessageContext] Item already exists, skipping"),u):(console.log("[MessageContext] Context items count:",u.length+1),[...u,l]))},[]),o=(0,zo.useCallback)(l=>{r(u=>u.filter(c=>c.id!==l))},[]),a=(0,zo.useCallback)(()=>{console.log("[MessageContext] Clearing context"),r([])},[]),i=(0,zo.useCallback)(l=>{r(l)},[]),s=(0,zo.useCallback)(()=>{let l=t;return console.log("[MessageContext] Consuming context:",l.length,"items"),l},[t]);return(0,Jee.jsx)(Gee.Provider,{value:{selectedContext:t,addContextItem:n,removeContextItem:o,clearContext:a,setContext:i,consumeContext:s},children:e})}function fm(){let e=(0,zo.useContext)(Gee);if(!e)throw new Error("useMessageContext must be used within a MessageContextProvider");return e}var Zc=S(D(),1),dz=(0,Dr.createContext)(null);function BIe(){return crypto.randomUUID()}function fz(e,t){return{"Content-Type":"application/json","X-User-Id":e,"X-Assistant-Id":t}}function UIe(e,t,r){let n=fz(t,r);return{async list(){try{let o=await fetch(`${e}/api/widget/threads`,{headers:n});return o.ok?{threads:(await o.json()).threads||[]}:(console.error("[Threads] List failed:",o.status),{threads:[]})}catch(o){return console.error("[Threads] List error:",o),{threads:[]}}},async fetch(o){let a=await fetch(`${e}/api/widget/threads/${o}`,{headers:n});if(!a.ok)throw new Error(`Failed to fetch thread: ${a.status}`);let i=await a.json();return{remoteId:i.remoteId,status:i.status,title:i.title}},async initialize(o){try{let a=await fetch(`${e}/api/widget/threads`,{method:"POST",headers:n,body:JSON.stringify({localId:o})});if(!a.ok)throw new Error(`Failed to create thread: ${a.status}`);let i=await a.json();return{remoteId:i.remoteId,externalId:i.externalId}}catch(a){throw console.error("[Threads] Initialize error:",a),a}},async rename(o,a){try{await fetch(`${e}/api/widget/threads/${o}`,{method:"PATCH",headers:n,body:JSON.stringify({title:a})})}catch(i){console.error("[Threads] Rename error:",i)}},async archive(o){try{await fetch(`${e}/api/widget/threads/${o}/archive`,{method:"POST",headers:n})}catch(a){console.error("[Threads] Archive error:",a)}},async unarchive(o){try{await fetch(`${e}/api/widget/threads/${o}/unarchive`,{method:"POST",headers:n})}catch(a){console.error("[Threads] Unarchive error:",a)}},async delete(o){try{await fetch(`${e}/api/widget/threads/${o}`,{method:"DELETE",headers:n})}catch(a){console.error("[Threads] Delete error:",a)}},async generateTitle(o,a){return qw(async i=>{try{let s=await fetch(`${e}/api/widget/threads/${o}/title`,{method:"POST",headers:n,body:JSON.stringify({messages:a})});if(!s.ok)throw new Error(`Title generation failed: ${s.status}`);let l=await s.json();i.appendText(l.title),i.close()}catch(s){console.error("[Threads] Title generation error:",s),i.appendText("New Chat"),i.close()}})}}}async function VIe(e,t,r,n,o){try{let a=await fetch(`${e}/api/widget/threads/${n}/messages/sync`,{method:"POST",headers:fz(t,r),body:JSON.stringify({messages:o})});a.ok||console.error("[Messages] Sync failed:",a.status)}catch(a){console.error("[Messages] Sync error:",a)}}function qIe(e,t,r,n){let o=fz(t,r);return{async load(){if(console.log("[History] load() called, remoteId:",n),!n)return{headId:null,messages:[]};try{let a=await fetch(`${e}/api/widget/threads/${n}/messages`,{headers:o});if(!a.ok)return console.error("[History] Failed to load messages:",a.status),{headId:null,messages:[]};let{messages:i}=await a.json();console.log("[History] Loaded messages:",i.length);let s=i.map((l,u)=>({parentId:u>0?i[u-1].id:null,message:{id:l.id,role:l.role,parts:l.content,metadata:l.metadata,createdAt:new Date(l.createdAt)}}));return console.log("[History] Formatted messages:",s.length),{headId:i.length>0?i[i.length-1].id:null,messages:s}}catch(a){return console.error("[History] Load error:",a),{headId:null,messages:[]}}},async append(a){console.log("[History] append() called")},withFormat(a){return console.log("[History.withFormat] called, remoteId:",n),{async load(){if(!n)return{headId:null,messages:[]};try{let i=await fetch(`${e}/api/widget/threads/${n}/messages`,{headers:o});if(!i.ok)return console.error("[History.withFormat] Failed:",i.status),{headId:null,messages:[]};let{messages:s}=await i.json();console.log("[History.withFormat] Loaded:",s.length);let l=s.map((u,c)=>({parentId:c>0?s[c-1].id:null,message:{id:u.id,role:u.role,parts:u.content,metadata:u.metadata,createdAt:new Date(u.createdAt)}}));return{headId:s.length>0?s[s.length-1].id:null,messages:l}}catch(i){return console.error("[History.withFormat] Error:",i),{headId:null,messages:[]}}},async append(i){}}}}}function HIe({config:e,userId:t,children:r}){let n=e.baseUrl||"http://localhost:3000",o=e.apiKey,{consumeContext:a,clearContext:i}=fm(),s=(0,Dr.useRef)(a);s.current=a;let l=(0,Dr.useRef)(i);l.current=i;let u=(0,Dr.useMemo)(()=>UIe(n,t,o),[n,t,o]),c=jh({runtimeHook:function(){let f=O(({threadListItem:g})=>g?.remoteId??void 0),p=(0,Dr.useRef)(f);p.current=f;let m=(0,Dr.useMemo)(()=>qIe(n,t,o,f),[f]),h=(0,Dr.useMemo)(()=>(console.log("[Widget] Creating transport for threadId:",f),new Ql({api:`${n}/api/widget/chat`,headers:{"X-User-Id":t,"X-Assistant-Id":o},body:()=>{let g=s.current(),v=g.map(w=>w.id),x=g.map(w=>({id:w.id,type:w.type,title:w.title}));return console.log("[Widget] Transport body - contextIds:",v.length,"threadId:",f),v.length>0&&setTimeout(()=>l.current(),0),{assistantId:o,threadId:f,...v.length>0&&{contextIds:v,contextMetadata:x}}}})),[f]);return cz({transport:h,adapters:{history:m},onFinish:({message:g,messages:v})=>{let x=p.current;console.log("[Widget] onFinish - threadId:",x,"messages:",v.length),x&&v.length>0&&VIe(n,t,o,x,v)}})},adapter:u});return(0,Zc.jsx)(MP,{runtime:c,children:r})}function Xee({config:e,children:t,autoInitialize:r=!0}){let[n]=(0,Dr.useState)(()=>e.userId||BIe()),[o]=(0,Dr.useState)(()=>new wu(e)),[a,i]=(0,Dr.useState)(o.getState());(0,Dr.useEffect)(()=>{let l=o.on("state:change",({current:u})=>{i(u)});return r&&a.status==="idle"&&o.initialize().catch(console.error),()=>{l(),o.destroy()}},[o,r,a.status]);let s=(0,Dr.useMemo)(()=>({client:o,state:a,userId:n}),[o,a,n]);return(0,Zc.jsx)(qA,{value:OA,children:(0,Zc.jsx)(HA,{theme:Tv,children:(0,Zc.jsx)(dz.Provider,{value:s,children:(0,Zc.jsx)(Kee,{children:(0,Zc.jsx)(HIe,{config:e,userId:n,children:t})})})})})}var WIe={attachment:"Attachments",description:"Description",caption:"Video",link:"Links"};function Yee(e={}){let{onInsertMention:t}=e,r=(0,Et.useContext)(dz);if(!r)throw new Error("useContextMention must be used within a WidgetProvider");let{client:n}=r,{selectedContext:o,addContextItem:a,removeContextItem:i,clearContext:s}=fm(),[l,u]=(0,Et.useState)(!1),[c,d]=(0,Et.useState)(""),[f,p]=(0,Et.useState)(0),[m,h]=(0,Et.useState)(!1),[y,g]=(0,Et.useState)([]),[v,x]=(0,Et.useState)(!1),w=n.getConfig(),_=w.baseUrl||"http://localhost:3000",k=w.apiKey,C=(0,Et.useCallback)(async(T="",ze=10)=>{h(!0);try{let Ct=new URLSearchParams({limit:ze.toString()});T&&Ct.set("search",T);let E=await fetch(`${_}/api/widget/context?${Ct.toString()}`,{headers:{"Content-Type":"application/json","X-Assistant-Id":k}});if(!E.ok){console.error("[ContextMention] Failed to fetch context:",E.status);return}let He=await E.json();g(He.categories),x(He.hasMore)}catch(Ct){console.error("[ContextMention] Error fetching context:",Ct)}finally{h(!1)}},[_,k]),I=(0,Et.useCallback)(()=>{u(!0),d(""),p(0),C()},[C]),M=(0,Et.useCallback)(()=>{u(!1),d(""),p(0)},[]),L=(0,Et.useCallback)(T=>{d(T),p(0),C(T)},[C]),B=(0,Et.useMemo)(()=>y.flatMap(T=>T.items),[y]),Y=(0,Et.useCallback)(()=>{p(T=>T<B.length-1?T+1:T)},[B.length]),F=(0,Et.useCallback)(()=>{p(T=>T>0?T-1:0)},[]),K=(0,Et.useCallback)(()=>{let T=B[f];T&&(a(T),M(),t?.(T))},[B,f,a,M,t]),te=(0,Et.useCallback)(T=>{a(T),M(),t?.(T)},[a,M,t]),se=(0,Et.useCallback)(T=>{i(T)},[i]),U=(0,Et.useCallback)(()=>{s()},[s]),N=(0,Et.useCallback)(T=>{if(l)switch(T.key){case"ArrowDown":T.preventDefault(),Y();break;case"ArrowUp":T.preventDefault(),F();break;case"Enter":T.preventDefault(),K();break;case"Escape":T.preventDefault(),M();break}},[l,Y,F,K,M]),ye=(0,Et.useCallback)(T=>WIe[T]||T,[]);return{selectedItems:o,selectItem:te,removeItem:se,clearAll:U,isOpen:l,openPopover:I,closePopover:M,searchTerm:c,updateSearch:L,activeIndex:f,setActiveIndex:p,navigateUp:F,navigateDown:Y,selectActiveItem:K,handleKeyDown:N,categories:y,flattenedItems:B,isLoading:m,hasMore:v,getCategoryLabel:ye}}var wa=S(A(),1),j=S(D(),1),Qee=()=>(0,j.jsx)(Di.Root,{className:"aui-thread-root @container flex h-full flex-col bg-background",style:{"--thread-max-width":"44rem"},children:(0,j.jsxs)(Di.Viewport,{className:"aui-thread-viewport relative flex flex-1 flex-col overflow-x-auto overflow-y-scroll scroll-smooth px-4 pt-4",children:[(0,j.jsx)(Qs,{condition:({thread:e})=>e.isEmpty,children:(0,j.jsx)(JIe,{})}),(0,j.jsx)(Di.Messages,{components:{UserMessage:aCe,EditComposer:sCe,AssistantMessage:rCe}}),(0,j.jsxs)(Di.ViewportFooter,{className:"aui-thread-viewport-footer sticky bottom-0 mx-auto mt-auto flex w-full max-w-(--thread-max-width) flex-col gap-4 overflow-visible rounded-t-3xl bg-background pb-4",children:[(0,j.jsx)(ZIe,{}),(0,j.jsx)(YIe,{})]})]})}),ZIe=()=>(0,j.jsx)(Di.ScrollToBottom,{asChild:!0,children:(0,j.jsx)(vt,{tooltip:"Scroll to bottom",variant:"outline",className:"aui-thread-scroll-to-bottom absolute -top-12 z-10 self-center rounded-full p-4 disabled:invisible dark:bg-background dark:hover:bg-accent",children:(0,j.jsx)(vg,{})})}),GIe=()=>{let e=new Date().getHours();return e<12?"Good morning":e<18?"Good afternoon":"Good evening"},KIe=[{label:"Explain this concept in detail",icon:Tg,prompt:"Explain this concept to me by drawing comparisons"},{label:"Generate a podcast",icon:$g,prompt:"/audio"},{label:"Quiz me",icon:el,prompt:"/quiz"},{label:"Generate flashcards",icon:Ng,prompt:"/flashcards"}],JIe=()=>(0,j.jsxs)("div",{className:"aui-thread-welcome-root mx-auto flex w-full max-w-(--thread-max-width) flex-col gap-4",children:[(0,j.jsx)("div",{className:"aui-thread-welcome-center flex w-full grow flex-col items-center justify-center",children:(0,j.jsxs)("div",{className:"aui-thread-welcome-message flex size-full flex-col justify-center px-4",children:[(0,j.jsx)("h1",{className:"aui-thread-welcome-message-inner fade-in slide-in-from-bottom-1 animate-in font-semibold text-2xl duration-200",style:{color:"var(--color-primary)"},children:GIe()}),(0,j.jsx)("p",{className:"aui-thread-welcome-message-inner fade-in slide-in-from-bottom-1 animate-in text-muted-foreground text-xl delay-75 duration-200",children:"How may I be of service?"})]})}),(0,j.jsx)(XIe,{})]}),XIe=()=>(0,j.jsx)("div",{className:"aui-thread-welcome-suggestions flex w-full flex-col gap-2",children:KIe.map((e,t)=>{let r=e.icon;return(0,j.jsx)("div",{className:"fade-in slide-in-from-bottom-2 animate-in fill-mode-both duration-200",style:{animationDelay:`${200+t*50}ms`},children:(0,j.jsx)(Di.Suggestion,{prompt:e.prompt,send:!0,asChild:!0,children:(0,j.jsx)($l,{variant:"ghost",className:"aui-thread-welcome-suggestion h-auto w-full @md:flex-col flex-wrap items-start justify-start gap-1 rounded-2xl border text-left text-sm transition-colors hover:bg-muted hover:text-primary","aria-label":e.label,style:{borderWidth:0,padding:8},children:(0,j.jsxs)("div",{className:"flex items-center gap-2",children:[(0,j.jsx)(r,{className:"size-4 shrink-0"}),(0,j.jsx)("span",{children:e.label})]})})})},e.prompt)})}),YIe=()=>{let e=(0,wa.useRef)(null),t=Fd(),r=(0,wa.useCallback)(()=>{t.send()},[t]),n=(0,wa.useCallback)(C=>{e.current?.insertMention({id:C.id,title:C.title,icon:C.icon,type:C.type}),setTimeout(()=>{e.current?.focus()},0)},[]),{isOpen:o,openPopover:a,closePopover:i,categories:s,isLoading:l,activeIndex:u,flattenedItems:c,selectItem:d,setActiveIndex:f,handleKeyDown:p,getCategoryLabel:m,searchTerm:h,updateSearch:y}=Yee({onInsertMention:n}),{selectedContext:g,removeContextItem:v}=fm(),x=(0,wa.useCallback)(C=>{o||a(),y(C)},[o,a,y]),w=(0,wa.useCallback)(()=>{o&&i()},[o,i]),_=(0,wa.useCallback)(C=>{o&&["ArrowUp","ArrowDown","Enter","Escape"].includes(C.key)&&(C.preventDefault(),p(C),C.key==="Escape"&&setTimeout(()=>{e.current?.focus()},0))},[o,p]),k=(0,wa.useCallback)(C=>{v(C)},[v]);return(0,j.jsx)(Ln.Root,{className:"aui-composer-root relative flex w-full flex-col",children:(0,j.jsxs)(Ln.AttachmentDropzone,{className:"aui-composer-attachment-dropzone flex w-full flex-col rounded-2xl border border-input bg-background px-1 pt-2 outline-none transition-shadow has-[[contenteditable]:focus-visible]:border-ring has-[[contenteditable]:focus-visible]:ring-2 has-[[contenteditable]:focus-visible]:ring-ring/20 data-[dragging=true]:border-ring data-[dragging=true]:border-dashed data-[dragging=true]:bg-accent/50",children:[(0,j.jsx)(QIe,{isOpen:o,onOpenChange:C=>C?a():i(),categories:s,isLoading:l,activeIndex:u,flattenedItems:c,onSelectItem:d,onActiveIndexChange:f,getCategoryLabel:m,searchTerm:h,selectedItems:g,onRemoveItem:v}),(0,j.jsx)(JK,{}),(0,j.jsx)(jM,{ref:e,placeholder:"Ask, search, or make anything...",autoFocus:!0,onTriggerDetected:x,onTriggerDismissed:w,onKeyDown:_,onMentionRemove:k,onSubmit:r}),(0,j.jsx)(eCe,{})]})})},QIe=({isOpen:e,onOpenChange:t,categories:r,isLoading:n,activeIndex:o,flattenedItems:a,onSelectItem:i,onActiveIndexChange:s,getCategoryLabel:l,searchTerm:u,selectedItems:c,onRemoveItem:d})=>(0,j.jsxs)("div",{className:"aui-composer-context mb-2 flex items-center gap-2 overflow-x-auto px-1.5 pt-0.5 pb-1",children:[(0,j.jsx)(mJ,{isOpen:e,onOpenChange:t,categories:r,isLoading:n,activeIndex:o,flattenedItems:a,onSelectItem:i,onActiveIndexChange:s,getCategoryLabel:l,searchTerm:u,trigger:(0,j.jsx)(vt,{tooltip:"Add context (@)",side:"bottom",variant:"ghost",size:"icon",className:"aui-composer-add-context size-[34px] rounded-full p-1 font-semibold text-xs hover:bg-muted-foreground/15 dark:border-muted-foreground/15 dark:hover:bg-muted-foreground/30","aria-label":"Add context (@)",children:(0,j.jsx)(yg,{className:"size-5 stroke-[1.5px]"})})}),c.length>0&&(0,j.jsx)("div",{className:"flex items-center gap-1.5 overflow-x-auto",children:c.map(f=>(0,j.jsx)(pJ,{label:f.title,onRemove:()=>d(f.id)},f.id))})]}),eCe=()=>(0,j.jsxs)("div",{className:"aui-composer-action-wrapper relative mx-2 mb-2 flex items-center justify-between",children:[(0,j.jsxs)("div",{className:"flex items-center gap-2",children:[(0,j.jsx)(XK,{}),(0,j.jsx)(vt,{tooltip:"All sources",side:"bottom",variant:"ghost",size:"icon",className:"aui-composer-all-sources size-[34px] rounded-full p-1 font-semibold text-xs hover:bg-muted-foreground/15 dark:border-muted-foreground/15 dark:hover:bg-muted-foreground/30","aria-label":"All sources",children:(0,j.jsx)(Ig,{className:"size-5 stroke-[1.5px]"})})]}),(0,j.jsx)(Qs,{condition:({thread:e})=>!e.isRunning,children:(0,j.jsx)(Ln.Send,{asChild:!0,children:(0,j.jsx)(vt,{tooltip:"Send message",side:"bottom",type:"submit",variant:"default",className:"aui-composer-send size-8 rounded-full","aria-label":"Send message",children:(0,j.jsx)(xg,{className:"aui-composer-send-icon size-4"})})})}),(0,j.jsx)(Qs,{condition:({thread:e})=>e.isRunning,children:(0,j.jsx)(Ln.Cancel,{asChild:!0,children:(0,j.jsx)($l,{type:"button",variant:"default",size:"icon",className:"aui-composer-cancel size-8 rounded-full","aria-label":"Stop generating",children:(0,j.jsx)(Wu,{className:"aui-composer-cancel-icon size-3 fill-current"})})})})]}),tCe=()=>(0,j.jsx)(Na.Error,{children:(0,j.jsx)(dg.Root,{className:"aui-message-error-root mt-2 rounded-md border border-destructive bg-destructive/10 p-3 text-destructive text-sm dark:bg-destructive/5 dark:text-red-200",children:(0,j.jsx)(dg.Message,{className:"aui-message-error-message line-clamp-2"})})}),rCe=()=>(0,j.jsxs)(Na.Root,{className:"aui-assistant-message-root fade-in slide-in-from-bottom-1 relative mx-auto w-full max-w-(--thread-max-width) animate-in py-3 duration-150","data-role":"assistant",children:[(0,j.jsxs)("div",{className:"aui-assistant-message-content wrap-break-word px-2 text-foreground leading-relaxed",children:[(0,j.jsx)(Na.Parts,{components:{Text:dJ,tools:{Fallback:fJ}}}),(0,j.jsx)(tCe,{})]}),(0,j.jsxs)("div",{className:"aui-assistant-message-footer mt-1 ml-2 flex",children:[(0,j.jsx)(ete,{}),(0,j.jsx)(nCe,{})]})]}),nCe=()=>(0,j.jsxs)(Ai.Root,{hideWhenRunning:!0,autohide:"not-last",autohideFloat:"single-branch",className:"aui-assistant-action-bar-root col-start-3 row-start-2 -ml-1 flex gap-1 text-muted-foreground data-floating:absolute data-floating:rounded-md data-floating:border data-floating:bg-background data-floating:p-1 data-floating:shadow-sm",children:[(0,j.jsx)(Ai.Copy,{asChild:!0,children:(0,j.jsxs)(vt,{tooltip:"Copy",children:[(0,j.jsx)(Qs,{condition:({message:e})=>e.isCopied,children:(0,j.jsx)(Kn,{})}),(0,j.jsx)(Qs,{condition:({message:e})=>!e.isCopied,children:(0,j.jsx)(Ni,{})})]})}),(0,j.jsx)(Ai.ExportMarkdown,{asChild:!0,children:(0,j.jsx)(vt,{tooltip:"Export as Markdown",children:(0,j.jsx)(Vu,{})})}),(0,j.jsx)(Ai.Reload,{asChild:!0,children:(0,j.jsx)(vt,{tooltip:"Refresh",children:(0,j.jsx)(Og,{})})})]}),oCe=()=>{let[e,t]=(0,wa.useState)(!1),r=Eh(n=>{console.log("[MessageContextIndicator] Message state:",n);let o=n.metadata,a=o?.context||o?.custom?.context;return console.log("[MessageContextIndicator] Context:",a),a});return!r||r.length===0?null:(0,j.jsxs)("div",{className:"col-start-2 mb-1 flex flex-col items-end",children:[(0,j.jsxs)("button",{onClick:()=>t(!e),className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,j.jsxs)("span",{children:[r.length," Context"]}),(0,j.jsx)(Oi,{className:le("size-3.5 transition-transform duration-200",e&&"rotate-180")})]}),e&&(0,j.jsx)("div",{className:"mt-1 flex flex-wrap gap-1 justify-end",children:r.map(n=>(0,j.jsx)("span",{className:"rounded-full bg-muted px-2 py-0.5 text-xs text-muted-foreground",children:n.title},n.id))})]})},aCe=()=>(0,j.jsxs)(Na.Root,{className:"aui-user-message-root fade-in slide-in-from-bottom-1 mx-auto grid w-full max-w-(--thread-max-width) animate-in auto-rows-auto grid-cols-[minmax(72px,1fr)_auto] content-start gap-y-2 px-2 py-3 duration-150 [&:where(>*)]:col-start-2","data-role":"user",children:[(0,j.jsx)(oCe,{}),(0,j.jsx)(KK,{}),(0,j.jsxs)("div",{className:"aui-user-message-content-wrapper relative col-start-2 min-w-0",children:[(0,j.jsx)("div",{className:"aui-user-message-content wrap-break-word rounded-2xl bg-muted px-4 py-2.5 text-foreground",children:(0,j.jsx)(vJ,{})}),(0,j.jsx)("div",{className:"aui-user-action-bar-wrapper absolute top-1/2 left-0 -translate-x-full -translate-y-1/2 pr-2",children:(0,j.jsx)(iCe,{})})]}),(0,j.jsx)(ete,{className:"aui-user-branch-picker col-span-full col-start-1 row-start-3 -mr-1 justify-end"})]}),iCe=()=>(0,j.jsx)(Ai.Root,{hideWhenRunning:!0,autohide:"not-last",className:"aui-user-action-bar-root flex flex-col items-end",children:(0,j.jsx)(Ai.Edit,{asChild:!0,children:(0,j.jsx)(vt,{tooltip:"Edit",className:"aui-user-action-edit p-4",children:(0,j.jsx)(Rg,{})})})}),sCe=()=>(0,j.jsx)(Na.Root,{className:"aui-edit-composer-wrapper mx-auto flex w-full max-w-(--thread-max-width) flex-col px-2 py-3",children:(0,j.jsxs)(Ln.Root,{className:"aui-edit-composer-root ml-auto flex w-full max-w-[85%] flex-col rounded-2xl bg-muted",children:[(0,j.jsx)(Ln.Input,{className:"aui-edit-composer-input min-h-14 w-full resize-none bg-transparent p-4 text-foreground text-sm outline-none",autoFocus:!0}),(0,j.jsxs)("div",{className:"aui-edit-composer-footer mx-3 mb-3 flex items-center gap-2 self-end",children:[(0,j.jsx)(Ln.Cancel,{asChild:!0,children:(0,j.jsx)($l,{variant:"ghost",size:"sm",children:"Cancel"})}),(0,j.jsx)(Ln.Send,{asChild:!0,children:(0,j.jsx)($l,{size:"sm",children:"Update"})})]})]})}),ete=({className:e,...t})=>(0,j.jsxs)(Ys.Root,{hideWhenSingleBranch:!0,className:le("aui-branch-picker-root mr-2 -ml-2 inline-flex items-center text-muted-foreground text-xs",e),...t,children:[(0,j.jsx)(Ys.Previous,{asChild:!0,children:(0,j.jsx)(vt,{tooltip:"Previous",children:(0,j.jsx)(bg,{})})}),(0,j.jsxs)("span",{className:"aui-branch-picker-state font-medium",children:[(0,j.jsx)(Ys.Number,{})," / ",(0,j.jsx)(Ys.Count,{})]}),(0,j.jsx)(Ys.Next,{asChild:!0,children:(0,j.jsx)(vt,{tooltip:"Next",children:(0,j.jsx)(Sg,{})})})]});var Me=S(D(),1),tte=()=>(0,Me.jsxs)(oa.Root,{className:"aui-thread-list-root flex flex-col",children:[(0,Me.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-3 py-2",children:[(0,Me.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Chats"}),(0,Me.jsx)(oa.New,{asChild:!0,children:(0,Me.jsx)(vt,{tooltip:"New chat",variant:"ghost",size:"icon",className:"h-7 w-7",children:(0,Me.jsx)(Mg,{className:"h-4 w-4"})})})]}),(0,Me.jsxs)("div",{className:"flex-1 overflow-y-auto",children:[(0,Me.jsx)(oa.Items,{components:{ThreadListItem:lCe}}),(0,Me.jsx)("div",{className:"px-3 py-2",children:(0,Me.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Archived"})}),(0,Me.jsx)(oa.Items,{archived:!0,components:{ThreadListItem:uCe}})]})]}),lCe=()=>(0,Me.jsxs)(Ar.Root,{className:"aui-thread-list-item group relative flex items-center gap-2 px-3 py-2 hover:bg-muted/50 data-[active]:bg-muted cursor-pointer transition-colors",children:[(0,Me.jsxs)(Ar.Trigger,{className:"flex flex-1 items-center gap-2 min-w-0",children:[(0,Me.jsx)(Pg,{className:"h-4 w-4 flex-shrink-0 text-muted-foreground"}),(0,Me.jsx)("div",{className:"flex flex-1 flex-col min-w-0",children:(0,Me.jsx)("span",{className:"truncate text-sm font-medium text-foreground",children:(0,Me.jsx)(Ar.Title,{fallback:"New Chat"})})})]}),(0,Me.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,Me.jsx)(Ar.Archive,{asChild:!0,children:(0,Me.jsx)(vt,{tooltip:"Archive",variant:"ghost",size:"icon",className:"h-6 w-6",children:(0,Me.jsx)(uf,{className:"h-3.5 w-3.5"})})}),(0,Me.jsx)(Ar.Delete,{asChild:!0,children:(0,Me.jsx)(vt,{tooltip:"Delete",variant:"ghost",size:"icon",className:"h-6 w-6 text-destructive hover:text-destructive",children:(0,Me.jsx)(df,{className:"h-3.5 w-3.5"})})})]})]}),uCe=()=>(0,Me.jsxs)(Ar.Root,{className:"aui-thread-list-item-archived group relative flex items-center gap-2 px-3 py-2 hover:bg-muted/50 data-[active]:bg-muted cursor-pointer transition-colors opacity-70",children:[(0,Me.jsxs)(Ar.Trigger,{className:"flex flex-1 items-center gap-2 min-w-0",children:[(0,Me.jsx)(uf,{className:"h-4 w-4 flex-shrink-0 text-muted-foreground"}),(0,Me.jsx)("div",{className:"flex flex-1 flex-col min-w-0",children:(0,Me.jsx)("span",{className:"truncate text-sm text-foreground",children:(0,Me.jsx)(Ar.Title,{fallback:"Archived Chat"})})})]}),(0,Me.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,Me.jsx)(Ar.Unarchive,{asChild:!0,children:(0,Me.jsx)(vt,{tooltip:"Unarchive",variant:"ghost",size:"icon",className:"h-6 w-6",children:(0,Me.jsx)(gg,{className:"h-3.5 w-3.5"})})}),(0,Me.jsx)(Ar.Delete,{asChild:!0,children:(0,Me.jsx)(vt,{tooltip:"Delete",variant:"ghost",size:"icon",className:"h-6 w-6 text-destructive hover:text-destructive",children:(0,Me.jsx)(df,{className:"h-3.5 w-3.5"})})})]})]});var hn=S(D(),1),rte=({sidebarOpen:e=!1,onSidebarClose:t})=>(0,hn.jsxs)("div",{className:"relative flex flex-1 h-full w-full overflow-hidden bg-background",children:[(0,hn.jsx)(DZ,{}),(0,hn.jsx)(J7,{}),(0,hn.jsx)("div",{className:"flex flex-1 flex-col min-w-0",children:(0,hn.jsx)("div",{className:"flex-1 overflow-hidden relative",children:(0,hn.jsx)(Qee,{})})}),(0,hn.jsx)(Af,{children:e&&(0,hn.jsxs)(hn.Fragment,{children:[(0,hn.jsx)(yl.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},className:"absolute inset-0 bg-black/50 z-40",onClick:t}),(0,hn.jsx)(yl.div,{initial:{x:-256},animate:{x:0},exit:{x:-256},transition:{duration:.2,ease:[.4,0,.2,1]},className:le("absolute left-0 top-0 bottom-0 w-64 bg-background z-50 overflow-hidden shadow-lg"),children:(0,hn.jsx)(tte,{})})]})})]});var ai=S(D(),1),cCe=[{value:"sidebar",label:"Sidebar",icon:(0,ai.jsx)(ol,{className:"h-4 w-4"})},{value:"floating",label:"Floating",icon:(0,ai.jsx)(Wu,{className:"h-4 w-4"})},{value:"fullscreen",label:"Full Screen",icon:(0,ai.jsx)(_g,{className:"h-4 w-4"})}],nte=({currentLayout:e,onLayoutChange:t})=>(0,ai.jsx)("div",{className:"flex flex-col gap-1",children:cCe.map(r=>{let n=e===r.value;return(0,ai.jsxs)("button",{onClick:()=>t(r.value),className:le("flex items-center gap-2 px-2 py-1.5 rounded-sm hover:bg-muted/50 transition-colors cursor-pointer w-full text-left",n&&"bg-muted/30"),children:[(0,ai.jsx)("div",{className:"flex items-center justify-center w-4 h-4",children:r.icon}),(0,ai.jsx)(Jf,{size:"sm",style:{flex:1},children:r.label}),n&&(0,ai.jsx)(Kn,{className:"h-4 w-4 text-foreground"})]},r.value)})});var Be=S(D(),1),ote="learn-alchemy-widget-layout";function j_({defaultOpen:e=!1,position:t="bottom-right"}){console.log("[WidgetContainer] Rendering with props:",{defaultOpen:e,position:t});let[r,n]=(0,eu.useState)(e),[o,a]=(0,eu.useState)(!1);console.log("[WidgetContainer] State:",{isOpen:r,sidebarOpen:o});let[i,s]=(0,eu.useState)(!1),[l,u]=(0,eu.useState)(!1),[c,d]=(0,eu.useState)("floating");(0,eu.useEffect)(()=>{let g=localStorage.getItem(ote);g&&["floating","fullscreen","sidebar"].includes(g)&&d(g)},[]);let f=g=>{d(g),localStorage.setItem(ote,g),u(!1)},p=O(({threadListItem:g})=>g?.title??"New AI chat"),m=()=>{n(!1)},h=()=>{s(!1)};return(0,Be.jsxs)(fZ,{position:t,children:[(0,Be.jsx)(Af,{children:r&&(0,Be.jsxs)(pZ,{initial:{opacity:0,scale:0,y:0},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:0,y:0},transition:{duration:.2,ease:[.4,0,.2,1]},style:(()=>{let g={transformOrigin:t==="bottom-right"?"bottom right":"bottom left"};switch(c){case"fullscreen":return{...g,position:"fixed",width:"100vw",height:"100vh",maxWidth:"100vw",maxHeight:"100vh",borderRadius:0,bottom:0,right:0,left:0,top:0,margin:0};case"sidebar":return{...g,position:"fixed",width:"400px",height:"100vh",maxHeight:"100vh",bottom:0,top:0,right:t==="bottom-right"?0:"auto",left:t==="bottom-left"?0:"auto",borderRadius:0,margin:0};default:return g}})(),children:[(0,Be.jsxs)(mZ,{children:[(0,Be.jsxs)(cx,{open:i,onOpenChange:s,children:[(0,Be.jsx)(dx,{asChild:!0,children:(0,Be.jsx)("button",{type:"button",style:{cursor:"pointer",background:"none",border:"none",padding:0,display:"flex",alignItems:"center",minWidth:0,flex:1},children:(0,Be.jsxs)(F0,{align:"center",gap:"xs",style:{minWidth:0,flex:1},children:[(0,Be.jsx)(Jf,{size:"sm",style:{fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:p}),(0,Be.jsx)(Oi,{size:16,style:{flexShrink:0}})]})})}),(0,Be.jsx)(fx,{align:"start",side:"bottom",sideOffset:8,className:"w-64 p-0",children:(0,Be.jsx)(gZ,{onSelectThread:h})})]}),(0,Be.jsxs)(F0,{align:"center",gap:"xs",style:{flexShrink:0},children:[(0,Be.jsx)(oa.New,{asChild:!0,children:(0,Be.jsx)(j0,{"aria-label":"New chat",children:(0,Be.jsx)(En,{size:18})})}),(0,Be.jsxs)(cx,{open:l,onOpenChange:u,children:[(0,Be.jsx)(dx,{asChild:!0,children:(0,Be.jsx)(j0,{"aria-label":"Layout options",style:{backgroundColor:l?"hsl(var(--muted))":"transparent"},children:(0,Be.jsx)(al,{size:18})})}),(0,Be.jsx)(fx,{align:"end",side:"bottom",sideOffset:8,className:"w-48 p-2",children:(0,Be.jsx)(nte,{currentLayout:c,onLayoutChange:f})})]}),(0,Be.jsx)(j0,{onClick:m,"aria-label":"Minimize widget",children:(0,Be.jsx)(Lg,{size:18})})]})]}),(0,Be.jsx)(hZ,{children:(0,Be.jsx)(rte,{sidebarOpen:o,onSidebarClose:()=>a(!1)})})]})}),(0,Be.jsx)(Af,{children:!r&&(0,Be.jsxs)(Be.Fragment,{children:[console.log("[WidgetContainer] Rendering FAB button (isOpen=false)"),(0,Be.jsx)(F0,{justify:t==="bottom-right"?"flex-end":"flex-start",children:(0,Be.jsx)(dZ,{onClick:()=>{console.log("[WidgetContainer] FAB clicked, opening widget"),n(!0)},initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:20},transition:{duration:.2,ease:[.4,0,.2,1]},whileHover:{scale:1.1},whileTap:{scale:.9},"aria-label":"Open chat",children:(0,Be.jsx)(wg,{size:24,strokeWidth:2})})})]})})]})}var mz="1.0.0",Ee={info:(...e)=>console.log("[TinkrWidget]",...e),warn:(...e)=>console.warn("[TinkrWidget]",...e),error:(...e)=>console.error("[TinkrWidget]",...e),debug:(...e)=>console.debug("[TinkrWidget]",...e)},B_={WidgetClient:wu,version:mz,init:e=>{if(Ee.info(`Initializing widget v${mz}...`),Ee.debug("Config:",{...e,apiKey:e.apiKey?"[REDACTED]":void 0}),!e.apiKey)throw Ee.error("Missing required config: apiKey"),Ee.info('Usage: CourseAI.init({ apiKey: "your-assistant-id", ... })'),new Error("[TinkrWidget] Missing required config: apiKey");let{container:t="#course-ai-widget",defaultOpen:r=!1,position:n="bottom-right",...o}=e;Ee.debug("Looking for container:",t);let a=typeof t=="string"?document.querySelector(t):t;if(!a&&typeof t=="string"){Ee.debug(`Container "${t}" not found, creating one...`);let i=document.createElement("div");i.id=t.replace("#",""),document.body.appendChild(i),a=i,Ee.debug("Created container element:",a)}if(!a)throw Ee.error(`Container not found and could not be created: "${t}"`),new Error(`[TinkrWidget] Container not found: ${t}`);Ee.debug("Using container:",a),Ee.info("Mounting React widget with WidgetContainer..."),Ee.info("WidgetContainer props:",{defaultOpen:r,position:n}),Ee.info("WidgetContainer component:",j_),Ee.info("WidgetContainer name:",j_.name);try{let i=(0,ate.createRoot)(a),s=pz.default.createElement(j_,{defaultOpen:r,position:n});Ee.info("Created WidgetContainer element:",s);let l=pz.default.createElement(Xee,{config:o},s);return Ee.info("Created WidgetProvider element:",l),i.render(l),Ee.info("Widget mounted successfully with WidgetContainer!"),{unmount:()=>{Ee.info("Unmounting widget..."),i.unmount()}}}catch(i){throw Ee.error("Failed to mount widget:",i),i}},createClient:e=>{if(Ee.info("Creating headless client..."),!e.apiKey)throw Ee.error("Missing required config: apiKey"),new Error("[TinkrWidget] Missing required config: apiKey");return new wu(e)}};if(typeof window<"u"){Ee.info(`Tinkr Widget v${mz} loaded`),Ee.debug("Base API URL:","http://localhost:3000"),window.CourseAI=B_,window.TinkrWidget=B_;let e=document.currentScript;if(Ee.debug("Current script element:",e),Ee.debug("Script attributes:",e?Array.from(e.attributes).map(t=>`${t.name}="${t.value}"`).join(", "):"none"),e?.hasAttribute("data-api-key")){Ee.info("Auto-initialization mode detected (data-api-key found)");let t=()=>{Ee.debug("Running auto-initialization...");let r=e.getAttribute("data-api-key"),n=e.getAttribute("data-assistant-id"),o=r||n;if(!o){Ee.error("Missing required attribute: data-api-key"),Ee.info('Usage: <script src="..." data-api-key="your-assistant-id"><\/script>');return}let a=e.getAttribute("data-container")||"#course-ai-widget",i=document.querySelector(a);if(!i){Ee.debug(`Container "${a}" not found, creating one...`);let c=document.createElement("div");c.id=a.replace("#",""),document.body.appendChild(c),i=c,Ee.debug("Created container element:",i)}let s={apiKey:o,assistantId:n||o,userId:e.getAttribute("data-user-id")||void 0,baseUrl:e.getAttribute("data-base-url")||"http://localhost:3000",debug:e.hasAttribute("data-debug")},l=e.getAttribute("data-default-open")==="true",u=e.getAttribute("data-position")||"bottom-right";Ee.info("Auto-initializing with config:",{apiKey:"[REDACTED]",container:a,baseUrl:s.baseUrl,debug:s.debug,defaultOpen:l,position:u});try{B_.init({...s,container:i,defaultOpen:l,position:u})}catch(c){Ee.error("Auto-initialization failed:",c)}};document.readyState==="loading"?(Ee.debug("Document still loading, waiting for DOMContentLoaded..."),document.addEventListener("DOMContentLoaded",t)):(Ee.debug("Document ready, initializing immediately..."),t())}else Ee.info("Manual initialization mode"),Ee.info("To auto-initialize, add data-api-key to the script tag:"),Ee.info(' <script src="..." data-api-key="your-assistant-id"><\/script>'),Ee.info("Or initialize manually:"),Ee.info(' CourseAI.init({ apiKey: "your-assistant-id" })'),Ee.info(' // or: TinkrWidget.init({ apiKey: "your-assistant-id" })')}var dCe=B_;return kz(fCe);})();
|
|
506
|
+
`)}})}};var pIe=M_(()=>lm(b.union([b.strictObject({type:b.literal("text-start"),id:b.string(),providerMetadata:je.optional()}),b.strictObject({type:b.literal("text-delta"),id:b.string(),delta:b.string(),providerMetadata:je.optional()}),b.strictObject({type:b.literal("text-end"),id:b.string(),providerMetadata:je.optional()}),b.strictObject({type:b.literal("error"),errorText:b.string()}),b.strictObject({type:b.literal("tool-input-start"),toolCallId:b.string(),toolName:b.string(),providerExecuted:b.boolean().optional(),dynamic:b.boolean().optional()}),b.strictObject({type:b.literal("tool-input-delta"),toolCallId:b.string(),inputTextDelta:b.string()}),b.strictObject({type:b.literal("tool-input-available"),toolCallId:b.string(),toolName:b.string(),input:b.unknown(),providerExecuted:b.boolean().optional(),providerMetadata:je.optional(),dynamic:b.boolean().optional()}),b.strictObject({type:b.literal("tool-input-error"),toolCallId:b.string(),toolName:b.string(),input:b.unknown(),providerExecuted:b.boolean().optional(),providerMetadata:je.optional(),dynamic:b.boolean().optional(),errorText:b.string()}),b.strictObject({type:b.literal("tool-output-available"),toolCallId:b.string(),output:b.unknown(),providerExecuted:b.boolean().optional(),dynamic:b.boolean().optional(),preliminary:b.boolean().optional()}),b.strictObject({type:b.literal("tool-output-error"),toolCallId:b.string(),errorText:b.string(),providerExecuted:b.boolean().optional(),dynamic:b.boolean().optional()}),b.strictObject({type:b.literal("reasoning-start"),id:b.string(),providerMetadata:je.optional()}),b.strictObject({type:b.literal("reasoning-delta"),id:b.string(),delta:b.string(),providerMetadata:je.optional()}),b.strictObject({type:b.literal("reasoning-end"),id:b.string(),providerMetadata:je.optional()}),b.strictObject({type:b.literal("source-url"),sourceId:b.string(),url:b.string(),title:b.string().optional(),providerMetadata:je.optional()}),b.strictObject({type:b.literal("source-document"),sourceId:b.string(),mediaType:b.string(),title:b.string(),filename:b.string().optional(),providerMetadata:je.optional()}),b.strictObject({type:b.literal("file"),url:b.string(),mediaType:b.string(),providerMetadata:je.optional()}),b.strictObject({type:b.custom(e=>typeof e=="string"&&e.startsWith("data-"),{message:'Type must start with "data-"'}),id:b.string().optional(),data:b.unknown(),transient:b.boolean().optional()}),b.strictObject({type:b.literal("start-step")}),b.strictObject({type:b.literal("finish-step")}),b.strictObject({type:b.literal("start"),messageId:b.string().optional(),messageMetadata:b.unknown().optional()}),b.strictObject({type:b.literal("finish"),finishReason:b.enum(["stop","length","content-filter","tool-calls","error","other","unknown"]).optional(),messageMetadata:b.unknown().optional()}),b.strictObject({type:b.literal("abort")}),b.strictObject({type:b.literal("message-metadata"),messageMetadata:b.unknown()})])));function mIe(e){return e.type.startsWith("data-")}function Dee(e,t){if(e===void 0&&t===void 0)return;if(e===void 0)return t;if(t===void 0)return e;let r={...e};for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let o=t[n];if(o===void 0)continue;let a=n in e?e[n]:void 0,i=o!==null&&typeof o=="object"&&!Array.isArray(o)&&!(o instanceof Date)&&!(o instanceof RegExp),s=a!=null&&typeof a=="object"&&!Array.isArray(a)&&!(a instanceof Date)&&!(a instanceof RegExp);i&&s?r[n]=Dee(a,o):r[n]=o}return r}function hIe(e){let t=["ROOT"],r=-1,n=null;function o(l,u,c){switch(l){case'"':{r=u,t.pop(),t.push(c),t.push("INSIDE_STRING");break}case"f":case"t":case"n":{r=u,n=u,t.pop(),t.push(c),t.push("INSIDE_LITERAL");break}case"-":{t.pop(),t.push(c),t.push("INSIDE_NUMBER");break}case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{r=u,t.pop(),t.push(c),t.push("INSIDE_NUMBER");break}case"{":{r=u,t.pop(),t.push(c),t.push("INSIDE_OBJECT_START");break}case"[":{r=u,t.pop(),t.push(c),t.push("INSIDE_ARRAY_START");break}}}function a(l,u){switch(l){case",":{t.pop(),t.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{r=u,t.pop();break}}}function i(l,u){switch(l){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{r=u,t.pop();break}}}for(let l=0;l<e.length;l++){let u=e[l];switch(t[t.length-1]){case"ROOT":o(u,l,"FINISH");break;case"INSIDE_OBJECT_START":{switch(u){case'"':{t.pop(),t.push("INSIDE_OBJECT_KEY");break}case"}":{r=l,t.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{u==='"'&&(t.pop(),t.push("INSIDE_OBJECT_KEY"));break}case"INSIDE_OBJECT_KEY":{u==='"'&&(t.pop(),t.push("INSIDE_OBJECT_AFTER_KEY"));break}case"INSIDE_OBJECT_AFTER_KEY":{u===":"&&(t.pop(),t.push("INSIDE_OBJECT_BEFORE_VALUE"));break}case"INSIDE_OBJECT_BEFORE_VALUE":{o(u,l,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{a(u,l);break}case"INSIDE_STRING":{switch(u){case'"':{t.pop(),r=l;break}case"\\":{t.push("INSIDE_STRING_ESCAPE");break}default:r=l}break}case"INSIDE_ARRAY_START":{u==="]"?(r=l,t.pop()):(r=l,o(u,l,"INSIDE_ARRAY_AFTER_VALUE"));break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(u){case",":{t.pop(),t.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{r=l,t.pop();break}default:{r=l;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{o(u,l,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{t.pop(),r=l;break}case"INSIDE_NUMBER":{switch(u){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{r=l;break}case"e":case"E":case"-":case".":break;case",":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&a(u,l);break}case"}":{t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&a(u,l);break}case"]":{t.pop(),t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l);break}default:{t.pop();break}}break}case"INSIDE_LITERAL":{let d=e.substring(n,l+1);!"false".startsWith(d)&&!"true".startsWith(d)&&!"null".startsWith(d)?(t.pop(),t[t.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?a(u,l):t[t.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&i(u,l)):r=l;break}}}let s=e.slice(0,r+1);for(let l=t.length-1;l>=0;l--)switch(t[l]){case"INSIDE_STRING":{s+='"';break}case"INSIDE_OBJECT_KEY":case"INSIDE_OBJECT_AFTER_KEY":case"INSIDE_OBJECT_AFTER_COMMA":case"INSIDE_OBJECT_START":case"INSIDE_OBJECT_BEFORE_VALUE":case"INSIDE_OBJECT_AFTER_VALUE":{s+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{s+="]";break}case"INSIDE_LITERAL":{let c=e.substring(n,e.length);"true".startsWith(c)?s+="true".slice(c.length):"false".startsWith(c)?s+="false".slice(c.length):"null".startsWith(c)&&(s+="null".slice(c.length))}}return s}async function Oee(e){if(e===void 0)return{value:void 0,state:"undefined-input"};let t=await sm({text:e});return t.success?{value:t.value,state:"successful-parse"}:(t=await sm({text:hIe(e)}),t.success?{value:t.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}function Xl(e){return e.type.startsWith("tool-")}function gIe(e){return e.type==="dynamic-tool"}function _ee(e){return Xl(e)||gIe(e)}function Tee(e){return e.type.split("-").slice(1).join("-")}function vIe({lastMessage:e,messageId:t}){return{message:e?.role==="assistant"?e:{id:t,metadata:void 0,role:"assistant",parts:[]},activeTextParts:{},activeReasoningParts:{},partialToolCalls:{}}}function xIe({stream:e,messageMetadataSchema:t,dataPartSchemas:r,runUpdateMessageJob:n,onError:o,onToolCall:a,onData:i}){return e.pipeThrough(new TransformStream({async transform(s,l){await n(async({state:u,write:c})=>{var d,f,p,m;function h(w){let k=u.message.parts.filter(Xl).find(C=>C.toolCallId===w);if(k==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return k}function y(w){let k=u.message.parts.filter(C=>C.type==="dynamic-tool").find(C=>C.toolCallId===w);if(k==null)throw new Error("tool-output-error must be preceded by a tool-input-available");return k}function g(w){var _;let k=u.message.parts.find(M=>Xl(M)&&M.toolCallId===w.toolCallId),C=w,I=k;k!=null?(k.state=w.state,I.input=C.input,I.output=C.output,I.errorText=C.errorText,I.rawInput=C.rawInput,I.preliminary=C.preliminary,I.providerExecuted=(_=C.providerExecuted)!=null?_:k.providerExecuted,C.providerMetadata!=null&&k.state==="input-available"&&(k.callProviderMetadata=C.providerMetadata)):u.message.parts.push({type:`tool-${w.toolName}`,toolCallId:w.toolCallId,state:w.state,input:C.input,output:C.output,rawInput:C.rawInput,errorText:C.errorText,providerExecuted:C.providerExecuted,preliminary:C.preliminary,...C.providerMetadata!=null?{callProviderMetadata:C.providerMetadata}:{}})}function v(w){var _,k;let C=u.message.parts.find(L=>L.type==="dynamic-tool"&&L.toolCallId===w.toolCallId),I=w,M=C;C!=null?(C.state=w.state,M.toolName=w.toolName,M.input=I.input,M.output=I.output,M.errorText=I.errorText,M.rawInput=(_=I.rawInput)!=null?_:M.rawInput,M.preliminary=I.preliminary,M.providerExecuted=(k=I.providerExecuted)!=null?k:C.providerExecuted,I.providerMetadata!=null&&C.state==="input-available"&&(C.callProviderMetadata=I.providerMetadata)):u.message.parts.push({type:"dynamic-tool",toolName:w.toolName,toolCallId:w.toolCallId,state:w.state,input:I.input,output:I.output,errorText:I.errorText,preliminary:I.preliminary,providerExecuted:I.providerExecuted,...I.providerMetadata!=null?{callProviderMetadata:I.providerMetadata}:{}})}async function x(w){if(w!=null){let _=u.message.metadata!=null?Dee(u.message.metadata,w):w;t!=null&&await $_({value:_,schema:t}),u.message.metadata=_}}switch(s.type){case"text-start":{let w={type:"text",text:"",providerMetadata:s.providerMetadata,state:"streaming"};u.activeTextParts[s.id]=w,u.message.parts.push(w),c();break}case"text-delta":{let w=u.activeTextParts[s.id];w.text+=s.delta,w.providerMetadata=(d=s.providerMetadata)!=null?d:w.providerMetadata,c();break}case"text-end":{let w=u.activeTextParts[s.id];w.state="done",w.providerMetadata=(f=s.providerMetadata)!=null?f:w.providerMetadata,delete u.activeTextParts[s.id],c();break}case"reasoning-start":{let w={type:"reasoning",text:"",providerMetadata:s.providerMetadata,state:"streaming"};u.activeReasoningParts[s.id]=w,u.message.parts.push(w),c();break}case"reasoning-delta":{let w=u.activeReasoningParts[s.id];w.text+=s.delta,w.providerMetadata=(p=s.providerMetadata)!=null?p:w.providerMetadata,c();break}case"reasoning-end":{let w=u.activeReasoningParts[s.id];w.providerMetadata=(m=s.providerMetadata)!=null?m:w.providerMetadata,w.state="done",delete u.activeReasoningParts[s.id],c();break}case"file":{u.message.parts.push({type:"file",mediaType:s.mediaType,url:s.url}),c();break}case"source-url":{u.message.parts.push({type:"source-url",sourceId:s.sourceId,url:s.url,title:s.title,providerMetadata:s.providerMetadata}),c();break}case"source-document":{u.message.parts.push({type:"source-document",sourceId:s.sourceId,mediaType:s.mediaType,title:s.title,filename:s.filename,providerMetadata:s.providerMetadata}),c();break}case"tool-input-start":{let w=u.message.parts.filter(Xl);u.partialToolCalls[s.toolCallId]={text:"",toolName:s.toolName,index:w.length,dynamic:s.dynamic},s.dynamic?v({toolCallId:s.toolCallId,toolName:s.toolName,state:"input-streaming",input:void 0,providerExecuted:s.providerExecuted}):g({toolCallId:s.toolCallId,toolName:s.toolName,state:"input-streaming",input:void 0,providerExecuted:s.providerExecuted}),c();break}case"tool-input-delta":{let w=u.partialToolCalls[s.toolCallId];w.text+=s.inputTextDelta;let{value:_}=await Oee(w.text);w.dynamic?v({toolCallId:s.toolCallId,toolName:w.toolName,state:"input-streaming",input:_}):g({toolCallId:s.toolCallId,toolName:w.toolName,state:"input-streaming",input:_}),c();break}case"tool-input-available":{s.dynamic?v({toolCallId:s.toolCallId,toolName:s.toolName,state:"input-available",input:s.input,providerExecuted:s.providerExecuted,providerMetadata:s.providerMetadata}):g({toolCallId:s.toolCallId,toolName:s.toolName,state:"input-available",input:s.input,providerExecuted:s.providerExecuted,providerMetadata:s.providerMetadata}),c(),a&&!s.providerExecuted&&await a({toolCall:s});break}case"tool-input-error":{s.dynamic?v({toolCallId:s.toolCallId,toolName:s.toolName,state:"output-error",input:s.input,errorText:s.errorText,providerExecuted:s.providerExecuted,providerMetadata:s.providerMetadata}):g({toolCallId:s.toolCallId,toolName:s.toolName,state:"output-error",input:void 0,rawInput:s.input,errorText:s.errorText,providerExecuted:s.providerExecuted,providerMetadata:s.providerMetadata}),c();break}case"tool-output-available":{if(s.dynamic){let w=y(s.toolCallId);v({toolCallId:s.toolCallId,toolName:w.toolName,state:"output-available",input:w.input,output:s.output,preliminary:s.preliminary})}else{let w=h(s.toolCallId);g({toolCallId:s.toolCallId,toolName:Tee(w),state:"output-available",input:w.input,output:s.output,providerExecuted:s.providerExecuted,preliminary:s.preliminary})}c();break}case"tool-output-error":{if(s.dynamic){let w=y(s.toolCallId);v({toolCallId:s.toolCallId,toolName:w.toolName,state:"output-error",input:w.input,errorText:s.errorText,providerExecuted:s.providerExecuted})}else{let w=h(s.toolCallId);g({toolCallId:s.toolCallId,toolName:Tee(w),state:"output-error",input:w.input,rawInput:w.rawInput,errorText:s.errorText,providerExecuted:s.providerExecuted})}c();break}case"start-step":{u.message.parts.push({type:"step-start"});break}case"finish-step":{u.activeTextParts={},u.activeReasoningParts={};break}case"start":{s.messageId!=null&&(u.message.id=s.messageId),await x(s.messageMetadata),(s.messageId!=null||s.messageMetadata!=null)&&c();break}case"finish":{s.finishReason!=null&&(u.finishReason=s.finishReason),await x(s.messageMetadata),s.messageMetadata!=null&&c();break}case"message-metadata":{await x(s.messageMetadata),s.messageMetadata!=null&&c();break}case"error":{o?.(new Error(s.errorText));break}default:if(mIe(s)){r?.[s.type]!=null&&await $_({value:s.data,schema:r[s.type]});let w=s;if(w.transient){i?.(w);break}let _=w.id!=null?u.message.parts.find(k=>w.type===k.type&&w.id===k.id):void 0;_!=null?_.data=w.data:u.message.parts.push(w),i?.(w),c()}}l.enqueue(s)})}}))}async function yIe({stream:e,onError:t}){let r=e.getReader();try{for(;;){let{done:n}=await r.read();if(n)break}}catch(n){t?.(n)}finally{r.releaseLock()}}var nwt=ni({prefix:"aitxt",size:24});var awt=ni({prefix:"aiobj",size:24});var wIe=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,r)=>{this.queue.push(async()=>{try{await e(),t()}catch(n){r(n)}}),this.processQueue()})}};var swt=ni({prefix:"aiobj",size:24});var bIe={};a0e(bIe,{object:()=>kIe,text:()=>SIe});var SIe=()=>({type:"text",responseFormat:{type:"text"},async parsePartial({text:e}){return{partial:e}},async parseOutput({text:e}){return e}}),kIe=({schema:e})=>{let t=ez(e);return{type:"object",responseFormat:{type:"json",schema:t.jsonSchema},async parsePartial({text:r}){let n=await Oee(r);switch(n.state){case"failed-parse":case"undefined-input":return;case"repaired-parse":case"successful-parse":return{partial:n.value};default:{let o=n.state;throw new Error(`Unsupported parse state: ${o}`)}}},async parseOutput({text:r},n){let o=await sm({text:r});if(!o.success)throw new Iee({message:"No object generated: could not parse the response.",cause:o.error,text:r,response:n.response,usage:n.usage,finishReason:n.finishReason});let a=await D_({value:o.value,schema:t});if(!a.success)throw new Iee({message:"No object generated: response did not match schema.",cause:a.error,text:r,response:n.response,usage:n.usage,finishReason:n.finishReason});return a.value}}};var IIe="AI_NoSuchProviderError",CIe=`vercel.ai.error.${IIe}`,_Ie=Symbol.for(CIe),TIe;TIe=_Ie;async function PIe(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:r,type:n}=t,o=await new Promise((a,i)=>{let s=new FileReader;s.onload=l=>{var u;a((u=l.target)==null?void 0:u.result)},s.onerror=l=>i(l),s.readAsDataURL(t)});return{type:"file",mediaType:n,filename:r,url:o}}))}var LIe=class{constructor({api:e="/api/chat",credentials:t,headers:r,body:n,fetch:o,prepareSendMessagesRequest:a,prepareReconnectToStreamRequest:i}){this.api=e,this.credentials=t,this.headers=r,this.body=n,this.fetch=o,this.prepareSendMessagesRequest=a,this.prepareReconnectToStreamRequest=i}async sendMessages({abortSignal:e,...t}){var r,n,o,a,i;let s=await Wc(this.body),l=await Wc(this.headers),u=await Wc(this.credentials),c={...Jl(l),...Jl(t.headers)},d=await((r=this.prepareSendMessagesRequest)==null?void 0:r.call(this,{api:this.api,id:t.chatId,messages:t.messages,body:{...s,...t.body},headers:c,credentials:u,requestMetadata:t.metadata,trigger:t.trigger,messageId:t.messageId})),f=(n=d?.api)!=null?n:this.api,p=d?.headers!==void 0?Jl(d.headers):c,m=d?.body!==void 0?d.body:{...s,...t.body,id:t.chatId,messages:t.messages,trigger:t.trigger,messageId:t.messageId},h=(o=d?.credentials)!=null?o:u,g=await((a=this.fetch)!=null?a:globalThis.fetch)(f,{method:"POST",headers:ay({"Content-Type":"application/json",...p},`ai-sdk/${Cee}`,YN()),body:JSON.stringify(m),credentials:h,signal:e});if(!g.ok)throw new Error((i=await g.text())!=null?i:"Failed to fetch the chat response.");if(!g.body)throw new Error("The response body is empty.");return this.processResponseStream(g.body)}async reconnectToStream(e){var t,r,n,o,a;let i=await Wc(this.body),s=await Wc(this.headers),l=await Wc(this.credentials),u={...Jl(s),...Jl(e.headers)},c=await((t=this.prepareReconnectToStreamRequest)==null?void 0:t.call(this,{api:this.api,id:e.chatId,body:{...i,...e.body},headers:u,credentials:l,requestMetadata:e.metadata})),d=(r=c?.api)!=null?r:`${this.api}/${e.chatId}/stream`,f=c?.headers!==void 0?Jl(c.headers):u,p=(n=c?.credentials)!=null?n:l,h=await((o=this.fetch)!=null?o:globalThis.fetch)(d,{method:"GET",headers:ay(f,`ai-sdk/${Cee}`,YN()),credentials:p});if(h.status===204)return null;if(!h.ok)throw new Error((a=await h.text())!=null?a:"Failed to fetch the chat response.");if(!h.body)throw new Error("The response body is empty.");return this.processResponseStream(h.body)}},rz=class extends LIe{constructor(e={}){super(e)}processResponseStream(e){return QN({stream:e,schema:pIe}).pipeThrough(new TransformStream({async transform(t,r){if(!t.success)throw t.error;r.enqueue(t.value)}}))}},Nee=class{constructor({generateId:e=oy,id:t=e(),transport:r=new rz,messageMetadataSchema:n,dataPartSchemas:o,state:a,onError:i,onToolCall:s,onFinish:l,onData:u,sendAutomaticallyWhen:c}){this.activeResponse=void 0,this.jobExecutor=new wIe,this.sendMessage=async(d,f)=>{var p,m,h,y;if(d==null){await this.makeRequest({trigger:"submit-message",messageId:(p=this.lastMessage)==null?void 0:p.id,...f});return}let g;if("text"in d||"files"in d?g={parts:[...Array.isArray(d.files)?d.files:await PIe(d.files),..."text"in d&&d.text!=null?[{type:"text",text:d.text}]:[]]}:g=d,d.messageId!=null){let v=this.state.messages.findIndex(x=>x.id===d.messageId);if(v===-1)throw new Error(`message with id ${d.messageId} not found`);if(this.state.messages[v].role!=="user")throw new Error(`message with id ${d.messageId} is not a user message`);this.state.messages=this.state.messages.slice(0,v+1),this.state.replaceMessage(v,{...g,id:d.messageId,role:(m=g.role)!=null?m:"user",metadata:d.metadata})}else this.state.pushMessage({...g,id:(h=g.id)!=null?h:this.generateId(),role:(y=g.role)!=null?y:"user",metadata:d.metadata});await this.makeRequest({trigger:"submit-message",messageId:d.messageId,...f})},this.regenerate=async({messageId:d,...f}={})=>{let p=d==null?this.state.messages.length-1:this.state.messages.findIndex(m=>m.id===d);if(p===-1)throw new Error(`message ${d} not found`);this.state.messages=this.state.messages.slice(0,this.messages[p].role==="assistant"?p:p+1),await this.makeRequest({trigger:"regenerate-message",messageId:d,...f})},this.resumeStream=async(d={})=>{await this.makeRequest({trigger:"resume-stream",...d})},this.clearError=()=>{this.status==="error"&&(this.state.error=void 0,this.setStatus({status:"ready"}))},this.addToolOutput=async({state:d="output-available",tool:f,toolCallId:p,output:m,errorText:h})=>this.jobExecutor.run(async()=>{var y,g;let v=this.state.messages,x=v[v.length-1];this.state.replaceMessage(v.length-1,{...x,parts:x.parts.map(w=>_ee(w)&&w.toolCallId===p?{...w,state:d,output:m,errorText:h}:w)}),this.activeResponse&&(this.activeResponse.state.message.parts=this.activeResponse.state.message.parts.map(w=>_ee(w)&&w.toolCallId===p?{...w,state:d,output:m,errorText:h}:w)),this.status!=="streaming"&&this.status!=="submitted"&&((y=this.sendAutomaticallyWhen)!=null&&y.call(this,{messages:this.state.messages}))&&this.makeRequest({trigger:"submit-message",messageId:(g=this.lastMessage)==null?void 0:g.id})}),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=r,this.generateId=e,this.messageMetadataSchema=n,this.dataPartSchemas=o,this.state=a,this.onError=i,this.onToolCall=s,this.onFinish=l,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 makeRequest({trigger:e,metadata:t,headers:r,body:n,messageId:o}){var a,i,s,l;this.setStatus({status:"submitted",error:void 0});let u=this.lastMessage,c=!1,d=!1,f=!1;try{let p={state:vIe({lastMessage:this.state.snapshot(u),messageId:this.generateId()}),abortController:new AbortController};p.abortController.signal.addEventListener("abort",()=>{c=!0}),this.activeResponse=p;let m;if(e==="resume-stream"){let y=await this.transport.reconnectToStream({chatId:this.id,metadata:t,headers:r,body:n});if(y==null){this.setStatus({status:"ready"});return}m=y}else m=await this.transport.sendMessages({chatId:this.id,messages:this.state.messages,abortSignal:p.abortController.signal,metadata:t,headers:r,body:n,trigger:e,messageId:o});let h=y=>this.jobExecutor.run(()=>y({state:p.state,write:()=>{var g;this.setStatus({status:"streaming"}),p.state.message.id===((g=this.lastMessage)==null?void 0:g.id)?this.state.replaceMessage(this.state.messages.length-1,p.state.message):this.state.pushMessage(p.state.message)}}));await yIe({stream:xIe({stream:m,onToolCall:this.onToolCall,onData:this.onData,messageMetadataSchema:this.messageMetadataSchema,dataPartSchemas:this.dataPartSchemas,runUpdateMessageJob:h,onError:y=>{throw y}}),onError:y=>{throw y}}),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{(i=this.onFinish)==null||i.call(this,{message:this.activeResponse.state.message,messages:this.state.messages,isAbort:c,isDisconnect:d,isError:f,finishReason:(a=this.activeResponse)==null?void 0:a.state.finishReason})}catch(p){console.error(p)}this.activeResponse=void 0}(s=this.sendAutomaticallyWhen)!=null&&s.call(this,{messages:this.state.messages})&&!f&&await this.makeRequest({trigger:"submit-message",messageId:(l=this.lastMessage)==null?void 0:l.id,metadata:t,headers:r,body:n})}};var mwt=M_(()=>lm(b.array(b.object({id:b.string(),role:b.enum(["system","user","assistant"]),metadata:b.unknown().optional(),parts:b.array(b.union([b.object({type:b.literal("text"),text:b.string(),state:b.enum(["streaming","done"]).optional(),providerMetadata:je.optional()}),b.object({type:b.literal("reasoning"),text:b.string(),state:b.enum(["streaming","done"]).optional(),providerMetadata:je.optional()}),b.object({type:b.literal("source-url"),sourceId:b.string(),url:b.string(),title:b.string().optional(),providerMetadata:je.optional()}),b.object({type:b.literal("source-document"),sourceId:b.string(),mediaType:b.string(),title:b.string(),filename:b.string().optional(),providerMetadata:je.optional()}),b.object({type:b.literal("file"),mediaType:b.string(),filename:b.string().optional(),url:b.string(),providerMetadata:je.optional()}),b.object({type:b.literal("step-start")}),b.object({type:b.string().startsWith("data-"),id:b.string().optional(),data:b.unknown()}),b.object({type:b.literal("dynamic-tool"),toolName:b.string(),toolCallId:b.string(),state:b.literal("input-streaming"),input:b.unknown().optional(),providerExecuted:b.boolean().optional(),output:b.never().optional(),errorText:b.never().optional()}),b.object({type:b.literal("dynamic-tool"),toolName:b.string(),toolCallId:b.string(),state:b.literal("input-available"),input:b.unknown(),providerExecuted:b.boolean().optional(),output:b.never().optional(),errorText:b.never().optional(),callProviderMetadata:je.optional()}),b.object({type:b.literal("dynamic-tool"),toolName:b.string(),toolCallId:b.string(),state:b.literal("output-available"),input:b.unknown(),providerExecuted:b.boolean().optional(),output:b.unknown(),errorText:b.never().optional(),callProviderMetadata:je.optional(),preliminary:b.boolean().optional()}),b.object({type:b.literal("dynamic-tool"),toolName:b.string(),toolCallId:b.string(),state:b.literal("output-error"),input:b.unknown(),providerExecuted:b.boolean().optional(),output:b.never().optional(),errorText:b.string(),callProviderMetadata:je.optional()}),b.object({type:b.string().startsWith("tool-"),toolCallId:b.string(),state:b.literal("input-streaming"),providerExecuted:b.boolean().optional(),input:b.unknown().optional(),output:b.never().optional(),errorText:b.never().optional(),approval:b.never().optional()}),b.object({type:b.string().startsWith("tool-"),toolCallId:b.string(),state:b.literal("input-available"),providerExecuted:b.boolean().optional(),input:b.unknown(),output:b.never().optional(),errorText:b.never().optional(),callProviderMetadata:je.optional(),approval:b.never().optional()}),b.object({type:b.string().startsWith("tool-"),toolCallId:b.string(),state:b.literal("approval-requested"),input:b.unknown(),providerExecuted:b.boolean().optional(),output:b.never().optional(),errorText:b.never().optional(),callProviderMetadata:je.optional(),approval:b.object({id:b.string(),approved:b.never().optional(),reason:b.never().optional()})}),b.object({type:b.string().startsWith("tool-"),toolCallId:b.string(),state:b.literal("approval-responded"),input:b.unknown(),providerExecuted:b.boolean().optional(),output:b.never().optional(),errorText:b.never().optional(),callProviderMetadata:je.optional(),approval:b.object({id:b.string(),approved:b.boolean(),reason:b.string().optional()})}),b.object({type:b.string().startsWith("tool-"),toolCallId:b.string(),state:b.literal("output-available"),providerExecuted:b.boolean().optional(),input:b.unknown(),output:b.unknown(),errorText:b.never().optional(),callProviderMetadata:je.optional(),preliminary:b.boolean().optional(),approval:b.object({id:b.string(),approved:b.literal(!0),reason:b.string().optional()}).optional()}),b.object({type:b.string().startsWith("tool-"),toolCallId:b.string(),state:b.literal("output-error"),providerExecuted:b.boolean().optional(),input:b.unknown(),output:b.never().optional(),errorText:b.string(),callProviderMetadata:je.optional(),approval:b.object({id:b.string(),approved:b.literal(!0),reason:b.string().optional()}).optional()}),b.object({type:b.string().startsWith("tool-"),toolCallId:b.string(),state:b.literal("output-denied"),providerExecuted:b.boolean().optional(),input:b.unknown(),output:b.never().optional(),errorText:b.never().optional(),callProviderMetadata:je.optional(),approval:b.object({id:b.string(),approved:b.literal(!1),reason:b.string().optional()})})])).nonempty("Message must contain at least one part")})).nonempty("Messages array must not be empty")));var nz=(e,t)=>{if(t==null)return[];let r=e.findIndex(n=>n.id===t);if(r===-1)throw new Error("useVercelAIThreadState: Message not found. This is likely an internal bug in assistant-ui.");for(;e[r+1]?.role==="assistant";)r++;return e.slice(0,r+1)};var oz=e=>{let r=[...e.content.filter(n=>n.type!=="file"),...e.attachments?.flatMap(n=>n.content.map(o=>({...o,filename:n.name})))??[]].map(n=>{switch(n.type){case"text":return{type:"text",text:n.text};case"image":return{type:"file",url:n.image,...n.filename&&{filename:n.filename},mediaType:"image/png"};case"file":return{type:"file",url:n.data,mediaType:n.mimeType,...n.filename&&{filename:n.filename}};default:throw new Error(`Unsupported part type: ${n.type}`)}});return{role:e.role,parts:r}};var EIe=e=>new Promise((t,r)=>{let n=new FileReader;n.onload=()=>t(n.result),n.onerror=o=>r(o),n.readAsDataURL(e)}),zee={accept:"image/*, text/plain, text/html, text/markdown, text/csv, text/xml, text/json, text/css",async add({file:e}){return{id:oy(),type:e.type.startsWith("image/")?"image":"file",name:e.name,file:e,contentType:e.type,content:[],status:{type:"requires-action",reason:"composer-send"}}},async send(e){return{...e,status:{type:"complete"},content:[{type:"file",mimeType:e.contentType,filename:e.name,data:await EIe(e.file)}]}},async remove(){}};var az=e=>vo(e);function AIe(e){return e.replace(/[}\]"]+$/,"")}var iz=(e,t)=>!e.parts||e.parts.length===0?[]:e.parts.filter(r=>r.type!=="step-start"&&r.type!=="file").map(r=>{let n=r.type;if(n==="text")return{type:"text",text:r.text};if(n==="reasoning")return{type:"reasoning",text:r.text};if(Xl(r)){let o=n.replace("tool-",""),a=r.toolCallId,i={},s,l=!1;r.state==="input-streaming"||r.state==="input-available"?i=r.input||{}:r.state==="output-available"?(i=r.input||{},s=r.output):r.state==="output-error"&&(i=r.input||{},l=!0,s={error:r.errorText});let u=JSON.stringify(i);r.state==="input-streaming"&&(u=AIe(u));let c=t.toolStatuses?.[a];return{type:"tool-call",toolName:o,toolCallId:a,argsText:u,args:i,result:s,isError:l,...c?.type==="interrupt"&&{interrupt:c.payload,status:{type:"requires-action",reason:"interrupt"}}}}if(n==="dynamic-tool"){let o=r.toolName,a=r.toolCallId,i={},s,l=!1;r.state==="input-streaming"||r.state==="input-available"?i=r.input||{}:r.state==="output-available"?(i=r.input||{},s=r.output):r.state==="output-error"&&(i=r.input||{},l=!0,s={error:r.errorText});let u=t.toolStatuses?.[a];return{type:"tool-call",toolName:o,toolCallId:a,argsText:JSON.stringify(i),args:i,result:s,isError:l,...u?.type==="interrupt"&&{interrupt:u.payload,status:{type:"requires-action",reason:"interrupt"}}}}return n==="source-url"?{type:"source",sourceType:"url",id:r.sourceId,url:r.url,title:r.title||""}:n==="source-document"?(console.warn(`Source document part type ${n} is not yet supported in conversion`),null):n.startsWith("data-")?{type:"data",name:n.substring(5),data:r.data}:(console.warn(`Unsupported message part type: ${n}`),null)}).filter(Boolean),sz=BP((e,t)=>{let r=new Date;switch(e.role){case"user":return{role:"user",id:e.id,createdAt:r,content:iz(e,t),attachments:e.parts?.filter(n=>n.type==="file").map((n,o)=>({id:o.toString(),type:n.mediaType.startsWith("image/")?"image":"file",name:n.filename??"file",content:[n.mediaType.startsWith("image/")?{type:"image",image:n.url,filename:n.filename}:{type:"file",filename:n.filename,data:n.url,mimeType:n.mediaType}],contentType:n.mediaType??"unknown/unknown",status:{type:"complete"}}))};case"system":return{role:"system",id:e.id,createdAt:r,content:iz(e,t)};case"assistant":return{role:"assistant",id:e.id,createdAt:r,content:iz(e,t),metadata:{unstable_annotations:e.annotations,unstable_data:Array.isArray(e.data)?e.data:e.data?[e.data]:void 0,custom:{}}};default:return console.warn(`Unsupported message role: ${e.role}`),[]}});var Fee={format:"ai-sdk/v5",encode({message:{id:e,parts:t,...r}}){return{...r,parts:t.filter(n=>n.type!=="file")}},decode(e){return{parentId:e.parent_id,message:{id:e.id,...e.content}}},getId(e){return e.id}};var Oo=S(A(),1),{MessageRepository:RIe}=qs,MIe=(e,t)=>({headId:t.headId,messages:t.messages.map(r=>{let n=e([r.message])[0];return{...r,message:n}})}),jee=(e,t,r,n,o)=>{let a=(0,Oo.useRef)(!1),i=ee(),s=(0,Oo.useCallback)(()=>i.threadListItem.source?i.threadListItem():null,[i]),[l,u]=(0,Oo.useState)(!1),c=(0,Oo.useRef)(new Set),d=(0,Oo.useRef)(()=>o);return(0,Oo.useEffect)(()=>{d.current=o}),(0,Oo.useEffect)(()=>{if(!t||a.current)return;let f=async()=>{u(!0);try{let p=await t.withFormat?.(n).load();if(p&&p.messages.length>0){let m=MIe(r,p);e.current.thread.import(m);let h=new RIe;h.import(m);let y=h.getMessages();d.current(y.map(vo).flat()),c.current=new Set(m.messages.map(g=>g.message.id))}}catch(p){console.error("Failed to load message history:",p)}finally{u(!1)}};if(!a.current){if(a.current=!0,!s()?.getState().remoteId){u(!1);return}f()}},[i,t,n,r,e,s]),(0,Oo.useEffect)(()=>e.current.thread.subscribe(async()=>{let{messages:f,isRunning:p}=e.current.thread.getState();if(!p)for(let m=0;m<f.length;m++){let h=f[m];if(h.status===void 0||h.status.type==="complete"||h.status.type==="incomplete"){if(c.current.has(h.id))continue;c.current.add(h.id);let y=m>0?f[m-1].id:null;await t?.withFormat?.(n).append({parentId:y,message:vo(h)[0]})}}}),[t,n,e]),l};var Bee=(e,{adapters:t,toCreateMessage:r,cancelPendingToolCallsOnSend:n=!0}={})=>{let o=mb(),[a,i]=(0,sy.useState)({}),s=Object.values(a).some(h=>h?.type==="executing"),l=e.status==="submitted"||e.status==="streaming"||s,u=sz.useThreadMessages({isRunning:l,messages:e.messages,metadata:(0,sy.useMemo)(()=>({toolStatuses:a,...e.error&&{error:e.error.message}}),[a,e.error])}),[c]=(0,sy.useState)(()=>({get current(){return m}})),d=qs.useToolInvocations({state:{messages:u,isRunning:l},getTools:()=>c.current.thread.getModelContext().tools,onResult:h=>{h.type==="add-tool-result"&&e.addToolResult({tool:h.toolName,toolCallId:h.toolCallId,output:h.result})},setToolStatuses:i}),f=jee(c,t?.history??o?.history,sz.toThreadMessages,Fee,h=>{e.setMessages(h)}),p=async()=>{n&&(await d.abort(),e.setMessages(h=>{let y=h.at(-1);if(y?.role!=="assistant")return h;let g=!1,v=y.parts?.map(x=>!Xl(x)||x.state==="output-available"||x.state==="output-error"?x:(g=!0,{...x,state:"output-error",errorText:"User cancelled tool call by sending a new message."}));return g?[...h.slice(0,-1),{...y,parts:v}]:h}))},m=bP({isRunning:l,messages:u,setMessages:h=>e.setMessages(h.map(az).filter(Boolean).flat()),onImport:h=>e.setMessages(h.map(az).filter(Boolean).flat()),onCancel:async()=>{e.stop(),await d.abort()},onNew:async h=>{await p();let y=(r??oz)(h);await e.sendMessage(y,{metadata:h.runConfig})},onEdit:async h=>{let y=nz(e.messages,h.parentId);e.setMessages(y);let g=(r??oz)(h);await e.sendMessage(g,{metadata:h.runConfig})},onReload:async(h,y)=>{let g=nz(e.messages,h);e.setMessages(g),await e.regenerate({metadata:y.runConfig})},onAddToolResult:({toolCallId:h,result:y,isError:g})=>{g?e.addToolOutput({state:"output-error",tool:h,toolCallId:h,errorText:typeof y=="string"?y:JSON.stringify(y)}):e.addToolOutput({state:"output-available",tool:h,toolCallId:h,output:y})},onResumeToolCall:h=>d.resume(h.toolCallId,h.payload),adapters:{attachments:zee,...o,...t},isLoading:f});return m};var ya=S(A(),1);var Wee=S(Vee(),1);var dy=S(A(),1);var F_=S(A(),1);var Hee=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)},It=(e,t,r)=>(Hee(e,t,"read from private field"),r?r.call(e):t.get(e)),oi=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},Yl=(e,t,r,n)=>(Hee(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r);function DIe(e,t){return t!=null?(0,Wee.default)(e,t):e}var No,N_,z_,ly,uy,cy,um,lz,uz,OIe=class{constructor(e=[]){oi(this,No,void 0),oi(this,N_,"ready"),oi(this,z_,void 0),oi(this,ly,new Set),oi(this,uy,new Set),oi(this,cy,new Set),this.pushMessage=t=>{Yl(this,No,It(this,No).concat(t)),It(this,um).call(this)},this.popMessage=()=>{Yl(this,No,It(this,No).slice(0,-1)),It(this,um).call(this)},this.replaceMessage=(t,r)=>{Yl(this,No,[...It(this,No).slice(0,t),this.snapshot(r),...It(this,No).slice(t+1)]),It(this,um).call(this)},this.snapshot=t=>structuredClone(t),this["~registerMessagesCallback"]=(t,r)=>{let n=r?DIe(t,r):t;return It(this,ly).add(n),()=>{It(this,ly).delete(n)}},this["~registerStatusCallback"]=t=>(It(this,uy).add(t),()=>{It(this,uy).delete(t)}),this["~registerErrorCallback"]=t=>(It(this,cy).add(t),()=>{It(this,cy).delete(t)}),oi(this,um,()=>{It(this,ly).forEach(t=>t())}),oi(this,lz,()=>{It(this,uy).forEach(t=>t())}),oi(this,uz,()=>{It(this,cy).forEach(t=>t())}),Yl(this,No,e)}get status(){return It(this,N_)}set status(e){Yl(this,N_,e),It(this,lz).call(this)}get error(){return It(this,z_)}set error(e){Yl(this,z_,e),It(this,uz).call(this)}get messages(){return It(this,No)}set messages(e){Yl(this,No,[...e]),It(this,um).call(this)}};No=new WeakMap;N_=new WeakMap;z_=new WeakMap;ly=new WeakMap;uy=new WeakMap;cy=new WeakMap;um=new WeakMap;lz=new WeakMap;uz=new WeakMap;var cm,qee=class extends Nee{constructor({messages:e,...t}){let r=new OIe(e);super({...t,state:r}),oi(this,cm,void 0),this["~registerMessagesCallback"]=(n,o)=>It(this,cm)["~registerMessagesCallback"](n,o),this["~registerStatusCallback"]=n=>It(this,cm)["~registerStatusCallback"](n),this["~registerErrorCallback"]=n=>It(this,cm)["~registerErrorCallback"](n),Yl(this,cm,r)}};cm=new WeakMap;function Zee({experimental_throttle:e,resume:t=!1,...r}={}){let n=(0,ya.useRef)("chat"in r?r.chat:new qee(r));("chat"in r&&r.chat!==n.current||"id"in r&&n.current.id!==r.id)&&(n.current="chat"in r?r.chat:new qee(r));let a=(0,ya.useCallback)(c=>n.current["~registerMessagesCallback"](c,e),[e,n.current.id]),i=(0,ya.useSyncExternalStore)(a,()=>n.current.messages,()=>n.current.messages),s=(0,ya.useSyncExternalStore)(n.current["~registerStatusCallback"],()=>n.current.status,()=>n.current.status),l=(0,ya.useSyncExternalStore)(n.current["~registerErrorCallback"],()=>n.current.error,()=>n.current.error),u=(0,ya.useCallback)(c=>{typeof c=="function"&&(c=c(n.current.messages)),n.current.messages=c},[n]);return(0,ya.useEffect)(()=>{t&&n.current.resumeStream()},[t,n]),{id:n.current.id,messages:i,setMessages:u,sendMessage:n.current.sendMessage,regenerate:n.current.regenerate,clearError:n.current.clearError,stop:n.current.stop,error:l,resumeStream:n.current.resumeStream,status:s,addToolResult:n.current.addToolOutput,addToolOutput:n.current.addToolOutput}}var NIe=e=>Object.fromEntries(Object.entries(e).map(([t,r])=>[t,{...r.description?{description:r.description}:void 0,parameters:r.parameters instanceof tz.ZodType?tz.toJSONSchema(r.parameters):r.parameters}])),zIe=e=>Object.fromEntries(Object.entries(e).filter(([,t])=>!t.disabled&&t.type!=="backend")),Ql=class extends rz{constructor(r){super({...r,prepareSendMessagesRequest:async n=>{let o=this.runtime?.thread.getModelContext(),a=(await this.runtime?.threads.mainItem.initialize())?.remoteId??n.id,i={...n,body:{callSettings:o?.callSettings,system:o?.system,tools:NIe(zIe(o?.tools??{})),...n?.body}},s=await r?.prepareSendMessagesRequest?.(i);return{...s,body:s?.body??{...i.body,id:a,messages:n.messages,trigger:n.trigger,messageId:n.messageId,metadata:n.requestMetadata}}}});P(this,"runtime")}setRuntime(r){this.runtime=r}};var dm=S(A(),1),FIe=e=>{let t=(0,dm.useRef)(e);return(0,dm.useEffect)(()=>{t.current=e}),(0,dm.useMemo)(()=>new Proxy(t.current,{get(n,o){let a=t.current[o];return typeof a=="function"?a.bind(t.current):a}}),[])},jIe=e=>{let{adapters:t,transport:r,toCreateMessage:n,...o}=e??{},a=FIe(r??new Ql),i=O(({threadListItem:u})=>u.id),s=Zee({...o,id:i,transport:a}),l=Bee(s,{adapters:t,...n&&{toCreateMessage:n}});return a instanceof Ql&&a.setRuntime(l),l},cz=({cloud:e,...t}={})=>{let r=ZP({cloud:e});return jh({runtimeHook:function(){return jIe(t)},adapter:r,allowNesting:!0})};var zo=S(A(),1),Jee=S(D(),1),Gee=(0,zo.createContext)(null);function Kee({children:e}){let[t,r]=(0,zo.useState)([]),n=(0,zo.useCallback)(l=>{console.log("[MessageContext] Adding context item:",l.id,l.title),r(u=>u.some(c=>c.id===l.id)?(console.log("[MessageContext] Item already exists, skipping"),u):(console.log("[MessageContext] Context items count:",u.length+1),[...u,l]))},[]),o=(0,zo.useCallback)(l=>{r(u=>u.filter(c=>c.id!==l))},[]),a=(0,zo.useCallback)(()=>{console.log("[MessageContext] Clearing context"),r([])},[]),i=(0,zo.useCallback)(l=>{r(l)},[]),s=(0,zo.useCallback)(()=>{let l=t;return console.log("[MessageContext] Consuming context:",l.length,"items"),l},[t]);return(0,Jee.jsx)(Gee.Provider,{value:{selectedContext:t,addContextItem:n,removeContextItem:o,clearContext:a,setContext:i,consumeContext:s},children:e})}function fm(){let e=(0,zo.useContext)(Gee);if(!e)throw new Error("useMessageContext must be used within a MessageContextProvider");return e}var Zc=S(D(),1),dz=(0,Dr.createContext)(null);function BIe(){return crypto.randomUUID()}function fz(e,t){return{"Content-Type":"application/json","X-User-Id":e,"X-Assistant-Id":t}}function UIe(e,t,r){let n=fz(t,r);return{async list(){try{let o=await fetch(`${e}/api/widget/threads`,{headers:n});return o.ok?{threads:(await o.json()).threads||[]}:(console.error("[Threads] List failed:",o.status),{threads:[]})}catch(o){return console.error("[Threads] List error:",o),{threads:[]}}},async fetch(o){let a=await fetch(`${e}/api/widget/threads/${o}`,{headers:n});if(!a.ok)throw new Error(`Failed to fetch thread: ${a.status}`);let i=await a.json();return{remoteId:i.remoteId,status:i.status,title:i.title}},async initialize(o){try{let a=await fetch(`${e}/api/widget/threads`,{method:"POST",headers:n,body:JSON.stringify({localId:o})});if(!a.ok)throw new Error(`Failed to create thread: ${a.status}`);let i=await a.json();return{remoteId:i.remoteId,externalId:i.externalId}}catch(a){throw console.error("[Threads] Initialize error:",a),a}},async rename(o,a){try{await fetch(`${e}/api/widget/threads/${o}`,{method:"PATCH",headers:n,body:JSON.stringify({title:a})})}catch(i){console.error("[Threads] Rename error:",i)}},async archive(o){try{await fetch(`${e}/api/widget/threads/${o}/archive`,{method:"POST",headers:n})}catch(a){console.error("[Threads] Archive error:",a)}},async unarchive(o){try{await fetch(`${e}/api/widget/threads/${o}/unarchive`,{method:"POST",headers:n})}catch(a){console.error("[Threads] Unarchive error:",a)}},async delete(o){try{await fetch(`${e}/api/widget/threads/${o}`,{method:"DELETE",headers:n})}catch(a){console.error("[Threads] Delete error:",a)}},async generateTitle(o,a){return qw(async i=>{try{let s=await fetch(`${e}/api/widget/threads/${o}/title`,{method:"POST",headers:n,body:JSON.stringify({messages:a})});if(!s.ok)throw new Error(`Title generation failed: ${s.status}`);let l=await s.json();i.appendText(l.title),i.close()}catch(s){console.error("[Threads] Title generation error:",s),i.appendText("New Chat"),i.close()}})}}}async function VIe(e,t,r,n,o){try{let a=await fetch(`${e}/api/widget/threads/${n}/messages/sync`,{method:"POST",headers:fz(t,r),body:JSON.stringify({messages:o})});a.ok||console.error("[Messages] Sync failed:",a.status)}catch(a){console.error("[Messages] Sync error:",a)}}function qIe(e,t,r,n){let o=fz(t,r);return{async load(){if(console.log("[History] load() called, remoteId:",n),!n)return{headId:null,messages:[]};try{let a=await fetch(`${e}/api/widget/threads/${n}/messages`,{headers:o});if(!a.ok)return console.error("[History] Failed to load messages:",a.status),{headId:null,messages:[]};let{messages:i}=await a.json();console.log("[History] Loaded messages:",i.length);let s=i.map((l,u)=>({parentId:u>0?i[u-1].id:null,message:{id:l.id,role:l.role,parts:l.content,metadata:l.metadata,createdAt:new Date(l.createdAt)}}));return console.log("[History] Formatted messages:",s.length),{headId:i.length>0?i[i.length-1].id:null,messages:s}}catch(a){return console.error("[History] Load error:",a),{headId:null,messages:[]}}},async append(a){console.log("[History] append() called")},withFormat(a){return console.log("[History.withFormat] called, remoteId:",n),{async load(){if(!n)return{headId:null,messages:[]};try{let i=await fetch(`${e}/api/widget/threads/${n}/messages`,{headers:o});if(!i.ok)return console.error("[History.withFormat] Failed:",i.status),{headId:null,messages:[]};let{messages:s}=await i.json();console.log("[History.withFormat] Loaded:",s.length);let l=s.map((u,c)=>({parentId:c>0?s[c-1].id:null,message:{id:u.id,role:u.role,parts:u.content,metadata:u.metadata,createdAt:new Date(u.createdAt)}}));return{headId:s.length>0?s[s.length-1].id:null,messages:l}}catch(i){return console.error("[History.withFormat] Error:",i),{headId:null,messages:[]}}},async append(i){}}}}}function HIe({config:e,userId:t,children:r}){let n=e.baseUrl||"http://localhost:3000",o=e.apiKey,{consumeContext:a,clearContext:i}=fm(),s=(0,Dr.useRef)(a);s.current=a;let l=(0,Dr.useRef)(i);l.current=i;let u=(0,Dr.useMemo)(()=>UIe(n,t,o),[n,t,o]),c=jh({runtimeHook:function(){let f=O(({threadListItem:g})=>g?.remoteId??void 0),p=(0,Dr.useRef)(f);p.current=f;let m=(0,Dr.useMemo)(()=>qIe(n,t,o,f),[f]),h=(0,Dr.useMemo)(()=>(console.log("[Widget] Creating transport for threadId:",f),new Ql({api:`${n}/api/widget/chat`,headers:{"X-User-Id":t,"X-Assistant-Id":o},body:()=>{let g=s.current(),v=g.map(w=>w.id),x=g.map(w=>({id:w.id,type:w.type,title:w.title}));return console.log("[Widget] Transport body - contextIds:",v.length,"threadId:",f),v.length>0&&setTimeout(()=>l.current(),0),{assistantId:o,threadId:f,...v.length>0&&{contextIds:v,contextMetadata:x}}}})),[f]);return cz({transport:h,adapters:{history:m},onFinish:({message:g,messages:v})=>{let x=p.current;console.log("[Widget] onFinish - threadId:",x,"messages:",v.length),x&&v.length>0&&VIe(n,t,o,x,v)}})},adapter:u});return(0,Zc.jsx)(MP,{runtime:c,children:r})}function Xee({config:e,children:t,autoInitialize:r=!1}){let[n]=(0,Dr.useState)(()=>e.userId||BIe()),[o]=(0,Dr.useState)(()=>new wu(e)),[a,i]=(0,Dr.useState)(o.getState());(0,Dr.useEffect)(()=>{let l=o.on("state:change",({current:u})=>{i(u)});return r&&a.status==="idle"&&o.initialize().catch(console.error),()=>{l(),o.destroy()}},[o,r,a.status]);let s=(0,Dr.useMemo)(()=>({client:o,state:a,userId:n}),[o,a,n]);return(0,Zc.jsx)(qA,{value:OA,children:(0,Zc.jsx)(HA,{theme:Tv,children:(0,Zc.jsx)(dz.Provider,{value:s,children:(0,Zc.jsx)(Kee,{children:(0,Zc.jsx)(HIe,{config:e,userId:n,children:t})})})})})}var WIe={attachment:"Attachments",description:"Description",caption:"Video",link:"Links"};function Yee(e={}){let{onInsertMention:t}=e,r=(0,Et.useContext)(dz);if(!r)throw new Error("useContextMention must be used within a WidgetProvider");let{client:n}=r,{selectedContext:o,addContextItem:a,removeContextItem:i,clearContext:s}=fm(),[l,u]=(0,Et.useState)(!1),[c,d]=(0,Et.useState)(""),[f,p]=(0,Et.useState)(0),[m,h]=(0,Et.useState)(!1),[y,g]=(0,Et.useState)([]),[v,x]=(0,Et.useState)(!1),w=n.getConfig(),_=w.baseUrl||"http://localhost:3000",k=w.apiKey,C=(0,Et.useCallback)(async(T="",ze=10)=>{h(!0);try{let Ct=new URLSearchParams({limit:ze.toString()});T&&Ct.set("search",T);let E=await fetch(`${_}/api/widget/context?${Ct.toString()}`,{headers:{"Content-Type":"application/json","X-Assistant-Id":k}});if(!E.ok){console.error("[ContextMention] Failed to fetch context:",E.status);return}let He=await E.json();g(He.categories),x(He.hasMore)}catch(Ct){console.error("[ContextMention] Error fetching context:",Ct)}finally{h(!1)}},[_,k]),I=(0,Et.useCallback)(()=>{u(!0),d(""),p(0),C()},[C]),M=(0,Et.useCallback)(()=>{u(!1),d(""),p(0)},[]),L=(0,Et.useCallback)(T=>{d(T),p(0),C(T)},[C]),B=(0,Et.useMemo)(()=>y.flatMap(T=>T.items),[y]),Y=(0,Et.useCallback)(()=>{p(T=>T<B.length-1?T+1:T)},[B.length]),F=(0,Et.useCallback)(()=>{p(T=>T>0?T-1:0)},[]),K=(0,Et.useCallback)(()=>{let T=B[f];T&&(a(T),M(),t?.(T))},[B,f,a,M,t]),te=(0,Et.useCallback)(T=>{a(T),M(),t?.(T)},[a,M,t]),se=(0,Et.useCallback)(T=>{i(T)},[i]),U=(0,Et.useCallback)(()=>{s()},[s]),N=(0,Et.useCallback)(T=>{if(l)switch(T.key){case"ArrowDown":T.preventDefault(),Y();break;case"ArrowUp":T.preventDefault(),F();break;case"Enter":T.preventDefault(),K();break;case"Escape":T.preventDefault(),M();break}},[l,Y,F,K,M]),ye=(0,Et.useCallback)(T=>WIe[T]||T,[]);return{selectedItems:o,selectItem:te,removeItem:se,clearAll:U,isOpen:l,openPopover:I,closePopover:M,searchTerm:c,updateSearch:L,activeIndex:f,setActiveIndex:p,navigateUp:F,navigateDown:Y,selectActiveItem:K,handleKeyDown:N,categories:y,flattenedItems:B,isLoading:m,hasMore:v,getCategoryLabel:ye}}var wa=S(A(),1),j=S(D(),1),Qee=()=>(0,j.jsx)(Di.Root,{className:"aui-thread-root @container flex h-full flex-col bg-background",style:{"--thread-max-width":"44rem"},children:(0,j.jsxs)(Di.Viewport,{className:"aui-thread-viewport relative flex flex-1 flex-col overflow-x-auto overflow-y-scroll scroll-smooth px-4 pt-4",children:[(0,j.jsx)(Qs,{condition:({thread:e})=>e.isEmpty,children:(0,j.jsx)(JIe,{})}),(0,j.jsx)(Di.Messages,{components:{UserMessage:aCe,EditComposer:sCe,AssistantMessage:rCe}}),(0,j.jsxs)(Di.ViewportFooter,{className:"aui-thread-viewport-footer sticky bottom-0 mx-auto mt-auto flex w-full max-w-(--thread-max-width) flex-col gap-4 overflow-visible rounded-t-3xl bg-background pb-4",children:[(0,j.jsx)(ZIe,{}),(0,j.jsx)(YIe,{})]})]})}),ZIe=()=>(0,j.jsx)(Di.ScrollToBottom,{asChild:!0,children:(0,j.jsx)(vt,{tooltip:"Scroll to bottom",variant:"outline",className:"aui-thread-scroll-to-bottom absolute -top-12 z-10 self-center rounded-full p-4 disabled:invisible dark:bg-background dark:hover:bg-accent",children:(0,j.jsx)(vg,{})})}),GIe=()=>{let e=new Date().getHours();return e<12?"Good morning":e<18?"Good afternoon":"Good evening"},KIe=[{label:"Explain this concept in detail",icon:Tg,prompt:"Explain this concept to me by drawing comparisons"},{label:"Generate a podcast",icon:$g,prompt:"/audio"},{label:"Quiz me",icon:el,prompt:"/quiz"},{label:"Generate flashcards",icon:Ng,prompt:"/flashcards"}],JIe=()=>(0,j.jsxs)("div",{className:"aui-thread-welcome-root mx-auto flex w-full max-w-(--thread-max-width) flex-col gap-4",children:[(0,j.jsx)("div",{className:"aui-thread-welcome-center flex w-full grow flex-col items-center justify-center",children:(0,j.jsxs)("div",{className:"aui-thread-welcome-message flex size-full flex-col justify-center px-4",children:[(0,j.jsx)("h1",{className:"aui-thread-welcome-message-inner fade-in slide-in-from-bottom-1 animate-in font-semibold text-2xl duration-200",style:{color:"var(--color-primary)"},children:GIe()}),(0,j.jsx)("p",{className:"aui-thread-welcome-message-inner fade-in slide-in-from-bottom-1 animate-in text-muted-foreground text-xl delay-75 duration-200",children:"How may I be of service?"})]})}),(0,j.jsx)(XIe,{})]}),XIe=()=>(0,j.jsx)("div",{className:"aui-thread-welcome-suggestions flex w-full flex-col gap-2",children:KIe.map((e,t)=>{let r=e.icon;return(0,j.jsx)("div",{className:"fade-in slide-in-from-bottom-2 animate-in fill-mode-both duration-200",style:{animationDelay:`${200+t*50}ms`},children:(0,j.jsx)(Di.Suggestion,{prompt:e.prompt,send:!0,asChild:!0,children:(0,j.jsx)($l,{variant:"ghost",className:"aui-thread-welcome-suggestion h-auto w-full @md:flex-col flex-wrap items-start justify-start gap-1 rounded-2xl border text-left text-sm transition-colors hover:bg-muted hover:text-primary","aria-label":e.label,style:{borderWidth:0,padding:8},children:(0,j.jsxs)("div",{className:"flex items-center gap-2",children:[(0,j.jsx)(r,{className:"size-4 shrink-0"}),(0,j.jsx)("span",{children:e.label})]})})})},e.prompt)})}),YIe=()=>{let e=(0,wa.useRef)(null),t=Fd(),r=(0,wa.useCallback)(()=>{t.send()},[t]),n=(0,wa.useCallback)(C=>{e.current?.insertMention({id:C.id,title:C.title,icon:C.icon,type:C.type}),setTimeout(()=>{e.current?.focus()},0)},[]),{isOpen:o,openPopover:a,closePopover:i,categories:s,isLoading:l,activeIndex:u,flattenedItems:c,selectItem:d,setActiveIndex:f,handleKeyDown:p,getCategoryLabel:m,searchTerm:h,updateSearch:y}=Yee({onInsertMention:n}),{selectedContext:g,removeContextItem:v}=fm(),x=(0,wa.useCallback)(C=>{o||a(),y(C)},[o,a,y]),w=(0,wa.useCallback)(()=>{o&&i()},[o,i]),_=(0,wa.useCallback)(C=>{o&&["ArrowUp","ArrowDown","Enter","Escape"].includes(C.key)&&(C.preventDefault(),p(C),C.key==="Escape"&&setTimeout(()=>{e.current?.focus()},0))},[o,p]),k=(0,wa.useCallback)(C=>{v(C)},[v]);return(0,j.jsx)(Ln.Root,{className:"aui-composer-root relative flex w-full flex-col",children:(0,j.jsxs)(Ln.AttachmentDropzone,{className:"aui-composer-attachment-dropzone flex w-full flex-col rounded-2xl border border-input bg-background px-1 pt-2 outline-none transition-shadow has-[[contenteditable]:focus-visible]:border-ring has-[[contenteditable]:focus-visible]:ring-2 has-[[contenteditable]:focus-visible]:ring-ring/20 data-[dragging=true]:border-ring data-[dragging=true]:border-dashed data-[dragging=true]:bg-accent/50",children:[(0,j.jsx)(QIe,{isOpen:o,onOpenChange:C=>C?a():i(),categories:s,isLoading:l,activeIndex:u,flattenedItems:c,onSelectItem:d,onActiveIndexChange:f,getCategoryLabel:m,searchTerm:h,selectedItems:g,onRemoveItem:v}),(0,j.jsx)(JK,{}),(0,j.jsx)(jM,{ref:e,placeholder:"Ask, search, or make anything...",autoFocus:!0,onTriggerDetected:x,onTriggerDismissed:w,onKeyDown:_,onMentionRemove:k,onSubmit:r}),(0,j.jsx)(eCe,{})]})})},QIe=({isOpen:e,onOpenChange:t,categories:r,isLoading:n,activeIndex:o,flattenedItems:a,onSelectItem:i,onActiveIndexChange:s,getCategoryLabel:l,searchTerm:u,selectedItems:c,onRemoveItem:d})=>(0,j.jsxs)("div",{className:"aui-composer-context mb-2 flex items-center gap-2 overflow-x-auto px-1.5 pt-0.5 pb-1",children:[(0,j.jsx)(mJ,{isOpen:e,onOpenChange:t,categories:r,isLoading:n,activeIndex:o,flattenedItems:a,onSelectItem:i,onActiveIndexChange:s,getCategoryLabel:l,searchTerm:u,trigger:(0,j.jsx)(vt,{tooltip:"Add context (@)",side:"bottom",variant:"ghost",size:"icon",className:"aui-composer-add-context size-[34px] rounded-full p-1 font-semibold text-xs hover:bg-muted-foreground/15 dark:border-muted-foreground/15 dark:hover:bg-muted-foreground/30","aria-label":"Add context (@)",children:(0,j.jsx)(yg,{className:"size-5 stroke-[1.5px]"})})}),c.length>0&&(0,j.jsx)("div",{className:"flex items-center gap-1.5 overflow-x-auto",children:c.map(f=>(0,j.jsx)(pJ,{label:f.title,onRemove:()=>d(f.id)},f.id))})]}),eCe=()=>(0,j.jsxs)("div",{className:"aui-composer-action-wrapper relative mx-2 mb-2 flex items-center justify-between",children:[(0,j.jsxs)("div",{className:"flex items-center gap-2",children:[(0,j.jsx)(XK,{}),(0,j.jsx)(vt,{tooltip:"All sources",side:"bottom",variant:"ghost",size:"icon",className:"aui-composer-all-sources size-[34px] rounded-full p-1 font-semibold text-xs hover:bg-muted-foreground/15 dark:border-muted-foreground/15 dark:hover:bg-muted-foreground/30","aria-label":"All sources",children:(0,j.jsx)(Ig,{className:"size-5 stroke-[1.5px]"})})]}),(0,j.jsx)(Qs,{condition:({thread:e})=>!e.isRunning,children:(0,j.jsx)(Ln.Send,{asChild:!0,children:(0,j.jsx)(vt,{tooltip:"Send message",side:"bottom",type:"submit",variant:"default",className:"aui-composer-send size-8 rounded-full","aria-label":"Send message",children:(0,j.jsx)(xg,{className:"aui-composer-send-icon size-4"})})})}),(0,j.jsx)(Qs,{condition:({thread:e})=>e.isRunning,children:(0,j.jsx)(Ln.Cancel,{asChild:!0,children:(0,j.jsx)($l,{type:"button",variant:"default",size:"icon",className:"aui-composer-cancel size-8 rounded-full","aria-label":"Stop generating",children:(0,j.jsx)(Wu,{className:"aui-composer-cancel-icon size-3 fill-current"})})})})]}),tCe=()=>(0,j.jsx)(Na.Error,{children:(0,j.jsx)(dg.Root,{className:"aui-message-error-root mt-2 rounded-md border border-destructive bg-destructive/10 p-3 text-destructive text-sm dark:bg-destructive/5 dark:text-red-200",children:(0,j.jsx)(dg.Message,{className:"aui-message-error-message line-clamp-2"})})}),rCe=()=>(0,j.jsxs)(Na.Root,{className:"aui-assistant-message-root fade-in slide-in-from-bottom-1 relative mx-auto w-full max-w-(--thread-max-width) animate-in py-3 duration-150","data-role":"assistant",children:[(0,j.jsxs)("div",{className:"aui-assistant-message-content wrap-break-word px-2 text-foreground leading-relaxed",children:[(0,j.jsx)(Na.Parts,{components:{Text:dJ,tools:{Fallback:fJ}}}),(0,j.jsx)(tCe,{})]}),(0,j.jsxs)("div",{className:"aui-assistant-message-footer mt-1 ml-2 flex",children:[(0,j.jsx)(ete,{}),(0,j.jsx)(nCe,{})]})]}),nCe=()=>(0,j.jsxs)(Ai.Root,{hideWhenRunning:!0,autohide:"not-last",autohideFloat:"single-branch",className:"aui-assistant-action-bar-root col-start-3 row-start-2 -ml-1 flex gap-1 text-muted-foreground data-floating:absolute data-floating:rounded-md data-floating:border data-floating:bg-background data-floating:p-1 data-floating:shadow-sm",children:[(0,j.jsx)(Ai.Copy,{asChild:!0,children:(0,j.jsxs)(vt,{tooltip:"Copy",children:[(0,j.jsx)(Qs,{condition:({message:e})=>e.isCopied,children:(0,j.jsx)(Kn,{})}),(0,j.jsx)(Qs,{condition:({message:e})=>!e.isCopied,children:(0,j.jsx)(Ni,{})})]})}),(0,j.jsx)(Ai.ExportMarkdown,{asChild:!0,children:(0,j.jsx)(vt,{tooltip:"Export as Markdown",children:(0,j.jsx)(Vu,{})})}),(0,j.jsx)(Ai.Reload,{asChild:!0,children:(0,j.jsx)(vt,{tooltip:"Refresh",children:(0,j.jsx)(Og,{})})})]}),oCe=()=>{let[e,t]=(0,wa.useState)(!1),r=Eh(n=>{console.log("[MessageContextIndicator] Message state:",n);let o=n.metadata,a=o?.context||o?.custom?.context;return console.log("[MessageContextIndicator] Context:",a),a});return!r||r.length===0?null:(0,j.jsxs)("div",{className:"col-start-2 mb-1 flex flex-col items-end",children:[(0,j.jsxs)("button",{onClick:()=>t(!e),className:"flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,j.jsxs)("span",{children:[r.length," Context"]}),(0,j.jsx)(Oi,{className:le("size-3.5 transition-transform duration-200",e&&"rotate-180")})]}),e&&(0,j.jsx)("div",{className:"mt-1 flex flex-wrap gap-1 justify-end",children:r.map(n=>(0,j.jsx)("span",{className:"rounded-full bg-muted px-2 py-0.5 text-xs text-muted-foreground",children:n.title},n.id))})]})},aCe=()=>(0,j.jsxs)(Na.Root,{className:"aui-user-message-root fade-in slide-in-from-bottom-1 mx-auto grid w-full max-w-(--thread-max-width) animate-in auto-rows-auto grid-cols-[minmax(72px,1fr)_auto] content-start gap-y-2 px-2 py-3 duration-150 [&:where(>*)]:col-start-2","data-role":"user",children:[(0,j.jsx)(oCe,{}),(0,j.jsx)(KK,{}),(0,j.jsxs)("div",{className:"aui-user-message-content-wrapper relative col-start-2 min-w-0",children:[(0,j.jsx)("div",{className:"aui-user-message-content wrap-break-word rounded-2xl bg-muted px-4 py-2.5 text-foreground",children:(0,j.jsx)(vJ,{})}),(0,j.jsx)("div",{className:"aui-user-action-bar-wrapper absolute top-1/2 left-0 -translate-x-full -translate-y-1/2 pr-2",children:(0,j.jsx)(iCe,{})})]}),(0,j.jsx)(ete,{className:"aui-user-branch-picker col-span-full col-start-1 row-start-3 -mr-1 justify-end"})]}),iCe=()=>(0,j.jsx)(Ai.Root,{hideWhenRunning:!0,autohide:"not-last",className:"aui-user-action-bar-root flex flex-col items-end",children:(0,j.jsx)(Ai.Edit,{asChild:!0,children:(0,j.jsx)(vt,{tooltip:"Edit",className:"aui-user-action-edit p-4",children:(0,j.jsx)(Rg,{})})})}),sCe=()=>(0,j.jsx)(Na.Root,{className:"aui-edit-composer-wrapper mx-auto flex w-full max-w-(--thread-max-width) flex-col px-2 py-3",children:(0,j.jsxs)(Ln.Root,{className:"aui-edit-composer-root ml-auto flex w-full max-w-[85%] flex-col rounded-2xl bg-muted",children:[(0,j.jsx)(Ln.Input,{className:"aui-edit-composer-input min-h-14 w-full resize-none bg-transparent p-4 text-foreground text-sm outline-none",autoFocus:!0}),(0,j.jsxs)("div",{className:"aui-edit-composer-footer mx-3 mb-3 flex items-center gap-2 self-end",children:[(0,j.jsx)(Ln.Cancel,{asChild:!0,children:(0,j.jsx)($l,{variant:"ghost",size:"sm",children:"Cancel"})}),(0,j.jsx)(Ln.Send,{asChild:!0,children:(0,j.jsx)($l,{size:"sm",children:"Update"})})]})]})}),ete=({className:e,...t})=>(0,j.jsxs)(Ys.Root,{hideWhenSingleBranch:!0,className:le("aui-branch-picker-root mr-2 -ml-2 inline-flex items-center text-muted-foreground text-xs",e),...t,children:[(0,j.jsx)(Ys.Previous,{asChild:!0,children:(0,j.jsx)(vt,{tooltip:"Previous",children:(0,j.jsx)(bg,{})})}),(0,j.jsxs)("span",{className:"aui-branch-picker-state font-medium",children:[(0,j.jsx)(Ys.Number,{})," / ",(0,j.jsx)(Ys.Count,{})]}),(0,j.jsx)(Ys.Next,{asChild:!0,children:(0,j.jsx)(vt,{tooltip:"Next",children:(0,j.jsx)(Sg,{})})})]});var Me=S(D(),1),tte=()=>(0,Me.jsxs)(oa.Root,{className:"aui-thread-list-root flex flex-col",children:[(0,Me.jsxs)("div",{className:"flex items-center justify-between border-b border-border px-3 py-2",children:[(0,Me.jsx)("span",{className:"text-sm font-medium text-foreground",children:"Chats"}),(0,Me.jsx)(oa.New,{asChild:!0,children:(0,Me.jsx)(vt,{tooltip:"New chat",variant:"ghost",size:"icon",className:"h-7 w-7",children:(0,Me.jsx)(Mg,{className:"h-4 w-4"})})})]}),(0,Me.jsxs)("div",{className:"flex-1 overflow-y-auto",children:[(0,Me.jsx)(oa.Items,{components:{ThreadListItem:lCe}}),(0,Me.jsx)("div",{className:"px-3 py-2",children:(0,Me.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:"Archived"})}),(0,Me.jsx)(oa.Items,{archived:!0,components:{ThreadListItem:uCe}})]})]}),lCe=()=>(0,Me.jsxs)(Ar.Root,{className:"aui-thread-list-item group relative flex items-center gap-2 px-3 py-2 hover:bg-muted/50 data-[active]:bg-muted cursor-pointer transition-colors",children:[(0,Me.jsxs)(Ar.Trigger,{className:"flex flex-1 items-center gap-2 min-w-0",children:[(0,Me.jsx)(Pg,{className:"h-4 w-4 flex-shrink-0 text-muted-foreground"}),(0,Me.jsx)("div",{className:"flex flex-1 flex-col min-w-0",children:(0,Me.jsx)("span",{className:"truncate text-sm font-medium text-foreground",children:(0,Me.jsx)(Ar.Title,{fallback:"New Chat"})})})]}),(0,Me.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,Me.jsx)(Ar.Archive,{asChild:!0,children:(0,Me.jsx)(vt,{tooltip:"Archive",variant:"ghost",size:"icon",className:"h-6 w-6",children:(0,Me.jsx)(uf,{className:"h-3.5 w-3.5"})})}),(0,Me.jsx)(Ar.Delete,{asChild:!0,children:(0,Me.jsx)(vt,{tooltip:"Delete",variant:"ghost",size:"icon",className:"h-6 w-6 text-destructive hover:text-destructive",children:(0,Me.jsx)(df,{className:"h-3.5 w-3.5"})})})]})]}),uCe=()=>(0,Me.jsxs)(Ar.Root,{className:"aui-thread-list-item-archived group relative flex items-center gap-2 px-3 py-2 hover:bg-muted/50 data-[active]:bg-muted cursor-pointer transition-colors opacity-70",children:[(0,Me.jsxs)(Ar.Trigger,{className:"flex flex-1 items-center gap-2 min-w-0",children:[(0,Me.jsx)(uf,{className:"h-4 w-4 flex-shrink-0 text-muted-foreground"}),(0,Me.jsx)("div",{className:"flex flex-1 flex-col min-w-0",children:(0,Me.jsx)("span",{className:"truncate text-sm text-foreground",children:(0,Me.jsx)(Ar.Title,{fallback:"Archived Chat"})})})]}),(0,Me.jsxs)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:[(0,Me.jsx)(Ar.Unarchive,{asChild:!0,children:(0,Me.jsx)(vt,{tooltip:"Unarchive",variant:"ghost",size:"icon",className:"h-6 w-6",children:(0,Me.jsx)(gg,{className:"h-3.5 w-3.5"})})}),(0,Me.jsx)(Ar.Delete,{asChild:!0,children:(0,Me.jsx)(vt,{tooltip:"Delete",variant:"ghost",size:"icon",className:"h-6 w-6 text-destructive hover:text-destructive",children:(0,Me.jsx)(df,{className:"h-3.5 w-3.5"})})})]})]});var hn=S(D(),1),rte=({sidebarOpen:e=!1,onSidebarClose:t})=>(0,hn.jsxs)("div",{className:"relative flex flex-1 h-full w-full overflow-hidden bg-background",children:[(0,hn.jsx)(DZ,{}),(0,hn.jsx)(J7,{}),(0,hn.jsx)("div",{className:"flex flex-1 flex-col min-w-0",children:(0,hn.jsx)("div",{className:"flex-1 overflow-hidden relative",children:(0,hn.jsx)(Qee,{})})}),(0,hn.jsx)(Af,{children:e&&(0,hn.jsxs)(hn.Fragment,{children:[(0,hn.jsx)(yl.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},className:"absolute inset-0 bg-black/50 z-40",onClick:t}),(0,hn.jsx)(yl.div,{initial:{x:-256},animate:{x:0},exit:{x:-256},transition:{duration:.2,ease:[.4,0,.2,1]},className:le("absolute left-0 top-0 bottom-0 w-64 bg-background z-50 overflow-hidden shadow-lg"),children:(0,hn.jsx)(tte,{})})]})})]});var ai=S(D(),1),cCe=[{value:"sidebar",label:"Sidebar",icon:(0,ai.jsx)(ol,{className:"h-4 w-4"})},{value:"floating",label:"Floating",icon:(0,ai.jsx)(Wu,{className:"h-4 w-4"})},{value:"fullscreen",label:"Full Screen",icon:(0,ai.jsx)(_g,{className:"h-4 w-4"})}],nte=({currentLayout:e,onLayoutChange:t})=>(0,ai.jsx)("div",{className:"flex flex-col gap-1",children:cCe.map(r=>{let n=e===r.value;return(0,ai.jsxs)("button",{onClick:()=>t(r.value),className:le("flex items-center gap-2 px-2 py-1.5 rounded-sm hover:bg-muted/50 transition-colors cursor-pointer w-full text-left",n&&"bg-muted/30"),children:[(0,ai.jsx)("div",{className:"flex items-center justify-center w-4 h-4",children:r.icon}),(0,ai.jsx)(Jf,{size:"sm",style:{flex:1},children:r.label}),n&&(0,ai.jsx)(Kn,{className:"h-4 w-4 text-foreground"})]},r.value)})});var Be=S(D(),1),ote="learn-alchemy-widget-layout";function j_({defaultOpen:e=!1,position:t="bottom-right"}){console.log("[WidgetContainer] Rendering with props:",{defaultOpen:e,position:t});let[r,n]=(0,eu.useState)(e),[o,a]=(0,eu.useState)(!1);console.log("[WidgetContainer] State:",{isOpen:r,sidebarOpen:o});let[i,s]=(0,eu.useState)(!1),[l,u]=(0,eu.useState)(!1),[c,d]=(0,eu.useState)("floating");(0,eu.useEffect)(()=>{let g=localStorage.getItem(ote);g&&["floating","fullscreen","sidebar"].includes(g)&&d(g)},[]);let f=g=>{d(g),localStorage.setItem(ote,g),u(!1)},p=O(({threadListItem:g})=>g?.title??"New AI chat"),m=()=>{n(!1)},h=()=>{s(!1)};return(0,Be.jsxs)(fZ,{position:t,children:[(0,Be.jsx)(Af,{children:r&&(0,Be.jsxs)(pZ,{initial:{opacity:0,scale:0,y:0},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:0,y:0},transition:{duration:.2,ease:[.4,0,.2,1]},style:(()=>{let g={transformOrigin:t==="bottom-right"?"bottom right":"bottom left"};switch(c){case"fullscreen":return{...g,position:"fixed",width:"100vw",height:"100vh",maxWidth:"100vw",maxHeight:"100vh",borderRadius:0,bottom:0,right:0,left:0,top:0,margin:0};case"sidebar":return{...g,position:"fixed",width:"400px",height:"100vh",maxHeight:"100vh",bottom:0,top:0,right:t==="bottom-right"?0:"auto",left:t==="bottom-left"?0:"auto",borderRadius:0,margin:0};default:return g}})(),children:[(0,Be.jsxs)(mZ,{children:[(0,Be.jsxs)(cx,{open:i,onOpenChange:s,children:[(0,Be.jsx)(dx,{asChild:!0,children:(0,Be.jsx)("button",{type:"button",style:{cursor:"pointer",background:"none",border:"none",padding:0,display:"flex",alignItems:"center",minWidth:0,flex:1},children:(0,Be.jsxs)(F0,{align:"center",gap:"xs",style:{minWidth:0,flex:1},children:[(0,Be.jsx)(Jf,{size:"sm",style:{fontWeight:500,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",minWidth:0},children:p}),(0,Be.jsx)(Oi,{size:16,style:{flexShrink:0}})]})})}),(0,Be.jsx)(fx,{align:"start",side:"bottom",sideOffset:8,className:"w-64 p-0",children:(0,Be.jsx)(gZ,{onSelectThread:h})})]}),(0,Be.jsxs)(F0,{align:"center",gap:"xs",style:{flexShrink:0},children:[(0,Be.jsx)(oa.New,{asChild:!0,children:(0,Be.jsx)(j0,{"aria-label":"New chat",children:(0,Be.jsx)(En,{size:18})})}),(0,Be.jsxs)(cx,{open:l,onOpenChange:u,children:[(0,Be.jsx)(dx,{asChild:!0,children:(0,Be.jsx)(j0,{"aria-label":"Layout options",style:{backgroundColor:l?"hsl(var(--muted))":"transparent"},children:(0,Be.jsx)(al,{size:18})})}),(0,Be.jsx)(fx,{align:"end",side:"bottom",sideOffset:8,className:"w-48 p-2",children:(0,Be.jsx)(nte,{currentLayout:c,onLayoutChange:f})})]}),(0,Be.jsx)(j0,{onClick:m,"aria-label":"Minimize widget",children:(0,Be.jsx)(Lg,{size:18})})]})]}),(0,Be.jsx)(hZ,{children:(0,Be.jsx)(rte,{sidebarOpen:o,onSidebarClose:()=>a(!1)})})]})}),(0,Be.jsx)(Af,{children:!r&&(0,Be.jsxs)(Be.Fragment,{children:[console.log("[WidgetContainer] Rendering FAB button (isOpen=false)"),(0,Be.jsx)(F0,{justify:t==="bottom-right"?"flex-end":"flex-start",children:(0,Be.jsx)(dZ,{onClick:()=>{console.log("[WidgetContainer] FAB clicked, opening widget"),n(!0)},initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:20},transition:{duration:.2,ease:[.4,0,.2,1]},whileHover:{scale:1.1},whileTap:{scale:.9},"aria-label":"Open chat",children:(0,Be.jsx)(wg,{size:24,strokeWidth:2})})})]})})]})}var mz="1.0.0",Ee={info:(...e)=>console.log("[TinkrWidget]",...e),warn:(...e)=>console.warn("[TinkrWidget]",...e),error:(...e)=>console.error("[TinkrWidget]",...e),debug:(...e)=>console.debug("[TinkrWidget]",...e)},B_={WidgetClient:wu,version:mz,init:e=>{if(Ee.info(`Initializing widget v${mz}...`),Ee.debug("Config:",{...e,apiKey:e.apiKey?"[REDACTED]":void 0}),!e.apiKey)throw Ee.error("Missing required config: apiKey"),Ee.info('Usage: CourseAI.init({ apiKey: "your-assistant-id", ... })'),new Error("[TinkrWidget] Missing required config: apiKey");let{container:t="#course-ai-widget",defaultOpen:r=!1,position:n="bottom-right",...o}=e;Ee.debug("Looking for container:",t);let a=typeof t=="string"?document.querySelector(t):t;if(!a&&typeof t=="string"){Ee.debug(`Container "${t}" not found, creating one...`);let i=document.createElement("div");i.id=t.replace("#",""),document.body.appendChild(i),a=i,Ee.debug("Created container element:",a)}if(!a)throw Ee.error(`Container not found and could not be created: "${t}"`),new Error(`[TinkrWidget] Container not found: ${t}`);Ee.debug("Using container:",a),Ee.info("Mounting React widget with WidgetContainer..."),Ee.info("WidgetContainer props:",{defaultOpen:r,position:n}),Ee.info("WidgetContainer component:",j_),Ee.info("WidgetContainer name:",j_.name);try{let i=(0,ate.createRoot)(a),s=pz.default.createElement(j_,{defaultOpen:r,position:n});Ee.info("Created WidgetContainer element:",s);let l=pz.default.createElement(Xee,{config:o},s);return Ee.info("Created WidgetProvider element:",l),i.render(l),Ee.info("Widget mounted successfully with WidgetContainer!"),{unmount:()=>{Ee.info("Unmounting widget..."),i.unmount()}}}catch(i){throw Ee.error("Failed to mount widget:",i),i}},createClient:e=>{if(Ee.info("Creating headless client..."),!e.apiKey)throw Ee.error("Missing required config: apiKey"),new Error("[TinkrWidget] Missing required config: apiKey");return new wu(e)}};if(typeof window<"u"){Ee.info(`Tinkr Widget v${mz} loaded`),Ee.debug("Base API URL:","http://localhost:3000"),window.CourseAI=B_,window.TinkrWidget=B_;let e=document.currentScript;if(Ee.debug("Current script element:",e),Ee.debug("Script attributes:",e?Array.from(e.attributes).map(t=>`${t.name}="${t.value}"`).join(", "):"none"),e?.hasAttribute("data-api-key")){Ee.info("Auto-initialization mode detected (data-api-key found)");let t=()=>{Ee.debug("Running auto-initialization...");let r=e.getAttribute("data-api-key"),n=e.getAttribute("data-assistant-id"),o=r||n;if(!o){Ee.error("Missing required attribute: data-api-key"),Ee.info('Usage: <script src="..." data-api-key="your-assistant-id"><\/script>');return}let a=e.getAttribute("data-container")||"#course-ai-widget",i=document.querySelector(a);if(!i){Ee.debug(`Container "${a}" not found, creating one...`);let c=document.createElement("div");c.id=a.replace("#",""),document.body.appendChild(c),i=c,Ee.debug("Created container element:",i)}let s={apiKey:o,assistantId:n||o,userId:e.getAttribute("data-user-id")||void 0,baseUrl:e.getAttribute("data-base-url")||"http://localhost:3000",debug:e.hasAttribute("data-debug")},l=e.getAttribute("data-default-open")==="true",u=e.getAttribute("data-position")||"bottom-right";Ee.info("Auto-initializing with config:",{apiKey:"[REDACTED]",container:a,baseUrl:s.baseUrl,debug:s.debug,defaultOpen:l,position:u});try{B_.init({...s,container:i,defaultOpen:l,position:u})}catch(c){Ee.error("Auto-initialization failed:",c)}};document.readyState==="loading"?(Ee.debug("Document still loading, waiting for DOMContentLoaded..."),document.addEventListener("DOMContentLoaded",t)):(Ee.debug("Document ready, initializing immediately..."),t())}else Ee.info("Manual initialization mode"),Ee.info("To auto-initialize, add data-api-key to the script tag:"),Ee.info(' <script src="..." data-api-key="your-assistant-id"><\/script>'),Ee.info("Or initialize manually:"),Ee.info(' CourseAI.init({ apiKey: "your-assistant-id" })'),Ee.info(' // or: TinkrWidget.init({ apiKey: "your-assistant-id" })')}var dCe=B_;return kz(fCe);})();
|
|
507
507
|
/*! Bundled license information:
|
|
508
508
|
|
|
509
509
|
react/cjs/react.production.min.js:
|