@cusedev/core
Version:
Core library for implementing computer usage capabilities for AI agents
7 lines • 143 kB
JavaScript
var ZX=Object.create;var{getPrototypeOf:hX,defineProperty:R$,getOwnPropertyNames:mX}=Object;var uX=Object.prototype.hasOwnProperty;var pX=($,X,Q)=>{Q=$!=null?ZX(hX($)):{};let Y=X||!$||!$.__esModule?R$(Q,"default",{value:$,enumerable:!0}):Q;for(let G of mX($))if(!uX.call(Y,G))R$(Y,G,{get:()=>$[G],enumerable:!0});return Y};var cX=($,X)=>()=>(X||$((X={exports:{}}).exports,X),X.exports);var dX=($,X)=>{for(var Q in X)R$($,Q,{get:X[Q],enumerable:!0,configurable:!0,set:(Y)=>X[Q]=()=>Y})};var j4=cX((v7,K0)=>{var g8=typeof Buffer!=="undefined",z4=/"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/,U4=/"(?: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 L4($,X,Q){if(Q==null){if(X!==null&&typeof X==="object")Q=X,X=void 0}if(g8&&Buffer.isBuffer($))$=$.toString();if($&&$.charCodeAt(0)===65279)$=$.slice(1);let Y=JSON.parse($,X);if(Y===null||typeof Y!=="object")return Y;let G=Q&&Q.protoAction||"error",J=Q&&Q.constructorAction||"error";if(G==="ignore"&&J==="ignore")return Y;if(G!=="ignore"&&J!=="ignore"){if(z4.test($)===!1&&U4.test($)===!1)return Y}else if(G!=="ignore"&&J==="ignore"){if(z4.test($)===!1)return Y}else if(U4.test($)===!1)return Y;return K4(Y,{protoAction:G,constructorAction:J,safe:Q&&Q.safe})}function K4($,{protoAction:X="error",constructorAction:Q="error",safe:Y}={}){let G=[$];while(G.length){let J=G;G=[];for(let W of J){if(X!=="ignore"&&Object.prototype.hasOwnProperty.call(W,"__proto__")){if(Y===!0)return null;else if(X==="error")throw new SyntaxError("Object contains forbidden prototype property");delete W.__proto__}if(Q!=="ignore"&&Object.prototype.hasOwnProperty.call(W,"constructor")&&Object.prototype.hasOwnProperty.call(W.constructor,"prototype")){if(Y===!0)return null;else if(Q==="error")throw new SyntaxError("Object contains forbidden prototype property");delete W.constructor}for(let H in W){let q=W[H];if(q&&typeof q==="object")G.push(q)}}}return $}function x$($,X,Q){let Y=Error.stackTraceLimit;Error.stackTraceLimit=0;try{return L4($,X,Q)}finally{Error.stackTraceLimit=Y}}function y8($,X){let Q=Error.stackTraceLimit;Error.stackTraceLimit=0;try{return L4($,X,{safe:!0})}catch(Y){return null}finally{Error.stackTraceLimit=Q}}K0.exports=x$;K0.exports.default=x$;K0.exports.parse=x$;K0.exports.safeParse=y8;K0.exports.scan=K4});var iX=/\{[^{}]+\}/g,w$=({allowReserved:$,name:X,value:Q})=>{if(Q==null)return"";if(typeof Q=="object")throw new Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${X}=${$?Q:encodeURIComponent(Q)}`},lX=($)=>{switch($){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},nX=($)=>{switch($){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},rX=($)=>{switch($){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},G1=({allowReserved:$,explode:X,name:Q,style:Y,value:G})=>{if(!X){let H=($?G:G.map((q)=>encodeURIComponent(q))).join(nX(Y));switch(Y){case"label":return`.${H}`;case"matrix":return`;${Q}=${H}`;case"simple":return H;default:return`${Q}=${H}`}}let J=lX(Y),W=G.map((H)=>Y==="label"||Y==="simple"?$?H:encodeURIComponent(H):w$({allowReserved:$,name:Q,value:H})).join(J);return Y==="label"||Y==="matrix"?J+W:W},J1=({allowReserved:$,explode:X,name:Q,style:Y,value:G})=>{if(G instanceof Date)return`${Q}=${G.toISOString()}`;if(Y!=="deepObject"&&!X){let H=[];Object.entries(G).forEach(([D,z])=>{H=[...H,D,$?z:encodeURIComponent(z)]});let q=H.join(",");switch(Y){case"form":return`${Q}=${q}`;case"label":return`.${q}`;case"matrix":return`;${Q}=${q}`;default:return q}}let J=rX(Y),W=Object.entries(G).map(([H,q])=>w$({allowReserved:$,name:Y==="deepObject"?`${Q}[${H}]`:H,value:q})).join(J);return Y==="label"||Y==="matrix"?J+W:W},oX=({path:$,url:X})=>{let Q=X,Y=X.match(iX);if(Y)for(let G of Y){let J=!1,W=G.substring(1,G.length-1),H="simple";W.endsWith("*")&&(J=!0,W=W.substring(0,W.length-1)),W.startsWith(".")?(W=W.substring(1),H="label"):W.startsWith(";")&&(W=W.substring(1),H="matrix");let q=$[W];if(q==null)continue;if(Array.isArray(q)){Q=Q.replace(G,G1({explode:J,name:W,style:H,value:q}));continue}if(typeof q=="object"){Q=Q.replace(G,J1({explode:J,name:W,style:H,value:q}));continue}if(H==="matrix"){Q=Q.replace(G,`;${w$({name:W,value:q})}`);continue}let D=encodeURIComponent(H==="label"?`.${q}`:q);Q=Q.replace(G,D)}return Q},W1=({allowReserved:$,array:X,object:Q}={})=>(Y)=>{let G=[];if(Y&&typeof Y=="object")for(let J in Y){let W=Y[J];if(W!=null){if(Array.isArray(W)){G=[...G,G1({allowReserved:$,explode:!0,name:J,style:"form",value:W,...X})];continue}if(typeof W=="object"){G=[...G,J1({allowReserved:$,explode:!0,name:J,style:"deepObject",value:W,...Q})];continue}G=[...G,w$({allowReserved:$,name:J,value:W})]}}return G.join("&")},aX=($)=>{if(!$)return"stream";let X=$.split(";")[0]?.trim();if(X){if(X.startsWith("application/json")||X.endsWith("+json"))return"json";if(X==="multipart/form-data")return"formData";if(["application/","audio/","image/","video/"].some((Q)=>X.startsWith(Q)))return"blob";if(X.startsWith("text/"))return"text"}},tX=async($,X)=>{let Q=typeof X=="function"?await X($):X;if(Q)return $.scheme==="bearer"?`Bearer ${Q}`:$.scheme==="basic"?`Basic ${btoa(Q)}`:Q},sX=async({security:$,...X})=>{for(let Q of $){let Y=await tX(Q,X.auth);if(!Y)continue;let G=Q.name??"Authorization";switch(Q.in){case"query":X.query||(X.query={}),X.query[G]=Y;break;case"header":default:X.headers.set(G,Y);break}return}},Q1=($)=>eX({baseUrl:$.baseUrl??"",path:$.path,query:$.query,querySerializer:typeof $.querySerializer=="function"?$.querySerializer:W1($.querySerializer),url:$.url}),eX=({baseUrl:$,path:X,query:Q,querySerializer:Y,url:G})=>{let J=G.startsWith("/")?G:`/${G}`,W=$+J;X&&(W=oX({path:X,url:W}));let H=Q?Y(Q):"";return H.startsWith("?")&&(H=H.substring(1)),H&&(W+=`?${H}`),W},Y1=($,X)=>{let Q={...$,...X};return Q.baseUrl?.endsWith("/")&&(Q.baseUrl=Q.baseUrl.substring(0,Q.baseUrl.length-1)),Q.headers=q1($.headers,X.headers),Q},q1=(...$)=>{let X=new Headers;for(let Q of $){if(!Q||typeof Q!="object")continue;let Y=Q instanceof Headers?Q.entries():Object.entries(Q);for(let[G,J]of Y)if(J===null)X.delete(G);else if(Array.isArray(J))for(let W of J)X.append(G,W);else J!==void 0&&X.set(G,typeof J=="object"?JSON.stringify(J):J)}return X},f$=class{_fns;constructor(){this._fns=[]}clear(){this._fns=[]}exists($){return this._fns.indexOf($)!==-1}eject($){let X=this._fns.indexOf($);X!==-1&&(this._fns=[...this._fns.slice(0,X),...this._fns.slice(X+1)])}use($){this._fns=[...this._fns,$]}},$8=()=>({error:new f$,request:new f$,response:new f$});var X8={bodySerializer:($)=>JSON.stringify($)};var Q8=W1({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),Y8={"Content-Type":"application/json"},S$=($={})=>({...X8,baseUrl:"",headers:Y8,parseAs:"auto",querySerializer:Q8,...$}),H1=($={})=>{let X=Y1(S$(),$),Q=()=>({...X}),Y=(W)=>(X=Y1(X,W),Q()),G=$8(),J=async(W)=>{let H={...X,...W,fetch:W.fetch??X.fetch??globalThis.fetch,headers:q1(X.headers,W.headers)};H.security&&await sX({...H,security:H.security}),H.body&&H.bodySerializer&&(H.body=H.bodySerializer(H.body)),H.body||H.headers.delete("Content-Type");let q=Q1(H),D={redirect:"follow",...H},z=new Request(q,D);for(let E of G.request._fns)z=await E(z,H);let N=H.fetch,F=await N(z);for(let E of G.response._fns)F=await E(F,z,H);let x={request:z,response:F};if(F.ok){if(F.status===204||F.headers.get("Content-Length")==="0")return{data:{},...x};let E=(H.parseAs==="auto"?aX(F.headers.get("Content-Type")):H.parseAs)??"json";if(E==="stream")return{data:F.body,...x};let C=await F[E]();return E==="json"&&(H.responseValidator&&await H.responseValidator(C),H.responseTransformer&&(C=await H.responseTransformer(C))),{data:C,...x}}let R=await F.text();try{R=JSON.parse(R)}catch{}let j=R;for(let E of G.error._fns)j=await E(R,F,z,H);if(j=j||{},H.throwOnError)throw j;return{error:j,...x}};return{buildUrl:Q1,connect:(W)=>J({...W,method:"CONNECT"}),delete:(W)=>J({...W,method:"DELETE"}),get:(W)=>J({...W,method:"GET"}),getConfig:Q,head:(W)=>J({...W,method:"HEAD"}),interceptors:G,options:(W)=>J({...W,method:"OPTIONS"}),patch:(W)=>J({...W,method:"PATCH"}),post:(W)=>J({...W,method:"POST"}),put:(W)=>J({...W,method:"PUT"}),request:J,setConfig:Y,trace:(W)=>J({...W,method:"TRACE"})}};var P=H1(S$()),w1=($)=>{return($?.client??P).post({...$,url:"/api/mouse/move"})},D1=($)=>{return($?.client??P).post({...$,url:"/api/mouse/left-click"})},B1=($)=>{return($?.client??P).post({...$,url:"/api/mouse/right-click"})},O1=($)=>{return($?.client??P).post({...$,url:"/api/mouse/middle-click"})},z1=($)=>{return($?.client??P).post({...$,url:"/api/mouse/double-click"})},U1=($)=>{return($?.client??P).post({...$,url:"/api/mouse/drag"})},L1=($)=>{return($?.client??P).get({...$,url:"/api/mouse/position"})},K1=($)=>{return($?.client??P).post({...$,url:"/api/mouse/scroll"})},j1=($)=>{return($?.client??P).post({...$,url:"/api/keyboard/key"})},A1=($)=>{return($?.client??P).post({...$,url:"/api/keyboard/type"})};var N1=($)=>{return($?.client??P).get({...$,url:"/api/display/screenshot"})};var _1=($)=>{return($?.client??P).post({...$,url:"/api/bash/command"})},V1=($)=>{return($?.client??P).get({...$,url:"/api/bash/process/{pid}/output"})},E1=($)=>{return($?.client??P).delete({...$,url:"/api/bash/process/{pid}"})},M1=($)=>{return($?.client??P).post({...$,url:"/api/bash/restart"})},F1=($)=>{return($?.client??P).get({...$,url:"/api/bash/processes/managed"})},R1=($)=>{return($?.client??P).post({...$,url:"/api/editor/view"})},f1=($)=>{return($?.client??P).post({...$,url:"/api/editor/create"})},S1=($)=>{return($?.client??P).post({...$,url:"/api/editor/str-replace"})},b1=($)=>{return($?.client??P).post({...$,url:"/api/editor/insert"})},I1=($)=>{return($?.client??P).post({...$,url:"/api/editor/undo-edit"})},C1=($)=>{return($?.client??P).post({...$,url:"/api/keychain/set-item"})},P1=($)=>{return($?.client??P).post({...$,url:"/api/keychain/delete-item"})},T1=($)=>{return($?.client??P).get({...$,url:"/api/keychain/list-services"})},k1=($)=>{return($?.client??P).post({...$,url:"/api/keychain/authenticate"})};class b${config;constructor($){this.config=$}async getPosition(){let $=await L1({query:{display_num:this.config.displayNum}});if(!$.data)throw new Error("Failed to get cursor position");return $.data}async move({x:$,y:X}){await w1({body:{x:$,y:X,display_num:this.config.displayNum}})}async leftClick(){await D1({body:{display_num:this.config.displayNum}})}async rightClick(){await B1({body:{display_num:this.config.displayNum}})}async middleClick(){await O1({body:{display_num:this.config.displayNum}})}async doubleClick(){await z1({body:{display_num:this.config.displayNum}})}async leftClickDrag({x:$,y:X}){await U1({body:{x:$,y:X,display_num:this.config.displayNum}})}async scroll({clicks:$}){await K1({body:{clicks:$,display_num:this.config.displayNum}})}}class I${config;constructor($){this.config=$}async pressKey({key:$}){await j1({body:{key:$,display_num:this.config.displayNum}})}async type({text:$}){await A1({body:{text:$,display_num:this.config.displayNum}})}}class C${config;constructor($){this.config=$}async getScreenshot(){let $=await N1({query:{display_num:this.config.displayNum}});if(!$.data)throw new Error("Failed to capture screenshot");return $.data}}class P${config;constructor($){this.config=$}async execute({command:$}){let X=await _1({body:{command:$}});if(!X.data)throw new Error("Failed to execute command");let Q=X.data.status==="background"?"background":"completed";return{...X.data,status:Q}}async getProcessOutput({pid:$}){let X=await V1({path:{pid:$}});if(!X.data)throw new Error("Failed to get process output");let Q=X.data.status==="background"?"background":"completed";return{...X.data,status:Q}}async terminateProcess({pid:$}){await E1({path:{pid:$}})}async listManagedProcesses(){let $=await F1();if(!$.data)throw new Error("Failed to list managed processes");return $.data}async restart(){await M1({body:{}})}}class T${config;constructor($){this.config=$}async viewFile({path:$,viewRange:X}){let Q=await R1({body:{path:$,view_range:X??null}});if(!Q.data)throw new Error("Failed to view file");return Q.data}async createFile({path:$,content:X}){await f1({body:{path:$,file_text:X??null}})}async replaceString({path:$,oldStr:X,newStr:Q}){await S1({body:{path:$,old_str:X,new_str:Q}})}async insertText({path:$,line:X,text:Q}){await b1({body:{path:$,insert_line:X,text:Q}})}async undoLastEdit({path:$}){await I1({body:{path:$}})}}class k${config;constructor($){this.config=$}async setItem({service:$,item:X}){await C1({body:{service:$,item:X}})}async deleteItem({service:$}){await P1({body:{service:$}})}async listServices(){let $=await T1();if(!$.data)throw new Error("Failed to list keychain services");return $.data}async authenticate({service:$,authElements:X}){let Q=await k1({body:{service:$,authElements:X}});if(Q.data===void 0)throw new Error("Failed to authenticate service");return Q.data}}function x1($){if(!$.displayNum||$.displayNum<0)throw new Error("Invalid display number");return P.setConfig({baseUrl:$.baseUrl}),{mouse:new b$($),keyboard:new I$($),display:new C$($),bash:new P$($),editor:new T$($),keychain:new k$($)}}var G8={number:1,width:1024,height:768};class v1{apps;system;config;constructor({apps:$,config:X}){this.apps=$??{},this.config={baseUrl:X.baseUrl,display:X.display??G8},this.system=x1({displayNum:this.config.display.number,baseUrl:this.config.baseUrl})}async boot(){await Promise.all(Object.values(this.apps).map(($)=>$._init(this))),await Promise.all(Object.values(this.apps).map(($)=>$.config.autoStart&&$.start()))}async setup(){await Promise.all(Object.values(this.apps).map(($)=>$.install()))}async shutdown(){await Promise.all(Object.values(this.apps).map(($)=>$.stop()))}}class D${config;computer;constructor($){this.config=$}async _init($,...X){this.computer=$,await this.init(...X)}}var g1="vercel.ai.error",J8=Symbol.for(g1),y1,W8=class $ extends Error{constructor({name:X,message:Q,cause:Y}){super(Q);this[y1]=!0,this.name=X,this.cause=Y}static isInstance(X){return $.hasMarker(X,g1)}static hasMarker(X,Q){let Y=Symbol.for(Q);return X!=null&&typeof X==="object"&&Y in X&&typeof X[Y]==="boolean"&&X[Y]===!0}};y1=J8;var g=W8,Z1="AI_APICallError",h1=`vercel.ai.error.${Z1}`,q8=Symbol.for(h1),m1,c=class extends g{constructor({message:$,url:X,requestBodyValues:Q,statusCode:Y,responseHeaders:G,responseBody:J,cause:W,isRetryable:H=Y!=null&&(Y===408||Y===409||Y===429||Y>=500),data:q}){super({name:Z1,message:$,cause:W});this[m1]=!0,this.url=X,this.requestBodyValues=Q,this.statusCode=Y,this.responseHeaders=G,this.responseBody=J,this.isRetryable=H,this.data=q}static isInstance($){return g.hasMarker($,h1)}};m1=q8;var u1="AI_EmptyResponseBodyError",p1=`vercel.ai.error.${u1}`,H8=Symbol.for(p1),c1,d1=class extends g{constructor({message:$="Empty response body"}={}){super({name:u1,message:$});this[c1]=!0}static isInstance($){return g.hasMarker($,p1)}};c1=H8;function i1($){if($==null)return"unknown error";if(typeof $==="string")return $;if($ instanceof Error)return $.message;return JSON.stringify($)}var l1="AI_InvalidArgumentError",n1=`vercel.ai.error.${l1}`,w8=Symbol.for(n1),r1,o1=class extends g{constructor({message:$,cause:X,argument:Q}){super({name:l1,message:$,cause:X});this[r1]=!0,this.argument=Q}static isInstance($){return g.hasMarker($,n1)}};r1=w8;var D8="AI_InvalidPromptError",B8=`vercel.ai.error.${D8}`,O8=Symbol.for(B8),z8;z8=O8;var U8="AI_InvalidResponseDataError",L8=`vercel.ai.error.${U8}`,K8=Symbol.for(L8),j8;j8=K8;var a1="AI_JSONParseError",t1=`vercel.ai.error.${a1}`,A8=Symbol.for(t1),s1,T0=class extends g{constructor({text:$,cause:X}){super({name:a1,message:`JSON parsing failed: Text: ${$}.
Error message: ${i1(X)}`,cause:X});this[s1]=!0,this.text=$}static isInstance($){return g.hasMarker($,t1)}};s1=A8;var e1="AI_LoadAPIKeyError",$4=`vercel.ai.error.${e1}`,N8=Symbol.for($4),X4,k0=class extends g{constructor({message:$}){super({name:e1,message:$});this[X4]=!0}static isInstance($){return g.hasMarker($,$4)}};X4=N8;var _8="AI_LoadSettingError",V8=`vercel.ai.error.${_8}`,E8=Symbol.for(V8),M8;M8=E8;var F8="AI_NoContentGeneratedError",R8=`vercel.ai.error.${F8}`,f8=Symbol.for(R8),S8;S8=f8;var Q4="AI_NoSuchModelError",Y4=`vercel.ai.error.${Q4}`,b8=Symbol.for(Y4),G4,J4=class extends g{constructor({errorName:$=Q4,modelId:X,modelType:Q,message:Y=`No such ${Q}: ${X}`}){super({name:$,message:Y});this[G4]=!0,this.modelId=X,this.modelType=Q}static isInstance($){return g.hasMarker($,Y4)}};G4=b8;var I8="AI_TooManyEmbeddingValuesForCallError",C8=`vercel.ai.error.${I8}`,P8=Symbol.for(C8),T8;T8=P8;var W4="AI_TypeValidationError",q4=`vercel.ai.error.${W4}`,k8=Symbol.for(q4),H4,x8=class $ extends g{constructor({value:X,cause:Q}){super({name:W4,message:`Type validation failed: Value: ${JSON.stringify(X)}.
Error message: ${i1(Q)}`,cause:Q});this[H4]=!0,this.value=X}static isInstance(X){return g.hasMarker(X,q4)}static wrap({value:X,cause:Q}){return $.isInstance(Q)&&Q.value===X?Q:new $({value:X,cause:Q})}};H4=k8;var L0=x8,w4="AI_UnsupportedFunctionalityError",D4=`vercel.ai.error.${w4}`,v8=Symbol.for(D4),B4,e=class extends g{constructor({functionality:$,message:X=`'${$}' functionality not supported.`}){super({name:w4,message:X});this[B4]=!0,this.functionality=$}static isInstance($){return g.hasMarker($,D4)}};B4=v8;var O4=($,X=21)=>{return(Q=X)=>{let Y="",G=Q|0;while(G--)Y+=$[Math.random()*$.length|0];return Y}};var h$=pX(j4(),1);var Z8=Object.defineProperty,h8=($,X,Q)=>(X in $)?Z8($,X,{enumerable:!0,configurable:!0,writable:!0,value:Q}):$[X]=Q,B$=($,X,Q)=>h8($,typeof X!="symbol"?X+"":X,Q);class g$ extends Error{constructor($,X){super($),B$(this,"type"),B$(this,"field"),B$(this,"value"),B$(this,"line"),this.name="ParseError",this.type=X.type,this.field=X.field,this.value=X.value,this.line=X.line}}function v$($){}function A4($){let{onEvent:X=v$,onError:Q=v$,onRetry:Y=v$,onComment:G}=$,J="",W=!0,H,q="",D="";function z(j){let E=W?j.replace(/^\xEF\xBB\xBF/,""):j,[C,T]=m8(`${J}${E}`);for(let I of C)N(I);J=T,W=!1}function N(j){if(j===""){x();return}if(j.startsWith(":")){G&&G(j.slice(j.startsWith(": ")?2:1));return}let E=j.indexOf(":");if(E!==-1){let C=j.slice(0,E),T=j[E+1]===" "?2:1,I=j.slice(E+T);F(C,I,j);return}F(j,"",j)}function F(j,E,C){switch(j){case"event":D=E;break;case"data":q=`${q}${E}
`;break;case"id":H=E.includes("\x00")?void 0:E;break;case"retry":/^\d+$/.test(E)?Y(parseInt(E,10)):Q(new g$(`Invalid \`retry\` value: "${E}"`,{type:"invalid-retry",value:E,line:C}));break;default:Q(new g$(`Unknown field "${j.length>20?`${j.slice(0,20)}…`:j}"`,{type:"unknown-field",field:j,value:E,line:C}));break}}function x(){q.length>0&&X({id:H,event:D||void 0,data:q.endsWith(`
`)?q.slice(0,-1):q}),H=void 0,q="",D=""}function R(j={}){J&&j.consume&&N(J),H=void 0,q="",D="",J=""}return{feed:z,reset:R}}function m8($){let X=[],Q="",Y=$.length;for(let G=0;G<Y;G++){let J=$[G];J==="\r"&&$[G+1]===`
`?(X.push(Q),Q="",G++):J==="\r"||J===`
`?(X.push(Q),Q=""):Q+=J}return[X,Q]}class y$ extends TransformStream{constructor({onError:$,onRetry:X,onComment:Q}={}){let Y;super({start(G){Y=A4({onEvent:(J)=>{G.enqueue(J)},onError(J){$==="terminate"?G.error(J):typeof $=="function"&&$(J)},onRetry:X,onComment:Q})},transform(G){Y.feed(G)}})}}function N4(...$){return $.reduce((X,Q)=>({...X,...Q!=null?Q:{}}),{})}function _4($){return new ReadableStream({async pull(X){try{let{value:Q,done:Y}=await $.next();if(Y)X.close();else X.enqueue(Q)}catch(Q){X.error(Q)}},cancel(){}})}function O$($){let X={};return $.headers.forEach((Q,Y)=>{X[Y]=Q}),X}var d=({prefix:$,size:X=16,alphabet:Q="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",separator:Y="-"}={})=>{let G=O4(Q,X);if($==null)return G;if(Q.includes(Y))throw new o1({argument:"separator",message:`The separator "${Y}" must not be part of the alphabet "${Q}".`});return(J)=>`${$}${Y}${G(J)}`},u7=d();function Z$($){return $ instanceof Error&&($.name==="AbortError"||$.name==="TimeoutError")}function V4({apiKey:$,environmentVariableName:X,apiKeyParameterName:Q="apiKey",description:Y}){if(typeof $==="string")return $;if($!=null)throw new k0({message:`${Y} API key must be a string.`});if(typeof process==="undefined")throw new k0({message:`${Y} API key is missing. Pass it using the '${Q}' parameter. Environment variables is not supported in this environment.`});if($=process.env[X],$==null)throw new k0({message:`${Y} API key is missing. Pass it using the '${Q}' parameter or the ${X} environment variable.`});if(typeof $!=="string")throw new k0({message:`${Y} API key must be a string. The value of the ${X} environment variable is not a string.`});return $}var x0=Symbol.for("vercel.ai.validator");function u8($){return{[x0]:!0,validate:$}}function p8($){return typeof $==="object"&&$!==null&&x0 in $&&$[x0]===!0&&"validate"in $}function c8($){return p8($)?$:d8($)}function d8($){return u8((X)=>{let Q=$.safeParse(X);return Q.success?{success:!0,value:Q.data}:{success:!1,error:Q.error}})}function i8({value:$,schema:X}){let Q=z$({value:$,schema:X});if(!Q.success)throw L0.wrap({value:$,cause:Q.error});return Q.value}function z$({value:$,schema:X}){let Q=c8(X);try{if(Q.validate==null)return{success:!0,value:$};let Y=Q.validate($);if(Y.success)return Y;return{success:!1,error:L0.wrap({value:$,cause:Y.error})}}catch(Y){return{success:!1,error:L0.wrap({value:$,cause:Y})}}}function l8({text:$,schema:X}){try{let Q=h$.default.parse($);if(X==null)return Q;return i8({value:Q,schema:X})}catch(Q){if(T0.isInstance(Q)||L0.isInstance(Q))throw Q;throw new T0({text:$,cause:Q})}}function Y0({text:$,schema:X}){try{let Q=h$.default.parse($);if(X==null)return{success:!0,value:Q,rawValue:Q};let Y=z$({value:Q,schema:X});return Y.success?{...Y,rawValue:Q}:Y}catch(Q){return{success:!1,error:T0.isInstance(Q)?Q:new T0({text:$,cause:Q})}}}function n8($){return Object.fromEntries(Object.entries($).filter(([X,Q])=>Q!=null))}var r8=()=>globalThis.fetch,m$=async({url:$,headers:X,body:Q,failedResponseHandler:Y,successfulResponseHandler:G,abortSignal:J,fetch:W})=>o8({url:$,headers:{"Content-Type":"application/json",...X},body:{content:JSON.stringify(Q),values:Q},failedResponseHandler:Y,successfulResponseHandler:G,abortSignal:J,fetch:W}),o8=async({url:$,headers:X={},body:Q,successfulResponseHandler:Y,failedResponseHandler:G,abortSignal:J,fetch:W=r8()})=>{try{let H=await W($,{method:"POST",headers:n8(X),body:Q.content,signal:J}),q=O$(H);if(!H.ok){let D;try{D=await G({response:H,url:$,requestBodyValues:Q.values})}catch(z){if(Z$(z)||c.isInstance(z))throw z;throw new c({message:"Failed to process error response",cause:z,statusCode:H.status,url:$,responseHeaders:q,requestBodyValues:Q.values})}throw D.value}try{return await Y({response:H,url:$,requestBodyValues:Q.values})}catch(D){if(D instanceof Error){if(Z$(D)||c.isInstance(D))throw D}throw new c({message:"Failed to process successful response",cause:D,statusCode:H.status,url:$,responseHeaders:q,requestBodyValues:Q.values})}}catch(H){if(Z$(H))throw H;if(H instanceof TypeError&&H.message==="fetch failed"){let q=H.cause;if(q!=null)throw new c({message:`Cannot connect to API: ${q.message}`,cause:q,url:$,requestBodyValues:Q.values,isRetryable:!0})}throw H}};async function E4($){if(typeof $==="function")$=$();return Promise.resolve($)}var M4=({errorSchema:$,errorToMessage:X,isRetryable:Q})=>async({response:Y,url:G,requestBodyValues:J})=>{let W=await Y.text(),H=O$(Y);if(W.trim()==="")return{responseHeaders:H,value:new c({message:Y.statusText,url:G,requestBodyValues:J,statusCode:Y.status,responseHeaders:H,responseBody:W,isRetryable:Q==null?void 0:Q(Y)})};try{let q=l8({text:W,schema:$});return{responseHeaders:H,value:new c({message:X(q),url:G,requestBodyValues:J,statusCode:Y.status,responseHeaders:H,responseBody:W,data:q,isRetryable:Q==null?void 0:Q(Y,q)})}}catch(q){return{responseHeaders:H,value:new c({message:Y.statusText,url:G,requestBodyValues:J,statusCode:Y.status,responseHeaders:H,responseBody:W,isRetryable:Q==null?void 0:Q(Y)})}}},F4=($)=>async({response:X})=>{let Q=O$(X);if(X.body==null)throw new d1({});return{responseHeaders:Q,value:X.body.pipeThrough(new TextDecoderStream).pipeThrough(new y$).pipeThrough(new TransformStream({transform({data:Y},G){if(Y==="[DONE]")return;G.enqueue(Y0({text:Y,schema:$}))}}))}};var R4=($)=>async({response:X,url:Q,requestBodyValues:Y})=>{let G=await X.text(),J=Y0({text:G,schema:$}),W=O$(X);if(!J.success)throw new c({message:"Invalid JSON response",cause:J.error,statusCode:X.status,responseHeaders:W,responseBody:G,url:Q,requestBodyValues:Y});return{responseHeaders:W,value:J.value}},{btoa:a8,atob:r7}=globalThis;function f4($){let X="";for(let Q=0;Q<$.length;Q++)X+=String.fromCodePoint($[Q]);return a8(X)}function S4($){return $==null?void 0:$.replace(/\/$/,"")}var b;(function($){$.assertEqual=(G)=>G;function X(G){}$.assertIs=X;function Q(G){throw new Error}$.assertNever=Q,$.arrayToEnum=(G)=>{let J={};for(let W of G)J[W]=W;return J},$.getValidEnumValues=(G)=>{let J=$.objectKeys(G).filter((H)=>typeof G[G[H]]!=="number"),W={};for(let H of J)W[H]=G[H];return $.objectValues(W)},$.objectValues=(G)=>{return $.objectKeys(G).map(function(J){return G[J]})},$.objectKeys=typeof Object.keys==="function"?(G)=>Object.keys(G):(G)=>{let J=[];for(let W in G)if(Object.prototype.hasOwnProperty.call(G,W))J.push(W);return J},$.find=(G,J)=>{for(let W of G)if(J(W))return W;return},$.isInteger=typeof Number.isInteger==="function"?(G)=>Number.isInteger(G):(G)=>typeof G==="number"&&isFinite(G)&&Math.floor(G)===G;function Y(G,J=" | "){return G.map((W)=>typeof W==="string"?`'${W}'`:W).join(J)}$.joinValues=Y,$.jsonStringifyReplacer=(G,J)=>{if(typeof J==="bigint")return J.toString();return J}})(b||(b={}));var p$;(function($){$.mergeShapes=(X,Q)=>{return{...X,...Q}}})(p$||(p$={}));var L=b.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),X0=($)=>{switch(typeof $){case"undefined":return L.undefined;case"string":return L.string;case"number":return isNaN($)?L.nan:L.number;case"boolean":return L.boolean;case"function":return L.function;case"bigint":return L.bigint;case"symbol":return L.symbol;case"object":if(Array.isArray($))return L.array;if($===null)return L.null;if($.then&&typeof $.then==="function"&&$.catch&&typeof $.catch==="function")return L.promise;if(typeof Map!=="undefined"&&$ instanceof Map)return L.map;if(typeof Set!=="undefined"&&$ instanceof Set)return L.set;if(typeof Date!=="undefined"&&$ instanceof Date)return L.date;return L.object;default:return L.unknown}},B=b.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),t8=($)=>{return JSON.stringify($,null,2).replace(/"([^"]+)":/g,"$1:")};class m extends Error{get errors(){return this.issues}constructor($){super();this.issues=[],this.addIssue=(Q)=>{this.issues=[...this.issues,Q]},this.addIssues=(Q=[])=>{this.issues=[...this.issues,...Q]};let X=new.target.prototype;if(Object.setPrototypeOf)Object.setPrototypeOf(this,X);else this.__proto__=X;this.name="ZodError",this.issues=$}format($){let X=$||function(G){return G.message},Q={_errors:[]},Y=(G)=>{for(let J of G.issues)if(J.code==="invalid_union")J.unionErrors.map(Y);else if(J.code==="invalid_return_type")Y(J.returnTypeError);else if(J.code==="invalid_arguments")Y(J.argumentsError);else if(J.path.length===0)Q._errors.push(X(J));else{let W=Q,H=0;while(H<J.path.length){let q=J.path[H];if(H!==J.path.length-1)W[q]=W[q]||{_errors:[]};else W[q]=W[q]||{_errors:[]},W[q]._errors.push(X(J));W=W[q],H++}}};return Y(this),Q}static assert($){if(!($ instanceof m))throw new Error(`Not a ZodError: ${$}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,b.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten($=(X)=>X.message){let X={},Q=[];for(let Y of this.issues)if(Y.path.length>0)X[Y.path[0]]=X[Y.path[0]]||[],X[Y.path[0]].push($(Y));else Q.push($(Y));return{formErrors:Q,fieldErrors:X}}get formErrors(){return this.flatten()}}m.create=($)=>{return new m($)};var _0=($,X)=>{let Q;switch($.code){case B.invalid_type:if($.received===L.undefined)Q="Required";else Q=`Expected ${$.expected}, received ${$.received}`;break;case B.invalid_literal:Q=`Invalid literal value, expected ${JSON.stringify($.expected,b.jsonStringifyReplacer)}`;break;case B.unrecognized_keys:Q=`Unrecognized key(s) in object: ${b.joinValues($.keys,", ")}`;break;case B.invalid_union:Q="Invalid input";break;case B.invalid_union_discriminator:Q=`Invalid discriminator value. Expected ${b.joinValues($.options)}`;break;case B.invalid_enum_value:Q=`Invalid enum value. Expected ${b.joinValues($.options)}, received '${$.received}'`;break;case B.invalid_arguments:Q="Invalid function arguments";break;case B.invalid_return_type:Q="Invalid function return type";break;case B.invalid_date:Q="Invalid date";break;case B.invalid_string:if(typeof $.validation==="object")if("includes"in $.validation){if(Q=`Invalid input: must include "${$.validation.includes}"`,typeof $.validation.position==="number")Q=`${Q} at one or more positions greater than or equal to ${$.validation.position}`}else if("startsWith"in $.validation)Q=`Invalid input: must start with "${$.validation.startsWith}"`;else if("endsWith"in $.validation)Q=`Invalid input: must end with "${$.validation.endsWith}"`;else b.assertNever($.validation);else if($.validation!=="regex")Q=`Invalid ${$.validation}`;else Q="Invalid";break;case B.too_small:if($.type==="array")Q=`Array must contain ${$.exact?"exactly":$.inclusive?"at least":"more than"} ${$.minimum} element(s)`;else if($.type==="string")Q=`String must contain ${$.exact?"exactly":$.inclusive?"at least":"over"} ${$.minimum} character(s)`;else if($.type==="number")Q=`Number must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${$.minimum}`;else if($.type==="date")Q=`Date must be ${$.exact?"exactly equal to ":$.inclusive?"greater than or equal to ":"greater than "}${new Date(Number($.minimum))}`;else Q="Invalid input";break;case B.too_big:if($.type==="array")Q=`Array must contain ${$.exact?"exactly":$.inclusive?"at most":"less than"} ${$.maximum} element(s)`;else if($.type==="string")Q=`String must contain ${$.exact?"exactly":$.inclusive?"at most":"under"} ${$.maximum} character(s)`;else if($.type==="number")Q=`Number must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="bigint")Q=`BigInt must be ${$.exact?"exactly":$.inclusive?"less than or equal to":"less than"} ${$.maximum}`;else if($.type==="date")Q=`Date must be ${$.exact?"exactly":$.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number($.maximum))}`;else Q="Invalid input";break;case B.custom:Q="Invalid input";break;case B.invalid_intersection_types:Q="Intersection results could not be merged";break;case B.not_multiple_of:Q=`Number must be a multiple of ${$.multipleOf}`;break;case B.not_finite:Q="Number must be finite";break;default:Q=X.defaultError,b.assertNever($)}return{message:Q}},C4=_0;function s8($){C4=$}function U$(){return C4}var L$=($)=>{let{data:X,path:Q,errorMaps:Y,issueData:G}=$,J=[...Q,...G.path||[]],W={...G,path:J};if(G.message!==void 0)return{...G,path:J,message:G.message};let H="",q=Y.filter((D)=>!!D).slice().reverse();for(let D of q)H=D(W,{data:X,defaultError:H}).message;return{...G,path:J,message:H}},e8=[];function U($,X){let Q=U$(),Y=L$({issueData:X,data:$.data,path:$.path,errorMaps:[$.common.contextualErrorMap,$.schemaErrorMap,Q,Q===_0?void 0:_0].filter((G)=>!!G)});$.common.issues.push(Y)}class y{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray($,X){let Q=[];for(let Y of X){if(Y.status==="aborted")return _;if(Y.status==="dirty")$.dirty();Q.push(Y.value)}return{status:$.value,value:Q}}static async mergeObjectAsync($,X){let Q=[];for(let Y of X){let G=await Y.key,J=await Y.value;Q.push({key:G,value:J})}return y.mergeObjectSync($,Q)}static mergeObjectSync($,X){let Q={};for(let Y of X){let{key:G,value:J}=Y;if(G.status==="aborted")return _;if(J.status==="aborted")return _;if(G.status==="dirty")$.dirty();if(J.status==="dirty")$.dirty();if(G.value!=="__proto__"&&(typeof J.value!=="undefined"||Y.alwaysSet))Q[G.value]=J.value}return{status:$.value,value:Q}}}var _=Object.freeze({status:"aborted"}),A0=($)=>({status:"dirty",value:$}),Z=($)=>({status:"valid",value:$}),c$=($)=>$.status==="aborted",d$=($)=>$.status==="dirty",D0=($)=>$.status==="valid",y0=($)=>typeof Promise!=="undefined"&&$ instanceof Promise;function K$($,X,Q,Y){if(Q==="a"&&!Y)throw new TypeError("Private accessor was defined without a getter");if(typeof X==="function"?$!==X||!Y:!X.has($))throw new TypeError("Cannot read private member from an object whose class did not declare it");return Q==="m"?Y:Q==="a"?Y.call($):Y?Y.value:X.get($)}function P4($,X,Q,Y,G){if(Y==="m")throw new TypeError("Private method is not writable");if(Y==="a"&&!G)throw new TypeError("Private accessor was defined without a setter");if(typeof X==="function"?$!==X||!G:!X.has($))throw new TypeError("Cannot write private member to an object whose class did not declare it");return Y==="a"?G.call($,Q):G?G.value=Q:X.set($,Q),Q}var K;(function($){$.errToObj=(X)=>typeof X==="string"?{message:X}:X||{},$.toString=(X)=>typeof X==="string"?X:X===null||X===void 0?void 0:X.message})(K||(K={}));var v0,g0;class n{constructor($,X,Q,Y){this._cachedPath=[],this.parent=$,this.data=X,this._path=Q,this._key=Y}get path(){if(!this._cachedPath.length)if(this._key instanceof Array)this._cachedPath.push(...this._path,...this._key);else this._cachedPath.push(...this._path,this._key);return this._cachedPath}}var b4=($,X)=>{if(D0(X))return{success:!0,data:X.value};else{if(!$.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let Q=new m($.common.issues);return this._error=Q,this._error}}}};function V($){if(!$)return{};let{errorMap:X,invalid_type_error:Q,required_error:Y,description:G}=$;if(X&&(Q||Y))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);if(X)return{errorMap:X,description:G};return{errorMap:(W,H)=>{var q,D;let{message:z}=$;if(W.code==="invalid_enum_value")return{message:z!==null&&z!==void 0?z:H.defaultError};if(typeof H.data==="undefined")return{message:(q=z!==null&&z!==void 0?z:Y)!==null&&q!==void 0?q:H.defaultError};if(W.code!=="invalid_type")return{message:H.defaultError};return{message:(D=z!==null&&z!==void 0?z:Q)!==null&&D!==void 0?D:H.defaultError}},description:G}}class M{get description(){return this._def.description}_getType($){return X0($.data)}_getOrReturnCtx($,X){return X||{common:$.parent.common,data:$.data,parsedType:X0($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}_processInputParams($){return{status:new y,ctx:{common:$.parent.common,data:$.data,parsedType:X0($.data),schemaErrorMap:this._def.errorMap,path:$.path,parent:$.parent}}}_parseSync($){let X=this._parse($);if(y0(X))throw new Error("Synchronous parse encountered promise.");return X}_parseAsync($){let X=this._parse($);return Promise.resolve(X)}parse($,X){let Q=this.safeParse($,X);if(Q.success)return Q.data;throw Q.error}safeParse($,X){var Q;let Y={common:{issues:[],async:(Q=X===null||X===void 0?void 0:X.async)!==null&&Q!==void 0?Q:!1,contextualErrorMap:X===null||X===void 0?void 0:X.errorMap},path:(X===null||X===void 0?void 0:X.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:X0($)},G=this._parseSync({data:$,path:Y.path,parent:Y});return b4(Y,G)}"~validate"($){var X,Q;let Y={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:X0($)};if(!this["~standard"].async)try{let G=this._parseSync({data:$,path:[],parent:Y});return D0(G)?{value:G.value}:{issues:Y.common.issues}}catch(G){if((Q=(X=G===null||G===void 0?void 0:G.message)===null||X===void 0?void 0:X.toLowerCase())===null||Q===void 0?void 0:Q.includes("encountered"))this["~standard"].async=!0;Y.common={issues:[],async:!0}}return this._parseAsync({data:$,path:[],parent:Y}).then((G)=>D0(G)?{value:G.value}:{issues:Y.common.issues})}async parseAsync($,X){let Q=await this.safeParseAsync($,X);if(Q.success)return Q.data;throw Q.error}async safeParseAsync($,X){let Q={common:{issues:[],contextualErrorMap:X===null||X===void 0?void 0:X.errorMap,async:!0},path:(X===null||X===void 0?void 0:X.path)||[],schemaErrorMap:this._def.errorMap,parent:null,data:$,parsedType:X0($)},Y=this._parse({data:$,path:Q.path,parent:Q}),G=await(y0(Y)?Y:Promise.resolve(Y));return b4(Q,G)}refine($,X){let Q=(Y)=>{if(typeof X==="string"||typeof X==="undefined")return{message:X};else if(typeof X==="function")return X(Y);else return X};return this._refinement((Y,G)=>{let J=$(Y),W=()=>G.addIssue({code:B.custom,...Q(Y)});if(typeof Promise!=="undefined"&&J instanceof Promise)return J.then((H)=>{if(!H)return W(),!1;else return!0});if(!J)return W(),!1;else return!0})}refinement($,X){return this._refinement((Q,Y)=>{if(!$(Q))return Y.addIssue(typeof X==="function"?X(Q,Y):X),!1;else return!0})}_refinement($){return new p({schema:this,typeName:O.ZodEffects,effect:{type:"refinement",refinement:$}})}superRefine($){return this._refinement($)}constructor($){this.spa=this.safeParseAsync,this._def=$,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:(X)=>this["~validate"](X)}}optional(){return u.create(this,this._def)}nullable(){return Q0.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return l.create(this)}promise(){return U0.create(this,this._def)}or($){return F0.create([this,$],this._def)}and($){return R0.create(this,$,this._def)}transform($){return new p({...V(this._def),schema:this,typeName:O.ZodEffects,effect:{type:"transform",transform:$}})}default($){let X=typeof $==="function"?$:()=>$;return new I0({...V(this._def),innerType:this,defaultValue:X,typeName:O.ZodDefault})}brand(){return new A$({typeName:O.ZodBranded,type:this,...V(this._def)})}catch($){let X=typeof $==="function"?$:()=>$;return new C0({...V(this._def),innerType:this,catchValue:X,typeName:O.ZodCatch})}describe($){return new this.constructor({...this._def,description:$})}pipe($){return c0.create(this,$)}readonly(){return P0.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}var $9=/^c[^\s-]{8,}$/i,X9=/^[0-9a-z]+$/,Q9=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Y9=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,G9=/^[a-z0-9_-]{21}$/i,J9=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,W9=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,q9=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,H9="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",u$,w9=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,D9=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,B9=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,O9=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,z9=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,U9=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,T4="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",L9=new RegExp(`^${T4}$`);function k4($){let X="([01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d";if($.precision)X=`${X}\\.\\d{${$.precision}}`;else if($.precision==null)X=`${X}(\\.\\d+)?`;return X}function K9($){return new RegExp(`^${k4($)}$`)}function x4($){let X=`${T4}T${k4($)}`,Q=[];if(Q.push($.local?"Z?":"Z"),$.offset)Q.push("([+-]\\d{2}:?\\d{2})");return X=`${X}(${Q.join("|")})`,new RegExp(`^${X}$`)}function j9($,X){if((X==="v4"||!X)&&w9.test($))return!0;if((X==="v6"||!X)&&B9.test($))return!0;return!1}function A9($,X){if(!J9.test($))return!1;try{let[Q]=$.split("."),Y=Q.replace(/-/g,"+").replace(/_/g,"/").padEnd(Q.length+(4-Q.length%4)%4,"="),G=JSON.parse(atob(Y));if(typeof G!=="object"||G===null)return!1;if(!G.typ||!G.alg)return!1;if(X&&G.alg!==X)return!1;return!0}catch(Q){return!1}}function N9($,X){if((X==="v4"||!X)&&D9.test($))return!0;if((X==="v6"||!X)&&O9.test($))return!0;return!1}class i extends M{_parse($){if(this._def.coerce)$.data=String($.data);if(this._getType($)!==L.string){let G=this._getOrReturnCtx($);return U(G,{code:B.invalid_type,expected:L.string,received:G.parsedType}),_}let Q=new y,Y=void 0;for(let G of this._def.checks)if(G.kind==="min"){if($.data.length<G.value)Y=this._getOrReturnCtx($,Y),U(Y,{code:B.too_small,minimum:G.value,type:"string",inclusive:!0,exact:!1,message:G.message}),Q.dirty()}else if(G.kind==="max"){if($.data.length>G.value)Y=this._getOrReturnCtx($,Y),U(Y,{code:B.too_big,maximum:G.value,type:"string",inclusive:!0,exact:!1,message:G.message}),Q.dirty()}else if(G.kind==="length"){let J=$.data.length>G.value,W=$.data.length<G.value;if(J||W){if(Y=this._getOrReturnCtx($,Y),J)U(Y,{code:B.too_big,maximum:G.value,type:"string",inclusive:!0,exact:!0,message:G.message});else if(W)U(Y,{code:B.too_small,minimum:G.value,type:"string",inclusive:!0,exact:!0,message:G.message});Q.dirty()}}else if(G.kind==="email"){if(!q9.test($.data))Y=this._getOrReturnCtx($,Y),U(Y,{validation:"email",code:B.invalid_string,message:G.message}),Q.dirty()}else if(G.kind==="emoji"){if(!u$)u$=new RegExp(H9,"u");if(!u$.test($.data))Y=this._getOrReturnCtx($,Y),U(Y,{validation:"emoji",code:B.invalid_string,message:G.message}),Q.dirty()}else if(G.kind==="uuid"){if(!Y9.test($.data))Y=this._getOrReturnCtx($,Y),U(Y,{validation:"uuid",code:B.invalid_string,message:G.message}),Q.dirty()}else if(G.kind==="nanoid"){if(!G9.test($.data))Y=this._getOrReturnCtx($,Y),U(Y,{validation:"nanoid",code:B.invalid_string,message:G.message}),Q.dirty()}else if(G.kind==="cuid"){if(!$9.test($.data))Y=this._getOrReturnCtx($,Y),U(Y,{validation:"cuid",code:B.invalid_string,message:G.message}),Q.dirty()}else if(G.kind==="cuid2"){if(!X9.test($.data))Y=this._getOrReturnCtx($,Y),U(Y,{validation:"cuid2",code:B.invalid_string,message:G.message}),Q.dirty()}else if(G.kind==="ulid"){if(!Q9.test($.data))Y=this._getOrReturnCtx($,Y),U(Y,{validation:"ulid",code:B.invalid_string,message:G.message}),Q.dirty()}else if(G.kind==="url")try{new URL($.data)}catch(J){Y=this._getOrReturnCtx($,Y),U(Y,{validation:"url",code:B.invalid_string,message:G.message}),Q.dirty()}else if(G.kind==="regex"){if(G.regex.lastIndex=0,!G.regex.test($.data))Y=this._getOrReturnCtx($,Y),U(Y,{validation:"regex",code:B.invalid_string,message:G.message}),Q.dirty()}else if(G.kind==="trim")$.data=$.data.trim();else if(G.kind==="includes"){if(!$.data.includes(G.value,G.position))Y=this._getOrReturnCtx($,Y),U(Y,{code:B.invalid_string,validation:{includes:G.value,position:G.position},message:G.message}),Q.dirty()}else if(G.kind==="toLowerCase")$.data=$.data.toLowerCase();else if(G.kind==="toUpperCase")$.data=$.data.toUpperCase();else if(G.kind==="startsWith"){if(!$.data.startsWith(G.value))Y=this._getOrReturnCtx($,Y),U(Y,{code:B.invalid_string,validation:{startsWith:G.value},message:G.message}),Q.dirty()}else if(G.kind==="endsWith"){if(!$.data.endsWith(G.value))Y=this._getOrReturnCtx($,Y),U(Y,{code:B.invalid_string,validation:{endsWith:G.value},message:G.message}),Q.dirty()}else if(G.kind==="datetime"){if(!x4(G).test($.data))Y=this._getOrReturnCtx($,Y),U(Y,{code:B.invalid_string,validation:"datetime",message:G.message}),Q.dirty()}else if(G.kind==="date"){if(!L9.test($.data))Y=this._getOrReturnCtx($,Y),U(Y,{code:B.invalid_string,validation:"date",message:G.message}),Q.dirty()}else if(G.kind==="time"){if(!K9(G).test($.data))Y=this._getOrReturnCtx($,Y),U(Y,{code:B.invalid_string,validation:"time",message:G.message}),Q.dirty()}else if(G.kind==="duration"){if(!W9.test($.data))Y=this._getOrReturnCtx($,Y),U(Y,{validation:"duration",code:B.invalid_string,message:G.message}),Q.dirty()}else if(G.kind==="ip"){if(!j9($.data,G.version))Y=this._getOrReturnCtx($,Y),U(Y,{validation:"ip",code:B.invalid_string,message:G.message}),Q.dirty()}else if(G.kind==="jwt"){if(!A9($.data,G.alg))Y=this._getOrReturnCtx($,Y),U(Y,{validation:"jwt",code:B.invalid_string,message:G.message}),Q.dirty()}else if(G.kind==="cidr"){if(!N9($.data,G.version))Y=this._getOrReturnCtx($,Y),U(Y,{validation:"cidr",code:B.invalid_string,message:G.message}),Q.dirty()}else if(G.kind==="base64"){if(!z9.test($.data))Y=this._getOrReturnCtx($,Y),U(Y,{validation:"base64",code:B.invalid_string,message:G.message}),Q.dirty()}else if(G.kind==="base64url"){if(!U9.test($.data))Y=this._getOrReturnCtx($,Y),U(Y,{validation:"base64url",code:B.invalid_string,message:G.message}),Q.dirty()}else b.assertNever(G);return{status:Q.value,value:$.data}}_regex($,X,Q){return this.refinement((Y)=>$.test(Y),{validation:X,code:B.invalid_string,...K.errToObj(Q)})}_addCheck($){return new i({...this._def,checks:[...this._def.checks,$]})}email($){return this._addCheck({kind:"email",...K.errToObj($)})}url($){return this._addCheck({kind:"url",...K.errToObj($)})}emoji($){return this._addCheck({kind:"emoji",...K.errToObj($)})}uuid($){return this._addCheck({kind:"uuid",...K.errToObj($)})}nanoid($){return this._addCheck({kind:"nanoid",...K.errToObj($)})}cuid($){return this._addCheck({kind:"cuid",...K.errToObj($)})}cuid2($){return this._addCheck({kind:"cuid2",...K.errToObj($)})}ulid($){return this._addCheck({kind:"ulid",...K.errToObj($)})}base64($){return this._addCheck({kind:"base64",...K.errToObj($)})}base64url($){return this._addCheck({kind:"base64url",...K.errToObj($)})}jwt($){return this._addCheck({kind:"jwt",...K.errToObj($)})}ip($){return this._addCheck({kind:"ip",...K.errToObj($)})}cidr($){return this._addCheck({kind:"cidr",...K.errToObj($)})}datetime($){var X,Q;if(typeof $==="string")return this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:$});return this._addCheck({kind:"datetime",precision:typeof($===null||$===void 0?void 0:$.precision)==="undefined"?null:$===null||$===void 0?void 0:$.precision,offset:(X=$===null||$===void 0?void 0:$.offset)!==null&&X!==void 0?X:!1,local:(Q=$===null||$===void 0?void 0:$.local)!==null&&Q!==void 0?Q:!1,...K.errToObj($===null||$===void 0?void 0:$.message)})}date($){return this._addCheck({kind:"date",message:$})}time($){if(typeof $==="string")return this._addCheck({kind:"time",precision:null,message:$});return this._addCheck({kind:"time",precision:typeof($===null||$===void 0?void 0:$.precision)==="undefined"?null:$===null||$===void 0?void 0:$.precision,...K.errToObj($===null||$===void 0?void 0:$.message)})}duration($){return this._addCheck({kind:"duration",...K.errToObj($)})}regex($,X){return this._addCheck({kind:"regex",regex:$,...K.errToObj(X)})}includes($,X){return this._addCheck({kind: