UNPKG

takumi

Version:

A coding agent CLI to enhance your development workflow.

5 lines (4 loc) 33.5 kB
import{M as Ne,cM as ke,r as D,a4 as xt}from"./index-C0R0gBPH.js";var re="vercel.ai.error",De=Symbol.for(re),ne,Oe=class ae extends Error{constructor({name:e,message:r,cause:n}){super(r),this[ne]=!0,this.name=e,this.cause=n}static isInstance(e){return ae.hasMarker(e,re)}static hasMarker(e,r){const n=Symbol.for(r);return e!=null&&typeof e=="object"&&n in e&&typeof e[n]=="boolean"&&e[n]===!0}};ne=De;var Z=Oe;function oe(t){return t==null?"unknown error":typeof t=="string"?t:t instanceof Error?t.message:JSON.stringify(t)}var se="AI_InvalidArgumentError",ie=`vercel.ai.error.${se}`,xe=Symbol.for(ie),ce,ve=class extends Z{constructor({message:t,cause:e,argument:r}){super({name:se,message:t,cause:e}),this[ce]=!0,this.argument=r}static isInstance(t){return Z.hasMarker(t,ie)}};ce=xe;var le="AI_JSONParseError",ue=`vercel.ai.error.${le}`,Le=Symbol.for(ue),fe,$t=class extends Z{constructor({text:t,cause:e}){super({name:le,message:`JSON parsing failed: Text: ${t}. Error message: ${oe(e)}`,cause:e}),this[fe]=!0,this.text=t}static isInstance(t){return Z.hasMarker(t,ue)}};fe=Le;var de="AI_TypeValidationError",pe=`vercel.ai.error.${de}`,Pe=Symbol.for(pe),he,Ve=class Tt extends Z{constructor({value:e,cause:r}){super({name:de,message:`Type validation failed: Value: ${JSON.stringify(e)}. Error message: ${oe(r)}`,cause:r}),this[he]=!0,this.value=e}static isInstance(e){return Z.hasMarker(e,pe)}static wrap({value:e,cause:r}){return Tt.isInstance(r)&&r.value===e?r:new Tt({value:e,cause:r})}};he=Pe;var qt=Ve;let Fe=(t,e=21)=>(r=e)=>{let n="",s=r|0;for(;s--;)n+=t[Math.random()*t.length|0];return n};var K={exports:{}},Kt;function Me(){if(Kt)return K.exports;Kt=1;const t=typeof Buffer<"u",e=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,r=/"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;function n(l,a,c){c==null&&a!==null&&typeof a=="object"&&(c=a,a=void 0),t&&Buffer.isBuffer(l)&&(l=l.toString()),l&&l.charCodeAt(0)===65279&&(l=l.slice(1));const d=JSON.parse(l,a);if(d===null||typeof d!="object")return d;const u=c&&c.protoAction||"error",m=c&&c.constructorAction||"error";if(u==="ignore"&&m==="ignore")return d;if(u!=="ignore"&&m!=="ignore"){if(e.test(l)===!1&&r.test(l)===!1)return d}else if(u!=="ignore"&&m==="ignore"){if(e.test(l)===!1)return d}else if(r.test(l)===!1)return d;return s(d,{protoAction:u,constructorAction:m,safe:c&&c.safe})}function s(l,{protoAction:a="error",constructorAction:c="error",safe:d}={}){let u=[l];for(;u.length;){const m=u;u=[];for(const h of m){if(a!=="ignore"&&Object.prototype.hasOwnProperty.call(h,"__proto__")){if(d===!0)return null;if(a==="error")throw new SyntaxError("Object contains forbidden prototype property");delete h.__proto__}if(c!=="ignore"&&Object.prototype.hasOwnProperty.call(h,"constructor")&&Object.prototype.hasOwnProperty.call(h.constructor,"prototype")){if(d===!0)return null;if(c==="error")throw new SyntaxError("Object contains forbidden prototype property");delete h.constructor}for(const T in h){const y=h[T];y&&typeof y=="object"&&u.push(y)}}}return l}function i(l,a,c){const d=Error.stackTraceLimit;Error.stackTraceLimit=0;try{return n(l,a,c)}finally{Error.stackTraceLimit=d}}function f(l,a){const c=Error.stackTraceLimit;Error.stackTraceLimit=0;try{return n(l,a,{safe:!0})}catch{return null}finally{Error.stackTraceLimit=c}}return K.exports=i,K.exports.default=i,K.exports.parse=i,K.exports.safeParse=f,K.exports.scan=s,K.exports}var je=Me();const Je=Ne(je);var Ue=({prefix:t,size:e=16,alphabet:r="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:n="-"}={})=>{const s=Fe(r,e);if(t==null)return s;if(r.includes(n))throw new ve({argument:"separator",message:`The separator "${n}" must not be part of the alphabet "${r}".`});return i=>`${t}${n}${s(i)}`},ge=Ue(),Rt=Symbol.for("vercel.ai.validator");function Be(t){return{[Rt]:!0,validate:t}}function We(t){return typeof t=="object"&&t!==null&&Rt in t&&t[Rt]===!0&&"validate"in t}function Ye(t){return We(t)?t:$e(t)}function $e(t){return Be(e=>{const r=t.safeParse(e);return r.success?{success:!0,value:r.data}:{success:!1,error:r.error}})}function qe({value:t,schema:e}){const r=Ye(e);try{if(r.validate==null)return{success:!0,value:t};const n=r.validate(t);return n.success?n:{success:!1,error:qt.wrap({value:t,cause:n.error})}}catch(n){return{success:!1,error:qt.wrap({value:t,cause:n})}}}function Ht({text:t,schema:e}){try{const r=Je.parse(t);if(e==null)return{success:!0,value:r,rawValue:r};const n=qe({value:r,schema:e});return n.success?{...n,rawValue:r}:n}catch(r){return{success:!1,error:$t.isInstance(r)?r:new $t({text:t,cause:r})}}}new Set("ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789");var et={code:"0",name:"text",parse:t=>{if(typeof t!="string")throw new Error('"text" parts expect a string value.');return{type:"text",value:t}}},rt={code:"3",name:"error",parse:t=>{if(typeof t!="string")throw new Error('"error" parts expect a string value.');return{type:"error",value:t}}},nt={code:"4",name:"assistant_message",parse:t=>{if(t==null||typeof t!="object"||!("id"in t)||!("role"in t)||!("content"in t)||typeof t.id!="string"||typeof t.role!="string"||t.role!=="assistant"||!Array.isArray(t.content)||!t.content.every(e=>e!=null&&typeof e=="object"&&"type"in e&&e.type==="text"&&"text"in e&&e.text!=null&&typeof e.text=="object"&&"value"in e.text&&typeof e.text.value=="string"))throw new Error('"assistant_message" parts expect an object with an "id", "role", and "content" property.');return{type:"assistant_message",value:t}}},at={code:"5",name:"assistant_control_data",parse:t=>{if(t==null||typeof t!="object"||!("threadId"in t)||!("messageId"in t)||typeof t.threadId!="string"||typeof t.messageId!="string")throw new Error('"assistant_control_data" parts expect an object with a "threadId" and "messageId" property.');return{type:"assistant_control_data",value:{threadId:t.threadId,messageId:t.messageId}}}},ot={code:"6",name:"data_message",parse:t=>{if(t==null||typeof t!="object"||!("role"in t)||!("data"in t)||typeof t.role!="string"||t.role!=="data")throw new Error('"data_message" parts expect an object with a "role" and "data" property.');return{type:"data_message",value:t}}},Ke=[et,rt,nt,at,ot];et.code+"",rt.code+"",nt.code+"",at.code+"",ot.code+"";et.name+"",et.code,rt.name+"",rt.code,nt.name+"",nt.code,at.name+"",at.code,ot.name+"",ot.code;Ke.map(t=>t.code);function He({promptTokens:t,completionTokens:e}){return{promptTokens:t,completionTokens:e,totalTokens:t+e}}function Ge(t){const e=["ROOT"];let r=-1,n=null;function s(a,c,d){switch(a){case'"':{r=c,e.pop(),e.push(d),e.push("INSIDE_STRING");break}case"f":case"t":case"n":{r=c,n=c,e.pop(),e.push(d),e.push("INSIDE_LITERAL");break}case"-":{e.pop(),e.push(d),e.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=c,e.pop(),e.push(d),e.push("INSIDE_NUMBER");break}case"{":{r=c,e.pop(),e.push(d),e.push("INSIDE_OBJECT_START");break}case"[":{r=c,e.pop(),e.push(d),e.push("INSIDE_ARRAY_START");break}}}function i(a,c){switch(a){case",":{e.pop(),e.push("INSIDE_OBJECT_AFTER_COMMA");break}case"}":{r=c,e.pop();break}}}function f(a,c){switch(a){case",":{e.pop(),e.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{r=c,e.pop();break}}}for(let a=0;a<t.length;a++){const c=t[a];switch(e[e.length-1]){case"ROOT":s(c,a,"FINISH");break;case"INSIDE_OBJECT_START":{switch(c){case'"':{e.pop(),e.push("INSIDE_OBJECT_KEY");break}case"}":{r=a,e.pop();break}}break}case"INSIDE_OBJECT_AFTER_COMMA":{switch(c){case'"':{e.pop(),e.push("INSIDE_OBJECT_KEY");break}}break}case"INSIDE_OBJECT_KEY":{switch(c){case'"':{e.pop(),e.push("INSIDE_OBJECT_AFTER_KEY");break}}break}case"INSIDE_OBJECT_AFTER_KEY":{switch(c){case":":{e.pop(),e.push("INSIDE_OBJECT_BEFORE_VALUE");break}}break}case"INSIDE_OBJECT_BEFORE_VALUE":{s(c,a,"INSIDE_OBJECT_AFTER_VALUE");break}case"INSIDE_OBJECT_AFTER_VALUE":{i(c,a);break}case"INSIDE_STRING":{switch(c){case'"':{e.pop(),r=a;break}case"\\":{e.push("INSIDE_STRING_ESCAPE");break}default:r=a}break}case"INSIDE_ARRAY_START":{switch(c){case"]":{r=a,e.pop();break}default:{r=a,s(c,a,"INSIDE_ARRAY_AFTER_VALUE");break}}break}case"INSIDE_ARRAY_AFTER_VALUE":{switch(c){case",":{e.pop(),e.push("INSIDE_ARRAY_AFTER_COMMA");break}case"]":{r=a,e.pop();break}default:{r=a;break}}break}case"INSIDE_ARRAY_AFTER_COMMA":{s(c,a,"INSIDE_ARRAY_AFTER_VALUE");break}case"INSIDE_STRING_ESCAPE":{e.pop(),r=a;break}case"INSIDE_NUMBER":{switch(c){case"0":case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":{r=a;break}case"e":case"E":case"-":case".":break;case",":{e.pop(),e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&f(c,a),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&i(c,a);break}case"}":{e.pop(),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"&&i(c,a);break}case"]":{e.pop(),e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&f(c,a);break}default:{e.pop();break}}break}case"INSIDE_LITERAL":{const u=t.substring(n,a+1);!"false".startsWith(u)&&!"true".startsWith(u)&&!"null".startsWith(u)?(e.pop(),e[e.length-1]==="INSIDE_OBJECT_AFTER_VALUE"?i(c,a):e[e.length-1]==="INSIDE_ARRAY_AFTER_VALUE"&&f(c,a)):r=a;break}}}let l=t.slice(0,r+1);for(let a=e.length-1;a>=0;a--)switch(e[a]){case"INSIDE_STRING":{l+='"';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":{l+="}";break}case"INSIDE_ARRAY_START":case"INSIDE_ARRAY_AFTER_COMMA":case"INSIDE_ARRAY_AFTER_VALUE":{l+="]";break}case"INSIDE_LITERAL":{const d=t.substring(n,t.length);"true".startsWith(d)?l+="true".slice(d.length):"false".startsWith(d)?l+="false".slice(d.length):"null".startsWith(d)&&(l+="null".slice(d.length))}}return l}function ze(t){if(t===void 0)return{value:void 0,state:"undefined-input"};let e=Ht({text:t});return e.success?{value:e.value,state:"successful-parse"}:(e=Ht({text:Ge(t)}),e.success?{value:e.value,state:"repaired-parse"}:{value:void 0,state:"failed-parse"})}var Xe={code:"0",name:"text",parse:t=>{if(typeof t!="string")throw new Error('"text" parts expect a string value.');return{type:"text",value:t}}},Qe={code:"2",name:"data",parse:t=>{if(!Array.isArray(t))throw new Error('"data" parts expect an array value.');return{type:"data",value:t}}},Ze={code:"3",name:"error",parse:t=>{if(typeof t!="string")throw new Error('"error" parts expect a string value.');return{type:"error",value:t}}},tr={code:"8",name:"message_annotations",parse:t=>{if(!Array.isArray(t))throw new Error('"message_annotations" parts expect an array value.');return{type:"message_annotations",value:t}}},er={code:"9",name:"tool_call",parse:t=>{if(t==null||typeof t!="object"||!("toolCallId"in t)||typeof t.toolCallId!="string"||!("toolName"in t)||typeof t.toolName!="string"||!("args"in t)||typeof t.args!="object")throw new Error('"tool_call" parts expect an object with a "toolCallId", "toolName", and "args" property.');return{type:"tool_call",value:t}}},rr={code:"a",name:"tool_result",parse:t=>{if(t==null||typeof t!="object"||!("toolCallId"in t)||typeof t.toolCallId!="string"||!("result"in t))throw new Error('"tool_result" parts expect an object with a "toolCallId" and a "result" property.');return{type:"tool_result",value:t}}},nr={code:"b",name:"tool_call_streaming_start",parse:t=>{if(t==null||typeof t!="object"||!("toolCallId"in t)||typeof t.toolCallId!="string"||!("toolName"in t)||typeof t.toolName!="string")throw new Error('"tool_call_streaming_start" parts expect an object with a "toolCallId" and "toolName" property.');return{type:"tool_call_streaming_start",value:t}}},ar={code:"c",name:"tool_call_delta",parse:t=>{if(t==null||typeof t!="object"||!("toolCallId"in t)||typeof t.toolCallId!="string"||!("argsTextDelta"in t)||typeof t.argsTextDelta!="string")throw new Error('"tool_call_delta" parts expect an object with a "toolCallId" and "argsTextDelta" property.');return{type:"tool_call_delta",value:t}}},or={code:"d",name:"finish_message",parse:t=>{if(t==null||typeof t!="object"||!("finishReason"in t)||typeof t.finishReason!="string")throw new Error('"finish_message" parts expect an object with a "finishReason" property.');const e={finishReason:t.finishReason};return"usage"in t&&t.usage!=null&&typeof t.usage=="object"&&"promptTokens"in t.usage&&"completionTokens"in t.usage&&(e.usage={promptTokens:typeof t.usage.promptTokens=="number"?t.usage.promptTokens:Number.NaN,completionTokens:typeof t.usage.completionTokens=="number"?t.usage.completionTokens:Number.NaN}),{type:"finish_message",value:e}}},sr={code:"e",name:"finish_step",parse:t=>{if(t==null||typeof t!="object"||!("finishReason"in t)||typeof t.finishReason!="string")throw new Error('"finish_step" parts expect an object with a "finishReason" property.');const e={finishReason:t.finishReason,isContinued:!1};return"usage"in t&&t.usage!=null&&typeof t.usage=="object"&&"promptTokens"in t.usage&&"completionTokens"in t.usage&&(e.usage={promptTokens:typeof t.usage.promptTokens=="number"?t.usage.promptTokens:Number.NaN,completionTokens:typeof t.usage.completionTokens=="number"?t.usage.completionTokens:Number.NaN}),"isContinued"in t&&typeof t.isContinued=="boolean"&&(e.isContinued=t.isContinued),{type:"finish_step",value:e}}},ir={code:"f",name:"start_step",parse:t=>{if(t==null||typeof t!="object"||!("messageId"in t)||typeof t.messageId!="string")throw new Error('"start_step" parts expect an object with an "id" property.');return{type:"start_step",value:{messageId:t.messageId}}}},cr={code:"g",name:"reasoning",parse:t=>{if(typeof t!="string")throw new Error('"reasoning" parts expect a string value.');return{type:"reasoning",value:t}}},lr={code:"h",name:"source",parse:t=>{if(t==null||typeof t!="object")throw new Error('"source" parts expect a Source object.');return{type:"source",value:t}}},ur={code:"i",name:"redacted_reasoning",parse:t=>{if(t==null||typeof t!="object"||!("data"in t)||typeof t.data!="string")throw new Error('"redacted_reasoning" parts expect an object with a "data" property.');return{type:"redacted_reasoning",value:{data:t.data}}}},fr={code:"j",name:"reasoning_signature",parse:t=>{if(t==null||typeof t!="object"||!("signature"in t)||typeof t.signature!="string")throw new Error('"reasoning_signature" parts expect an object with a "signature" property.');return{type:"reasoning_signature",value:{signature:t.signature}}}},dr={code:"k",name:"file",parse:t=>{if(t==null||typeof t!="object"||!("data"in t)||typeof t.data!="string"||!("mimeType"in t)||typeof t.mimeType!="string")throw new Error('"file" parts expect an object with a "data" and "mimeType" property.');return{type:"file",value:t}}},vt=[Xe,Qe,Ze,tr,er,rr,nr,ar,or,sr,ir,cr,lr,ur,fr,dr],pr=Object.fromEntries(vt.map(t=>[t.code,t]));Object.fromEntries(vt.map(t=>[t.name,t.code]));var hr=vt.map(t=>t.code),gr=t=>{const e=t.indexOf(":");if(e===-1)throw new Error("Failed to parse stream string. No separator found.");const r=t.slice(0,e);if(!hr.includes(r))throw new Error(`Failed to parse stream string. Invalid code ${r}.`);const n=r,s=t.slice(e+1),i=JSON.parse(s);return pr[n].parse(i)},Er=10;function _r(t,e){const r=new Uint8Array(e);let n=0;for(const s of t)r.set(s,n),n+=s.length;return t.length=0,r}async function mr({stream:t,onTextPart:e,onReasoningPart:r,onReasoningSignaturePart:n,onRedactedReasoningPart:s,onSourcePart:i,onFilePart:f,onDataPart:l,onErrorPart:a,onToolCallStreamingStartPart:c,onToolCallDeltaPart:d,onToolCallPart:u,onToolResultPart:m,onMessageAnnotationsPart:h,onFinishMessagePart:T,onFinishStepPart:y,onStartStepPart:L}){const p=t.getReader(),P=new TextDecoder,C=[];let b=0;for(;;){const{value:E}=await p.read();if(E&&(C.push(E),b+=E.length,E[E.length-1]!==Er))continue;if(C.length===0)break;const o=_r(C,b);b=0;const _=P.decode(o,{stream:!0}).split(` `).filter(g=>g!=="").map(gr);for(const{type:g,value:I}of _)switch(g){case"text":await(e==null?void 0:e(I));break;case"reasoning":await(r==null?void 0:r(I));break;case"reasoning_signature":await(n==null?void 0:n(I));break;case"redacted_reasoning":await(s==null?void 0:s(I));break;case"file":await(f==null?void 0:f(I));break;case"source":await(i==null?void 0:i(I));break;case"data":await(l==null?void 0:l(I));break;case"error":await(a==null?void 0:a(I));break;case"message_annotations":await(h==null?void 0:h(I));break;case"tool_call_streaming_start":await(c==null?void 0:c(I));break;case"tool_call_delta":await(d==null?void 0:d(I));break;case"tool_call":await(u==null?void 0:u(I));break;case"tool_result":await(m==null?void 0:m(I));break;case"finish_message":await(T==null?void 0:T(I));break;case"finish_step":await(y==null?void 0:y(I));break;case"start_step":await(L==null?void 0:L(I));break;default:{const v=g;throw new Error(`Unknown stream part type: ${v}`)}}}}async function Ir({stream:t,update:e,onToolCall:r,onFinish:n,generateId:s=ge,getCurrentDate:i=()=>new Date,lastMessage:f}){var l,a;const c=(f==null?void 0:f.role)==="assistant";let d=c?1+((a=(l=f.toolInvocations)==null?void 0:l.reduce((o,_)=>{var g;return Math.max(o,(g=_.step)!=null?g:0)},0))!=null?a:0):0;const u=c?structuredClone(f):{id:s(),createdAt:i(),role:"assistant",content:"",parts:[]};let m,h,T;function y(o,_){const g=u.parts.find(I=>I.type==="tool-invocation"&&I.toolInvocation.toolCallId===o);g!=null?g.toolInvocation=_:u.parts.push({type:"tool-invocation",toolInvocation:_})}const L=[];let p=c?f==null?void 0:f.annotations:void 0;const P={};let C={completionTokens:NaN,promptTokens:NaN,totalTokens:NaN},b="unknown";function E(){const o=[...L];p!=null&&p.length&&(u.annotations=p);const _={...structuredClone(u),revisionId:s()};e({message:_,data:o,replaceLastMessage:c})}await mr({stream:t,onTextPart(o){m==null?(m={type:"text",text:o},u.parts.push(m)):m.text+=o,u.content+=o,E()},onReasoningPart(o){var _;T==null?(T={type:"text",text:o},h!=null&&h.details.push(T)):T.text+=o,h==null?(h={type:"reasoning",reasoning:o,details:[T]},u.parts.push(h)):h.reasoning+=o,u.reasoning=((_=u.reasoning)!=null?_:"")+o,E()},onReasoningSignaturePart(o){T!=null&&(T.signature=o.signature)},onRedactedReasoningPart(o){h==null&&(h={type:"reasoning",reasoning:"",details:[]},u.parts.push(h)),h.details.push({type:"redacted",data:o.data}),T=void 0,E()},onFilePart(o){u.parts.push({type:"file",mimeType:o.mimeType,data:o.data}),E()},onSourcePart(o){u.parts.push({type:"source",source:o}),E()},onToolCallStreamingStartPart(o){u.toolInvocations==null&&(u.toolInvocations=[]),P[o.toolCallId]={text:"",step:d,toolName:o.toolName,index:u.toolInvocations.length};const _={state:"partial-call",step:d,toolCallId:o.toolCallId,toolName:o.toolName,args:void 0};u.toolInvocations.push(_),y(o.toolCallId,_),E()},onToolCallDeltaPart(o){const _=P[o.toolCallId];_.text+=o.argsTextDelta;const{value:g}=ze(_.text),I={state:"partial-call",step:_.step,toolCallId:o.toolCallId,toolName:_.toolName,args:g};u.toolInvocations[_.index]=I,y(o.toolCallId,I),E()},async onToolCallPart(o){const _={state:"call",step:d,...o};if(P[o.toolCallId]!=null?u.toolInvocations[P[o.toolCallId].index]=_:(u.toolInvocations==null&&(u.toolInvocations=[]),u.toolInvocations.push(_)),y(o.toolCallId,_),E(),r){const g=await r({toolCall:o});if(g!=null){const I={state:"result",step:d,...o,result:g};u.toolInvocations[u.toolInvocations.length-1]=I,y(o.toolCallId,I),E()}}},onToolResultPart(o){const _=u.toolInvocations;if(_==null)throw new Error("tool_result must be preceded by a tool_call");const g=_.findIndex(v=>v.toolCallId===o.toolCallId);if(g===-1)throw new Error("tool_result must be preceded by a tool_call with the same toolCallId");const I={..._[g],state:"result",...o};_[g]=I,y(o.toolCallId,I),E()},onDataPart(o){L.push(...o),E()},onMessageAnnotationsPart(o){p==null?p=[...o]:p.push(...o),E()},onFinishStepPart(o){d+=1,m=o.isContinued?m:void 0,h=void 0,T=void 0},onStartStepPart(o){c||(u.id=o.messageId),u.parts.push({type:"step-start"}),E()},onFinishMessagePart(o){b=o.finishReason,o.usage!=null&&(C=He(o.usage))},onErrorPart(o){throw new Error(o)}}),n==null||n({message:u,finishReason:b,usage:C})}async function yr({stream:t,onTextPart:e}){const r=t.pipeThrough(new TextDecoderStream).getReader();for(;;){const{done:n,value:s}=await r.read();if(n)break;await e(s)}}async function wr({stream:t,update:e,onFinish:r,getCurrentDate:n=()=>new Date,generateId:s=ge}){const i={type:"text",text:""},f={id:s(),createdAt:n(),role:"assistant",content:"",parts:[i]};await yr({stream:t,onTextPart:l=>{f.content+=l,i.text+=l,e({message:{...f},data:[],replaceLastMessage:!1})}}),r==null||r(f,{usage:{completionTokens:NaN,promptTokens:NaN,totalTokens:NaN},finishReason:"unknown"})}var Tr=()=>fetch;async function rn({api:t,body:e,streamProtocol:r="data",credentials:n,headers:s,abortController:i,restoreMessagesOnFailure:f,onResponse:l,onUpdate:a,onFinish:c,onToolCall:d,generateId:u,fetch:m=Tr(),lastMessage:h,requestType:T="generate"}){var y,L,p;const C=await(T==="resume"?m(`${t}?chatId=${e.id}`,{method:"GET",headers:{"Content-Type":"application/json",...s},signal:(y=i==null?void 0:i())==null?void 0:y.signal,credentials:n}):m(t,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",...s},signal:(L=i==null?void 0:i())==null?void 0:L.signal,credentials:n})).catch(b=>{throw f(),b});if(l)try{await l(C)}catch(b){throw b}if(!C.ok)throw f(),new Error((p=await C.text())!=null?p:"Failed to fetch the chat response.");if(!C.body)throw new Error("The response body is empty.");switch(r){case"text":{await wr({stream:C.body,update:a,onFinish:c,generateId:u});return}case"data":{await Ir({stream:C.body,update:a,lastMessage:h,onToolCall:d,onFinish({message:b,finishReason:E,usage:o}){c&&b!=null&&c(b,{usage:o,finishReason:E})},generateId:u});return}default:{const b=r;throw new Error(`Unknown stream protocol: ${b}`)}}}function Gt(t){return t==null?void 0:t.reduce((e,r)=>{var n;return Math.max(e,(n=r.step)!=null?n:0)},0)}function Rr(t){var e;return(e=t.parts)!=null?e:[...t.toolInvocations?t.toolInvocations.map(r=>({type:"tool-invocation",toolInvocation:r})):[],...t.reasoning?[{type:"reasoning",reasoning:t.reasoning,details:[{type:"text",text:t.reasoning}]}]:[],...t.content?[{type:"text",text:t.content}]:[]]}function nn(t){return t.map(e=>({...e,parts:Rr(e)}))}function zt(t,e){if(t===e)return!0;if(t==null||e==null)return!1;if(typeof t!="object"&&typeof e!="object")return t===e;if(t.constructor!==e.constructor)return!1;if(t instanceof Date&&e instanceof Date)return t.getTime()===e.getTime();if(Array.isArray(t)){if(t.length!==e.length)return!1;for(let s=0;s<t.length;s++)if(!zt(t[s],e[s]))return!1;return!0}const r=Object.keys(t),n=Object.keys(e);if(r.length!==n.length)return!1;for(const s of r)if(!n.includes(s)||!zt(t[s],e[s]))return!1;return!0}async function an(t){if(!t)return[];if(globalThis.FileList&&t instanceof globalThis.FileList)return Promise.all(Array.from(t).map(async e=>{const{name:r,type:n}=e,s=await new Promise((i,f)=>{const l=new FileReader;l.onload=a=>{var c;i((c=a.target)==null?void 0:c.result)},l.onerror=a=>f(a),l.readAsDataURL(e)});return{name:r,contentType:n,url:s}}));if(Array.isArray(t))return t;throw new Error("Invalid attachments type")}function on({originalMaxToolInvocationStep:t,originalMessageCount:e,maxSteps:r,messages:n}){var s;const i=n[n.length-1];return r>1&&i!=null&&(n.length>e||Gt(i.toolInvocations)!==t)&&Sr(i)&&((s=Gt(i.toolInvocations))!=null?s:0)<r}function Sr(t){if(t.role!=="assistant")return!1;const e=t.parts.reduce((n,s,i)=>s.type==="step-start"?i:n,-1),r=t.parts.slice(e+1).filter(n=>n.type==="tool-invocation");return r.length>0&&r.every(n=>"result"in n.toolInvocation)}function sn({messages:t,toolCallId:e,toolResult:r}){var n;const s=t[t.length-1],i=s.parts.find(l=>l.type==="tool-invocation"&&l.toolInvocation.toolCallId===e);if(i==null)return;const f={...i.toolInvocation,state:"result",result:r};i.toolInvocation=f,s.toolInvocations=(n=s.toolInvocations)==null?void 0:n.map(l=>l.toolCallId===e?f:l)}var br=ke();const Ee=0,_e=1,me=2,Xt=3;var Qt=Object.prototype.hasOwnProperty;function St(t,e){var r,n;if(t===e)return!0;if(t&&e&&(r=t.constructor)===e.constructor){if(r===Date)return t.getTime()===e.getTime();if(r===RegExp)return t.toString()===e.toString();if(r===Array){if((n=t.length)===e.length)for(;n--&&St(t[n],e[n]););return n===-1}if(!r||typeof t=="object"){n=0;for(r in t)if(Qt.call(t,r)&&++n&&!Qt.call(e,r)||!(r in e)||!St(t[r],e[r]))return!1;return Object.keys(e).length===n}}return t!==t&&e!==e}const B=new WeakMap,W=()=>{},x=W(),bt=Object,w=t=>t===x,j=t=>typeof t=="function",Y=(t,e)=>({...t,...e}),Ie=t=>j(t.then),Et={},ft={},Lt="undefined",it=typeof window!=Lt,At=typeof document!=Lt,Ar=it&&"Deno"in window,Cr=()=>it&&typeof window.requestAnimationFrame!=Lt,ye=(t,e)=>{const r=B.get(t);return[()=>!w(e)&&t.get(e)||Et,n=>{if(!w(e)){const s=t.get(e);e in ft||(ft[e]=s),r[5](e,Y(s,n),s||Et)}},r[6],()=>!w(e)&&e in ft?ft[e]:!w(e)&&t.get(e)||Et]};let Ct=!0;const Nr=()=>Ct,[Nt,kt]=it&&window.addEventListener?[window.addEventListener.bind(window),window.removeEventListener.bind(window)]:[W,W],kr=()=>{const t=At&&document.visibilityState;return w(t)||t!=="hidden"},Dr=t=>(At&&document.addEventListener("visibilitychange",t),Nt("focus",t),()=>{At&&document.removeEventListener("visibilitychange",t),kt("focus",t)}),Or=t=>{const e=()=>{Ct=!0,t()},r=()=>{Ct=!1};return Nt("online",e),Nt("offline",r),()=>{kt("online",e),kt("offline",r)}},xr={isOnline:Nr,isVisible:kr},vr={initFocus:Dr,initReconnect:Or},Zt=!xt.useId,st=!it||Ar,Lr=t=>Cr()?window.requestAnimationFrame(t):setTimeout(t,1),_t=st?D.useEffect:D.useLayoutEffect,mt=typeof navigator<"u"&&navigator.connection,te=!st&&mt&&(["slow-2g","2g"].includes(mt.effectiveType)||mt.saveData),dt=new WeakMap,It=(t,e)=>bt.prototype.toString.call(t)===`[object ${e}]`;let Pr=0;const Dt=t=>{const e=typeof t,r=It(t,"Date"),n=It(t,"RegExp"),s=It(t,"Object");let i,f;if(bt(t)===t&&!r&&!n){if(i=dt.get(t),i)return i;if(i=++Pr+"~",dt.set(t,i),Array.isArray(t)){for(i="@",f=0;f<t.length;f++)i+=Dt(t[f])+",";dt.set(t,i)}if(s){i="#";const l=bt.keys(t).sort();for(;!w(f=l.pop());)w(t[f])||(i+=f+":"+Dt(t[f])+",");dt.set(t,i)}}else i=r?t.toJSON():e=="symbol"?t.toString():e=="string"?JSON.stringify(t):""+t;return i},Pt=t=>{if(j(t))try{t=t()}catch{t=""}const e=t;return t=typeof t=="string"?t:(Array.isArray(t)?t.length:t)?Dt(t):"",[t,e]};let Vr=0;const Ot=()=>++Vr;async function we(...t){const[e,r,n,s]=t,i=Y({populateCache:!0,throwOnError:!0},typeof s=="boolean"?{revalidate:s}:s||{});let f=i.populateCache;const l=i.rollbackOnError;let a=i.optimisticData;const c=m=>typeof l=="function"?l(m):l!==!1,d=i.throwOnError;if(j(r)){const m=r,h=[],T=e.keys();for(const y of T)!/^\$(inf|sub)\$/.test(y)&&m(e.get(y)._k)&&h.push(y);return Promise.all(h.map(u))}return u(r);async function u(m){const[h]=Pt(m);if(!h)return;const[T,y]=ye(e,h),[L,p,P,C]=B.get(e),b=()=>{const F=L[h];return(j(i.revalidate)?i.revalidate(T().data,m):i.revalidate!==!1)&&(delete P[h],delete C[h],F&&F[0])?F[0](me).then(()=>T().data):T().data};if(t.length<3)return b();let E=n,o;const _=Ot();p[h]=[_,0];const g=!w(a),I=T(),v=I.data,H=I._c,$=w(H)?v:H;if(g&&(a=j(a)?a($,v):a,y({data:a,_c:$})),j(E))try{E=E($)}catch(F){o=F}if(E&&Ie(E))if(E=await E.catch(F=>{o=F}),_!==p[h][0]){if(o)throw o;return E}else o&&g&&c(o)&&(f=!0,y({data:$,_c:x}));if(f&&!o)if(j(f)){const F=f(E,$);y({data:F,error:x,_c:x})}else y({data:E,error:x,_c:x});if(p[h][1]=Ot(),Promise.resolve(b()).then(()=>{y({_c:x})}),o){if(d)throw o;return}return E}}const ee=(t,e)=>{for(const r in t)t[r][0]&&t[r][0](e)},Fr=(t,e)=>{if(!B.has(t)){const r=Y(vr,e),n=Object.create(null),s=we.bind(x,t);let i=W;const f=Object.create(null),l=(d,u)=>{const m=f[d]||[];return f[d]=m,m.push(u),()=>m.splice(m.indexOf(u),1)},a=(d,u,m)=>{t.set(d,u);const h=f[d];if(h)for(const T of h)T(u,m)},c=()=>{if(!B.has(t)&&(B.set(t,[n,Object.create(null),Object.create(null),Object.create(null),s,a,l]),!st)){const d=r.initFocus(setTimeout.bind(x,ee.bind(x,n,Ee))),u=r.initReconnect(setTimeout.bind(x,ee.bind(x,n,_e)));i=()=>{d&&d(),u&&u(),B.delete(t)}}};return c(),[t,s,c,i]}return[t,B.get(t)[4]]},Mr=(t,e,r,n,s)=>{const i=r.errorRetryCount,f=s.retryCount,l=~~((Math.random()+.5)*(1<<(f<8?f:8)))*r.errorRetryInterval;!w(i)&&f>i||setTimeout(n,l,s)},jr=St,[Te,Jr]=Fr(new Map),Ur=Y({onLoadingSlow:W,onSuccess:W,onError:W,onErrorRetry:Mr,onDiscarded:W,revalidateOnFocus:!0,revalidateOnReconnect:!0,revalidateIfStale:!0,shouldRetryOnError:!0,errorRetryInterval:te?1e4:5e3,focusThrottleInterval:5*1e3,dedupingInterval:2*1e3,loadingTimeout:te?5e3:3e3,compare:jr,isPaused:()=>!1,cache:Te,mutate:Jr,fallback:{}},xr),Br=(t,e)=>{const r=Y(t,e);if(e){const{use:n,fallback:s}=t,{use:i,fallback:f}=e;n&&i&&(r.use=n.concat(i)),s&&f&&(r.fallback=Y(s,f))}return r},Wr=D.createContext({}),Yr="$inf$",Re=it&&window.__SWR_DEVTOOLS_USE__,$r=Re?window.__SWR_DEVTOOLS_USE__:[],qr=()=>{Re&&(window.__SWR_DEVTOOLS_REACT__=xt)},Kr=t=>j(t[1])?[t[0],t[1],t[2]||{}]:[t[0],null,(t[1]===null?t[2]:t[1])||{}],Hr=()=>Y(Ur,D.useContext(Wr)),Gr=t=>(e,r,n)=>t(e,r&&((...i)=>{const[f]=Pt(e),[,,,l]=B.get(Te);if(f.startsWith(Yr))return r(...i);const a=l[f];return w(a)?r(...i):(delete l[f],a)}),n),zr=$r.concat(Gr),Xr=t=>function(...r){const n=Hr(),[s,i,f]=Kr(r),l=Br(n,f);let a=t;const{use:c}=l,d=(c||[]).concat(zr);for(let u=d.length;u--;)a=d[u](a);return a(s,i||l.fetcher||null,l)},Qr=(t,e,r)=>{const n=e[t]||(e[t]=[]);return n.push(r),()=>{const s=n.indexOf(r);s>=0&&(n[s]=n[n.length-1],n.pop())}};qr();const yt=xt.use||(t=>{switch(t.status){case"pending":throw t;case"fulfilled":return t.value;case"rejected":throw t.reason;default:throw t.status="pending",t.then(e=>{t.status="fulfilled",t.value=e},e=>{t.status="rejected",t.reason=e}),t}}),wt={dedupe:!0},Zr=(t,e,r)=>{const{cache:n,compare:s,suspense:i,fallbackData:f,revalidateOnMount:l,revalidateIfStale:a,refreshInterval:c,refreshWhenHidden:d,refreshWhenOffline:u,keepPreviousData:m}=r,[h,T,y,L]=B.get(n),[p,P]=Pt(t),C=D.useRef(!1),b=D.useRef(!1),E=D.useRef(p),o=D.useRef(e),_=D.useRef(r),g=()=>_.current,I=()=>g().isVisible()&&g().isOnline(),[v,H,$,F]=ye(n,p),G=D.useRef({}).current,ct=w(f)?w(r.fallback)?x:r.fallback[p]:f,Vt=(S,R)=>{for(const k in G){const A=k;if(A==="data"){if(!s(S[A],R[A])&&(!w(S[A])||!s(ut,R[A])))return!1}else if(R[A]!==S[A])return!1}return!0},Ft=D.useMemo(()=>{const S=!p||!e?!1:w(l)?g().isPaused()||i?!1:a!==!1:l,R=O=>{const J=Y(O);return delete J._k,S?{isValidating:!0,isLoading:!0,...J}:J},k=v(),A=F(),M=R(k),Q=k===A?M:R(A);let N=M;return[()=>{const O=R(v());return Vt(O,N)?(N.data=O.data,N.isLoading=O.isLoading,N.isValidating=O.isValidating,N.error=O.error,N):(N=O,O)},()=>Q]},[n,p]),z=br.useSyncExternalStore(D.useCallback(S=>$(p,(R,k)=>{Vt(k,R)||S()}),[n,p]),Ft[0],Ft[1]),Mt=!C.current,Se=h[p]&&h[p].length>0,X=z.data,q=w(X)?ct&&Ie(ct)?yt(ct):ct:X,lt=z.error,pt=D.useRef(q),ut=m?w(X)?w(pt.current)?q:pt.current:X:q,jt=Se&&!w(lt)?!1:Mt&&!w(l)?l:g().isPaused()?!1:i?w(q)?!1:a:w(q)||a,Jt=!!(p&&e&&Mt&&jt),be=w(z.isValidating)?Jt:z.isValidating,Ae=w(z.isLoading)?Jt:z.isLoading,tt=D.useCallback(async S=>{const R=o.current;if(!p||!R||b.current||g().isPaused())return!1;let k,A,M=!0;const Q=S||{},N=!y[p]||!Q.dedupe,O=()=>Zt?!b.current&&p===E.current&&C.current:p===E.current,J={isValidating:!1,isLoading:!1},Bt=()=>{H(J)},Wt=()=>{const V=y[p];V&&V[1]===A&&delete y[p]},Yt={isValidating:!0};w(v().data)&&(Yt.isLoading=!0);try{if(N&&(H(Yt),r.loadingTimeout&&w(v().data)&&setTimeout(()=>{M&&O()&&g().onLoadingSlow(p,r)},r.loadingTimeout),y[p]=[R(P),Ot()]),[k,A]=y[p],k=await k,N&&setTimeout(Wt,r.dedupingInterval),!y[p]||y[p][1]!==A)return N&&O()&&g().onDiscarded(p),!1;J.error=x;const V=T[p];if(!w(V)&&(A<=V[0]||A<=V[1]||V[1]===0))return Bt(),N&&O()&&g().onDiscarded(p),!1;const U=v().data;J.data=s(U,k)?U:k,N&&O()&&g().onSuccess(k,p,r)}catch(V){Wt();const U=g(),{shouldRetryOnError:ht}=U;U.isPaused()||(J.error=V,N&&O()&&(U.onError(V,p,U),(ht===!0||j(ht)&&ht(V))&&(!g().revalidateOnFocus||!g().revalidateOnReconnect||I())&&U.onErrorRetry(V,p,U,Ce=>{const gt=h[p];gt&&gt[0]&&gt[0](Xt,Ce)},{retryCount:(Q.retryCount||0)+1,dedupe:!0})))}return M=!1,Bt(),!0},[p,n]),Ut=D.useCallback((...S)=>we(n,E.current,...S),[]);if(_t(()=>{o.current=e,_.current=r,w(X)||(pt.current=X)}),_t(()=>{if(!p)return;const S=tt.bind(x,wt);let R=0;g().revalidateOnFocus&&(R=Date.now()+g().focusThrottleInterval);const A=Qr(p,h,(M,Q={})=>{if(M==Ee){const N=Date.now();g().revalidateOnFocus&&N>R&&I()&&(R=N+g().focusThrottleInterval,S())}else if(M==_e)g().revalidateOnReconnect&&I()&&S();else{if(M==me)return tt();if(M==Xt)return tt(Q)}});return b.current=!1,E.current=p,C.current=!0,H({_k:P}),jt&&(w(q)||st?S():Lr(S)),()=>{b.current=!0,A()}},[p]),_t(()=>{let S;function R(){const A=j(c)?c(v().data):c;A&&S!==-1&&(S=setTimeout(k,A))}function k(){!v().error&&(d||g().isVisible())&&(u||g().isOnline())?tt(wt).then(R):R()}return R(),()=>{S&&(clearTimeout(S),S=-1)}},[c,d,u,p]),D.useDebugValue(ut),i&&w(q)&&p){if(!Zt&&st)throw new Error("Fallback data is required when using Suspense in SSR.");o.current=e,_.current=r,b.current=!1;const S=L[p];if(!w(S)){const R=Ut(S);yt(R)}if(w(lt)){const R=tt(wt);w(ut)||(R.status="fulfilled",R.value=!0),yt(R)}else throw lt}return{mutate:Ut,get data(){return G.data=!0,ut},get error(){return G.error=!0,lt},get isValidating(){return G.isValidating=!0,be},get isLoading(){return G.isLoading=!0,Ae}}},cn=Xr(Zr);export{Rr as a,sn as b,rn as c,zt as d,Gt as e,nn as f,ge as g,Sr as i,an as p,on as s,cn as u};