@agiflowai/agent-cli 0.0.2 → 0.0.4

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.
@@ -1,14 +1,18 @@
1
- "use strict";const Ls=require("node:os"),Ms=require("node:path"),xs=require("ulidx"),js=require("node:fs"),Ee=require("node:perf_hooks"),Le=require("path"),Te=require("fs-extra"),$t=require("os");require("node:crypto");require("@inquirer/prompts");function Wt(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const Kt=Wt(Ls),be=Wt(Ms),Me=Wt(js);var z;(function(r){r.assertEqual=o=>{};function e(o){}r.assertIs=e;function t(o){throw new Error}r.assertNever=t,r.arrayToEnum=o=>{const n={};for(const i of o)n[i]=i;return n},r.getValidEnumValues=o=>{const n=r.objectKeys(o).filter(a=>typeof o[o[a]]!="number"),i={};for(const a of n)i[a]=o[a];return r.objectValues(i)},r.objectValues=o=>r.objectKeys(o).map(function(n){return o[n]}),r.objectKeys=typeof Object.keys=="function"?o=>Object.keys(o):o=>{const n=[];for(const i in o)Object.prototype.hasOwnProperty.call(o,i)&&n.push(i);return n},r.find=(o,n)=>{for(const i of o)if(n(i))return i},r.isInteger=typeof Number.isInteger=="function"?o=>Number.isInteger(o):o=>typeof o=="number"&&Number.isFinite(o)&&Math.floor(o)===o;function s(o,n=" | "){return o.map(i=>typeof i=="string"?`'${i}'`:i).join(n)}r.joinValues=s,r.jsonStringifyReplacer=(o,n)=>typeof n=="bigint"?n.toString():n})(z||(z={}));var qt;(function(r){r.mergeShapes=(e,t)=>({...e,...t})})(qt||(qt={}));const k=z.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ye=r=>{switch(typeof r){case"undefined":return k.undefined;case"string":return k.string;case"number":return Number.isNaN(r)?k.nan:k.number;case"boolean":return k.boolean;case"function":return k.function;case"bigint":return k.bigint;case"symbol":return k.symbol;case"object":return Array.isArray(r)?k.array:r===null?k.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?k.promise:typeof Map<"u"&&r instanceof Map?k.map:typeof Set<"u"&&r instanceof Set?k.set:typeof Date<"u"&&r instanceof Date?k.date:k.object;default:return k.unknown}},c=z.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"]),Ps=r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:");class ie extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=s=>{this.issues=[...this.issues,s]},this.addIssues=(s=[])=>{this.issues=[...this.issues,...s]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(n){return n.message},s={_errors:[]},o=n=>{for(const i of n.issues)if(i.code==="invalid_union")i.unionErrors.map(o);else if(i.code==="invalid_return_type")o(i.returnTypeError);else if(i.code==="invalid_arguments")o(i.argumentsError);else if(i.path.length===0)s._errors.push(t(i));else{let a=s,_=0;for(;_<i.path.length;){const p=i.path[_];_===i.path.length-1?(a[p]=a[p]||{_errors:[]},a[p]._errors.push(t(i))):a[p]=a[p]||{_errors:[]},a=a[p],_++}}};return o(this),s}static assert(e){if(!(e instanceof ie))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,z.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},s=[];for(const o of this.issues)if(o.path.length>0){const n=o.path[0];t[n]=t[n]||[],t[n].push(e(o))}else s.push(e(o));return{formErrors:s,fieldErrors:t}}get formErrors(){return this.flatten()}}ie.create=r=>new ie(r);const He=(r,e)=>{let t;switch(r.code){case c.invalid_type:r.received===k.undefined?t="Required":t=`Expected ${r.expected}, received ${r.received}`;break;case c.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(r.expected,z.jsonStringifyReplacer)}`;break;case c.unrecognized_keys:t=`Unrecognized key(s) in object: ${z.joinValues(r.keys,", ")}`;break;case c.invalid_union:t="Invalid input";break;case c.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${z.joinValues(r.options)}`;break;case c.invalid_enum_value:t=`Invalid enum value. Expected ${z.joinValues(r.options)}, received '${r.received}'`;break;case c.invalid_arguments:t="Invalid function arguments";break;case c.invalid_return_type:t="Invalid function return type";break;case c.invalid_date:t="Invalid date";break;case c.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(t=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?t=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?t=`Invalid input: must end with "${r.validation.endsWith}"`:z.assertNever(r.validation):r.validation!=="regex"?t=`Invalid ${r.validation}`:t="Invalid";break;case c.too_small:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="bigint"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:t="Invalid input";break;case c.too_big:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?t=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:t="Invalid input";break;case c.custom:t="Invalid input";break;case c.invalid_intersection_types:t="Intersection results could not be merged";break;case c.not_multiple_of:t=`Number must be a multiple of ${r.multipleOf}`;break;case c.not_finite:t="Number must be finite";break;default:t=e.defaultError,z.assertNever(r)}return{message:t}};let ys=He;function $s(r){ys=r}function It(){return ys}const At=r=>{const{data:e,path:t,errorMaps:s,issueData:o}=r,n=[...t,...o.path||[]],i={...o,path:n};if(o.message!==void 0)return{...o,path:n,message:o.message};let a="";const _=s.filter(p=>!!p).slice().reverse();for(const p of _)a=p(i,{data:e,defaultError:a}).message;return{...o,path:n,message:a}},Bs=[];function d(r,e){const t=It(),s=At({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,t,t===He?void 0:He].filter(o=>!!o)});r.common.issues.push(s)}class te{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){const s=[];for(const o of t){if(o.status==="aborted")return T;o.status==="dirty"&&e.dirty(),s.push(o.value)}return{status:e.value,value:s}}static async mergeObjectAsync(e,t){const s=[];for(const o of t){const n=await o.key,i=await o.value;s.push({key:n,value:i})}return te.mergeObjectSync(e,s)}static mergeObjectSync(e,t){const s={};for(const o of t){const{key:n,value:i}=o;if(n.status==="aborted"||i.status==="aborted")return T;n.status==="dirty"&&e.dirty(),i.status==="dirty"&&e.dirty(),n.value!=="__proto__"&&(typeof i.value<"u"||o.alwaysSet)&&(s[n.value]=i.value)}return{status:e.value,value:s}}}const T=Object.freeze({status:"aborted"}),Ze=r=>({status:"dirty",value:r}),re=r=>({status:"valid",value:r}),Vt=r=>r.status==="aborted",Zt=r=>r.status==="dirty",Pe=r=>r.status==="valid",st=r=>typeof Promise<"u"&&r instanceof Promise;var y;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e?.message})(y||(y={}));class ge{constructor(e,t,s,o){this._cachedPath=[],this.parent=e,this.data=t,this._path=s,this._key=o}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const rs=(r,e)=>{if(Pe(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new ie(r.common.issues);return this._error=t,this._error}}};function I(r){if(!r)return{};const{errorMap:e,invalid_type_error:t,required_error:s,description:o}=r;if(e&&(t||s))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:o}:{errorMap:(i,a)=>{const{message:_}=r;return i.code==="invalid_enum_value"?{message:_??a.defaultError}:typeof a.data>"u"?{message:_??s??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:_??t??a.defaultError}},description:o}}class A{get description(){return this._def.description}_getType(e){return ye(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:ye(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new te,ctx:{common:e.parent.common,data:e.data,parsedType:ye(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(st(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const s=this.safeParse(e,t);if(s.success)return s.data;throw s.error}safeParse(e,t){const s={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ye(e)},o=this._parseSync({data:e,path:s.path,parent:s});return rs(s,o)}"~validate"(e){const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ye(e)};if(!this["~standard"].async)try{const s=this._parseSync({data:e,path:[],parent:t});return Pe(s)?{value:s.value}:{issues:t.common.issues}}catch(s){s?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(s=>Pe(s)?{value:s.value}:{issues:t.common.issues})}async parseAsync(e,t){const s=await this.safeParseAsync(e,t);if(s.success)return s.data;throw s.error}async safeParseAsync(e,t){const s={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ye(e)},o=this._parse({data:e,path:s.path,parent:s}),n=await(st(o)?o:Promise.resolve(o));return rs(s,n)}refine(e,t){const s=o=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(o):t;return this._refinement((o,n)=>{const i=e(o),a=()=>n.addIssue({code:c.custom,...s(o)});return typeof Promise<"u"&&i instanceof Promise?i.then(_=>_?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((s,o)=>e(s)?!0:(o.addIssue(typeof t=="function"?t(s,o):t),!1))}_refinement(e){return new le({schema:this,typeName:S.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,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:t=>this["~validate"](t)}}optional(){return me.create(this,this._def)}nullable(){return Re.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ce.create(this)}promise(){return We.create(this,this._def)}or(e){return it.create([this,e],this._def)}and(e){return at.create(this,e,this._def)}transform(e){return new le({...I(this._def),schema:this,typeName:S.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new lt({...I(this._def),innerType:this,defaultValue:t,typeName:S.ZodDefault})}brand(){return new Yt({typeName:S.ZodBranded,type:this,...I(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new dt({...I(this._def),innerType:this,catchValue:t,typeName:S.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return gt.create(this,e)}readonly(){return mt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const Fs=/^c[^\s-]{8,}$/i,Ds=/^[0-9a-z]+$/,qs=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Vs=/^[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,Zs=/^[a-z0-9_-]{21}$/i,Gs=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Us=/^[-+]?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)?)??$/,Hs=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Js="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let Bt;const Ws=/^(?:(?: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])$/,Ks=/^(?:(?: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])$/,Ys=/^(([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]))$/,Xs=/^(([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])$/,Qs=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,eo=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,bs="((\\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])))",to=new RegExp(`^${bs}$`);function ws(r){let e="[0-5]\\d";r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`);const t=r.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function so(r){return new RegExp(`^${ws(r)}$`)}function Ts(r){let e=`${bs}T${ws(r)}`;const t=[];return t.push(r.local?"Z?":"Z"),r.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function oo(r,e){return!!((e==="v4"||!e)&&Ws.test(r)||(e==="v6"||!e)&&Ys.test(r))}function ro(r,e){if(!Gs.test(r))return!1;try{const[t]=r.split(".");if(!t)return!1;const s=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),o=JSON.parse(atob(s));return!(typeof o!="object"||o===null||"typ"in o&&o?.typ!=="JWT"||!o.alg||e&&o.alg!==e)}catch{return!1}}function no(r,e){return!!((e==="v4"||!e)&&Ks.test(r)||(e==="v6"||!e)&&Xs.test(r))}class ue extends A{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==k.string){const n=this._getOrReturnCtx(e);return d(n,{code:c.invalid_type,expected:k.string,received:n.parsedType}),T}const s=new te;let o;for(const n of this._def.checks)if(n.kind==="min")e.data.length<n.value&&(o=this._getOrReturnCtx(e,o),d(o,{code:c.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),s.dirty());else if(n.kind==="max")e.data.length>n.value&&(o=this._getOrReturnCtx(e,o),d(o,{code:c.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),s.dirty());else if(n.kind==="length"){const i=e.data.length>n.value,a=e.data.length<n.value;(i||a)&&(o=this._getOrReturnCtx(e,o),i?d(o,{code:c.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}):a&&d(o,{code:c.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}),s.dirty())}else if(n.kind==="email")Hs.test(e.data)||(o=this._getOrReturnCtx(e,o),d(o,{validation:"email",code:c.invalid_string,message:n.message}),s.dirty());else if(n.kind==="emoji")Bt||(Bt=new RegExp(Js,"u")),Bt.test(e.data)||(o=this._getOrReturnCtx(e,o),d(o,{validation:"emoji",code:c.invalid_string,message:n.message}),s.dirty());else if(n.kind==="uuid")Vs.test(e.data)||(o=this._getOrReturnCtx(e,o),d(o,{validation:"uuid",code:c.invalid_string,message:n.message}),s.dirty());else if(n.kind==="nanoid")Zs.test(e.data)||(o=this._getOrReturnCtx(e,o),d(o,{validation:"nanoid",code:c.invalid_string,message:n.message}),s.dirty());else if(n.kind==="cuid")Fs.test(e.data)||(o=this._getOrReturnCtx(e,o),d(o,{validation:"cuid",code:c.invalid_string,message:n.message}),s.dirty());else if(n.kind==="cuid2")Ds.test(e.data)||(o=this._getOrReturnCtx(e,o),d(o,{validation:"cuid2",code:c.invalid_string,message:n.message}),s.dirty());else if(n.kind==="ulid")qs.test(e.data)||(o=this._getOrReturnCtx(e,o),d(o,{validation:"ulid",code:c.invalid_string,message:n.message}),s.dirty());else if(n.kind==="url")try{new URL(e.data)}catch{o=this._getOrReturnCtx(e,o),d(o,{validation:"url",code:c.invalid_string,message:n.message}),s.dirty()}else n.kind==="regex"?(n.regex.lastIndex=0,n.regex.test(e.data)||(o=this._getOrReturnCtx(e,o),d(o,{validation:"regex",code:c.invalid_string,message:n.message}),s.dirty())):n.kind==="trim"?e.data=e.data.trim():n.kind==="includes"?e.data.includes(n.value,n.position)||(o=this._getOrReturnCtx(e,o),d(o,{code:c.invalid_string,validation:{includes:n.value,position:n.position},message:n.message}),s.dirty()):n.kind==="toLowerCase"?e.data=e.data.toLowerCase():n.kind==="toUpperCase"?e.data=e.data.toUpperCase():n.kind==="startsWith"?e.data.startsWith(n.value)||(o=this._getOrReturnCtx(e,o),d(o,{code:c.invalid_string,validation:{startsWith:n.value},message:n.message}),s.dirty()):n.kind==="endsWith"?e.data.endsWith(n.value)||(o=this._getOrReturnCtx(e,o),d(o,{code:c.invalid_string,validation:{endsWith:n.value},message:n.message}),s.dirty()):n.kind==="datetime"?Ts(n).test(e.data)||(o=this._getOrReturnCtx(e,o),d(o,{code:c.invalid_string,validation:"datetime",message:n.message}),s.dirty()):n.kind==="date"?to.test(e.data)||(o=this._getOrReturnCtx(e,o),d(o,{code:c.invalid_string,validation:"date",message:n.message}),s.dirty()):n.kind==="time"?so(n).test(e.data)||(o=this._getOrReturnCtx(e,o),d(o,{code:c.invalid_string,validation:"time",message:n.message}),s.dirty()):n.kind==="duration"?Us.test(e.data)||(o=this._getOrReturnCtx(e,o),d(o,{validation:"duration",code:c.invalid_string,message:n.message}),s.dirty()):n.kind==="ip"?oo(e.data,n.version)||(o=this._getOrReturnCtx(e,o),d(o,{validation:"ip",code:c.invalid_string,message:n.message}),s.dirty()):n.kind==="jwt"?ro(e.data,n.alg)||(o=this._getOrReturnCtx(e,o),d(o,{validation:"jwt",code:c.invalid_string,message:n.message}),s.dirty()):n.kind==="cidr"?no(e.data,n.version)||(o=this._getOrReturnCtx(e,o),d(o,{validation:"cidr",code:c.invalid_string,message:n.message}),s.dirty()):n.kind==="base64"?Qs.test(e.data)||(o=this._getOrReturnCtx(e,o),d(o,{validation:"base64",code:c.invalid_string,message:n.message}),s.dirty()):n.kind==="base64url"?eo.test(e.data)||(o=this._getOrReturnCtx(e,o),d(o,{validation:"base64url",code:c.invalid_string,message:n.message}),s.dirty()):z.assertNever(n);return{status:s.value,value:e.data}}_regex(e,t,s){return this.refinement(o=>e.test(o),{validation:t,code:c.invalid_string,...y.errToObj(s)})}_addCheck(e){return new ue({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...y.errToObj(e)})}url(e){return this._addCheck({kind:"url",...y.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...y.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...y.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...y.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...y.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...y.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...y.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...y.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...y.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...y.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...y.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...y.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...y.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...y.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...y.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...y.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...y.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...y.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...y.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...y.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...y.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...y.errToObj(t)})}nonempty(e){return this.min(1,y.errToObj(e))}trim(){return new ue({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new ue({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new ue({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}ue.create=r=>new ue({checks:[],typeName:S.ZodString,coerce:r?.coerce??!1,...I(r)});function io(r,e){const t=(r.toString().split(".")[1]||"").length,s=(e.toString().split(".")[1]||"").length,o=t>s?t:s,n=Number.parseInt(r.toFixed(o).replace(".","")),i=Number.parseInt(e.toFixed(o).replace(".",""));return n%i/10**o}class Ie extends A{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==k.number){const n=this._getOrReturnCtx(e);return d(n,{code:c.invalid_type,expected:k.number,received:n.parsedType}),T}let s;const o=new te;for(const n of this._def.checks)n.kind==="int"?z.isInteger(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{code:c.invalid_type,expected:"integer",received:"float",message:n.message}),o.dirty()):n.kind==="min"?(n.inclusive?e.data<n.value:e.data<=n.value)&&(s=this._getOrReturnCtx(e,s),d(s,{code:c.too_small,minimum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),o.dirty()):n.kind==="max"?(n.inclusive?e.data>n.value:e.data>=n.value)&&(s=this._getOrReturnCtx(e,s),d(s,{code:c.too_big,maximum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),o.dirty()):n.kind==="multipleOf"?io(e.data,n.value)!==0&&(s=this._getOrReturnCtx(e,s),d(s,{code:c.not_multiple_of,multipleOf:n.value,message:n.message}),o.dirty()):n.kind==="finite"?Number.isFinite(e.data)||(s=this._getOrReturnCtx(e,s),d(s,{code:c.not_finite,message:n.message}),o.dirty()):z.assertNever(n);return{status:o.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,y.toString(t))}gt(e,t){return this.setLimit("min",e,!1,y.toString(t))}lte(e,t){return this.setLimit("max",e,!0,y.toString(t))}lt(e,t){return this.setLimit("max",e,!1,y.toString(t))}setLimit(e,t,s,o){return new Ie({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:y.toString(o)}]})}_addCheck(e){return new Ie({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:y.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:y.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:y.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:y.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:y.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:y.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:y.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:y.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:y.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&z.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const s of this._def.checks){if(s.kind==="finite"||s.kind==="int"||s.kind==="multipleOf")return!0;s.kind==="min"?(t===null||s.value>t)&&(t=s.value):s.kind==="max"&&(e===null||s.value<e)&&(e=s.value)}return Number.isFinite(t)&&Number.isFinite(e)}}Ie.create=r=>new Ie({checks:[],typeName:S.ZodNumber,coerce:r?.coerce||!1,...I(r)});class Ae extends A{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==k.bigint)return this._getInvalidInput(e);let s;const o=new te;for(const n of this._def.checks)n.kind==="min"?(n.inclusive?e.data<n.value:e.data<=n.value)&&(s=this._getOrReturnCtx(e,s),d(s,{code:c.too_small,type:"bigint",minimum:n.value,inclusive:n.inclusive,message:n.message}),o.dirty()):n.kind==="max"?(n.inclusive?e.data>n.value:e.data>=n.value)&&(s=this._getOrReturnCtx(e,s),d(s,{code:c.too_big,type:"bigint",maximum:n.value,inclusive:n.inclusive,message:n.message}),o.dirty()):n.kind==="multipleOf"?e.data%n.value!==BigInt(0)&&(s=this._getOrReturnCtx(e,s),d(s,{code:c.not_multiple_of,multipleOf:n.value,message:n.message}),o.dirty()):z.assertNever(n);return{status:o.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return d(t,{code:c.invalid_type,expected:k.bigint,received:t.parsedType}),T}gte(e,t){return this.setLimit("min",e,!0,y.toString(t))}gt(e,t){return this.setLimit("min",e,!1,y.toString(t))}lte(e,t){return this.setLimit("max",e,!0,y.toString(t))}lt(e,t){return this.setLimit("max",e,!1,y.toString(t))}setLimit(e,t,s,o){return new Ae({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:y.toString(o)}]})}_addCheck(e){return new Ae({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:y.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:y.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:y.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:y.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:y.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}Ae.create=r=>new Ae({checks:[],typeName:S.ZodBigInt,coerce:r?.coerce??!1,...I(r)});class ot extends A{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==k.boolean){const s=this._getOrReturnCtx(e);return d(s,{code:c.invalid_type,expected:k.boolean,received:s.parsedType}),T}return re(e.data)}}ot.create=r=>new ot({typeName:S.ZodBoolean,coerce:r?.coerce||!1,...I(r)});class $e extends A{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==k.date){const n=this._getOrReturnCtx(e);return d(n,{code:c.invalid_type,expected:k.date,received:n.parsedType}),T}if(Number.isNaN(e.data.getTime())){const n=this._getOrReturnCtx(e);return d(n,{code:c.invalid_date}),T}const s=new te;let o;for(const n of this._def.checks)n.kind==="min"?e.data.getTime()<n.value&&(o=this._getOrReturnCtx(e,o),d(o,{code:c.too_small,message:n.message,inclusive:!0,exact:!1,minimum:n.value,type:"date"}),s.dirty()):n.kind==="max"?e.data.getTime()>n.value&&(o=this._getOrReturnCtx(e,o),d(o,{code:c.too_big,message:n.message,inclusive:!0,exact:!1,maximum:n.value,type:"date"}),s.dirty()):z.assertNever(n);return{status:s.value,value:new Date(e.data.getTime())}}_addCheck(e){return new $e({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:y.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:y.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}}$e.create=r=>new $e({checks:[],coerce:r?.coerce||!1,typeName:S.ZodDate,...I(r)});class Ot extends A{_parse(e){if(this._getType(e)!==k.symbol){const s=this._getOrReturnCtx(e);return d(s,{code:c.invalid_type,expected:k.symbol,received:s.parsedType}),T}return re(e.data)}}Ot.create=r=>new Ot({typeName:S.ZodSymbol,...I(r)});class rt extends A{_parse(e){if(this._getType(e)!==k.undefined){const s=this._getOrReturnCtx(e);return d(s,{code:c.invalid_type,expected:k.undefined,received:s.parsedType}),T}return re(e.data)}}rt.create=r=>new rt({typeName:S.ZodUndefined,...I(r)});class nt extends A{_parse(e){if(this._getType(e)!==k.null){const s=this._getOrReturnCtx(e);return d(s,{code:c.invalid_type,expected:k.null,received:s.parsedType}),T}return re(e.data)}}nt.create=r=>new nt({typeName:S.ZodNull,...I(r)});class Je extends A{constructor(){super(...arguments),this._any=!0}_parse(e){return re(e.data)}}Je.create=r=>new Je({typeName:S.ZodAny,...I(r)});class je extends A{constructor(){super(...arguments),this._unknown=!0}_parse(e){return re(e.data)}}je.create=r=>new je({typeName:S.ZodUnknown,...I(r)});class we extends A{_parse(e){const t=this._getOrReturnCtx(e);return d(t,{code:c.invalid_type,expected:k.never,received:t.parsedType}),T}}we.create=r=>new we({typeName:S.ZodNever,...I(r)});class Rt extends A{_parse(e){if(this._getType(e)!==k.undefined){const s=this._getOrReturnCtx(e);return d(s,{code:c.invalid_type,expected:k.void,received:s.parsedType}),T}return re(e.data)}}Rt.create=r=>new Rt({typeName:S.ZodVoid,...I(r)});class ce extends A{_parse(e){const{ctx:t,status:s}=this._processInputParams(e),o=this._def;if(t.parsedType!==k.array)return d(t,{code:c.invalid_type,expected:k.array,received:t.parsedType}),T;if(o.exactLength!==null){const i=t.data.length>o.exactLength.value,a=t.data.length<o.exactLength.value;(i||a)&&(d(t,{code:i?c.too_big:c.too_small,minimum:a?o.exactLength.value:void 0,maximum:i?o.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:o.exactLength.message}),s.dirty())}if(o.minLength!==null&&t.data.length<o.minLength.value&&(d(t,{code:c.too_small,minimum:o.minLength.value,type:"array",inclusive:!0,exact:!1,message:o.minLength.message}),s.dirty()),o.maxLength!==null&&t.data.length>o.maxLength.value&&(d(t,{code:c.too_big,maximum:o.maxLength.value,type:"array",inclusive:!0,exact:!1,message:o.maxLength.message}),s.dirty()),t.common.async)return Promise.all([...t.data].map((i,a)=>o.type._parseAsync(new ge(t,i,t.path,a)))).then(i=>te.mergeArray(s,i));const n=[...t.data].map((i,a)=>o.type._parseSync(new ge(t,i,t.path,a)));return te.mergeArray(s,n)}get element(){return this._def.type}min(e,t){return new ce({...this._def,minLength:{value:e,message:y.toString(t)}})}max(e,t){return new ce({...this._def,maxLength:{value:e,message:y.toString(t)}})}length(e,t){return new ce({...this._def,exactLength:{value:e,message:y.toString(t)}})}nonempty(e){return this.min(1,e)}}ce.create=(r,e)=>new ce({type:r,minLength:null,maxLength:null,exactLength:null,typeName:S.ZodArray,...I(e)});function Ve(r){if(r instanceof q){const e={};for(const t in r.shape){const s=r.shape[t];e[t]=me.create(Ve(s))}return new q({...r._def,shape:()=>e})}else return r instanceof ce?new ce({...r._def,type:Ve(r.element)}):r instanceof me?me.create(Ve(r.unwrap())):r instanceof Re?Re.create(Ve(r.unwrap())):r instanceof fe?fe.create(r.items.map(e=>Ve(e))):r}class q extends A{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=z.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==k.object){const p=this._getOrReturnCtx(e);return d(p,{code:c.invalid_type,expected:k.object,received:p.parsedType}),T}const{status:s,ctx:o}=this._processInputParams(e),{shape:n,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof we&&this._def.unknownKeys==="strip"))for(const p in o.data)i.includes(p)||a.push(p);const _=[];for(const p of i){const l=n[p],m=o.data[p];_.push({key:{status:"valid",value:p},value:l._parse(new ge(o,m,o.path,p)),alwaysSet:p in o.data})}if(this._def.catchall instanceof we){const p=this._def.unknownKeys;if(p==="passthrough")for(const l of a)_.push({key:{status:"valid",value:l},value:{status:"valid",value:o.data[l]}});else if(p==="strict")a.length>0&&(d(o,{code:c.unrecognized_keys,keys:a}),s.dirty());else if(p!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const p=this._def.catchall;for(const l of a){const m=o.data[l];_.push({key:{status:"valid",value:l},value:p._parse(new ge(o,m,o.path,l)),alwaysSet:l in o.data})}}return o.common.async?Promise.resolve().then(async()=>{const p=[];for(const l of _){const m=await l.key,g=await l.value;p.push({key:m,value:g,alwaysSet:l.alwaysSet})}return p}).then(p=>te.mergeObjectSync(s,p)):te.mergeObjectSync(s,_)}get shape(){return this._def.shape()}strict(e){return y.errToObj,new q({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,s)=>{const o=this._def.errorMap?.(t,s).message??s.defaultError;return t.code==="unrecognized_keys"?{message:y.errToObj(e).message??o}:{message:o}}}:{}})}strip(){return new q({...this._def,unknownKeys:"strip"})}passthrough(){return new q({...this._def,unknownKeys:"passthrough"})}extend(e){return new q({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new q({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:S.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new q({...this._def,catchall:e})}pick(e){const t={};for(const s of z.objectKeys(e))e[s]&&this.shape[s]&&(t[s]=this.shape[s]);return new q({...this._def,shape:()=>t})}omit(e){const t={};for(const s of z.objectKeys(this.shape))e[s]||(t[s]=this.shape[s]);return new q({...this._def,shape:()=>t})}deepPartial(){return Ve(this)}partial(e){const t={};for(const s of z.objectKeys(this.shape)){const o=this.shape[s];e&&!e[s]?t[s]=o:t[s]=o.optional()}return new q({...this._def,shape:()=>t})}required(e){const t={};for(const s of z.objectKeys(this.shape))if(e&&!e[s])t[s]=this.shape[s];else{let n=this.shape[s];for(;n instanceof me;)n=n._def.innerType;t[s]=n}return new q({...this._def,shape:()=>t})}keyof(){return Ss(z.objectKeys(this.shape))}}q.create=(r,e)=>new q({shape:()=>r,unknownKeys:"strip",catchall:we.create(),typeName:S.ZodObject,...I(e)});q.strictCreate=(r,e)=>new q({shape:()=>r,unknownKeys:"strict",catchall:we.create(),typeName:S.ZodObject,...I(e)});q.lazycreate=(r,e)=>new q({shape:r,unknownKeys:"strip",catchall:we.create(),typeName:S.ZodObject,...I(e)});class it extends A{_parse(e){const{ctx:t}=this._processInputParams(e),s=this._def.options;function o(n){for(const a of n)if(a.result.status==="valid")return a.result;for(const a of n)if(a.result.status==="dirty")return t.common.issues.push(...a.ctx.common.issues),a.result;const i=n.map(a=>new ie(a.ctx.common.issues));return d(t,{code:c.invalid_union,unionErrors:i}),T}if(t.common.async)return Promise.all(s.map(async n=>{const i={...t,common:{...t.common,issues:[]},parent:null};return{result:await n._parseAsync({data:t.data,path:t.path,parent:i}),ctx:i}})).then(o);{let n;const i=[];for(const _ of s){const p={...t,common:{...t.common,issues:[]},parent:null},l=_._parseSync({data:t.data,path:t.path,parent:p});if(l.status==="valid")return l;l.status==="dirty"&&!n&&(n={result:l,ctx:p}),p.common.issues.length&&i.push(p.common.issues)}if(n)return t.common.issues.push(...n.ctx.common.issues),n.result;const a=i.map(_=>new ie(_));return d(t,{code:c.invalid_union,unionErrors:a}),T}}get options(){return this._def.options}}it.create=(r,e)=>new it({options:r,typeName:S.ZodUnion,...I(e)});const xe=r=>r instanceof _t?xe(r.schema):r instanceof le?xe(r.innerType()):r instanceof ut?[r.value]:r instanceof Oe?r.options:r instanceof ct?z.objectValues(r.enum):r instanceof lt?xe(r._def.innerType):r instanceof rt?[void 0]:r instanceof nt?[null]:r instanceof me?[void 0,...xe(r.unwrap())]:r instanceof Re?[null,...xe(r.unwrap())]:r instanceof Yt||r instanceof mt?xe(r.unwrap()):r instanceof dt?xe(r._def.innerType):[];class Lt extends A{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==k.object)return d(t,{code:c.invalid_type,expected:k.object,received:t.parsedType}),T;const s=this.discriminator,o=t.data[s],n=this.optionsMap.get(o);return n?t.common.async?n._parseAsync({data:t.data,path:t.path,parent:t}):n._parseSync({data:t.data,path:t.path,parent:t}):(d(t,{code:c.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[s]}),T)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,s){const o=new Map;for(const n of t){const i=xe(n.shape[e]);if(!i.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const a of i){if(o.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);o.set(a,n)}}return new Lt({typeName:S.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:o,...I(s)})}}function Gt(r,e){const t=ye(r),s=ye(e);if(r===e)return{valid:!0,data:r};if(t===k.object&&s===k.object){const o=z.objectKeys(e),n=z.objectKeys(r).filter(a=>o.indexOf(a)!==-1),i={...r,...e};for(const a of n){const _=Gt(r[a],e[a]);if(!_.valid)return{valid:!1};i[a]=_.data}return{valid:!0,data:i}}else if(t===k.array&&s===k.array){if(r.length!==e.length)return{valid:!1};const o=[];for(let n=0;n<r.length;n++){const i=r[n],a=e[n],_=Gt(i,a);if(!_.valid)return{valid:!1};o.push(_.data)}return{valid:!0,data:o}}else return t===k.date&&s===k.date&&+r==+e?{valid:!0,data:r}:{valid:!1}}class at extends A{_parse(e){const{status:t,ctx:s}=this._processInputParams(e),o=(n,i)=>{if(Vt(n)||Vt(i))return T;const a=Gt(n.value,i.value);return a.valid?((Zt(n)||Zt(i))&&t.dirty(),{status:t.value,value:a.data}):(d(s,{code:c.invalid_intersection_types}),T)};return s.common.async?Promise.all([this._def.left._parseAsync({data:s.data,path:s.path,parent:s}),this._def.right._parseAsync({data:s.data,path:s.path,parent:s})]).then(([n,i])=>o(n,i)):o(this._def.left._parseSync({data:s.data,path:s.path,parent:s}),this._def.right._parseSync({data:s.data,path:s.path,parent:s}))}}at.create=(r,e,t)=>new at({left:r,right:e,typeName:S.ZodIntersection,...I(t)});class fe extends A{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==k.array)return d(s,{code:c.invalid_type,expected:k.array,received:s.parsedType}),T;if(s.data.length<this._def.items.length)return d(s,{code:c.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),T;!this._def.rest&&s.data.length>this._def.items.length&&(d(s,{code:c.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const n=[...s.data].map((i,a)=>{const _=this._def.items[a]||this._def.rest;return _?_._parse(new ge(s,i,s.path,a)):null}).filter(i=>!!i);return s.common.async?Promise.all(n).then(i=>te.mergeArray(t,i)):te.mergeArray(t,n)}get items(){return this._def.items}rest(e){return new fe({...this._def,rest:e})}}fe.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new fe({items:r,typeName:S.ZodTuple,rest:null,...I(e)})};class pt extends A{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==k.object)return d(s,{code:c.invalid_type,expected:k.object,received:s.parsedType}),T;const o=[],n=this._def.keyType,i=this._def.valueType;for(const a in s.data)o.push({key:n._parse(new ge(s,a,s.path,a)),value:i._parse(new ge(s,s.data[a],s.path,a)),alwaysSet:a in s.data});return s.common.async?te.mergeObjectAsync(t,o):te.mergeObjectSync(t,o)}get element(){return this._def.valueType}static create(e,t,s){return t instanceof A?new pt({keyType:e,valueType:t,typeName:S.ZodRecord,...I(s)}):new pt({keyType:ue.create(),valueType:e,typeName:S.ZodRecord,...I(t)})}}class zt extends A{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==k.map)return d(s,{code:c.invalid_type,expected:k.map,received:s.parsedType}),T;const o=this._def.keyType,n=this._def.valueType,i=[...s.data.entries()].map(([a,_],p)=>({key:o._parse(new ge(s,a,s.path,[p,"key"])),value:n._parse(new ge(s,_,s.path,[p,"value"]))}));if(s.common.async){const a=new Map;return Promise.resolve().then(async()=>{for(const _ of i){const p=await _.key,l=await _.value;if(p.status==="aborted"||l.status==="aborted")return T;(p.status==="dirty"||l.status==="dirty")&&t.dirty(),a.set(p.value,l.value)}return{status:t.value,value:a}})}else{const a=new Map;for(const _ of i){const p=_.key,l=_.value;if(p.status==="aborted"||l.status==="aborted")return T;(p.status==="dirty"||l.status==="dirty")&&t.dirty(),a.set(p.value,l.value)}return{status:t.value,value:a}}}}zt.create=(r,e,t)=>new zt({valueType:e,keyType:r,typeName:S.ZodMap,...I(t)});class Be extends A{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==k.set)return d(s,{code:c.invalid_type,expected:k.set,received:s.parsedType}),T;const o=this._def;o.minSize!==null&&s.data.size<o.minSize.value&&(d(s,{code:c.too_small,minimum:o.minSize.value,type:"set",inclusive:!0,exact:!1,message:o.minSize.message}),t.dirty()),o.maxSize!==null&&s.data.size>o.maxSize.value&&(d(s,{code:c.too_big,maximum:o.maxSize.value,type:"set",inclusive:!0,exact:!1,message:o.maxSize.message}),t.dirty());const n=this._def.valueType;function i(_){const p=new Set;for(const l of _){if(l.status==="aborted")return T;l.status==="dirty"&&t.dirty(),p.add(l.value)}return{status:t.value,value:p}}const a=[...s.data.values()].map((_,p)=>n._parse(new ge(s,_,s.path,p)));return s.common.async?Promise.all(a).then(_=>i(_)):i(a)}min(e,t){return new Be({...this._def,minSize:{value:e,message:y.toString(t)}})}max(e,t){return new Be({...this._def,maxSize:{value:e,message:y.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}Be.create=(r,e)=>new Be({valueType:r,minSize:null,maxSize:null,typeName:S.ZodSet,...I(e)});class Ue extends A{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==k.function)return d(t,{code:c.invalid_type,expected:k.function,received:t.parsedType}),T;function s(a,_){return At({data:a,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,It(),He].filter(p=>!!p),issueData:{code:c.invalid_arguments,argumentsError:_}})}function o(a,_){return At({data:a,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,It(),He].filter(p=>!!p),issueData:{code:c.invalid_return_type,returnTypeError:_}})}const n={errorMap:t.common.contextualErrorMap},i=t.data;if(this._def.returns instanceof We){const a=this;return re(async function(..._){const p=new ie([]),l=await a._def.args.parseAsync(_,n).catch(f=>{throw p.addIssue(s(_,f)),p}),m=await Reflect.apply(i,this,l);return await a._def.returns._def.type.parseAsync(m,n).catch(f=>{throw p.addIssue(o(m,f)),p})})}else{const a=this;return re(function(..._){const p=a._def.args.safeParse(_,n);if(!p.success)throw new ie([s(_,p.error)]);const l=Reflect.apply(i,this,p.data),m=a._def.returns.safeParse(l,n);if(!m.success)throw new ie([o(l,m.error)]);return m.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new Ue({...this._def,args:fe.create(e).rest(je.create())})}returns(e){return new Ue({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,s){return new Ue({args:e||fe.create([]).rest(je.create()),returns:t||je.create(),typeName:S.ZodFunction,...I(s)})}}class _t extends A{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}_t.create=(r,e)=>new _t({getter:r,typeName:S.ZodLazy,...I(e)});class ut extends A{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return d(t,{received:t.data,code:c.invalid_literal,expected:this._def.value}),T}return{status:"valid",value:e.data}}get value(){return this._def.value}}ut.create=(r,e)=>new ut({value:r,typeName:S.ZodLiteral,...I(e)});function Ss(r,e){return new Oe({values:r,typeName:S.ZodEnum,...I(e)})}class Oe extends A{_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),s=this._def.values;return d(t,{expected:z.joinValues(s),received:t.parsedType,code:c.invalid_type}),T}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const t=this._getOrReturnCtx(e),s=this._def.values;return d(t,{received:t.data,code:c.invalid_enum_value,options:s}),T}return re(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return Oe.create(e,{...this._def,...t})}exclude(e,t=this._def){return Oe.create(this.options.filter(s=>!e.includes(s)),{...this._def,...t})}}Oe.create=Ss;class ct extends A{_parse(e){const t=z.getValidEnumValues(this._def.values),s=this._getOrReturnCtx(e);if(s.parsedType!==k.string&&s.parsedType!==k.number){const o=z.objectValues(t);return d(s,{expected:z.joinValues(o),received:s.parsedType,code:c.invalid_type}),T}if(this._cache||(this._cache=new Set(z.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const o=z.objectValues(t);return d(s,{received:s.data,code:c.invalid_enum_value,options:o}),T}return re(e.data)}get enum(){return this._def.values}}ct.create=(r,e)=>new ct({values:r,typeName:S.ZodNativeEnum,...I(e)});class We extends A{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==k.promise&&t.common.async===!1)return d(t,{code:c.invalid_type,expected:k.promise,received:t.parsedType}),T;const s=t.parsedType===k.promise?t.data:Promise.resolve(t.data);return re(s.then(o=>this._def.type.parseAsync(o,{path:t.path,errorMap:t.common.contextualErrorMap})))}}We.create=(r,e)=>new We({type:r,typeName:S.ZodPromise,...I(e)});class le extends A{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===S.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:s}=this._processInputParams(e),o=this._def.effect||null,n={addIssue:i=>{d(s,i),i.fatal?t.abort():t.dirty()},get path(){return s.path}};if(n.addIssue=n.addIssue.bind(n),o.type==="preprocess"){const i=o.transform(s.data,n);if(s.common.async)return Promise.resolve(i).then(async a=>{if(t.value==="aborted")return T;const _=await this._def.schema._parseAsync({data:a,path:s.path,parent:s});return _.status==="aborted"?T:_.status==="dirty"||t.value==="dirty"?Ze(_.value):_});{if(t.value==="aborted")return T;const a=this._def.schema._parseSync({data:i,path:s.path,parent:s});return a.status==="aborted"?T:a.status==="dirty"||t.value==="dirty"?Ze(a.value):a}}if(o.type==="refinement"){const i=a=>{const _=o.refinement(a,n);if(s.common.async)return Promise.resolve(_);if(_ instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(s.common.async===!1){const a=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});return a.status==="aborted"?T:(a.status==="dirty"&&t.dirty(),i(a.value),{status:t.value,value:a.value})}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(a=>a.status==="aborted"?T:(a.status==="dirty"&&t.dirty(),i(a.value).then(()=>({status:t.value,value:a.value}))))}if(o.type==="transform")if(s.common.async===!1){const i=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!Pe(i))return T;const a=o.transform(i.value,n);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(i=>Pe(i)?Promise.resolve(o.transform(i.value,n)).then(a=>({status:t.value,value:a})):T);z.assertNever(o)}}le.create=(r,e,t)=>new le({schema:r,typeName:S.ZodEffects,effect:e,...I(t)});le.createWithPreprocess=(r,e,t)=>new le({schema:e,effect:{type:"preprocess",transform:r},typeName:S.ZodEffects,...I(t)});class me extends A{_parse(e){return this._getType(e)===k.undefined?re(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}me.create=(r,e)=>new me({innerType:r,typeName:S.ZodOptional,...I(e)});class Re extends A{_parse(e){return this._getType(e)===k.null?re(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Re.create=(r,e)=>new Re({innerType:r,typeName:S.ZodNullable,...I(e)});class lt extends A{_parse(e){const{ctx:t}=this._processInputParams(e);let s=t.data;return t.parsedType===k.undefined&&(s=this._def.defaultValue()),this._def.innerType._parse({data:s,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}lt.create=(r,e)=>new lt({innerType:r,typeName:S.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...I(e)});class dt extends A{_parse(e){const{ctx:t}=this._processInputParams(e),s={...t,common:{...t.common,issues:[]}},o=this._def.innerType._parse({data:s.data,path:s.path,parent:{...s}});return st(o)?o.then(n=>({status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new ie(s.common.issues)},input:s.data})})):{status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new ie(s.common.issues)},input:s.data})}}removeCatch(){return this._def.innerType}}dt.create=(r,e)=>new dt({innerType:r,typeName:S.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...I(e)});class Ct extends A{_parse(e){if(this._getType(e)!==k.nan){const s=this._getOrReturnCtx(e);return d(s,{code:c.invalid_type,expected:k.nan,received:s.parsedType}),T}return{status:"valid",value:e.data}}}Ct.create=r=>new Ct({typeName:S.ZodNaN,...I(r)});const ao=Symbol("zod_brand");class Yt extends A{_parse(e){const{ctx:t}=this._processInputParams(e),s=t.data;return this._def.type._parse({data:s,path:t.path,parent:t})}unwrap(){return this._def.type}}class gt extends A{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.common.async)return(async()=>{const n=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});return n.status==="aborted"?T:n.status==="dirty"?(t.dirty(),Ze(n.value)):this._def.out._parseAsync({data:n.value,path:s.path,parent:s})})();{const o=this._def.in._parseSync({data:s.data,path:s.path,parent:s});return o.status==="aborted"?T:o.status==="dirty"?(t.dirty(),{status:"dirty",value:o.value}):this._def.out._parseSync({data:o.value,path:s.path,parent:s})}}static create(e,t){return new gt({in:e,out:t,typeName:S.ZodPipeline})}}class mt extends A{_parse(e){const t=this._def.innerType._parse(e),s=o=>(Pe(o)&&(o.value=Object.freeze(o.value)),o);return st(t)?t.then(o=>s(o)):s(t)}unwrap(){return this._def.innerType}}mt.create=(r,e)=>new mt({innerType:r,typeName:S.ZodReadonly,...I(e)});function ns(r,e){const t=typeof r=="function"?r(e):typeof r=="string"?{message:r}:r;return typeof t=="string"?{message:t}:t}function Es(r,e={},t){return r?Je.create().superRefine((s,o)=>{const n=r(s);if(n instanceof Promise)return n.then(i=>{if(!i){const a=ns(e,s),_=a.fatal??t??!0;o.addIssue({code:"custom",...a,fatal:_})}});if(!n){const i=ns(e,s),a=i.fatal??t??!0;o.addIssue({code:"custom",...i,fatal:a})}}):Je.create()}const po={object:q.lazycreate};var S;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(S||(S={}));const _o=(r,e={message:`Input not instance of ${r.name}`})=>Es(t=>t instanceof r,e),C=ue.create,he=Ie.create,uo=Ct.create,co=Ae.create,ft=ot.create,lo=$e.create,mo=Ot.create,ho=rt.create,Is=nt.create,ze=Je.create,Mt=je.create,go=we.create,fo=Rt.create,Fe=ce.create,L=q.create,ko=q.strictCreate,De=it.create,vo=Lt.create,xo=at.create,yo=fe.create,kt=pt.create,bo=zt.create,wo=Be.create,To=Ue.create,As=_t.create,oe=ut.create,jt=Oe.create,So=ct.create,Eo=We.create,is=le.create,Io=me.create,Ao=Re.create,Oo=le.createWithPreprocess,Ro=gt.create,zo=()=>C().optional(),Co=()=>he().optional(),No=()=>ft().optional(),Et={string:r=>ue.create({...r,coerce:!0}),number:r=>Ie.create({...r,coerce:!0}),boolean:r=>ot.create({...r,coerce:!0}),bigint:r=>Ae.create({...r,coerce:!0}),date:r=>$e.create({...r,coerce:!0})},Lo=T,ee=Object.freeze(Object.defineProperty({__proto__:null,BRAND:ao,DIRTY:Ze,EMPTY_PATH:Bs,INVALID:T,NEVER:Lo,OK:re,ParseStatus:te,Schema:A,ZodAny:Je,ZodArray:ce,ZodBigInt:Ae,ZodBoolean:ot,ZodBranded:Yt,ZodCatch:dt,ZodDate:$e,ZodDefault:lt,ZodDiscriminatedUnion:Lt,ZodEffects:le,ZodEnum:Oe,ZodError:ie,get ZodFirstPartyTypeKind(){return S},ZodFunction:Ue,ZodIntersection:at,ZodIssueCode:c,ZodLazy:_t,ZodLiteral:ut,ZodMap:zt,ZodNaN:Ct,ZodNativeEnum:ct,ZodNever:we,ZodNull:nt,ZodNullable:Re,ZodNumber:Ie,ZodObject:q,ZodOptional:me,ZodParsedType:k,ZodPipeline:gt,ZodPromise:We,ZodReadonly:mt,ZodRecord:pt,ZodSchema:A,ZodSet:Be,ZodString:ue,ZodSymbol:Ot,ZodTransformer:le,ZodTuple:fe,ZodType:A,ZodUndefined:rt,ZodUnion:it,ZodUnknown:je,ZodVoid:Rt,addIssueToContext:d,any:ze,array:Fe,bigint:co,boolean:ft,coerce:Et,custom:Es,date:lo,datetimeRegex:Ts,defaultErrorMap:He,discriminatedUnion:vo,effect:is,enum:jt,function:To,getErrorMap:It,getParsedType:ye,instanceof:_o,intersection:xo,isAborted:Vt,isAsync:st,isDirty:Zt,isValid:Pe,late:po,lazy:As,literal:oe,makeIssue:At,map:bo,nan:uo,nativeEnum:So,never:go,null:Is,nullable:Ao,number:he,object:L,get objectUtil(){return qt},oboolean:No,onumber:Co,optional:Io,ostring:zo,pipeline:Ro,preprocess:Oo,promise:Eo,quotelessJson:Ps,record:kt,set:wo,setErrorMap:$s,strictObject:ko,string:C,symbol:mo,transformer:is,tuple:yo,undefined:ho,union:De,unknown:Mt,get util(){return z},void:fo},Symbol.toStringTag,{value:"Module"})),Ne=()=>ee.preprocess(r=>{if(typeof r=="boolean")return r;if(typeof r=="number")return r===1;if(typeof r=="string"){const e=r.trim().toLowerCase();if(["1","true","yes","y","on"].includes(e))return!0;if(["0","false","no","n","off"].includes(e))return!1}},ee.boolean()),Mo=()=>ee.preprocess(r=>{if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"){const e=Number(r);if(Number.isFinite(e))return e}},ee.number()),Os=ee.object({NODE_ENV:ee.enum(["development","production","test"]).default("production"),AGENT_CONTAINER_MODE:Ne().default(!1),AGENT_API_KEY:ee.string().optional(),AGENT_ORGANIZATION_ID:ee.string().optional(),AGENT_SESSION_ID:ee.string().optional(),AGENT_SERVER_URL:ee.string().optional(),AGENT_TYPE:ee.string().optional(),AGENT_DEVICE_GUID:ee.string().optional(),AGI_NETLOG_ENABLE:Ne().default(!0),AGI_NETLOG_DEBUG:Ne().optional(),AGI_NETLOG_FILE:ee.string().optional(),AGI_NETLOG_MAX_BODY:Mo().optional(),AGI_NETLOG_REMOTE_ENABLE:Ne().default(!0),AGI_NETLOG_REMOTE_FILE:ee.string().optional(),DEBUG:Ne().default(!1),VERBOSE:Ne().default(!1),LOG_LEVEL:ee.string().optional(),HOSTNAME:ee.string().optional(),VITE_SAVE_RAW:Ne().default(!1)});function Tt(r=!1){return r?"https://agiflow.io":"https://agiflow.io"}let D=Os.parse(process.env);class se{static refresh(){D=Os.parse(process.env)}static get isContainerMode(){return!!D.AGENT_CONTAINER_MODE}static get apiKey(){return D.AGENT_API_KEY||process.env.AGENT_API_KEY}static get organizationId(){return D.AGENT_ORGANIZATION_ID||process.env.AGENT_ORGANIZATION_ID}static get sessionId(){return D.AGENT_SESSION_ID||process.env.AGENT_SESSION_ID}static get serverUrl(){return D.AGENT_SERVER_URL||process.env.AGENT_SERVER_URL||Tt(this.isContainerMode)}static get isNetlogEnabled(){return!!D.AGI_NETLOG_ENABLE}static get isNetlogDebug(){return!!D.AGI_NETLOG_DEBUG}static get isNetlogRemoteEnabled(){return!!D.AGI_NETLOG_REMOTE_ENABLE}static get isDebugMode(){return D.DEBUG}static get isVerbose(){return D.VERBOSE}static get logLevel(){return D.LOG_LEVEL??(D.DEBUG?"debug":"info")}static get nodeEnv(){return D.NODE_ENV}static get homeDir(){return process.env.HOME||process.env.USERPROFILE}static get isMacOS(){return process.platform==="darwin"}static get hostname(){return D.HOSTNAME}static get netlogMaxBody(){return D.AGI_NETLOG_MAX_BODY}static get netlogFile(){return D.AGI_NETLOG_FILE}static get netlogRemoteFile(){return D.AGI_NETLOG_REMOTE_FILE}static get agentType(){return D.AGENT_TYPE||process.env.AGENT_TYPE}static get deviceGuid(){return D.AGENT_DEVICE_GUID}static get isSaveRawEnabled(){return!!D.VITE_SAVE_RAW}static serializeEnv(){const e={...process.env};for(const[t,s]of Object.entries(D))s!==void 0&&(typeof s=="string"?e[t]=s:typeof s=="number"?e[t]=String(s):typeof s=="boolean"?e[t]=s?"true":"false":e[t]=String(s));return e}static toChildProcess(){const e=this.serializeEnv();return e.AGENT_SERVER_URL||(e.AGENT_SERVER_URL=Tt(this.isContainerMode)),e.LOG_LEVEL||(e.LOG_LEVEL=this.logLevel),e}static toDocker(){const e=this.serializeEnv();return e.AGENT_CONTAINER_MODE="true",e.AGENT_SERVER_URL||(e.AGENT_SERVER_URL=Tt(!0)),e.LOG_LEVEL||(e.LOG_LEVEL=this.logLevel),e}static toPty(){const e=this.serializeEnv();return e.AGENT_SERVER_URL||(e.AGENT_SERVER_URL=Tt(this.isContainerMode)),e.LOG_LEVEL||(e.LOG_LEVEL=this.logLevel),e}static getEnvs(){return D}}class tt{logStream;logPath;constructor(e){this.logPath=e;const t=be.dirname(this.logPath);Me.existsSync(t)||Me.mkdirSync(t,{recursive:!0}),this.logStream=Me.createWriteStream(this.logPath,{flags:"a"}),this.logStream.on("error",s=>{console.error(`[FileLogger] Error writing to log file: ${s.message}`)})}info(e,t){this.log(30,e,t)}debug(e,t){this.log(20,e,t)}warn(e,t){this.log(40,e,t)}error(e,t){this.log(50,e,t)}log(e,t,s){const o={time:new Date().toISOString(),level:e,msg:t,...s};try{this.logStream.write(JSON.stringify(o)+`
2
- `)}catch(n){console.error(`[FileLogger] Failed to write log entry: ${n}`)}}close(){this.logStream&&!this.logStream.destroyed&&this.logStream.end()}getLogPath(){return this.logPath}static shouldDebug(){return se.isDebugMode||se.isNetlogDebug}}const jo={max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:15e-6,output_cost_per_token:6e-5,cache_read_input_token_cost:75e-7,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0},Po={max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:2e-6,output_cost_per_token:8e-6,cache_read_input_token_cost:5e-7,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!1,supports_vision:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0,supported_endpoints:["/v1/responses","/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image"],supported_output_modalities:["text"]},$o={"gpt-4":{max_tokens:4096,max_input_tokens:8192,max_output_tokens:4096,input_cost_per_token:3e-5,output_cost_per_token:6e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4.1":{max_tokens:32768,max_input_tokens:1047576,max_output_tokens:32768,input_cost_per_token:2e-6,output_cost_per_token:8e-6,input_cost_per_token_batches:1e-6,output_cost_per_token_batches:4e-6,cache_read_input_token_cost:5e-7,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"gpt-4.1-2025-04-14":{max_tokens:32768,max_input_tokens:1047576,max_output_tokens:32768,input_cost_per_token:2e-6,output_cost_per_token:8e-6,input_cost_per_token_batches:1e-6,output_cost_per_token_batches:4e-6,cache_read_input_token_cost:5e-7,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"gpt-4.1-mini":{max_tokens:32768,max_input_tokens:1047576,max_output_tokens:32768,input_cost_per_token:4e-7,output_cost_per_token:16e-7,input_cost_per_token_batches:2e-7,output_cost_per_token_batches:8e-7,cache_read_input_token_cost:1e-7,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"gpt-4.1-mini-2025-04-14":{max_tokens:32768,max_input_tokens:1047576,max_output_tokens:32768,input_cost_per_token:4e-7,output_cost_per_token:16e-7,input_cost_per_token_batches:2e-7,output_cost_per_token_batches:8e-7,cache_read_input_token_cost:1e-7,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"gpt-4.1-nano":{max_tokens:32768,max_input_tokens:1047576,max_output_tokens:32768,input_cost_per_token:1e-7,output_cost_per_token:4e-7,input_cost_per_token_batches:5e-8,output_cost_per_token_batches:2e-7,cache_read_input_token_cost:25e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"gpt-4.1-nano-2025-04-14":{max_tokens:32768,max_input_tokens:1047576,max_output_tokens:32768,input_cost_per_token:1e-7,output_cost_per_token:4e-7,input_cost_per_token_batches:5e-8,output_cost_per_token_batches:2e-7,cache_read_input_token_cost:25e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"gpt-4o":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,output_cost_per_token:1e-5,input_cost_per_token_batches:125e-8,output_cost_per_token_batches:5e-6,cache_read_input_token_cost:125e-8,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"watsonx/ibm/granite-3-8b-instruct":{max_tokens:8192,max_input_tokens:8192,max_output_tokens:1024,input_cost_per_token:2e-4,output_cost_per_token:2e-4,litellm_provider:"watsonx",mode:"chat",supports_function_calling:!0,supports_tool_choice:!0,supports_parallel_function_calling:!1,supports_vision:!1,supports_audio_input:!1,supports_audio_output:!1,supports_prompt_caching:!0,supports_response_schema:!0,supports_system_messages:!0},"watsonx/mistralai/mistral-large":{max_tokens:131072,max_input_tokens:131072,max_output_tokens:16384,input_cost_per_token:3e-6,output_cost_per_token:1e-5,litellm_provider:"watsonx",mode:"chat",supports_function_calling:!0,supports_tool_choice:!0,supports_parallel_function_calling:!1,supports_vision:!1,supports_audio_input:!1,supports_audio_output:!1,supports_prompt_caching:!0,supports_response_schema:!0,supports_system_messages:!0},"gpt-4o-search-preview-2025-03-11":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,output_cost_per_token:1e-5,input_cost_per_token_batches:125e-8,output_cost_per_token_batches:5e-6,cache_read_input_token_cost:125e-8,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-search-preview":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,output_cost_per_token:1e-5,input_cost_per_token_batches:125e-8,output_cost_per_token_batches:5e-6,cache_read_input_token_cost:125e-8,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_web_search:!0,search_context_cost_per_query:{search_context_size_low:.03,search_context_size_medium:.035,search_context_size_high:.05}},"gpt-4.5-preview":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:75e-6,output_cost_per_token:15e-5,input_cost_per_token_batches:375e-7,output_cost_per_token_batches:75e-6,cache_read_input_token_cost:375e-7,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4.5-preview-2025-02-27":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:75e-6,output_cost_per_token:15e-5,input_cost_per_token_batches:375e-7,output_cost_per_token_batches:75e-6,cache_read_input_token_cost:375e-7,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,deprecation_date:"2025-07-14"},"gpt-4o-audio-preview":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,input_cost_per_audio_token:1e-4,output_cost_per_token:1e-5,output_cost_per_audio_token:2e-4,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-audio-preview-2024-12-17":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,input_cost_per_audio_token:4e-5,output_cost_per_token:1e-5,output_cost_per_audio_token:8e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-audio-preview-2024-10-01":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,input_cost_per_audio_token:1e-4,output_cost_per_token:1e-5,output_cost_per_audio_token:2e-4,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-audio-preview-2025-06-03":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,input_cost_per_audio_token:4e-5,output_cost_per_token:1e-5,output_cost_per_audio_token:8e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-mini-audio-preview":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:15e-8,input_cost_per_audio_token:1e-5,output_cost_per_token:6e-7,output_cost_per_audio_token:2e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-mini-audio-preview-2024-12-17":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:15e-8,input_cost_per_audio_token:1e-5,output_cost_per_token:6e-7,output_cost_per_audio_token:2e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-mini":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:15e-8,output_cost_per_token:6e-7,input_cost_per_token_batches:75e-9,output_cost_per_token_batches:3e-7,cache_read_input_token_cost:75e-9,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-mini-search-preview-2025-03-11":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:15e-8,output_cost_per_token:6e-7,input_cost_per_token_batches:75e-9,output_cost_per_token_batches:3e-7,cache_read_input_token_cost:75e-9,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-mini-search-preview":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:15e-8,output_cost_per_token:6e-7,input_cost_per_token_batches:75e-9,output_cost_per_token_batches:3e-7,cache_read_input_token_cost:75e-9,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_web_search:!0,search_context_cost_per_query:{search_context_size_low:.025,search_context_size_medium:.0275,search_context_size_high:.03}},"gpt-4o-mini-2024-07-18":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:15e-8,output_cost_per_token:6e-7,input_cost_per_token_batches:75e-9,output_cost_per_token_batches:3e-7,cache_read_input_token_cost:75e-9,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,search_context_cost_per_query:{search_context_size_low:.025,search_context_size_medium:.0275,search_context_size_high:.03}},"gpt-5":{max_tokens:128e3,max_input_tokens:4e5,max_output_tokens:128e3,input_cost_per_token:125e-8,output_cost_per_token:1e-5,cache_read_input_token_cost:125e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0,supports_reasoning:!0},"gpt-5-mini":{max_tokens:128e3,max_input_tokens:4e5,max_output_tokens:128e3,input_cost_per_token:25e-8,output_cost_per_token:2e-6,cache_read_input_token_cost:25e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0,supports_reasoning:!0},"gpt-5-nano":{max_tokens:128e3,max_input_tokens:4e5,max_output_tokens:128e3,input_cost_per_token:5e-8,output_cost_per_token:4e-7,cache_read_input_token_cost:5e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0,supports_reasoning:!0},"gpt-5-chat":{max_tokens:128e3,max_input_tokens:4e5,max_output_tokens:128e3,input_cost_per_token:125e-8,output_cost_per_token:1e-5,cache_read_input_token_cost:125e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!1,supports_parallel_function_calling:!1,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!1,supports_native_streaming:!0,supports_reasoning:!0},"gpt-5-chat-latest":{max_tokens:128e3,max_input_tokens:4e5,max_output_tokens:128e3,input_cost_per_token:125e-8,output_cost_per_token:1e-5,cache_read_input_token_cost:125e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!1,supports_parallel_function_calling:!1,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!1,supports_native_streaming:!0,supports_reasoning:!0},"gpt-5-2025-08-07":{max_tokens:128e3,max_input_tokens:4e5,max_output_tokens:128e3,input_cost_per_token:125e-8,output_cost_per_token:1e-5,cache_read_input_token_cost:125e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0,supports_reasoning:!0},"gpt-5-mini-2025-08-07":{max_tokens:128e3,max_input_tokens:4e5,max_output_tokens:128e3,input_cost_per_token:25e-8,output_cost_per_token:2e-6,cache_read_input_token_cost:25e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0,supports_reasoning:!0},"gpt-5-nano-2025-08-07":{max_tokens:128e3,max_input_tokens:4e5,max_output_tokens:128e3,input_cost_per_token:5e-8,output_cost_per_token:4e-7,cache_read_input_token_cost:5e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0,supports_reasoning:!0},"codex-mini-latest":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:15e-7,output_cost_per_token:6e-6,cache_read_input_token_cost:375e-9,litellm_provider:"openai",mode:"responses",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supported_modalities:["text","image"],supported_output_modalities:["text"],supported_endpoints:["/v1/responses"]},"o1-pro":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:15e-5,output_cost_per_token:6e-4,input_cost_per_token_batches:75e-6,output_cost_per_token_batches:3e-4,litellm_provider:"openai",mode:"responses",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_native_streaming:!1,supports_reasoning:!0,supported_modalities:["text","image"],supported_output_modalities:["text"],supported_endpoints:["/v1/responses","/v1/batch"]},"o1-pro-2025-03-19":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:15e-5,output_cost_per_token:6e-4,input_cost_per_token_batches:75e-6,output_cost_per_token_batches:3e-4,litellm_provider:"openai",mode:"responses",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_native_streaming:!1,supports_reasoning:!0,supported_modalities:["text","image"],supported_output_modalities:["text"],supported_endpoints:["/v1/responses","/v1/batch"]},o1:jo,"o1-mini":{max_tokens:65536,max_input_tokens:128e3,max_output_tokens:65536,input_cost_per_token:11e-7,output_cost_per_token:44e-7,cache_read_input_token_cost:55e-8,litellm_provider:"openai",mode:"chat",supports_vision:!0,supports_pdf_input:!0,supports_prompt_caching:!0},"o3-deep-research":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:1e-5,output_cost_per_token:4e-5,input_cost_per_token_batches:5e-6,output_cost_per_token_batches:2e-5,cache_read_input_token_cost:25e-7,litellm_provider:"openai",mode:"responses",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"o3-deep-research-2025-06-26":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:1e-5,output_cost_per_token:4e-5,input_cost_per_token_batches:5e-6,output_cost_per_token_batches:2e-5,cache_read_input_token_cost:25e-7,litellm_provider:"openai",mode:"responses",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"o3-pro":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:2e-5,input_cost_per_token_batches:1e-5,output_cost_per_token_batches:4e-5,output_cost_per_token:8e-5,litellm_provider:"openai",mode:"responses",supports_function_calling:!0,supports_parallel_function_calling:!1,supports_vision:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0,supported_endpoints:["/v1/responses","/v1/batch"],supported_modalities:["text","image"],supported_output_modalities:["text"]},"o3-pro-2025-06-10":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:2e-5,input_cost_per_token_batches:1e-5,output_cost_per_token_batches:4e-5,output_cost_per_token:8e-5,litellm_provider:"openai",mode:"responses",supports_function_calling:!0,supports_parallel_function_calling:!1,supports_vision:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0,supported_endpoints:["/v1/responses","/v1/batch"],supported_modalities:["text","image"],supported_output_modalities:["text"]},o3:Po,"o3-2025-04-16":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:2e-6,output_cost_per_token:8e-6,cache_read_input_token_cost:5e-7,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!1,supports_vision:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0,supported_endpoints:["/v1/responses","/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image"],supported_output_modalities:["text"]},"o3-mini":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:11e-7,output_cost_per_token:44e-7,cache_read_input_token_cost:55e-8,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!1,supports_vision:!1,supports_prompt_caching:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0},"o3-mini-2025-01-31":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:11e-7,output_cost_per_token:44e-7,cache_read_input_token_cost:55e-8,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!1,supports_vision:!1,supports_prompt_caching:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0},"o4-mini":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:11e-7,output_cost_per_token:44e-7,cache_read_input_token_cost:275e-9,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!1,supports_vision:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0},"o4-mini-deep-research":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:2e-6,output_cost_per_token:8e-6,input_cost_per_token_batches:1e-6,output_cost_per_token_batches:4e-6,cache_read_input_token_cost:5e-7,litellm_provider:"openai",mode:"responses",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"o4-mini-deep-research-2025-06-26":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:2e-6,output_cost_per_token:8e-6,input_cost_per_token_batches:1e-6,output_cost_per_token_batches:4e-6,cache_read_input_token_cost:5e-7,litellm_provider:"openai",mode:"responses",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"o4-mini-2025-04-16":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:11e-7,output_cost_per_token:44e-7,cache_read_input_token_cost:275e-9,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!1,supports_vision:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0},"o1-mini-2024-09-12":{max_tokens:65536,max_input_tokens:128e3,max_output_tokens:65536,input_cost_per_token:3e-6,output_cost_per_token:12e-6,cache_read_input_token_cost:15e-7,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_vision:!0,supports_reasoning:!0,supports_prompt_caching:!0},"o1-preview":{max_tokens:32768,max_input_tokens:128e3,max_output_tokens:32768,input_cost_per_token:15e-6,output_cost_per_token:6e-5,cache_read_input_token_cost:75e-7,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_vision:!0,supports_reasoning:!0,supports_prompt_caching:!0},"o1-preview-2024-09-12":{max_tokens:32768,max_input_tokens:128e3,max_output_tokens:32768,input_cost_per_token:15e-6,output_cost_per_token:6e-5,cache_read_input_token_cost:75e-7,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_vision:!0,supports_reasoning:!0,supports_prompt_caching:!0},"o1-2024-12-17":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:15e-6,output_cost_per_token:6e-5,cache_read_input_token_cost:75e-7,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0},"chatgpt-4o-latest":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:5e-6,output_cost_per_token:15e-6,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-2024-05-13":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:5e-6,output_cost_per_token:15e-6,input_cost_per_token_batches:25e-7,output_cost_per_token_batches:75e-7,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-2024-08-06":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,output_cost_per_token:1e-5,input_cost_per_token_batches:125e-8,output_cost_per_token_batches:5e-6,cache_read_input_token_cost:125e-8,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-2024-11-20":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,output_cost_per_token:1e-5,input_cost_per_token_batches:125e-8,output_cost_per_token_batches:5e-6,cache_read_input_token_cost:125e-8,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-realtime":{max_tokens:4096,max_input_tokens:32e3,max_output_tokens:4096,input_cost_per_token:4e-6,cache_read_input_token_cost:4e-7,output_cost_per_token:16e-6,input_cost_per_audio_token:32e-6,output_cost_per_audio_token:64e-6,cache_creation_input_audio_token_cost:4e-7,input_cost_per_image:5e-6,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0,supported_endpoints:["/v1/realtime"],supported_modalities:["text","image","audio"],supported_output_modalities:["text","audio"]},"gpt-realtime-2025-08-28":{max_tokens:4096,max_input_tokens:32e3,max_output_tokens:4096,input_cost_per_token:4e-6,cache_read_input_token_cost:4e-7,output_cost_per_token:16e-6,input_cost_per_audio_token:32e-6,output_cost_per_audio_token:64e-6,cache_creation_input_audio_token_cost:4e-7,input_cost_per_image:5e-6,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0,supported_endpoints:["/v1/realtime"],supported_modalities:["text","image","audio"],supported_output_modalities:["text","audio"]},"gpt-4o-realtime-preview-2024-10-01":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:5e-6,input_cost_per_audio_token:1e-4,cache_read_input_token_cost:25e-7,cache_creation_input_audio_token_cost:2e-5,output_cost_per_token:2e-5,output_cost_per_audio_token:2e-4,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-realtime-preview":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:5e-6,input_cost_per_audio_token:4e-5,cache_read_input_token_cost:25e-7,output_cost_per_token:2e-5,output_cost_per_audio_token:8e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-realtime-preview-2024-12-17":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:5e-6,input_cost_per_audio_token:4e-5,cache_read_input_token_cost:25e-7,output_cost_per_token:2e-5,output_cost_per_audio_token:8e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-realtime-preview-2025-06-03":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:5e-6,input_cost_per_audio_token:4e-5,cache_read_input_token_cost:25e-7,output_cost_per_token:2e-5,output_cost_per_audio_token:8e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-mini-realtime-preview":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:6e-7,input_cost_per_audio_token:1e-5,cache_read_input_token_cost:3e-7,cache_creation_input_audio_token_cost:3e-7,output_cost_per_token:24e-7,output_cost_per_audio_token:2e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-mini-realtime-preview-2024-12-17":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:6e-7,input_cost_per_audio_token:1e-5,cache_read_input_token_cost:3e-7,cache_creation_input_audio_token_cost:3e-7,output_cost_per_token:24e-7,output_cost_per_audio_token:2e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-turbo-preview":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:1e-5,output_cost_per_token:3e-5,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-0314":{max_tokens:4096,max_input_tokens:8192,max_output_tokens:4096,input_cost_per_token:3e-5,output_cost_per_token:6e-5,litellm_provider:"openai",mode:"chat",supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-0613":{max_tokens:4096,max_input_tokens:8192,max_output_tokens:4096,input_cost_per_token:3e-5,output_cost_per_token:6e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,deprecation_date:"2025-06-06",supports_tool_choice:!0},"gpt-4-32k":{max_tokens:4096,max_input_tokens:32768,max_output_tokens:4096,input_cost_per_token:6e-5,output_cost_per_token:12e-5,litellm_provider:"openai",mode:"chat",supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-32k-0314":{max_tokens:4096,max_input_tokens:32768,max_output_tokens:4096,input_cost_per_token:6e-5,output_cost_per_token:12e-5,litellm_provider:"openai",mode:"chat",supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-32k-0613":{max_tokens:4096,max_input_tokens:32768,max_output_tokens:4096,input_cost_per_token:6e-5,output_cost_per_token:12e-5,litellm_provider:"openai",mode:"chat",supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-turbo":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:1e-5,output_cost_per_token:3e-5,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-turbo-2024-04-09":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:1e-5,output_cost_per_token:3e-5,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-1106-preview":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:1e-5,output_cost_per_token:3e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-0125-preview":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:1e-5,output_cost_per_token:3e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-vision-preview":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:1e-5,output_cost_per_token:3e-5,litellm_provider:"openai",mode:"chat",supports_vision:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_system_messages:!0,deprecation_date:"2024-12-06",supports_tool_choice:!0},"gpt-4-1106-vision-preview":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:1e-5,output_cost_per_token:3e-5,litellm_provider:"openai",mode:"chat",supports_vision:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_system_messages:!0,deprecation_date:"2024-12-06",supports_tool_choice:!0},"gpt-3.5-turbo":{max_tokens:4097,max_input_tokens:16385,max_output_tokens:4096,input_cost_per_token:15e-7,output_cost_per_token:2e-6,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-3.5-turbo-0301":{max_tokens:4097,max_input_tokens:4097,max_output_tokens:4096,input_cost_per_token:15e-7,output_cost_per_token:2e-6,litellm_provider:"openai",mode:"chat",supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-3.5-turbo-0613":{max_tokens:4097,max_input_tokens:4097,max_output_tokens:4096,input_cost_per_token:15e-7,output_cost_per_token:2e-6,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-3.5-turbo-1106":{max_tokens:16385,max_input_tokens:16385,max_output_tokens:4096,input_cost_per_token:1e-6,output_cost_per_token:2e-6,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-3.5-turbo-0125":{max_tokens:16385,max_input_tokens:16385,max_output_tokens:4096,input_cost_per_token:5e-7,output_cost_per_token:15e-7,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-3.5-turbo-16k":{max_tokens:16385,max_input_tokens:16385,max_output_tokens:4096,input_cost_per_token:3e-6,output_cost_per_token:4e-6,litellm_provider:"openai",mode:"chat",supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-3.5-turbo-16k-0613":{max_tokens:16385,max_input_tokens:16385,max_output_tokens:4096,input_cost_per_token:3e-6,output_cost_per_token:4e-6,litellm_provider:"openai",mode:"chat",supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-transcribe":{mode:"audio_transcription",max_input_tokens:16e3,max_output_tokens:2e3,input_cost_per_token:25e-7,input_cost_per_audio_token:6e-6,output_cost_per_token:1e-5,litellm_provider:"openai",supported_endpoints:["/v1/audio/transcriptions"]},"gpt-4o-mini-transcribe":{mode:"audio_transcription",max_input_tokens:16e3,max_output_tokens:2e3,input_cost_per_token:125e-8,input_cost_per_audio_token:3e-6,output_cost_per_token:5e-6,litellm_provider:"openai",supported_endpoints:["/v1/audio/transcriptions"]},"gpt-4o-mini-tts":{mode:"audio_speech",input_cost_per_token:25e-7,output_cost_per_token:1e-5,output_cost_per_audio_token:12e-6,output_cost_per_second:25e-5,litellm_provider:"openai",supported_modalities:["text","audio"],supported_output_modalities:["audio"],supported_endpoints:["/v1/audio/speech"]},"claude-3-haiku-20240307":{max_tokens:4096,max_input_tokens:2e5,max_output_tokens:4096,input_cost_per_token:25e-8,output_cost_per_token:125e-8,cache_creation_input_token_cost:3e-7,cache_read_input_token_cost:3e-8,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:264,supports_assistant_prefill:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-03-01",supports_tool_choice:!0},"claude-3-5-haiku-20241022":{max_tokens:8192,max_input_tokens:2e5,max_output_tokens:8192,input_cost_per_token:8e-7,output_cost_per_token:4e-6,cache_creation_input_token_cost:1e-6,cache_read_input_token_cost:8e-8,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:264,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-10-01",supports_tool_choice:!0,supports_web_search:!0},"claude-3-5-haiku-latest":{max_tokens:8192,max_input_tokens:2e5,max_output_tokens:8192,input_cost_per_token:1e-6,output_cost_per_token:5e-6,cache_creation_input_token_cost:125e-8,cache_read_input_token_cost:1e-7,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:264,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-10-01",supports_tool_choice:!0,supports_web_search:!0},"claude-3-opus-latest":{max_tokens:4096,max_input_tokens:2e5,max_output_tokens:4096,input_cost_per_token:15e-6,output_cost_per_token:75e-6,cache_creation_input_token_cost:1875e-8,cache_read_input_token_cost:15e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:395,supports_assistant_prefill:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-03-01",supports_tool_choice:!0},"claude-3-opus-20240229":{max_tokens:4096,max_input_tokens:2e5,max_output_tokens:4096,input_cost_per_token:15e-6,output_cost_per_token:75e-6,cache_creation_input_token_cost:1875e-8,cache_read_input_token_cost:15e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:395,supports_assistant_prefill:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-03-01",supports_tool_choice:!0},"claude-3-5-sonnet-latest":{supports_computer_use:!0,max_tokens:8192,max_input_tokens:2e5,max_output_tokens:8192,input_cost_per_token:3e-6,output_cost_per_token:15e-6,cache_creation_input_token_cost:375e-8,cache_read_input_token_cost:3e-7,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-06-01",supports_tool_choice:!0,supports_web_search:!0},"claude-3-5-sonnet-20240620":{max_tokens:8192,max_input_tokens:2e5,max_output_tokens:8192,input_cost_per_token:3e-6,output_cost_per_token:15e-6,cache_creation_input_token_cost:375e-8,cache_read_input_token_cost:3e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-06-01",supports_tool_choice:!0},"claude-opus-4-20250514":{max_tokens:32e3,max_input_tokens:2e5,max_output_tokens:32e3,input_cost_per_token:15e-6,output_cost_per_token:75e-6,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},cache_creation_input_token_cost:1875e-8,cache_read_input_token_cost:15e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supports_computer_use:!0},"claude-opus-4-1":{max_tokens:32e3,max_input_tokens:2e5,max_output_tokens:32e3,input_cost_per_token:15e-6,output_cost_per_token:75e-6,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},cache_creation_input_token_cost:1875e-8,cache_read_input_token_cost:15e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supports_computer_use:!0},"claude-opus-4-1-20250805":{max_tokens:32e3,max_input_tokens:2e5,max_output_tokens:32e3,input_cost_per_token:15e-6,output_cost_per_token:75e-6,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},cache_creation_input_token_cost:1875e-8,cache_read_input_token_cost:15e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supports_computer_use:!0},"claude-sonnet-4-20250514":{max_tokens:64e3,max_input_tokens:2e5,max_output_tokens:64e3,input_cost_per_token:3e-6,output_cost_per_token:15e-6,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},cache_creation_input_token_cost:375e-8,cache_read_input_token_cost:3e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supports_computer_use:!0},"claude-4-opus-20250514":{max_tokens:32e3,max_input_tokens:2e5,max_output_tokens:32e3,input_cost_per_token:15e-6,output_cost_per_token:75e-6,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},cache_creation_input_token_cost:1875e-8,cache_read_input_token_cost:15e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supports_computer_use:!0},"claude-4-sonnet-20250514":{max_tokens:1e6,max_input_tokens:1e6,max_output_tokens:1e6,input_cost_per_token:3e-6,output_cost_per_token:15e-6,input_cost_per_token_above_200k_tokens:6e-6,output_cost_per_token_above_200k_tokens:225e-7,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},cache_creation_input_token_cost:375e-8,cache_read_input_token_cost:3e-7,cache_creation_input_token_cost_above_200k_tokens:75e-7,cache_read_input_token_cost_above_200k_tokens:6e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supports_computer_use:!0},"claude-3-7-sonnet-latest":{supports_computer_use:!0,max_tokens:128e3,max_input_tokens:2e5,max_output_tokens:128e3,input_cost_per_token:3e-6,output_cost_per_token:15e-6,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},cache_creation_input_token_cost:375e-8,cache_read_input_token_cost:3e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-06-01",supports_tool_choice:!0,supports_reasoning:!0},"claude-3-7-sonnet-20250219":{supports_computer_use:!0,max_tokens:128e3,max_input_tokens:2e5,max_output_tokens:128e3,input_cost_per_token:3e-6,output_cost_per_token:15e-6,cache_creation_input_token_cost:375e-8,cache_read_input_token_cost:3e-7,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2026-02-01",supports_tool_choice:!0,supports_reasoning:!0,supports_web_search:!0},"claude-3-5-sonnet-20241022":{supports_computer_use:!0,max_tokens:8192,max_input_tokens:2e5,max_output_tokens:8192,input_cost_per_token:3e-6,output_cost_per_token:15e-6,cache_creation_input_token_cost:375e-8,cache_read_input_token_cost:3e-7,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-10-01",supports_tool_choice:!0,supports_web_search:!0},"gemini-2.5-pro-exp-03-25":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_audio_input:!0,supports_video_input:!0,supports_pdf_input:!0,supports_response_schema:!0,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://cloud.google.com/vertex-ai/generative-ai/pricing",supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini-2.0-pro-exp-02-05":{max_tokens:8192,max_input_tokens:2097152,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_audio_input:!0,supports_video_input:!0,supports_pdf_input:!0,supports_response_schema:!0,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://cloud.google.com/vertex-ai/generative-ai/pricing",supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini-2.0-flash-exp":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:15e-8,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:6e-7,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://cloud.google.com/vertex-ai/generative-ai/pricing",supports_tool_choice:!0,supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:375e-10,supports_prompt_caching:!0},"gemini-2.0-flash-001":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:15e-8,output_cost_per_token:6e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supports_tool_choice:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://cloud.google.com/vertex-ai/generative-ai/pricing",deprecation_date:"2026-02-05",supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:375e-10,supports_prompt_caching:!0},"gemini-2.0-flash-thinking-exp":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:0,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:0,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",supports_tool_choice:!0,supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:0,supports_prompt_caching:!0},"gemini-2.0-flash-thinking-exp-01-21":{max_tokens:65536,max_input_tokens:1048576,max_output_tokens:65536,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:0,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:0,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!1,supports_vision:!0,supports_response_schema:!1,supports_audio_output:!1,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",supports_tool_choice:!0,supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:0,supports_prompt_caching:!0},"gemini-2.5-pro":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_audio_input:!0,supports_video_input:!0,supports_pdf_input:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://cloud.google.com/vertex-ai/generative-ai/pricing",supports_web_search:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini/gemini-2.5-pro-exp-03-25":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_token:0,input_cost_per_token_above_200k_tokens:0,output_cost_per_token:0,output_cost_per_token_above_200k_tokens:0,litellm_provider:"gemini",mode:"chat",rpm:5,tpm:25e4,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_audio_input:!0,supports_video_input:!0,supports_pdf_input:!0,supports_response_schema:!0,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://cloud.google.com/vertex-ai/generative-ai/pricing",supports_web_search:!0,cache_read_input_token_cost:0,supports_prompt_caching:!0},"gemini/gemini-2.5-pro":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"gemini",mode:"chat",rpm:2e3,tpm:8e5,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_audio_input:!0,supports_video_input:!0,supports_pdf_input:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://cloud.google.com/vertex-ai/generative-ai/pricing",supports_web_search:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini/gemini-2.5-flash":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:3e-7,output_cost_per_token:25e-7,output_cost_per_reasoning_token:25e-7,litellm_provider:"gemini",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,tpm:8e6,rpm:1e5,supports_pdf_input:!0,cache_read_input_token_cost:75e-9,supports_prompt_caching:!0},"gemini/gemini-2.5-flash-image-preview":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:3e-7,output_cost_per_token:25e-7,output_cost_per_reasoning_token:25e-7,output_cost_per_image:.039,litellm_provider:"gemini",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,tpm:8e6,rpm:1e5,supports_pdf_input:!0,cache_read_input_token_cost:75e-9,supports_prompt_caching:!0},"gemini-2.5-flash":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:3e-7,output_cost_per_token:25e-7,output_cost_per_reasoning_token:25e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:75e-9,supports_prompt_caching:!0},"gemini/gemini-2.0-flash-live-001":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_token:35e-8,input_cost_per_audio_token:21e-7,input_cost_per_image:21e-7,input_cost_per_video_per_second:21e-7,output_cost_per_token:15e-7,output_cost_per_audio_token:85e-7,litellm_provider:"gemini",mode:"chat",rpm:10,tpm:25e4,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_reasoning:!0,supports_response_schema:!0,supports_audio_output:!0,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","audio"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2-0-flash-live-001",supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:75e-9,supports_prompt_caching:!0},"gemini/gemini-2.5-flash-preview-tts":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:15e-8,output_cost_per_token:6e-7,output_cost_per_reasoning_token:35e-7,litellm_provider:"gemini",mode:"chat",rpm:10,tpm:25e4,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_reasoning:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text"],supported_output_modalities:["audio"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_web_search:!0,cache_read_input_token_cost:375e-10,supports_prompt_caching:!0},"gemini/gemini-2.5-flash-preview-05-20":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:3e-7,output_cost_per_token:25e-7,output_cost_per_reasoning_token:25e-7,litellm_provider:"gemini",mode:"chat",rpm:10,tpm:25e4,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_reasoning:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:75e-9,supports_prompt_caching:!0},"gemini/gemini-2.5-flash-preview-04-17":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:15e-8,output_cost_per_token:6e-7,output_cost_per_reasoning_token:35e-7,litellm_provider:"gemini",mode:"chat",rpm:10,tpm:25e4,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_reasoning:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_web_search:!0,supports_pdf_input:!0,cache_read_input_token_cost:375e-10,supports_prompt_caching:!0},"gemini/gemini-2.5-flash-lite-preview-06-17":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:5e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,output_cost_per_reasoning_token:4e-7,litellm_provider:"gemini",mode:"chat",rpm:15,tpm:25e4,supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-lite",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini/gemini-2.5-flash-lite":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:5e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,output_cost_per_reasoning_token:4e-7,litellm_provider:"gemini",mode:"chat",rpm:15,tpm:25e4,supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-lite",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini-2.5-flash-image-preview":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:3e-7,output_cost_per_token:25e-7,output_cost_per_reasoning_token:25e-7,output_cost_per_image:.039,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,tpm:8e6,rpm:1e5,supports_pdf_input:!0,cache_read_input_token_cost:75e-9,supports_prompt_caching:!0},"gemini-2.5-flash-preview-05-20":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:3e-7,output_cost_per_token:25e-7,output_cost_per_reasoning_token:25e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:75e-9,supports_prompt_caching:!0},"gemini-2.5-flash-preview-04-17":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:15e-8,output_cost_per_token:6e-7,output_cost_per_reasoning_token:35e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_pdf_input:!0,cache_read_input_token_cost:375e-10,supports_prompt_caching:!0},"gemini-2.5-flash-lite-preview-06-17":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:5e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,output_cost_per_reasoning_token:4e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini-2.5-flash-lite":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:5e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,output_cost_per_reasoning_token:4e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini-2.0-flash":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supports_audio_input:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],supports_tool_choice:!0,source:"https://ai.google.dev/pricing#2_0flash",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini-2.0-flash-lite":{max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:50,input_cost_per_audio_token:75e-9,input_cost_per_token:75e-9,output_cost_per_token:3e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",supports_tool_choice:!0,supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:1875e-11,supports_prompt_caching:!0},"gemini-2.0-flash-lite-001":{max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:50,input_cost_per_audio_token:75e-9,input_cost_per_token:75e-9,output_cost_per_token:3e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",supports_tool_choice:!0,deprecation_date:"2026-02-25",supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:1875e-11,supports_prompt_caching:!0},"gemini-2.5-pro-preview-06-05":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:125e-8,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_pdf_input:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini-2.5-pro-preview-05-06":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:125e-8,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],supported_regions:["global"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_pdf_input:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini-2.5-pro-preview-03-25":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:125e-8,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_pdf_input:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini-2.0-flash-preview-image-generation":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supports_audio_input:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],supports_tool_choice:!0,source:"https://ai.google.dev/pricing#2_0flash",supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini-2.5-pro-preview-tts":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_modalities:["text"],supported_output_modalities:["audio"],source:"https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini/gemini-2.0-pro-exp-02-05":{max_tokens:8192,max_input_tokens:2097152,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:0,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:0,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"gemini",mode:"chat",rpm:2,tpm:1e6,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_audio_input:!0,supports_video_input:!0,supports_pdf_input:!0,supports_response_schema:!0,supports_tool_choice:!0,source:"https://cloud.google.com/vertex-ai/generative-ai/pricing",supports_web_search:!0,cache_read_input_token_cost:0,supports_prompt_caching:!0},"gemini/gemini-2.0-flash-preview-image-generation":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,litellm_provider:"gemini",mode:"chat",rpm:1e4,tpm:1e7,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supports_audio_input:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],supports_tool_choice:!0,source:"https://ai.google.dev/pricing#2_0flash",supports_web_search:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini/gemini-2.0-flash":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,litellm_provider:"gemini",mode:"chat",rpm:1e4,tpm:1e7,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supports_audio_input:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],supports_tool_choice:!0,source:"https://ai.google.dev/pricing#2_0flash",supports_web_search:!0,supports_url_context:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini/gemini-2.0-flash-lite":{max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:50,input_cost_per_audio_token:75e-9,input_cost_per_token:75e-9,output_cost_per_token:3e-7,litellm_provider:"gemini",mode:"chat",tpm:4e6,rpm:4e3,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supports_tool_choice:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/pricing#gemini-2.0-flash-lite",supports_web_search:!0,cache_read_input_token_cost:1875e-11,supports_prompt_caching:!0},"gemini/gemini-2.0-flash-001":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,litellm_provider:"gemini",mode:"chat",rpm:1e4,tpm:1e7,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://ai.google.dev/pricing#2_0flash",supports_web_search:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini/gemini-2.5-pro-preview-tts":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"gemini",mode:"chat",rpm:1e4,tpm:1e7,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_modalities:["text"],supported_output_modalities:["audio"],source:"https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",supports_web_search:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini/gemini-2.5-pro-preview-06-05":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"gemini",mode:"chat",rpm:1e4,tpm:1e7,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini/gemini-2.5-pro-preview-05-06":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"gemini",mode:"chat",rpm:1e4,tpm:1e7,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini/gemini-2.5-pro-preview-03-25":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"gemini",mode:"chat",rpm:1e4,tpm:1e7,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",supports_web_search:!0,supports_pdf_input:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini/gemini-2.0-flash-exp":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:0,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:0,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"gemini",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,tpm:4e6,rpm:10,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",supports_tool_choice:!0,supports_web_search:!0,cache_read_input_token_cost:0,supports_prompt_caching:!0},"gemini/gemini-2.0-flash-lite-preview-02-05":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:75e-9,input_cost_per_token:75e-9,output_cost_per_token:3e-7,litellm_provider:"gemini",mode:"chat",rpm:6e4,tpm:1e7,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash-lite",supports_web_search:!0,cache_read_input_token_cost:1875e-11,supports_prompt_caching:!0},"gemini/gemini-2.0-flash-thinking-exp":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:65536,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:0,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:0,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"gemini",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,tpm:4e6,rpm:10,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",supports_tool_choice:!0,supports_web_search:!0,cache_read_input_token_cost:0,supports_prompt_caching:!0},"gemini/gemini-2.0-flash-thinking-exp-01-21":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:65536,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:0,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:0,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"gemini",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,tpm:4e6,rpm:10,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",supports_tool_choice:!0,supports_web_search:!0,cache_read_input_token_cost:0,supports_prompt_caching:!0},"gemini/gemma-3-27b-it":{max_tokens:8192,max_input_tokens:131072,max_output_tokens:8192,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:0,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:0,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"gemini",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,source:"https://aistudio.google.com",supports_tool_choice:!0},"gemini/learnlm-1.5-pro-experimental":{max_tokens:8192,max_input_tokens:32767,max_output_tokens:8192,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:0,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:0,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"gemini",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,source:"https://aistudio.google.com",supports_tool_choice:!0},"gemini/veo-3.0-generate-preview":{max_tokens:1024,max_input_tokens:1024,output_cost_per_second:.75,litellm_provider:"gemini",mode:"video_generation",supported_modalities:["text"],supported_output_modalities:["video"],source:"https://ai.google.dev/gemini-api/docs/video"},"gemini/veo-3.0-fast-generate-preview":{max_tokens:1024,max_input_tokens:1024,output_cost_per_second:.4,litellm_provider:"gemini",mode:"video_generation",supported_modalities:["text"],supported_output_modalities:["video"],source:"https://ai.google.dev/gemini-api/docs/video"},"gemini/veo-2.0-generate-001":{max_tokens:1024,max_input_tokens:1024,output_cost_per_second:.35,litellm_provider:"gemini",mode:"video_generation",supported_modalities:["text"],supported_output_modalities:["video"],source:"https://ai.google.dev/gemini-api/docs/video"}};class Bo{static calculateCost(e,t){const s=$o[e];if(!s)return null;const o=t.inputTokens||0,n=t.outputTokens||0,i=t.cachedInputTokens||0,a=t.cacheCreationInputTokens||0,_="input_cost_per_token"in s?s.input_cost_per_token:0,p="output_cost_per_token"in s?s.output_cost_per_token:0,l="cache_read_input_token_cost"in s?s.cache_read_input_token_cost:0,m="cache_creation_input_token_cost"in s?s.cache_creation_input_token_cost:0,g=o*_,f=n*p,w=i*l,v=a*m;return{totalCost:g+f+w+v,inputCost:g,outputCost:f,cacheReadCost:i>0?w:void 0,cacheCreationCost:a>0?v:void 0}}}class Pt{static parseStreamingResponse(e){try{const t=e.split(`
3
- `),s=[];let o=null,n=null;const i=new Map;for(const w of t)if(w.startsWith("data: ")){const v=w.substring(6).trim();if(v)try{const E=JSON.parse(v);if(E.type==="message_start"&&E.message&&(o=E.message),E.type==="content_block_start"){const j={index:E.index,type:E.content_block.type,id:E.content_block.id,name:E.content_block.name,input:E.content_block.input||{},text:"",partialJson:""};i.set(E.index,j)}if(E.type==="content_block_delta"){const j=i.get(E.index);j&&(E.delta.type==="text_delta"?j.text+=E.delta.text:E.delta.type==="input_json_delta"&&(j.partialJson+=E.delta.partial_json))}if(E.type==="content_block_stop"){const j=i.get(E.index);if(j){if(j.partialJson)try{j.input=JSON.parse(j.partialJson)}catch{}s.push(j)}}E.type==="message_delta"&&E.usage&&(n=E.usage)}catch{}}const a=s.map(w=>w.type==="text"?{type:"text",text:w.text}:w.type==="tool_use"?{type:"tool-invocation",toolInvocation:{toolCallId:w.id,toolName:w.name,args:w.input,state:"call"}}:{type:"text",text:`Unknown content block type: ${w.type}`}),_={id:o?.id||Pt.generateId(),role:"assistant",createdAt:new Date().toISOString(),parts:a.length>0?a:[{type:"text",text:""}]},p={...o?.usage||{},...n||{}},l={inputTokens:p.input_tokens||p.inputTokens,outputTokens:p.output_tokens||p.outputTokens,cachedInputTokens:p.cache_read_input_tokens||p.cachedInputTokens,cacheCreationInputTokens:p.cache_creation_input_tokens||p.cacheCreationInputTokens,totalTokens:(p.input_tokens||0)+(p.output_tokens||0),cacheCreation:p.cache_creation,serviceTier:p.service_tier},m=o?.model,g=m?Bo.calculateCost(m,l):null;return{message:_,metadata:{model:m,usage:l,cost:g,originalMessageId:o?.id,stopReason:o?.stop_reason,contentLength:a.reduce((w,v)=>v.type==="text"?w+v.text.length:v.type==="tool-invocation"?w+JSON.stringify(v.toolInvocation.args||"").length:w+JSON.stringify(v).length,0),streamingEvents:t.filter(w=>w.startsWith("event:")).length}}}catch(t){return{error:`Failed to parse streaming response: ${t}`,rawText:e}}}static generateId(){return Date.now().toString(36)+Math.random().toString(36).slice(2,10)}}Pt.parseStreamingResponse;new Proxy({},{get(r,e){throw new Error(`Module "node:zlib" has been externalized for browser compatibility. Cannot access "node:zlib.${e}" in client code. See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)}});class Rs{static parseStreamingResponse(e){try{return e.includes(`
4
- data:`)||e.startsWith("data:")?this.parseSse(e):this.parseRegular(e)}catch(t){return{error:`Failed to parse Gemini response: ${t}`,rawText:e}}}static parseRegular(e){const t=this.isProbablyGzip(e)||this.hasHighControlCharRatio(e);let s=e;if(t){const o=this.tryGunzip(e);o.ok&&(s=o.text)}try{const o=JSON.parse(s),n=o.response||o,{fullText:i,finishReason:a,texts:_,nextSpeakers:p,reasoningSegments:l}=this.extractCandidateText(n.candidates),m=this.normalizeUsage(n.usageMetadata||o.usageMetadata||o),g=_.length>0?_.map(f=>({type:"text",text:f})):i?[{type:"text",text:i}]:[];return{message:{id:n.responseId||this.generateId(),role:"assistant",createdAt:new Date().toISOString(),parts:g},metadata:{model:n.modelVersion||o.modelVersion,usage:m,responseId:n.responseId,finishReason:a,contentLength:i.length,streamingEvents:0,compressed:t||void 0,nextSpeakers:p.length?p:void 0,reasoningSegments:l.length?l:void 0}}}catch{return{message:{id:this.generateId(),role:"assistant",createdAt:new Date().toISOString(),parts:[{type:"text",text:s}]},metadata:{raw:!0}}}}static parseSse(e){const t=e.split(/\r?\n/);let s,o,n,i;const a=[],_=[],p=[];for(const g of t){if(!g.startsWith("data:"))continue;const f=g.slice(5).trim();if(f)try{const v=JSON.parse(f).response||{};v.modelVersion&&(s=v.modelVersion),v.responseId&&(o=v.responseId),v.usageMetadata&&(i=v.usageMetadata);const E=this.extractCandidateText(v.candidates);!n&&E.finishReason&&(n=E.finishReason),E.texts.length&&a.push(...E.texts),E.nextSpeakers.length&&_.push(...E.nextSpeakers),E.reasoningSegments.length&&p.push(...E.reasoningSegments)}catch{}}const l=a.join(""),m=this.normalizeUsage(i);return{message:{id:o||this.generateId(),role:"assistant",createdAt:new Date().toISOString(),parts:a.length?a.map(g=>({type:"text",text:g})):[]},metadata:{model:s,usage:m,responseId:o,finishReason:n,contentLength:l.length,streamingEvents:t.filter(g=>g.startsWith("data:")).length,nextSpeakers:_.length?_:void 0,reasoningSegments:p.length?p:void 0}}}static extractCandidateText(e){const t=[],s=[],o=[];let n;if(Array.isArray(e))for(const i of e){!n&&i?.finishReason&&(n=i.finishReason);const a=i?.content?.parts||[];if(Array.isArray(a)){for(const _ of a)if(_&&typeof _=="object"){if(_.thought===!0)continue;const p=_.text;if(typeof p=="string"&&p.length){const l=p.trim();if(l.startsWith("{")&&l.endsWith("}"))try{const m=JSON.parse(l);if(m&&typeof m=="object"){typeof m.reasoning=="string"&&(o.push(m.reasoning),t.push(m.reasoning)),m.next_speaker&&typeof m.next_speaker=="string"&&s.push(m.next_speaker);continue}}catch{}t.push(p)}}}}return{fullText:t.join(""),finishReason:n,texts:t,finishReasonFound:n,nextSpeakers:s,reasoningSegments:o}}static tryGunzip(e){try{return{ok:!0,text:(void 0)(Buffer.from(e,"latin1")).toString("utf8")}}catch{return{ok:!1,text:e}}}static hasHighControlCharRatio(e){if(!e)return!1;let t=0;const s=Math.min(e.length,256);for(let o=0;o<s;o++){const n=e.charCodeAt(o);n<32&&n!==9&&n!==10&&n!==13&&t++}return t/s>.1}static isProbablyGzip(e){return e.length>=2&&e.charCodeAt(0)===31&&e.charCodeAt(1)===139}static normalizeUsage(e){if(!e||typeof e!="object")return{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0};const t=e.promptTokenCount??e.prompt_tokens,s=e.candidatesTokenCount??e.candidates_tokens,o=e.totalTokenCount??(typeof t=="number"&&typeof s=="number"?t+s:void 0);return{inputTokens:t,outputTokens:s,totalTokens:o}}static generateId(){return Date.now().toString(36)+Math.random().toString(36).slice(2,10)}}Rs.parseStreamingResponse;class _e{static parsers=[{name:"Claude (Anthropic)",patterns:[/\/publishers\/anthropic\/models/i,/anthropic\.com/i,/claude\.ai/i,/\/v1\/messages/i],parser:Pt},{name:"Google Gemini",patterns:[/generativelanguage\.googleapis\.com/i,/cloudcode-pa\.googleapis\.com/i,/streamGenerateContent/i,/generateContent/i],parser:Rs}];static parseStreamingResponse(e,t){const s=_e.getParserForUrl(e);if(!s)return{error:`No parser found for URL: ${e}`,rawText:t,supportedProviders:_e.parsers.map(o=>o.name)};try{const o=s.parseStreamingResponse(t);return o&&typeof o=="object"&&!o.error&&(o.metadata={...o.metadata,parser:_e.getParserNameForUrl(e)}),o}catch(o){return{error:`Parser failed: ${o}`,rawText:t,parser:_e.getParserNameForUrl(e)}}}static getParserForUrl(e){if(!e)return null;for(const t of _e.parsers)if(t.patterns.some(s=>s.test(e)))return t.parser;return null}static getParserNameForUrl(e){if(!e)return"unknown";for(const t of _e.parsers)if(t.patterns.some(s=>s.test(e)))return t.name;return"unknown"}static isSupported(e){return _e.getParserForUrl(e)!==null}static getSupportedProviders(){return _e.parsers.map(e=>e.name)}static registerParser(e,t,s){_e.parsers.push({name:e,patterns:t,parser:s})}}class zs{LLM_PATTERNS=[/anthropic\.com/i,/claude\.ai/i,/openai\.com/i,/api\.openai\.com/i,/gemini\.google/i,/generativelanguage\.googleapis/i,/cloudcode-pa\.googleapis\.com/i,/bedrock.*\.amazonaws/i,/cognitive\.microsoft/i,/azure\.openai/i,/cohere\.ai/i,/huggingface\.co/i,/replicate\.com/i,/together\.xyz/i,/mistral\.ai/i,/groq\.com/i,/perplexity\.ai/i,/ollama/i,/localhost:\d+\/v1/i,/127\.0\.0\.1:\d+\/v1/i,/\/v1\/chat\/completions/i,/\/v1\/completions/i,/\/v1\/embeddings/i,/\/v1\/messages/i,/\/publishers\/anthropic\/models/i];PROVIDER_MAP=[{pattern:/\/publishers\/anthropic\/models/i,provider:"anthropic"},{pattern:/anthropic\.com|claude\.ai/i,provider:"anthropic"},{pattern:/openai\.com/i,provider:"openai"},{pattern:/gemini\.google|generativelanguage\.googleapis|cloudcode-pa\.googleapis/i,provider:"google"},{pattern:/bedrock.*\.amazonaws/i,provider:"aws-bedrock"},{pattern:/cognitive\.microsoft|azure\.openai/i,provider:"azure"},{pattern:/cohere\.ai/i,provider:"cohere"},{pattern:/huggingface\.co/i,provider:"huggingface"},{pattern:/replicate\.com/i,provider:"replicate"},{pattern:/together\.xyz/i,provider:"together"},{pattern:/mistral\.ai/i,provider:"mistral"},{pattern:/groq\.com/i,provider:"groq"},{pattern:/perplexity\.ai/i,provider:"perplexity"},{pattern:/ollama|localhost:\d+\/v1|127\.0\.0\.1:\d+\/v1/i,provider:"local"}];isLLMCall(e){return e?this.LLM_PATTERNS.some(t=>t.test(e)):!1}detectProvider(e){if(!e)return"unknown";for(const{pattern:t,provider:s}of this.PROVIDER_MAP)if(t.test(e))return s;return"unknown"}getSupportedProviders(){return Array.from(new Set(this.PROVIDER_MAP.map(({provider:e})=>e)))}isProviderSupported(e){return this.getSupportedProviders().includes(e.toLowerCase())}getProviderPattern(e){const t=this.PROVIDER_MAP.find(({provider:s})=>s===e.toLowerCase());return t?t.pattern:null}}class Xt{originalFetch=null;static MAX_LOG_BYTES=256*1024;ctx;extra;constructor(e,t){this.ctx=e,this.extra=t}patch(){if(typeof globalThis.fetch!="function"||this.originalFetch)return;this.originalFetch=globalThis.fetch.bind(globalThis);const e=this.ctx,t=this.extra;globalThis.fetch=async(s,o)=>{const n=Ee.performance.now();let i="";try{i=typeof s=="string"?s:s?.url||""}catch{}const a=(o?.method||s?.method||"GET").toUpperCase();let _="";try{const g=o?.body??s?.body;if(g)if(typeof g=="string")_=g;else if(g instanceof URLSearchParams)_=g.toString();else if(typeof FormData<"u"&&g instanceof FormData){const f={};for(const[w,v]of g.entries())f[w]=typeof v=="string"?v:"[File|Blob]";_=JSON.stringify(f)}else g instanceof Uint8Array||Buffer.isBuffer(g)?_=Buffer.from(g).toString("utf8"):typeof g=="object"&&(_=JSON.stringify(g))}catch{_="<request body error>"}const p=e.idGenerator(),l=new Date().toISOString();if(t.agentHttpService&&t.sessionId&&t.isValidMessageRequest(i,a,_)){const g={id:p,time:l,transport:"fetch",method:a,url:i,requestBody:_,durationMs:0};t.sendHttpStart(g).catch(f=>{console.error("[FetchInstrument] Failed to send HTTP start:",f)})}let m;try{m=await this.originalFetch(s,o)}catch(g){const f=Ee.performance.now()-n,w={id:p,time:l,transport:"fetch",method:a,url:i,requestBody:_,durationMs:Math.round(f),error:g.message};throw e.handleLogEntry(w),t.agentHttpService&&t.sessionId&&t.isValidMessageRequest(i,a,_)&&t.sendHttpUpdate(w).catch(()=>{}),g}try{const g=Ee.performance.now()-n;let f="",w=0,v=null,E=!1;try{const P=m.headers.get("content-type")||"";E=/text\/event-stream/i.test(P);const qe=/^(text\/|application\/(json|xml|javascript))/i.test(P)||/(json|xml|html)/i.test(P);if(E){const ne=m.body;if(ne){const[ae,ke]=ne.tee(),N=(async()=>{try{const J=ae.getReader(),Y=[];let M=0;for(;;){const{done:$,value:u}=await J.read();if($)break;Y.push(u),M+=u.byteLength}if(f=Buffer.concat(Y.map($=>Buffer.from($))).toString("utf8"),w=M,e.llmProvider.isLLMCall(i)&&f)try{v=e.responseProcessor(i,f)}catch($){v={error:`parser_failed: ${$ instanceof Error?$.message:String($)}`}}const K={id:p,time:l,transport:"fetch",method:a,url:i,requestBody:_,status:m.status,ok:m.ok,durationMs:Math.round(Ee.performance.now()-n),responseBody:f,processedBody:v,bodyBytes:w};return e.handleLogEntry(K),t.agentHttpService&&t.sessionId&&t.isValidMessageRequest(i,a,_)&&t.sendHttpUpdate(K).catch(()=>{}),{responseBody:f,processedBody:v,bodyBytes:w}}catch(J){return console.error("Error capturing stream:",J),{responseBody:"<stream capture error>",processedBody:null,bodyBytes:0}}})();m.__capturePromise=N,m=new Response(ke,{status:m.status,statusText:m.statusText,headers:m.headers}),f="<streaming in progress>",v=null}else f="<streaming response not buffered>"}else{const ae=await m.clone().arrayBuffer();w=ae.byteLength;const ke=Xt.MAX_LOG_BYTES;qe?ae.byteLength<=ke?f=Buffer.from(ae).toString("utf8"):f=`${Buffer.from(ae.slice(0,ke)).toString("utf8")}
5
- ...[truncated ${(ae.byteLength-ke).toLocaleString()} bytes]`:f=`<${w} bytes binary>`}}catch{f="<response body error>"}if(!E&&e.llmProvider.isLLMCall(i)&&f&&f!=="<response body error>")try{v=e.responseProcessor(i,f)}catch(P){v={error:`parser_failed: ${P instanceof Error?P.message:String(P)}`}}const j={id:p,time:l,transport:"fetch",method:a,url:i,requestBody:_,status:m.status,ok:m.ok,durationMs:Math.round(g),responseBody:f,processedBody:v,bodyBytes:w};return e.handleLogEntry(j),!E&&t.agentHttpService&&t.sessionId&&t.isValidMessageRequest(i,a,_)&&t.sendHttpUpdate(j).catch(()=>{}),m}catch(g){const f=Ee.performance.now()-n,w={id:p,time:l,transport:"fetch",method:a,url:i,requestBody:_,durationMs:Math.round(f),error:g.message};return e.handleLogEntry(w),t.agentHttpService&&t.sessionId&&t.isValidMessageRequest(i,a,_)&&t.sendHttpUpdate(w).catch(()=>{}),m}}}restore(){this.originalFetch&&(globalThis.fetch=this.originalFetch,this.originalFetch=null)}}class Fo{constructor(e,t,s={isValidMessageRequest:()=>!1,sendHttpStart:async()=>{},sendHttpUpdate:async()=>{}}){this.ctx=e,this.enableHttps=t,this._extra=s}originals=null;patch(){try{let e=function(a,_){try{if(typeof a=="string")return a;if(a instanceof URL)return a.toString();const p=a.protocol||_,l=a.hostname||a.host||"localhost",m=a.port?`:${a.port}`:"",g=a.path||a.pathname||"/";return`${p}//${l}${m}${g}`}catch{return""}},t=function(a,_){return function(l,m){const g=e(l,_),f=(typeof l=="object"&&l.method?l.method:"GET").toUpperCase(),w=Ee.performance.now(),v=n.ctx.idGenerator(),E=new Date().toISOString(),j=[];let P=0,qe=!1;const ne=a(l,N=>{const J=[];let Y=0,M=0;const Q=()=>String(N.headers["content-type"]||"");N.on("data",W=>{Y+=W.length;const K=Q();if(/text\/event-stream/i.test(K))J.push(W),M+=W.length;else{if(M>=i)return;const u=i-M;W.length<=u?(J.push(W),M+=W.length):(J.push(W.subarray(0,u)),M+=u)}}),N.on("end",()=>{const W=Ee.performance.now()-w;let K="";try{const x=Q(),O=/text\/event-stream/i.test(x),R=Buffer.concat(J),Z=Y>R.length||R.length===i;let G=R;if(!O){const H=String(N.headers["content-encoding"]||"").toLowerCase();if(!Z&&G.length&&/(gzip|br|deflate)/.test(H))try{const V=require("node:zlib");H.includes("gzip")?G=V.gunzipSync(R):H.includes("br")?G=V.brotliDecompressSync(R):H.includes("deflate")&&(G=V.inflateSync(R))}catch{}}/text\//i.test(x)||/application\/(json|xml|javascript)/i.test(x)||O?(K=G.toString("utf8"),Z&&!O&&(K+=`
6
- ...[truncated]`)):G.length&&(K=`<${G.length} bytes${Z?" (truncated)":""} binary>`)}catch{K="<response body error>"}let $="";try{const x=Buffer.concat(j),O=P>x.length||x.length===i;$=x.toString("utf8"),O&&($+=`
7
- ...[truncated]`)}catch{$="<request body error>"}let u=null;if(n.ctx.llmProvider.isLLMCall(g))try{u=n.ctx.responseProcessor(g,K)}catch(x){u={parts:[{type:"text",text:K||"<empty response>"}],metadata:{error:String(x)}}}const h={id:v,time:E,transport:_==="https:"?"https":"http",method:f,url:g,requestBody:$,status:N.statusCode,ok:N.statusCode>=200&&N.statusCode<300,durationMs:Math.round(W),responseBody:K,processedBody:u,bodyBytes:Y};try{const x=new URL(g);h.host=x.hostname,h.path=x.pathname}catch{}n.ctx.handleLogEntry(h),n._extra.agentHttpService&&n._extra.sessionId&&n._extra.isValidMessageRequest(g,f,$)&&n._extra.sendHttpUpdate(h).catch(()=>{})}),N.on("error",W=>{const K=Ee.performance.now()-w;let $="";try{const h=Buffer.concat(j),x=P>h.length||h.length===i;$=h.toString("utf8"),x&&($+=`
8
- ...[truncated]`)}catch{$="<request body error>"}const u={id:v,time:E,transport:_==="https:"?"https":"http",method:f,url:g,requestBody:$,durationMs:Math.round(K),error:W.message};try{const h=new URL(g);u.host=h.hostname,u.path=h.pathname}catch{}n.ctx.handleLogEntry(u),n._extra.agentHttpService&&n._extra.sessionId&&n._extra.isValidMessageRequest(g,f,$)&&n._extra.sendHttpUpdate(u).catch(()=>{})}),m&&m(N)}),ae=ne.write,ke=ne.end;return ne.write=function(N,J,Y){try{if(N&&P<i){const M=Buffer.isBuffer(N)?N:Buffer.from(N,J||"utf8"),Q=i-P;M.length<=Q?(j.push(M),P+=M.length):(j.push(M.subarray(0,Q)),P+=Q)}}catch{}return ae.call(this,N,J,Y)},ne.end=function(N,J,Y){try{if(N&&P<i){const M=Buffer.isBuffer(N)?N:Buffer.from(N,J||"utf8"),Q=i-P;M.length<=Q?(j.push(M),P+=M.length):(j.push(M.subarray(0,Q)),P+=Q)}if(!qe){qe=!0;try{const M=Buffer.concat(j),Q=P>M.length||M.length===i;let W=M.toString("utf8");Q&&(W+=`
9
- ...[truncated]`);const K=n._extra.isValidMessageRequest(g,f,W);if(n._extra.agentHttpService&&n._extra.sessionId&&K){const $={id:v,time:E,transport:_==="https:"?"https":"http",method:f,url:g,requestBody:W,durationMs:0};n._extra.sendHttpStart($).catch(()=>{})}}catch{}}}catch{}return ke.call(this,N,J,Y)},ne}};const s=require("http"),o=require("https");if(this.originals)return;this.originals={httpRequest:s.request,httpsRequest:o.request,httpGet:s.get,httpsGet:o.get};const n=this,i=this.ctx.maxBodyBytes;s.request=t(this.originals.httpRequest,"http:"),s.get=function(_,p){const l=s.request(_,p);return l.end(),l},this.enableHttps!==!1&&(o.request=t(this.originals.httpsRequest,"https:"),o.get=function(_,p){const l=o.request(_,p);return l.end(),l})}catch{}}restore(){if(this.originals){try{const e=require("http"),t=require("https");e.request=this.originals.httpRequest,e.get=this.originals.httpGet,t.request=this.originals.httpsRequest,t.get=this.originals.httpsGet}catch{}this.originals=null}}}class Ge{static instance=null;isPatched=!1;config;llmProvider;idGenerator;agentHttpService;sessionId;activeRequests=new Map;rawLogger;errorLogger;processedLogger;fetchInstrument;httpInstrument;constructor(e={}){this.llmProvider=e.llmProvider||new zs,this.idGenerator=e.idGenerator||xs.ulid,this.agentHttpService=e.agentHttpService,this.sessionId=e.sessionId,this.config={maxBodyBytes:e.maxBodyBytes??8192,enableHttpsPatching:e.enableHttpsPatching??!0,enableDebug:e.enableDebug??!1,logFilter:e.logFilter??(i=>!!(i.url&&!i.url.includes("statsig")&&!i.url.includes("registry.npmjs.org")&&!i.url.startsWith("data:"))),responseProcessor:e.responseProcessor??((i,a)=>{try{return _e.parseStreamingResponse(i,a)}catch{return null}})};const t=be.join(Kt.tmpdir(),"agiflow-agents","llm",`session-${process.pid}`),s=e.logFilePath||be.join(t,"network.log"),o=be.join(t,"error.log"),n=e.processedLogFilePath||be.join(t,"processed.jsonl");try{this.rawLogger=new tt(s)}catch{}try{this.errorLogger=new tt(o)}catch{}try{this.processedLogger=new tt(n)}catch{}}static getInstance(e){return Ge.instance||(Ge.instance=new Ge(e)),Ge.instance}start(){if(this.isPatched)return;const e={idGenerator:this.idGenerator,maxBodyBytes:this.config.maxBodyBytes,enableDebug:this.config.enableDebug,logFilter:this.config.logFilter,responseProcessor:this.config.responseProcessor,llmProvider:this.llmProvider,handleLogEntry:t=>this.handleLogEntry(t)};this.fetchInstrument=new Xt(e,{agentHttpService:this.agentHttpService,sessionId:this.sessionId,isValidMessageRequest:(t,s,o)=>this.isValidMessageRequest(t,s,o),sendHttpStart:t=>this.sendHttpStart(t),sendHttpUpdate:t=>this.sendHttpUpdate(t)}),this.fetchInstrument.patch(),this.httpInstrument=new Fo(e,this.config.enableHttpsPatching,{agentHttpService:this.agentHttpService,sessionId:this.sessionId,isValidMessageRequest:(t,s,o)=>this.isValidMessageRequest(t,s,o),sendHttpStart:t=>this.sendHttpStart(t),sendHttpUpdate:t=>this.sendHttpUpdate(t)}),this.httpInstrument.patch(),this.isPatched=!0}stop(){this.isPatched&&(this.fetchInstrument?.restore(),this.httpInstrument?.restore(),this.isPatched=!1)}isActive(){return this.isPatched}updateConfig(e){this.config={...this.config,...e}}handleLogEntry(e){this.rawLogger&&this.rawLogger.info("network_entry",{networkLog:e}),this.processedLogger&&this.config.logFilter(e)&&e.processedBody&&this.processedLogger.info("processed_entry",{id:e.id,url:e.url,method:e.method,status:e.status,durationMs:e.durationMs,timestamp:e.time,processedBody:e.processedBody})}isValidMessageRequest(e,t,s){if(this.rawLogger&&this.rawLogger.info("isValidMessageRequest checking",{url:e,method:t,hasBody:!!s,bodyLength:s?.length}),!this.llmProvider.isLLMCall(e))return this.rawLogger&&this.rawLogger.info("Not an LLM URL, skipping",{url:e}),this.rawLogger&&this.config.enableDebug&&this.rawLogger.debug("Request validation failed: Not an LLM URL",{url:e,method:t}),!1;if(e.includes("cloudcode-pa.googleapis.com")||e.includes("generativelanguage.googleapis.com"))return!!e.includes("streamGenerateContent");if(t!=="POST"||!s)return!1;try{const o=JSON.parse(s),n=o.messages&&Array.isArray(o.messages)&&o.messages.length>0,i=o.prompt&&typeof o.prompt=="string",a=o.input&&typeof o.input=="string",_=o.contents&&Array.isArray(o.contents)&&o.contents.length>0,p=o.request?.contents&&Array.isArray(o.request.contents)&&o.request.contents.length>0;return n||i||a||_||p}catch(o){return this.errorLogger&&this.errorLogger.error("Failed to parse request body in isValidMessageRequest",{url:e,method:t,error:o instanceof Error?o.message:String(o)}),!1}}async sendHttpStart(e){if(!this.agentHttpService||!this.sessionId)return;this.rawLogger&&this.rawLogger.info("http_start",{entry:e});let t=[];if(e.requestBody)try{const o=JSON.parse(e.requestBody);if(o.messages&&Array.isArray(o.messages)){const n=o.messages.filter(i=>i.role==="user").pop();n?.content&&(typeof n.content=="string"?t.push({type:"text",text:n.content}):Array.isArray(n.content)&&(t=n.content.map(i=>({type:i.type||"text",text:i.text||JSON.stringify(i)}))))}else if(o.prompt)t.push({type:"text",text:o.prompt});else if(o.input)t.push({type:"text",text:o.input});else if(o.contents&&Array.isArray(o.contents)){const n=o.contents.filter(i=>i.role==="user").pop();n?.parts&&Array.isArray(n.parts)&&(t=n.parts.map(i=>({type:"text",text:i.text||JSON.stringify(i)})))}else if(o.request?.contents&&Array.isArray(o.request.contents)){const n=o.request.contents.filter(i=>i.role==="user").pop();n?.parts&&Array.isArray(n.parts)&&(t=n.parts.map(i=>({type:"text",text:i.text||JSON.stringify(i)})))}}catch(o){this.errorLogger&&this.errorLogger.error("Failed to parse request data in sendHttpStart",{url:e.url,error:o instanceof Error?o.message:String(o)}),t.push({type:"text",text:"LLM request initiated..."})}const s={llm_provider:this.llmProvider.detectProvider(e.url),request_started:!0};try{this.rawLogger&&this.rawLogger.info("Calling agentHttpService.startMessage",{sessionId:this.sessionId,entryId:e.id});const o=await this.agentHttpService.startMessage(this.sessionId,{messageType:"output",metadata:s});this.activeRequests.set(e.id,o.messageId),this.rawLogger&&this.rawLogger.info("startMessage successful",{entryId:e.id,messageId:o.messageId})}catch(o){this.errorLogger&&this.errorLogger.error("Failed to send HTTP start message",{url:e.url,sessionId:this.sessionId,error:o instanceof Error?o.message:String(o)})}}async sendHttpUpdate(e){if(!this.agentHttpService||!this.sessionId)return;this.rawLogger&&this.rawLogger.info("http_update",{entry:e});const t=this.activeRequests.get(e.id);if(!t)return;const s={llm_provider:this.llmProvider.detectProvider(e.url),status:e.status,duration:e.durationMs};if(e.processedBody?.metadata){const n=e.processedBody.metadata;n.model&&(s.model=n.model),n.usage&&(s.usage=n.usage),n.total_tokens&&(s.total_tokens=n.total_tokens),n.prompt_tokens&&(s.prompt_tokens=n.prompt_tokens),n.completion_tokens&&(s.completion_tokens=n.completion_tokens),n.cost&&(s.cost=n.cost)}let o=[];if(e.processedBody){const n=e.processedBody;n?.message?.parts&&Array.isArray(n.message.parts)?o=n.message.parts:n?.parts&&Array.isArray(n.parts)?o=n.parts:n?.error?o.push({type:"text",text:`Parser error: ${n.error}`}):o=[]}else e.responseBody&&o.push({type:"text",text:"LLM response completed"});try{const n={parts:o,metadata:s,mId:e.processedBody?.message?.id};se.isSaveRawEnabled&&(n.raw=JSON.stringify(e)),await this.agentHttpService.updateMessage(this.sessionId,t,n),this.activeRequests.delete(e.id)}catch(n){this.errorLogger&&this.errorLogger.error("Failed to send HTTP update message",{url:e.url,messageId:t,sessionId:this.sessionId,error:n instanceof Error?n.message:String(n)}),this.activeRequests.delete(e.id)}}}const as=As(()=>De([Is(),C(),he(),ft(),Fe(as),kt(as)])),ps=L({toolCallId:C(),toolName:C(),args:ze()}),Do=L({toolCallId:C(),toolName:C(),args:ze(),result:ze()}),qo=De([ps.extend({state:oe("partial-call"),step:he().optional()}),ps.extend({state:oe("call"),step:he().optional()}),Do.extend({state:oe("result"),step:he().optional()})]),Vo=L({type:C(),content:C()}),Zo=L({type:oe("text"),text:C()}),Go=L({type:oe("reasoning"),reasoning:C(),details:Fe(De([L({type:oe("text"),text:C(),signature:C().optional()}),L({type:oe("redacted"),data:C()})])).optional()}),Uo=L({name:oe("select"),props:L({options:Fe(L({label:C(),value:De([C(),he()]),selected:ft().optional()}))})}),Ho=L({name:oe("placeholder"),props:L({})}),Jo=De([Uo,Ho]),Wo=L({completed:ft(),component:Jo}),Ko=L({type:oe("tool-invocation"),toolInvocation:qo,input:Wo.optional(),jsx:C({description:"UI rendering"}).optional()}),Yo=L({type:oe("source"),source:Vo}),Xo=L({type:oe("file"),mimeType:C(),data:C()}),Qo=L({type:oe("error"),text:C(),error:ze().optional()}),er=L({type:oe("step-start")}),Cs=De([Zo,Go,Ko,Yo,Xo,Qo,er]),Qt=jt(["input","output","error","system"]),Ns=L({messageType:Qt,parts:Fe(Cs),metadata:kt(C(),Mt()).optional(),raw:ze().optional()});L({id:C(),sessionId:C(),agentTypeId:C(),messageType:Qt,contentSize:he().nullable(),timestamp:Et.date(),metadata:C().nullable(),raw:ze().nullable().optional(),createdAt:Et.date(),updatedAt:Et.date()});const tr=L({messageType:jt(["output"]).default("output"),metadata:kt(C(),Mt()).optional()});L({id:C(),messageId:C()});const sr=L({parts:Fe(Cs).optional(),metadata:kt(C(),Mt()).optional(),raw:ze().optional()});L({messages:Fe(Ns)});function or(r){return[rr(r)]}function _s(r){let e=r.parts;if(!e&&r.content&&(e=or(r.content)),!e)throw new Error("Either content or parts is required for message creation");return{messageType:r.messageType,parts:e,metadata:r.metadata,raw:r.raw}}function rr(r){return{type:"text",text:r}}const Ft=10,us=(r=0)=>e=>`\x1B[${e+r}m`,cs=(r=0)=>e=>`\x1B[${38+r};5;${e}m`,ls=(r=0)=>(e,t,s)=>`\x1B[${38+r};2;${e};${t};${s}m`,B={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(B.modifier);const nr=Object.keys(B.color),ir=Object.keys(B.bgColor);[...nr,...ir];function ar(){const r=new Map;for(const[e,t]of Object.entries(B)){for(const[s,o]of Object.entries(t))B[s]={open:`\x1B[${o[0]}m`,close:`\x1B[${o[1]}m`},t[s]=B[s],r.set(o[0],o[1]);Object.defineProperty(B,e,{value:t,enumerable:!1})}return Object.defineProperty(B,"codes",{value:r,enumerable:!1}),B.color.close="\x1B[39m",B.bgColor.close="\x1B[49m",B.color.ansi=us(),B.color.ansi256=cs(),B.color.ansi16m=ls(),B.bgColor.ansi=us(Ft),B.bgColor.ansi256=cs(Ft),B.bgColor.ansi16m=ls(Ft),Object.defineProperties(B,{rgbToAnsi256:{value(e,t,s){return e===t&&t===s?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(s/255*5)},enumerable:!1},hexToRgb:{value(e){const t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[s]=t;s.length===3&&(s=[...s].map(n=>n+n).join(""));const o=Number.parseInt(s,16);return[o>>16&255,o>>8&255,o&255]},enumerable:!1},hexToAnsi256:{value:e=>B.rgbToAnsi256(...B.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let t,s,o;if(e>=232)t=((e-232)*10+8)/255,s=t,o=t;else{e-=16;const a=e%36;t=Math.floor(e/36)/5,s=Math.floor(a/6)/5,o=a%6/5}const n=Math.max(t,s,o)*2;if(n===0)return 30;let i=30+(Math.round(o)<<2|Math.round(s)<<1|Math.round(t));return n===2&&(i+=60),i},enumerable:!1},rgbToAnsi:{value:(e,t,s)=>B.ansi256ToAnsi(B.rgbToAnsi256(e,t,s)),enumerable:!1},hexToAnsi:{value:e=>B.ansi256ToAnsi(B.hexToAnsi256(e)),enumerable:!1}}),B}const de=ar(),ds=(()=>{if(!("navigator"in globalThis))return 0;if(globalThis.navigator.userAgentData){const r=navigator.userAgentData.brands.find(({brand:e})=>e==="Chromium");if(r&&r.version>93)return 3}return/\b(Chrome|Chromium)\//.test(globalThis.navigator.userAgent)?1:0})(),ms=ds!==0&&{level:ds},pr={stdout:ms,stderr:ms};function _r(r,e,t){let s=r.indexOf(e);if(s===-1)return r;const o=e.length;let n=0,i="";do i+=r.slice(n,s)+e+t,n=s+o,s=r.indexOf(e,n);while(s!==-1);return i+=r.slice(n),i}function ur(r,e,t,s){let o=0,n="";do{const i=r[s-1]==="\r";n+=r.slice(o,i?s-1:s)+e+(i?`\r
1
+ "use strict";const Ms=require("node:os"),js=require("node:path"),ys=require("ulidx"),Ps=require("node:fs"),Ae=require("node:perf_hooks"),je=require("path"),Se=require("fs-extra"),Ft=require("os");require("node:crypto");require("@inquirer/prompts");function Kt(r){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(r){for(const t in r)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(r,t);Object.defineProperty(e,t,s.get?s:{enumerable:!0,get:()=>r[t]})}}return e.default=r,Object.freeze(e)}const Yt=Kt(Ms),be=Kt(js),Pe=Kt(Ps);var z;(function(r){r.assertEqual=o=>{};function e(o){}r.assertIs=e;function t(o){throw new Error}r.assertNever=t,r.arrayToEnum=o=>{const n={};for(const i of o)n[i]=i;return n},r.getValidEnumValues=o=>{const n=r.objectKeys(o).filter(a=>typeof o[o[a]]!="number"),i={};for(const a of n)i[a]=o[a];return r.objectValues(i)},r.objectValues=o=>r.objectKeys(o).map(function(n){return o[n]}),r.objectKeys=typeof Object.keys=="function"?o=>Object.keys(o):o=>{const n=[];for(const i in o)Object.prototype.hasOwnProperty.call(o,i)&&n.push(i);return n},r.find=(o,n)=>{for(const i of o)if(n(i))return i},r.isInteger=typeof Number.isInteger=="function"?o=>Number.isInteger(o):o=>typeof o=="number"&&Number.isFinite(o)&&Math.floor(o)===o;function s(o,n=" | "){return o.map(i=>typeof i=="string"?`'${i}'`:i).join(n)}r.joinValues=s,r.jsonStringifyReplacer=(o,n)=>typeof n=="bigint"?n.toString():n})(z||(z={}));var Vt;(function(r){r.mergeShapes=(e,t)=>({...e,...t})})(Vt||(Vt={}));const f=z.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),ye=r=>{switch(typeof r){case"undefined":return f.undefined;case"string":return f.string;case"number":return Number.isNaN(r)?f.nan:f.number;case"boolean":return f.boolean;case"function":return f.function;case"bigint":return f.bigint;case"symbol":return f.symbol;case"object":return Array.isArray(r)?f.array:r===null?f.null:r.then&&typeof r.then=="function"&&r.catch&&typeof r.catch=="function"?f.promise:typeof Map<"u"&&r instanceof Map?f.map:typeof Set<"u"&&r instanceof Set?f.set:typeof Date<"u"&&r instanceof Date?f.date:f.object;default:return f.unknown}},c=z.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"]),$s=r=>JSON.stringify(r,null,2).replace(/"([^"]+)":/g,"$1:");class ne extends Error{get errors(){return this.issues}constructor(e){super(),this.issues=[],this.addIssue=s=>{this.issues=[...this.issues,s]},this.addIssues=(s=[])=>{this.issues=[...this.issues,...s]};const t=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,t):this.__proto__=t,this.name="ZodError",this.issues=e}format(e){const t=e||function(n){return n.message},s={_errors:[]},o=n=>{for(const i of n.issues)if(i.code==="invalid_union")i.unionErrors.map(o);else if(i.code==="invalid_return_type")o(i.returnTypeError);else if(i.code==="invalid_arguments")o(i.argumentsError);else if(i.path.length===0)s._errors.push(t(i));else{let a=s,p=0;for(;p<i.path.length;){const _=i.path[p];p===i.path.length-1?(a[_]=a[_]||{_errors:[]},a[_]._errors.push(t(i))):a[_]=a[_]||{_errors:[]},a=a[_],p++}}};return o(this),s}static assert(e){if(!(e instanceof ne))throw new Error(`Not a ZodError: ${e}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,z.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(e=t=>t.message){const t={},s=[];for(const o of this.issues)if(o.path.length>0){const n=o.path[0];t[n]=t[n]||[],t[n].push(e(o))}else s.push(e(o));return{formErrors:s,fieldErrors:t}}get formErrors(){return this.flatten()}}ne.create=r=>new ne(r);const Je=(r,e)=>{let t;switch(r.code){case c.invalid_type:r.received===f.undefined?t="Required":t=`Expected ${r.expected}, received ${r.received}`;break;case c.invalid_literal:t=`Invalid literal value, expected ${JSON.stringify(r.expected,z.jsonStringifyReplacer)}`;break;case c.unrecognized_keys:t=`Unrecognized key(s) in object: ${z.joinValues(r.keys,", ")}`;break;case c.invalid_union:t="Invalid input";break;case c.invalid_union_discriminator:t=`Invalid discriminator value. Expected ${z.joinValues(r.options)}`;break;case c.invalid_enum_value:t=`Invalid enum value. Expected ${z.joinValues(r.options)}, received '${r.received}'`;break;case c.invalid_arguments:t="Invalid function arguments";break;case c.invalid_return_type:t="Invalid function return type";break;case c.invalid_date:t="Invalid date";break;case c.invalid_string:typeof r.validation=="object"?"includes"in r.validation?(t=`Invalid input: must include "${r.validation.includes}"`,typeof r.validation.position=="number"&&(t=`${t} at one or more positions greater than or equal to ${r.validation.position}`)):"startsWith"in r.validation?t=`Invalid input: must start with "${r.validation.startsWith}"`:"endsWith"in r.validation?t=`Invalid input: must end with "${r.validation.endsWith}"`:z.assertNever(r.validation):r.validation!=="regex"?t=`Invalid ${r.validation}`:t="Invalid";break;case c.too_small:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at least":"more than"} ${r.minimum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at least":"over"} ${r.minimum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="bigint"?t=`Number must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${r.minimum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly equal to ":r.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(r.minimum))}`:t="Invalid input";break;case c.too_big:r.type==="array"?t=`Array must contain ${r.exact?"exactly":r.inclusive?"at most":"less than"} ${r.maximum} element(s)`:r.type==="string"?t=`String must contain ${r.exact?"exactly":r.inclusive?"at most":"under"} ${r.maximum} character(s)`:r.type==="number"?t=`Number must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="bigint"?t=`BigInt must be ${r.exact?"exactly":r.inclusive?"less than or equal to":"less than"} ${r.maximum}`:r.type==="date"?t=`Date must be ${r.exact?"exactly":r.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(r.maximum))}`:t="Invalid input";break;case c.custom:t="Invalid input";break;case c.invalid_intersection_types:t="Intersection results could not be merged";break;case c.not_multiple_of:t=`Number must be a multiple of ${r.multipleOf}`;break;case c.not_finite:t="Number must be finite";break;default:t=e.defaultError,z.assertNever(r)}return{message:t}};let bs=Je;function Fs(r){bs=r}function At(){return bs}const Ot=r=>{const{data:e,path:t,errorMaps:s,issueData:o}=r,n=[...t,...o.path||[]],i={...o,path:n};if(o.message!==void 0)return{...o,path:n,message:o.message};let a="";const p=s.filter(_=>!!_).slice().reverse();for(const _ of p)a=_(i,{data:e,defaultError:a}).message;return{...o,path:n,message:a}},Ds=[];function m(r,e){const t=At(),s=Ot({issueData:e,data:r.data,path:r.path,errorMaps:[r.common.contextualErrorMap,r.schemaErrorMap,t,t===Je?void 0:Je].filter(o=>!!o)});r.common.issues.push(s)}class se{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(e,t){const s=[];for(const o of t){if(o.status==="aborted")return S;o.status==="dirty"&&e.dirty(),s.push(o.value)}return{status:e.value,value:s}}static async mergeObjectAsync(e,t){const s=[];for(const o of t){const n=await o.key,i=await o.value;s.push({key:n,value:i})}return se.mergeObjectSync(e,s)}static mergeObjectSync(e,t){const s={};for(const o of t){const{key:n,value:i}=o;if(n.status==="aborted"||i.status==="aborted")return S;n.status==="dirty"&&e.dirty(),i.status==="dirty"&&e.dirty(),n.value!=="__proto__"&&(typeof i.value<"u"||o.alwaysSet)&&(s[n.value]=i.value)}return{status:e.value,value:s}}}const S=Object.freeze({status:"aborted"}),Ue=r=>({status:"dirty",value:r}),re=r=>({status:"valid",value:r}),Gt=r=>r.status==="aborted",Ut=r=>r.status==="dirty",Fe=r=>r.status==="valid",ot=r=>typeof Promise<"u"&&r instanceof Promise;var b;(function(r){r.errToObj=e=>typeof e=="string"?{message:e}:e||{},r.toString=e=>typeof e=="string"?e:e?.message})(b||(b={}));class fe{constructor(e,t,s,o){this._cachedPath=[],this.parent=e,this.data=t,this._path=s,this._key=o}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}}const ns=(r,e)=>{if(Fe(e))return{success:!0,data:e.value};if(!r.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;const t=new ne(r.common.issues);return this._error=t,this._error}}};function I(r){if(!r)return{};const{errorMap:e,invalid_type_error:t,required_error:s,description:o}=r;if(e&&(t||s))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return e?{errorMap:e,description:o}:{errorMap:(i,a)=>{const{message:p}=r;return i.code==="invalid_enum_value"?{message:p??a.defaultError}:typeof a.data>"u"?{message:p??s??a.defaultError}:i.code!=="invalid_type"?{message:a.defaultError}:{message:p??t??a.defaultError}},description:o}}class A{get description(){return this._def.description}_getType(e){return ye(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:ye(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new se,ctx:{common:e.parent.common,data:e.data,parsedType:ye(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if(ot(t))throw new Error("Synchronous parse encountered promise.");return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const s=this.safeParse(e,t);if(s.success)return s.data;throw s.error}safeParse(e,t){const s={common:{issues:[],async:t?.async??!1,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ye(e)},o=this._parseSync({data:e,path:s.path,parent:s});return ns(s,o)}"~validate"(e){const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ye(e)};if(!this["~standard"].async)try{const s=this._parseSync({data:e,path:[],parent:t});return Fe(s)?{value:s.value}:{issues:t.common.issues}}catch(s){s?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),t.common={issues:[],async:!0}}return this._parseAsync({data:e,path:[],parent:t}).then(s=>Fe(s)?{value:s.value}:{issues:t.common.issues})}async parseAsync(e,t){const s=await this.safeParseAsync(e,t);if(s.success)return s.data;throw s.error}async safeParseAsync(e,t){const s={common:{issues:[],contextualErrorMap:t?.errorMap,async:!0},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:ye(e)},o=this._parse({data:e,path:s.path,parent:s}),n=await(ot(o)?o:Promise.resolve(o));return ns(s,n)}refine(e,t){const s=o=>typeof t=="string"||typeof t>"u"?{message:t}:typeof t=="function"?t(o):t;return this._refinement((o,n)=>{const i=e(o),a=()=>n.addIssue({code:c.custom,...s(o)});return typeof Promise<"u"&&i instanceof Promise?i.then(p=>p?!0:(a(),!1)):i?!0:(a(),!1)})}refinement(e,t){return this._refinement((s,o)=>e(s)?!0:(o.addIssue(typeof t=="function"?t(s,o):t),!1))}_refinement(e){return new de({schema:this,typeName:E.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync,this._def=e,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:t=>this["~validate"](t)}}optional(){return he.create(this,this._def)}nullable(){return Ce.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return le.create(this)}promise(){return Ke.create(this,this._def)}or(e){return at.create([this,e],this._def)}and(e){return pt.create(this,e,this._def)}transform(e){return new de({...I(this._def),schema:this,typeName:E.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e=="function"?e:()=>e;return new dt({...I(this._def),innerType:this,defaultValue:t,typeName:E.ZodDefault})}brand(){return new Xt({typeName:E.ZodBranded,type:this,...I(this._def)})}catch(e){const t=typeof e=="function"?e:()=>e;return new mt({...I(this._def),innerType:this,catchValue:t,typeName:E.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return ft.create(this,e)}readonly(){return ht.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}}const Bs=/^c[^\s-]{8,}$/i,qs=/^[0-9a-z]+$/,Vs=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Gs=/^[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,Us=/^[a-z0-9_-]{21}$/i,Zs=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Hs=/^[-+]?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)?)??$/,Js=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Ws="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";let Dt;const Ks=/^(?:(?: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])$/,Ys=/^(?:(?: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])$/,Xs=/^(([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]))$/,Qs=/^(([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])$/,eo=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,to=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ws="((\\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])))",so=new RegExp(`^${ws}$`);function Ts(r){let e="[0-5]\\d";r.precision?e=`${e}\\.\\d{${r.precision}}`:r.precision==null&&(e=`${e}(\\.\\d+)?`);const t=r.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${e})${t}`}function oo(r){return new RegExp(`^${Ts(r)}$`)}function Ss(r){let e=`${ws}T${Ts(r)}`;const t=[];return t.push(r.local?"Z?":"Z"),r.offset&&t.push("([+-]\\d{2}:?\\d{2})"),e=`${e}(${t.join("|")})`,new RegExp(`^${e}$`)}function ro(r,e){return!!((e==="v4"||!e)&&Ks.test(r)||(e==="v6"||!e)&&Xs.test(r))}function no(r,e){if(!Zs.test(r))return!1;try{const[t]=r.split(".");if(!t)return!1;const s=t.replace(/-/g,"+").replace(/_/g,"/").padEnd(t.length+(4-t.length%4)%4,"="),o=JSON.parse(atob(s));return!(typeof o!="object"||o===null||"typ"in o&&o?.typ!=="JWT"||!o.alg||e&&o.alg!==e)}catch{return!1}}function io(r,e){return!!((e==="v4"||!e)&&Ys.test(r)||(e==="v6"||!e)&&Qs.test(r))}class ce extends A{_parse(e){if(this._def.coerce&&(e.data=String(e.data)),this._getType(e)!==f.string){const n=this._getOrReturnCtx(e);return m(n,{code:c.invalid_type,expected:f.string,received:n.parsedType}),S}const s=new se;let o;for(const n of this._def.checks)if(n.kind==="min")e.data.length<n.value&&(o=this._getOrReturnCtx(e,o),m(o,{code:c.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),s.dirty());else if(n.kind==="max")e.data.length>n.value&&(o=this._getOrReturnCtx(e,o),m(o,{code:c.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!1,message:n.message}),s.dirty());else if(n.kind==="length"){const i=e.data.length>n.value,a=e.data.length<n.value;(i||a)&&(o=this._getOrReturnCtx(e,o),i?m(o,{code:c.too_big,maximum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}):a&&m(o,{code:c.too_small,minimum:n.value,type:"string",inclusive:!0,exact:!0,message:n.message}),s.dirty())}else if(n.kind==="email")Js.test(e.data)||(o=this._getOrReturnCtx(e,o),m(o,{validation:"email",code:c.invalid_string,message:n.message}),s.dirty());else if(n.kind==="emoji")Dt||(Dt=new RegExp(Ws,"u")),Dt.test(e.data)||(o=this._getOrReturnCtx(e,o),m(o,{validation:"emoji",code:c.invalid_string,message:n.message}),s.dirty());else if(n.kind==="uuid")Gs.test(e.data)||(o=this._getOrReturnCtx(e,o),m(o,{validation:"uuid",code:c.invalid_string,message:n.message}),s.dirty());else if(n.kind==="nanoid")Us.test(e.data)||(o=this._getOrReturnCtx(e,o),m(o,{validation:"nanoid",code:c.invalid_string,message:n.message}),s.dirty());else if(n.kind==="cuid")Bs.test(e.data)||(o=this._getOrReturnCtx(e,o),m(o,{validation:"cuid",code:c.invalid_string,message:n.message}),s.dirty());else if(n.kind==="cuid2")qs.test(e.data)||(o=this._getOrReturnCtx(e,o),m(o,{validation:"cuid2",code:c.invalid_string,message:n.message}),s.dirty());else if(n.kind==="ulid")Vs.test(e.data)||(o=this._getOrReturnCtx(e,o),m(o,{validation:"ulid",code:c.invalid_string,message:n.message}),s.dirty());else if(n.kind==="url")try{new URL(e.data)}catch{o=this._getOrReturnCtx(e,o),m(o,{validation:"url",code:c.invalid_string,message:n.message}),s.dirty()}else n.kind==="regex"?(n.regex.lastIndex=0,n.regex.test(e.data)||(o=this._getOrReturnCtx(e,o),m(o,{validation:"regex",code:c.invalid_string,message:n.message}),s.dirty())):n.kind==="trim"?e.data=e.data.trim():n.kind==="includes"?e.data.includes(n.value,n.position)||(o=this._getOrReturnCtx(e,o),m(o,{code:c.invalid_string,validation:{includes:n.value,position:n.position},message:n.message}),s.dirty()):n.kind==="toLowerCase"?e.data=e.data.toLowerCase():n.kind==="toUpperCase"?e.data=e.data.toUpperCase():n.kind==="startsWith"?e.data.startsWith(n.value)||(o=this._getOrReturnCtx(e,o),m(o,{code:c.invalid_string,validation:{startsWith:n.value},message:n.message}),s.dirty()):n.kind==="endsWith"?e.data.endsWith(n.value)||(o=this._getOrReturnCtx(e,o),m(o,{code:c.invalid_string,validation:{endsWith:n.value},message:n.message}),s.dirty()):n.kind==="datetime"?Ss(n).test(e.data)||(o=this._getOrReturnCtx(e,o),m(o,{code:c.invalid_string,validation:"datetime",message:n.message}),s.dirty()):n.kind==="date"?so.test(e.data)||(o=this._getOrReturnCtx(e,o),m(o,{code:c.invalid_string,validation:"date",message:n.message}),s.dirty()):n.kind==="time"?oo(n).test(e.data)||(o=this._getOrReturnCtx(e,o),m(o,{code:c.invalid_string,validation:"time",message:n.message}),s.dirty()):n.kind==="duration"?Hs.test(e.data)||(o=this._getOrReturnCtx(e,o),m(o,{validation:"duration",code:c.invalid_string,message:n.message}),s.dirty()):n.kind==="ip"?ro(e.data,n.version)||(o=this._getOrReturnCtx(e,o),m(o,{validation:"ip",code:c.invalid_string,message:n.message}),s.dirty()):n.kind==="jwt"?no(e.data,n.alg)||(o=this._getOrReturnCtx(e,o),m(o,{validation:"jwt",code:c.invalid_string,message:n.message}),s.dirty()):n.kind==="cidr"?io(e.data,n.version)||(o=this._getOrReturnCtx(e,o),m(o,{validation:"cidr",code:c.invalid_string,message:n.message}),s.dirty()):n.kind==="base64"?eo.test(e.data)||(o=this._getOrReturnCtx(e,o),m(o,{validation:"base64",code:c.invalid_string,message:n.message}),s.dirty()):n.kind==="base64url"?to.test(e.data)||(o=this._getOrReturnCtx(e,o),m(o,{validation:"base64url",code:c.invalid_string,message:n.message}),s.dirty()):z.assertNever(n);return{status:s.value,value:e.data}}_regex(e,t,s){return this.refinement(o=>e.test(o),{validation:t,code:c.invalid_string,...b.errToObj(s)})}_addCheck(e){return new ce({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...b.errToObj(e)})}url(e){return this._addCheck({kind:"url",...b.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...b.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...b.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...b.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...b.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...b.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...b.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...b.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...b.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...b.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...b.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...b.errToObj(e)})}datetime(e){return typeof e=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:e}):this._addCheck({kind:"datetime",precision:typeof e?.precision>"u"?null:e?.precision,offset:e?.offset??!1,local:e?.local??!1,...b.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){return typeof e=="string"?this._addCheck({kind:"time",precision:null,message:e}):this._addCheck({kind:"time",precision:typeof e?.precision>"u"?null:e?.precision,...b.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...b.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...b.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...b.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...b.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...b.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...b.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...b.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...b.errToObj(t)})}nonempty(e){return this.min(1,b.errToObj(e))}trim(){return new ce({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new ce({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new ce({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(e=>e.kind==="datetime")}get isDate(){return!!this._def.checks.find(e=>e.kind==="date")}get isTime(){return!!this._def.checks.find(e=>e.kind==="time")}get isDuration(){return!!this._def.checks.find(e=>e.kind==="duration")}get isEmail(){return!!this._def.checks.find(e=>e.kind==="email")}get isURL(){return!!this._def.checks.find(e=>e.kind==="url")}get isEmoji(){return!!this._def.checks.find(e=>e.kind==="emoji")}get isUUID(){return!!this._def.checks.find(e=>e.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(e=>e.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(e=>e.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(e=>e.kind==="cuid2")}get isULID(){return!!this._def.checks.find(e=>e.kind==="ulid")}get isIP(){return!!this._def.checks.find(e=>e.kind==="ip")}get isCIDR(){return!!this._def.checks.find(e=>e.kind==="cidr")}get isBase64(){return!!this._def.checks.find(e=>e.kind==="base64")}get isBase64url(){return!!this._def.checks.find(e=>e.kind==="base64url")}get minLength(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxLength(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}ce.create=r=>new ce({checks:[],typeName:E.ZodString,coerce:r?.coerce??!1,...I(r)});function ao(r,e){const t=(r.toString().split(".")[1]||"").length,s=(e.toString().split(".")[1]||"").length,o=t>s?t:s,n=Number.parseInt(r.toFixed(o).replace(".","")),i=Number.parseInt(e.toFixed(o).replace(".",""));return n%i/10**o}class Oe extends A{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(e){if(this._def.coerce&&(e.data=Number(e.data)),this._getType(e)!==f.number){const n=this._getOrReturnCtx(e);return m(n,{code:c.invalid_type,expected:f.number,received:n.parsedType}),S}let s;const o=new se;for(const n of this._def.checks)n.kind==="int"?z.isInteger(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{code:c.invalid_type,expected:"integer",received:"float",message:n.message}),o.dirty()):n.kind==="min"?(n.inclusive?e.data<n.value:e.data<=n.value)&&(s=this._getOrReturnCtx(e,s),m(s,{code:c.too_small,minimum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),o.dirty()):n.kind==="max"?(n.inclusive?e.data>n.value:e.data>=n.value)&&(s=this._getOrReturnCtx(e,s),m(s,{code:c.too_big,maximum:n.value,type:"number",inclusive:n.inclusive,exact:!1,message:n.message}),o.dirty()):n.kind==="multipleOf"?ao(e.data,n.value)!==0&&(s=this._getOrReturnCtx(e,s),m(s,{code:c.not_multiple_of,multipleOf:n.value,message:n.message}),o.dirty()):n.kind==="finite"?Number.isFinite(e.data)||(s=this._getOrReturnCtx(e,s),m(s,{code:c.not_finite,message:n.message}),o.dirty()):z.assertNever(n);return{status:o.value,value:e.data}}gte(e,t){return this.setLimit("min",e,!0,b.toString(t))}gt(e,t){return this.setLimit("min",e,!1,b.toString(t))}lte(e,t){return this.setLimit("max",e,!0,b.toString(t))}lt(e,t){return this.setLimit("max",e,!1,b.toString(t))}setLimit(e,t,s,o){return new Oe({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:b.toString(o)}]})}_addCheck(e){return new Oe({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:b.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:!1,message:b.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:!1,message:b.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:!0,message:b.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:!0,message:b.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:b.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:b.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:b.toString(e)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:b.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}get isInt(){return!!this._def.checks.find(e=>e.kind==="int"||e.kind==="multipleOf"&&z.isInteger(e.value))}get isFinite(){let e=null,t=null;for(const s of this._def.checks){if(s.kind==="finite"||s.kind==="int"||s.kind==="multipleOf")return!0;s.kind==="min"?(t===null||s.value>t)&&(t=s.value):s.kind==="max"&&(e===null||s.value<e)&&(e=s.value)}return Number.isFinite(t)&&Number.isFinite(e)}}Oe.create=r=>new Oe({checks:[],typeName:E.ZodNumber,coerce:r?.coerce||!1,...I(r)});class Re extends A{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(e){if(this._def.coerce)try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}if(this._getType(e)!==f.bigint)return this._getInvalidInput(e);let s;const o=new se;for(const n of this._def.checks)n.kind==="min"?(n.inclusive?e.data<n.value:e.data<=n.value)&&(s=this._getOrReturnCtx(e,s),m(s,{code:c.too_small,type:"bigint",minimum:n.value,inclusive:n.inclusive,message:n.message}),o.dirty()):n.kind==="max"?(n.inclusive?e.data>n.value:e.data>=n.value)&&(s=this._getOrReturnCtx(e,s),m(s,{code:c.too_big,type:"bigint",maximum:n.value,inclusive:n.inclusive,message:n.message}),o.dirty()):n.kind==="multipleOf"?e.data%n.value!==BigInt(0)&&(s=this._getOrReturnCtx(e,s),m(s,{code:c.not_multiple_of,multipleOf:n.value,message:n.message}),o.dirty()):z.assertNever(n);return{status:o.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);return m(t,{code:c.invalid_type,expected:f.bigint,received:t.parsedType}),S}gte(e,t){return this.setLimit("min",e,!0,b.toString(t))}gt(e,t){return this.setLimit("min",e,!1,b.toString(t))}lte(e,t){return this.setLimit("max",e,!0,b.toString(t))}lt(e,t){return this.setLimit("max",e,!1,b.toString(t))}setLimit(e,t,s,o){return new Re({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:b.toString(o)}]})}_addCheck(e){return new Re({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:b.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:b.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:b.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:b.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:b.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e}get maxValue(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e}}Re.create=r=>new Re({checks:[],typeName:E.ZodBigInt,coerce:r?.coerce??!1,...I(r)});class rt extends A{_parse(e){if(this._def.coerce&&(e.data=!!e.data),this._getType(e)!==f.boolean){const s=this._getOrReturnCtx(e);return m(s,{code:c.invalid_type,expected:f.boolean,received:s.parsedType}),S}return re(e.data)}}rt.create=r=>new rt({typeName:E.ZodBoolean,coerce:r?.coerce||!1,...I(r)});class De extends A{_parse(e){if(this._def.coerce&&(e.data=new Date(e.data)),this._getType(e)!==f.date){const n=this._getOrReturnCtx(e);return m(n,{code:c.invalid_type,expected:f.date,received:n.parsedType}),S}if(Number.isNaN(e.data.getTime())){const n=this._getOrReturnCtx(e);return m(n,{code:c.invalid_date}),S}const s=new se;let o;for(const n of this._def.checks)n.kind==="min"?e.data.getTime()<n.value&&(o=this._getOrReturnCtx(e,o),m(o,{code:c.too_small,message:n.message,inclusive:!0,exact:!1,minimum:n.value,type:"date"}),s.dirty()):n.kind==="max"?e.data.getTime()>n.value&&(o=this._getOrReturnCtx(e,o),m(o,{code:c.too_big,message:n.message,inclusive:!0,exact:!1,maximum:n.value,type:"date"}),s.dirty()):z.assertNever(n);return{status:s.value,value:new Date(e.data.getTime())}}_addCheck(e){return new De({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:b.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:b.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks)t.kind==="min"&&(e===null||t.value>e)&&(e=t.value);return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks)t.kind==="max"&&(e===null||t.value<e)&&(e=t.value);return e!=null?new Date(e):null}}De.create=r=>new De({checks:[],coerce:r?.coerce||!1,typeName:E.ZodDate,...I(r)});class Rt extends A{_parse(e){if(this._getType(e)!==f.symbol){const s=this._getOrReturnCtx(e);return m(s,{code:c.invalid_type,expected:f.symbol,received:s.parsedType}),S}return re(e.data)}}Rt.create=r=>new Rt({typeName:E.ZodSymbol,...I(r)});class nt extends A{_parse(e){if(this._getType(e)!==f.undefined){const s=this._getOrReturnCtx(e);return m(s,{code:c.invalid_type,expected:f.undefined,received:s.parsedType}),S}return re(e.data)}}nt.create=r=>new nt({typeName:E.ZodUndefined,...I(r)});class it extends A{_parse(e){if(this._getType(e)!==f.null){const s=this._getOrReturnCtx(e);return m(s,{code:c.invalid_type,expected:f.null,received:s.parsedType}),S}return re(e.data)}}it.create=r=>new it({typeName:E.ZodNull,...I(r)});class We extends A{constructor(){super(...arguments),this._any=!0}_parse(e){return re(e.data)}}We.create=r=>new We({typeName:E.ZodAny,...I(r)});class $e extends A{constructor(){super(...arguments),this._unknown=!0}_parse(e){return re(e.data)}}$e.create=r=>new $e({typeName:E.ZodUnknown,...I(r)});class we extends A{_parse(e){const t=this._getOrReturnCtx(e);return m(t,{code:c.invalid_type,expected:f.never,received:t.parsedType}),S}}we.create=r=>new we({typeName:E.ZodNever,...I(r)});class zt extends A{_parse(e){if(this._getType(e)!==f.undefined){const s=this._getOrReturnCtx(e);return m(s,{code:c.invalid_type,expected:f.void,received:s.parsedType}),S}return re(e.data)}}zt.create=r=>new zt({typeName:E.ZodVoid,...I(r)});class le extends A{_parse(e){const{ctx:t,status:s}=this._processInputParams(e),o=this._def;if(t.parsedType!==f.array)return m(t,{code:c.invalid_type,expected:f.array,received:t.parsedType}),S;if(o.exactLength!==null){const i=t.data.length>o.exactLength.value,a=t.data.length<o.exactLength.value;(i||a)&&(m(t,{code:i?c.too_big:c.too_small,minimum:a?o.exactLength.value:void 0,maximum:i?o.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:o.exactLength.message}),s.dirty())}if(o.minLength!==null&&t.data.length<o.minLength.value&&(m(t,{code:c.too_small,minimum:o.minLength.value,type:"array",inclusive:!0,exact:!1,message:o.minLength.message}),s.dirty()),o.maxLength!==null&&t.data.length>o.maxLength.value&&(m(t,{code:c.too_big,maximum:o.maxLength.value,type:"array",inclusive:!0,exact:!1,message:o.maxLength.message}),s.dirty()),t.common.async)return Promise.all([...t.data].map((i,a)=>o.type._parseAsync(new fe(t,i,t.path,a)))).then(i=>se.mergeArray(s,i));const n=[...t.data].map((i,a)=>o.type._parseSync(new fe(t,i,t.path,a)));return se.mergeArray(s,n)}get element(){return this._def.type}min(e,t){return new le({...this._def,minLength:{value:e,message:b.toString(t)}})}max(e,t){return new le({...this._def,maxLength:{value:e,message:b.toString(t)}})}length(e,t){return new le({...this._def,exactLength:{value:e,message:b.toString(t)}})}nonempty(e){return this.min(1,e)}}le.create=(r,e)=>new le({type:r,minLength:null,maxLength:null,exactLength:null,typeName:E.ZodArray,...I(e)});function Ge(r){if(r instanceof D){const e={};for(const t in r.shape){const s=r.shape[t];e[t]=he.create(Ge(s))}return new D({...r._def,shape:()=>e})}else return r instanceof le?new le({...r._def,type:Ge(r.element)}):r instanceof he?he.create(Ge(r.unwrap())):r instanceof Ce?Ce.create(Ge(r.unwrap())):r instanceof ke?ke.create(r.items.map(e=>Ge(e))):r}class D extends A{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape(),t=z.objectKeys(e);return this._cached={shape:e,keys:t},this._cached}_parse(e){if(this._getType(e)!==f.object){const _=this._getOrReturnCtx(e);return m(_,{code:c.invalid_type,expected:f.object,received:_.parsedType}),S}const{status:s,ctx:o}=this._processInputParams(e),{shape:n,keys:i}=this._getCached(),a=[];if(!(this._def.catchall instanceof we&&this._def.unknownKeys==="strip"))for(const _ in o.data)i.includes(_)||a.push(_);const p=[];for(const _ of i){const l=n[_],v=o.data[_];p.push({key:{status:"valid",value:_},value:l._parse(new fe(o,v,o.path,_)),alwaysSet:_ in o.data})}if(this._def.catchall instanceof we){const _=this._def.unknownKeys;if(_==="passthrough")for(const l of a)p.push({key:{status:"valid",value:l},value:{status:"valid",value:o.data[l]}});else if(_==="strict")a.length>0&&(m(o,{code:c.unrecognized_keys,keys:a}),s.dirty());else if(_!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{const _=this._def.catchall;for(const l of a){const v=o.data[l];p.push({key:{status:"valid",value:l},value:_._parse(new fe(o,v,o.path,l)),alwaysSet:l in o.data})}}return o.common.async?Promise.resolve().then(async()=>{const _=[];for(const l of p){const v=await l.key,k=await l.value;_.push({key:v,value:k,alwaysSet:l.alwaysSet})}return _}).then(_=>se.mergeObjectSync(s,_)):se.mergeObjectSync(s,p)}get shape(){return this._def.shape()}strict(e){return b.errToObj,new D({...this._def,unknownKeys:"strict",...e!==void 0?{errorMap:(t,s)=>{const o=this._def.errorMap?.(t,s).message??s.defaultError;return t.code==="unrecognized_keys"?{message:b.errToObj(e).message??o}:{message:o}}}:{}})}strip(){return new D({...this._def,unknownKeys:"strip"})}passthrough(){return new D({...this._def,unknownKeys:"passthrough"})}extend(e){return new D({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){return new D({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:E.ZodObject})}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new D({...this._def,catchall:e})}pick(e){const t={};for(const s of z.objectKeys(e))e[s]&&this.shape[s]&&(t[s]=this.shape[s]);return new D({...this._def,shape:()=>t})}omit(e){const t={};for(const s of z.objectKeys(this.shape))e[s]||(t[s]=this.shape[s]);return new D({...this._def,shape:()=>t})}deepPartial(){return Ge(this)}partial(e){const t={};for(const s of z.objectKeys(this.shape)){const o=this.shape[s];e&&!e[s]?t[s]=o:t[s]=o.optional()}return new D({...this._def,shape:()=>t})}required(e){const t={};for(const s of z.objectKeys(this.shape))if(e&&!e[s])t[s]=this.shape[s];else{let n=this.shape[s];for(;n instanceof he;)n=n._def.innerType;t[s]=n}return new D({...this._def,shape:()=>t})}keyof(){return Es(z.objectKeys(this.shape))}}D.create=(r,e)=>new D({shape:()=>r,unknownKeys:"strip",catchall:we.create(),typeName:E.ZodObject,...I(e)});D.strictCreate=(r,e)=>new D({shape:()=>r,unknownKeys:"strict",catchall:we.create(),typeName:E.ZodObject,...I(e)});D.lazycreate=(r,e)=>new D({shape:r,unknownKeys:"strip",catchall:we.create(),typeName:E.ZodObject,...I(e)});class at extends A{_parse(e){const{ctx:t}=this._processInputParams(e),s=this._def.options;function o(n){for(const a of n)if(a.result.status==="valid")return a.result;for(const a of n)if(a.result.status==="dirty")return t.common.issues.push(...a.ctx.common.issues),a.result;const i=n.map(a=>new ne(a.ctx.common.issues));return m(t,{code:c.invalid_union,unionErrors:i}),S}if(t.common.async)return Promise.all(s.map(async n=>{const i={...t,common:{...t.common,issues:[]},parent:null};return{result:await n._parseAsync({data:t.data,path:t.path,parent:i}),ctx:i}})).then(o);{let n;const i=[];for(const p of s){const _={...t,common:{...t.common,issues:[]},parent:null},l=p._parseSync({data:t.data,path:t.path,parent:_});if(l.status==="valid")return l;l.status==="dirty"&&!n&&(n={result:l,ctx:_}),_.common.issues.length&&i.push(_.common.issues)}if(n)return t.common.issues.push(...n.ctx.common.issues),n.result;const a=i.map(p=>new ne(p));return m(t,{code:c.invalid_union,unionErrors:a}),S}}get options(){return this._def.options}}at.create=(r,e)=>new at({options:r,typeName:E.ZodUnion,...I(e)});const xe=r=>r instanceof ut?xe(r.schema):r instanceof de?xe(r.innerType()):r instanceof ct?[r.value]:r instanceof ze?r.options:r instanceof lt?z.objectValues(r.enum):r instanceof dt?xe(r._def.innerType):r instanceof nt?[void 0]:r instanceof it?[null]:r instanceof he?[void 0,...xe(r.unwrap())]:r instanceof Ce?[null,...xe(r.unwrap())]:r instanceof Xt||r instanceof ht?xe(r.unwrap()):r instanceof mt?xe(r._def.innerType):[];class Mt extends A{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==f.object)return m(t,{code:c.invalid_type,expected:f.object,received:t.parsedType}),S;const s=this.discriminator,o=t.data[s],n=this.optionsMap.get(o);return n?t.common.async?n._parseAsync({data:t.data,path:t.path,parent:t}):n._parseSync({data:t.data,path:t.path,parent:t}):(m(t,{code:c.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[s]}),S)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,s){const o=new Map;for(const n of t){const i=xe(n.shape[e]);if(!i.length)throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`);for(const a of i){if(o.has(a))throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`);o.set(a,n)}}return new Mt({typeName:E.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:o,...I(s)})}}function Zt(r,e){const t=ye(r),s=ye(e);if(r===e)return{valid:!0,data:r};if(t===f.object&&s===f.object){const o=z.objectKeys(e),n=z.objectKeys(r).filter(a=>o.indexOf(a)!==-1),i={...r,...e};for(const a of n){const p=Zt(r[a],e[a]);if(!p.valid)return{valid:!1};i[a]=p.data}return{valid:!0,data:i}}else if(t===f.array&&s===f.array){if(r.length!==e.length)return{valid:!1};const o=[];for(let n=0;n<r.length;n++){const i=r[n],a=e[n],p=Zt(i,a);if(!p.valid)return{valid:!1};o.push(p.data)}return{valid:!0,data:o}}else return t===f.date&&s===f.date&&+r==+e?{valid:!0,data:r}:{valid:!1}}class pt extends A{_parse(e){const{status:t,ctx:s}=this._processInputParams(e),o=(n,i)=>{if(Gt(n)||Gt(i))return S;const a=Zt(n.value,i.value);return a.valid?((Ut(n)||Ut(i))&&t.dirty(),{status:t.value,value:a.data}):(m(s,{code:c.invalid_intersection_types}),S)};return s.common.async?Promise.all([this._def.left._parseAsync({data:s.data,path:s.path,parent:s}),this._def.right._parseAsync({data:s.data,path:s.path,parent:s})]).then(([n,i])=>o(n,i)):o(this._def.left._parseSync({data:s.data,path:s.path,parent:s}),this._def.right._parseSync({data:s.data,path:s.path,parent:s}))}}pt.create=(r,e,t)=>new pt({left:r,right:e,typeName:E.ZodIntersection,...I(t)});class ke extends A{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==f.array)return m(s,{code:c.invalid_type,expected:f.array,received:s.parsedType}),S;if(s.data.length<this._def.items.length)return m(s,{code:c.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),S;!this._def.rest&&s.data.length>this._def.items.length&&(m(s,{code:c.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),t.dirty());const n=[...s.data].map((i,a)=>{const p=this._def.items[a]||this._def.rest;return p?p._parse(new fe(s,i,s.path,a)):null}).filter(i=>!!i);return s.common.async?Promise.all(n).then(i=>se.mergeArray(t,i)):se.mergeArray(t,n)}get items(){return this._def.items}rest(e){return new ke({...this._def,rest:e})}}ke.create=(r,e)=>{if(!Array.isArray(r))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new ke({items:r,typeName:E.ZodTuple,rest:null,...I(e)})};class _t extends A{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==f.object)return m(s,{code:c.invalid_type,expected:f.object,received:s.parsedType}),S;const o=[],n=this._def.keyType,i=this._def.valueType;for(const a in s.data)o.push({key:n._parse(new fe(s,a,s.path,a)),value:i._parse(new fe(s,s.data[a],s.path,a)),alwaysSet:a in s.data});return s.common.async?se.mergeObjectAsync(t,o):se.mergeObjectSync(t,o)}get element(){return this._def.valueType}static create(e,t,s){return t instanceof A?new _t({keyType:e,valueType:t,typeName:E.ZodRecord,...I(s)}):new _t({keyType:ce.create(),valueType:e,typeName:E.ZodRecord,...I(t)})}}class Ct extends A{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==f.map)return m(s,{code:c.invalid_type,expected:f.map,received:s.parsedType}),S;const o=this._def.keyType,n=this._def.valueType,i=[...s.data.entries()].map(([a,p],_)=>({key:o._parse(new fe(s,a,s.path,[_,"key"])),value:n._parse(new fe(s,p,s.path,[_,"value"]))}));if(s.common.async){const a=new Map;return Promise.resolve().then(async()=>{for(const p of i){const _=await p.key,l=await p.value;if(_.status==="aborted"||l.status==="aborted")return S;(_.status==="dirty"||l.status==="dirty")&&t.dirty(),a.set(_.value,l.value)}return{status:t.value,value:a}})}else{const a=new Map;for(const p of i){const _=p.key,l=p.value;if(_.status==="aborted"||l.status==="aborted")return S;(_.status==="dirty"||l.status==="dirty")&&t.dirty(),a.set(_.value,l.value)}return{status:t.value,value:a}}}}Ct.create=(r,e,t)=>new Ct({valueType:e,keyType:r,typeName:E.ZodMap,...I(t)});class Be extends A{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==f.set)return m(s,{code:c.invalid_type,expected:f.set,received:s.parsedType}),S;const o=this._def;o.minSize!==null&&s.data.size<o.minSize.value&&(m(s,{code:c.too_small,minimum:o.minSize.value,type:"set",inclusive:!0,exact:!1,message:o.minSize.message}),t.dirty()),o.maxSize!==null&&s.data.size>o.maxSize.value&&(m(s,{code:c.too_big,maximum:o.maxSize.value,type:"set",inclusive:!0,exact:!1,message:o.maxSize.message}),t.dirty());const n=this._def.valueType;function i(p){const _=new Set;for(const l of p){if(l.status==="aborted")return S;l.status==="dirty"&&t.dirty(),_.add(l.value)}return{status:t.value,value:_}}const a=[...s.data.values()].map((p,_)=>n._parse(new fe(s,p,s.path,_)));return s.common.async?Promise.all(a).then(p=>i(p)):i(a)}min(e,t){return new Be({...this._def,minSize:{value:e,message:b.toString(t)}})}max(e,t){return new Be({...this._def,maxSize:{value:e,message:b.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}Be.create=(r,e)=>new Be({valueType:r,minSize:null,maxSize:null,typeName:E.ZodSet,...I(e)});class He extends A{constructor(){super(...arguments),this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==f.function)return m(t,{code:c.invalid_type,expected:f.function,received:t.parsedType}),S;function s(a,p){return Ot({data:a,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,At(),Je].filter(_=>!!_),issueData:{code:c.invalid_arguments,argumentsError:p}})}function o(a,p){return Ot({data:a,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,At(),Je].filter(_=>!!_),issueData:{code:c.invalid_return_type,returnTypeError:p}})}const n={errorMap:t.common.contextualErrorMap},i=t.data;if(this._def.returns instanceof Ke){const a=this;return re(async function(...p){const _=new ne([]),l=await a._def.args.parseAsync(p,n).catch(h=>{throw _.addIssue(s(p,h)),_}),v=await Reflect.apply(i,this,l);return await a._def.returns._def.type.parseAsync(v,n).catch(h=>{throw _.addIssue(o(v,h)),_})})}else{const a=this;return re(function(...p){const _=a._def.args.safeParse(p,n);if(!_.success)throw new ne([s(p,_.error)]);const l=Reflect.apply(i,this,_.data),v=a._def.returns.safeParse(l,n);if(!v.success)throw new ne([o(l,v.error)]);return v.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new He({...this._def,args:ke.create(e).rest($e.create())})}returns(e){return new He({...this._def,returns:e})}implement(e){return this.parse(e)}strictImplement(e){return this.parse(e)}static create(e,t,s){return new He({args:e||ke.create([]).rest($e.create()),returns:t||$e.create(),typeName:E.ZodFunction,...I(s)})}}class ut extends A{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);return this._def.getter()._parse({data:t.data,path:t.path,parent:t})}}ut.create=(r,e)=>new ut({getter:r,typeName:E.ZodLazy,...I(e)});class ct extends A{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);return m(t,{received:t.data,code:c.invalid_literal,expected:this._def.value}),S}return{status:"valid",value:e.data}}get value(){return this._def.value}}ct.create=(r,e)=>new ct({value:r,typeName:E.ZodLiteral,...I(e)});function Es(r,e){return new ze({values:r,typeName:E.ZodEnum,...I(e)})}class ze extends A{_parse(e){if(typeof e.data!="string"){const t=this._getOrReturnCtx(e),s=this._def.values;return m(t,{expected:z.joinValues(s),received:t.parsedType,code:c.invalid_type}),S}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(e.data)){const t=this._getOrReturnCtx(e),s=this._def.values;return m(t,{received:t.data,code:c.invalid_enum_value,options:s}),S}return re(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values)e[t]=t;return e}get Values(){const e={};for(const t of this._def.values)e[t]=t;return e}get Enum(){const e={};for(const t of this._def.values)e[t]=t;return e}extract(e,t=this._def){return ze.create(e,{...this._def,...t})}exclude(e,t=this._def){return ze.create(this.options.filter(s=>!e.includes(s)),{...this._def,...t})}}ze.create=Es;class lt extends A{_parse(e){const t=z.getValidEnumValues(this._def.values),s=this._getOrReturnCtx(e);if(s.parsedType!==f.string&&s.parsedType!==f.number){const o=z.objectValues(t);return m(s,{expected:z.joinValues(o),received:s.parsedType,code:c.invalid_type}),S}if(this._cache||(this._cache=new Set(z.getValidEnumValues(this._def.values))),!this._cache.has(e.data)){const o=z.objectValues(t);return m(s,{received:s.data,code:c.invalid_enum_value,options:o}),S}return re(e.data)}get enum(){return this._def.values}}lt.create=(r,e)=>new lt({values:r,typeName:E.ZodNativeEnum,...I(e)});class Ke extends A{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==f.promise&&t.common.async===!1)return m(t,{code:c.invalid_type,expected:f.promise,received:t.parsedType}),S;const s=t.parsedType===f.promise?t.data:Promise.resolve(t.data);return re(s.then(o=>this._def.type.parseAsync(o,{path:t.path,errorMap:t.common.contextualErrorMap})))}}Ke.create=(r,e)=>new Ke({type:r,typeName:E.ZodPromise,...I(e)});class de extends A{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===E.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:s}=this._processInputParams(e),o=this._def.effect||null,n={addIssue:i=>{m(s,i),i.fatal?t.abort():t.dirty()},get path(){return s.path}};if(n.addIssue=n.addIssue.bind(n),o.type==="preprocess"){const i=o.transform(s.data,n);if(s.common.async)return Promise.resolve(i).then(async a=>{if(t.value==="aborted")return S;const p=await this._def.schema._parseAsync({data:a,path:s.path,parent:s});return p.status==="aborted"?S:p.status==="dirty"||t.value==="dirty"?Ue(p.value):p});{if(t.value==="aborted")return S;const a=this._def.schema._parseSync({data:i,path:s.path,parent:s});return a.status==="aborted"?S:a.status==="dirty"||t.value==="dirty"?Ue(a.value):a}}if(o.type==="refinement"){const i=a=>{const p=o.refinement(a,n);if(s.common.async)return Promise.resolve(p);if(p instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return a};if(s.common.async===!1){const a=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});return a.status==="aborted"?S:(a.status==="dirty"&&t.dirty(),i(a.value),{status:t.value,value:a.value})}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(a=>a.status==="aborted"?S:(a.status==="dirty"&&t.dirty(),i(a.value).then(()=>({status:t.value,value:a.value}))))}if(o.type==="transform")if(s.common.async===!1){const i=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!Fe(i))return S;const a=o.transform(i.value,n);if(a instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:t.value,value:a}}else return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then(i=>Fe(i)?Promise.resolve(o.transform(i.value,n)).then(a=>({status:t.value,value:a})):S);z.assertNever(o)}}de.create=(r,e,t)=>new de({schema:r,typeName:E.ZodEffects,effect:e,...I(t)});de.createWithPreprocess=(r,e,t)=>new de({schema:e,effect:{type:"preprocess",transform:r},typeName:E.ZodEffects,...I(t)});class he extends A{_parse(e){return this._getType(e)===f.undefined?re(void 0):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}he.create=(r,e)=>new he({innerType:r,typeName:E.ZodOptional,...I(e)});class Ce extends A{_parse(e){return this._getType(e)===f.null?re(null):this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}Ce.create=(r,e)=>new Ce({innerType:r,typeName:E.ZodNullable,...I(e)});class dt extends A{_parse(e){const{ctx:t}=this._processInputParams(e);let s=t.data;return t.parsedType===f.undefined&&(s=this._def.defaultValue()),this._def.innerType._parse({data:s,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}dt.create=(r,e)=>new dt({innerType:r,typeName:E.ZodDefault,defaultValue:typeof e.default=="function"?e.default:()=>e.default,...I(e)});class mt extends A{_parse(e){const{ctx:t}=this._processInputParams(e),s={...t,common:{...t.common,issues:[]}},o=this._def.innerType._parse({data:s.data,path:s.path,parent:{...s}});return ot(o)?o.then(n=>({status:"valid",value:n.status==="valid"?n.value:this._def.catchValue({get error(){return new ne(s.common.issues)},input:s.data})})):{status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new ne(s.common.issues)},input:s.data})}}removeCatch(){return this._def.innerType}}mt.create=(r,e)=>new mt({innerType:r,typeName:E.ZodCatch,catchValue:typeof e.catch=="function"?e.catch:()=>e.catch,...I(e)});class Nt extends A{_parse(e){if(this._getType(e)!==f.nan){const s=this._getOrReturnCtx(e);return m(s,{code:c.invalid_type,expected:f.nan,received:s.parsedType}),S}return{status:"valid",value:e.data}}}Nt.create=r=>new Nt({typeName:E.ZodNaN,...I(r)});const po=Symbol("zod_brand");class Xt extends A{_parse(e){const{ctx:t}=this._processInputParams(e),s=t.data;return this._def.type._parse({data:s,path:t.path,parent:t})}unwrap(){return this._def.type}}class ft extends A{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.common.async)return(async()=>{const n=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});return n.status==="aborted"?S:n.status==="dirty"?(t.dirty(),Ue(n.value)):this._def.out._parseAsync({data:n.value,path:s.path,parent:s})})();{const o=this._def.in._parseSync({data:s.data,path:s.path,parent:s});return o.status==="aborted"?S:o.status==="dirty"?(t.dirty(),{status:"dirty",value:o.value}):this._def.out._parseSync({data:o.value,path:s.path,parent:s})}}static create(e,t){return new ft({in:e,out:t,typeName:E.ZodPipeline})}}class ht extends A{_parse(e){const t=this._def.innerType._parse(e),s=o=>(Fe(o)&&(o.value=Object.freeze(o.value)),o);return ot(t)?t.then(o=>s(o)):s(t)}unwrap(){return this._def.innerType}}ht.create=(r,e)=>new ht({innerType:r,typeName:E.ZodReadonly,...I(e)});function is(r,e){const t=typeof r=="function"?r(e):typeof r=="string"?{message:r}:r;return typeof t=="string"?{message:t}:t}function Is(r,e={},t){return r?We.create().superRefine((s,o)=>{const n=r(s);if(n instanceof Promise)return n.then(i=>{if(!i){const a=is(e,s),p=a.fatal??t??!0;o.addIssue({code:"custom",...a,fatal:p})}});if(!n){const i=is(e,s),a=i.fatal??t??!0;o.addIssue({code:"custom",...i,fatal:a})}}):We.create()}const _o={object:D.lazycreate};var E;(function(r){r.ZodString="ZodString",r.ZodNumber="ZodNumber",r.ZodNaN="ZodNaN",r.ZodBigInt="ZodBigInt",r.ZodBoolean="ZodBoolean",r.ZodDate="ZodDate",r.ZodSymbol="ZodSymbol",r.ZodUndefined="ZodUndefined",r.ZodNull="ZodNull",r.ZodAny="ZodAny",r.ZodUnknown="ZodUnknown",r.ZodNever="ZodNever",r.ZodVoid="ZodVoid",r.ZodArray="ZodArray",r.ZodObject="ZodObject",r.ZodUnion="ZodUnion",r.ZodDiscriminatedUnion="ZodDiscriminatedUnion",r.ZodIntersection="ZodIntersection",r.ZodTuple="ZodTuple",r.ZodRecord="ZodRecord",r.ZodMap="ZodMap",r.ZodSet="ZodSet",r.ZodFunction="ZodFunction",r.ZodLazy="ZodLazy",r.ZodLiteral="ZodLiteral",r.ZodEnum="ZodEnum",r.ZodEffects="ZodEffects",r.ZodNativeEnum="ZodNativeEnum",r.ZodOptional="ZodOptional",r.ZodNullable="ZodNullable",r.ZodDefault="ZodDefault",r.ZodCatch="ZodCatch",r.ZodPromise="ZodPromise",r.ZodBranded="ZodBranded",r.ZodPipeline="ZodPipeline",r.ZodReadonly="ZodReadonly"})(E||(E={}));const uo=(r,e={message:`Input not instance of ${r.name}`})=>Is(t=>t instanceof r,e),N=ce.create,ge=Oe.create,co=Nt.create,lo=Re.create,kt=rt.create,mo=De.create,ho=Rt.create,go=nt.create,As=it.create,Ne=We.create,jt=$e.create,fo=we.create,ko=zt.create,qe=le.create,M=D.create,vo=D.strictCreate,Ve=at.create,xo=Mt.create,yo=pt.create,bo=ke.create,vt=_t.create,wo=Ct.create,To=Be.create,So=He.create,Os=ut.create,oe=ct.create,Pt=ze.create,Eo=lt.create,Io=Ke.create,as=de.create,Ao=he.create,Oo=Ce.create,Ro=de.createWithPreprocess,zo=ft.create,Co=()=>N().optional(),No=()=>ge().optional(),Lo=()=>kt().optional(),It={string:r=>ce.create({...r,coerce:!0}),number:r=>Oe.create({...r,coerce:!0}),boolean:r=>rt.create({...r,coerce:!0}),bigint:r=>Re.create({...r,coerce:!0}),date:r=>De.create({...r,coerce:!0})},Mo=S,Q=Object.freeze(Object.defineProperty({__proto__:null,BRAND:po,DIRTY:Ue,EMPTY_PATH:Ds,INVALID:S,NEVER:Mo,OK:re,ParseStatus:se,Schema:A,ZodAny:We,ZodArray:le,ZodBigInt:Re,ZodBoolean:rt,ZodBranded:Xt,ZodCatch:mt,ZodDate:De,ZodDefault:dt,ZodDiscriminatedUnion:Mt,ZodEffects:de,ZodEnum:ze,ZodError:ne,get ZodFirstPartyTypeKind(){return E},ZodFunction:He,ZodIntersection:pt,ZodIssueCode:c,ZodLazy:ut,ZodLiteral:ct,ZodMap:Ct,ZodNaN:Nt,ZodNativeEnum:lt,ZodNever:we,ZodNull:it,ZodNullable:Ce,ZodNumber:Oe,ZodObject:D,ZodOptional:he,ZodParsedType:f,ZodPipeline:ft,ZodPromise:Ke,ZodReadonly:ht,ZodRecord:_t,ZodSchema:A,ZodSet:Be,ZodString:ce,ZodSymbol:Rt,ZodTransformer:de,ZodTuple:ke,ZodType:A,ZodUndefined:nt,ZodUnion:at,ZodUnknown:$e,ZodVoid:zt,addIssueToContext:m,any:Ne,array:qe,bigint:lo,boolean:kt,coerce:It,custom:Is,date:mo,datetimeRegex:Ss,defaultErrorMap:Je,discriminatedUnion:xo,effect:as,enum:Pt,function:So,getErrorMap:At,getParsedType:ye,instanceof:uo,intersection:yo,isAborted:Gt,isAsync:ot,isDirty:Ut,isValid:Fe,late:_o,lazy:Os,literal:oe,makeIssue:Ot,map:wo,nan:co,nativeEnum:Eo,never:fo,null:As,nullable:Oo,number:ge,object:M,get objectUtil(){return Vt},oboolean:Lo,onumber:No,optional:Ao,ostring:Co,pipeline:zo,preprocess:Ro,promise:Io,quotelessJson:$s,record:vt,set:To,setErrorMap:Fs,strictObject:vo,string:N,symbol:ho,transformer:as,tuple:bo,undefined:go,union:Ve,unknown:jt,get util(){return z},void:ko},Symbol.toStringTag,{value:"Module"})),Me=()=>Q.preprocess(r=>{if(typeof r=="boolean")return r;if(typeof r=="number")return r===1;if(typeof r=="string"){const e=r.trim().toLowerCase();if(["1","true","yes","y","on"].includes(e))return!0;if(["0","false","no","n","off"].includes(e))return!1}},Q.boolean()),jo=()=>Q.preprocess(r=>{if(typeof r=="number"&&Number.isFinite(r))return r;if(typeof r=="string"){const e=Number(r);if(Number.isFinite(e))return e}},Q.number()),Rs=Q.object({NODE_ENV:Q.enum(["development","production","test"]).default("production"),AGENT_CONTAINER_MODE:Me().default(!1),AGENT_API_KEY:Q.string().optional(),AGENT_ORGANIZATION_ID:Q.string().optional(),AGENT_SESSION_ID:Q.string().optional(),AGENT_SERVER_URL:Q.string().optional(),AGENT_TYPE:Q.string().optional(),AGENT_DEVICE_GUID:Q.string().optional(),CONTEXT_DATA:Q.string().optional(),AGI_NETLOG_ENABLE:Me().default(!0),AGI_NETLOG_DEBUG:Me().optional(),AGI_NETLOG_FILE:Q.string().optional(),AGI_NETLOG_MAX_BODY:jo().optional(),AGI_NETLOG_REMOTE_ENABLE:Me().default(!0),AGI_NETLOG_REMOTE_FILE:Q.string().optional(),DEBUG:Me().default(!1),VERBOSE:Me().default(!1),LOG_LEVEL:Q.string().optional(),HOSTNAME:Q.string().optional(),VITE_SAVE_RAW:Me().default(!1)});function St(r=!1){return r?"https://agiflow.io":"https://agiflow.io"}let P=Rs.parse(process.env);class ee{static refresh(){P=Rs.parse(process.env)}static get isContainerMode(){return!!P.AGENT_CONTAINER_MODE}static get apiKey(){return P.AGENT_API_KEY||process.env.AGENT_API_KEY}static get organizationId(){return P.AGENT_ORGANIZATION_ID||process.env.AGENT_ORGANIZATION_ID}static get sessionId(){return P.AGENT_SESSION_ID||process.env.AGENT_SESSION_ID}static get serverUrl(){return P.AGENT_SERVER_URL||process.env.AGENT_SERVER_URL||St(this.isContainerMode)}static get isNetlogEnabled(){return!!P.AGI_NETLOG_ENABLE}static get isNetlogDebug(){return!!P.AGI_NETLOG_DEBUG}static get isNetlogRemoteEnabled(){return!!P.AGI_NETLOG_REMOTE_ENABLE}static get isDebugMode(){return P.DEBUG}static get isVerbose(){return P.VERBOSE}static get logLevel(){return P.LOG_LEVEL??(P.DEBUG?"debug":"info")}static get nodeEnv(){return P.NODE_ENV}static get homeDir(){return process.env.HOME||process.env.USERPROFILE}static get isMacOS(){return process.platform==="darwin"}static get hostname(){return P.HOSTNAME}static get netlogMaxBody(){return P.AGI_NETLOG_MAX_BODY}static get netlogFile(){return P.AGI_NETLOG_FILE}static get netlogRemoteFile(){return P.AGI_NETLOG_REMOTE_FILE}static get agentType(){return P.AGENT_TYPE||process.env.AGENT_TYPE}static get deviceGuid(){return P.AGENT_DEVICE_GUID}static get isSaveRawEnabled(){return!!P.VITE_SAVE_RAW}static get contextData(){return P.CONTEXT_DATA||process.env.CONTEXT_DATA}static serializeEnv(){const e={...process.env};for(const[t,s]of Object.entries(P))s!==void 0&&(typeof s=="string"?e[t]=s:typeof s=="number"?e[t]=String(s):typeof s=="boolean"?e[t]=s?"true":"false":e[t]=String(s));return e}static toChildProcess(){const e=this.serializeEnv();return e.AGENT_SERVER_URL||(e.AGENT_SERVER_URL=St(this.isContainerMode)),e.LOG_LEVEL||(e.LOG_LEVEL=this.logLevel),e}static toDocker(){const e=this.serializeEnv();return e.AGENT_CONTAINER_MODE="true",e.AGENT_SERVER_URL||(e.AGENT_SERVER_URL=St(!0)),e.LOG_LEVEL||(e.LOG_LEVEL=this.logLevel),e}static toPty(){const e=this.serializeEnv();return e.AGENT_SERVER_URL||(e.AGENT_SERVER_URL=St(this.isContainerMode)),e.LOG_LEVEL||(e.LOG_LEVEL=this.logLevel),e}static getEnvs(){return P}}class st{logStream;logPath;constructor(e){this.logPath=e;const t=be.dirname(this.logPath);Pe.existsSync(t)||Pe.mkdirSync(t,{recursive:!0}),this.logStream=Pe.createWriteStream(this.logPath,{flags:"a"}),this.logStream.on("error",s=>{console.error(`[FileLogger] Error writing to log file: ${s.message}`)})}info(e,t){this.log(30,e,t)}debug(e,t){this.log(20,e,t)}warn(e,t){this.log(40,e,t)}error(e,t){this.log(50,e,t)}log(e,t,s){const o={time:new Date().toISOString(),level:e,msg:t,...s};try{this.logStream.write(JSON.stringify(o)+`
2
+ `)}catch(n){console.error(`[FileLogger] Failed to write log entry: ${n}`)}}close(){this.logStream&&!this.logStream.destroyed&&this.logStream.end()}getLogPath(){return this.logPath}static shouldDebug(){return ee.isDebugMode||ee.isNetlogDebug}}const Po={max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:15e-6,output_cost_per_token:6e-5,cache_read_input_token_cost:75e-7,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0},$o={max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:2e-6,output_cost_per_token:8e-6,cache_read_input_token_cost:5e-7,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!1,supports_vision:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0,supported_endpoints:["/v1/responses","/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image"],supported_output_modalities:["text"]},Fo={"gpt-4":{max_tokens:4096,max_input_tokens:8192,max_output_tokens:4096,input_cost_per_token:3e-5,output_cost_per_token:6e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4.1":{max_tokens:32768,max_input_tokens:1047576,max_output_tokens:32768,input_cost_per_token:2e-6,output_cost_per_token:8e-6,input_cost_per_token_batches:1e-6,output_cost_per_token_batches:4e-6,cache_read_input_token_cost:5e-7,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"gpt-4.1-2025-04-14":{max_tokens:32768,max_input_tokens:1047576,max_output_tokens:32768,input_cost_per_token:2e-6,output_cost_per_token:8e-6,input_cost_per_token_batches:1e-6,output_cost_per_token_batches:4e-6,cache_read_input_token_cost:5e-7,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"gpt-4.1-mini":{max_tokens:32768,max_input_tokens:1047576,max_output_tokens:32768,input_cost_per_token:4e-7,output_cost_per_token:16e-7,input_cost_per_token_batches:2e-7,output_cost_per_token_batches:8e-7,cache_read_input_token_cost:1e-7,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"gpt-4.1-mini-2025-04-14":{max_tokens:32768,max_input_tokens:1047576,max_output_tokens:32768,input_cost_per_token:4e-7,output_cost_per_token:16e-7,input_cost_per_token_batches:2e-7,output_cost_per_token_batches:8e-7,cache_read_input_token_cost:1e-7,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"gpt-4.1-nano":{max_tokens:32768,max_input_tokens:1047576,max_output_tokens:32768,input_cost_per_token:1e-7,output_cost_per_token:4e-7,input_cost_per_token_batches:5e-8,output_cost_per_token_batches:2e-7,cache_read_input_token_cost:25e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"gpt-4.1-nano-2025-04-14":{max_tokens:32768,max_input_tokens:1047576,max_output_tokens:32768,input_cost_per_token:1e-7,output_cost_per_token:4e-7,input_cost_per_token_batches:5e-8,output_cost_per_token_batches:2e-7,cache_read_input_token_cost:25e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"gpt-4o":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,output_cost_per_token:1e-5,input_cost_per_token_batches:125e-8,output_cost_per_token_batches:5e-6,cache_read_input_token_cost:125e-8,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"watsonx/ibm/granite-3-8b-instruct":{max_tokens:8192,max_input_tokens:8192,max_output_tokens:1024,input_cost_per_token:2e-4,output_cost_per_token:2e-4,litellm_provider:"watsonx",mode:"chat",supports_function_calling:!0,supports_tool_choice:!0,supports_parallel_function_calling:!1,supports_vision:!1,supports_audio_input:!1,supports_audio_output:!1,supports_prompt_caching:!0,supports_response_schema:!0,supports_system_messages:!0},"watsonx/mistralai/mistral-large":{max_tokens:131072,max_input_tokens:131072,max_output_tokens:16384,input_cost_per_token:3e-6,output_cost_per_token:1e-5,litellm_provider:"watsonx",mode:"chat",supports_function_calling:!0,supports_tool_choice:!0,supports_parallel_function_calling:!1,supports_vision:!1,supports_audio_input:!1,supports_audio_output:!1,supports_prompt_caching:!0,supports_response_schema:!0,supports_system_messages:!0},"gpt-4o-search-preview-2025-03-11":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,output_cost_per_token:1e-5,input_cost_per_token_batches:125e-8,output_cost_per_token_batches:5e-6,cache_read_input_token_cost:125e-8,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-search-preview":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,output_cost_per_token:1e-5,input_cost_per_token_batches:125e-8,output_cost_per_token_batches:5e-6,cache_read_input_token_cost:125e-8,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_web_search:!0,search_context_cost_per_query:{search_context_size_low:.03,search_context_size_medium:.035,search_context_size_high:.05}},"gpt-4.5-preview":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:75e-6,output_cost_per_token:15e-5,input_cost_per_token_batches:375e-7,output_cost_per_token_batches:75e-6,cache_read_input_token_cost:375e-7,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4.5-preview-2025-02-27":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:75e-6,output_cost_per_token:15e-5,input_cost_per_token_batches:375e-7,output_cost_per_token_batches:75e-6,cache_read_input_token_cost:375e-7,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,deprecation_date:"2025-07-14"},"gpt-4o-audio-preview":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,input_cost_per_audio_token:1e-4,output_cost_per_token:1e-5,output_cost_per_audio_token:2e-4,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-audio-preview-2024-12-17":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,input_cost_per_audio_token:4e-5,output_cost_per_token:1e-5,output_cost_per_audio_token:8e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-audio-preview-2024-10-01":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,input_cost_per_audio_token:1e-4,output_cost_per_token:1e-5,output_cost_per_audio_token:2e-4,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-audio-preview-2025-06-03":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,input_cost_per_audio_token:4e-5,output_cost_per_token:1e-5,output_cost_per_audio_token:8e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-mini-audio-preview":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:15e-8,input_cost_per_audio_token:1e-5,output_cost_per_token:6e-7,output_cost_per_audio_token:2e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-mini-audio-preview-2024-12-17":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:15e-8,input_cost_per_audio_token:1e-5,output_cost_per_token:6e-7,output_cost_per_audio_token:2e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-mini":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:15e-8,output_cost_per_token:6e-7,input_cost_per_token_batches:75e-9,output_cost_per_token_batches:3e-7,cache_read_input_token_cost:75e-9,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-mini-search-preview-2025-03-11":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:15e-8,output_cost_per_token:6e-7,input_cost_per_token_batches:75e-9,output_cost_per_token_batches:3e-7,cache_read_input_token_cost:75e-9,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-mini-search-preview":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:15e-8,output_cost_per_token:6e-7,input_cost_per_token_batches:75e-9,output_cost_per_token_batches:3e-7,cache_read_input_token_cost:75e-9,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_web_search:!0,search_context_cost_per_query:{search_context_size_low:.025,search_context_size_medium:.0275,search_context_size_high:.03}},"gpt-4o-mini-2024-07-18":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:15e-8,output_cost_per_token:6e-7,input_cost_per_token_batches:75e-9,output_cost_per_token_batches:3e-7,cache_read_input_token_cost:75e-9,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,search_context_cost_per_query:{search_context_size_low:.025,search_context_size_medium:.0275,search_context_size_high:.03}},"gpt-5":{max_tokens:128e3,max_input_tokens:4e5,max_output_tokens:128e3,input_cost_per_token:125e-8,output_cost_per_token:1e-5,cache_read_input_token_cost:125e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0,supports_reasoning:!0},"gpt-5-mini":{max_tokens:128e3,max_input_tokens:4e5,max_output_tokens:128e3,input_cost_per_token:25e-8,output_cost_per_token:2e-6,cache_read_input_token_cost:25e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0,supports_reasoning:!0},"gpt-5-nano":{max_tokens:128e3,max_input_tokens:4e5,max_output_tokens:128e3,input_cost_per_token:5e-8,output_cost_per_token:4e-7,cache_read_input_token_cost:5e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0,supports_reasoning:!0},"gpt-5-chat":{max_tokens:128e3,max_input_tokens:4e5,max_output_tokens:128e3,input_cost_per_token:125e-8,output_cost_per_token:1e-5,cache_read_input_token_cost:125e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!1,supports_parallel_function_calling:!1,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!1,supports_native_streaming:!0,supports_reasoning:!0},"gpt-5-chat-latest":{max_tokens:128e3,max_input_tokens:4e5,max_output_tokens:128e3,input_cost_per_token:125e-8,output_cost_per_token:1e-5,cache_read_input_token_cost:125e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!1,supports_parallel_function_calling:!1,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!1,supports_native_streaming:!0,supports_reasoning:!0},"gpt-5-2025-08-07":{max_tokens:128e3,max_input_tokens:4e5,max_output_tokens:128e3,input_cost_per_token:125e-8,output_cost_per_token:1e-5,cache_read_input_token_cost:125e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0,supports_reasoning:!0},"gpt-5-mini-2025-08-07":{max_tokens:128e3,max_input_tokens:4e5,max_output_tokens:128e3,input_cost_per_token:25e-8,output_cost_per_token:2e-6,cache_read_input_token_cost:25e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0,supports_reasoning:!0},"gpt-5-nano-2025-08-07":{max_tokens:128e3,max_input_tokens:4e5,max_output_tokens:128e3,input_cost_per_token:5e-8,output_cost_per_token:4e-7,cache_read_input_token_cost:5e-9,litellm_provider:"openai",mode:"chat",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0,supports_reasoning:!0},"codex-mini-latest":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:15e-7,output_cost_per_token:6e-6,cache_read_input_token_cost:375e-9,litellm_provider:"openai",mode:"responses",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supported_modalities:["text","image"],supported_output_modalities:["text"],supported_endpoints:["/v1/responses"]},"o1-pro":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:15e-5,output_cost_per_token:6e-4,input_cost_per_token_batches:75e-6,output_cost_per_token_batches:3e-4,litellm_provider:"openai",mode:"responses",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_native_streaming:!1,supports_reasoning:!0,supported_modalities:["text","image"],supported_output_modalities:["text"],supported_endpoints:["/v1/responses","/v1/batch"]},"o1-pro-2025-03-19":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:15e-5,output_cost_per_token:6e-4,input_cost_per_token_batches:75e-6,output_cost_per_token_batches:3e-4,litellm_provider:"openai",mode:"responses",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_native_streaming:!1,supports_reasoning:!0,supported_modalities:["text","image"],supported_output_modalities:["text"],supported_endpoints:["/v1/responses","/v1/batch"]},o1:Po,"o1-mini":{max_tokens:65536,max_input_tokens:128e3,max_output_tokens:65536,input_cost_per_token:11e-7,output_cost_per_token:44e-7,cache_read_input_token_cost:55e-8,litellm_provider:"openai",mode:"chat",supports_vision:!0,supports_pdf_input:!0,supports_prompt_caching:!0},"o3-deep-research":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:1e-5,output_cost_per_token:4e-5,input_cost_per_token_batches:5e-6,output_cost_per_token_batches:2e-5,cache_read_input_token_cost:25e-7,litellm_provider:"openai",mode:"responses",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"o3-deep-research-2025-06-26":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:1e-5,output_cost_per_token:4e-5,input_cost_per_token_batches:5e-6,output_cost_per_token_batches:2e-5,cache_read_input_token_cost:25e-7,litellm_provider:"openai",mode:"responses",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"o3-pro":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:2e-5,input_cost_per_token_batches:1e-5,output_cost_per_token_batches:4e-5,output_cost_per_token:8e-5,litellm_provider:"openai",mode:"responses",supports_function_calling:!0,supports_parallel_function_calling:!1,supports_vision:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0,supported_endpoints:["/v1/responses","/v1/batch"],supported_modalities:["text","image"],supported_output_modalities:["text"]},"o3-pro-2025-06-10":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:2e-5,input_cost_per_token_batches:1e-5,output_cost_per_token_batches:4e-5,output_cost_per_token:8e-5,litellm_provider:"openai",mode:"responses",supports_function_calling:!0,supports_parallel_function_calling:!1,supports_vision:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0,supported_endpoints:["/v1/responses","/v1/batch"],supported_modalities:["text","image"],supported_output_modalities:["text"]},o3:$o,"o3-2025-04-16":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:2e-6,output_cost_per_token:8e-6,cache_read_input_token_cost:5e-7,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!1,supports_vision:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0,supported_endpoints:["/v1/responses","/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image"],supported_output_modalities:["text"]},"o3-mini":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:11e-7,output_cost_per_token:44e-7,cache_read_input_token_cost:55e-8,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!1,supports_vision:!1,supports_prompt_caching:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0},"o3-mini-2025-01-31":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:11e-7,output_cost_per_token:44e-7,cache_read_input_token_cost:55e-8,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!1,supports_vision:!1,supports_prompt_caching:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0},"o4-mini":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:11e-7,output_cost_per_token:44e-7,cache_read_input_token_cost:275e-9,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!1,supports_vision:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0},"o4-mini-deep-research":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:2e-6,output_cost_per_token:8e-6,input_cost_per_token_batches:1e-6,output_cost_per_token_batches:4e-6,cache_read_input_token_cost:5e-7,litellm_provider:"openai",mode:"responses",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"o4-mini-deep-research-2025-06-26":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:2e-6,output_cost_per_token:8e-6,input_cost_per_token_batches:1e-6,output_cost_per_token_batches:4e-6,cache_read_input_token_cost:5e-7,litellm_provider:"openai",mode:"responses",supported_endpoints:["/v1/chat/completions","/v1/batch","/v1/responses"],supported_modalities:["text","image"],supported_output_modalities:["text"],supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0,supports_native_streaming:!0},"o4-mini-2025-04-16":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:11e-7,output_cost_per_token:44e-7,cache_read_input_token_cost:275e-9,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!1,supports_vision:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0},"o1-mini-2024-09-12":{max_tokens:65536,max_input_tokens:128e3,max_output_tokens:65536,input_cost_per_token:3e-6,output_cost_per_token:12e-6,cache_read_input_token_cost:15e-7,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_vision:!0,supports_reasoning:!0,supports_prompt_caching:!0},"o1-preview":{max_tokens:32768,max_input_tokens:128e3,max_output_tokens:32768,input_cost_per_token:15e-6,output_cost_per_token:6e-5,cache_read_input_token_cost:75e-7,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_vision:!0,supports_reasoning:!0,supports_prompt_caching:!0},"o1-preview-2024-09-12":{max_tokens:32768,max_input_tokens:128e3,max_output_tokens:32768,input_cost_per_token:15e-6,output_cost_per_token:6e-5,cache_read_input_token_cost:75e-7,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_vision:!0,supports_reasoning:!0,supports_prompt_caching:!0},"o1-2024-12-17":{max_tokens:1e5,max_input_tokens:2e5,max_output_tokens:1e5,input_cost_per_token:15e-6,output_cost_per_token:6e-5,cache_read_input_token_cost:75e-7,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_response_schema:!0,supports_reasoning:!0,supports_tool_choice:!0},"chatgpt-4o-latest":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:5e-6,output_cost_per_token:15e-6,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-2024-05-13":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:5e-6,output_cost_per_token:15e-6,input_cost_per_token_batches:25e-7,output_cost_per_token_batches:75e-7,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-2024-08-06":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,output_cost_per_token:1e-5,input_cost_per_token_batches:125e-8,output_cost_per_token_batches:5e-6,cache_read_input_token_cost:125e-8,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-2024-11-20":{max_tokens:16384,max_input_tokens:128e3,max_output_tokens:16384,input_cost_per_token:25e-7,output_cost_per_token:1e-5,input_cost_per_token_batches:125e-8,output_cost_per_token_batches:5e-6,cache_read_input_token_cost:125e-8,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_response_schema:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-realtime":{max_tokens:4096,max_input_tokens:32e3,max_output_tokens:4096,input_cost_per_token:4e-6,cache_read_input_token_cost:4e-7,output_cost_per_token:16e-6,input_cost_per_audio_token:32e-6,output_cost_per_audio_token:64e-6,cache_creation_input_audio_token_cost:4e-7,input_cost_per_image:5e-6,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0,supported_endpoints:["/v1/realtime"],supported_modalities:["text","image","audio"],supported_output_modalities:["text","audio"]},"gpt-realtime-2025-08-28":{max_tokens:4096,max_input_tokens:32e3,max_output_tokens:4096,input_cost_per_token:4e-6,cache_read_input_token_cost:4e-7,output_cost_per_token:16e-6,input_cost_per_audio_token:32e-6,output_cost_per_audio_token:64e-6,cache_creation_input_audio_token_cost:4e-7,input_cost_per_image:5e-6,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0,supported_endpoints:["/v1/realtime"],supported_modalities:["text","image","audio"],supported_output_modalities:["text","audio"]},"gpt-4o-realtime-preview-2024-10-01":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:5e-6,input_cost_per_audio_token:1e-4,cache_read_input_token_cost:25e-7,cache_creation_input_audio_token_cost:2e-5,output_cost_per_token:2e-5,output_cost_per_audio_token:2e-4,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-realtime-preview":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:5e-6,input_cost_per_audio_token:4e-5,cache_read_input_token_cost:25e-7,output_cost_per_token:2e-5,output_cost_per_audio_token:8e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-realtime-preview-2024-12-17":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:5e-6,input_cost_per_audio_token:4e-5,cache_read_input_token_cost:25e-7,output_cost_per_token:2e-5,output_cost_per_audio_token:8e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-realtime-preview-2025-06-03":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:5e-6,input_cost_per_audio_token:4e-5,cache_read_input_token_cost:25e-7,output_cost_per_token:2e-5,output_cost_per_audio_token:8e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-mini-realtime-preview":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:6e-7,input_cost_per_audio_token:1e-5,cache_read_input_token_cost:3e-7,cache_creation_input_audio_token_cost:3e-7,output_cost_per_token:24e-7,output_cost_per_audio_token:2e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-mini-realtime-preview-2024-12-17":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:6e-7,input_cost_per_audio_token:1e-5,cache_read_input_token_cost:3e-7,cache_creation_input_audio_token_cost:3e-7,output_cost_per_token:24e-7,output_cost_per_audio_token:2e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_audio_input:!0,supports_audio_output:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-turbo-preview":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:1e-5,output_cost_per_token:3e-5,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-0314":{max_tokens:4096,max_input_tokens:8192,max_output_tokens:4096,input_cost_per_token:3e-5,output_cost_per_token:6e-5,litellm_provider:"openai",mode:"chat",supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-0613":{max_tokens:4096,max_input_tokens:8192,max_output_tokens:4096,input_cost_per_token:3e-5,output_cost_per_token:6e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,deprecation_date:"2025-06-06",supports_tool_choice:!0},"gpt-4-32k":{max_tokens:4096,max_input_tokens:32768,max_output_tokens:4096,input_cost_per_token:6e-5,output_cost_per_token:12e-5,litellm_provider:"openai",mode:"chat",supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-32k-0314":{max_tokens:4096,max_input_tokens:32768,max_output_tokens:4096,input_cost_per_token:6e-5,output_cost_per_token:12e-5,litellm_provider:"openai",mode:"chat",supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-32k-0613":{max_tokens:4096,max_input_tokens:32768,max_output_tokens:4096,input_cost_per_token:6e-5,output_cost_per_token:12e-5,litellm_provider:"openai",mode:"chat",supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-turbo":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:1e-5,output_cost_per_token:3e-5,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-turbo-2024-04-09":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:1e-5,output_cost_per_token:3e-5,litellm_provider:"openai",mode:"chat",supports_pdf_input:!0,supports_function_calling:!0,supports_parallel_function_calling:!0,supports_vision:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-1106-preview":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:1e-5,output_cost_per_token:3e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-0125-preview":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:1e-5,output_cost_per_token:3e-5,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4-vision-preview":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:1e-5,output_cost_per_token:3e-5,litellm_provider:"openai",mode:"chat",supports_vision:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_system_messages:!0,deprecation_date:"2024-12-06",supports_tool_choice:!0},"gpt-4-1106-vision-preview":{max_tokens:4096,max_input_tokens:128e3,max_output_tokens:4096,input_cost_per_token:1e-5,output_cost_per_token:3e-5,litellm_provider:"openai",mode:"chat",supports_vision:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_system_messages:!0,deprecation_date:"2024-12-06",supports_tool_choice:!0},"gpt-3.5-turbo":{max_tokens:4097,max_input_tokens:16385,max_output_tokens:4096,input_cost_per_token:15e-7,output_cost_per_token:2e-6,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-3.5-turbo-0301":{max_tokens:4097,max_input_tokens:4097,max_output_tokens:4096,input_cost_per_token:15e-7,output_cost_per_token:2e-6,litellm_provider:"openai",mode:"chat",supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-3.5-turbo-0613":{max_tokens:4097,max_input_tokens:4097,max_output_tokens:4096,input_cost_per_token:15e-7,output_cost_per_token:2e-6,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-3.5-turbo-1106":{max_tokens:16385,max_input_tokens:16385,max_output_tokens:4096,input_cost_per_token:1e-6,output_cost_per_token:2e-6,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-3.5-turbo-0125":{max_tokens:16385,max_input_tokens:16385,max_output_tokens:4096,input_cost_per_token:5e-7,output_cost_per_token:15e-7,litellm_provider:"openai",mode:"chat",supports_function_calling:!0,supports_parallel_function_calling:!0,supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-3.5-turbo-16k":{max_tokens:16385,max_input_tokens:16385,max_output_tokens:4096,input_cost_per_token:3e-6,output_cost_per_token:4e-6,litellm_provider:"openai",mode:"chat",supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-3.5-turbo-16k-0613":{max_tokens:16385,max_input_tokens:16385,max_output_tokens:4096,input_cost_per_token:3e-6,output_cost_per_token:4e-6,litellm_provider:"openai",mode:"chat",supports_prompt_caching:!0,supports_system_messages:!0,supports_tool_choice:!0},"gpt-4o-transcribe":{mode:"audio_transcription",max_input_tokens:16e3,max_output_tokens:2e3,input_cost_per_token:25e-7,input_cost_per_audio_token:6e-6,output_cost_per_token:1e-5,litellm_provider:"openai",supported_endpoints:["/v1/audio/transcriptions"]},"gpt-4o-mini-transcribe":{mode:"audio_transcription",max_input_tokens:16e3,max_output_tokens:2e3,input_cost_per_token:125e-8,input_cost_per_audio_token:3e-6,output_cost_per_token:5e-6,litellm_provider:"openai",supported_endpoints:["/v1/audio/transcriptions"]},"gpt-4o-mini-tts":{mode:"audio_speech",input_cost_per_token:25e-7,output_cost_per_token:1e-5,output_cost_per_audio_token:12e-6,output_cost_per_second:25e-5,litellm_provider:"openai",supported_modalities:["text","audio"],supported_output_modalities:["audio"],supported_endpoints:["/v1/audio/speech"]},"claude-3-haiku-20240307":{max_tokens:4096,max_input_tokens:2e5,max_output_tokens:4096,input_cost_per_token:25e-8,output_cost_per_token:125e-8,cache_creation_input_token_cost:3e-7,cache_read_input_token_cost:3e-8,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:264,supports_assistant_prefill:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-03-01",supports_tool_choice:!0},"claude-3-5-haiku-20241022":{max_tokens:8192,max_input_tokens:2e5,max_output_tokens:8192,input_cost_per_token:8e-7,output_cost_per_token:4e-6,cache_creation_input_token_cost:1e-6,cache_read_input_token_cost:8e-8,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:264,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-10-01",supports_tool_choice:!0,supports_web_search:!0},"claude-3-5-haiku-latest":{max_tokens:8192,max_input_tokens:2e5,max_output_tokens:8192,input_cost_per_token:1e-6,output_cost_per_token:5e-6,cache_creation_input_token_cost:125e-8,cache_read_input_token_cost:1e-7,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:264,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-10-01",supports_tool_choice:!0,supports_web_search:!0},"claude-3-opus-latest":{max_tokens:4096,max_input_tokens:2e5,max_output_tokens:4096,input_cost_per_token:15e-6,output_cost_per_token:75e-6,cache_creation_input_token_cost:1875e-8,cache_read_input_token_cost:15e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:395,supports_assistant_prefill:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-03-01",supports_tool_choice:!0},"claude-3-opus-20240229":{max_tokens:4096,max_input_tokens:2e5,max_output_tokens:4096,input_cost_per_token:15e-6,output_cost_per_token:75e-6,cache_creation_input_token_cost:1875e-8,cache_read_input_token_cost:15e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:395,supports_assistant_prefill:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-03-01",supports_tool_choice:!0},"claude-3-5-sonnet-latest":{supports_computer_use:!0,max_tokens:8192,max_input_tokens:2e5,max_output_tokens:8192,input_cost_per_token:3e-6,output_cost_per_token:15e-6,cache_creation_input_token_cost:375e-8,cache_read_input_token_cost:3e-7,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-06-01",supports_tool_choice:!0,supports_web_search:!0},"claude-3-5-sonnet-20240620":{max_tokens:8192,max_input_tokens:2e5,max_output_tokens:8192,input_cost_per_token:3e-6,output_cost_per_token:15e-6,cache_creation_input_token_cost:375e-8,cache_read_input_token_cost:3e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-06-01",supports_tool_choice:!0},"claude-opus-4-20250514":{max_tokens:32e3,max_input_tokens:2e5,max_output_tokens:32e3,input_cost_per_token:15e-6,output_cost_per_token:75e-6,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},cache_creation_input_token_cost:1875e-8,cache_read_input_token_cost:15e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supports_computer_use:!0},"claude-opus-4-1":{max_tokens:32e3,max_input_tokens:2e5,max_output_tokens:32e3,input_cost_per_token:15e-6,output_cost_per_token:75e-6,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},cache_creation_input_token_cost:1875e-8,cache_read_input_token_cost:15e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supports_computer_use:!0},"claude-opus-4-1-20250805":{max_tokens:32e3,max_input_tokens:2e5,max_output_tokens:32e3,input_cost_per_token:15e-6,output_cost_per_token:75e-6,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},cache_creation_input_token_cost:1875e-8,cache_read_input_token_cost:15e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supports_computer_use:!0},"claude-sonnet-4-5-20250929":{max_tokens:64e3,max_input_tokens:2e5,max_output_tokens:64e3,input_cost_per_token:3e-6,output_cost_per_token:15e-6,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},cache_creation_input_token_cost:375e-8,cache_read_input_token_cost:3e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supports_computer_use:!0},"claude-sonnet-4-20250514":{max_tokens:64e3,max_input_tokens:2e5,max_output_tokens:64e3,input_cost_per_token:3e-6,output_cost_per_token:15e-6,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},cache_creation_input_token_cost:375e-8,cache_read_input_token_cost:3e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supports_computer_use:!0},"claude-4-opus-20250514":{max_tokens:32e3,max_input_tokens:2e5,max_output_tokens:32e3,input_cost_per_token:15e-6,output_cost_per_token:75e-6,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},cache_creation_input_token_cost:1875e-8,cache_read_input_token_cost:15e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supports_computer_use:!0},"claude-4-sonnet-20250514":{max_tokens:1e6,max_input_tokens:1e6,max_output_tokens:1e6,input_cost_per_token:3e-6,output_cost_per_token:15e-6,input_cost_per_token_above_200k_tokens:6e-6,output_cost_per_token_above_200k_tokens:225e-7,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},cache_creation_input_token_cost:375e-8,cache_read_input_token_cost:3e-7,cache_creation_input_token_cost_above_200k_tokens:75e-7,cache_read_input_token_cost_above_200k_tokens:6e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supports_computer_use:!0},"claude-3-7-sonnet-latest":{supports_computer_use:!0,max_tokens:128e3,max_input_tokens:2e5,max_output_tokens:128e3,input_cost_per_token:3e-6,output_cost_per_token:15e-6,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},cache_creation_input_token_cost:375e-8,cache_read_input_token_cost:3e-7,litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-06-01",supports_tool_choice:!0,supports_reasoning:!0},"claude-3-7-sonnet-20250219":{supports_computer_use:!0,max_tokens:128e3,max_input_tokens:2e5,max_output_tokens:128e3,input_cost_per_token:3e-6,output_cost_per_token:15e-6,cache_creation_input_token_cost:375e-8,cache_read_input_token_cost:3e-7,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2026-02-01",supports_tool_choice:!0,supports_reasoning:!0,supports_web_search:!0},"claude-3-5-sonnet-20241022":{supports_computer_use:!0,max_tokens:8192,max_input_tokens:2e5,max_output_tokens:8192,input_cost_per_token:3e-6,output_cost_per_token:15e-6,cache_creation_input_token_cost:375e-8,cache_read_input_token_cost:3e-7,search_context_cost_per_query:{search_context_size_low:.01,search_context_size_medium:.01,search_context_size_high:.01},litellm_provider:"anthropic",mode:"chat",supports_function_calling:!0,supports_vision:!0,tool_use_system_prompt_tokens:159,supports_assistant_prefill:!0,supports_pdf_input:!0,supports_prompt_caching:!0,supports_response_schema:!0,deprecation_date:"2025-10-01",supports_tool_choice:!0,supports_web_search:!0},"gemini-2.5-pro-exp-03-25":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_audio_input:!0,supports_video_input:!0,supports_pdf_input:!0,supports_response_schema:!0,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://cloud.google.com/vertex-ai/generative-ai/pricing",supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini-2.0-pro-exp-02-05":{max_tokens:8192,max_input_tokens:2097152,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_audio_input:!0,supports_video_input:!0,supports_pdf_input:!0,supports_response_schema:!0,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://cloud.google.com/vertex-ai/generative-ai/pricing",supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini-2.0-flash-exp":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:15e-8,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:6e-7,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://cloud.google.com/vertex-ai/generative-ai/pricing",supports_tool_choice:!0,supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:375e-10,supports_prompt_caching:!0},"gemini-2.0-flash-001":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:15e-8,output_cost_per_token:6e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supports_tool_choice:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://cloud.google.com/vertex-ai/generative-ai/pricing",deprecation_date:"2026-02-05",supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:375e-10,supports_prompt_caching:!0},"gemini-2.0-flash-thinking-exp":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:0,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:0,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",supports_tool_choice:!0,supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:0,supports_prompt_caching:!0},"gemini-2.0-flash-thinking-exp-01-21":{max_tokens:65536,max_input_tokens:1048576,max_output_tokens:65536,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:0,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:0,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!1,supports_vision:!0,supports_response_schema:!1,supports_audio_output:!1,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",supports_tool_choice:!0,supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:0,supports_prompt_caching:!0},"gemini-2.5-pro":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_audio_input:!0,supports_video_input:!0,supports_pdf_input:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://cloud.google.com/vertex-ai/generative-ai/pricing",supports_web_search:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini/gemini-2.5-pro-exp-03-25":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_token:0,input_cost_per_token_above_200k_tokens:0,output_cost_per_token:0,output_cost_per_token_above_200k_tokens:0,litellm_provider:"gemini",mode:"chat",rpm:5,tpm:25e4,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_audio_input:!0,supports_video_input:!0,supports_pdf_input:!0,supports_response_schema:!0,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://cloud.google.com/vertex-ai/generative-ai/pricing",supports_web_search:!0,cache_read_input_token_cost:0,supports_prompt_caching:!0},"gemini/gemini-2.5-pro":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"gemini",mode:"chat",rpm:2e3,tpm:8e5,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_audio_input:!0,supports_video_input:!0,supports_pdf_input:!0,supports_response_schema:!0,supports_tool_choice:!0,supports_reasoning:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://cloud.google.com/vertex-ai/generative-ai/pricing",supports_web_search:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini/gemini-2.5-flash":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:3e-7,output_cost_per_token:25e-7,output_cost_per_reasoning_token:25e-7,litellm_provider:"gemini",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,tpm:8e6,rpm:1e5,supports_pdf_input:!0,cache_read_input_token_cost:75e-9,supports_prompt_caching:!0},"gemini/gemini-2.5-flash-image-preview":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:3e-7,output_cost_per_token:25e-7,output_cost_per_reasoning_token:25e-7,output_cost_per_image:.039,litellm_provider:"gemini",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,tpm:8e6,rpm:1e5,supports_pdf_input:!0,cache_read_input_token_cost:75e-9,supports_prompt_caching:!0},"gemini-2.5-flash":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:3e-7,output_cost_per_token:25e-7,output_cost_per_reasoning_token:25e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:75e-9,supports_prompt_caching:!0},"gemini/gemini-2.0-flash-live-001":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_token:35e-8,input_cost_per_audio_token:21e-7,input_cost_per_image:21e-7,input_cost_per_video_per_second:21e-7,output_cost_per_token:15e-7,output_cost_per_audio_token:85e-7,litellm_provider:"gemini",mode:"chat",rpm:10,tpm:25e4,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_reasoning:!0,supports_response_schema:!0,supports_audio_output:!0,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","audio"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2-0-flash-live-001",supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:75e-9,supports_prompt_caching:!0},"gemini/gemini-2.5-flash-preview-tts":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:15e-8,output_cost_per_token:6e-7,output_cost_per_reasoning_token:35e-7,litellm_provider:"gemini",mode:"chat",rpm:10,tpm:25e4,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_reasoning:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text"],supported_output_modalities:["audio"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_web_search:!0,cache_read_input_token_cost:375e-10,supports_prompt_caching:!0},"gemini/gemini-2.5-flash-preview-05-20":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:3e-7,output_cost_per_token:25e-7,output_cost_per_reasoning_token:25e-7,litellm_provider:"gemini",mode:"chat",rpm:10,tpm:25e4,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_reasoning:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:75e-9,supports_prompt_caching:!0},"gemini/gemini-2.5-flash-preview-04-17":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:15e-8,output_cost_per_token:6e-7,output_cost_per_reasoning_token:35e-7,litellm_provider:"gemini",mode:"chat",rpm:10,tpm:25e4,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_reasoning:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_web_search:!0,supports_pdf_input:!0,cache_read_input_token_cost:375e-10,supports_prompt_caching:!0},"gemini/gemini-2.5-flash-lite-preview-06-17":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:5e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,output_cost_per_reasoning_token:4e-7,litellm_provider:"gemini",mode:"chat",rpm:15,tpm:25e4,supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-lite",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini/gemini-2.5-flash-lite":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:5e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,output_cost_per_reasoning_token:4e-7,litellm_provider:"gemini",mode:"chat",rpm:15,tpm:25e4,supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-lite",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini-2.5-flash-image-preview":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:3e-7,output_cost_per_token:25e-7,output_cost_per_reasoning_token:25e-7,output_cost_per_image:.039,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,tpm:8e6,rpm:1e5,supports_pdf_input:!0,cache_read_input_token_cost:75e-9,supports_prompt_caching:!0},"gemini-2.5-flash-preview-05-20":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:3e-7,output_cost_per_token:25e-7,output_cost_per_reasoning_token:25e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:75e-9,supports_prompt_caching:!0},"gemini-2.5-flash-preview-04-17":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:1e-6,input_cost_per_token:15e-8,output_cost_per_token:6e-7,output_cost_per_reasoning_token:35e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_pdf_input:!0,cache_read_input_token_cost:375e-10,supports_prompt_caching:!0},"gemini-2.5-flash-lite-preview-06-17":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:5e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,output_cost_per_reasoning_token:4e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini-2.5-flash-lite":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:5e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,output_cost_per_reasoning_token:4e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini-2.0-flash":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supports_audio_input:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],supports_tool_choice:!0,source:"https://ai.google.dev/pricing#2_0flash",supports_parallel_function_calling:!0,supports_web_search:!0,supports_url_context:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini-2.0-flash-lite":{max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:50,input_cost_per_audio_token:75e-9,input_cost_per_token:75e-9,output_cost_per_token:3e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",supports_tool_choice:!0,supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:1875e-11,supports_prompt_caching:!0},"gemini-2.0-flash-lite-001":{max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:50,input_cost_per_audio_token:75e-9,input_cost_per_token:75e-9,output_cost_per_token:3e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",supports_tool_choice:!0,deprecation_date:"2026-02-25",supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:1875e-11,supports_prompt_caching:!0},"gemini-2.5-pro-preview-06-05":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:125e-8,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_pdf_input:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini-2.5-pro-preview-05-06":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:125e-8,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],supported_regions:["global"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_pdf_input:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini-2.5-pro-preview-03-25":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:125e-8,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_reasoning:!0,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_endpoints:["/v1/chat/completions","/v1/completions","/v1/batch"],supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/models#gemini-2.5-flash-preview",supports_parallel_function_calling:!0,supports_web_search:!0,supports_pdf_input:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini-2.0-flash-preview-image-generation":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supports_audio_input:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],supports_tool_choice:!0,source:"https://ai.google.dev/pricing#2_0flash",supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini-2.5-pro-preview-tts":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"vertex_ai-language-models",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_modalities:["text"],supported_output_modalities:["audio"],source:"https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",supports_parallel_function_calling:!0,supports_web_search:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini/gemini-2.0-pro-exp-02-05":{max_tokens:8192,max_input_tokens:2097152,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:0,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:0,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"gemini",mode:"chat",rpm:2,tpm:1e6,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_audio_input:!0,supports_video_input:!0,supports_pdf_input:!0,supports_response_schema:!0,supports_tool_choice:!0,source:"https://cloud.google.com/vertex-ai/generative-ai/pricing",supports_web_search:!0,cache_read_input_token_cost:0,supports_prompt_caching:!0},"gemini/gemini-2.0-flash-preview-image-generation":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,litellm_provider:"gemini",mode:"chat",rpm:1e4,tpm:1e7,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supports_audio_input:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],supports_tool_choice:!0,source:"https://ai.google.dev/pricing#2_0flash",supports_web_search:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini/gemini-2.0-flash":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,litellm_provider:"gemini",mode:"chat",rpm:1e4,tpm:1e7,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supports_audio_input:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],supports_tool_choice:!0,source:"https://ai.google.dev/pricing#2_0flash",supports_web_search:!0,supports_url_context:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini/gemini-2.0-flash-lite":{max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:50,input_cost_per_audio_token:75e-9,input_cost_per_token:75e-9,output_cost_per_token:3e-7,litellm_provider:"gemini",mode:"chat",tpm:4e6,rpm:4e3,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,supports_tool_choice:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/pricing#gemini-2.0-flash-lite",supports_web_search:!0,cache_read_input_token_cost:1875e-11,supports_prompt_caching:!0},"gemini/gemini-2.0-flash-001":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:1e-7,output_cost_per_token:4e-7,litellm_provider:"gemini",mode:"chat",rpm:1e4,tpm:1e7,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://ai.google.dev/pricing#2_0flash",supports_web_search:!0,cache_read_input_token_cost:25e-9,supports_prompt_caching:!0},"gemini/gemini-2.5-pro-preview-tts":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"gemini",mode:"chat",rpm:1e4,tpm:1e7,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_modalities:["text"],supported_output_modalities:["audio"],source:"https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",supports_web_search:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini/gemini-2.5-pro-preview-06-05":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"gemini",mode:"chat",rpm:1e4,tpm:1e7,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini/gemini-2.5-pro-preview-05-06":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"gemini",mode:"chat",rpm:1e4,tpm:1e7,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",supports_web_search:!0,supports_url_context:!0,supports_pdf_input:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini/gemini-2.5-pro-preview-03-25":{max_tokens:65535,max_input_tokens:1048576,max_output_tokens:65535,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:7e-7,input_cost_per_token:125e-8,input_cost_per_token_above_200k_tokens:25e-7,output_cost_per_token:1e-5,output_cost_per_token_above_200k_tokens:15e-6,litellm_provider:"gemini",mode:"chat",rpm:1e4,tpm:1e7,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://ai.google.dev/gemini-api/docs/pricing#gemini-2.5-pro-preview",supports_web_search:!0,supports_pdf_input:!0,cache_read_input_token_cost:3125e-10,supports_prompt_caching:!0},"gemini/gemini-2.0-flash-exp":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:0,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:0,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"gemini",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,tpm:4e6,rpm:10,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",supports_tool_choice:!0,supports_web_search:!0,cache_read_input_token_cost:0,supports_prompt_caching:!0},"gemini/gemini-2.0-flash-lite-preview-02-05":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:8192,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_audio_token:75e-9,input_cost_per_token:75e-9,output_cost_per_token:3e-7,litellm_provider:"gemini",mode:"chat",rpm:6e4,tpm:1e7,supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,supports_tool_choice:!0,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text"],source:"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash-lite",supports_web_search:!0,cache_read_input_token_cost:1875e-11,supports_prompt_caching:!0},"gemini/gemini-2.0-flash-thinking-exp":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:65536,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:0,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:0,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"gemini",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,tpm:4e6,rpm:10,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",supports_tool_choice:!0,supports_web_search:!0,cache_read_input_token_cost:0,supports_prompt_caching:!0},"gemini/gemini-2.0-flash-thinking-exp-01-21":{max_tokens:8192,max_input_tokens:1048576,max_output_tokens:65536,max_images_per_prompt:3e3,max_videos_per_prompt:10,max_video_length:1,max_audio_length_hours:8.4,max_audio_per_prompt:1,max_pdf_size_mb:30,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:0,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:0,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"gemini",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!0,tpm:4e6,rpm:10,supported_modalities:["text","image","audio","video"],supported_output_modalities:["text","image"],source:"https://cloud.google.com/vertex-ai/generative-ai/docs/learn/models#gemini-2.0-flash",supports_tool_choice:!0,supports_web_search:!0,cache_read_input_token_cost:0,supports_prompt_caching:!0},"gemini/gemma-3-27b-it":{max_tokens:8192,max_input_tokens:131072,max_output_tokens:8192,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:0,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:0,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"gemini",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,source:"https://aistudio.google.com",supports_tool_choice:!0},"gemini/learnlm-1.5-pro-experimental":{max_tokens:8192,max_input_tokens:32767,max_output_tokens:8192,input_cost_per_image:0,input_cost_per_video_per_second:0,input_cost_per_audio_per_second:0,input_cost_per_token:0,input_cost_per_character:0,input_cost_per_token_above_128k_tokens:0,input_cost_per_character_above_128k_tokens:0,input_cost_per_image_above_128k_tokens:0,input_cost_per_video_per_second_above_128k_tokens:0,input_cost_per_audio_per_second_above_128k_tokens:0,output_cost_per_token:0,output_cost_per_character:0,output_cost_per_token_above_128k_tokens:0,output_cost_per_character_above_128k_tokens:0,litellm_provider:"gemini",mode:"chat",supports_system_messages:!0,supports_function_calling:!0,supports_vision:!0,supports_response_schema:!0,supports_audio_output:!1,source:"https://aistudio.google.com",supports_tool_choice:!0},"gemini/veo-3.0-generate-preview":{max_tokens:1024,max_input_tokens:1024,output_cost_per_second:.75,litellm_provider:"gemini",mode:"video_generation",supported_modalities:["text"],supported_output_modalities:["video"],source:"https://ai.google.dev/gemini-api/docs/video"},"gemini/veo-3.0-fast-generate-preview":{max_tokens:1024,max_input_tokens:1024,output_cost_per_second:.4,litellm_provider:"gemini",mode:"video_generation",supported_modalities:["text"],supported_output_modalities:["video"],source:"https://ai.google.dev/gemini-api/docs/video"},"gemini/veo-2.0-generate-001":{max_tokens:1024,max_input_tokens:1024,output_cost_per_second:.35,litellm_provider:"gemini",mode:"video_generation",supported_modalities:["text"],supported_output_modalities:["video"],source:"https://ai.google.dev/gemini-api/docs/video"}};class Do{static calculateCost(e,t){const s=Fo[e];if(!s)return null;const o=t.inputTokens||0,n=t.outputTokens||0,i=t.cachedInputTokens||0,a=t.cacheCreationInputTokens||0,p="input_cost_per_token"in s?s.input_cost_per_token:0,_="output_cost_per_token"in s?s.output_cost_per_token:0,l="cache_read_input_token_cost"in s?s.cache_read_input_token_cost:0,v="cache_creation_input_token_cost"in s?s.cache_creation_input_token_cost:0,k=o*p,h=n*_,y=i*l,g=a*v;return{totalCost:k+h+y+g,inputCost:k,outputCost:h,cacheReadCost:i>0?y:void 0,cacheCreationCost:a>0?g:void 0}}}class $t{static parseStreamingResponse(e){try{const t=e.split(`
3
+ `),s=[];let o=null,n=null;const i=new Map;for(const y of t)if(y.startsWith("data: ")){const g=y.substring(6).trim();if(g)try{const w=JSON.parse(g);if(w.type==="message_start"&&w.message&&(o=w.message),w.type==="content_block_start"){const L={index:w.index,type:w.content_block.type,id:w.content_block.id,name:w.content_block.name,input:w.content_block.input||{},text:"",partialJson:""};i.set(w.index,L)}if(w.type==="content_block_delta"){const L=i.get(w.index);L&&(w.delta.type==="text_delta"?L.text+=w.delta.text:w.delta.type==="input_json_delta"&&(L.partialJson+=w.delta.partial_json))}if(w.type==="content_block_stop"){const L=i.get(w.index);if(L){if(L.partialJson)try{L.input=JSON.parse(L.partialJson)}catch{}s.push(L)}}w.type==="message_delta"&&w.usage&&(n=w.usage)}catch{}}const a=s.map(y=>y.type==="text"?{type:"text",text:y.text}:y.type==="tool_use"?{type:"tool-invocation",toolInvocation:{toolCallId:y.id,toolName:y.name,args:y.input,state:"call"}}:{type:"text",text:`Unknown content block type: ${y.type}`}),p={id:o?.id||$t.generateId(),role:"assistant",createdAt:new Date().toISOString(),parts:a.length>0?a:[{type:"text",text:""}]},_={...o?.usage||{},...n||{}},l={inputTokens:_.input_tokens||_.inputTokens,outputTokens:_.output_tokens||_.outputTokens,cachedInputTokens:_.cache_read_input_tokens||_.cachedInputTokens,cacheCreationInputTokens:_.cache_creation_input_tokens||_.cacheCreationInputTokens,totalTokens:(_.input_tokens||0)+(_.output_tokens||0),cacheCreation:_.cache_creation,serviceTier:_.service_tier},v=o?.model,k=v?Do.calculateCost(v,l):null;return{message:p,metadata:{model:v,usage:l,cost:k,originalMessageId:o?.id,stopReason:o?.stop_reason,contentLength:a.reduce((y,g)=>g.type==="text"?y+g.text.length:g.type==="tool-invocation"?y+JSON.stringify(g.toolInvocation.args||"").length:y+JSON.stringify(g).length,0),streamingEvents:t.filter(y=>y.startsWith("event:")).length}}}catch(t){return{error:`Failed to parse streaming response: ${t}`,rawText:e}}}static generateId(){return Date.now().toString(36)+Math.random().toString(36).slice(2,10)}}$t.parseStreamingResponse;new Proxy({},{get(r,e){throw new Error(`Module "node:zlib" has been externalized for browser compatibility. Cannot access "node:zlib.${e}" in client code. See https://vite.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)}});class zs{static parseStreamingResponse(e){try{return e.includes(`
4
+ data:`)||e.startsWith("data:")?this.parseSse(e):this.parseRegular(e)}catch(t){return{error:`Failed to parse Gemini response: ${t}`,rawText:e}}}static parseRegular(e){const t=this.isProbablyGzip(e)||this.hasHighControlCharRatio(e);let s=e;if(t){const o=this.tryGunzip(e);o.ok&&(s=o.text)}try{const o=JSON.parse(s),n=o.response||o,{fullText:i,finishReason:a,texts:p,nextSpeakers:_,reasoningSegments:l}=this.extractCandidateText(n.candidates),v=this.normalizeUsage(n.usageMetadata||o.usageMetadata||o),k=p.length>0?p.map(h=>({type:"text",text:h})):i?[{type:"text",text:i}]:[];return{message:{id:n.responseId||this.generateId(),role:"assistant",createdAt:new Date().toISOString(),parts:k},metadata:{model:n.modelVersion||o.modelVersion,usage:v,responseId:n.responseId,finishReason:a,contentLength:i.length,streamingEvents:0,compressed:t||void 0,nextSpeakers:_.length?_:void 0,reasoningSegments:l.length?l:void 0}}}catch{return{message:{id:this.generateId(),role:"assistant",createdAt:new Date().toISOString(),parts:[{type:"text",text:s}]},metadata:{raw:!0}}}}static parseSse(e){const t=e.split(/\r?\n/);let s,o,n,i;const a=[],p=[],_=[];for(const k of t){if(!k.startsWith("data:"))continue;const h=k.slice(5).trim();if(h)try{const g=JSON.parse(h).response||{};g.modelVersion&&(s=g.modelVersion),g.responseId&&(o=g.responseId),g.usageMetadata&&(i=g.usageMetadata);const w=this.extractCandidateText(g.candidates);!n&&w.finishReason&&(n=w.finishReason),w.texts.length&&a.push(...w.texts),w.nextSpeakers.length&&p.push(...w.nextSpeakers),w.reasoningSegments.length&&_.push(...w.reasoningSegments)}catch{}}const l=a.join(""),v=this.normalizeUsage(i);return{message:{id:o||this.generateId(),role:"assistant",createdAt:new Date().toISOString(),parts:a.length?a.map(k=>({type:"text",text:k})):[]},metadata:{model:s,usage:v,responseId:o,finishReason:n,contentLength:l.length,streamingEvents:t.filter(k=>k.startsWith("data:")).length,nextSpeakers:p.length?p:void 0,reasoningSegments:_.length?_:void 0}}}static extractCandidateText(e){const t=[],s=[],o=[];let n;if(Array.isArray(e))for(const i of e){!n&&i?.finishReason&&(n=i.finishReason);const a=i?.content?.parts||[];if(Array.isArray(a)){for(const p of a)if(p&&typeof p=="object"){if(p.thought===!0)continue;const _=p.text;if(typeof _=="string"&&_.length){const l=_.trim();if(l.startsWith("{")&&l.endsWith("}"))try{const v=JSON.parse(l);if(v&&typeof v=="object"){typeof v.reasoning=="string"&&(o.push(v.reasoning),t.push(v.reasoning)),v.next_speaker&&typeof v.next_speaker=="string"&&s.push(v.next_speaker);continue}}catch{}t.push(_)}}}}return{fullText:t.join(""),finishReason:n,texts:t,finishReasonFound:n,nextSpeakers:s,reasoningSegments:o}}static tryGunzip(e){try{return{ok:!0,text:(void 0)(Buffer.from(e,"latin1")).toString("utf8")}}catch{return{ok:!1,text:e}}}static hasHighControlCharRatio(e){if(!e)return!1;let t=0;const s=Math.min(e.length,256);for(let o=0;o<s;o++){const n=e.charCodeAt(o);n<32&&n!==9&&n!==10&&n!==13&&t++}return t/s>.1}static isProbablyGzip(e){return e.length>=2&&e.charCodeAt(0)===31&&e.charCodeAt(1)===139}static normalizeUsage(e){if(!e||typeof e!="object")return{inputTokens:void 0,outputTokens:void 0,totalTokens:void 0};const t=e.promptTokenCount??e.prompt_tokens,s=e.candidatesTokenCount??e.candidates_tokens,o=e.totalTokenCount??(typeof t=="number"&&typeof s=="number"?t+s:void 0);return{inputTokens:t,outputTokens:s,totalTokens:o}}static generateId(){return Date.now().toString(36)+Math.random().toString(36).slice(2,10)}}zs.parseStreamingResponse;class ue{static parsers=[{name:"Claude (Anthropic)",patterns:[/\/publishers\/anthropic\/models/i,/anthropic\.com/i,/claude\.ai/i,/\/v1\/messages/i],parser:$t},{name:"Google Gemini",patterns:[/generativelanguage\.googleapis\.com/i,/cloudcode-pa\.googleapis\.com/i,/streamGenerateContent/i,/generateContent/i],parser:zs}];static parseStreamingResponse(e,t){const s=ue.getParserForUrl(e);if(!s)return{error:`No parser found for URL: ${e}`,rawText:t,supportedProviders:ue.parsers.map(o=>o.name)};try{const o=s.parseStreamingResponse(t);return o&&typeof o=="object"&&!o.error&&(o.metadata={...o.metadata,parser:ue.getParserNameForUrl(e)}),o}catch(o){return{error:`Parser failed: ${o}`,rawText:t,parser:ue.getParserNameForUrl(e)}}}static getParserForUrl(e){if(!e)return null;for(const t of ue.parsers)if(t.patterns.some(s=>s.test(e)))return t.parser;return null}static getParserNameForUrl(e){if(!e)return"unknown";for(const t of ue.parsers)if(t.patterns.some(s=>s.test(e)))return t.name;return"unknown"}static isSupported(e){return ue.getParserForUrl(e)!==null}static getSupportedProviders(){return ue.parsers.map(e=>e.name)}static registerParser(e,t,s){ue.parsers.push({name:e,patterns:t,parser:s})}}class Cs{LLM_PATTERNS=[/anthropic\.com/i,/claude\.ai/i,/openai\.com/i,/api\.openai\.com/i,/gemini\.google/i,/generativelanguage\.googleapis/i,/cloudcode-pa\.googleapis\.com/i,/bedrock.*\.amazonaws/i,/cognitive\.microsoft/i,/azure\.openai/i,/cohere\.ai/i,/huggingface\.co/i,/replicate\.com/i,/together\.xyz/i,/mistral\.ai/i,/groq\.com/i,/perplexity\.ai/i,/ollama/i,/localhost:\d+\/v1/i,/127\.0\.0\.1:\d+\/v1/i,/\/v1\/chat\/completions/i,/\/v1\/completions/i,/\/v1\/embeddings/i,/\/v1\/messages/i,/\/publishers\/anthropic\/models/i];PROVIDER_MAP=[{pattern:/\/publishers\/anthropic\/models/i,provider:"anthropic"},{pattern:/anthropic\.com|claude\.ai/i,provider:"anthropic"},{pattern:/openai\.com/i,provider:"openai"},{pattern:/gemini\.google|generativelanguage\.googleapis|cloudcode-pa\.googleapis/i,provider:"google"},{pattern:/bedrock.*\.amazonaws/i,provider:"aws-bedrock"},{pattern:/cognitive\.microsoft|azure\.openai/i,provider:"azure"},{pattern:/cohere\.ai/i,provider:"cohere"},{pattern:/huggingface\.co/i,provider:"huggingface"},{pattern:/replicate\.com/i,provider:"replicate"},{pattern:/together\.xyz/i,provider:"together"},{pattern:/mistral\.ai/i,provider:"mistral"},{pattern:/groq\.com/i,provider:"groq"},{pattern:/perplexity\.ai/i,provider:"perplexity"},{pattern:/ollama|localhost:\d+\/v1|127\.0\.0\.1:\d+\/v1/i,provider:"local"}];isLLMCall(e){return e?this.LLM_PATTERNS.some(t=>t.test(e)):!1}detectProvider(e){if(!e)return"unknown";for(const{pattern:t,provider:s}of this.PROVIDER_MAP)if(t.test(e))return s;return"unknown"}getSupportedProviders(){return Array.from(new Set(this.PROVIDER_MAP.map(({provider:e})=>e)))}isProviderSupported(e){return this.getSupportedProviders().includes(e.toLowerCase())}getProviderPattern(e){const t=this.PROVIDER_MAP.find(({provider:s})=>s===e.toLowerCase());return t?t.pattern:null}}class Bo{static enhanceRequest(e){const t=ee.contextData;if(!t)return e;try{const s=JSON.parse(e);s.system?typeof s.system=="string"?s.system=[{type:"text",text:s.system}]:Array.isArray(s.system)||(s.system=[s.system]):s.system=[];const o={type:"text",text:`# Task Context
5
+
6
+ ${t}`};return s.system.unshift(o),JSON.stringify(s)}catch(s){return console.error("Failed to enhance Claude request:",s),e}}}class qo{static enhanceRequest(e){const t=ee.contextData;if(!t)return e;try{const s=JSON.parse(e),o=`# Task Context
7
+
8
+ ${t}`;return s.systemInstruction?typeof s.systemInstruction=="string"?s.systemInstruction={parts:[{text:o},{text:s.systemInstruction}]}:s.systemInstruction.parts&&s.systemInstruction.parts.unshift({text:o}):s.systemInstruction={parts:[{text:o}]},JSON.stringify(s)}catch(s){return console.error("Failed to enhance Gemini request:",s),e}}}class Ie{static enhancers=[{name:"Claude (Anthropic)",patterns:[/\/publishers\/anthropic\/models/i,/anthropic\.com/i,/claude\.ai/i,/\/v1\/messages/i],enhancer:Bo},{name:"Google Gemini",patterns:[/generativelanguage\.googleapis\.com/i,/cloudcode-pa\.googleapis\.com/i,/streamGenerateContent/i,/generateContent/i],enhancer:qo}];static enhanceRequest(e,t){const s=Ie.getEnhancerForUrl(e);if(!s)return t;try{return s.enhanceRequest(t)}catch(o){return console.error(`Enhancer failed for ${e}:`,o),t}}static getEnhancerForUrl(e){if(!e)return null;for(const t of Ie.enhancers)if(t.patterns.some(s=>s.test(e)))return t.enhancer;return null}static getEnhancerNameForUrl(e){if(!e)return"unknown";for(const t of Ie.enhancers)if(t.patterns.some(s=>s.test(e)))return t.name;return"unknown"}static isSupported(e){return Ie.getEnhancerForUrl(e)!==null}static getSupportedProviders(){return Ie.enhancers.map(e=>e.name)}static registerEnhancer(e,t,s){Ie.enhancers.push({name:e,patterns:t,enhancer:s})}}class Qt{originalFetch=null;static MAX_LOG_BYTES=256*1024;ctx;extra;constructor(e,t){this.ctx=e,this.extra=t}patch(){if(typeof globalThis.fetch!="function"||this.originalFetch)return;this.originalFetch=globalThis.fetch.bind(globalThis);const e=this.ctx,t=this.extra;globalThis.fetch=async(s,o)=>{const n=Ae.performance.now();let i="";try{i=typeof s=="string"?s:s?.url||""}catch{}const a=(o?.method||s?.method||"GET").toUpperCase();let p="";try{const h=o?.body??s?.body;if(h)if(typeof h=="string")p=h;else if(h instanceof URLSearchParams)p=h.toString();else if(typeof FormData<"u"&&h instanceof FormData){const y={};for(const[g,w]of h.entries())y[g]=typeof w=="string"?w:"[File|Blob]";p=JSON.stringify(y)}else h instanceof Uint8Array||Buffer.isBuffer(h)?p=Buffer.from(h).toString("utf8"):typeof h=="object"&&(p=JSON.stringify(h))}catch{p="<request body error>"}let _=p;if(e.llmProvider.isLLMCall(i)&&p&&p!=="<request body error>")try{_=Ie.enhanceRequest(i,p),_!==p&&o?o.body=_:_!==p&&typeof s=="object"&&s.body&&(s.body=_)}catch(h){console.error("[FetchInstrument] Failed to enhance LLM request:",h)}const l=e.idGenerator(),v=new Date().toISOString();if(t.agentHttpService&&t.sessionId&&t.isValidMessageRequest(i,a,p)){const h={id:l,time:v,transport:"fetch",method:a,url:i,requestBody:p,durationMs:0};t.sendHttpStart(h).catch(y=>{console.error("[FetchInstrument] Failed to send HTTP start:",y)})}let k;try{k=await this.originalFetch(s,o)}catch(h){const y=Ae.performance.now()-n,g={id:l,time:v,transport:"fetch",method:a,url:i,requestBody:p,durationMs:Math.round(y),error:h.message};throw e.handleLogEntry(g),t.agentHttpService&&t.sessionId&&t.isValidMessageRequest(i,a,p)&&t.sendHttpUpdate(g).catch(()=>{}),h}try{const h=Ae.performance.now()-n;let y="",g=0,w=null,L=!1;try{const ie=k.headers.get("content-type")||"";L=/text\/event-stream/i.test(ie);const ae=/^(text\/|application\/(json|xml|javascript))/i.test(ie)||/(json|xml|html)/i.test(ie);if(L){const Te=k.body;if(Te){const[pe,C]=Te.tee(),Y=(async()=>{try{const J=pe.getReader(),j=[];let W=0;for(;;){const{done:u,value:d}=await J.read();if(u)break;j.push(d),W+=d.byteLength}if(y=Buffer.concat(j.map(u=>Buffer.from(u))).toString("utf8"),g=W,e.llmProvider.isLLMCall(i)&&y)try{w=e.responseProcessor(i,y)}catch(u){w={error:`parser_failed: ${u instanceof Error?u.message:String(u)}`}}const Z={id:l,time:v,transport:"fetch",method:a,url:i,requestBody:p,status:k.status,ok:k.ok,durationMs:Math.round(Ae.performance.now()-n),responseBody:y,processedBody:w,bodyBytes:g};return e.handleLogEntry(Z),t.agentHttpService&&t.sessionId&&t.isValidMessageRequest(i,a,p)&&t.sendHttpUpdate(Z).catch(()=>{}),{responseBody:y,processedBody:w,bodyBytes:g}}catch(J){return console.error("Error capturing stream:",J),{responseBody:"<stream capture error>",processedBody:null,bodyBytes:0}}})();k.__capturePromise=Y,k=new Response(C,{status:k.status,statusText:k.statusText,headers:k.headers}),y="<streaming in progress>",w=null}else y="<streaming response not buffered>"}else{const pe=await k.clone().arrayBuffer();g=pe.byteLength;const C=Qt.MAX_LOG_BYTES;ae?pe.byteLength<=C?y=Buffer.from(pe).toString("utf8"):y=`${Buffer.from(pe.slice(0,C)).toString("utf8")}
9
+ ...[truncated ${(pe.byteLength-C).toLocaleString()} bytes]`:y=`<${g} bytes binary>`}}catch{y="<response body error>"}if(!L&&e.llmProvider.isLLMCall(i)&&y&&y!=="<response body error>")try{w=e.responseProcessor(i,y)}catch(ie){w={error:`parser_failed: ${ie instanceof Error?ie.message:String(ie)}`}}const U={id:l,time:v,transport:"fetch",method:a,url:i,requestBody:p,status:k.status,ok:k.ok,durationMs:Math.round(h),responseBody:y,processedBody:w,bodyBytes:g};return e.handleLogEntry(U),!L&&t.agentHttpService&&t.sessionId&&t.isValidMessageRequest(i,a,p)&&t.sendHttpUpdate(U).catch(()=>{}),k}catch(h){const y=Ae.performance.now()-n,g={id:l,time:v,transport:"fetch",method:a,url:i,requestBody:p,durationMs:Math.round(y),error:h.message};return e.handleLogEntry(g),t.agentHttpService&&t.sessionId&&t.isValidMessageRequest(i,a,p)&&t.sendHttpUpdate(g).catch(()=>{}),k}}}restore(){this.originalFetch&&(globalThis.fetch=this.originalFetch,this.originalFetch=null)}}class Vo{constructor(e,t,s={isValidMessageRequest:()=>!1,sendHttpStart:async()=>{},sendHttpUpdate:async()=>{}}){this.ctx=e,this.enableHttps=t,this._extra=s}originals=null;patch(){try{let e=function(a,p){try{if(typeof a=="string")return a;if(a instanceof URL)return a.toString();const _=a.protocol||p,l=a.hostname||a.host||"localhost",v=a.port?`:${a.port}`:"",k=a.path||a.pathname||"/";return`${_}//${l}${v}${k}`}catch{return""}},t=function(a,p){return function(l,v){const k=e(l,p),h=(typeof l=="object"&&l.method?l.method:"GET").toUpperCase(),y=Ae.performance.now(),g=n.ctx.idGenerator(),w=new Date().toISOString(),L=[];let U=0,ie=!1;const ae=a(l,C=>{const Y=[];let J=0,j=0;const W=()=>String(C.headers["content-type"]||"");C.on("data",K=>{J+=K.length;const te=W();if(/text\/event-stream/i.test(te))Y.push(K),j+=K.length;else{if(j>=i)return;const u=i-j;K.length<=u?(Y.push(K),j+=K.length):(Y.push(K.subarray(0,u)),j+=u)}}),C.on("end",()=>{const K=Ae.performance.now()-y;let te="";try{const x=W(),O=/text\/event-stream/i.test(x),R=Buffer.concat(Y),q=J>R.length||R.length===i;let V=R;if(!O){const H=String(C.headers["content-encoding"]||"").toLowerCase();if(!q&&V.length&&/(gzip|br|deflate)/.test(H))try{const B=require("node:zlib");H.includes("gzip")?V=B.gunzipSync(R):H.includes("br")?V=B.brotliDecompressSync(R):H.includes("deflate")&&(V=B.inflateSync(R))}catch{}}/text\//i.test(x)||/application\/(json|xml|javascript)/i.test(x)||O?(te=V.toString("utf8"),q&&!O&&(te+=`
10
+ ...[truncated]`)):V.length&&(te=`<${V.length} bytes${q?" (truncated)":""} binary>`)}catch{te="<response body error>"}let Z="";try{const x=Buffer.concat(L),O=U>x.length||x.length===i;Z=x.toString("utf8"),O&&(Z+=`
11
+ ...[truncated]`)}catch{Z="<request body error>"}let u=null;if(n.ctx.llmProvider.isLLMCall(k))try{u=n.ctx.responseProcessor(k,te)}catch(x){u={parts:[{type:"text",text:te||"<empty response>"}],metadata:{error:String(x)}}}const d={id:g,time:w,transport:p==="https:"?"https":"http",method:h,url:k,requestBody:Z,status:C.statusCode,ok:C.statusCode>=200&&C.statusCode<300,durationMs:Math.round(K),responseBody:te,processedBody:u,bodyBytes:J};try{const x=new URL(k);d.host=x.hostname,d.path=x.pathname}catch{}n.ctx.handleLogEntry(d),n._extra.agentHttpService&&n._extra.sessionId&&n._extra.isValidMessageRequest(k,h,Z)&&n._extra.sendHttpUpdate(d).catch(()=>{})}),C.on("error",K=>{const te=Ae.performance.now()-y;let Z="";try{const d=Buffer.concat(L),x=U>d.length||d.length===i;Z=d.toString("utf8"),x&&(Z+=`
12
+ ...[truncated]`)}catch{Z="<request body error>"}const u={id:g,time:w,transport:p==="https:"?"https":"http",method:h,url:k,requestBody:Z,durationMs:Math.round(te),error:K.message};try{const d=new URL(k);u.host=d.hostname,u.path=d.pathname}catch{}n.ctx.handleLogEntry(u),n._extra.agentHttpService&&n._extra.sessionId&&n._extra.isValidMessageRequest(k,h,Z)&&n._extra.sendHttpUpdate(u).catch(()=>{})}),v&&v(C)}),Te=ae.write,pe=ae.end;return ae.write=function(C,Y,J){try{if(C&&U<i){const j=Buffer.isBuffer(C)?C:Buffer.from(C,Y||"utf8"),W=i-U;j.length<=W?(L.push(j),U+=j.length):(L.push(j.subarray(0,W)),U+=W)}}catch{}return Te.call(this,C,Y,J)},ae.end=function(C,Y,J){try{if(C&&U<i){const j=Buffer.isBuffer(C)?C:Buffer.from(C,Y||"utf8"),W=i-U;j.length<=W?(L.push(j),U+=j.length):(L.push(j.subarray(0,W)),U+=W)}if(!ie){ie=!0;try{const j=Buffer.concat(L),W=U>j.length||j.length===i;let K=j.toString("utf8");W&&(K+=`
13
+ ...[truncated]`);const te=n._extra.isValidMessageRequest(k,h,K);if(n._extra.agentHttpService&&n._extra.sessionId&&te){const Z={id:g,time:w,transport:p==="https:"?"https":"http",method:h,url:k,requestBody:K,durationMs:0};n._extra.sendHttpStart(Z).catch(()=>{})}}catch{}}}catch{}return pe.call(this,C,Y,J)},ae}};const s=require("http"),o=require("https");if(this.originals)return;this.originals={httpRequest:s.request,httpsRequest:o.request,httpGet:s.get,httpsGet:o.get};const n=this,i=this.ctx.maxBodyBytes;s.request=t(this.originals.httpRequest,"http:"),s.get=function(p,_){const l=s.request(p,_);return l.end(),l},this.enableHttps!==!1&&(o.request=t(this.originals.httpsRequest,"https:"),o.get=function(p,_){const l=o.request(p,_);return l.end(),l})}catch{}}restore(){if(this.originals){try{const e=require("http"),t=require("https");e.request=this.originals.httpRequest,e.get=this.originals.httpGet,t.request=this.originals.httpsRequest,t.get=this.originals.httpsGet}catch{}this.originals=null}}}class Ze{static instance=null;isPatched=!1;config;llmProvider;idGenerator;agentHttpService;sessionId;activeRequests=new Map;rawLogger;errorLogger;processedLogger;fetchInstrument;httpInstrument;constructor(e={}){this.llmProvider=e.llmProvider||new Cs,this.idGenerator=e.idGenerator||ys.ulid,this.agentHttpService=e.agentHttpService,this.sessionId=e.sessionId,this.config={maxBodyBytes:e.maxBodyBytes??8192,enableHttpsPatching:e.enableHttpsPatching??!0,enableDebug:e.enableDebug??!1,logFilter:e.logFilter??(i=>!!(i.url&&!i.url.includes("statsig")&&!i.url.includes("registry.npmjs.org")&&!i.url.startsWith("data:"))),responseProcessor:e.responseProcessor??((i,a)=>{try{return ue.parseStreamingResponse(i,a)}catch{return null}})};const t=be.join(Yt.tmpdir(),"agiflow-agents","llm",`session-${process.pid}`),s=e.logFilePath||be.join(t,"network.log"),o=be.join(t,"error.log"),n=e.processedLogFilePath||be.join(t,"processed.jsonl");try{this.rawLogger=new st(s)}catch{}try{this.errorLogger=new st(o)}catch{}try{this.processedLogger=new st(n)}catch{}}static getInstance(e){return Ze.instance||(Ze.instance=new Ze(e)),Ze.instance}start(){if(this.isPatched)return;const e={idGenerator:this.idGenerator,maxBodyBytes:this.config.maxBodyBytes,enableDebug:this.config.enableDebug,logFilter:this.config.logFilter,responseProcessor:this.config.responseProcessor,llmProvider:this.llmProvider,handleLogEntry:t=>this.handleLogEntry(t)};this.fetchInstrument=new Qt(e,{agentHttpService:this.agentHttpService,sessionId:this.sessionId,isValidMessageRequest:(t,s,o)=>this.isValidMessageRequest(t,s,o),sendHttpStart:t=>this.sendHttpStart(t),sendHttpUpdate:t=>this.sendHttpUpdate(t)}),this.fetchInstrument.patch(),this.httpInstrument=new Vo(e,this.config.enableHttpsPatching,{agentHttpService:this.agentHttpService,sessionId:this.sessionId,isValidMessageRequest:(t,s,o)=>this.isValidMessageRequest(t,s,o),sendHttpStart:t=>this.sendHttpStart(t),sendHttpUpdate:t=>this.sendHttpUpdate(t)}),this.httpInstrument.patch(),this.isPatched=!0}stop(){this.isPatched&&(this.fetchInstrument?.restore(),this.httpInstrument?.restore(),this.isPatched=!1)}isActive(){return this.isPatched}updateConfig(e){this.config={...this.config,...e}}handleLogEntry(e){this.rawLogger&&this.rawLogger.info("network_entry",{networkLog:e}),this.processedLogger&&this.config.logFilter(e)&&e.processedBody&&this.processedLogger.info("processed_entry",{id:e.id,url:e.url,method:e.method,status:e.status,durationMs:e.durationMs,timestamp:e.time,processedBody:e.processedBody})}isValidMessageRequest(e,t,s){if(this.rawLogger&&this.rawLogger.info("isValidMessageRequest checking",{url:e,method:t,hasBody:!!s,bodyLength:s?.length}),!this.llmProvider.isLLMCall(e))return this.rawLogger&&this.rawLogger.info("Not an LLM URL, skipping",{url:e}),this.rawLogger&&this.config.enableDebug&&this.rawLogger.debug("Request validation failed: Not an LLM URL",{url:e,method:t}),!1;if(e.includes("cloudcode-pa.googleapis.com")||e.includes("generativelanguage.googleapis.com"))return!!e.includes("streamGenerateContent");if(t!=="POST"||!s)return!1;try{const o=JSON.parse(s),n=o.messages&&Array.isArray(o.messages)&&o.messages.length>0,i=o.prompt&&typeof o.prompt=="string",a=o.input&&typeof o.input=="string",p=o.contents&&Array.isArray(o.contents)&&o.contents.length>0,_=o.request?.contents&&Array.isArray(o.request.contents)&&o.request.contents.length>0;return n||i||a||p||_}catch(o){return this.errorLogger&&this.errorLogger.error("Failed to parse request body in isValidMessageRequest",{url:e,method:t,error:o instanceof Error?o.message:String(o)}),!1}}async sendHttpStart(e){if(!this.agentHttpService||!this.sessionId)return;this.rawLogger&&this.rawLogger.info("http_start",{entry:e});let t=[];if(e.requestBody)try{const o=JSON.parse(e.requestBody);if(o.messages&&Array.isArray(o.messages)){const n=o.messages.filter(i=>i.role==="user").pop();n?.content&&(typeof n.content=="string"?t.push({type:"text",text:n.content}):Array.isArray(n.content)&&(t=n.content.map(i=>({type:i.type||"text",text:i.text||JSON.stringify(i)}))))}else if(o.prompt)t.push({type:"text",text:o.prompt});else if(o.input)t.push({type:"text",text:o.input});else if(o.contents&&Array.isArray(o.contents)){const n=o.contents.filter(i=>i.role==="user").pop();n?.parts&&Array.isArray(n.parts)&&(t=n.parts.map(i=>({type:"text",text:i.text||JSON.stringify(i)})))}else if(o.request?.contents&&Array.isArray(o.request.contents)){const n=o.request.contents.filter(i=>i.role==="user").pop();n?.parts&&Array.isArray(n.parts)&&(t=n.parts.map(i=>({type:"text",text:i.text||JSON.stringify(i)})))}}catch(o){this.errorLogger&&this.errorLogger.error("Failed to parse request data in sendHttpStart",{url:e.url,error:o instanceof Error?o.message:String(o)}),t.push({type:"text",text:"LLM request initiated..."})}const s={llm_provider:this.llmProvider.detectProvider(e.url),request_started:!0};try{this.rawLogger&&this.rawLogger.info("Calling agentHttpService.startMessage",{sessionId:this.sessionId,entryId:e.id});const o=await this.agentHttpService.startMessage(this.sessionId,{messageType:"output",metadata:s});this.activeRequests.set(e.id,o.messageId),this.rawLogger&&this.rawLogger.info("startMessage successful",{entryId:e.id,messageId:o.messageId})}catch(o){this.errorLogger&&this.errorLogger.error("Failed to send HTTP start message",{url:e.url,sessionId:this.sessionId,error:o instanceof Error?o.message:String(o)})}}async sendHttpUpdate(e){if(!this.agentHttpService||!this.sessionId)return;this.rawLogger&&this.rawLogger.info("http_update",{entry:e});const t=this.activeRequests.get(e.id);if(!t)return;if(!(e.processedBody?.message?.parts?.length>0||e.processedBody?.parts?.length>0)){this.rawLogger&&this.rawLogger.info("Skipping update - no valid parts yet",{entryId:e.id,messageId:t});return}const o={llm_provider:this.llmProvider.detectProvider(e.url),status:e.status,duration:e.durationMs};if(e.processedBody?.metadata){const i=e.processedBody.metadata;i.model&&(o.model=i.model),i.usage&&(o.usage=i.usage),i.total_tokens&&(o.total_tokens=i.total_tokens),i.prompt_tokens&&(o.prompt_tokens=i.prompt_tokens),i.completion_tokens&&(o.completion_tokens=i.completion_tokens),i.cost&&(o.cost=i.cost)}let n=[];if(e.processedBody){const i=e.processedBody;i?.message?.parts&&Array.isArray(i.message.parts)?n=i.message.parts:i?.parts&&Array.isArray(i.parts)?n=i.parts:i?.error?n.push({type:"text",text:`Parser error: ${i.error}`}):n=[]}else e.responseBody&&n.push({type:"text",text:"LLM response completed"});try{const i={parts:n,metadata:o,mId:e.processedBody?.message?.id};ee.isSaveRawEnabled&&(i.raw=JSON.stringify(e)),await this.agentHttpService.updateMessage(this.sessionId,t,i),this.activeRequests.delete(e.id)}catch(i){this.errorLogger&&this.errorLogger.error("Failed to send HTTP update message",{url:e.url,messageId:t,sessionId:this.sessionId,error:i instanceof Error?i.message:String(i)}),this.activeRequests.delete(e.id)}}}const ps=Os(()=>Ve([As(),N(),ge(),kt(),qe(ps),vt(ps)])),_s=M({toolCallId:N(),toolName:N(),args:Ne()}),Go=M({toolCallId:N(),toolName:N(),args:Ne(),result:Ne()}),Uo=Ve([_s.extend({state:oe("partial-call"),step:ge().optional()}),_s.extend({state:oe("call"),step:ge().optional()}),Go.extend({state:oe("result"),step:ge().optional()})]),Zo=M({type:N(),content:N()}),Ho=M({type:oe("text"),text:N()}),Jo=M({type:oe("reasoning"),reasoning:N(),details:qe(Ve([M({type:oe("text"),text:N(),signature:N().optional()}),M({type:oe("redacted"),data:N()})])).optional()}),Wo=M({name:oe("select"),props:M({options:qe(M({label:N(),value:Ve([N(),ge()]),selected:kt().optional()}))})}),Ko=M({name:oe("placeholder"),props:M({})}),Yo=Ve([Wo,Ko]),Xo=M({completed:kt(),component:Yo}),Qo=M({type:oe("tool-invocation"),toolInvocation:Uo,input:Xo.optional(),jsx:N({description:"UI rendering"}).optional()}),er=M({type:oe("source"),source:Zo}),tr=M({type:oe("file"),mimeType:N(),data:N()}),sr=M({type:oe("error"),text:N(),error:Ne().optional()}),or=M({type:oe("step-start")}),Ns=Ve([Ho,Jo,Qo,er,tr,sr,or]),es=Pt(["input","output","error","system"]),Ls=M({messageType:es,parts:qe(Ns),metadata:vt(N(),jt()).optional(),raw:Ne().optional()});M({id:N(),sessionId:N(),agentTypeId:N(),messageType:es,contentSize:ge().nullable(),timestamp:It.date(),metadata:N().nullable(),raw:Ne().nullable().optional(),createdAt:It.date(),updatedAt:It.date()});const rr=M({messageType:Pt(["output"]).default("output"),metadata:vt(N(),jt()).optional()});M({id:N(),messageId:N()});const nr=M({parts:qe(Ns).optional(),metadata:vt(N(),jt()).optional(),raw:Ne().optional()});M({messages:qe(Ls)});function ir(r){return[ar(r)]}function us(r){let e=r.parts;if(!e&&r.content&&(e=ir(r.content)),!e)throw new Error("Either content or parts is required for message creation");return{messageType:r.messageType,parts:e,metadata:r.metadata,raw:r.raw}}function ar(r){return{type:"text",text:r}}const Bt=10,cs=(r=0)=>e=>`\x1B[${e+r}m`,ls=(r=0)=>e=>`\x1B[${38+r};5;${e}m`,ds=(r=0)=>(e,t,s)=>`\x1B[${38+r};2;${e};${t};${s}m`,$={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys($.modifier);const pr=Object.keys($.color),_r=Object.keys($.bgColor);[...pr,..._r];function ur(){const r=new Map;for(const[e,t]of Object.entries($)){for(const[s,o]of Object.entries(t))$[s]={open:`\x1B[${o[0]}m`,close:`\x1B[${o[1]}m`},t[s]=$[s],r.set(o[0],o[1]);Object.defineProperty($,e,{value:t,enumerable:!1})}return Object.defineProperty($,"codes",{value:r,enumerable:!1}),$.color.close="\x1B[39m",$.bgColor.close="\x1B[49m",$.color.ansi=cs(),$.color.ansi256=ls(),$.color.ansi16m=ds(),$.bgColor.ansi=cs(Bt),$.bgColor.ansi256=ls(Bt),$.bgColor.ansi16m=ds(Bt),Object.defineProperties($,{rgbToAnsi256:{value(e,t,s){return e===t&&t===s?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(s/255*5)},enumerable:!1},hexToRgb:{value(e){const t=/[a-f\d]{6}|[a-f\d]{3}/i.exec(e.toString(16));if(!t)return[0,0,0];let[s]=t;s.length===3&&(s=[...s].map(n=>n+n).join(""));const o=Number.parseInt(s,16);return[o>>16&255,o>>8&255,o&255]},enumerable:!1},hexToAnsi256:{value:e=>$.rgbToAnsi256(...$.hexToRgb(e)),enumerable:!1},ansi256ToAnsi:{value(e){if(e<8)return 30+e;if(e<16)return 90+(e-8);let t,s,o;if(e>=232)t=((e-232)*10+8)/255,s=t,o=t;else{e-=16;const a=e%36;t=Math.floor(e/36)/5,s=Math.floor(a/6)/5,o=a%6/5}const n=Math.max(t,s,o)*2;if(n===0)return 30;let i=30+(Math.round(o)<<2|Math.round(s)<<1|Math.round(t));return n===2&&(i+=60),i},enumerable:!1},rgbToAnsi:{value:(e,t,s)=>$.ansi256ToAnsi($.rgbToAnsi256(e,t,s)),enumerable:!1},hexToAnsi:{value:e=>$.ansi256ToAnsi($.hexToAnsi256(e)),enumerable:!1}}),$}const me=ur(),ms=(()=>{if(!("navigator"in globalThis))return 0;if(globalThis.navigator.userAgentData){const r=navigator.userAgentData.brands.find(({brand:e})=>e==="Chromium");if(r&&r.version>93)return 3}return/\b(Chrome|Chromium)\//.test(globalThis.navigator.userAgent)?1:0})(),hs=ms!==0&&{level:ms},cr={stdout:hs,stderr:hs};function lr(r,e,t){let s=r.indexOf(e);if(s===-1)return r;const o=e.length;let n=0,i="";do i+=r.slice(n,s)+e+t,n=s+o,s=r.indexOf(e,n);while(s!==-1);return i+=r.slice(n),i}function dr(r,e,t,s){let o=0,n="";do{const i=r[s-1]==="\r";n+=r.slice(o,i?s-1:s)+e+(i?`\r
10
14
  `:`
11
15
  `)+t,o=s+1,s=r.indexOf(`
12
- `,o)}while(s!==-1);return n+=r.slice(o),n}const{stdout:hs,stderr:gs}=pr,Ut=Symbol("GENERATOR"),Ke=Symbol("STYLER"),ht=Symbol("IS_EMPTY"),fs=["ansi","ansi","ansi256","ansi16m"],Ye=Object.create(null),cr=(r,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");const t=hs?hs.level:0;r.level=e.level===void 0?t:e.level},lr=r=>{const e=(...t)=>t.join(" ");return cr(e,r),Object.setPrototypeOf(e,vt.prototype),e};function vt(r){return lr(r)}Object.setPrototypeOf(vt.prototype,Function.prototype);for(const[r,e]of Object.entries(de))Ye[r]={get(){const t=Nt(this,Jt(e.open,e.close,this[Ke]),this[ht]);return Object.defineProperty(this,r,{value:t}),t}};Ye.visible={get(){const r=Nt(this,this[Ke],!0);return Object.defineProperty(this,"visible",{value:r}),r}};const Ht=(r,e,t,...s)=>r==="rgb"?e==="ansi16m"?de[t].ansi16m(...s):e==="ansi256"?de[t].ansi256(de.rgbToAnsi256(...s)):de[t].ansi(de.rgbToAnsi(...s)):r==="hex"?Ht("rgb",e,t,...de.hexToRgb(...s)):de[t][r](...s),dr=["rgb","hex","ansi256"];for(const r of dr){Ye[r]={get(){const{level:t}=this;return function(...s){const o=Jt(Ht(r,fs[t],"color",...s),de.color.close,this[Ke]);return Nt(this,o,this[ht])}}};const e="bg"+r[0].toUpperCase()+r.slice(1);Ye[e]={get(){const{level:t}=this;return function(...s){const o=Jt(Ht(r,fs[t],"bgColor",...s),de.bgColor.close,this[Ke]);return Nt(this,o,this[ht])}}}}const mr=Object.defineProperties(()=>{},{...Ye,level:{enumerable:!0,get(){return this[Ut].level},set(r){this[Ut].level=r}}}),Jt=(r,e,t)=>{let s,o;return t===void 0?(s=r,o=e):(s=t.openAll+r,o=e+t.closeAll),{open:r,close:e,openAll:s,closeAll:o,parent:t}},Nt=(r,e,t)=>{const s=(...o)=>hr(s,o.length===1?""+o[0]:o.join(" "));return Object.setPrototypeOf(s,mr),s[Ut]=r,s[Ke]=e,s[ht]=t,s},hr=(r,e)=>{if(r.level<=0||!e)return r[ht]?"":e;let t=r[Ke];if(t===void 0)return e;const{openAll:s,closeAll:o}=t;if(e.includes("\x1B"))for(;t!==void 0;)e=_r(e,t.close,t.open),t=t.parent;const n=e.indexOf(`
13
- `);return n!==-1&&(e=ur(e,o,s,n)),s+e+o};Object.defineProperties(vt.prototype,Ye);const U=vt();vt({level:gs?gs.level:0});function gr(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var et={exports:{}},Dt,ks;function fr(){if(ks)return Dt;ks=1;function r(t){try{return JSON.stringify(t)}catch{return'"[Circular]"'}}Dt=e;function e(t,s,o){var n=o&&o.stringify||r,i=1;if(typeof t=="object"&&t!==null){var a=s.length+i;if(a===1)return t;var _=new Array(a);_[0]=n(t);for(var p=1;p<a;p++)_[p]=n(s[p]);return _.join(" ")}if(typeof t!="string")return t;var l=s.length;if(l===0)return t;for(var m="",g=1-i,f=-1,w=t&&t.length||0,v=0;v<w;){if(t.charCodeAt(v)===37&&v+1<w){switch(f=f>-1?f:0,t.charCodeAt(v+1)){case 100:case 102:if(g>=l||s[g]==null)break;f<v&&(m+=t.slice(f,v)),m+=Number(s[g]),f=v+2,v++;break;case 105:if(g>=l||s[g]==null)break;f<v&&(m+=t.slice(f,v)),m+=Math.floor(Number(s[g])),f=v+2,v++;break;case 79:case 111:case 106:if(g>=l||s[g]===void 0)break;f<v&&(m+=t.slice(f,v));var E=typeof s[g];if(E==="string"){m+="'"+s[g]+"'",f=v+2,v++;break}if(E==="function"){m+=s[g].name||"<anonymous>",f=v+2,v++;break}m+=n(s[g]),f=v+2,v++;break;case 115:if(g>=l)break;f<v&&(m+=t.slice(f,v)),m+=String(s[g]),f=v+2,v++;break;case 37:f<v&&(m+=t.slice(f,v)),m+="%",f=v+2,v++,g--;break}++g}++v}return f===-1?t:(f<w&&(m+=t.slice(f)),m)}return Dt}var vs;function kr(){if(vs)return et.exports;vs=1;const r=fr();et.exports=l;const e=$().console||{},t={mapHttpRequest:N,mapHttpResponse:N,wrapRequestSerializer:J,wrapResponseSerializer:J,wrapErrorSerializer:J,req:N,res:N,err:ae,errWithCause:ae};function s(u,h){return u==="silent"?1/0:h.levels.values[u]}const o=Symbol("pino.logFuncs"),n=Symbol("pino.hierarchy"),i={error:"log",fatal:"error",warn:"error",info:"log",debug:"log",trace:"log"};function a(u,h){const x={logger:h,parent:u[n]};h[n]=x}function _(u,h,x){const O={};h.forEach(R=>{O[R]=x[R]?x[R]:e[R]||e[i[R]||"log"]||Y}),u[o]=O}function p(u,h){return Array.isArray(u)?u.filter(function(O){return O!=="!stdSerializers.err"}):u===!0?Object.keys(h):!1}function l(u){u=u||{},u.browser=u.browser||{};const h=u.browser.transmit;if(h&&typeof h.send!="function")throw Error("pino: transmit option must have a send function");const x=u.browser.write||e;u.browser.write&&(u.browser.asObject=!0);const O=u.serializers||{},R=p(u.browser.serialize,O);let Z=u.browser.serialize;Array.isArray(u.browser.serialize)&&u.browser.serialize.indexOf("!stdSerializers.err")>-1&&(Z=!1);const G=Object.keys(u.customLevels||{}),F=["error","fatal","warn","info","debug","trace"].concat(G);typeof x=="function"&&F.forEach(function(pe){x[pe]=x}),(u.enabled===!1||u.browser.disabled)&&(u.level="silent");const H=u.level||"info",b=Object.create(x);b.log||(b.log=Y),_(b,F,x),a({},b),Object.defineProperty(b,"levelVal",{get:xt}),Object.defineProperty(b,"level",{get:Ce,set:yt});const V={transmit:h,serialize:R,asObject:u.browser.asObject,formatters:u.browser.formatters,levels:F,timestamp:ke(u),messageKey:u.messageKey||"msg",onChild:u.onChild||Y};b.levels=m(u),b.level=H,b.setMaxListeners=b.getMaxListeners=b.emit=b.addListener=b.on=b.prependListener=b.once=b.prependOnceListener=b.removeListener=b.removeAllListeners=b.listeners=b.listenerCount=b.eventNames=b.write=b.flush=Y,b.serializers=O,b._serialize=R,b._stdErrSerialize=Z,b.child=function(...pe){return es.call(this,V,...pe)},h&&(b._logEvent=ne());function xt(){return s(this.level,this)}function Ce(){return this._level}function yt(pe){if(pe!=="silent"&&!this.levels.values[pe])throw Error("unknown level "+pe);this._level=pe,w(this,V,b,"error"),w(this,V,b,"fatal"),w(this,V,b,"warn"),w(this,V,b,"info"),w(this,V,b,"debug"),w(this,V,b,"trace"),G.forEach(ve=>{w(this,V,b,ve)})}function es(pe,ve,Xe){if(!ve)throw new Error("missing bindings for child Pino");Xe=Xe||{},R&&ve.serializers&&(Xe.serializers=ve.serializers);const ts=Xe.serializers;if(R&&ts){var bt=Object.assign({},O,ts),ss=u.browser.serialize===!0?Object.keys(bt):R;delete ve.serializers,P([ve],ss,bt,this._stdErrSerialize)}function os(wt){this._childLevel=(wt._childLevel|0)+1,this.bindings=ve,bt&&(this.serializers=bt,this._serialize=ss),h&&(this._logEvent=ne([].concat(wt._logEvent.bindings,ve)))}os.prototype=this;const Qe=new os(this);return a(this,Qe),Qe.child=function(...wt){return es.call(this,pe,...wt)},Qe.level=Xe.level||this.level,pe.onChild(Qe),Qe}return b}function m(u){const h=u.customLevels||{},x=Object.assign({},l.levels.values,h),O=Object.assign({},l.levels.labels,g(h));return{values:x,labels:O}}function g(u){const h={};return Object.keys(u).forEach(function(x){h[u[x]]=x}),h}l.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:"trace",20:"debug",30:"info",40:"warn",50:"error",60:"fatal"}},l.stdSerializers=t,l.stdTimeFunctions=Object.assign({},{nullTime:M,epochTime:Q,unixTime:W,isoTime:K});function f(u){const h=[];u.bindings&&h.push(u.bindings);let x=u[n];for(;x.parent;)x=x.parent,x.logger.bindings&&h.push(x.logger.bindings);return h.reverse()}function w(u,h,x,O){if(Object.defineProperty(u,O,{value:s(u.level,x)>s(O,x)?Y:x[o][O],writable:!0,enumerable:!0,configurable:!0}),u[O]===Y){if(!h.transmit)return;const Z=h.transmit.level||u.level,G=s(Z,x);if(s(O,x)<G)return}u[O]=E(u,h,x,O);const R=f(u);R.length!==0&&(u[O]=v(R,u[O]))}function v(u,h){return function(){return h.apply(this,[...u,...arguments])}}function E(u,h,x,O){return function(R){return function(){const G=h.timestamp(),F=new Array(arguments.length),H=Object.getPrototypeOf&&Object.getPrototypeOf(this)===e?e:this;for(var b=0;b<F.length;b++)F[b]=arguments[b];var V=!1;if(h.serialize&&(P(F,this._serialize,this.serializers,this._stdErrSerialize),V=!0),h.asObject||h.formatters?R.call(H,j(this,O,F,G,h)):R.apply(H,F),h.transmit){const xt=h.transmit.level||u._level,Ce=s(xt,x),yt=s(O,x);if(yt<Ce)return;qe(this,{ts:G,methodLevel:O,methodValue:yt,transmitValue:x.levels.values[h.transmit.level||u._level],send:h.transmit.send,val:s(u._level,x)},F,V)}}}(u[o][O])}function j(u,h,x,O,R){const{level:Z,log:G=Ce=>Ce}=R.formatters||{},F=x.slice();let H=F[0];const b={};if(O&&(b.time=O),Z){const Ce=Z(h,u.levels.values[h]);Object.assign(b,Ce)}else b.level=u.levels.values[h];let V=(u._childLevel|0)+1;if(V<1&&(V=1),H!==null&&typeof H=="object"){for(;V--&&typeof F[0]=="object";)Object.assign(b,F.shift());H=F.length?r(F.shift(),F):void 0}else typeof H=="string"&&(H=r(F.shift(),F));return H!==void 0&&(b[R.messageKey]=H),G(b)}function P(u,h,x,O){for(const R in u)if(O&&u[R]instanceof Error)u[R]=l.stdSerializers.err(u[R]);else if(typeof u[R]=="object"&&!Array.isArray(u[R])&&h)for(const Z in u[R])h.indexOf(Z)>-1&&Z in x&&(u[R][Z]=x[Z](u[R][Z]))}function qe(u,h,x,O=!1){const R=h.send,Z=h.ts,G=h.methodLevel,F=h.methodValue,H=h.val,b=u._logEvent.bindings;O||P(x,u._serialize||Object.keys(u.serializers),u.serializers,u._stdErrSerialize===void 0?!0:u._stdErrSerialize),u._logEvent.ts=Z,u._logEvent.messages=x.filter(function(V){return b.indexOf(V)===-1}),u._logEvent.level.label=G,u._logEvent.level.value=F,R(G,u._logEvent,H),u._logEvent=ne(b)}function ne(u){return{ts:0,messages:[],bindings:u||[],level:{label:"",value:0}}}function ae(u){const h={type:u.constructor.name,msg:u.message,stack:u.stack};for(const x in u)h[x]===void 0&&(h[x]=u[x]);return h}function ke(u){return typeof u.timestamp=="function"?u.timestamp:u.timestamp===!1?M:Q}function N(){return{}}function J(u){return u}function Y(){}function M(){return!1}function Q(){return Date.now()}function W(){return Math.round(Date.now()/1e3)}function K(){return new Date(Date.now()).toISOString()}function $(){function u(h){return typeof h<"u"&&h}try{return typeof globalThis<"u"||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch{return u(self)||u(window)||u(this)||{}}}return et.exports.default=l,et.exports.pino=l,et.exports}var vr=kr();const St=gr(vr);class X{pino;useTerminalFormat;static instance;constructor(e={}){this.useTerminalFormat=e.useTerminalFormat??!0;const t=e.debug?"debug":e.verbose?"trace":"info";e.silent?this.pino=St({level:"silent"}):e.logFile||e.logDir?this.pino=this.createMultiTransportLogger(t,e):this.useTerminalFormat&&process.stdout.isTTY?this.pino=St({level:t,transport:{target:"pino-pretty",options:{colorize:!0,ignore:"pid,hostname",translateTime:"HH:MM:ss",messageFormat:"{msg}"}}}):this.pino=St({level:t})}createMultiTransportLogger(e,t){let s;if(t.logFile)s=t.logFile;else if(t.logDir){Me.existsSync(t.logDir)||Me.mkdirSync(t.logDir,{recursive:!0});const n=new Date().toISOString().split("T")[0];s=be.join(t.logDir,`app-${n}.log`)}else{const n=be.join(Kt.tmpdir(),"agiflow-agents","logs",`session-${process.pid}`);Me.existsSync(n)||Me.mkdirSync(n,{recursive:!0});const i=new Date().toISOString().split("T")[0];s=be.join(n,`app-${i}.log`)}const o=[];return this.useTerminalFormat&&process.stdout.isTTY?o.push({level:e,target:"pino-pretty",options:{destination:1,colorize:!0,ignore:"pid,hostname",translateTime:"HH:MM:ss",messageFormat:"{msg}"}}):o.push({level:e,target:"pino/file",options:{destination:1}}),t.maxFileSize||t.maxFiles?o.push({level:e,target:"pino-roll",options:{file:s,frequency:"daily",size:t.maxFileSize||"10m",limit:{count:t.maxFiles||7},symlink:!0,mkdir:!0}}):o.push({level:e,target:"pino/file",options:{destination:s,mkdir:!0}}),St({level:e,transport:{targets:o}})}static getInstance(){return X.instance||(X.instance=new X),X.instance}static configure(e){X.instance=new X(e)}getLogFilePath(){const e=this.pino.transports;if(e&&Array.isArray(e)){const t=e.find(s=>s.target==="pino/file"||s.target==="pino-roll");if(t&&t.options)return t.options.destination||t.options.file}}info(e,...t){this.useTerminalFormat&&process.stdout.isTTY?console.log(U.blue("ℹ"),e,...t):this.pino.info(e,...t)}static info(e,...t){X.getInstance().info(e,...t)}success(e,...t){this.useTerminalFormat&&process.stdout.isTTY?console.log(U.green("✓"),e,...t):this.pino.info({type:"success"},e,...t)}static success(e,...t){X.getInstance().success(e,...t)}warn(e,...t){this.useTerminalFormat&&process.stdout.isTTY?console.warn(U.yellow("⚠"),e,...t):this.pino.warn(e,...t)}static warn(e,...t){X.getInstance().warn(e,...t)}error(e,t,s){let o,n;t instanceof Error?(o=t,n=s):n=t,this.useTerminalFormat&&process.stdout.isTTY?console.error(U.red("✗"),e,o||""):o?this.pino.error(o,e):this.pino.error(e),n?.exit!==void 0&&process.exit(n.exit)}static error(e,t){X.getInstance().error(e,void 0,t)}debug(e,...t){this.useTerminalFormat&&process.stdout.isTTY?(se.isDebugMode||this.pino.level==="debug"||this.pino.level==="trace")&&console.log(U.gray("🔍"),U.gray(e),...t):this.pino.debug(e,...t)}static debug(e,...t){X.getInstance().debug(e,...t)}trace(e,...t){this.useTerminalFormat&&process.stdout.isTTY?this.pino.level==="trace"&&console.log(U.gray("..."),U.gray(e),...t):this.pino.trace(e,...t)}title(e){this.useTerminalFormat&&process.stdout.isTTY?(console.log(),console.log(U.bold.cyan(e)),console.log(U.cyan("=".repeat(e.length)))):this.pino.info({type:"title"},e)}static title(e){X.getInstance().title(e)}code(e){this.useTerminalFormat&&process.stdout.isTTY?(console.log(),console.log(U.gray(" "+e)),console.log()):this.pino.info({type:"code",code:e},"Code example")}static code(e){X.getInstance().code(e)}newLine(){this.useTerminalFormat&&process.stdout.isTTY&&console.log()}static newLine(){X.getInstance().newLine()}terminal(e,t,...s){if(!process.stdout.isTTY){this.pino[e==="success"||e==="title"||e==="code"?"info":e](t,...s);return}switch(e){case"info":console.log(U.blue("ℹ"),t,...s);break;case"success":console.log(U.green("✓"),t,...s);break;case"warn":console.warn(U.yellow("⚠"),t,...s);break;case"error":console.error(U.red("✗"),t,...s);break;case"debug":console.log(U.gray("🔍"),U.gray(t),...s);break;case"title":console.log(),console.log(U.bold.cyan(t)),console.log(U.cyan("=".repeat(t.length)));break;case"code":console.log(),console.log(U.gray(" "+t)),console.log();break}}getPino(){return this.pino}child(e){const t=new X({useTerminalFormat:this.useTerminalFormat});return t.pino=this.pino.child(e),t}}class Se{static AGIFLOW_DIR=Le.join($t.homedir(),".agiflow");static async ensureDir(e){await Te.ensureDir(e)}static async exists(e){try{return await Te.access(e),!0}catch{return!1}}static async readJson(e){const t=await Te.readFile(e,"utf-8");return JSON.parse(t)}static async writeJson(e,t,s){await Te.ensureDir(Le.dirname(e));const o=JSON.stringify(t,null,s?.spaces??2);await Te.writeFile(e,o,"utf-8")}static async copy(e,t){await Te.copy(e,t)}static async remove(e){await Te.remove(e)}static getCurrentDirectory(){return process.cwd()}static resolvePath(...e){return Le.resolve(process.cwd(),...e)}static async getFiles(e,t){const s=await Te.readdir(e);return t?s.filter(o=>t.test(o)):s}static getAbsolutePath(e){return e?e.startsWith("~/")?Le.join($t.homedir(),e.slice(2)):e==="~"?$t.homedir():Le.isAbsolute(e)?e:Le.resolve(process.cwd(),e):process.cwd()}}class xr{filePath;cache=null;dirty=!1;constructor(e){this.filePath=e||Le.join(Se.AGIFLOW_DIR,"credentials.json")}async load(){if(this.cache)return this.cache;try{if(!await Se.exists(this.filePath))return null;const t=await Se.readJson(this.filePath);return this.cache=t,t}catch{return null}}async flush(){!this.dirty||!this.cache||(await Se.ensureDir(Se.AGIFLOW_DIR),await Se.writeJson(this.filePath,this.cache),this.dirty=!1)}async setApiKey(e){this.cache={apiKey:e.apiKey,organizationId:e.organizationId,deviceId:e.deviceId||this.cache?.deviceId,expiresAt:e.expiresAt},this.dirty=!0,await this.flush()}async setDeviceId(e){const t=await this.load()||{apiKey:"",organizationId:""};t.deviceId=e,this.cache=t,this.dirty=!0,await this.flush()}async getApiKey(){return(await this.load())?.apiKey||null}async getAgentCreds(){const e=await this.load();if(!e)throw new Error("Cred not set");return{apiKey:e.apiKey,organizationId:e.organizationId,deviceId:e.deviceId}}async getOrganizationId(){return(await this.load())?.organizationId||null}async getDeviceId(){return(await this.load())?.deviceId||null}async isExpired(e=300*1e3){const t=await this.load();return t?.expiresAt?Date.now()>=t.expiresAt-e:!1}async clear(){this.cache=null,this.dirty=!1;try{await Se.exists(this.filePath)&&await Se.remove(this.filePath)}catch{}}async buildAuthHeaders(){const e=await this.load();return e?.apiKey?{"x-api-key":e.apiKey}:{}}async buildDeviceAuthHeaders(e){const t=await this.load();if(!t?.apiKey)return{};const s={"x-api-key":t.apiKey};return e&&(s["x-device-guid"]=e),t.deviceId&&(s["x-device-id"]=t.deviceId),t.organizationId&&(s["x-organization-id"]=t.organizationId),s}async buildAgentAuthHeaders(e){let t=e;if(t||(t=await this.getApiKey()||void 0),t||(t=se.apiKey),!t)return{};const s={"x-api-key":t,"Content-Type":"application/json"},o=await this.getOrganizationId();o&&(s["x-organization-id"]=o);const n=await this.getDeviceId();return n&&(s["x-device-id"]=n),s}}L({limit:he().min(1).max(100).optional(),offset:he().min(0).optional(),messageType:Qt.optional(),sort:C().optional(),order:jt(["asc","desc"]).optional()});class yr{options;authService;credentials;logger;constructor(e){this.options=e,this.authService=e.authService,this.credentials=e.credentials??new xr,this.logger=e.logger??new X({verbose:!1})}async getAuthHeaders(){let e=await this.credentials.getApiKey(),t=await this.credentials.getOrganizationId();if((!e||!t)&&this.authService){const o=await this.authService.getValidApiKey();e=o.api_key,t=o.organization_id,await this.credentials.setApiKey({apiKey:e,organizationId:t,expiresAt:o.expires_at})}if(!e&&this.options.apiKey&&(e=this.options.apiKey),!t&&this.options.organizationId&&(t=this.options.organizationId),e&&t)return this.options.organizationId=t,{"Content-Type":"application/json","x-api-key":e};const s=this.options.authToken;if(!s)throw new Error("Authentication token is required for agent message operations");if(!this.options.organizationId)throw new Error("Organization ID is required for agent message operations");return{"Content-Type":"application/json",Authorization:`Bearer ${s}`}}async makeAuthenticatedRequest(e,t,s=!0){const o=await fetch(e,t);if(o.status===401&&s&&this.authService){const n=await o.text();if(n.includes("Invalid API key")){this.logger.info("= API key expired or invalid, clearing tokens and retrying authentication..."),await this.authService.clearTokens();try{await this.credentials.clear()}catch{}this.logger.info("= Retrying authentication...");const i=await this.getAuthHeaders(),a={...t,headers:{...t.headers,...i}};return await this.makeAuthenticatedRequest(e,a,!1)}if(n.includes("Invalid or expired session")){const i=se.isContainerMode;if(this.logger.error("🚫 Session validation failed:",new Error(`Session validation failed for ${e}. Docker mode: ${i}, Method: ${t.method||"GET"}, Timestamp: ${new Date().toISOString()}`)),i)return this.logger.warn("🐳 Docker session timing issue detected, waiting and retrying..."),await new Promise(a=>setTimeout(a,2e3)),await this.makeAuthenticatedRequest(e,t,!1)}}return o.status===429&&this.logger.warn("= Rate limit exceeded, keeping credentials but not retrying"),o}async sendMessage(e){const t=await this.getAuthHeaders(),s=this.options.organizationId;if(!s)throw new Error("Organization ID is required for sending agent messages");const o=_s(e);try{Ns.parse(o)}catch(n){throw new Error(`Invalid message payload: ${n instanceof Error?n.message:n}`)}try{const n=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${s}/agent-sessions/${e.sessionId}/messages`,{method:"POST",headers:t,body:JSON.stringify(o)});if(!n.ok){const a=await n.text();throw new Error(`Failed to send agent message: ${n.status} ${a}`)}return await n.json()}catch(n){throw new Error(`Failed to send agent message: ${n instanceof Error?n.message:n}`)}}async sendMessageBatch(e,t){const s=await this.getAuthHeaders(),o=this.options.organizationId;if(!o)throw new Error("Organization ID is required for sending agent messages");const n=t.map(i=>_s(i));try{const i=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${o}/agent-sessions/${e}/messages/batch`,{method:"POST",headers:s,body:JSON.stringify({messages:n})});if(!i.ok){const _=await i.text();throw new Error(`Failed to send agent message batch: ${i.status} ${_}`)}return await i.json()}catch(i){throw new Error(`Failed to send agent message batch: ${i instanceof Error?i.message:i}`)}}async getSessionMessages(e,t){const s=await this.getAuthHeaders(),o=this.options.organizationId;if(!o)throw new Error("Organization ID is required for fetching agent messages");const n=new URLSearchParams;t?.limit&&n.append("limit",t.limit.toString()),t?.offset&&n.append("offset",t.offset.toString()),t?.messageType&&n.append("messageType",t.messageType),t?.sort&&n.append("sort",t.sort),t?.order&&n.append("order",t.order);const i=`${this.options.apiUrl}/api/v1/organizations/${o}/agent-sessions/${e}/messages?${n.toString()}`;try{const a=await this.makeAuthenticatedRequest(i,{method:"GET",headers:s});if(!a.ok){const p=await a.text();throw new Error(`Failed to fetch session messages: ${a.status} ${p}`)}return await a.json()}catch(a){throw new Error(`Failed to fetch session messages: ${a instanceof Error?a.message:a}`)}}async uploadMessageContent(e,t,s,o){const n=await this.getAuthHeaders(),i=this.options.organizationId;if(!i)throw new Error("Organization ID is required for uploading message content");const a=typeof s=="string"?Buffer.from(s,"utf-8"):s,_=a.length;try{const p=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${i}/agent-sessions/${e}/messages/presign`,{method:"POST",headers:n,body:JSON.stringify({messageType:t,contentSize:_})});if(!p.ok){const f=await p.text();throw new Error(`Failed to get presigned URL: ${p.status} ${f}`)}const{uploadUrl:l}=await p.json(),m=await fetch(l,{method:"PUT",body:a,headers:{"Content-Type":"application/octet-stream","Content-Length":_.toString()}});if(!m.ok)throw new Error(`Failed to upload content to R2: ${m.status}`);const g={sessionId:e,messageType:t,contentSize:_,metadata:o};return await this.sendMessage(g)}catch(p){throw new Error(`Failed to upload message content: ${p instanceof Error?p.message:p}`)}}async startMessage(e,t){const s=await this.getAuthHeaders(),o=this.options.organizationId;if(!o)throw new Error("Organization ID is required for starting agent messages");try{tr.parse(t)}catch(n){throw new Error(`Invalid start message payload: ${n instanceof Error?n.message:n}`)}try{const n=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${o}/agent-sessions/${e}/messages/start`,{method:"POST",headers:s,body:JSON.stringify(t)});if(!n.ok){const a=await n.text();throw new Error(`Failed to start agent message: ${n.status} ${a}`)}return await n.json()}catch(n){throw new Error(`Failed to start agent message: ${n instanceof Error?n.message:n}`)}}async updateMessage(e,t,s){const o=await this.getAuthHeaders(),n=this.options.organizationId;if(!n)throw new Error("Organization ID is required for updating agent messages");try{sr.parse(s)}catch(a){throw this.logger.error("=❌ Update message validation failed",new Error(`Update message validation failed: ${a instanceof Error?a.message:a}`)),new Error(`Invalid update message payload: ${a instanceof Error?a.message:a}`)}const i=JSON.stringify(s);try{const a=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${n}/agent-sessions/${e}/messages/${t}`,{method:"PATCH",headers:o,body:i});if(!a.ok){const p=await a.text();throw new Error(`Failed to update agent message: ${a.status} ${p}`)}return await a.json()}catch(a){throw new Error(`Failed to update agent message: ${a instanceof Error?a.message:a}`)}}async deleteSessionMessages(e){const t=await this.getAuthHeaders(),s=this.options.organizationId;if(!s)throw new Error("Organization ID is required for deleting session messages");this.logger.info(`=� Deleting all messages for session ${e}...`);try{const o=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${s}/agent-sessions/${e}/messages`,{method:"DELETE",headers:t},!1);if(!o.ok){const i=await o.text().catch(()=>"Unknown error");return this.logger.warn(`� Failed to delete session messages: ${o.status} ${i}`),0}const{deletedCount:n}=await o.json();return this.logger.success(` Deleted ${n} messages for session ${e}`),n}catch(o){return this.logger.warn("� Failed to delete session messages:",o),0}}async getAgentSession(e){const t=await this.getAuthHeaders(),s=this.options.organizationId;if(!s)throw new Error("Organization ID is required for fetching agent session");try{const o=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${s}/agent-sessions/${e}`,{method:"GET",headers:t});if(!o.ok){const i=await o.text();throw new Error(`Failed to fetch agent session: ${o.status} ${i}`)}return await o.json()}catch(o){throw new Error(`Failed to fetch agent session: ${o instanceof Error?o.message:o}`)}}async createTaskComment(e,t,s,o){try{const n=await this.getAuthHeaders(),i=this.options.organizationId;if(!i)return this.logger.warn("Organization ID is required for creating task comment"),null;const a=t&&t.length>1e4?t.substring(0,1e4):t,_=await this.getAgentSession(e);if(!_)return this.logger.warn("Agent session not found for task comment creation"),null;if(!_.taskId)return this.logger.debug("Agent session has no associated task - skipping comment creation"),null;const p=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${i}/tasks/${_.taskId}/comments`,{method:"POST",headers:n,body:JSON.stringify({content:a,assigneeId:s,info:o})});if(!p.ok){const m=await p.text();return this.logger.warn(`Failed to create task comment: ${p.status} ${m}`),null}const l=await p.json();return this.logger.debug("Task comment created successfully"),l}catch(n){return this.logger.warn(`Failed to create task comment: ${n instanceof Error?n.message:n}`),null}}async updateTaskDevInfo(e,t){try{const s=await this.getAuthHeaders(),o=this.options.organizationId;if(!o)return this.logger.warn("Organization ID is required for updating task devInfo"),null;const n=await this.getAgentSession(e);if(!n)return this.logger.warn("Agent session not found for task devInfo update"),null;if(!n.taskId)return this.logger.debug("Agent session has no associated task - skipping devInfo update"),null;const i=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${o}/tasks/${n.taskId}`,{method:"PATCH",headers:s,body:JSON.stringify({devInfo:t})});if(!i.ok){const _=await i.text();return this.logger.warn(`Failed to update task devInfo: ${i.status} ${_}`),null}const a=await i.json();return this.logger.debug("Task devInfo updated successfully"),a}catch(s){return this.logger.warn(`Failed to update task devInfo: ${s instanceof Error?s.message:s}`),null}}}class br{logger;agentHttpService=null;interceptor;llmProvider;maxBodyBytes;sessionId;constructor(){const e=se.netlogMaxBody;this.maxBodyBytes=e||8192,this.sessionId=se.sessionId||"",this.llmProvider=new zs;const t=se.netlogFile||be.join(Kt.tmpdir(),"agiflow-agents","network",`network-${process.pid}.log`);this.logger=new tt(t);let s=se.serverUrl||"";s.startsWith("wss://")?s="https://"+s.slice(6):s.startsWith("ws://")&&(s="http://"+s.slice(5));const o=se.apiKey||"",n=se.organizationId||"";if(se.isNetlogRemoteEnabled&&!!(this.sessionId&&s)&&s)try{this.agentHttpService=new yr({apiUrl:s,organizationId:n,apiKey:o,logger:this.logger})}catch(a){tt.shouldDebug()&&this.logger.error("AgentHttpService initialization failed",a)}this.interceptor=Ge.getInstance({maxBodyBytes:this.maxBodyBytes,enableDebug:se.isDebugMode||se.isNetlogDebug,llmProvider:this.llmProvider,idGenerator:xs.ulid,agentHttpService:this.agentHttpService||void 0,sessionId:this.sessionId})}start(){this.interceptor.start()}}const wr=new br;wr.start();
16
+ `,o)}while(s!==-1);return n+=r.slice(o),n}const{stdout:gs,stderr:fs}=cr,Ht=Symbol("GENERATOR"),Ye=Symbol("STYLER"),gt=Symbol("IS_EMPTY"),ks=["ansi","ansi","ansi256","ansi16m"],Xe=Object.create(null),mr=(r,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");const t=gs?gs.level:0;r.level=e.level===void 0?t:e.level},hr=r=>{const e=(...t)=>t.join(" ");return mr(e,r),Object.setPrototypeOf(e,xt.prototype),e};function xt(r){return hr(r)}Object.setPrototypeOf(xt.prototype,Function.prototype);for(const[r,e]of Object.entries(me))Xe[r]={get(){const t=Lt(this,Wt(e.open,e.close,this[Ye]),this[gt]);return Object.defineProperty(this,r,{value:t}),t}};Xe.visible={get(){const r=Lt(this,this[Ye],!0);return Object.defineProperty(this,"visible",{value:r}),r}};const Jt=(r,e,t,...s)=>r==="rgb"?e==="ansi16m"?me[t].ansi16m(...s):e==="ansi256"?me[t].ansi256(me.rgbToAnsi256(...s)):me[t].ansi(me.rgbToAnsi(...s)):r==="hex"?Jt("rgb",e,t,...me.hexToRgb(...s)):me[t][r](...s),gr=["rgb","hex","ansi256"];for(const r of gr){Xe[r]={get(){const{level:t}=this;return function(...s){const o=Wt(Jt(r,ks[t],"color",...s),me.color.close,this[Ye]);return Lt(this,o,this[gt])}}};const e="bg"+r[0].toUpperCase()+r.slice(1);Xe[e]={get(){const{level:t}=this;return function(...s){const o=Wt(Jt(r,ks[t],"bgColor",...s),me.bgColor.close,this[Ye]);return Lt(this,o,this[gt])}}}}const fr=Object.defineProperties(()=>{},{...Xe,level:{enumerable:!0,get(){return this[Ht].level},set(r){this[Ht].level=r}}}),Wt=(r,e,t)=>{let s,o;return t===void 0?(s=r,o=e):(s=t.openAll+r,o=e+t.closeAll),{open:r,close:e,openAll:s,closeAll:o,parent:t}},Lt=(r,e,t)=>{const s=(...o)=>kr(s,o.length===1?""+o[0]:o.join(" "));return Object.setPrototypeOf(s,fr),s[Ht]=r,s[Ye]=e,s[gt]=t,s},kr=(r,e)=>{if(r.level<=0||!e)return r[gt]?"":e;let t=r[Ye];if(t===void 0)return e;const{openAll:s,closeAll:o}=t;if(e.includes("\x1B"))for(;t!==void 0;)e=lr(e,t.close,t.open),t=t.parent;const n=e.indexOf(`
17
+ `);return n!==-1&&(e=dr(e,o,s,n)),s+e+o};Object.defineProperties(xt.prototype,Xe);const G=xt();xt({level:fs?fs.level:0});function vr(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var tt={exports:{}},qt,vs;function xr(){if(vs)return qt;vs=1;function r(t){try{return JSON.stringify(t)}catch{return'"[Circular]"'}}qt=e;function e(t,s,o){var n=o&&o.stringify||r,i=1;if(typeof t=="object"&&t!==null){var a=s.length+i;if(a===1)return t;var p=new Array(a);p[0]=n(t);for(var _=1;_<a;_++)p[_]=n(s[_]);return p.join(" ")}if(typeof t!="string")return t;var l=s.length;if(l===0)return t;for(var v="",k=1-i,h=-1,y=t&&t.length||0,g=0;g<y;){if(t.charCodeAt(g)===37&&g+1<y){switch(h=h>-1?h:0,t.charCodeAt(g+1)){case 100:case 102:if(k>=l||s[k]==null)break;h<g&&(v+=t.slice(h,g)),v+=Number(s[k]),h=g+2,g++;break;case 105:if(k>=l||s[k]==null)break;h<g&&(v+=t.slice(h,g)),v+=Math.floor(Number(s[k])),h=g+2,g++;break;case 79:case 111:case 106:if(k>=l||s[k]===void 0)break;h<g&&(v+=t.slice(h,g));var w=typeof s[k];if(w==="string"){v+="'"+s[k]+"'",h=g+2,g++;break}if(w==="function"){v+=s[k].name||"<anonymous>",h=g+2,g++;break}v+=n(s[k]),h=g+2,g++;break;case 115:if(k>=l)break;h<g&&(v+=t.slice(h,g)),v+=String(s[k]),h=g+2,g++;break;case 37:h<g&&(v+=t.slice(h,g)),v+="%",h=g+2,g++,k--;break}++k}++g}return h===-1?t:(h<y&&(v+=t.slice(h)),v)}return qt}var xs;function yr(){if(xs)return tt.exports;xs=1;const r=xr();tt.exports=l;const e=Z().console||{},t={mapHttpRequest:C,mapHttpResponse:C,wrapRequestSerializer:Y,wrapResponseSerializer:Y,wrapErrorSerializer:Y,req:C,res:C,err:Te,errWithCause:Te};function s(u,d){return u==="silent"?1/0:d.levels.values[u]}const o=Symbol("pino.logFuncs"),n=Symbol("pino.hierarchy"),i={error:"log",fatal:"error",warn:"error",info:"log",debug:"log",trace:"log"};function a(u,d){const x={logger:d,parent:u[n]};d[n]=x}function p(u,d,x){const O={};d.forEach(R=>{O[R]=x[R]?x[R]:e[R]||e[i[R]||"log"]||J}),u[o]=O}function _(u,d){return Array.isArray(u)?u.filter(function(O){return O!=="!stdSerializers.err"}):u===!0?Object.keys(d):!1}function l(u){u=u||{},u.browser=u.browser||{};const d=u.browser.transmit;if(d&&typeof d.send!="function")throw Error("pino: transmit option must have a send function");const x=u.browser.write||e;u.browser.write&&(u.browser.asObject=!0);const O=u.serializers||{},R=_(u.browser.serialize,O);let q=u.browser.serialize;Array.isArray(u.browser.serialize)&&u.browser.serialize.indexOf("!stdSerializers.err")>-1&&(q=!1);const V=Object.keys(u.customLevels||{}),F=["error","fatal","warn","info","debug","trace"].concat(V);typeof x=="function"&&F.forEach(function(_e){x[_e]=x}),(u.enabled===!1||u.browser.disabled)&&(u.level="silent");const H=u.level||"info",T=Object.create(x);T.log||(T.log=J),p(T,F,x),a({},T),Object.defineProperty(T,"levelVal",{get:yt}),Object.defineProperty(T,"level",{get:Le,set:bt});const B={transmit:d,serialize:R,asObject:u.browser.asObject,formatters:u.browser.formatters,levels:F,timestamp:pe(u),messageKey:u.messageKey||"msg",onChild:u.onChild||J};T.levels=v(u),T.level=H,T.setMaxListeners=T.getMaxListeners=T.emit=T.addListener=T.on=T.prependListener=T.once=T.prependOnceListener=T.removeListener=T.removeAllListeners=T.listeners=T.listenerCount=T.eventNames=T.write=T.flush=J,T.serializers=O,T._serialize=R,T._stdErrSerialize=q,T.child=function(..._e){return ts.call(this,B,..._e)},d&&(T._logEvent=ae());function yt(){return s(this.level,this)}function Le(){return this._level}function bt(_e){if(_e!=="silent"&&!this.levels.values[_e])throw Error("unknown level "+_e);this._level=_e,y(this,B,T,"error"),y(this,B,T,"fatal"),y(this,B,T,"warn"),y(this,B,T,"info"),y(this,B,T,"debug"),y(this,B,T,"trace"),V.forEach(ve=>{y(this,B,T,ve)})}function ts(_e,ve,Qe){if(!ve)throw new Error("missing bindings for child Pino");Qe=Qe||{},R&&ve.serializers&&(Qe.serializers=ve.serializers);const ss=Qe.serializers;if(R&&ss){var wt=Object.assign({},O,ss),os=u.browser.serialize===!0?Object.keys(wt):R;delete ve.serializers,U([ve],os,wt,this._stdErrSerialize)}function rs(Tt){this._childLevel=(Tt._childLevel|0)+1,this.bindings=ve,wt&&(this.serializers=wt,this._serialize=os),d&&(this._logEvent=ae([].concat(Tt._logEvent.bindings,ve)))}rs.prototype=this;const et=new rs(this);return a(this,et),et.child=function(...Tt){return ts.call(this,_e,...Tt)},et.level=Qe.level||this.level,_e.onChild(et),et}return T}function v(u){const d=u.customLevels||{},x=Object.assign({},l.levels.values,d),O=Object.assign({},l.levels.labels,k(d));return{values:x,labels:O}}function k(u){const d={};return Object.keys(u).forEach(function(x){d[u[x]]=x}),d}l.levels={values:{fatal:60,error:50,warn:40,info:30,debug:20,trace:10},labels:{10:"trace",20:"debug",30:"info",40:"warn",50:"error",60:"fatal"}},l.stdSerializers=t,l.stdTimeFunctions=Object.assign({},{nullTime:j,epochTime:W,unixTime:K,isoTime:te});function h(u){const d=[];u.bindings&&d.push(u.bindings);let x=u[n];for(;x.parent;)x=x.parent,x.logger.bindings&&d.push(x.logger.bindings);return d.reverse()}function y(u,d,x,O){if(Object.defineProperty(u,O,{value:s(u.level,x)>s(O,x)?J:x[o][O],writable:!0,enumerable:!0,configurable:!0}),u[O]===J){if(!d.transmit)return;const q=d.transmit.level||u.level,V=s(q,x);if(s(O,x)<V)return}u[O]=w(u,d,x,O);const R=h(u);R.length!==0&&(u[O]=g(R,u[O]))}function g(u,d){return function(){return d.apply(this,[...u,...arguments])}}function w(u,d,x,O){return function(R){return function(){const V=d.timestamp(),F=new Array(arguments.length),H=Object.getPrototypeOf&&Object.getPrototypeOf(this)===e?e:this;for(var T=0;T<F.length;T++)F[T]=arguments[T];var B=!1;if(d.serialize&&(U(F,this._serialize,this.serializers,this._stdErrSerialize),B=!0),d.asObject||d.formatters?R.call(H,L(this,O,F,V,d)):R.apply(H,F),d.transmit){const yt=d.transmit.level||u._level,Le=s(yt,x),bt=s(O,x);if(bt<Le)return;ie(this,{ts:V,methodLevel:O,methodValue:bt,transmitValue:x.levels.values[d.transmit.level||u._level],send:d.transmit.send,val:s(u._level,x)},F,B)}}}(u[o][O])}function L(u,d,x,O,R){const{level:q,log:V=Le=>Le}=R.formatters||{},F=x.slice();let H=F[0];const T={};if(O&&(T.time=O),q){const Le=q(d,u.levels.values[d]);Object.assign(T,Le)}else T.level=u.levels.values[d];let B=(u._childLevel|0)+1;if(B<1&&(B=1),H!==null&&typeof H=="object"){for(;B--&&typeof F[0]=="object";)Object.assign(T,F.shift());H=F.length?r(F.shift(),F):void 0}else typeof H=="string"&&(H=r(F.shift(),F));return H!==void 0&&(T[R.messageKey]=H),V(T)}function U(u,d,x,O){for(const R in u)if(O&&u[R]instanceof Error)u[R]=l.stdSerializers.err(u[R]);else if(typeof u[R]=="object"&&!Array.isArray(u[R])&&d)for(const q in u[R])d.indexOf(q)>-1&&q in x&&(u[R][q]=x[q](u[R][q]))}function ie(u,d,x,O=!1){const R=d.send,q=d.ts,V=d.methodLevel,F=d.methodValue,H=d.val,T=u._logEvent.bindings;O||U(x,u._serialize||Object.keys(u.serializers),u.serializers,u._stdErrSerialize===void 0?!0:u._stdErrSerialize),u._logEvent.ts=q,u._logEvent.messages=x.filter(function(B){return T.indexOf(B)===-1}),u._logEvent.level.label=V,u._logEvent.level.value=F,R(V,u._logEvent,H),u._logEvent=ae(T)}function ae(u){return{ts:0,messages:[],bindings:u||[],level:{label:"",value:0}}}function Te(u){const d={type:u.constructor.name,msg:u.message,stack:u.stack};for(const x in u)d[x]===void 0&&(d[x]=u[x]);return d}function pe(u){return typeof u.timestamp=="function"?u.timestamp:u.timestamp===!1?j:W}function C(){return{}}function Y(u){return u}function J(){}function j(){return!1}function W(){return Date.now()}function K(){return Math.round(Date.now()/1e3)}function te(){return new Date(Date.now()).toISOString()}function Z(){function u(d){return typeof d<"u"&&d}try{return typeof globalThis<"u"||Object.defineProperty(Object.prototype,"globalThis",{get:function(){return delete Object.prototype.globalThis,this.globalThis=this},configurable:!0}),globalThis}catch{return u(self)||u(window)||u(this)||{}}}return tt.exports.default=l,tt.exports.pino=l,tt.exports}var br=yr();const Et=vr(br);class X{pino;useTerminalFormat;static instance;constructor(e={}){this.useTerminalFormat=e.useTerminalFormat??!0;const t=e.debug?"debug":e.verbose?"trace":"info";e.silent?this.pino=Et({level:"silent"}):e.logFile||e.logDir?this.pino=this.createMultiTransportLogger(t,e):this.useTerminalFormat&&process.stdout.isTTY?this.pino=Et({level:t,transport:{target:"pino-pretty",options:{colorize:!0,ignore:"pid,hostname",translateTime:"HH:MM:ss",messageFormat:"{msg}"}}}):this.pino=Et({level:t})}createMultiTransportLogger(e,t){let s;if(t.logFile)s=t.logFile;else if(t.logDir){Pe.existsSync(t.logDir)||Pe.mkdirSync(t.logDir,{recursive:!0});const n=new Date().toISOString().split("T")[0];s=be.join(t.logDir,`app-${n}.log`)}else{const n=be.join(Yt.tmpdir(),"agiflow-agents","logs",`session-${process.pid}`);Pe.existsSync(n)||Pe.mkdirSync(n,{recursive:!0});const i=new Date().toISOString().split("T")[0];s=be.join(n,`app-${i}.log`)}const o=[];return this.useTerminalFormat&&process.stdout.isTTY?o.push({level:e,target:"pino-pretty",options:{destination:1,colorize:!0,ignore:"pid,hostname",translateTime:"HH:MM:ss",messageFormat:"{msg}"}}):o.push({level:e,target:"pino/file",options:{destination:1}}),t.maxFileSize||t.maxFiles?o.push({level:e,target:"pino-roll",options:{file:s,frequency:"daily",size:t.maxFileSize||"10m",limit:{count:t.maxFiles||7},symlink:!0,mkdir:!0}}):o.push({level:e,target:"pino/file",options:{destination:s,mkdir:!0}}),Et({level:e,transport:{targets:o}})}static getInstance(){return X.instance||(X.instance=new X),X.instance}static configure(e){X.instance=new X(e)}getLogFilePath(){const e=this.pino.transports;if(e&&Array.isArray(e)){const t=e.find(s=>s.target==="pino/file"||s.target==="pino-roll");if(t&&t.options)return t.options.destination||t.options.file}}info(e,...t){this.useTerminalFormat&&process.stdout.isTTY?console.log(G.blue("ℹ"),e,...t):this.pino.info(e,...t)}static info(e,...t){X.getInstance().info(e,...t)}success(e,...t){this.useTerminalFormat&&process.stdout.isTTY?console.log(G.green("✓"),e,...t):this.pino.info({type:"success"},e,...t)}static success(e,...t){X.getInstance().success(e,...t)}warn(e,...t){this.useTerminalFormat&&process.stdout.isTTY?console.warn(G.yellow("⚠"),e,...t):this.pino.warn(e,...t)}static warn(e,...t){X.getInstance().warn(e,...t)}error(e,t,s){let o,n;t instanceof Error?(o=t,n=s):n=t,this.useTerminalFormat&&process.stdout.isTTY?console.error(G.red("✗"),e,o||""):o?this.pino.error(o,e):this.pino.error(e),n?.exit!==void 0&&process.exit(n.exit)}static error(e,t){X.getInstance().error(e,void 0,t)}debug(e,...t){this.useTerminalFormat&&process.stdout.isTTY?(ee.isDebugMode||this.pino.level==="debug"||this.pino.level==="trace")&&console.log(G.gray("🔍"),G.gray(e),...t):this.pino.debug(e,...t)}static debug(e,...t){X.getInstance().debug(e,...t)}trace(e,...t){this.useTerminalFormat&&process.stdout.isTTY?this.pino.level==="trace"&&console.log(G.gray("..."),G.gray(e),...t):this.pino.trace(e,...t)}title(e){this.useTerminalFormat&&process.stdout.isTTY?(console.log(),console.log(G.bold.cyan(e)),console.log(G.cyan("=".repeat(e.length)))):this.pino.info({type:"title"},e)}static title(e){X.getInstance().title(e)}code(e){this.useTerminalFormat&&process.stdout.isTTY?(console.log(),console.log(G.gray(" "+e)),console.log()):this.pino.info({type:"code",code:e},"Code example")}static code(e){X.getInstance().code(e)}newLine(){this.useTerminalFormat&&process.stdout.isTTY&&console.log()}static newLine(){X.getInstance().newLine()}terminal(e,t,...s){if(!process.stdout.isTTY){this.pino[e==="success"||e==="title"||e==="code"?"info":e](t,...s);return}switch(e){case"info":console.log(G.blue("ℹ"),t,...s);break;case"success":console.log(G.green("✓"),t,...s);break;case"warn":console.warn(G.yellow("⚠"),t,...s);break;case"error":console.error(G.red("✗"),t,...s);break;case"debug":console.log(G.gray("🔍"),G.gray(t),...s);break;case"title":console.log(),console.log(G.bold.cyan(t)),console.log(G.cyan("=".repeat(t.length)));break;case"code":console.log(),console.log(G.gray(" "+t)),console.log();break}}getPino(){return this.pino}child(e){const t=new X({useTerminalFormat:this.useTerminalFormat});return t.pino=this.pino.child(e),t}}class Ee{static AGIFLOW_DIR=je.join(Ft.homedir(),".agiflow");static async ensureDir(e){await Se.ensureDir(e)}static async exists(e){try{return await Se.access(e),!0}catch{return!1}}static async readJson(e){const t=await Se.readFile(e,"utf-8");return JSON.parse(t)}static async writeJson(e,t,s){await Se.ensureDir(je.dirname(e));const o=JSON.stringify(t,null,s?.spaces??2);await Se.writeFile(e,o,"utf-8")}static async copy(e,t){await Se.copy(e,t)}static async remove(e){await Se.remove(e)}static getCurrentDirectory(){return process.cwd()}static resolvePath(...e){return je.resolve(process.cwd(),...e)}static async getFiles(e,t){const s=await Se.readdir(e);return t?s.filter(o=>t.test(o)):s}static getAbsolutePath(e){return e?e.startsWith("~/")?je.join(Ft.homedir(),e.slice(2)):e==="~"?Ft.homedir():je.isAbsolute(e)?e:je.resolve(process.cwd(),e):process.cwd()}}class wr{filePath;cache=null;dirty=!1;constructor(e){this.filePath=e||je.join(Ee.AGIFLOW_DIR,"credentials.json")}async load(){if(this.cache)return this.cache;try{if(!await Ee.exists(this.filePath))return null;const t=await Ee.readJson(this.filePath);return this.cache=t,t}catch{return null}}async flush(){!this.dirty||!this.cache||(await Ee.ensureDir(Ee.AGIFLOW_DIR),await Ee.writeJson(this.filePath,this.cache),this.dirty=!1)}async setApiKey(e){this.cache={apiKey:e.apiKey,organizationId:e.organizationId,deviceId:e.deviceId||this.cache?.deviceId,expiresAt:e.expiresAt},this.dirty=!0,await this.flush()}async setDeviceId(e){const t=await this.load()||{apiKey:"",organizationId:""};t.deviceId=e,this.cache=t,this.dirty=!0,await this.flush()}async getApiKey(){return(await this.load())?.apiKey||null}async getAgentCreds(){const e=await this.load();if(!e)throw new Error("Cred not set");return{apiKey:e.apiKey,organizationId:e.organizationId,deviceId:e.deviceId}}async getOrganizationId(){return(await this.load())?.organizationId||null}async getDeviceId(){return(await this.load())?.deviceId||null}async isExpired(e=300*1e3){const t=await this.load();return t?.expiresAt?Date.now()>=t.expiresAt-e:!1}async clear(){this.cache=null,this.dirty=!1;try{await Ee.exists(this.filePath)&&await Ee.remove(this.filePath)}catch{}}async buildAuthHeaders(){const e=await this.load();return e?.apiKey?{"x-api-key":e.apiKey}:{}}async buildDeviceAuthHeaders(e){const t=await this.load();if(!t?.apiKey)return{};const s={"x-api-key":t.apiKey};return e&&(s["x-device-guid"]=e),t.deviceId&&(s["x-device-id"]=t.deviceId),t.organizationId&&(s["x-organization-id"]=t.organizationId),s}async buildAgentAuthHeaders(e){let t=e;if(t||(t=await this.getApiKey()||void 0),t||(t=ee.apiKey),!t)return{};const s={"x-api-key":t,"Content-Type":"application/json"},o=await this.getOrganizationId();o&&(s["x-organization-id"]=o);const n=await this.getDeviceId();return n&&(s["x-device-id"]=n),s}}M({limit:ge().min(1).max(100).optional(),offset:ge().min(0).optional(),messageType:es.optional(),sort:N().optional(),order:Pt(["asc","desc"]).optional()});class Tr{options;authService;credentials;logger;constructor(e){this.options=e,this.authService=e.authService,this.credentials=e.credentials??new wr,this.logger=e.logger??new X({verbose:!1})}async getAuthHeaders(){let e=await this.credentials.getApiKey(),t=await this.credentials.getOrganizationId();if((!e||!t)&&this.authService){const o=await this.authService.getValidApiKey();e=o.api_key,t=o.organization_id,await this.credentials.setApiKey({apiKey:e,organizationId:t,expiresAt:o.expires_at})}if(!e&&this.options.apiKey&&(e=this.options.apiKey),!t&&this.options.organizationId&&(t=this.options.organizationId),e&&t)return this.options.organizationId=t,{"Content-Type":"application/json","x-api-key":e};const s=this.options.authToken;if(!s)throw new Error("Authentication token is required for agent message operations");if(!this.options.organizationId)throw new Error("Organization ID is required for agent message operations");return{"Content-Type":"application/json",Authorization:`Bearer ${s}`}}async makeAuthenticatedRequest(e,t,s=!0){const o=await fetch(e,t);if(o.status===401&&s&&this.authService){const n=await o.text();if(n.includes("Invalid API key")){this.logger.info("= API key expired or invalid, clearing tokens and retrying authentication..."),await this.authService.clearTokens();try{await this.credentials.clear()}catch{}this.logger.info("= Retrying authentication...");const i=await this.getAuthHeaders(),a={...t,headers:{...t.headers,...i}};return await this.makeAuthenticatedRequest(e,a,!1)}if(n.includes("Invalid or expired session")){const i=ee.isContainerMode;if(this.logger.error("🚫 Session validation failed:",new Error(`Session validation failed for ${e}. Docker mode: ${i}, Method: ${t.method||"GET"}, Timestamp: ${new Date().toISOString()}`)),i)return this.logger.warn("🐳 Docker session timing issue detected, waiting and retrying..."),await new Promise(a=>setTimeout(a,2e3)),await this.makeAuthenticatedRequest(e,t,!1)}}return o.status===429&&this.logger.warn("= Rate limit exceeded, keeping credentials but not retrying"),o}async sendMessage(e){const t=await this.getAuthHeaders(),s=this.options.organizationId;if(!s)throw new Error("Organization ID is required for sending agent messages");const o=us(e);try{Ls.parse(o)}catch(n){throw new Error(`Invalid message payload: ${n instanceof Error?n.message:n}`)}try{const n=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${s}/agent-sessions/${e.sessionId}/messages`,{method:"POST",headers:t,body:JSON.stringify(o)});if(!n.ok){const a=await n.text();throw new Error(`Failed to send agent message: ${n.status} ${a}`)}return await n.json()}catch(n){throw new Error(`Failed to send agent message: ${n instanceof Error?n.message:n}`)}}async sendMessageBatch(e,t){const s=await this.getAuthHeaders(),o=this.options.organizationId;if(!o)throw new Error("Organization ID is required for sending agent messages");const n=t.map(i=>us(i));try{const i=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${o}/agent-sessions/${e}/messages/batch`,{method:"POST",headers:s,body:JSON.stringify({messages:n})});if(!i.ok){const p=await i.text();throw new Error(`Failed to send agent message batch: ${i.status} ${p}`)}return await i.json()}catch(i){throw new Error(`Failed to send agent message batch: ${i instanceof Error?i.message:i}`)}}async getSessionMessages(e,t){const s=await this.getAuthHeaders(),o=this.options.organizationId;if(!o)throw new Error("Organization ID is required for fetching agent messages");const n=new URLSearchParams;t?.limit&&n.append("limit",t.limit.toString()),t?.offset&&n.append("offset",t.offset.toString()),t?.messageType&&n.append("messageType",t.messageType),t?.sort&&n.append("sort",t.sort),t?.order&&n.append("order",t.order);const i=`${this.options.apiUrl}/api/v1/organizations/${o}/agent-sessions/${e}/messages?${n.toString()}`;try{const a=await this.makeAuthenticatedRequest(i,{method:"GET",headers:s});if(!a.ok){const _=await a.text();throw new Error(`Failed to fetch session messages: ${a.status} ${_}`)}return await a.json()}catch(a){throw new Error(`Failed to fetch session messages: ${a instanceof Error?a.message:a}`)}}async uploadMessageContent(e,t,s,o){const n=await this.getAuthHeaders(),i=this.options.organizationId;if(!i)throw new Error("Organization ID is required for uploading message content");const a=typeof s=="string"?Buffer.from(s,"utf-8"):s,p=a.length;try{const _=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${i}/agent-sessions/${e}/messages/presign`,{method:"POST",headers:n,body:JSON.stringify({messageType:t,contentSize:p})});if(!_.ok){const h=await _.text();throw new Error(`Failed to get presigned URL: ${_.status} ${h}`)}const{uploadUrl:l}=await _.json(),v=await fetch(l,{method:"PUT",body:a,headers:{"Content-Type":"application/octet-stream","Content-Length":p.toString()}});if(!v.ok)throw new Error(`Failed to upload content to R2: ${v.status}`);const k={sessionId:e,messageType:t,contentSize:p,metadata:o};return await this.sendMessage(k)}catch(_){throw new Error(`Failed to upload message content: ${_ instanceof Error?_.message:_}`)}}async startMessage(e,t){const s=await this.getAuthHeaders(),o=this.options.organizationId;if(!o)throw new Error("Organization ID is required for starting agent messages");try{rr.parse(t)}catch(n){throw new Error(`Invalid start message payload: ${n instanceof Error?n.message:n}`)}try{const n=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${o}/agent-sessions/${e}/messages/start`,{method:"POST",headers:s,body:JSON.stringify(t)});if(!n.ok){const a=await n.text();throw new Error(`Failed to start agent message: ${n.status} ${a}`)}return await n.json()}catch(n){throw new Error(`Failed to start agent message: ${n instanceof Error?n.message:n}`)}}async updateMessage(e,t,s){const o=await this.getAuthHeaders(),n=this.options.organizationId;if(!n)throw new Error("Organization ID is required for updating agent messages");try{nr.parse(s)}catch(a){throw this.logger.error("=❌ Update message validation failed",new Error(`Update message validation failed: ${a instanceof Error?a.message:a}`)),new Error(`Invalid update message payload: ${a instanceof Error?a.message:a}`)}const i=JSON.stringify(s);try{const a=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${n}/agent-sessions/${e}/messages/${t}`,{method:"PATCH",headers:o,body:i});if(!a.ok){const _=await a.text();throw new Error(`Failed to update agent message: ${a.status} ${_}`)}return await a.json()}catch(a){throw new Error(`Failed to update agent message: ${a instanceof Error?a.message:a}`)}}async deleteSessionMessages(e){const t=await this.getAuthHeaders(),s=this.options.organizationId;if(!s)throw new Error("Organization ID is required for deleting session messages");this.logger.info(`=� Deleting all messages for session ${e}...`);try{const o=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${s}/agent-sessions/${e}/messages`,{method:"DELETE",headers:t},!1);if(!o.ok){const i=await o.text().catch(()=>"Unknown error");return this.logger.warn(`� Failed to delete session messages: ${o.status} ${i}`),0}const{deletedCount:n}=await o.json();return this.logger.success(` Deleted ${n} messages for session ${e}`),n}catch(o){return this.logger.warn("� Failed to delete session messages:",o),0}}async getAgentSession(e){const t=await this.getAuthHeaders(),s=this.options.organizationId;if(!s)throw new Error("Organization ID is required for fetching agent session");try{const o=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${s}/agent-sessions/${e}`,{method:"GET",headers:t});if(!o.ok){const i=await o.text();throw new Error(`Failed to fetch agent session: ${o.status} ${i}`)}return await o.json()}catch(o){throw new Error(`Failed to fetch agent session: ${o instanceof Error?o.message:o}`)}}async createTaskComment(e,t,s,o){try{const n=await this.getAuthHeaders(),i=this.options.organizationId;if(!i)return this.logger.warn("Organization ID is required for creating task comment"),null;const a=t&&t.length>1e4?t.substring(0,1e4):t,p=await this.getAgentSession(e);if(!p)return this.logger.warn("Agent session not found for task comment creation"),null;if(!p.taskId)return this.logger.debug("Agent session has no associated task - skipping comment creation"),null;const _=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${i}/tasks/${p.taskId}/comments`,{method:"POST",headers:n,body:JSON.stringify({content:a,assigneeId:s,info:o})});if(!_.ok){const v=await _.text();return this.logger.warn(`Failed to create task comment: ${_.status} ${v}`),null}const l=await _.json();return this.logger.debug("Task comment created successfully"),l}catch(n){return this.logger.warn(`Failed to create task comment: ${n instanceof Error?n.message:n}`),null}}async updateTaskDevInfo(e,t){try{const s=await this.getAuthHeaders(),o=this.options.organizationId;if(!o)return this.logger.warn("Organization ID is required for updating task devInfo"),null;const n=await this.getAgentSession(e);if(!n)return this.logger.warn("Agent session not found for task devInfo update"),null;if(!n.taskId)return this.logger.debug("Agent session has no associated task - skipping devInfo update"),null;const i=await this.makeAuthenticatedRequest(`${this.options.apiUrl}/api/v1/organizations/${o}/tasks/${n.taskId}`,{method:"PATCH",headers:s,body:JSON.stringify({devInfo:t})});if(!i.ok){const p=await i.text();return this.logger.warn(`Failed to update task devInfo: ${i.status} ${p}`),null}const a=await i.json();return this.logger.debug("Task devInfo updated successfully"),a}catch(s){return this.logger.warn(`Failed to update task devInfo: ${s instanceof Error?s.message:s}`),null}}}class Sr{logger;agentHttpService=null;interceptor;llmProvider;maxBodyBytes;sessionId;constructor(){const e=ee.netlogMaxBody;this.maxBodyBytes=e||8192,this.sessionId=ee.sessionId||"",this.llmProvider=new Cs;const t=ee.netlogFile||be.join(Yt.tmpdir(),"agiflow-agents","network",`network-${process.pid}.log`);this.logger=new st(t);let s=ee.serverUrl||"";s.startsWith("wss://")?s="https://"+s.slice(6):s.startsWith("ws://")&&(s="http://"+s.slice(5));const o=ee.apiKey||"",n=ee.organizationId||"";if(ee.isNetlogRemoteEnabled&&!!(this.sessionId&&s)&&s)try{this.agentHttpService=new Tr({apiUrl:s,organizationId:n,apiKey:o,logger:this.logger})}catch(a){st.shouldDebug()&&this.logger.error("AgentHttpService initialization failed",a)}this.interceptor=Ze.getInstance({maxBodyBytes:this.maxBodyBytes,enableDebug:ee.isDebugMode||ee.isNetlogDebug,llmProvider:this.llmProvider,idGenerator:ys.ulid,agentHttpService:this.agentHttpService||void 0,sessionId:this.sessionId})}start(){this.interceptor.start()}}const Er=new Sr;Er.start();
14
18
  //# sourceMappingURL=networkLog.js.map