omnigateway 0.15.1 → 0.15.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -0
- package/bin/omni.js +126 -126
- package/gateway.js +166 -166
- package/package.json +1 -1
- package/public/assets/{Chip-C3dIFd8s.js → Chip-B2iXmJJC.js} +1 -1
- package/public/assets/CopyValue-CWSTp4v8.js +27 -0
- package/public/assets/{Field-EvdVyEqx.js → Field-CUEEy19T.js} +5 -28
- package/public/assets/{Rack-DMrfn4-H.js → Rack-1lijWt5h.js} +32 -32
- package/public/assets/RequestTable-uRTmuPwB.js +93 -0
- package/public/assets/Select-C0c13SKD.js +141 -0
- package/public/assets/{SummaryDeck-DHsYYpYO.js → SummaryDeck-DnQnRmQ8.js} +1 -1
- package/public/assets/Toggle-BvVa_jla.js +39 -0
- package/public/assets/{TokenBreakdown-Bf0zsKcd.js → TokenBreakdown-B8cSaOOr.js} +2 -2
- package/public/assets/_app.accounts-DmJhe6QV.js +70 -0
- package/public/assets/_app.console-DQlcBpSu.js +24 -0
- package/public/assets/{_app.database-BCwEMrEA.js → _app.database-DoDu8HOG.js} +1 -1
- package/public/assets/{_app.index-DW6wain4.js → _app.index-BEeD4XSS.js} +2 -2
- package/public/assets/_app.keys-MXvgkBUB.js +120 -0
- package/public/assets/{_app.logs-CRC5qDK3.js → _app.logs-CjUjeVHg.js} +3 -3
- package/public/assets/_app.models-mNIL-1oS.js +148 -0
- package/public/assets/{_app.plugins._pluginId-CD9KXknf.js → _app.plugins._pluginId-CsJXQg6X.js} +1 -1
- package/public/assets/_app.settings-CYMwWA8D.js +88 -0
- package/public/assets/{_app.usage-BR6a92zI.js → _app.usage-Dd33vB8x.js} +3 -3
- package/public/assets/chevron-right-ocqzquMZ.js +1 -0
- package/public/assets/client-KUNw8ZtZ.js +48 -0
- package/public/assets/{index-6rZSWe9j.js → index-B9izdV6t.js} +3 -3
- package/public/assets/{login-NuwPF5SS.js → login-DrbTJF6e.js} +1 -1
- package/public/assets/plus-D_lvSfDL.js +1 -0
- package/public/assets/{rotate-ccw-Dionx_MW.js → rotate-ccw-CwTftDdz.js} +1 -1
- package/public/assets/{trash-Bsi60qJc.js → trash-CmuxOGpN.js} +1 -1
- package/public/index.html +2 -2
- package/public/assets/CopyValue-DG88CWpN.js +0 -27
- package/public/assets/RequestTable-CtuuMOT2.js +0 -93
- package/public/assets/Toggle-BTie3NY8.js +0 -39
- package/public/assets/_app.accounts-xCJhRd32.js +0 -70
- package/public/assets/_app.console-DS37cfIu.js +0 -24
- package/public/assets/_app.keys-CCU2NB3-.js +0 -120
- package/public/assets/_app.models-B4brzRdK.js +0 -148
- package/public/assets/_app.settings-NJSb_L2B.js +0 -88
- package/public/assets/chevron-down-3tlYNJqZ.js +0 -1
- package/public/assets/chevron-right-kvaJRnfj.js +0 -1
- package/public/assets/client-B9t0CsmA.js +0 -46
- package/public/assets/dist-B8iuo_hI.js +0 -1
- package/public/assets/plus-CVqm87L-.js +0 -1
package/bin/omni.js
CHANGED
|
@@ -4,42 +4,42 @@ var Wl={reset:"\x1B[0m",dim:"\x1B[2m",red:"\x1B[31m",green:"\x1B[32m",yellow:"\x
|
|
|
4
4
|
`)},err:(e)=>{process.stderr.write(`${e}
|
|
5
5
|
`)},raw:(e)=>{process.stdout.write(e)}};function S(e,t,n){return e.color?`${Wl[t]}${n}${Wl.reset}`:n}function Qs(e){return e.replace(/\u001b\[[0-9;]*m/g,"").length}function j(e,t){let n=e.map((o,i)=>t.reduce((s,a)=>Math.max(s,Qs(a[i]??"")),Qs(o.header))),r=(o)=>o.map((i,s)=>{let a=" ".repeat(Math.max(0,(n[s]??0)-Qs(i)));return e[s]?.align==="right"?a+i:i+a}).join(" ").trimEnd();return[r(e.map((o)=>o.header)),...t.map((o)=>r(o))].join(`
|
|
6
6
|
`)}function q(e){let t=e.reduce((n,[r])=>Math.max(n,r.length),0);return e.map(([n,r])=>`${n.padEnd(t)} ${r}`).join(`
|
|
7
|
-
`)}function R(e,t,n,r){if(e.json){t.out(JSON.stringify(n,null,2));return}let o=r();if(o.length>0)t.out(o)}function X(e,t,n){if(!e.json)t.err(n)}function oe(e){if(e===null||!Number.isFinite(e))return"\u2014";let t=new Date(e);if(Number.isNaN(t.getTime()))return"out of range";return t.toISOString().replace("T"," ").slice(0,19)}function Gl(e,t){if(e===null||!Number.isFinite(e))return"\u2014";let n=Math.max(0,Math.round((t-e)/1000));if(n<60)return`${n}s`;if(n<3600)return`${Math.round(n/60)}m`;if(n<86400)return`${Math.round(n/3600)}h`;return`${Math.round(n/86400)}d`}var jl=(e)=>String(e).padStart(2,"0");function oo(e){let t=Math.max(0,Math.round(e/1000));if(t<60)return`${t}s`;if(t<3600)return`${Math.floor(t/60)}m`;if(t<86400)return`${Math.floor(t/3600)}h${jl(Math.floor(t/60)%60)}m`;return`${Math.floor(t/86400)}d${jl(Math.floor(t/3600)%24)}h`}function Xn(e){return`$${e.toFixed(e<1?4:2)}`}function ce(e){if(!Number.isFinite(e)||e<0)return"\u2014";if(e<1024)return`${Math.round(e)} B`;let t=e/1024;if(t<1024)return`${t.toFixed(1)} KB`;return`${(t/1024).toFixed(1)} MB`}import{existsSync as qN,mkdirSync as HN,readFileSync as WN,renameSync as jN,rmSync as KN,writeFileSync as GN}from"fs";import{homedir as ZN}from"os";function Qn(e){let t=Object.values(e).filter((r)=>typeof r==="number");return Object.entries(e).filter(([r,o])=>t.indexOf(+r)===-1).map(([r,o])=>o)}function Js(e,t="|"){return e.map((n)=>na(n)).join(t)}function Yn(e,t){if(typeof t==="bigint")return t.toString();return t}class Xl{constructor(e){this._getter=e,this._value=void 0}get value(){let e=this._getter;if(e!==void 0)this._value=e(),this._getter=void 0;return this._value}}function Jn(e){return new Xl(e)}function Vl(e){return e===null||e===void 0}function io(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function Ql(e,t){let n=e/t,r=Math.round(n),o=4*Number.EPSILON*Math.max(Math.abs(n),1);if(Math.abs(n-r)<o)return 0;return n-r}function He(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function er(e){let t=Object.getOwnPropertyDescriptor(e,"shape");return t?.get?t.get.raw:t?.value}function Et(e){return er(e._zod.def)??e._zod.def.shape}function Yl(e,t,n){Object.defineProperty(e,t,{get(){let r=n();return He(this,t,r),r},enumerable:!0,configurable:!0})}function Jl(e,t,n){if(t in e)He(e,t,n);else e[t]=n}function en(e,t,n,r){let o=Et(t);for(let i of n){let s=Object.getOwnPropertyDescriptor(o,i);if(!s.enumerable)continue;if(s.get)Yl(e,i,()=>{let a=t._zod.def.shape[i];return r?r(a,i):a});else Jl(e,i,r?r(s.value,i):s.value)}}function dT(e,t){for(let n of Reflect.ownKeys(t)){let r=Object.getOwnPropertyDescriptor(t,n);if(!r.enumerable)continue;if(r.get)Yl(e,n,()=>t[n]);else Jl(e,n,r.value)}}function Le(...e){let t={};for(let n of e){let r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function ep(e){return JSON.stringify(e)}function tp(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var ea="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function En(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}var np=Jn(()=>{if(Re.jitless)return!1;if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function tn(e){if(En(e)===!1)return!1;let t=e.constructor;if(t===void 0)return!0;if(typeof t!=="function")return!0;let n=t.prototype;if(En(n)===!1)return!1;if(Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)return!1;return!0}function ta(e){if(tn(e))return{...e};if(Array.isArray(e))return[...e];if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);return e}var rp=new Set(["string","number","symbol"]);function Dt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ut(e,t,n){let r=new e._zod.constr(t??e._zod.def);if(!t||n?.parent)r._zod.parent=e;return r}function x(e){let t=e;if(!t)return{};if(typeof t==="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}if(delete t.message,typeof t.error==="string")return{...t,error:()=>t.error};return t}function na(e){if(typeof e==="bigint")return e.toString()+"n";if(typeof e==="string")return`"${e}"`;return`${e}`}function op(e){return Object.keys(e).filter((t)=>e[t]._zod.optin!==void 0&&e[t]._zod.optout==="optional")}var so=(()=>({safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]}))(),ra={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function lT(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let i={};return en(i,e,ao(e,t)),ut(e,Le(n,{shape:i,checks:[]}))}function ao(e,t){let n=Et(e),r=[];for(let o of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(n,o)?.enumerable)throw Error(`Unrecognized key: "${String(o)}"`);if(t[o])r.push(o)}return r}function pT(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let i=new Set(ao(e,t)),s={};return en(s,e,Reflect.ownKeys(Et(e)).filter((a)=>!i.has(a))),ut(e,Le(n,{shape:s,checks:[]}))}function mT(e,t){if(!tn(t))throw Error("Invalid input to extend: expected a plain object");let n=e._zod.def.checks;if(n&&n.length>0){let o=Et(e);for(let i of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(o,i)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return ut(e,Le(e._zod.def,{shape:ip(e,t)}))}function ip(e,t){let n={};return en(n,e,Reflect.ownKeys(Et(e))),dT(n,t),n}function fT(e,t){if(!tn(t))throw Error("Invalid input to safeExtend: expected a plain object");return ut(e,Le(e._zod.def,{shape:ip(e,t)}))}function gT(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let n={};en(n,e,Reflect.ownKeys(Et(e))),en(n,t,Reflect.ownKeys(Et(t)));let r=Le(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return ut(e,r)}function sp(e,t,n,r="partial"){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${r}() cannot be used on object schemas containing refinements`);let a=n?new Set(ao(t,n)):void 0,c={};return en(c,t,Reflect.ownKeys(Et(t)),e&&((u,d)=>a&&!a.has(d)?u:new e({type:"optional",innerType:u}))),ut(t,Le(t._zod.def,{shape:c,checks:[]}))}function hT(e,t,n){let r=n?new Set(ao(t,n)):void 0,o={};return en(o,t,Reflect.ownKeys(Et(t)),(i,s)=>r&&!r.has(s)?i:new e({type:"nonoptional",innerType:i})),ut(t,Le(t._zod.def,{shape:o}))}function ct(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function ap(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function Tt(e,t){return t.map((n)=>{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function Vn(e){return typeof e==="string"?e:e?.message}function oa(e,t,n){var r;for(let o=t;o<e.length;o++)(r=e[o]).schema??(r.schema=n)}function dt(e,t,n){var r;let o=e.inst?._zod?.traits;if(o?.has("$ZodType"))if(o.has("$ZodCheck"))(r=e).schema??(r.schema=e.inst);else e.schema=e.inst;let i=e.schema!==e.inst?e.schema?._zod.def?.error:void 0,s=e.message?e.message:Vn(e.inst?._zod.def?.error?.(e))??Vn(i?.(e))??Vn(t?.error?.(e))??Vn(n.customError?.(e))??Vn(n.localeError?.(e))??"Invalid input",a={};for(let c of Object.keys(e)){if(c==="inst"||c==="schema"||c==="continue"||c==="input"||c==="__proto__")continue;a[c]=e[c]}if(a.path??(a.path=[]),a.message=s,t?.reportInput)a.input=e.input;return a}var yT=/[\uD800-\uDBFF]/;function uo(e){let t=e.length;if(!yT.test(e))return t;let n=t;for(let r=0;r<t-1;r++)if((e.charCodeAt(r)&64512)===55296&&(e.charCodeAt(r+1)&64512)===56320)n--,r++;return n}function co(e){if(Array.isArray(e))return"array";if(typeof e==="string")return"string";return"unknown"}function up(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let n=e;if(n&&Object.getPrototypeOf(n)!==Object.prototype&&"constructor"in n&&n.constructor)return n.constructor.name}}return t}function nn(...e){let[t,n,r]=e;if(typeof t==="string")return{message:t,code:"custom",input:n,inst:r};return{...t}}function cp(e,t){for(let n in t){let r=Object.getOwnPropertyDescriptor(t,n);if(r.get)Object.defineProperty(e,n,{...r,enumerable:!1});else Zl(e,n,r.value)}for(let n of Object.getOwnPropertySymbols(t))Zl(e,n,t[n])}function vt(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function ia(e,t,n){return vt(e,t,n,!1)}function dp(e,t){for(let n in e){let r=e[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get(){return vt(this,n,r(this))},set(o){vt(this,n,o)}})}return t}function Zl(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:vt(this,t,n.bind(this))},set(r){vt(this,t,r)}})}function _T(e,t){let n=Object.getPrototypeOf(e);return t in n?void 0:n}var Ys,Nt=!1,wT={configurable:!0,get(){Nt=!0;return}};function F(e,t,n){let r=Object.getPrototypeOf(e._zod);if(t in r&&Ys!==e._zod){Ys=void 0;return}Ys=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,wT);let o=Nt;Nt=!1;try{let i=n(this);if(Nt)delete this[t];else Object.defineProperty(this,t,{configurable:!0,writable:!0,value:i});return Nt=Nt||o,i}catch(i){throw delete this[t],Nt=Nt||o,i}},set(o){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:o})}})}function bT(e,t,n,r){let o=_T(e,t);if(!o)return;Object.defineProperty(o,t,{configurable:!0,get(){let i={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,i),i.value=n(this),Object.defineProperty(this,t,i),i.value},set(i){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:i})}})}var kT="~constantCatch";function lp(e){let t=()=>e;return t[kT]=!0,t}var pp;var sa={value:void 0,enumerable:!1},mp="captureStackTrace"in Error?Error:null;function ET(e){let t=mp;if(t){let n=t.stackTraceLimit;if(typeof n==="number"){try{t.stackTraceLimit=0}catch{return mp=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function v(e,t,n,r){let o={};function i(l){this.def=l,this.constr=p,this.traits=new Set}i.prototype=o;let s=n,a=s&&new WeakSet;function c(l,m){if(!l._zod){sa.value=new i(m);try{Object.defineProperty(l,"_zod",sa)}finally{sa.value=void 0}}if(l._zod.traits.has(e))return;if(l._zod.traits.add(e),t(l,m),a){let h=Object.getPrototypeOf(l),f=l._zod.constr.prototype,y=h;while(y&&y!==f)y=Object.getPrototypeOf(y);let _=y??h;if(!a.has(_))a.add(_),cp(_,s)}let g=p.prototype;for(let h in g){if(!Object.prototype.hasOwnProperty.call(g,h))continue;if(!(h in l))l[h]=g[h].bind(l)}}let u=r?.Parent??Object;class d extends u{}Object.defineProperty(d,"name",{value:e});function p(l){let m=r?.Parent?ET(d):this;c(m,l);let g=m._zod.deferred;if(g){for(let f of g)f();m._zod.deferred=void 0}let h=globalThis.__zod_globalConfig?.postProcessor;if(h)h(m);return m}return Object.defineProperty(p,"init",{value:c}),Object.defineProperty(p,Symbol.hasInstance,{value:(l)=>{if(r?.Parent&&l instanceof r.Parent)return!0;return l?._zod?.traits?.has(e)}}),Object.defineProperty(p,"name",{value:e}),p}class lt extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class tr extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`);this.name="ZodEncodeError"}}(pp=globalThis).__zod_globalConfig??(pp.__zod_globalConfig={});var Re=globalThis.__zod_globalConfig;function Ne(e){if(e)Object.assign(Re,e);return Re}function vT(){let e=this._zod;return e.message??(e.message=JSON.stringify(e.def,Yn,2)),e.message}function TT(e){this._zod.message=e}var RT={get:vT,set:TT,enumerable:!0,configurable:!0},ua={value:void 0,enumerable:!1},fp=new WeakSet([Object.prototype,Error.prototype]),gp=(e,t)=>{e.name="$ZodError",ua.value=t,Object.defineProperty(e,"issues",ua),ua.value=void 0,Object.defineProperty(e,"message",RT);let n=Object.getPrototypeOf(e);if(!fp.has(n))fp.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){let r=()=>this.message;return Object.defineProperty(this,"toString",{value:r,configurable:!0,writable:!0}),r},set(r){Object.defineProperty(this,"toString",{value:r,configurable:!0,writable:!0})}})},hp=v("$ZodError",gp),JN=v("$ZodError",gp,void 0,{Parent:Error});function ST(e,t,n){if(!Object.prototype.hasOwnProperty.call(e,t))if(t==="__proto__")Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0});else e[t]=n();return e[t]}function yp(e,t=(n)=>n.message){let n={},r=[];for(let o of e.issues)if(o.path.length>0)ST(n,o.path[0],()=>[]).push(t(o));else r.push(t(o));return{formErrors:r,fieldErrors:n}}function _p(e,t=(n)=>n.message){let n={_errors:[]},r=(o,i=[])=>{for(let s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map((a)=>r({issues:a},[...i,...s.path]));else if(s.code==="invalid_key")r({issues:s.issues},[...i,...s.path]);else if(s.code==="invalid_element")r({issues:s.issues},[...i,...s.path]);else{let a=[...i,...s.path];if(a.length===0)n._errors.push(t(s));else{let c=n,u=0;while(u<a.length){let d=a[u],p=u===a.length-1;if(d==="_errors"){if(p)c._errors.push(t(s));u++;continue}if(!Object.prototype.hasOwnProperty.call(c,d))Object.defineProperty(c,d,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let l=c[d];if(p)l._errors.push(t(s));c=l,u++}}}};return r(e),n}function lo(e,t){return{callee:t?.callee??e,Err:t?.Err}}var po=(e)=>{let t=(n,r,o,i)=>{let s=o?{...o,async:!1}:{async:!1},a=n._zod.run({value:r,issues:[]},s);if(a instanceof Promise)throw new lt;if(a.issues.length){let c=new(i?.Err??e)(a.issues.map((u)=>dt(u,s,Ne())));throw ea(c,i?.callee??t),c}return a.value};return t};var mo=(e)=>{let t=async(n,r,o,i)=>{let s=o?{...o,async:!0}:{async:!0},a=n._zod.run({value:r,issues:[]},s);if(a instanceof Promise)a=await a;if(a.issues.length){let c=new(i?.Err??e)(a.issues.map((u)=>dt(u,s,Ne())));throw ea(c,i?.callee??t),c}return a.value};return t};var fo=(e)=>(t,n,r)=>{let o=r?{...r,async:!1}:{async:!1},i=t._zod.run({value:n,issues:[]},o);if(i instanceof Promise)throw new lt;return i.issues.length?wp(e,i.issues,o):{success:!0,data:i.value}};function wp(e,t,n){let r;return{success:!1,get error(){if(!r)r=new e(t.map((o)=>dt(o,n,Ne()))),t=void 0,n=void 0;return r},set error(o){r=o,t=void 0,n=void 0}}}var go=(e)=>async(t,n,r)=>{let o=r?{...r,async:!0}:{async:!0},i=t._zod.run({value:n,issues:[]},o);if(i instanceof Promise)i=await i;return i.issues.length?wp(e,i.issues,o):{success:!0,data:i.value}};var xT=Symbol.for("zod.compile.invalid"),AT=Symbol.for("zod.compile.fallback"),ca=(e,t,n)=>{let r=e._zod.bag.validator;if(r!==void 0){if(r(t)!==xT)return!0;if(r.definite===!0&&n===void 0)return!1}return CT(e,t,n)};function CT(e,t,n){let r=n?{...n,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},o=e._zod.bag.fallbackRun,i;if(o)r[AT]=!0,i=o({value:t,issues:[]},r);else i=e._zod.run({value:t,issues:[]},r);if(i instanceof Promise)throw new lt;return i.issues.length===0}var da=async(e,t,n)=>{let r=n?{...n,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0},o=e._zod.run({value:t,issues:[]},r);if(o instanceof Promise)o=await o;return o.issues.length===0},bp=(e)=>{let t=po(e),n=(r,o,i,s)=>{let a=i?{...i,direction:"backward"}:{direction:"backward"};return t(r,o,a,lo(n,s))};return n};var kp=(e)=>{let t=po(e),n=(r,o,i,s)=>t(r,o,i,lo(n,s));return n};var Ep=(e)=>{let t=mo(e),n=async(r,o,i,s)=>{let a=i?{...i,direction:"backward"}:{direction:"backward"};return await t(r,o,a,lo(n,s))};return n};var vp=(e)=>{let t=mo(e),n=async(r,o,i,s)=>await t(r,o,i,lo(n,s));return n};var Tp=(e)=>(t,n,r)=>{let o=r?{...r,direction:"backward"}:{direction:"backward"};return fo(e)(t,n,o)};var Rp=(e)=>(t,n,r)=>fo(e)(t,n,r);var Sp=(e)=>async(t,n,r)=>{let o=r?{...r,direction:"backward"}:{direction:"backward"};return go(e)(t,n,o)};var xp=(e)=>async(t,n,r)=>go(e)(t,n,r);var Ap=/^[cC][0-9a-z]{6,}$/,Cp=/^[0-9a-z]+$/,Op=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,Pp=/^[0-9a-vA-V]{20}$/,Ip=/^[A-Za-z0-9]{27}$/,Lp=/^[a-zA-Z0-9_-]{21}$/;function Np(e){return new RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}var Dp=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var Up=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,pa=(e)=>{if(!e)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)};var Mp=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var OT="^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$";function $p(){return new RegExp(OT,"u")}var Fp=/^(?:(?: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])$/,Bp=/^(([0-9a-fA-F]{1,4}:){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}|:))$/;var zp=/^((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])\/([0-9]|[1-2][0-9]|3[0-2])$/,qp=/^(([0-9a-fA-F]{1,4}:){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}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Hp=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Wp=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/;var jp=/^https?$/,Kp=/^\+[1-9]\d{6,14}$/;var Gp="(?:(?:\\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])))";function PT(e){return new RegExp(`^${e}$`)}var Zp=PT(Gp);function la(e){return typeof e.precision==="number"?e.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":e.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?":"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function Xp(e){return new RegExp(`^${la(e)}$`)}function Vp(e){let t=["Z"];if(e.offset)t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${la({precision:e.precision,seconds:!0})}(?:${t.join("|")})`,r=e.local?`${n}|${la({precision:e.precision})}`:n;return new RegExp(`^${Gp}T(?:${r})$`)}var Qp=/^[\s\S]{0,}$/;var ma=/^-?\d+$/,nr=/^-?\d+(?:\.\d+)?$/,Yp=/^(?:true|false)$/i;var Jp=/^[^A-Z]*$/,em=/^[^a-z]*$/;var pe=v("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])});var fa=(e)=>{let t=e.value;return!Vl(t)&&t.length!==void 0},ho={number:"number",bigint:"bigint",object:"date"},ga=v("$ZodCheckLessThan",(e,t)=>{pe.init(e,t);let n=ho[typeof t.value];e._zod.check=(r)=>{if(t.inclusive?r.value<=t.value:r.value<t.value)return;r.issues.push({origin:ho[typeof r.value]??n,code:"too_big",maximum:typeof t.value==="object"?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),ha=v("$ZodCheckGreaterThan",(e,t)=>{pe.init(e,t);let n=ho[typeof t.value];e._zod.check=(r)=>{if(t.inclusive?r.value>=t.value:r.value>t.value)return;r.issues.push({origin:ho[typeof r.value]??n,code:"too_small",minimum:typeof t.value==="object"?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),tm=v("$ZodCheckMultipleOf",(e,t)=>{pe.init(e,t),e._zod.check=(n)=>{if(typeof n.value!==typeof t.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof n.value==="bigint"?t.value!==BigInt(0)&&n.value%t.value===BigInt(0):Ql(n.value,t.value)===0)return;n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),nm=v("$ZodCheckNumberFormat",(e,t)=>{pe.init(e,t),t.format=t.format||"float64";let n=t.format?.includes("int"),r=n?"int":"number",[o,i]=so[t.format];e._zod.check=(s)=>{let a=s.value;if(n){if(!Number.isInteger(a)){s.issues.push({expected:r,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){if(a>0)s.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!t.abort});else s.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}if(a<o)s.issues.push({origin:"number",input:a,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort});if(a>i)s.issues.push({origin:"number",input:a,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}});var rm=v("$ZodCheckMaxLength",(e,t)=>{var n;pe.init(e,t),(n=e._zod.def).when??(n.when=fa),e._zod.check=(r)=>{let o=r.value,i=o.length;if((typeof o==="string"&&i>t.maximum?uo(o):i)<=t.maximum)return;let a=co(o);r.issues.push({origin:a,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),om=v("$ZodCheckMinLength",(e,t)=>{var n;pe.init(e,t),(n=e._zod.def).when??(n.when=fa),e._zod.check=(r)=>{let o=r.value,i=o.length;if((typeof o==="string"&&i>=t.minimum&&i<t.minimum*2?uo(o):i)>=t.minimum)return;let a=co(o);r.issues.push({origin:a,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),im=v("$ZodCheckLengthEquals",(e,t)=>{var n;pe.init(e,t),(n=e._zod.def).when??(n.when=fa),e._zod.check=(r)=>{let o=r.value,i=o.length,s=typeof o==="string"&&i>=t.length&&i<=t.length*2?uo(o):i;if(s===t.length)return;let a=co(o),c=s>t.length;r.issues.push({origin:a,...c?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),or=v("$ZodCheckStringFormat",(e,t)=>{var n,r;if(pe.init(e,t),t.pattern)(n=e._zod).check??(n.check=(o)=>{if(t.pattern.lastIndex=0,t.pattern.test(o.value))return;o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})});else(r=e._zod).check??(r.check=()=>{})}),sm=v("$ZodCheckRegex",(e,t)=>{or.init(e,t),e._zod.check=(n)=>{if(t.pattern.lastIndex=0,t.pattern.test(n.value))return;n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),am=v("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Jp),or.init(e,t)}),um=v("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=em),or.init(e,t)}),cm=v("$ZodCheckIncludes",(e,t)=>{pe.init(e,t);let n=Dt(t.includes),r=new RegExp(typeof t.position==="number"?`^.{${t.position},}${n}`:n);t.pattern=r,e._zod.check=(o)=>{if(o.value.includes(t.includes,t.position))return;o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),dm=v("$ZodCheckStartsWith",(e,t)=>{pe.init(e,t);let n=new RegExp(`^${Dt(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.check=(r)=>{if(r.value.startsWith(t.prefix))return;r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),lm=v("$ZodCheckEndsWith",(e,t)=>{pe.init(e,t);let n=new RegExp(`.*${Dt(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.check=(r)=>{if(r.value.endsWith(t.suffix))return;r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}});var pm=v("$ZodCheckOverwrite",(e,t)=>{pe.init(e,t),e._zod.check=(n)=>{n.value=t.tx(n.value)}});class ya{constructor(e=[],t={}){this.content=[],this.indent=0,this.args=e,this.closed=t}indented(e){this.indent+=1;try{e(this)}finally{this.indent-=1}}write(e){if(typeof e==="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(`
|
|
7
|
+
`)}function R(e,t,n,r){if(e.json){t.out(JSON.stringify(n,null,2));return}let o=r();if(o.length>0)t.out(o)}function X(e,t,n){if(!e.json)t.err(n)}function oe(e){if(e===null||!Number.isFinite(e))return"\u2014";let t=new Date(e);if(Number.isNaN(t.getTime()))return"out of range";return t.toISOString().replace("T"," ").slice(0,19)}function Gl(e,t){if(e===null||!Number.isFinite(e))return"\u2014";let n=Math.max(0,Math.round((t-e)/1000));if(n<60)return`${n}s`;if(n<3600)return`${Math.round(n/60)}m`;if(n<86400)return`${Math.round(n/3600)}h`;return`${Math.round(n/86400)}d`}var jl=(e)=>String(e).padStart(2,"0");function io(e){let t=Math.max(0,Math.round(e/1000));if(t<60)return`${t}s`;if(t<3600)return`${Math.floor(t/60)}m`;if(t<86400)return`${Math.floor(t/3600)}h${jl(Math.floor(t/60)%60)}m`;return`${Math.floor(t/86400)}d${jl(Math.floor(t/3600)%24)}h`}function Xn(e){return`$${e.toFixed(e<1?4:2)}`}function ce(e){if(!Number.isFinite(e)||e<0)return"\u2014";if(e<1024)return`${Math.round(e)} B`;let t=e/1024;if(t<1024)return`${t.toFixed(1)} KB`;return`${(t/1024).toFixed(1)} MB`}import{existsSync as qN,mkdirSync as HN,readFileSync as WN,renameSync as jN,rmSync as KN,writeFileSync as GN}from"fs";import{homedir as ZN}from"os";function Qn(e){let t=Object.values(e).filter((r)=>typeof r==="number");return Object.entries(e).filter(([r,o])=>t.indexOf(+r)===-1).map(([r,o])=>o)}function Js(e,t="|"){return e.map((n)=>na(n)).join(t)}function Yn(e,t){if(typeof t==="bigint")return t.toString();return t}class Xl{constructor(e){this._getter=e,this._value=void 0}get value(){let e=this._getter;if(e!==void 0)this._value=e(),this._getter=void 0;return this._value}}function Jn(e){return new Xl(e)}function Vl(e){return e===null||e===void 0}function so(e){let t=e.startsWith("^")?1:0,n=e.endsWith("$")?e.length-1:e.length;return e.slice(t,n)}function Ql(e,t){let n=e/t,r=Math.round(n),o=4*Number.EPSILON*Math.max(Math.abs(n),1);if(Math.abs(n-r)<o)return 0;return n-r}function je(e,t,n){Object.defineProperty(e,t,{value:n,writable:!0,enumerable:!0,configurable:!0})}function er(e){let t=Object.getOwnPropertyDescriptor(e,"shape");return t?.get?t.get.raw:t?.value}function Et(e){return er(e._zod.def)??e._zod.def.shape}function Yl(e,t,n){Object.defineProperty(e,t,{get(){let r=n();return je(this,t,r),r},enumerable:!0,configurable:!0})}function Jl(e,t,n){if(t in e)je(e,t,n);else e[t]=n}function en(e,t,n,r){let o=Et(t);for(let i of n){let s=Object.getOwnPropertyDescriptor(o,i);if(!s.enumerable)continue;if(s.get)Yl(e,i,()=>{let a=t._zod.def.shape[i];return r?r(a,i):a});else Jl(e,i,r?r(s.value,i):s.value)}}function dT(e,t){for(let n of Reflect.ownKeys(t)){let r=Object.getOwnPropertyDescriptor(t,n);if(!r.enumerable)continue;if(r.get)Yl(e,n,()=>t[n]);else Jl(e,n,r.value)}}function Ne(...e){let t={};for(let n of e){let r=Object.getOwnPropertyDescriptors(n);Object.assign(t,r)}return Object.defineProperties({},t)}function ep(e){return JSON.stringify(e)}function tp(e){return e.toLowerCase().trim().replace(/[^\w\s-]/g,"").replace(/[\s_-]+/g,"-").replace(/^-+|-+$/g,"")}var ea="captureStackTrace"in Error?Error.captureStackTrace:(...e)=>{};function En(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}var np=Jn(()=>{if(Se.jitless)return!1;if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{return new Function(""),!0}catch(e){return!1}});function tn(e){if(En(e)===!1)return!1;let t=e.constructor;if(t===void 0)return!0;if(typeof t!=="function")return!0;let n=t.prototype;if(En(n)===!1)return!1;if(Object.prototype.hasOwnProperty.call(n,"isPrototypeOf")===!1)return!1;return!0}function ta(e){if(tn(e))return{...e};if(Array.isArray(e))return[...e];if(e instanceof Map)return new Map(e);if(e instanceof Set)return new Set(e);return e}var rp=new Set(["string","number","symbol"]);function Dt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ut(e,t,n){let r=new e._zod.constr(t??e._zod.def);if(!t||n?.parent)r._zod.parent=e;return r}function x(e){let t=e;if(!t)return{};if(typeof t==="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw Error("Cannot specify both `message` and `error` params");t.error=t.message}if(delete t.message,typeof t.error==="string")return{...t,error:()=>t.error};return t}function na(e){if(typeof e==="bigint")return e.toString()+"n";if(typeof e==="string")return`"${e}"`;return`${e}`}function op(e){return Object.keys(e).filter((t)=>e[t]._zod.optin!==void 0&&e[t]._zod.optout==="optional")}var ao=(()=>({safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-340282346638528860000000000000000000000,340282346638528860000000000000000000000],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]}))(),ra={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function lT(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(".pick() cannot be used on object schemas containing refinements");let i={};return en(i,e,uo(e,t)),ut(e,Ne(n,{shape:i,checks:[]}))}function uo(e,t){let n=Et(e),r=[];for(let o of Reflect.ownKeys(t)){if(!Object.getOwnPropertyDescriptor(n,o)?.enumerable)throw Error(`Unrecognized key: "${String(o)}"`);if(t[o])r.push(o)}return r}function pT(e,t){let n=e._zod.def,r=n.checks;if(r&&r.length>0)throw Error(".omit() cannot be used on object schemas containing refinements");let i=new Set(uo(e,t)),s={};return en(s,e,Reflect.ownKeys(Et(e)).filter((a)=>!i.has(a))),ut(e,Ne(n,{shape:s,checks:[]}))}function mT(e,t){if(!tn(t))throw Error("Invalid input to extend: expected a plain object");let n=e._zod.def.checks;if(n&&n.length>0){let o=Et(e);for(let i of Reflect.ownKeys(t))if(Object.getOwnPropertyDescriptor(o,i)!==void 0)throw Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}return ut(e,Ne(e._zod.def,{shape:ip(e,t)}))}function ip(e,t){let n={};return en(n,e,Reflect.ownKeys(Et(e))),dT(n,t),n}function fT(e,t){if(!tn(t))throw Error("Invalid input to safeExtend: expected a plain object");return ut(e,Ne(e._zod.def,{shape:ip(e,t)}))}function gT(e,t){if(!t?._zod?.def)throw Error("Invalid input to merge: expected an object schema. To merge a plain shape, use `.extend()`.");if(e._zod.def.checks?.length)throw Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let n={};en(n,e,Reflect.ownKeys(Et(e))),en(n,t,Reflect.ownKeys(Et(t)));let r=Ne(e._zod.def,{shape:n,get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return ut(e,r)}function sp(e,t,n,r="partial"){let i=t._zod.def.checks;if(i&&i.length>0)throw Error(`.${r}() cannot be used on object schemas containing refinements`);let a=n?new Set(uo(t,n)):void 0,u={};return en(u,t,Reflect.ownKeys(Et(t)),e&&((c,d)=>a&&!a.has(d)?c:new e({type:"optional",innerType:c}))),ut(t,Ne(t._zod.def,{shape:u,checks:[]}))}function hT(e,t,n){let r=n?new Set(uo(t,n)):void 0,o={};return en(o,t,Reflect.ownKeys(Et(t)),(i,s)=>r&&!r.has(s)?i:new e({type:"nonoptional",innerType:i})),ut(t,Ne(t._zod.def,{shape:o}))}function ct(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue!==!0)return!0;return!1}function ap(e,t=0){if(e.aborted===!0)return!0;for(let n=t;n<e.issues.length;n++)if(e.issues[n]?.continue===!1)return!0;return!1}function Tt(e,t){return t.map((n)=>{var r;return(r=n).path??(r.path=[]),n.path.unshift(e),n})}function Vn(e){return typeof e==="string"?e:e?.message}function oa(e,t,n){var r;for(let o=t;o<e.length;o++)(r=e[o]).schema??(r.schema=n)}function dt(e,t,n){var r;let o=e.inst?._zod?.traits;if(o?.has("$ZodType"))if(o.has("$ZodCheck"))(r=e).schema??(r.schema=e.inst);else e.schema=e.inst;let i=e.schema!==e.inst?e.schema?._zod.def?.error:void 0,s=e.message?e.message:Vn(e.inst?._zod.def?.error?.(e))??Vn(i?.(e))??Vn(t?.error?.(e))??Vn(n.customError?.(e))??Vn(n.localeError?.(e))??"Invalid input",a={};for(let u of Object.keys(e)){if(u==="inst"||u==="schema"||u==="continue"||u==="input"||u==="__proto__")continue;a[u]=e[u]}if(a.path??(a.path=[]),a.message=s,t?.reportInput)a.input=e.input;return a}var yT=/[\uD800-\uDBFF]/;function co(e){let t=e.length;if(!yT.test(e))return t;let n=t;for(let r=0;r<t-1;r++)if((e.charCodeAt(r)&64512)===55296&&(e.charCodeAt(r+1)&64512)===56320)n--,r++;return n}function lo(e){if(Array.isArray(e))return"array";if(typeof e==="string")return"string";return"unknown"}function up(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let n=e;if(n&&Object.getPrototypeOf(n)!==Object.prototype&&"constructor"in n&&n.constructor)return n.constructor.name}}return t}function nn(...e){let[t,n,r]=e;if(typeof t==="string")return{message:t,code:"custom",input:n,inst:r};return{...t}}function cp(e,t){for(let n in t){let r=Object.getOwnPropertyDescriptor(t,n);if(r.get)Object.defineProperty(e,n,{...r,enumerable:!1});else Zl(e,n,r.value)}for(let n of Object.getOwnPropertySymbols(t))Zl(e,n,t[n])}function vt(e,t,n,r=!0){return Object.defineProperty(e,t,{configurable:!0,writable:!0,enumerable:r,value:n}),n}function ia(e,t,n){return vt(e,t,n,!1)}function dp(e,t){for(let n in e){let r=e[n];Object.defineProperty(t,n,{configurable:!0,enumerable:!0,get(){return vt(this,n,r(this))},set(o){vt(this,n,o)}})}return t}function Zl(e,t,n){Object.defineProperty(e,t,{configurable:!0,get(){return this==null?n:vt(this,t,n.bind(this))},set(r){vt(this,t,r)}})}function _T(e,t){let n=Object.getPrototypeOf(e);return t in n?void 0:n}var Ys,Nt=!1,wT={configurable:!0,get(){Nt=!0;return}};function F(e,t,n){let r=Object.getPrototypeOf(e._zod);if(t in r&&Ys!==e._zod){Ys=void 0;return}Ys=e._zod,Object.defineProperty(r,t,{configurable:!0,get(){Object.defineProperty(this,t,wT);let o=Nt;Nt=!1;try{let i=n(this);if(Nt)delete this[t];else Object.defineProperty(this,t,{configurable:!0,writable:!0,value:i});return Nt=Nt||o,i}catch(i){throw delete this[t],Nt=Nt||o,i}},set(o){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:o})}})}function bT(e,t,n,r){let o=_T(e,t);if(!o)return;Object.defineProperty(o,t,{configurable:!0,get(){let i={configurable:!0,writable:!0,enumerable:r,value:void 0};return Object.defineProperty(this,t,i),i.value=n(this),Object.defineProperty(this,t,i),i.value},set(i){Object.defineProperty(this,t,{configurable:!0,writable:!0,enumerable:r,value:i})}})}var kT="~constantCatch";function lp(e){let t=()=>e;return t[kT]=!0,t}var pp;var sa={value:void 0,enumerable:!1},mp="captureStackTrace"in Error?Error:null;function ET(e){let t=mp;if(t){let n=t.stackTraceLimit;if(typeof n==="number"){try{t.stackTraceLimit=0}catch{return mp=null,new e}try{return new e}finally{t.stackTraceLimit=n}}}return new e}function E(e,t,n,r){let o={};function i(l){this.def=l,this.constr=p,this.traits=new Set}i.prototype=o;let s=n,a=s&&new WeakSet;function u(l,m){if(!l._zod){sa.value=new i(m);try{Object.defineProperty(l,"_zod",sa)}finally{sa.value=void 0}}if(l._zod.traits.has(e))return;if(l._zod.traits.add(e),t(l,m),a){let h=Object.getPrototypeOf(l),f=l._zod.constr.prototype,y=h;while(y&&y!==f)y=Object.getPrototypeOf(y);let _=y??h;if(!a.has(_))a.add(_),cp(_,s)}let g=p.prototype;for(let h in g){if(!Object.prototype.hasOwnProperty.call(g,h))continue;if(!(h in l))l[h]=g[h].bind(l)}}let c=r?.Parent??Object;class d extends c{}Object.defineProperty(d,"name",{value:e});function p(l){let m=r?.Parent?ET(d):this;u(m,l);let g=m._zod.deferred;if(g){for(let f of g)f();m._zod.deferred=void 0}let h=globalThis.__zod_globalConfig?.postProcessor;if(h)h(m);return m}return Object.defineProperty(p,"init",{value:u}),Object.defineProperty(p,Symbol.hasInstance,{value:(l)=>{if(r?.Parent&&l instanceof r.Parent)return!0;return l?._zod?.traits?.has(e)}}),Object.defineProperty(p,"name",{value:e}),p}class lt extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}}class tr extends Error{constructor(e){super(`Encountered unidirectional transform during encode: ${e}`);this.name="ZodEncodeError"}}(pp=globalThis).__zod_globalConfig??(pp.__zod_globalConfig={});var Se=globalThis.__zod_globalConfig;function De(e){if(e)Object.assign(Se,e);return Se}function vT(){let e=this._zod;return e.message??(e.message=JSON.stringify(e.def,Yn,2)),e.message}function TT(e){this._zod.message=e}var RT={get:vT,set:TT,enumerable:!0,configurable:!0},ua={value:void 0,enumerable:!1},fp=new WeakSet([Object.prototype,Error.prototype]),gp=(e,t)=>{e.name="$ZodError",ua.value=t,Object.defineProperty(e,"issues",ua),ua.value=void 0,Object.defineProperty(e,"message",RT);let n=Object.getPrototypeOf(e);if(!fp.has(n))fp.add(n),Object.defineProperty(n,"toString",{configurable:!0,enumerable:!1,get(){let r=()=>this.message;return Object.defineProperty(this,"toString",{value:r,configurable:!0,writable:!0}),r},set(r){Object.defineProperty(this,"toString",{value:r,configurable:!0,writable:!0})}})},hp=E("$ZodError",gp),JN=E("$ZodError",gp,void 0,{Parent:Error});function ST(e,t,n){if(!Object.prototype.hasOwnProperty.call(e,t))if(t==="__proto__")Object.defineProperty(e,t,{value:n(),writable:!0,enumerable:!0,configurable:!0});else e[t]=n();return e[t]}function yp(e,t=(n)=>n.message){let n={},r=[];for(let o of e.issues)if(o.path.length>0)ST(n,o.path[0],()=>[]).push(t(o));else r.push(t(o));return{formErrors:r,fieldErrors:n}}function _p(e,t=(n)=>n.message){let n={_errors:[]},r=(o,i=[])=>{for(let s of o.issues)if(s.code==="invalid_union"&&s.errors.length)s.errors.map((a)=>r({issues:a},[...i,...s.path]));else if(s.code==="invalid_key")r({issues:s.issues},[...i,...s.path]);else if(s.code==="invalid_element")r({issues:s.issues},[...i,...s.path]);else{let a=[...i,...s.path];if(a.length===0)n._errors.push(t(s));else{let u=n,c=0;while(c<a.length){let d=a[c],p=c===a.length-1;if(d==="_errors"){if(p)u._errors.push(t(s));c++;continue}if(!Object.prototype.hasOwnProperty.call(u,d))Object.defineProperty(u,d,{value:{_errors:[]},enumerable:!0,writable:!0,configurable:!0});let l=u[d];if(p)l._errors.push(t(s));u=l,c++}}}};return r(e),n}function po(e,t){return{callee:t?.callee??e,Err:t?.Err}}var mo=(e)=>{let t=(n,r,o,i)=>{let s=o?{...o,async:!1}:{async:!1},a=n._zod.run({value:r,issues:[]},s);if(a instanceof Promise)throw new lt;if(a.issues.length){let u=new(i?.Err??e)(a.issues.map((c)=>dt(c,s,De())));throw ea(u,i?.callee??t),u}return a.value};return t};var fo=(e)=>{let t=async(n,r,o,i)=>{let s=o?{...o,async:!0}:{async:!0},a=n._zod.run({value:r,issues:[]},s);if(a instanceof Promise)a=await a;if(a.issues.length){let u=new(i?.Err??e)(a.issues.map((c)=>dt(c,s,De())));throw ea(u,i?.callee??t),u}return a.value};return t};var go=(e)=>(t,n,r)=>{let o=r?{...r,async:!1}:{async:!1},i=t._zod.run({value:n,issues:[]},o);if(i instanceof Promise)throw new lt;return i.issues.length?wp(e,i.issues,o):{success:!0,data:i.value}};function wp(e,t,n){let r;return{success:!1,get error(){if(!r)r=new e(t.map((o)=>dt(o,n,De()))),t=void 0,n=void 0;return r},set error(o){r=o,t=void 0,n=void 0}}}var ho=(e)=>async(t,n,r)=>{let o=r?{...r,async:!0}:{async:!0},i=t._zod.run({value:n,issues:[]},o);if(i instanceof Promise)i=await i;return i.issues.length?wp(e,i.issues,o):{success:!0,data:i.value}};var xT=Symbol.for("zod.compile.invalid"),AT=Symbol.for("zod.compile.fallback"),ca=(e,t,n)=>{let r=e._zod.bag.validator;if(r!==void 0){if(r(t)!==xT)return!0;if(r.definite===!0&&n===void 0)return!1}return OT(e,t,n)};function OT(e,t,n){let r=n?{...n,async:!1,abortEarly:!0}:{async:!1,abortEarly:!0},o=e._zod.bag.fallbackRun,i;if(o)r[AT]=!0,i=o({value:t,issues:[]},r);else i=e._zod.run({value:t,issues:[]},r);if(i instanceof Promise)throw new lt;return i.issues.length===0}var da=async(e,t,n)=>{let r=n?{...n,async:!0,abortEarly:!0}:{async:!0,abortEarly:!0},o=e._zod.run({value:t,issues:[]},r);if(o instanceof Promise)o=await o;return o.issues.length===0},bp=(e)=>{let t=mo(e),n=(r,o,i,s)=>{let a=i?{...i,direction:"backward"}:{direction:"backward"};return t(r,o,a,po(n,s))};return n};var kp=(e)=>{let t=mo(e),n=(r,o,i,s)=>t(r,o,i,po(n,s));return n};var Ep=(e)=>{let t=fo(e),n=async(r,o,i,s)=>{let a=i?{...i,direction:"backward"}:{direction:"backward"};return await t(r,o,a,po(n,s))};return n};var vp=(e)=>{let t=fo(e),n=async(r,o,i,s)=>await t(r,o,i,po(n,s));return n};var Tp=(e)=>(t,n,r)=>{let o=r?{...r,direction:"backward"}:{direction:"backward"};return go(e)(t,n,o)};var Rp=(e)=>(t,n,r)=>go(e)(t,n,r);var Sp=(e)=>async(t,n,r)=>{let o=r?{...r,direction:"backward"}:{direction:"backward"};return ho(e)(t,n,o)};var xp=(e)=>async(t,n,r)=>ho(e)(t,n,r);var Ap=/^[cC][0-9a-z]{6,}$/,Op=/^[0-9a-z]+$/,Cp=/^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/,Pp=/^[0-9a-vA-V]{20}$/,Ip=/^[A-Za-z0-9]{27}$/,Lp=/^[a-zA-Z0-9_-]{21}$/;function Np(e){return new RegExp(`^[a-zA-Z0-9_-]{${e}}$`)}var Dp=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var Up=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,pa=(e)=>{if(!e)return/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`)};var Mp=/^(?:[A-Za-z0-9_'+\-]+\.)*[A-Za-z0-9_'+\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var CT="^(?=[\\s\\S]*[\\p{Extended_Pictographic}\\p{Regional_Indicator}\\u20E3])[\\p{Extended_Pictographic}\\p{Emoji_Component}]+$";function $p(){return new RegExp(CT,"u")}var Fp=/^(?:(?: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])$/,Bp=/^(([0-9a-fA-F]{1,4}:){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}|:))$/;var zp=/^((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])\/([0-9]|[1-2][0-9]|3[0-2])$/,qp=/^(([0-9a-fA-F]{1,4}:){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}|:))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Hp=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Wp=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2,3})?$/;var jp=/^https?$/,Kp=/^\+[1-9]\d{6,14}$/;var Gp="(?:(?:\\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])))";function PT(e){return new RegExp(`^${e}$`)}var Zp=PT(Gp);function la(e){return typeof e.precision==="number"?e.precision===-1?"(?:[01]\\d|2[0-3]):[0-5]\\d":e.precision===0?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d":`(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d\\.\\d{${e.precision}}`:e.seconds?"(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?":"(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?"}function Xp(e){return new RegExp(`^${la(e)}$`)}function Vp(e){let t=["Z"];if(e.offset)t.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let n=`${la({precision:e.precision,seconds:!0})}(?:${t.join("|")})`,r=e.local?`${n}|${la({precision:e.precision})}`:n;return new RegExp(`^${Gp}T(?:${r})$`)}var Qp=/^[\s\S]{0,}$/;var ma=/^-?\d+$/,nr=/^-?\d+(?:\.\d+)?$/,Yp=/^(?:true|false)$/i;var Jp=/^[^A-Z]*$/,em=/^[^a-z]*$/;var pe=E("$ZodCheck",(e,t)=>{var n;e._zod??(e._zod={}),e._zod.def=t,(n=e._zod).onattach??(n.onattach=[])});var fa=(e)=>{let t=e.value;return!Vl(t)&&t.length!==void 0},yo={number:"number",bigint:"bigint",object:"date"},ga=E("$ZodCheckLessThan",(e,t)=>{pe.init(e,t);let n=yo[typeof t.value];e._zod.check=(r)=>{if(t.inclusive?r.value<=t.value:r.value<t.value)return;r.issues.push({origin:yo[typeof r.value]??n,code:"too_big",maximum:typeof t.value==="object"?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),ha=E("$ZodCheckGreaterThan",(e,t)=>{pe.init(e,t);let n=yo[typeof t.value];e._zod.check=(r)=>{if(t.inclusive?r.value>=t.value:r.value>t.value)return;r.issues.push({origin:yo[typeof r.value]??n,code:"too_small",minimum:typeof t.value==="object"?t.value.getTime():t.value,input:r.value,inclusive:t.inclusive,inst:e,continue:!t.abort})}}),tm=E("$ZodCheckMultipleOf",(e,t)=>{pe.init(e,t),e._zod.check=(n)=>{if(typeof n.value!==typeof t.value)throw Error("Cannot mix number and bigint in multiple_of check.");if(typeof n.value==="bigint"?t.value!==BigInt(0)&&n.value%t.value===BigInt(0):Ql(n.value,t.value)===0)return;n.issues.push({origin:typeof n.value,code:"not_multiple_of",divisor:t.value,input:n.value,inst:e,continue:!t.abort})}}),nm=E("$ZodCheckNumberFormat",(e,t)=>{pe.init(e,t),t.format=t.format||"float64";let n=t.format?.includes("int"),r=n?"int":"number",[o,i]=ao[t.format];e._zod.check=(s)=>{let a=s.value;if(n){if(!Number.isInteger(a)){s.issues.push({expected:r,format:t.format,code:"invalid_type",continue:!1,input:a,inst:e});return}if(!Number.isSafeInteger(a)){if(a>0)s.issues.push({input:a,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!t.abort});else s.issues.push({input:a,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:e,origin:r,inclusive:!0,continue:!t.abort});return}}if(a<o)s.issues.push({origin:"number",input:a,code:"too_small",minimum:o,inclusive:!0,inst:e,continue:!t.abort});if(a>i)s.issues.push({origin:"number",input:a,code:"too_big",maximum:i,inclusive:!0,inst:e,continue:!t.abort})}});var rm=E("$ZodCheckMaxLength",(e,t)=>{var n;pe.init(e,t),(n=e._zod.def).when??(n.when=fa),e._zod.check=(r)=>{let o=r.value,i=o.length;if((typeof o==="string"&&i>t.maximum?co(o):i)<=t.maximum)return;let a=lo(o);r.issues.push({origin:a,code:"too_big",maximum:t.maximum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),om=E("$ZodCheckMinLength",(e,t)=>{var n;pe.init(e,t),(n=e._zod.def).when??(n.when=fa),e._zod.check=(r)=>{let o=r.value,i=o.length;if((typeof o==="string"&&i>=t.minimum&&i<t.minimum*2?co(o):i)>=t.minimum)return;let a=lo(o);r.issues.push({origin:a,code:"too_small",minimum:t.minimum,inclusive:!0,input:o,inst:e,continue:!t.abort})}}),im=E("$ZodCheckLengthEquals",(e,t)=>{var n;pe.init(e,t),(n=e._zod.def).when??(n.when=fa),e._zod.check=(r)=>{let o=r.value,i=o.length,s=typeof o==="string"&&i>=t.length&&i<=t.length*2?co(o):i;if(s===t.length)return;let a=lo(o),u=s>t.length;r.issues.push({origin:a,...u?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:r.value,inst:e,continue:!t.abort})}}),or=E("$ZodCheckStringFormat",(e,t)=>{var n,r;if(pe.init(e,t),t.pattern)(n=e._zod).check??(n.check=(o)=>{if(t.pattern.lastIndex=0,t.pattern.test(o.value))return;o.issues.push({origin:"string",code:"invalid_format",format:t.format,input:o.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})});else(r=e._zod).check??(r.check=()=>{})}),sm=E("$ZodCheckRegex",(e,t)=>{or.init(e,t),e._zod.check=(n)=>{if(t.pattern.lastIndex=0,t.pattern.test(n.value))return;n.issues.push({origin:"string",code:"invalid_format",format:"regex",input:n.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),am=E("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=Jp),or.init(e,t)}),um=E("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=em),or.init(e,t)}),cm=E("$ZodCheckIncludes",(e,t)=>{pe.init(e,t);let n=Dt(t.includes),r=new RegExp(typeof t.position==="number"?`^.{${t.position},}${n}`:n);t.pattern=r,e._zod.check=(o)=>{if(o.value.includes(t.includes,t.position))return;o.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:o.value,inst:e,continue:!t.abort})}}),dm=E("$ZodCheckStartsWith",(e,t)=>{pe.init(e,t);let n=new RegExp(`^${Dt(t.prefix)}.*`);t.pattern??(t.pattern=n),e._zod.check=(r)=>{if(r.value.startsWith(t.prefix))return;r.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:r.value,inst:e,continue:!t.abort})}}),lm=E("$ZodCheckEndsWith",(e,t)=>{pe.init(e,t);let n=new RegExp(`.*${Dt(t.suffix)}$`);t.pattern??(t.pattern=n),e._zod.check=(r)=>{if(r.value.endsWith(t.suffix))return;r.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:r.value,inst:e,continue:!t.abort})}});var pm=E("$ZodCheckOverwrite",(e,t)=>{pe.init(e,t),e._zod.check=(n)=>{n.value=t.tx(n.value)}});class ya{constructor(e=[],t={}){this.content=[],this.indent=0,this.args=e,this.closed=t}indented(e){this.indent+=1;try{e(this)}finally{this.indent-=1}}write(e){if(typeof e==="function"){e(this,{execution:"sync"}),e(this,{execution:"async"});return}let n=e.split(`
|
|
8
8
|
`).filter((i)=>i),r=Math.min(...n.map((i)=>i.length-i.trimStart().length)),o=n.map((i)=>i.slice(r)).map((i)=>" ".repeat(this.indent*2)+i);for(let i of o)this.content.push(i)}compile(){let e=Function,t=this?.content??[""];return new e(...Object.keys(this.closed),`return function (${this.args.join(", ")}) {
|
|
9
9
|
${t.join(`
|
|
10
10
|
`)}
|
|
11
|
-
};`)(...Object.values(this.closed))}}var fm={major:4,minor:6,patch:1};var Q=v("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=fm;let r=e._zod.def.checks,o=e._zod.traits.has("$ZodCheck")?[e,...r??[]]:r?.length?[...r]:[];for(let i of o)for(let s of i._zod.onattach)s(e);if(o.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(a,c,u)=>{if(a.memo)return a;let d=ct(a),p;for(let l of c){if(l._zod.def.when){if(ap(a))continue;if(!l._zod.def.when(a))continue}else if(d)continue;let m=a.issues.length,g=l._zod.check(a);if(g instanceof Promise&&u?.async===!1)throw new lt;if(p||g instanceof Promise)p=(p??Promise.resolve()).then(async()=>{if(await g,a.issues.length===m)return;if(oa(a.issues,m,e),!d)d=ct(a,m)});else{if(a.issues.length===m)continue;if(oa(a.issues,m,e),!d)d=ct(a,m)}}if(p)return p.then(()=>a);return a},s=(a,c,u)=>{if(ct(a))return a.aborted=!0,a;let d=i(c,o,u);if(d instanceof Promise){if(u.async===!1)throw new lt;return d.then((p)=>e._zod.parse(p,u))}return e._zod.parse(d,u)};e._zod.run=(a,c)=>{if(c.skipChecks)return e._zod.parse(a,c);if(c.direction==="backward"){let d=e._zod.parse({value:a.value,issues:[]},{...c,skipChecks:!0});if(d instanceof Promise)return d.then((p)=>s(p,a,c));return s(d,a,c)}let u=e._zod.parse(a,c);if(u instanceof Promise){if(c.async===!1)throw new lt;return u.then((d)=>i(d,o,c))}return i(u,o,c)}}},{get "~standard"(){return ia(this,"~standard",wa(this))},set "~standard"(e){vt(this,"~standard",e)}}),Rm=(e,t)=>e.issues.length?{issues:e.issues.map((n)=>dt(n,t,Ne()))}:{value:e.value};async function IT(e,t){let n={async:!0};return Rm(await e._zod.run({value:t,issues:[]},n),n)}function wa(e){return{validate:(t)=>{let n={async:!1};try{let r=e._zod.run({value:t,issues:[]},n);if(!(r instanceof Promise))return Rm(r,n)}catch(r){}return IT(e,t)},vendor:"zod",version:1}}var wo=v("$ZodString",(e,t)=>{Q.init(e,t),e._zod.pattern=t.pattern??Qp,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch(o){}if(typeof n.value==="string")return n;return n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),Y=v("$ZodStringFormat",(e,t)=>{or.init(e,t),wo.init(e,t)}),Sm=v("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Up),Y.init(e,t)}),xm=v("$ZodUUID",(e,t)=>{if(t.version){let r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=pa(r))}else t.pattern??(t.pattern=pa());Y.init(e,t)}),Am=v("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Mp),Y.init(e,t)}),Cm=1,Om=2;function LT(e,t){if(!t.normalize&&t.protocol?.source===jp.source&&!/^https?:\/\//i.test(e))return Cm;try{return new URL(e)}catch{return Om}}var NT=/[\t\n\r]/g;function DT(e){return e.replace(NT,"")}function UT(e,t){return t.lastIndex=0,t.test(e.hostname)}function MT(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(":")?e.protocol.slice(0,-1):e.protocol)}var Pm=v("$ZodURL",(e,t)=>{Y.init(e,t),e._zod.check=(n)=>{try{let r=n.value.trim(),o=LT(r,t);if(o===Cm){n.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:n.value,inst:e,continue:!t.abort});return}if(o===Om){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort});return}if(t.hostname&&!UT(o,t.hostname))n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort});if(t.protocol&&!MT(o,t.protocol))n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort});n.value=t.normalize?o.href:DT(r);return}catch(r){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),Im=v("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=$p()),Y.init(e,t)}),Lm=v("$ZodNanoID",(e,t)=>{if(t.length!==void 0&&(!Number.isInteger(t.length)||t.length<1))throw Error(`Invalid nanoid length: ${t.length}`);t.pattern??(t.pattern=t.length===void 0?Lp:Np(t.length)),Y.init(e,t)}),Nm=v("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Ap),Y.init(e,t)}),Dm=v("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Cp),Y.init(e,t)}),Um=v("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Op),Y.init(e,t)}),Mm=v("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Pp),Y.init(e,t)}),$m=v("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Ip),Y.init(e,t)}),Fm=v("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Vp(t)),Y.init(e,t)}),Bm=v("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Zp),Y.init(e,t)}),zm=v("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Xp(t)),Y.init(e,t)}),qm=v("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Dp),Y.init(e,t)}),Hm=v("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Fp),Y.init(e,t)}),$T=/^[0-9a-fA-F:.]+$/;function Wm(e){if(!$T.test(e))return!1;try{return new URL(`http://[${e}]`),!0}catch{return!1}}var jm=v("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Bp),Y.init(e,t),e._zod.check=(n)=>{if(!Wm(n.value))n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}});var Km=v("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=zp),Y.init(e,t)});function FT(e){let t=e.split("/");if(t.length!==2)return!1;let[n,r]=t;if(!r)return!1;let o=Number(r);if(`${o}`!==r)return!1;if(o<0||o>128)return!1;return Wm(n)}var Gm=v("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=qp),Y.init(e,t),e._zod.check=(n)=>{if(!FT(n.value))n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}});function Zm(e){if(e==="")return!0;if(/\s/.test(e))return!1;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var ba=/^[0-9a-zA-Z+/]*={0,2}$/,Xm=v("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=ba),Y.init(e,t),e._zod.check=(n)=>{if(Zm(n.value))return;n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}}),bo=/^[A-Za-z0-9_-]*$/;function BT(e){if(!bo.test(e))return!1;let t=e.replace(/[-_]/g,(r)=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return Zm(n)}var Vm=v("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=bo),Y.init(e,t),e._zod.check=(n)=>{if(BT(n.value))return;n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Qm=v("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Kp),Y.init(e,t)});function zT(e,t=null){try{let n=e.split(".");if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let o=JSON.parse(atob(r));if("typ"in o&&o?.typ!=="JWT")return!1;if(!o.alg)return!1;if(t&&(!("alg"in o)||o.alg!==t))return!1;return!0}catch{return!1}}var Ym=v("$ZodJWT",(e,t)=>{Y.init(e,t),e._zod.check=(n)=>{if(zT(n.value,t.alg))return;n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}});var ka=v("$ZodNumber",(e,t)=>{Q.init(e,t),e._zod.pattern=nr,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch(s){}let o=n.value;if(typeof o==="number"&&!Number.isNaN(o)&&Number.isFinite(o))return n;let i=typeof o==="number"?Number.isNaN(o)?"NaN":!Number.isFinite(o)?String(o):void 0:void 0;return n.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),n}}),Jm=v("$ZodNumberFormat",(e,t)=>{nm.init(e,t),ka.init(e,t)}),ef=v("$ZodBoolean",(e,t)=>{Q.init(e,t),e._zod.pattern=Yp,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Boolean(n.value)}catch(i){}let o=n.value;if(typeof o==="boolean")return n;return n.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),n}});var tf=v("$ZodUnknown",(e,t)=>{Q.init(e,t),e._zod.parse=(n)=>n}),nf=v("$ZodNever",(e,t)=>{Q.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});function gm(e,t,n){if(e.issues.length)t.issues.push(...Tt(n,e.issues));t.value[n]=e.value}var rf=v("$ZodArray",(e,t)=>{Q.init(e,t);let n=Re.memoizer;n?.attach(e),e._zod.parse=(r,o)=>{let i=r.value;if(!Array.isArray(i))return r.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),r;r.value=n?n.alloc(e,r,Array(i.length),o):Array(i.length);let s=[],a=o?.abortEarly;for(let c=0;c<i.length;c++){let u=i[c],d=t.element._zod.run({value:u,issues:[]},o);if(d instanceof Promise)s.push(d.then((p)=>gm(p,r,c)));else if(gm(d,r,c),a&&d.issues.length!==0&&ct(d))break}if(s.length)return Promise.all(s).then(()=>r);return r}});function _o(e,t,n,r,o,i){let s=n in r,a=i==="optional";if(!s&&a&&o==="optional")return;if(e.issues.length){if(o!==void 0&&a&&!s)return;t.issues.push(...Tt(n,e.issues))}if(!s&&o===void 0){if(!e.issues.length)t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[n]});return}if(e.value===void 0){if(s)t.value[n]=void 0}else t.value[n]=e.value}var qT=[];function of(e){let t=Object.keys(e.shape),n=Object.getOwnPropertySymbols(e.shape),r=n.length?n:qT,o=r.length?[...t,...r]:t;for(let s of o)if(!e.shape?.[s]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${String(s)}": expected a Zod schema`);let i=op(e.shape);return{...e,allKeys:o,symbolKeys:r,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(i)}}function sf(e,t,n,r,o,i,s){let a=[],c=o.keySet,u=o.catchall._zod,d=u.def.type,{optin:p,optout:l}=u,m=0;for(let g in t){if(s&&n.issues.length!==m){if(ct(n,m))break;m=n.issues.length}if(c.has(g))continue;if(g==="__proto__"){if(d==="never")a.push(g);continue}if(d==="never"){a.push(g);continue}let h=u.run({value:t[g],issues:[]},r);if(h instanceof Promise)e.push(h.then((f)=>_o(f,n,g,t,p,l)));else _o(h,n,g,t,p,l)}if(a.length)n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:i,continue:!0});if(!e.length)return n;return Promise.all(e).then(()=>n)}var HT=v("$ZodObject",(e,t)=>{Q.init(e,t);let n=Object.getOwnPropertyDescriptor(t,"shape"),r=n?.get?n.get.raw:t.shape??{};if(r){let u=()=>{let d={...r};return Object.defineProperty(t,"shape",{value:d}),u.raw=d,d};u.raw=r,Object.defineProperty(t,"shape",{get:u})}let o=Jn(()=>of(t));F(e,"propValues",(u)=>{let d=u.def.shape,p={};for(let l in d){let m=d[l]._zod;if(m.values){if(!Object.prototype.hasOwnProperty.call(p,l))He(p,l,new Set);for(let g of m.values)p[l].add(g);if(m.optin!==void 0)p[l].add(void 0)}}return p});let i=En,s=t.catchall,a,c=Re.memoizer;c?.attach(e),e._zod.parse=(u,d)=>{a??(a=o.value);let p=u.value;if(!i(p))return u.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),u;u.value=c?c.alloc(e,u,{},d):{};let l=[],m=a.shape,g=d?.abortEarly,h=u.issues.length;for(let f of a.allKeys){if(g&&u.issues.length!==h){if(ct(u,h))break;h=u.issues.length}if(f==="__proto__")continue;let y=m[f],_=y._zod.optin,b=y._zod.optout,k=y._zod.run({value:p[f],issues:[]},d);if(k instanceof Promise)l.push(k.then((E)=>_o(E,u,f,p,_,b)));else _o(k,u,f,p,_,b)}if(!s)return l.length?Promise.all(l).then(()=>u):u;return sf(l,p,u,d,o.value,e,g===!0)}}),af=v("$ZodObjectJIT",(e,t)=>{HT.init(e,t);let n=e._zod.parse,r=Jn(()=>of(t)),o=Re.memoizer,i=(m)=>{let g=r.value,h=g.symbolKeys,f=new ya(["payload","ctx"],{shape:m,inst:e,memo:o,syms:h}),y=(E)=>`shape[${E}]._zod.run({ value: input[${E}], issues: [] }, ctx)`,_=(E,T)=>`
|
|
12
|
-
let ${
|
|
13
|
-
for (let i = 0; i < ${
|
|
14
|
-
const iss = ${
|
|
11
|
+
};`)(...Object.values(this.closed))}}var fm={major:4,minor:6,patch:1};var Y=E("$ZodType",(e,t)=>{var n;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=fm;let r=e._zod.def.checks,o=e._zod.traits.has("$ZodCheck")?[e,...r??[]]:r?.length?[...r]:[];for(let i of o)for(let s of i._zod.onattach)s(e);if(o.length===0)(n=e._zod).deferred??(n.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let i=(a,u,c)=>{if(a.memo)return a;let d=ct(a),p;for(let l of u){if(l._zod.def.when){if(ap(a))continue;if(!l._zod.def.when(a))continue}else if(d)continue;let m=a.issues.length,g=l._zod.check(a);if(g instanceof Promise&&c?.async===!1)throw new lt;if(p||g instanceof Promise)p=(p??Promise.resolve()).then(async()=>{if(await g,a.issues.length===m)return;if(oa(a.issues,m,e),!d)d=ct(a,m)});else{if(a.issues.length===m)continue;if(oa(a.issues,m,e),!d)d=ct(a,m)}}if(p)return p.then(()=>a);return a},s=(a,u,c)=>{if(ct(a))return a.aborted=!0,a;let d=i(u,o,c);if(d instanceof Promise){if(c.async===!1)throw new lt;return d.then((p)=>e._zod.parse(p,c))}return e._zod.parse(d,c)};e._zod.run=(a,u)=>{if(u.skipChecks)return e._zod.parse(a,u);if(u.direction==="backward"){let d=e._zod.parse({value:a.value,issues:[]},{...u,skipChecks:!0});if(d instanceof Promise)return d.then((p)=>s(p,a,u));return s(d,a,u)}let c=e._zod.parse(a,u);if(c instanceof Promise){if(u.async===!1)throw new lt;return c.then((d)=>i(d,o,u))}return i(c,o,u)}}},{get "~standard"(){return ia(this,"~standard",wa(this))},set "~standard"(e){vt(this,"~standard",e)}}),Rm=(e,t)=>e.issues.length?{issues:e.issues.map((n)=>dt(n,t,De()))}:{value:e.value};async function IT(e,t){let n={async:!0};return Rm(await e._zod.run({value:t,issues:[]},n),n)}function wa(e){return{validate:(t)=>{let n={async:!1};try{let r=e._zod.run({value:t,issues:[]},n);if(!(r instanceof Promise))return Rm(r,n)}catch(r){}return IT(e,t)},vendor:"zod",version:1}}var bo=E("$ZodString",(e,t)=>{Y.init(e,t),e._zod.pattern=t.pattern??Qp,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=String(n.value)}catch(o){}if(typeof n.value==="string")return n;return n.issues.push({expected:"string",code:"invalid_type",input:n.value,inst:e}),n}}),J=E("$ZodStringFormat",(e,t)=>{or.init(e,t),bo.init(e,t)}),Sm=E("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Up),J.init(e,t)}),xm=E("$ZodUUID",(e,t)=>{if(t.version){let r={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(r===void 0)throw Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=pa(r))}else t.pattern??(t.pattern=pa());J.init(e,t)}),Am=E("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Mp),J.init(e,t)}),Om=1,Cm=2;function LT(e,t){if(!t.normalize&&t.protocol?.source===jp.source&&!/^https?:\/\//i.test(e))return Om;try{return new URL(e)}catch{return Cm}}var NT=/[\t\n\r]/g;function DT(e){return e.replace(NT,"")}function UT(e,t){return t.lastIndex=0,t.test(e.hostname)}function MT(e,t){return t.lastIndex=0,t.test(e.protocol.endsWith(":")?e.protocol.slice(0,-1):e.protocol)}var Pm=E("$ZodURL",(e,t)=>{J.init(e,t),e._zod.check=(n)=>{try{let r=n.value.trim(),o=LT(r,t);if(o===Om){n.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:n.value,inst:e,continue:!t.abort});return}if(o===Cm){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort});return}if(t.hostname&&!UT(o,t.hostname))n.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:n.value,inst:e,continue:!t.abort});if(t.protocol&&!MT(o,t.protocol))n.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:n.value,inst:e,continue:!t.abort});n.value=t.normalize?o.href:DT(r);return}catch(r){n.issues.push({code:"invalid_format",format:"url",input:n.value,inst:e,continue:!t.abort})}}}),Im=E("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=$p()),J.init(e,t)}),Lm=E("$ZodNanoID",(e,t)=>{if(t.length!==void 0&&(!Number.isInteger(t.length)||t.length<1))throw Error(`Invalid nanoid length: ${t.length}`);t.pattern??(t.pattern=t.length===void 0?Lp:Np(t.length)),J.init(e,t)}),Nm=E("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=Ap),J.init(e,t)}),Dm=E("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Op),J.init(e,t)}),Um=E("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Cp),J.init(e,t)}),Mm=E("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Pp),J.init(e,t)}),$m=E("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Ip),J.init(e,t)}),Fm=E("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=Vp(t)),J.init(e,t)}),Bm=E("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Zp),J.init(e,t)}),zm=E("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=Xp(t)),J.init(e,t)}),qm=E("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=Dp),J.init(e,t)}),Hm=E("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Fp),J.init(e,t)}),$T=/^[0-9a-fA-F:.]+$/;function Wm(e){if(!$T.test(e))return!1;try{return new URL(`http://[${e}]`),!0}catch{return!1}}var jm=E("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Bp),J.init(e,t),e._zod.check=(n)=>{if(!Wm(n.value))n.issues.push({code:"invalid_format",format:"ipv6",input:n.value,inst:e,continue:!t.abort})}});var Km=E("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=zp),J.init(e,t)});function FT(e){let t=e.split("/");if(t.length!==2)return!1;let[n,r]=t;if(!r)return!1;let o=Number(r);if(`${o}`!==r)return!1;if(o<0||o>128)return!1;return Wm(n)}var Gm=E("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=qp),J.init(e,t),e._zod.check=(n)=>{if(!FT(n.value))n.issues.push({code:"invalid_format",format:"cidrv6",input:n.value,inst:e,continue:!t.abort})}});function Zm(e){if(e==="")return!0;if(/\s/.test(e))return!1;if(e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var ba=/^[0-9a-zA-Z+/]*={0,2}$/,Xm=E("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=ba),J.init(e,t),e._zod.check=(n)=>{if(Zm(n.value))return;n.issues.push({code:"invalid_format",format:"base64",input:n.value,inst:e,continue:!t.abort})}}),ko=/^[A-Za-z0-9_-]*$/;function BT(e){if(!ko.test(e))return!1;let t=e.replace(/[-_]/g,(r)=>r==="-"?"+":"/"),n=t.padEnd(Math.ceil(t.length/4)*4,"=");return Zm(n)}var Vm=E("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=ko),J.init(e,t),e._zod.check=(n)=>{if(BT(n.value))return;n.issues.push({code:"invalid_format",format:"base64url",input:n.value,inst:e,continue:!t.abort})}}),Qm=E("$ZodE164",(e,t)=>{t.pattern??(t.pattern=Kp),J.init(e,t)});function zT(e,t=null){try{let n=e.split(".");if(n.length!==3)return!1;let[r]=n;if(!r)return!1;let o=JSON.parse(atob(r));if("typ"in o&&o?.typ!=="JWT")return!1;if(!o.alg)return!1;if(t&&(!("alg"in o)||o.alg!==t))return!1;return!0}catch{return!1}}var Ym=E("$ZodJWT",(e,t)=>{J.init(e,t),e._zod.check=(n)=>{if(zT(n.value,t.alg))return;n.issues.push({code:"invalid_format",format:"jwt",input:n.value,inst:e,continue:!t.abort})}});var ka=E("$ZodNumber",(e,t)=>{Y.init(e,t),e._zod.pattern=nr,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Number(n.value)}catch(s){}let o=n.value;if(typeof o==="number"&&!Number.isNaN(o)&&Number.isFinite(o))return n;let i=typeof o==="number"?Number.isNaN(o)?"NaN":!Number.isFinite(o)?String(o):void 0:void 0;return n.issues.push({expected:"number",code:"invalid_type",input:o,inst:e,...i?{received:i}:{}}),n}}),Jm=E("$ZodNumberFormat",(e,t)=>{nm.init(e,t),ka.init(e,t)}),ef=E("$ZodBoolean",(e,t)=>{Y.init(e,t),e._zod.pattern=Yp,e._zod.parse=(n,r)=>{if(t.coerce)try{n.value=Boolean(n.value)}catch(i){}let o=n.value;if(typeof o==="boolean")return n;return n.issues.push({expected:"boolean",code:"invalid_type",input:o,inst:e}),n}});var tf=E("$ZodUnknown",(e,t)=>{Y.init(e,t),e._zod.parse=(n)=>n}),nf=E("$ZodNever",(e,t)=>{Y.init(e,t),e._zod.parse=(n,r)=>(n.issues.push({expected:"never",code:"invalid_type",input:n.value,inst:e}),n)});function gm(e,t,n){if(e.issues.length)t.issues.push(...Tt(n,e.issues));t.value[n]=e.value}var rf=E("$ZodArray",(e,t)=>{Y.init(e,t);let n=Se.memoizer;n?.attach(e),e._zod.parse=(r,o)=>{let i=r.value;if(!Array.isArray(i))return r.issues.push({expected:"array",code:"invalid_type",input:i,inst:e}),r;r.value=n?n.alloc(e,r,Array(i.length),o):Array(i.length);let s=[],a=o?.abortEarly;for(let u=0;u<i.length;u++){let c=i[u],d=t.element._zod.run({value:c,issues:[]},o);if(d instanceof Promise)s.push(d.then((p)=>gm(p,r,u)));else if(gm(d,r,u),a&&d.issues.length!==0&&ct(d))break}if(s.length)return Promise.all(s).then(()=>r);return r}});function wo(e,t,n,r,o,i){let s=n in r,a=i==="optional";if(!s&&a&&o==="optional")return;if(e.issues.length){if(o!==void 0&&a&&!s)return;t.issues.push(...Tt(n,e.issues))}if(!s&&o===void 0){if(!e.issues.length)t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[n]});return}if(e.value===void 0){if(s)t.value[n]=void 0}else t.value[n]=e.value}var qT=[];function of(e){let t=Object.keys(e.shape),n=Object.getOwnPropertySymbols(e.shape),r=n.length?n:qT,o=r.length?[...t,...r]:t;for(let s of o)if(!e.shape?.[s]?._zod?.traits?.has("$ZodType"))throw Error(`Invalid element at key "${String(s)}": expected a Zod schema`);let i=op(e.shape);return{...e,allKeys:o,symbolKeys:r,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(i)}}function sf(e,t,n,r,o,i,s){let a=[],u=o.keySet,c=o.catchall._zod,d=c.def.type,{optin:p,optout:l}=c,m=0;for(let g in t){if(s&&n.issues.length!==m){if(ct(n,m))break;m=n.issues.length}if(u.has(g))continue;if(g==="__proto__"){if(d==="never")a.push(g);continue}if(d==="never"){a.push(g);continue}let h=c.run({value:t[g],issues:[]},r);if(h instanceof Promise)e.push(h.then((f)=>wo(f,n,g,t,p,l)));else wo(h,n,g,t,p,l)}if(a.length)n.issues.push({code:"unrecognized_keys",keys:a,input:t,inst:i,continue:!0});if(!e.length)return n;return Promise.all(e).then(()=>n)}var HT=E("$ZodObject",(e,t)=>{Y.init(e,t);let n=Object.getOwnPropertyDescriptor(t,"shape"),r=n?.get?n.get.raw:t.shape??{};if(r){let c=()=>{let d={...r};return Object.defineProperty(t,"shape",{value:d}),c.raw=d,d};c.raw=r,Object.defineProperty(t,"shape",{get:c})}let o=Jn(()=>of(t));F(e,"propValues",(c)=>{let d=c.def.shape,p={};for(let l in d){let m=d[l]._zod;if(m.values){if(!Object.prototype.hasOwnProperty.call(p,l))je(p,l,new Set);for(let g of m.values)p[l].add(g);if(m.optin!==void 0)p[l].add(void 0)}}return p});let i=En,s=t.catchall,a,u=Se.memoizer;u?.attach(e),e._zod.parse=(c,d)=>{a??(a=o.value);let p=c.value;if(!i(p))return c.issues.push({expected:"object",code:"invalid_type",input:p,inst:e}),c;c.value=u?u.alloc(e,c,{},d):{};let l=[],m=a.shape,g=d?.abortEarly,h=c.issues.length;for(let f of a.allKeys){if(g&&c.issues.length!==h){if(ct(c,h))break;h=c.issues.length}if(f==="__proto__")continue;let y=m[f],_=y._zod.optin,w=y._zod.optout,v=y._zod.run({value:p[f],issues:[]},d);if(v instanceof Promise)l.push(v.then((k)=>wo(k,c,f,p,_,w)));else wo(v,c,f,p,_,w)}if(!s)return l.length?Promise.all(l).then(()=>c):c;return sf(l,p,c,d,o.value,e,g===!0)}}),af=E("$ZodObjectJIT",(e,t)=>{HT.init(e,t);let n=e._zod.parse,r=Jn(()=>of(t)),o=Se.memoizer,i=(m)=>{let g=r.value,h=g.symbolKeys,f=new ya(["payload","ctx"],{shape:m,inst:e,memo:o,syms:h}),y=(k)=>`shape[${k}]._zod.run({ value: input[${k}], issues: [] }, ctx)`,_=(k,T)=>`
|
|
12
|
+
let ${k}_ab = false;
|
|
13
|
+
for (let i = 0; i < ${k}.issues.length; i++) {
|
|
14
|
+
const iss = ${k}.issues[i];
|
|
15
15
|
iss.path = iss.path ? [${T}, ...iss.path] : [${T}];
|
|
16
16
|
payload.issues.push(iss);
|
|
17
|
-
if (iss.continue !== true) ${
|
|
17
|
+
if (iss.continue !== true) ${k}_ab = true;
|
|
18
18
|
}
|
|
19
|
-
if (${
|
|
19
|
+
if (${k}_ab && ctx && ctx.abortEarly) {
|
|
20
20
|
payload.value = newResult;
|
|
21
21
|
return payload;
|
|
22
|
-
}`;f.write("const input = payload.value;");let
|
|
23
|
-
const ${T}_present = ${
|
|
22
|
+
}`;f.write("const input = payload.value;");let w=Object.create(null),v=0;for(let k of g.allKeys)w[k]=`key_${v++}`;f.write(o?"const newResult = memo.alloc(inst, payload, {}, ctx);":"const newResult = {};");for(let k of g.allKeys){if(k==="__proto__")continue;let T=w[k],C=typeof k==="symbol"?`syms[${h.indexOf(k)}]`:ep(k),V=`${C} in input`,Re=m[k],W=Re?._zod?.optin,We=W!==void 0,Lt=Re?._zod?.optout==="optional";if(f.write(`const ${T} = ${y(C)};`),We&&Lt){let Vs=W==="optional"?`${T}_present`:`${T}.value !== undefined || ${T}_present`;f.write(`
|
|
23
|
+
const ${T}_present = ${V};
|
|
24
24
|
if (!${T}.issues.length || ${T}_present) {
|
|
25
|
-
if (${T}.issues.length) {${_(T,
|
|
25
|
+
if (${T}.issues.length) {${_(T,C)}
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
if (${Vs}) {
|
|
29
|
-
newResult[${
|
|
29
|
+
newResult[${C}] = ${T}.value;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
`)}else if(!
|
|
34
|
-
const ${T}_present = ${
|
|
35
|
-
if (${T}.issues.length) {${_(T,
|
|
33
|
+
`)}else if(!We)f.write(`
|
|
34
|
+
const ${T}_present = ${V};
|
|
35
|
+
if (${T}.issues.length) {${_(T,C)}
|
|
36
36
|
}
|
|
37
37
|
if (!${T}_present && !${T}.issues.length) {
|
|
38
38
|
payload.issues.push({
|
|
39
39
|
code: "invalid_type",
|
|
40
40
|
expected: "nonoptional",
|
|
41
41
|
input: undefined,
|
|
42
|
-
path: [${
|
|
42
|
+
path: [${C}]
|
|
43
43
|
});
|
|
44
44
|
if (ctx && ctx.abortEarly) {
|
|
45
45
|
payload.value = newResult;
|
|
@@ -48,24 +48,24 @@ ${t.join(`
|
|
|
48
48
|
}
|
|
49
49
|
|
|
50
50
|
if (${T}_present) {
|
|
51
|
-
newResult[${
|
|
51
|
+
newResult[${C}] = ${T}.value;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
`);else f.write(`
|
|
55
|
-
if (${T}.issues.length) {${_(T,
|
|
55
|
+
if (${T}.issues.length) {${_(T,C)}
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
if (${T}.value === undefined) {
|
|
59
|
-
if (${
|
|
60
|
-
newResult[${
|
|
59
|
+
if (${V}) {
|
|
60
|
+
newResult[${C}] = undefined;
|
|
61
61
|
}
|
|
62
62
|
} else {
|
|
63
|
-
newResult[${
|
|
63
|
+
newResult[${C}] = ${T}.value;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
`)}return f.write("payload.value = newResult;"),f.write("return payload;"),f.compile()},s,a=En,c=!Re.jitless,d=c&&np.value,p=t.catchall,l;e._zod.parse=(m,g)=>{l??(l=r.value);let h=m.value;if(!a(h))return m.issues.push({expected:"object",code:"invalid_type",input:h,inst:e}),m;if(c&&d&&g?.async===!1&&g.jitless!==!0){if(!s)s=i(t.shape);if(m=s(m,g),!p)return m;return sf([],h,m,g,l,e,g?.abortEarly===!0)}return n(m,g)}});function hm(e,t,n,r){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;let o=e.filter((i)=>!ct(i));if(o.length===1)return t.value=o[0].value,o[0];return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map((i)=>i.issues.map((s)=>dt(s,r,Ne())))}),t}var Ea=v("$ZodUnion",(e,t)=>{Q.init(e,t),F(e,"optin",(r)=>r.def.options.some((o)=>o._zod.optin==="defaulted")?"defaulted":r.def.options.some((o)=>o._zod.optin!==void 0)?"optional":void 0),F(e,"optout",(r)=>r.def.options.some((o)=>o._zod.optout==="optional")?"optional":void 0),F(e,"values",(r)=>{if(r.def.options.every((o)=>o._zod.values))return new Set(r.def.options.flatMap((o)=>Array.from(o._zod.values)));return}),F(e,"pattern",(r)=>{if(r.def.options.every((o)=>o._zod.pattern)){let o=r.def.options.map((i)=>i._zod.pattern);return new RegExp(`^(${o.map((i)=>io(i.source)).join("|")})$`)}return});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,o)=>{if(n)return n(r,o);let i=!1,s=[];for(let a of t.options){let c=a._zod.run({value:r.value,issues:[]},o);if(c instanceof Promise)s.push(c),i=!0;else{if(c.issues.length===0)return c;s.push(c)}}if(!i)return hm(s,r,e,o);return Promise.all(s).then((a)=>hm(a,r,e,o))}});function WT(e){let t=new Map;for(let n of e.options){let r=n._zod.propValues?.[e.discriminator];if(!r||r.size===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(n)}"`);for(let o of r)if(t.has(o)){if(o!==void 0)throw Error(`Duplicate discriminator value "${String(o)}"`);t.set(o,null)}else t.set(o,n)}return t}var uf=v("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Ea.init(e,t);let n=e._zod.parse;F(e,"propValues",(o)=>{let i={},s=0;for(let a of o.def.options){let c=a._zod.propValues;if(!c||Object.keys(c).length===0)throw Error(`Invalid discriminated union option at index "${o.def.options.indexOf(a)}"`);if(c[o.def.discriminator]?.has(void 0))s++;for(let[u,d]of Object.entries(c)){if(!Object.prototype.hasOwnProperty.call(i,u))He(i,u,new Set);for(let p of d)i[u].add(p)}}if(!o.def.unionFallback&&s>1)i[o.def.discriminator]?.delete(void 0);return i}),t.options.forEach((o,i)=>{let s=er(o._zod.def);if(s&&!Object.prototype.hasOwnProperty.call(s,t.discriminator))throw Error(`Invalid discriminated union option at index "${i}"`)});let r=Jn(()=>WT(t));e._zod.parse=(o,i)=>{let s=o.value;if(!En(s))return o.issues.push({code:"invalid_type",expected:"object",input:s,inst:e}),o;let a=s?.[t.discriminator],c=r.value.get(a);if(c&&(a!==void 0||i.direction!=="backward"))return c._zod.run(o,i);if(t.unionFallback||i.direction==="backward")return n(o,i);return o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,options:Array.from(r.value.keys()).filter((u)=>r.value.get(u)!==null),input:s,path:[t.discriminator],inst:e}),o}}),cf=v("$ZodIntersection",(e,t)=>{Q.init(e,t),e._zod.parse=(n,r)=>{let o=n.value,i=t.left._zod.run({value:o,issues:[]},r),s=t.right._zod.run({value:o,issues:[]},r);if(i instanceof Promise||s instanceof Promise)return Promise.all([i,s]).then(([c,u])=>ym(n,c,u));return ym(n,i,s)}});function _a(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e===+t)return{valid:!0,data:e};if(tn(e)&&tn(t)){let n=Object.keys(t),r=Object.keys(e).filter((i)=>n.indexOf(i)!==-1),o={...e,...t};if(Object.prototype.hasOwnProperty.call(o,"__proto__"))delete o.__proto__;for(let i of r){if(i==="__proto__")continue;let s=_a(e[i],t[i]);if(!s.valid)return{valid:!1,mergeErrorPath:[i,...s.mergeErrorPath]};o[i]=s.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let o=e[r],i=t[r],s=_a(o,i);if(!s.valid)return{valid:!1,mergeErrorPath:[r,...s.mergeErrorPath]};n.push(s.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function ym(e,t,n){let r=new Map,o,i=new Map,s=(u,d)=>{let p;if(u.code==="unrecognized_keys"&&!u.path?.length)o??(o=u),p=u.keys;else if(u.code==="invalid_key"&&u.origin==="record"&&u.path?.length===1){let l=String(u.path[0]);if(!i.has(l))i.set(l,u);p=[l]}else return!1;for(let l of p){if(!r.has(l))r.set(l,{});r.get(l)[d]=!0}return!0};for(let u of t.issues)if(!s(u,"l"))e.issues.push(u);for(let u of n.issues)if(!s(u,"r"))e.issues.push(u);let a=[...r].filter(([,u])=>u.l&&u.r).map(([u])=>u);if(a.length){let u=o?a.filter((d)=>o.keys.includes(d)):[];if(u.length)e.issues.push({...o,keys:u});for(let d of a)if(!u.includes(d)&&i.has(d))e.issues.push(i.get(d))}let c=_a(t.value,n.value);if(!c.valid){if(ct(e))return e;throw Error(`Unmergable intersection. Error path: ${JSON.stringify(c.mergeErrorPath)}`)}return e.value=c.data,e}var df=v("$ZodRecord",(e,t)=>{Q.init(e,t);let n=Re.memoizer;n?.attach(e),e._zod.parse=(r,o)=>{let i=r.value;if(!tn(i))return r.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),r;let s=[],a=t.keyType._zod.values;if(a&&!t.partial){r.value=n?n.alloc(e,r,{},o):{};let c=new Set;for(let d of a)if(typeof d==="string"||typeof d==="number"||typeof d==="symbol"){if(c.add(typeof d==="number"?d.toString():d),d==="__proto__")continue;let p=t.keyType._zod.run({value:d,issues:[]},o);if(p instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(p.issues.length){r.issues.push({code:"invalid_key",origin:"record",issues:p.issues.map((g)=>dt(g,o,Ne())),input:d,path:[d],inst:e});continue}let l=p.value;if(l==="__proto__")continue;let m=t.valueType._zod.run({value:i[d],issues:[]},o);if(m instanceof Promise)s.push(m.then((g)=>{if(g.issues.length)r.issues.push(...Tt(d,g.issues));r.value[l]=g.value}));else{if(m.issues.length)r.issues.push(...Tt(d,m.issues));r.value[l]=m.value}}let u;for(let d in i)if(!c.has(d))if(t.mode==="loose"){if(d==="__proto__")continue;r.value[d]=i[d]}else u=u??[],u.push(d);if(u&&u.length>0)r.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:u,continue:!0})}else{r.value=n?n.alloc(e,r,{},o):{};let c;for(let u of Reflect.ownKeys(i)){if(u==="__proto__")continue;if(!Object.prototype.propertyIsEnumerable.call(i,u))continue;let d=t.keyType._zod.run({value:u,issues:[]},o);if(d instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(typeof u==="string"&&nr.test(u)&&d.issues.length){let g=t.keyType._zod.run({value:Number(u),issues:[]},o);if(g instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(g.issues.length===0)d=g}if(d.issues.length){if(t.mode==="loose")r.value[u]=i[u];else if(a)c=c??[],c.push(u);else r.issues.push({code:"invalid_key",origin:"record",issues:d.issues.map((g)=>dt(g,o,Ne())),input:u,path:[u],inst:e});continue}let l=d.value;if(l==="__proto__")continue;let m=t.valueType._zod.run({value:i[u],issues:[]},o);if(m instanceof Promise)s.push(m.then((g)=>{if(g.issues.length)r.issues.push(...Tt(u,g.issues));r.value[l]=g.value}));else{if(m.issues.length)r.issues.push(...Tt(u,m.issues));r.value[l]=m.value}}if(c&&c.length>0)r.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:c,continue:!0})}if(s.length)return Promise.all(s).then(()=>r);return r}});var lf=v("$ZodEnum",(e,t)=>{Q.init(e,t);let n=Qn(t.entries),r=new Set(n);e._zod.values=r,F(e,"pattern",(o)=>{let i=Qn(o.def.entries).filter((s)=>rp.has(typeof s));return new RegExp(i.length?`^(${i.map((s)=>Dt(s.toString())).join("|")})$`:"^[^\\s\\S]$")}),e._zod.parse=(o,i)=>{let s=o.value;if(r.has(s))return o;return o.issues.push({code:"invalid_value",values:n,input:s,inst:e}),o}}),pf=v("$ZodLiteral",(e,t)=>{Q.init(e,t);let n=new Set(t.values);e._zod.values=n,F(e,"pattern",(r)=>{let o=r.def.values;return new RegExp(o.length?`^(${o.map((i)=>typeof i==="string"?Dt(i):i?Dt(i.toString()):String(i)).join("|")})$`:"^[^\\s\\S]$")}),e._zod.parse=(r,o)=>{let i=r.value;if(n.has(i))return r;return r.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),r}});var mf=v("$ZodTransform",(e,t)=>{Q.init(e,t),e._zod.optin="optional",Re.memoizer?.guard(e),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new tr(e.constructor.name);let o=t.transform(n.value,n);if(r.async)return(o instanceof Promise?o:Promise.resolve(o)).then((s)=>(n.value=s,n));if(o instanceof Promise)throw new lt;return n.value=o,n}});function _m(e,t){return e.value=t.issues.length?void 0:t.value,e}var va=v("$ZodOptional",(e,t)=>{Q.init(e,t),F(e,"optin",(n)=>n.def.innerType._zod.optin==="defaulted"?"defaulted":"optional"),e._zod.optout="optional",F(e,"values",(n)=>{let r=n.def.innerType._zod.values;return r?new Set([...r,void 0]):void 0}),F(e,"pattern",(n)=>{let r=n.def.innerType._zod.pattern;return r?new RegExp(`^(${io(r.source)})?$`):void 0}),e._zod.parse=(n,r)=>{if(n.value===void 0){if(t.innerType._zod.optin!=="defaulted")return n;let o=t.innerType._zod.run({value:n.value,issues:[]},r);if(o instanceof Promise)return o.then((i)=>_m(n,i));return _m(n,o)}return t.innerType._zod.run(n,r)}}),ff=v("$ZodExactOptional",(e,t)=>{va.init(e,t),F(e,"values",(n)=>n.def.innerType._zod.values),F(e,"pattern",(n)=>n.def.innerType._zod.pattern),e._zod.parse=(n,r)=>t.innerType._zod.run(n,r)}),gf=v("$ZodNullable",(e,t)=>{Q.init(e,t),F(e,"optin",(n)=>n.def.innerType._zod.optin),F(e,"optout",(n)=>n.def.innerType._zod.optout),F(e,"pattern",(n)=>{let r=n.def.innerType._zod.pattern;return r?new RegExp(`^(${io(r.source)}|null)$`):void 0}),F(e,"values",(n)=>n.def.innerType._zod.values?new Set([...n.def.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>{if(n.value===null)return n;return t.innerType._zod.run(n,r)}}),hf=v("$ZodDefault",(e,t)=>{Q.init(e,t),e._zod.optin="defaulted",F(e,"values",(n)=>n.def.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)return n.value=t.defaultValue,n;let o=t.innerType._zod.run(n,r);if(o instanceof Promise)return o.then((i)=>wm(i,t));return wm(o,t)}});function wm(e,t){if(e.value===void 0)e.value=t.defaultValue;return e}var yf=v("$ZodPrefault",(e,t)=>{Q.init(e,t),e._zod.optin="defaulted",F(e,"values",(n)=>n.def.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)n.value=t.defaultValue;return t.innerType._zod.run(n,r)}}),_f=v("$ZodNonOptional",(e,t)=>{Q.init(e,t),F(e,"values",(n)=>{let r=n.def.innerType._zod.values;return r?new Set([...r].filter((o)=>o!==void 0)):void 0}),e._zod.parse=(n,r)=>{let o=t.innerType._zod.run(n,r);if(o instanceof Promise)return o.then((i)=>bm(i,e));return bm(o,e)}});function bm(e,t){if(!e.issues.length&&e.value===void 0)e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t});return e}function km(e,t,n,r){if(!t.issues.length){if(e.value=t.value,t.memo)e.memo=!0;return e}return e.value=n.catchValue({...t,value:e.value,error:{issues:t.issues.map((o)=>dt(o,r,Ne()))},input:e.value}),e}var wf=v("$ZodCatch",(e,t)=>{Q.init(e,t),F(e,"optin",(n)=>n.def.innerType._zod.optin==="defaulted"?"defaulted":"optional"),F(e,"optout",(n)=>n.def.innerType._zod.optout),F(e,"values",(n)=>n.def.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);let o=t.innerType._zod.run({value:n.value,issues:[]},r);if(o instanceof Promise)return o.then((i)=>km(n,i,t,r));return km(n,o,t,r)}});var bf=v("$ZodPipe",(e,t)=>{Q.init(e,t),F(e,"values",(n)=>n.def.in._zod.values),F(e,"optin",(n)=>n.def.in._zod.optin),F(e,"optout",(n)=>n.def.out._zod.optout),F(e,"propValues",(n)=>n.def.in._zod.propValues),e._zod.parse=(n,r)=>{if(r.direction==="backward"){let i=t.out._zod.run(n,r);if(i instanceof Promise)return i.then((s)=>yo(s,t.in,r));return yo(i,t.in,r)}let o=t.in._zod.run(n,r);if(o instanceof Promise)return o.then((i)=>yo(i,t.out,r));return yo(o,t.out,r)}});function yo(e,t,n){if(e.issues.some((r)=>r.code!=="unrecognized_keys"))return e.aborted=!0,e;return t._zod.run({value:e.value,issues:e.issues},n)}var kf=v("$ZodReadonly",(e,t)=>{Q.init(e,t),F(e,"propValues",(n)=>n.def.innerType._zod.propValues),F(e,"values",(n)=>n.def.innerType._zod.values),F(e,"optin",(n)=>n.def.innerType?._zod?.optin),F(e,"optout",(n)=>n.def.innerType?._zod?.optout),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);let o=t.innerType._zod.run(n,r);if(o instanceof Promise)return o.then(Em);return Em(o)}});function Em(e){if(!e.memo)e.value=Object.freeze(e.value);return e}var Ef=v("$ZodCustom",(e,t)=>{pe.init(e,t),Q.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=(n)=>{let r=n.value,o=t.fn(r);if(o instanceof Promise)return o.then((i)=>vm(i,n,r,e));vm(o,n,r,e);return}});function vm(e,t,n,r){if(!e){let o={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};if(r._zod.def.params)o.params=r._zod.def.params;t.issues.push(nn(o))}}function Tm(e,t,n){if(e.issues.length)t.issues.push(...Tt(n,e.issues))}var jT=v("$ZodProperties",(e,t)=>{Q.init(e,t),pe.init(e,t);let n=Re.memoizer;n?.attach(e);let r,o=(i,s)=>{r??(r=Reflect.ownKeys(t.shape).map((u)=>[u,t.shape[u]]));let a=i.value,c;for(let[u,d]of r){let p=d._zod.run({value:a[u],issues:[]},s);if(p instanceof Promise)c??(c=[]),c.push(p.then((l)=>Tm(l,i,u)));else Tm(p,i,u)}if(c)return Promise.all(c).then(()=>{return});return};e._zod.parse=(i,s)=>{let a=i.value;if(a===null||typeof a!=="object"&&typeof a!=="function")return i.issues.push({expected:"object",code:"invalid_type",input:a,inst:e}),i;if(s.direction==="backward")s={...s,direction:"forward"};if(n)n.alloc(e,i,a,s);let c=o(i,s);return c instanceof Promise?c.then(()=>i):i},e._zod.check=(i)=>{if(i.value==null){i.issues.push({expected:"object",code:"invalid_type",input:i.value,inst:e});return}return o(i,{})}},{*[Symbol.iterator](){yield this}});class Tf extends Error{constructor(){super("Cannot parse a reference cycle that closes through a transform");this.name="ZodCyclicError"}}var Ra="~memo",vf=[];function Rf(e){return e!==null&&(typeof e==="object"||typeof e==="function")}function Ta(e){return e.map((t)=>t.path?{...t,path:t.path.slice()}:{...t})}var Sf=new WeakMap,ir=0,vo=1,sr=2;function To(e,t,n){let r=Sf.get(e);if(r!==void 0)return r?sr:ir;if(t.has(e))return sr;t.add(e);let o=ir,i=(d)=>{if(o!==sr&&d?._zod){let p=To(d,t,n);if(p>o)o=p}},s=(d,p)=>{let l=ir;for(let m of Reflect.ownKeys(d)){let g=Object.getOwnPropertyDescriptor(d,m);if(p&&!g.enumerable)continue;let h=g.get?vo:g.value?._zod?To(g.value,t,n):ir;if(h>l)l=h}return l},a=(d)=>{if(d>o)o=d},c=e._zod.def,u=c.type;switch(u){case"object":{let d=er(c);a(d?s(d,!0):vo),i(c.catchall);break}case"properties":a(s(c.shape,!1));break;case"array":i(c.element);break;case"tuple":for(let d of c.items)i(d);i(c.rest);break;case"record":case"map":i(c.keyType),i(c.valueType);break;case"set":i(c.valueType);break;case"union":for(let d of c.options)i(d);break;case"intersection":i(c.left),i(c.right);break;case"optional":case"nullable":case"default":case"prefault":case"catch":case"readonly":case"nonoptional":case"promise":case"success":i(c.innerType);break;case"pipe":i(c.in),i(c.out);break;case"function":i(c.input),i(c.output);break;case"lazy":{let d=c._cachedInner??(n?e._zod.innerType:void 0);a(d?To(d,t,!1):vo);break}case"template_literal":case"string":case"number":case"int":case"boolean":case"bigint":case"symbol":case"undefined":case"null":case"void":case"never":case"any":case"unknown":case"date":case"nan":case"enum":case"literal":case"file":case"transform":case"custom":break;default:for(let d in c){let p=Object.getOwnPropertyDescriptor(c,d);if(!p||p.get)continue;let l=p.value;if(!l||typeof l!=="object")continue;if(l._zod)i(l);else if(Array.isArray(l))for(let m of l)i(m)}}return t.delete(e),KT(e,o)}function KT(e,t){if(t!==vo)Sf.set(e,t===sr);return t}function GT(e,t){let n=e.buckets.get(t);if(!n)n=new WeakMap,e.buckets.set(t,n);return n}var ko,Eo=[],ZT={alloc(e,t,n){let r=ko;if(!r)return n;ko=void 0;let o={value:n,issues:null};return r.set(t.value,o),Eo.push(o),n},guard(e){var t;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let n=e._zod.parse,r=(o,i)=>{if(i.direction!=="backward"&&XT(i,o.value))throw new Tf;return n(o,i)};if(e._zod.parse=r,e._zod.run===n)e._zod.run=r})},attach(e){var t;let n,r=!1,o,i;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let s=e._zod.parse,a=(c,u)=>{if(n===void 0){let y=To(e,new Set,!1);if(y===ir){if(e._zod.parse=s,e._zod.run===a)e._zod.run=s;return s(c,u)}if(y===sr||r)n=!0;else r=!0}let d=c.value;if(!Rf(d))return s(c,u);let p=u[Ra];if(!p)p={buckets:new WeakMap,backEdges:void 0},u[Ra]=p;let l;if(o===u)l=i;else l=GT(p,e),o=u,i=l;let m=l.get(d);if(m){if(c.value=m.value,m.issues){if(m.issues.length)c.issues.push(...Ta(m.issues))}else c.memo=!0,p.backEdges??(p.backEdges=new WeakSet),p.backEdges.add(m.value);return c}ko=l;let g=Eo.length,h=s(c,u);ko=void 0;let f=Eo.length>g?Eo.pop():void 0;if(h instanceof Promise)return h.then((y)=>{if(f)f.issues=y.issues.length?Ta(y.issues):vf;return y});if(f)f.issues=h.issues.length?Ta(h.issues):vf;return h};if(e._zod.parse=a,e._zod.run===s)e._zod.run=a})}};function xf(){return ZT}function XT(e,t){let n=e[Ra]?.backEdges;return n!==void 0&&Rf(t)&&n.has(t)}var VT=()=>{let e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function t(i){return e[i]??null}let n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",credit_card:"credit card number",iban:"IBAN",jwt:"JWT",template_literal:"input"},r={nan:"NaN"};function o(i,s){if(i==="number"&&typeof s==="number"&&!Number.isFinite(s))return String(s);return r[i]??i}return(i)=>{switch(i.code){case"invalid_type":{let s=o(i.expected),a=up(i.input),c=o(a,i.input);return`Invalid input: expected ${s}, received ${c}`}case"invalid_value":if(i.values.length===1)return`Invalid input: expected ${na(i.values[0])}`;return`Invalid option: expected one of ${Js(i.values,"|")}`;case"too_big":{let s=i.exact?"exactly ":i.inclusive?"<=":"<",a=t(i.origin);if(a)return`Too big: expected ${i.origin??"value"} to have ${s}${i.maximum.toString()} ${a.unit??"elements"}`;return`Too big: expected ${i.origin??"value"} to be ${s}${i.maximum.toString()}`}case"too_small":{let s=i.exact?"exactly ":i.inclusive?">=":">",a=t(i.origin);if(a)return`Too small: expected ${i.origin} to have ${s}${i.minimum.toString()} ${a.unit}`;return`Too small: expected ${i.origin} to be ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;if(s.format==="starts_with")return`Invalid string: must start with "${s.prefix}"`;if(s.format==="ends_with")return`Invalid string: must end with "${s.suffix}"`;if(s.format==="includes")return`Invalid string: must include "${s.includes}"`;if(s.format==="regex")return`Invalid string: must match pattern ${s.pattern}`;return`Invalid ${n[s.format]??i.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${i.divisor}`;case"unrecognized_keys":return`Unrecognized key${i.keys.length>1?"s":""}: ${Js(i.keys,", ")}`;case"invalid_key":return`Invalid key in ${i.origin}`;case"invalid_union":if(i.options&&Array.isArray(i.options)&&i.options.length>0)return`Invalid discriminator value. Expected ${i.options.map((a)=>`'${a}'`).join(" | ")}`;if(i.inclusive===!1)return"Invalid input: more than one option matched";return"Invalid input";case"invalid_element":return`Invalid value in ${i.origin}`;default:return"Invalid input"}}};function Sa(){return{localeError:VT()}}var Af;class Cf{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];if(this._map.set(e,n),n&&typeof n==="object"&&"id"in n)this._idmap.set(n.id,e);return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);if(t&&typeof t==="object"&&"id"in t)this._idmap.delete(t.id);return this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}}function QT(){return new Cf}(Af=globalThis).__zod_globalRegistry??(Af.__zod_globalRegistry=QT());var rn=globalThis.__zod_globalRegistry;function Of(e,t){return new e({type:"string",...x(t)})}function Pf(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...x(t)})}function If(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...x(t)})}function Lf(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...x(t)})}function Nf(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...x(t)})}function Df(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...x(t)})}function Uf(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...x(t)})}function Mf(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...x(t)})}function $f(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...x(t)})}function Ff(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...x(t)})}function Bf(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...x(t)})}function zf(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...x(t)})}function qf(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...x(t)})}function Hf(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...x(t)})}function Wf(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...x(t)})}function jf(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...x(t)})}function Kf(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...x(t)})}function Gf(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...x(t)})}function Zf(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...x(t)})}function Xf(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...x(t)})}function Vf(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...x(t)})}function Qf(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...x(t)})}function Yf(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...x(t)})}function Jf(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...x(t)})}function eg(e,t){return new e({type:"string",format:"date",check:"string_format",...x(t)})}function tg(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...x(t)})}function ng(e,t){return new e({type:"string",format:"duration",check:"string_format",...x(t)})}function rg(e,t){return new e({type:"number",checks:[],...x(t)})}function og(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...x(t)})}function ig(e,t){return new e({type:"boolean",...x(t)})}function sg(e){return new e({type:"unknown"})}function ag(e,t){return new e({type:"never",...x(t)})}function Ro(e,t){return new ga({check:"less_than",...x(t),value:e,inclusive:!1})}function ar(e,t){return new ga({check:"less_than",...x(t),value:e,inclusive:!0})}function So(e,t){return new ha({check:"greater_than",...x(t),value:e,inclusive:!1})}function ur(e,t){return new ha({check:"greater_than",...x(t),value:e,inclusive:!0})}function xo(e,t){return new tm({check:"multiple_of",...x(t),value:e})}function Ao(e,t){return new rm({check:"max_length",...x(t),maximum:e})}function vn(e,t){return new om({check:"min_length",...x(t),minimum:e})}function Co(e,t){return new im({check:"length_equals",...x(t),length:e})}function xa(e,t){return new sm({check:"string_format",format:"regex",...x(t),pattern:e})}function Aa(e){return new am({check:"string_format",format:"lowercase",...x(e)})}function Ca(e){return new um({check:"string_format",format:"uppercase",...x(e)})}function Oa(e,t){return new cm({check:"string_format",format:"includes",...x(t),includes:e})}function Pa(e,t){return new dm({check:"string_format",format:"starts_with",...x(t),prefix:e})}function Ia(e,t){return new lm({check:"string_format",format:"ends_with",...x(t),suffix:e})}function Ut(e){return new pm({check:"overwrite",tx:e})}function La(e){return Ut((t)=>t.normalize(e))}function Na(){return Ut((e)=>e.trim())}function Da(){return Ut((e)=>e.toLowerCase())}function Ua(){return Ut((e)=>e.toUpperCase())}function Ma(){return Ut((e)=>tp(e))}function ug(e,t,n){return new e({type:"array",element:t,...x(n)})}function cg(e,t,n){return new e({type:"custom",check:"custom",fn:t,...x(n)})}function dg(e,t){let n=YT((r)=>(r.addIssue=(o)=>{if(typeof o==="string")r.issues.push(nn(o,r.value,n._zod.def));else{let i=o;if(i.fatal)i.continue=!1;if(i.code??(i.code="custom"),!("input"in i))i.input=r.value;i.inst??(i.inst=n),i.continue??(i.continue=!n._zod.def.abort),r.issues.push(nn(i))}},e(r.value,r)),t);return n}function YT(e,t){let n=new pe({check:"custom",...x(t)});return n._zod.check=e,n}function cr(e,...t){for(let n of t)for(let r of Reflect.ownKeys(n))if(Object.prototype.propertyIsEnumerable.call(n,r))He(e,r,n[r]);return e}function Fa(e){let t=e?.target??"draft-2020-12";if(t==="draft-4")t="draft-04";if(t==="draft-7")t="draft-07";return{processors:e.processors??{},metadataRegistry:e?.metadata??rn,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,sharedDefsExtractedFor:void 0,sharedEmitDoneFor:void 0,cycles:e?.cycles??"ref",reused:e?.reused??"inline",intersections:[],deferred:[],external:e?.external??void 0}}function Rt(e,t,n,r,o){let i=typeof t.unrepresentable==="function"?t.unrepresentable({zodSchema:e,path:r.path,message:o}):t.unrepresentable;if(i==="any")return!1;if(i===void 0||i==="throw")throw Error(o);return Object.assign(n,i),!0}function ie(e,t,n={path:[],schemaPath:[]}){var r;let o=e._zod.def,i=t.seen.get(e);if(i){if(i.count++,n.schemaPath.includes(e))i.cycle=n.path;return i.schema}let s={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,s),t.sharedDefsExtractedFor=void 0,t.sharedEmitDoneFor=void 0;let a=e._zod.toJSONSchema?.();if(a)s.schema=a;else{let d={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,s.schema,d);else{let l=s.schema,m=t.processors[o.type];if(!m)throw Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);m(e,t,l,d)}let p=e._zod.parent;if(p){if(!s.ref)s.ref=p;ie(p,t,d),t.seen.get(p).isParent=!0}}let c=t.metadataRegistry.get(e);if(c)cr(s.schema,c);if(t.io==="input"&&ke(e))delete s.schema.examples,delete s.schema.default;if(t.io==="input"&&"_prefault"in s.schema)(r=s.schema).default??(r.default=s.schema._prefault);return delete s.schema._prefault,t.seen.get(e).schema}function lg(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function Ba(e,t){let n=e.seen.get(t);if(!n)throw Error("Unprocessed schema. This is a bug in Zod.");if(e.external&&e.sharedDefsExtractedFor===e.external)return;let r=new Map;for(let s of e.seen.entries()){let a=e.metadataRegistry.get(s[0])?.id;if(a){let c=r.get(a);if(c&&c!==s[0])throw Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(a,s[0])}}let o=(s)=>{let a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let p=e.external.registry.get(s[0])?.id,l=e.external.uri??((g)=>g);if(p)return{ref:l(p)};let m=s[1].defId??s[1].schema.id??`schema${e.counter++}`;return s[1].defId=m,{defId:m,ref:`${l("__shared")}#/${a}/${lg(m)}`}}let c="#",u=`${c}/${a}/`;if(s[1]===n&&!s[1].schema.id)return{ref:c};let d=s[1].schema.id??`__schema${e.counter++}`;return{defId:d,ref:u+lg(d)}},i=(s)=>{if(s[1].schema.$ref)return;let a=s[1],{ref:c,defId:u}=o(s);if(a.def={...a.schema},u)a.defId=u;let d=a.schema;for(let p in d)delete d[p];d.$ref=c};if(e.cycles==="throw")for(let s of e.seen.entries()){let a=s[1];if(a.cycle)throw Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
|
|
66
|
+
`)}return f.write("payload.value = newResult;"),f.write("return payload;"),f.compile()},s,a=En,u=!Se.jitless,d=u&&np.value,p=t.catchall,l;e._zod.parse=(m,g)=>{l??(l=r.value);let h=m.value;if(!a(h))return m.issues.push({expected:"object",code:"invalid_type",input:h,inst:e}),m;if(u&&d&&g?.async===!1&&g.jitless!==!0){if(!s)s=i(t.shape);if(m=s(m,g),!p)return m;return sf([],h,m,g,l,e,g?.abortEarly===!0)}return n(m,g)}});function hm(e,t,n,r){for(let i of e)if(i.issues.length===0)return t.value=i.value,t;let o=e.filter((i)=>!ct(i));if(o.length===1)return t.value=o[0].value,o[0];return t.issues.push({code:"invalid_union",input:t.value,inst:n,errors:e.map((i)=>i.issues.map((s)=>dt(s,r,De())))}),t}var Ea=E("$ZodUnion",(e,t)=>{Y.init(e,t),F(e,"optin",(r)=>r.def.options.some((o)=>o._zod.optin==="defaulted")?"defaulted":r.def.options.some((o)=>o._zod.optin!==void 0)?"optional":void 0),F(e,"optout",(r)=>r.def.options.some((o)=>o._zod.optout==="optional")?"optional":void 0),F(e,"values",(r)=>{if(r.def.options.every((o)=>o._zod.values))return new Set(r.def.options.flatMap((o)=>Array.from(o._zod.values)));return}),F(e,"pattern",(r)=>{if(r.def.options.every((o)=>o._zod.pattern)){let o=r.def.options.map((i)=>i._zod.pattern);return new RegExp(`^(${o.map((i)=>so(i.source)).join("|")})$`)}return});let n=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(r,o)=>{if(n)return n(r,o);let i=!1,s=[];for(let a of t.options){let u=a._zod.run({value:r.value,issues:[]},o);if(u instanceof Promise)s.push(u),i=!0;else{if(u.issues.length===0)return u;s.push(u)}}if(!i)return hm(s,r,e,o);return Promise.all(s).then((a)=>hm(a,r,e,o))}});function WT(e){let t=new Map;for(let n of e.options){let r=n._zod.propValues?.[e.discriminator];if(!r||r.size===0)throw Error(`Invalid discriminated union option at index "${e.options.indexOf(n)}"`);for(let o of r)if(t.has(o)){if(o!==void 0)throw Error(`Duplicate discriminator value "${String(o)}"`);t.set(o,null)}else t.set(o,n)}return t}var uf=E("$ZodDiscriminatedUnion",(e,t)=>{t.inclusive=!1,Ea.init(e,t);let n=e._zod.parse;F(e,"propValues",(o)=>{let i={},s=0;for(let a of o.def.options){let u=a._zod.propValues;if(!u||Object.keys(u).length===0)throw Error(`Invalid discriminated union option at index "${o.def.options.indexOf(a)}"`);if(u[o.def.discriminator]?.has(void 0))s++;for(let[c,d]of Object.entries(u)){if(!Object.prototype.hasOwnProperty.call(i,c))je(i,c,new Set);for(let p of d)i[c].add(p)}}if(!o.def.unionFallback&&s>1)i[o.def.discriminator]?.delete(void 0);return i}),t.options.forEach((o,i)=>{let s=er(o._zod.def);if(s&&!Object.prototype.hasOwnProperty.call(s,t.discriminator))throw Error(`Invalid discriminated union option at index "${i}"`)});let r=Jn(()=>WT(t));e._zod.parse=(o,i)=>{let s=o.value;if(!En(s))return o.issues.push({code:"invalid_type",expected:"object",input:s,inst:e}),o;let a=s?.[t.discriminator],u=r.value.get(a);if(u&&(a!==void 0||i.direction!=="backward"))return u._zod.run(o,i);if(t.unionFallback||i.direction==="backward")return n(o,i);return o.issues.push({code:"invalid_union",errors:[],note:"No matching discriminator",discriminator:t.discriminator,options:Array.from(r.value.keys()).filter((c)=>r.value.get(c)!==null),input:s,path:[t.discriminator],inst:e}),o}}),cf=E("$ZodIntersection",(e,t)=>{Y.init(e,t),e._zod.parse=(n,r)=>{let o=n.value,i=t.left._zod.run({value:o,issues:[]},r),s=t.right._zod.run({value:o,issues:[]},r);if(i instanceof Promise||s instanceof Promise)return Promise.all([i,s]).then(([u,c])=>ym(n,u,c));return ym(n,i,s)}});function _a(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e===+t)return{valid:!0,data:e};if(tn(e)&&tn(t)){let n=Object.keys(t),r=Object.keys(e).filter((i)=>n.indexOf(i)!==-1),o={...e,...t};if(Object.prototype.hasOwnProperty.call(o,"__proto__"))delete o.__proto__;for(let i of r){if(i==="__proto__")continue;let s=_a(e[i],t[i]);if(!s.valid)return{valid:!1,mergeErrorPath:[i,...s.mergeErrorPath]};o[i]=s.data}return{valid:!0,data:o}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let n=[];for(let r=0;r<e.length;r++){let o=e[r],i=t[r],s=_a(o,i);if(!s.valid)return{valid:!1,mergeErrorPath:[r,...s.mergeErrorPath]};n.push(s.data)}return{valid:!0,data:n}}return{valid:!1,mergeErrorPath:[]}}function ym(e,t,n){let r=new Map,o,i=new Map,s=(c,d)=>{let p;if(c.code==="unrecognized_keys"&&!c.path?.length)o??(o=c),p=c.keys;else if(c.code==="invalid_key"&&c.origin==="record"&&c.path?.length===1){let l=String(c.path[0]);if(!i.has(l))i.set(l,c);p=[l]}else return!1;for(let l of p){if(!r.has(l))r.set(l,{});r.get(l)[d]=!0}return!0};for(let c of t.issues)if(!s(c,"l"))e.issues.push(c);for(let c of n.issues)if(!s(c,"r"))e.issues.push(c);let a=[...r].filter(([,c])=>c.l&&c.r).map(([c])=>c);if(a.length){let c=o?a.filter((d)=>o.keys.includes(d)):[];if(c.length)e.issues.push({...o,keys:c});for(let d of a)if(!c.includes(d)&&i.has(d))e.issues.push(i.get(d))}let u=_a(t.value,n.value);if(!u.valid){if(ct(e))return e;throw Error(`Unmergable intersection. Error path: ${JSON.stringify(u.mergeErrorPath)}`)}return e.value=u.data,e}var df=E("$ZodRecord",(e,t)=>{Y.init(e,t);let n=Se.memoizer;n?.attach(e),e._zod.parse=(r,o)=>{let i=r.value;if(!tn(i))return r.issues.push({expected:"record",code:"invalid_type",input:i,inst:e}),r;let s=[],a=t.keyType._zod.values;if(a&&!t.partial){r.value=n?n.alloc(e,r,{},o):{};let u=new Set;for(let d of a)if(typeof d==="string"||typeof d==="number"||typeof d==="symbol"){if(u.add(typeof d==="number"?d.toString():d),d==="__proto__")continue;let p=t.keyType._zod.run({value:d,issues:[]},o);if(p instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(p.issues.length){r.issues.push({code:"invalid_key",origin:"record",issues:p.issues.map((g)=>dt(g,o,De())),input:d,path:[d],inst:e});continue}let l=p.value;if(l==="__proto__")continue;let m=t.valueType._zod.run({value:i[d],issues:[]},o);if(m instanceof Promise)s.push(m.then((g)=>{if(g.issues.length)r.issues.push(...Tt(d,g.issues));r.value[l]=g.value}));else{if(m.issues.length)r.issues.push(...Tt(d,m.issues));r.value[l]=m.value}}let c;for(let d in i)if(!u.has(d))if(t.mode==="loose"){if(d==="__proto__")continue;r.value[d]=i[d]}else c=c??[],c.push(d);if(c&&c.length>0)r.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:c,continue:!0})}else{r.value=n?n.alloc(e,r,{},o):{};let u;for(let c of Reflect.ownKeys(i)){if(c==="__proto__")continue;if(!Object.prototype.propertyIsEnumerable.call(i,c))continue;let d=t.keyType._zod.run({value:c,issues:[]},o);if(d instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(typeof c==="string"&&nr.test(c)&&d.issues.length){let g=t.keyType._zod.run({value:Number(c),issues:[]},o);if(g instanceof Promise)throw Error("Async schemas not supported in object keys currently");if(g.issues.length===0)d=g}if(d.issues.length){if(t.mode==="loose")r.value[c]=i[c];else if(a)u=u??[],u.push(c);else r.issues.push({code:"invalid_key",origin:"record",issues:d.issues.map((g)=>dt(g,o,De())),input:c,path:[c],inst:e});continue}let l=d.value;if(l==="__proto__")continue;let m=t.valueType._zod.run({value:i[c],issues:[]},o);if(m instanceof Promise)s.push(m.then((g)=>{if(g.issues.length)r.issues.push(...Tt(c,g.issues));r.value[l]=g.value}));else{if(m.issues.length)r.issues.push(...Tt(c,m.issues));r.value[l]=m.value}}if(u&&u.length>0)r.issues.push({code:"unrecognized_keys",input:i,inst:e,keys:u,continue:!0})}if(s.length)return Promise.all(s).then(()=>r);return r}});var lf=E("$ZodEnum",(e,t)=>{Y.init(e,t);let n=Qn(t.entries),r=new Set(n);e._zod.values=r,F(e,"pattern",(o)=>{let i=Qn(o.def.entries).filter((s)=>rp.has(typeof s));return new RegExp(i.length?`^(${i.map((s)=>Dt(s.toString())).join("|")})$`:"^[^\\s\\S]$")}),e._zod.parse=(o,i)=>{let s=o.value;if(r.has(s))return o;return o.issues.push({code:"invalid_value",values:n,input:s,inst:e}),o}}),pf=E("$ZodLiteral",(e,t)=>{Y.init(e,t);let n=new Set(t.values);e._zod.values=n,F(e,"pattern",(r)=>{let o=r.def.values;return new RegExp(o.length?`^(${o.map((i)=>typeof i==="string"?Dt(i):i?Dt(i.toString()):String(i)).join("|")})$`:"^[^\\s\\S]$")}),e._zod.parse=(r,o)=>{let i=r.value;if(n.has(i))return r;return r.issues.push({code:"invalid_value",values:t.values,input:i,inst:e}),r}});var mf=E("$ZodTransform",(e,t)=>{Y.init(e,t),e._zod.optin="optional",Se.memoizer?.guard(e),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new tr(e.constructor.name);let o=t.transform(n.value,n);if(r.async)return(o instanceof Promise?o:Promise.resolve(o)).then((s)=>(n.value=s,n));if(o instanceof Promise)throw new lt;return n.value=o,n}});function _m(e,t){return e.value=t.issues.length?void 0:t.value,e}var va=E("$ZodOptional",(e,t)=>{Y.init(e,t),F(e,"optin",(n)=>n.def.innerType._zod.optin==="defaulted"?"defaulted":"optional"),e._zod.optout="optional",F(e,"values",(n)=>{let r=n.def.innerType._zod.values;return r?new Set([...r,void 0]):void 0}),F(e,"pattern",(n)=>{let r=n.def.innerType._zod.pattern;return r?new RegExp(`^(${so(r.source)})?$`):void 0}),e._zod.parse=(n,r)=>{if(n.value===void 0){if(t.innerType._zod.optin!=="defaulted")return n;let o=t.innerType._zod.run({value:n.value,issues:[]},r);if(o instanceof Promise)return o.then((i)=>_m(n,i));return _m(n,o)}return t.innerType._zod.run(n,r)}}),ff=E("$ZodExactOptional",(e,t)=>{va.init(e,t),F(e,"values",(n)=>n.def.innerType._zod.values),F(e,"pattern",(n)=>n.def.innerType._zod.pattern),e._zod.parse=(n,r)=>t.innerType._zod.run(n,r)}),gf=E("$ZodNullable",(e,t)=>{Y.init(e,t),F(e,"optin",(n)=>n.def.innerType._zod.optin),F(e,"optout",(n)=>n.def.innerType._zod.optout),F(e,"pattern",(n)=>{let r=n.def.innerType._zod.pattern;return r?new RegExp(`^(${so(r.source)}|null)$`):void 0}),F(e,"values",(n)=>n.def.innerType._zod.values?new Set([...n.def.innerType._zod.values,null]):void 0),e._zod.parse=(n,r)=>{if(n.value===null)return n;return t.innerType._zod.run(n,r)}}),hf=E("$ZodDefault",(e,t)=>{Y.init(e,t),e._zod.optin="defaulted",F(e,"values",(n)=>n.def.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)return n.value=t.defaultValue,n;let o=t.innerType._zod.run(n,r);if(o instanceof Promise)return o.then((i)=>wm(i,t));return wm(o,t)}});function wm(e,t){if(e.value===void 0)e.value=t.defaultValue;return e}var yf=E("$ZodPrefault",(e,t)=>{Y.init(e,t),e._zod.optin="defaulted",F(e,"values",(n)=>n.def.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);if(n.value===void 0)n.value=t.defaultValue;return t.innerType._zod.run(n,r)}}),_f=E("$ZodNonOptional",(e,t)=>{Y.init(e,t),F(e,"values",(n)=>{let r=n.def.innerType._zod.values;return r?new Set([...r].filter((o)=>o!==void 0)):void 0}),e._zod.parse=(n,r)=>{let o=t.innerType._zod.run(n,r);if(o instanceof Promise)return o.then((i)=>bm(i,e));return bm(o,e)}});function bm(e,t){if(!e.issues.length&&e.value===void 0)e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t});return e}function km(e,t,n,r){if(!t.issues.length){if(e.value=t.value,t.memo)e.memo=!0;return e}return e.value=n.catchValue({...t,value:e.value,error:{issues:t.issues.map((o)=>dt(o,r,De()))},input:e.value}),e}var wf=E("$ZodCatch",(e,t)=>{Y.init(e,t),F(e,"optin",(n)=>n.def.innerType._zod.optin==="defaulted"?"defaulted":"optional"),F(e,"optout",(n)=>n.def.innerType._zod.optout),F(e,"values",(n)=>n.def.innerType._zod.values),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);let o=t.innerType._zod.run({value:n.value,issues:[]},r);if(o instanceof Promise)return o.then((i)=>km(n,i,t,r));return km(n,o,t,r)}});var bf=E("$ZodPipe",(e,t)=>{Y.init(e,t),F(e,"values",(n)=>n.def.in._zod.values),F(e,"optin",(n)=>n.def.in._zod.optin),F(e,"optout",(n)=>n.def.out._zod.optout),F(e,"propValues",(n)=>n.def.in._zod.propValues),e._zod.parse=(n,r)=>{if(r.direction==="backward"){let i=t.out._zod.run(n,r);if(i instanceof Promise)return i.then((s)=>_o(s,t.in,r));return _o(i,t.in,r)}let o=t.in._zod.run(n,r);if(o instanceof Promise)return o.then((i)=>_o(i,t.out,r));return _o(o,t.out,r)}});function _o(e,t,n){if(e.issues.some((r)=>r.code!=="unrecognized_keys"))return e.aborted=!0,e;return t._zod.run({value:e.value,issues:e.issues},n)}var kf=E("$ZodReadonly",(e,t)=>{Y.init(e,t),F(e,"propValues",(n)=>n.def.innerType._zod.propValues),F(e,"values",(n)=>n.def.innerType._zod.values),F(e,"optin",(n)=>n.def.innerType?._zod?.optin),F(e,"optout",(n)=>n.def.innerType?._zod?.optout),e._zod.parse=(n,r)=>{if(r.direction==="backward")return t.innerType._zod.run(n,r);let o=t.innerType._zod.run(n,r);if(o instanceof Promise)return o.then(Em);return Em(o)}});function Em(e){if(!e.memo)e.value=Object.freeze(e.value);return e}var Ef=E("$ZodCustom",(e,t)=>{pe.init(e,t),Y.init(e,t),e._zod.parse=(n,r)=>n,e._zod.check=(n)=>{let r=n.value,o=t.fn(r);if(o instanceof Promise)return o.then((i)=>vm(i,n,r,e));vm(o,n,r,e);return}});function vm(e,t,n,r){if(!e){let o={code:"custom",input:n,inst:r,path:[...r._zod.def.path??[]],continue:!r._zod.def.abort};if(r._zod.def.params)o.params=r._zod.def.params;t.issues.push(nn(o))}}function Tm(e,t,n){if(e.issues.length)t.issues.push(...Tt(n,e.issues))}var jT=E("$ZodProperties",(e,t)=>{Y.init(e,t),pe.init(e,t);let n=Se.memoizer;n?.attach(e);let r,o=(i,s)=>{r??(r=Reflect.ownKeys(t.shape).map((c)=>[c,t.shape[c]]));let a=i.value,u;for(let[c,d]of r){let p=d._zod.run({value:a[c],issues:[]},s);if(p instanceof Promise)u??(u=[]),u.push(p.then((l)=>Tm(l,i,c)));else Tm(p,i,c)}if(u)return Promise.all(u).then(()=>{return});return};e._zod.parse=(i,s)=>{let a=i.value;if(a===null||typeof a!=="object"&&typeof a!=="function")return i.issues.push({expected:"object",code:"invalid_type",input:a,inst:e}),i;if(s.direction==="backward")s={...s,direction:"forward"};if(n)n.alloc(e,i,a,s);let u=o(i,s);return u instanceof Promise?u.then(()=>i):i},e._zod.check=(i)=>{if(i.value==null){i.issues.push({expected:"object",code:"invalid_type",input:i.value,inst:e});return}return o(i,{})}},{*[Symbol.iterator](){yield this}});class Tf extends Error{constructor(){super("Cannot parse a reference cycle that closes through a transform");this.name="ZodCyclicError"}}var Ra="~memo",vf=[];function Rf(e){return e!==null&&(typeof e==="object"||typeof e==="function")}function Ta(e){return e.map((t)=>t.path?{...t,path:t.path.slice()}:{...t})}var Sf=new WeakMap,ir=0,To=1,sr=2;function Ro(e,t,n){let r=Sf.get(e);if(r!==void 0)return r?sr:ir;if(t.has(e))return sr;t.add(e);let o=ir,i=(d)=>{if(o!==sr&&d?._zod){let p=Ro(d,t,n);if(p>o)o=p}},s=(d,p)=>{let l=ir;for(let m of Reflect.ownKeys(d)){let g=Object.getOwnPropertyDescriptor(d,m);if(p&&!g.enumerable)continue;let h=g.get?To:g.value?._zod?Ro(g.value,t,n):ir;if(h>l)l=h}return l},a=(d)=>{if(d>o)o=d},u=e._zod.def,c=u.type;switch(c){case"object":{let d=er(u);a(d?s(d,!0):To),i(u.catchall);break}case"properties":a(s(u.shape,!1));break;case"array":i(u.element);break;case"tuple":for(let d of u.items)i(d);i(u.rest);break;case"record":case"map":i(u.keyType),i(u.valueType);break;case"set":i(u.valueType);break;case"union":for(let d of u.options)i(d);break;case"intersection":i(u.left),i(u.right);break;case"optional":case"nullable":case"default":case"prefault":case"catch":case"readonly":case"nonoptional":case"promise":case"success":i(u.innerType);break;case"pipe":i(u.in),i(u.out);break;case"function":i(u.input),i(u.output);break;case"lazy":{let d=u._cachedInner??(n?e._zod.innerType:void 0);a(d?Ro(d,t,!1):To);break}case"template_literal":case"string":case"number":case"int":case"boolean":case"bigint":case"symbol":case"undefined":case"null":case"void":case"never":case"any":case"unknown":case"date":case"nan":case"enum":case"literal":case"file":case"transform":case"custom":break;default:for(let d in u){let p=Object.getOwnPropertyDescriptor(u,d);if(!p||p.get)continue;let l=p.value;if(!l||typeof l!=="object")continue;if(l._zod)i(l);else if(Array.isArray(l))for(let m of l)i(m)}}return t.delete(e),KT(e,o)}function KT(e,t){if(t!==To)Sf.set(e,t===sr);return t}function GT(e,t){let n=e.buckets.get(t);if(!n)n=new WeakMap,e.buckets.set(t,n);return n}var Eo,vo=[],ZT={alloc(e,t,n){let r=Eo;if(!r)return n;Eo=void 0;let o={value:n,issues:null};return r.set(t.value,o),vo.push(o),n},guard(e){var t;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let n=e._zod.parse,r=(o,i)=>{if(i.direction!=="backward"&&XT(i,o.value))throw new Tf;return n(o,i)};if(e._zod.parse=r,e._zod.run===n)e._zod.run=r})},attach(e){var t;let n,r=!1,o,i;(t=e._zod).deferred??(t.deferred=[]),e._zod.deferred.push(()=>{let s=e._zod.parse,a=(u,c)=>{if(n===void 0){let y=Ro(e,new Set,!1);if(y===ir){if(e._zod.parse=s,e._zod.run===a)e._zod.run=s;return s(u,c)}if(y===sr||r)n=!0;else r=!0}let d=u.value;if(!Rf(d))return s(u,c);let p=c[Ra];if(!p)p={buckets:new WeakMap,backEdges:void 0},c[Ra]=p;let l;if(o===c)l=i;else l=GT(p,e),o=c,i=l;let m=l.get(d);if(m){if(u.value=m.value,m.issues){if(m.issues.length)u.issues.push(...Ta(m.issues))}else u.memo=!0,p.backEdges??(p.backEdges=new WeakSet),p.backEdges.add(m.value);return u}Eo=l;let g=vo.length,h=s(u,c);Eo=void 0;let f=vo.length>g?vo.pop():void 0;if(h instanceof Promise)return h.then((y)=>{if(f)f.issues=y.issues.length?Ta(y.issues):vf;return y});if(f)f.issues=h.issues.length?Ta(h.issues):vf;return h};if(e._zod.parse=a,e._zod.run===s)e._zod.run=a})}};function xf(){return ZT}function XT(e,t){let n=e[Ra]?.backEdges;return n!==void 0&&Rf(t)&&n.has(t)}var VT=()=>{let e={string:{unit:"characters",verb:"to have"},file:{unit:"bytes",verb:"to have"},array:{unit:"items",verb:"to have"},set:{unit:"items",verb:"to have"},map:{unit:"entries",verb:"to have"}};function t(i){return e[i]??null}let n={regex:"input",email:"email address",url:"URL",emoji:"emoji",uuid:"UUID",uuidv4:"UUIDv4",uuidv6:"UUIDv6",nanoid:"nanoid",guid:"GUID",cuid:"cuid",cuid2:"cuid2",ulid:"ULID",xid:"XID",ksuid:"KSUID",datetime:"ISO datetime",date:"ISO date",time:"ISO time",duration:"ISO duration",ipv4:"IPv4 address",ipv6:"IPv6 address",mac:"MAC address",cidrv4:"IPv4 range",cidrv6:"IPv6 range",base64:"base64-encoded string",base64url:"base64url-encoded string",json_string:"JSON string",e164:"E.164 number",credit_card:"credit card number",iban:"IBAN",jwt:"JWT",template_literal:"input"},r={nan:"NaN"};function o(i,s){if(i==="number"&&typeof s==="number"&&!Number.isFinite(s))return String(s);return r[i]??i}return(i)=>{switch(i.code){case"invalid_type":{let s=o(i.expected),a=up(i.input),u=o(a,i.input);return`Invalid input: expected ${s}, received ${u}`}case"invalid_value":if(i.values.length===1)return`Invalid input: expected ${na(i.values[0])}`;return`Invalid option: expected one of ${Js(i.values,"|")}`;case"too_big":{let s=i.exact?"exactly ":i.inclusive?"<=":"<",a=t(i.origin);if(a)return`Too big: expected ${i.origin??"value"} to have ${s}${i.maximum.toString()} ${a.unit??"elements"}`;return`Too big: expected ${i.origin??"value"} to be ${s}${i.maximum.toString()}`}case"too_small":{let s=i.exact?"exactly ":i.inclusive?">=":">",a=t(i.origin);if(a)return`Too small: expected ${i.origin} to have ${s}${i.minimum.toString()} ${a.unit}`;return`Too small: expected ${i.origin} to be ${s}${i.minimum.toString()}`}case"invalid_format":{let s=i;if(s.format==="starts_with")return`Invalid string: must start with "${s.prefix}"`;if(s.format==="ends_with")return`Invalid string: must end with "${s.suffix}"`;if(s.format==="includes")return`Invalid string: must include "${s.includes}"`;if(s.format==="regex")return`Invalid string: must match pattern ${s.pattern}`;return`Invalid ${n[s.format]??i.format}`}case"not_multiple_of":return`Invalid number: must be a multiple of ${i.divisor}`;case"unrecognized_keys":return`Unrecognized key${i.keys.length>1?"s":""}: ${Js(i.keys,", ")}`;case"invalid_key":return`Invalid key in ${i.origin}`;case"invalid_union":if(i.options&&Array.isArray(i.options)&&i.options.length>0)return`Invalid discriminator value. Expected ${i.options.map((a)=>`'${a}'`).join(" | ")}`;if(i.inclusive===!1)return"Invalid input: more than one option matched";return"Invalid input";case"invalid_element":return`Invalid value in ${i.origin}`;default:return"Invalid input"}}};function Sa(){return{localeError:VT()}}var Af;class Of{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...t){let n=t[0];if(this._map.set(e,n),n&&typeof n==="object"&&"id"in n)this._idmap.set(n.id,e);return this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let t=this._map.get(e);if(t&&typeof t==="object"&&"id"in t)this._idmap.delete(t.id);return this._map.delete(e),this}get(e){let t=e._zod.parent;if(t){let n={...this.get(t)??{}};delete n.id;let r={...n,...this._map.get(e)};return Object.keys(r).length?r:void 0}return this._map.get(e)}has(e){return this._map.has(e)}}function QT(){return new Of}(Af=globalThis).__zod_globalRegistry??(Af.__zod_globalRegistry=QT());var rn=globalThis.__zod_globalRegistry;function Cf(e,t){return new e({type:"string",...x(t)})}function Pf(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...x(t)})}function If(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...x(t)})}function Lf(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...x(t)})}function Nf(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...x(t)})}function Df(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...x(t)})}function Uf(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...x(t)})}function Mf(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...x(t)})}function $f(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...x(t)})}function Ff(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...x(t)})}function Bf(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...x(t)})}function zf(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...x(t)})}function qf(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...x(t)})}function Hf(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...x(t)})}function Wf(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...x(t)})}function jf(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...x(t)})}function Kf(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...x(t)})}function Gf(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...x(t)})}function Zf(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...x(t)})}function Xf(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...x(t)})}function Vf(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...x(t)})}function Qf(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...x(t)})}function Yf(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...x(t)})}function Jf(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...x(t)})}function eg(e,t){return new e({type:"string",format:"date",check:"string_format",...x(t)})}function tg(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...x(t)})}function ng(e,t){return new e({type:"string",format:"duration",check:"string_format",...x(t)})}function rg(e,t){return new e({type:"number",checks:[],...x(t)})}function og(e,t){return new e({type:"number",check:"number_format",abort:!1,format:"safeint",...x(t)})}function ig(e,t){return new e({type:"boolean",...x(t)})}function sg(e){return new e({type:"unknown"})}function ag(e,t){return new e({type:"never",...x(t)})}function So(e,t){return new ga({check:"less_than",...x(t),value:e,inclusive:!1})}function ar(e,t){return new ga({check:"less_than",...x(t),value:e,inclusive:!0})}function xo(e,t){return new ha({check:"greater_than",...x(t),value:e,inclusive:!1})}function ur(e,t){return new ha({check:"greater_than",...x(t),value:e,inclusive:!0})}function Ao(e,t){return new tm({check:"multiple_of",...x(t),value:e})}function Oo(e,t){return new rm({check:"max_length",...x(t),maximum:e})}function vn(e,t){return new om({check:"min_length",...x(t),minimum:e})}function Co(e,t){return new im({check:"length_equals",...x(t),length:e})}function xa(e,t){return new sm({check:"string_format",format:"regex",...x(t),pattern:e})}function Aa(e){return new am({check:"string_format",format:"lowercase",...x(e)})}function Oa(e){return new um({check:"string_format",format:"uppercase",...x(e)})}function Ca(e,t){return new cm({check:"string_format",format:"includes",...x(t),includes:e})}function Pa(e,t){return new dm({check:"string_format",format:"starts_with",...x(t),prefix:e})}function Ia(e,t){return new lm({check:"string_format",format:"ends_with",...x(t),suffix:e})}function Ut(e){return new pm({check:"overwrite",tx:e})}function La(e){return Ut((t)=>t.normalize(e))}function Na(){return Ut((e)=>e.trim())}function Da(){return Ut((e)=>e.toLowerCase())}function Ua(){return Ut((e)=>e.toUpperCase())}function Ma(){return Ut((e)=>tp(e))}function ug(e,t,n){return new e({type:"array",element:t,...x(n)})}function cg(e,t,n){return new e({type:"custom",check:"custom",fn:t,...x(n)})}function dg(e,t){let n=YT((r)=>(r.addIssue=(o)=>{if(typeof o==="string")r.issues.push(nn(o,r.value,n._zod.def));else{let i=o;if(i.fatal)i.continue=!1;if(i.code??(i.code="custom"),!("input"in i))i.input=r.value;i.inst??(i.inst=n),i.continue??(i.continue=!n._zod.def.abort),r.issues.push(nn(i))}},e(r.value,r)),t);return n}function YT(e,t){let n=new pe({check:"custom",...x(t)});return n._zod.check=e,n}function cr(e,...t){for(let n of t)for(let r of Reflect.ownKeys(n))if(Object.prototype.propertyIsEnumerable.call(n,r))je(e,r,n[r]);return e}function Fa(e){let t=e?.target??"draft-2020-12";if(t==="draft-4")t="draft-04";if(t==="draft-7")t="draft-07";return{processors:e.processors??{},metadataRegistry:e?.metadata??rn,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,sharedDefsExtractedFor:void 0,sharedEmitDoneFor:void 0,cycles:e?.cycles??"ref",reused:e?.reused??"inline",intersections:[],deferred:[],external:e?.external??void 0}}function Rt(e,t,n,r,o){let i=typeof t.unrepresentable==="function"?t.unrepresentable({zodSchema:e,path:r.path,message:o}):t.unrepresentable;if(i==="any")return!1;if(i===void 0||i==="throw")throw Error(o);return Object.assign(n,i),!0}function ie(e,t,n={path:[],schemaPath:[]}){var r;let o=e._zod.def,i=t.seen.get(e);if(i){if(i.count++,n.schemaPath.includes(e))i.cycle=n.path;return i.schema}let s={schema:{},count:1,cycle:void 0,path:n.path};t.seen.set(e,s),t.sharedDefsExtractedFor=void 0,t.sharedEmitDoneFor=void 0;let a=e._zod.toJSONSchema?.();if(a)s.schema=a;else{let d={...n,schemaPath:[...n.schemaPath,e],path:n.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,s.schema,d);else{let l=s.schema,m=t.processors[o.type];if(!m)throw Error(`[toJSONSchema]: Non-representable type encountered: ${o.type}`);m(e,t,l,d)}let p=e._zod.parent;if(p){if(!s.ref)s.ref=p;ie(p,t,d),t.seen.get(p).isParent=!0}}let u=t.metadataRegistry.get(e);if(u)cr(s.schema,u);if(t.io==="input"&&ke(e))delete s.schema.examples,delete s.schema.default;if(t.io==="input"&&"_prefault"in s.schema)(r=s.schema).default??(r.default=s.schema._prefault);return delete s.schema._prefault,t.seen.get(e).schema}function lg(e){return e.replace(/~/g,"~0").replace(/\//g,"~1")}function Ba(e,t){let n=e.seen.get(t);if(!n)throw Error("Unprocessed schema. This is a bug in Zod.");if(e.external&&e.sharedDefsExtractedFor===e.external)return;let r=new Map;for(let s of e.seen.entries()){let a=e.metadataRegistry.get(s[0])?.id;if(a){let u=r.get(a);if(u&&u!==s[0])throw Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);r.set(a,s[0])}}let o=(s)=>{let a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let p=e.external.registry.get(s[0])?.id,l=e.external.uri??((g)=>g);if(p)return{ref:l(p)};let m=s[1].defId??s[1].schema.id??`schema${e.counter++}`;return s[1].defId=m,{defId:m,ref:`${l("__shared")}#/${a}/${lg(m)}`}}let u="#",c=`${u}/${a}/`;if(s[1]===n&&!s[1].schema.id)return{ref:u};let d=s[1].schema.id??`__schema${e.counter++}`;return{defId:d,ref:c+lg(d)}},i=(s)=>{if(s[1].schema.$ref)return;let a=s[1],{ref:u,defId:c}=o(s);if(a.def={...a.schema},c)a.defId=c;let d=a.schema;for(let p in d)delete d[p];d.$ref=u};if(e.cycles==="throw")for(let s of e.seen.entries()){let a=s[1];if(a.cycle)throw Error(`Cycle detected: #/${a.cycle?.join("/")}/<root>
|
|
67
67
|
|
|
68
|
-
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let s of e.seen.entries()){let a=s[1];if(t===s[0]){i(s);continue}if(e.external){let u=e.external.registry.get(s[0])?.id;if(t!==s[0]&&u){i(s);continue}}if(e.metadataRegistry.get(s[0])?.id){i(s);continue}if(a.cycle){i(s);continue}if(a.count>1){if(e.reused==="ref")i(s)}}if(e.external)e.sharedDefsExtractedFor=e.external}function fg(e){let t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;let n=[];for(let r of t){if(!r||typeof r!=="object")return;fg(r);let o=Object.keys(r);if(o.length!==1||o[0]!=="type")return;let i=r.type;for(let s of Array.isArray(i)?i:[i]){if(typeof s!=="string")return;if(!n.includes(s))n.push(s)}}delete e.anyOf,e.type=n.length===1?n[0]:n}var gg=new Set(["type","properties","required","additionalProperties"]),pg=["oneOf","anyOf"];function mg(e){let t=e.additionalProperties;if(t===void 0||t===!1||typeof t!=="object"||t===null)return null;return Object.keys(t).length?t:null}function $a(e){let t=[];for(let i of e){if(typeof i!=="object"||i.type!=="object")return null;for(let s in i)if(!gg.has(s))return null;t.push(i)}let n={},r=new Set;for(let i of t){for(let s in i.properties){if(Object.prototype.hasOwnProperty.call(n,s))continue;let a=[];for(let u of t){let d=u.properties?.[s]??mg(u);if(d===null||d===void 0)continue;if(!a.some((p)=>JSON.stringify(p)===JSON.stringify(d)))a.push(d)}let c=a.length===1?a[0]:$a(a)??{allOf:a};He(n,s,c)}for(let s of i.required??[])r.add(s)}let o={type:"object",properties:n};if(r.size)o.required=[...r];if(t.every((i)=>i.additionalProperties===!1))o.additionalProperties=!1;else{let i=[];for(let s of t){let a=mg(s);if(a&&!i.some((c)=>JSON.stringify(c)===JSON.stringify(a)))i.push(a)}if(i.length===1)o.additionalProperties=i[0];else if(i.length>1)o.additionalProperties={allOf:i}}return o}function JT(e){let t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(let o of gg)if(o in e)return;let n=t.filter((o)=>pg.some((i)=>Array.isArray(o[i]))),r=null;if(!n.length)r=$a(t);else{let o=n[0],i=pg.find((c)=>Array.isArray(o[c]));if(Object.keys(o).length!==1)return;let s=t.filter((c)=>c!==o),a=o[i].map((c)=>$a([...s,c]));if(a.some((c)=>!c))return;r={[i]:a}}if(!r)return;delete e.allOf,cr(e,r)}function za(e,t){let n=e.seen.get(t);if(!n)throw Error("Unprocessed schema. This is a bug in Zod.");let r=(a)=>{let c=e.seen.get(a);if(c.ref===null)return;let u=c.def??c.schema,d={...u},p=c.ref;if(c.ref=null,p){r(p);let m=e.seen.get(p),g=m.schema;if(g.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"))u.allOf=u.allOf??[],u.allOf.push(g);else cr(u,g);if(cr(u,d),a._zod.parent===p)for(let f in u){if(f==="$ref"||f==="allOf")continue;if(!(f in d))delete u[f]}if(g.$ref&&m.def)for(let f in u){if(f==="$ref"||f==="allOf")continue;if(f in m.def&&JSON.stringify(u[f])===JSON.stringify(m.def[f]))delete u[f]}}let l=a._zod.parent;if(l&&l!==p){r(l);let m=e.seen.get(l);if(m?.schema.$ref){if(u.$ref=m.schema.$ref,m.def)for(let g in u){if(g==="$ref"||g==="allOf")continue;if(g in m.def&&JSON.stringify(u[g])===JSON.stringify(m.def[g]))delete u[g]}}}e.override({zodSchema:a,jsonSchema:u,path:c.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let a of[...e.seen.entries()].reverse())r(a[0]);if(e.target!=="openapi-3.0")for(let a of e.seen.entries())fg(a[1].def??a[1].schema);for(let a of e.deferred)a();if(e.intersections.length){let a=new Map;for(let c of e.seen.values())for(let u of[c.schema,c.def]){let d=u?.allOf;if(!Array.isArray(d))continue;let p=a.get(d);if(p)p.push(u);else a.set(d,[u])}for(let c of e.intersections)for(let u of a.get(c)??[])JT(u)}}let o={};if(e.target==="draft-2020-12")o.$schema="https://json-schema.org/draft/2020-12/schema";else if(e.target==="draft-07")o.$schema="http://json-schema.org/draft-07/schema#";else if(e.target==="draft-04")o.$schema="http://json-schema.org/draft-04/schema#";else if(e.target==="openapi-3.0");if(e.external?.uri){let a=e.external.registry.get(t)?.id;if(!a)throw Error("Schema is missing an `id` property");o.$id=e.external.uri(a)}cr(o,n.defId?n.schema:n.def??n.schema);let i=e.metadataRegistry.get(t)?.id;if(i!==void 0&&o.id===i)delete o.id;let s=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let a of e.seen.entries()){let c=a[1];if(c.def&&c.defId){if(c.def.id===c.defId)delete c.def.id;He(s,c.defId,c.def)}}if(e.external)e.sharedEmitDoneFor=e.external;if(e.external);else if(Object.keys(s).length>0)if(e.target==="draft-2020-12")o.$defs=s;else o.definitions=s;try{let a=JSON.parse(JSON.stringify(o));return Object.defineProperty(a,"~standard",{value:{...t["~standard"],jsonSchema:{input:dr(t,"input",e.processors),output:dr(t,"output",e.processors)}},enumerable:!1,writable:!1}),a}catch(a){throw Error("Error converting schema to JSON.")}}function ke(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return ke(r.element,n);if(r.type==="set")return ke(r.valueType,n);if(r.type==="lazy")return ke(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault"||r.type==="catch")return ke(r.innerType,n);if(r.type==="intersection")return ke(r.left,n)||ke(r.right,n);if(r.type==="record"||r.type==="map")return ke(r.keyType,n)||ke(r.valueType,n);if(r.type==="pipe"){if(e._zod.traits.has("$ZodCodec"))return!0;return ke(r.in,n)||ke(r.out,n)}if(r.type==="object"){for(let o in r.shape)if(ke(r.shape[o],n))return!0;return!1}if(r.type==="union"){for(let o of r.options)if(ke(o,n))return!0;return!1}if(r.type==="tuple"){for(let o of r.items)if(ke(o,n))return!0;if(r.rest&&ke(r.rest,n))return!0;return!1}return!1}var hg=(e,t={})=>(n)=>{let r=Fa({...n,processors:t});return ie(e,r),Ba(r,e),za(r,e)},dr=(e,t,n={})=>(r)=>{let{libraryOptions:o,target:i}=r??{},s=Fa({...o??{},target:i,io:t,processors:n});return ie(e,s),Ba(s,e),za(s,e)};var Tn=(e,t,n)=>{if(e[t]===void 0||n>e[t])e[t]=n},Rn=(e,t,n)=>{if(e[t]===void 0||n<e[t])e[t]=n},yg=(e,t)=>{Tn(e,"minimum",t),Rn(e,"maximum",t)},kg=(e,t)=>{if(e.multipleOf??(e.multipleOf=[]),!e.multipleOf.includes(t))e.multipleOf.push(t)},Eg=(e,t)=>{e.patterns??(e.patterns=new Set),e.patterns.add(t)},vg=(e,t)=>{e.mime=e.mime?e.mime.filter((n)=>t.includes(n)):[...t]},Tg=(e,t)=>{if(e.format=t,t.includes("int"))e.isInt=!0},_g=(e,t)=>Tn(e,"minimum",t.minimum),wg=(e,t)=>Rn(e,"maximum",t.maximum),bg=(e)=>(t,n)=>{Tg(t,n.format);let[r,o]=e[n.format];Tn(t,"minimum",r),Rn(t,"maximum",o)},eR={greater_than:(e,t)=>Tn(e,t.inclusive?"minimum":"exclusiveMinimum",t.value),less_than:(e,t)=>Rn(e,t.inclusive?"maximum":"exclusiveMaximum",t.value),multiple_of:(e,t)=>kg(e,t.value),number_format:bg(so),bigint_format:bg(ra),min_length:_g,max_length:wg,length_equals:(e,t)=>yg(e,t.length),min_size:_g,max_size:wg,size_equals:(e,t)=>yg(e,t.size),string_format:(e,t)=>{if(Tg(e,t.format),t.pattern)Eg(e,t.pattern);if(t.format==="base64"||t.format==="base64url")e.contentEncoding=t.format;if(t.local||t.precision===-1)e.laxFormat=!0},mime_type:(e,t)=>vg(e,t.mime)};function We(e){let t={},n=e._zod.def,r=e._zod.traits.has("$ZodCheck")?[e,...n.checks??[]]:n.checks??[];for(let i of r)eR[i._zod.def.check]?.(t,i._zod.def);let o=e._zod.bag;if(o.minimum!==void 0)Tn(t,"minimum",o.minimum);if(o.exclusiveMinimum!==void 0)Tn(t,"exclusiveMinimum",o.exclusiveMinimum);if(o.maximum!==void 0)Rn(t,"maximum",o.maximum);if(o.exclusiveMaximum!==void 0)Rn(t,"exclusiveMaximum",o.exclusiveMaximum);if(o.multipleOf!==void 0)kg(t,o.multipleOf);if(o.format!==void 0){if(t.format??(t.format=o.format),o.format.includes("int"))t.isInt=!0}if(o.mime)vg(t,o.mime);for(let i of o.patterns??[])Eg(t,i);return t}var tR={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},nR=new Map([[ba,Hp],[bo,Wp]]),Rg=(e)=>nR.get(e)??e,Sg=(e,t,n,r)=>{let o=n;o.type="string";let{minimum:i,maximum:s,format:a,patterns:c,contentEncoding:u,laxFormat:d}=We(e);if(typeof i==="number")o.minLength=i;if(typeof s==="number")o.maxLength=s;if(a){if(o.format=tR[a]??a,o.format==="")delete o.format;if(a==="time"||d)delete o.format}if(u)o.contentEncoding=u;if(c&&c.size>0){let p=[...c].map(Rg);if(p.length===1)o.pattern=p[0].source;else if(p.length>1)o.allOf=[...p.map((l)=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:l.source}))]}},xg=(e,t,n,r)=>{let o=n,{minimum:i,maximum:s,multipleOf:a,exclusiveMaximum:c,exclusiveMinimum:u,isInt:d}=We(e);o.type=d?"integer":"number";let p=typeof u==="number"&&u>=(i??Number.NEGATIVE_INFINITY),l=typeof c==="number"&&c<=(s??Number.POSITIVE_INFINITY),m=t.target==="draft-04"||t.target==="openapi-3.0";if(p)if(m)o.minimum=u,o.exclusiveMinimum=!0;else o.exclusiveMinimum=u;else if(typeof i==="number")o.minimum=i;if(l)if(m)o.maximum=c,o.exclusiveMaximum=!0;else o.exclusiveMaximum=c;else if(typeof s==="number")o.maximum=s;if(a){let g=new Set;for(let y of a)if(Number.isFinite(y)&&y!==0)g.add(Math.abs(y));else Rt(e,t,o,r,`A multipleOf divisor of ${y} cannot be represented in JSON Schema`);let[h,...f]=g;if(h!==void 0)o.multipleOf=h;if(f.length)o.allOf=[...o.allOf??[],...f.map((y)=>({multipleOf:y}))]}},Ag=(e,t,n,r)=>{n.type="boolean"};var Cg=(e,t,n,r)=>{n.not={}};var Og=(e,t,n,r)=>{};var Pg=(e,t,n,r)=>{let o=e._zod.def,i=Qn(o.entries);if(i.length===0){n.not={};return}if(i.every((s)=>typeof s==="number"))n.type="number";if(i.every((s)=>typeof s==="string"))n.type="string";n.enum=i},Ig=(e,t,n,r)=>{let o=e._zod.def;if(o.values.length===0){n.not={};return}let i=[];for(let s of o.values)if(s===void 0){if(Rt(e,t,n,r,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof s==="bigint"){if(Rt(e,t,n,r,"BigInt literals cannot be represented in JSON Schema"))return;i.push(Number(s))}else i.push(s);if(i.length===0);else if(i.length===1){let s=i[0];if(n.type=s===null?"null":typeof s,t.target==="draft-04"||t.target==="openapi-3.0")n.enum=[s];else n.const=s}else{if(i.every((s)=>typeof s==="number"))n.type="number";if(i.every((s)=>typeof s==="string"))n.type="string";if(i.every((s)=>typeof s==="boolean"))n.type="boolean";if(i.every((s)=>s===null))n.type="null";n.enum=i}};var Lg=(e,t,n,r)=>{Rt(e,t,n,r,"Custom types cannot be represented in JSON Schema")};var Ng=(e,t,n,r)=>{Rt(e,t,n,r,"Transforms cannot be represented in JSON Schema")};var Dg=(e,t,n,r)=>{let o=n,i=e._zod.def,{minimum:s,maximum:a}=We(e);if(typeof s==="number")o.minItems=s;if(typeof a==="number")o.maxItems=a;o.type="array",o.items=ie(i.element,t,{...r,path:[...r.path,"items"]})};function Oo(e){let t=e._zod.def;if(t.type==="pipe"&&t.in._zod.traits.has("$ZodTransform"))return Oo(t.out);if(t.type==="catch")return Oo(t.innerType);return e._zod.optin}var Ug=(e,t,n,r)=>{let o=n,i=e._zod.def,s=i.shape;if(Object.getOwnPropertySymbols(s).length&&Rt(e,t,o,r,"Symbol keys cannot be represented in JSON Schema"))return;o.type="object",o.properties={};for(let d in s)He(o.properties,d,ie(s[d],t,{...r,path:[...r.path,"properties",d]}));let c=new Set(Object.keys(s)),u=new Set([...c].filter((d)=>{let p=i.shape[d];if(t.io==="input")return Oo(p)===void 0;else return p._zod.optout===void 0}));if(u.size>0)o.required=Array.from(u);if(i.catchall?._zod.def.type==="never")o.additionalProperties=!1;else if(!i.catchall){if(t.io==="output")o.additionalProperties=!1}else if(i.catchall)o.additionalProperties=ie(i.catchall,t,{...r,path:[...r.path,"additionalProperties"]})};var Mg=(e,t,n,r)=>{let o=e._zod.def,i=o.inclusive===!1,s=o.options.map((a,c)=>ie(a,t,{...r,path:[...r.path,i?"oneOf":"anyOf",c]}));if(i)n.oneOf=s;else n.anyOf=s},$g=(e,t,n,r)=>{let o=e._zod.def,i=ie(o.left,t,{...r,path:[...r.path,"allOf",0]}),s=ie(o.right,t,{...r,path:[...r.path,"allOf",1]}),a=(u)=>("allOf"in u)&&Object.keys(u).length===1,c=[...a(i)?i.allOf:[i],...a(s)?s.allOf:[s]];n.allOf=c,t.intersections.push(c)};function qa(e,t,n){if(t.$ref){if(n.has(t))return t;n.add(t);let g=e.get(t)?.def;if(!g)return t;let h=qa(e,g,n);return h===g?t:h}for(let g of["anyOf","oneOf"]){let h=t[g];if(!Array.isArray(h))continue;let f=h.map((y)=>qa(e,y,n));if(f.some((y,_)=>y!==h[_]))t={...t,[g]:f}}let r=Array.isArray(t.type)?t.type:[t.type],o=!r.includes("string")&&r.some((g)=>g==="number"||g==="integer"),i=t.enum??(t.const!==void 0?[t.const]:void 0);if(!o&&!i?.some((g)=>typeof g==="number"))return t;let{minimum:s,maximum:a,exclusiveMinimum:c,exclusiveMaximum:u,multipleOf:d,format:p,id:l,...m}=t;if(m.enum)m.enum=m.enum.map((g)=>typeof g==="number"?String(g):g);else if(typeof m.const==="number")m.const=String(m.const);if(!o)return m;if(m.type="string",!i)m.pattern=(r.includes("number")?nr:ma).source;return m}var Ha=new WeakMap;function rR(e){let t=new Map;for(let r of e.seen.values())if(r.def&&!t.has(r.schema))t.set(r.schema,r);let n=new Map;for(let r of Ha.get(e)??[]){let o=e.seen.get(r),i=(o?.def??o?.schema)?.propertyNames;if(!i||i===!0||n.has(i))continue;let s=qa(t,i,new Set);if(s!==i)n.set(i,s)}if(!n.size)return;for(let r of e.seen.values())for(let o of[r.schema,r.def]){let i=o&&n.get(o.propertyNames);if(i)o.propertyNames=i}}var Fg=(e,t,n,r)=>{let o=n,i=e._zod.def;o.type="object";let s=i.keyType,a=We(s).patterns;if(i.mode==="loose"&&a&&a.size>0){let d=ie(i.valueType,t,{...r,path:[...r.path,"patternProperties","*"]});o.patternProperties={};for(let p of a)He(o.patternProperties,Rg(p).source,d)}else{if(t.target==="draft-07"||t.target==="draft-2020-12"){o.propertyNames=ie(i.keyType,t,{...r,path:[...r.path,"propertyNames"]});let d=Ha.get(t);if(!d)d=[],Ha.set(t,d),t.deferred.push(()=>rR(t));d.push(e)}o.additionalProperties=ie(i.valueType,t,{...r,path:[...r.path,"additionalProperties"]})}let c=s._zod.values,u=t.io==="input"&&Oo(i.valueType)!==void 0;if(c&&!i.partial&&!u){let d=[...c].filter((p)=>typeof p==="string"||typeof p==="number");if(d.length>0)o.required=d.map(String)}},Bg=(e,t,n,r)=>{let o=e._zod.def,i=ie(o.innerType,t,r),s=t.seen.get(e);if(t.target==="openapi-3.0")s.ref=o.innerType,n.nullable=!0;else n.anyOf=[i,{type:"null"}]},zg=(e,t,n,r)=>{let o=e._zod.def;ie(o.innerType,t,r);let i=t.seen.get(e);i.ref=o.innerType},Wa=Symbol();function qg(e,t,n,r,o){let i=!1,s=JSON.stringify(e,(a,c)=>{if(typeof c!=="bigint")return c;return i=!0,null});if(!i)return JSON.parse(s);return Rt(t,n,r,o,"BigInt defaults cannot be represented in JSON Schema"),Wa}var Hg=(e,t,n,r)=>{let o=e._zod.def;ie(o.innerType,t,r);let i=t.seen.get(e);i.ref=o.innerType;let s=qg(o.defaultValue,e,t,n,r);if(s!==Wa)n.default=s},Wg=(e,t,n,r)=>{let o=e._zod.def;ie(o.innerType,t,r);let i=t.seen.get(e);if(i.ref=o.innerType,t.io!=="input")return;let s=qg(o.defaultValue,e,t,n,r);if(s!==Wa)n._prefault=s},jg=(e,t,n,r)=>{let o=e._zod.def;ie(o.innerType,t,r);let i=t.seen.get(e);i.ref=o.innerType;let s;try{s=o.catchValue(void 0)}catch{Rt(e,t,n,r,"Dynamic catch values are not supported in JSON Schema");return}n.default=s},Kg=(e,t,n,r)=>{let o=e._zod.def,i=o.in._zod.traits.has("$ZodTransform"),s=t.io==="input"?i?o.out:o.in:o.out;ie(s,t,r);let a=t.seen.get(e);a.ref=s},Gg=(e,t,n,r)=>{let o=e._zod.def;ie(o.innerType,t,r);let i=t.seen.get(e);i.ref=o.innerType,n.readOnly=!0};var ja=(e,t,n,r)=>{let o=e._zod.def;ie(o.innerType,t,r);let i=t.seen.get(e);i.ref=o.innerType};var Zg=new WeakSet([Object.prototype,Error.prototype]);function Po(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){let r=n(this);return Object.defineProperty(this,t,{value:r,configurable:!0,writable:!0}),r},set(r){Object.defineProperty(this,t,{value:r,configurable:!0,writable:!0})}})}var dR=(e,t)=>{hp.init(e,t),e.name="ZodError";let n=Object.getPrototypeOf(e);if(Zg.has(n))return;Zg.add(n),Po(n,"format",(r)=>(o)=>_p(r,o)),Po(n,"flatten",(r)=>(o)=>yp(r,o)),Po(n,"addIssue",(r)=>(o)=>{r.issues.push(o),r.message=JSON.stringify(r.issues,Yn,2)}),Po(n,"addIssues",(r)=>(o)=>{r.issues.push(...o),r.message=JSON.stringify(r.issues,Yn,2)}),Object.defineProperty(n,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}})};var De=v("ZodError",dR,void 0,{Parent:Error});var Xg=po(De),Vg=mo(De),Qg=fo(De),Yg=go(De),Jg=bp(De),eh=kp(De),th=Ep(De),nh=vp(De),rh=Tp(De),oh=Rp(De),ih=Sp(De),sh=xp(De);function pR(){if(!Re.localeError)Ne(Sa())}function Lo(){if(!Re.memoizer)Ne({memoizer:xf()})}var ee=v("ZodType",(e,t)=>(pR(),Q.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(Le(t,{checks:[...t.checks??[],...e.map((n)=>typeof n==="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return ut(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(cS(e,t))},superRefine(e,t){return this.check(dS(e,t))},overwrite(e){return this.check(Ut(e))},optional(){return ch(this)},exactOptional(){return VR(this)},nullable(){return dh(this)},nullish(){return ch(dh(this))},nonoptional(e){return nS(this,e)},array(){return Sn(this)},or(e){return Xa([this,e])},and(e){return KR(this,e)},transform(e){return lh(this,XR(e))},default(e){return JR(this,e)},prefault(e){return tS(this,e)},catch(e){return oS(this,e)},pipe(e){return lh(this,e)},readonly(){return aS(this)},describe(e){let t=this.clone();return rn.add(t,{description:e}),t},meta(...e){if(e.length===0)return rn.get(this);let t=this.clone();return rn.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get "~standard"(){return ia(this,"~standard",{...wa(this),jsonSchema:{input:dr(this,"input"),output:dr(this,"output")}})},set "~standard"(e){vt(this,"~standard",e)},parse:function e(t,n){return Xg(this,t,n,{callee:e})},parseAsync:async function e(t,n){return await Vg(this,t,n,{callee:e})},safeParse(e,t){return Qg(this,e,t)},async safeParseAsync(e,t){return Yg(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){vt(this,"spa",e)},validate(e,t){return ca(this,e,t)},validateAsync(e,t){return da(this,e,t)},encode:function e(t,n){return Jg(this,t,n,{callee:e})},decode:function e(t,n){return eh(this,t,n,{callee:e})},encodeAsync:async function e(t,n){return await th(this,t,n,{callee:e})},decodeAsync:async function e(t,n){return await nh(this,t,n,{callee:e})},safeEncode(e,t){return rh(this,e,t)},safeDecode(e,t){return oh(this,e,t)},async safeEncodeAsync(e,t){return ih(this,e,t)},async safeDecodeAsync(e,t){return sh(this,e,t)},toJSONSchema(e){return hg(this,{})(e)},get description(){return rn.get(this)?.description},get _def(){return this._zod.def}}),ph=v("_ZodString",(e,t)=>{wo.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Sg(e,n,r,o)},dp({format:(e)=>We(e).format??null,minLength:(e)=>We(e).minimum??null,maxLength:(e)=>We(e).maximum??null},{regex(...e){return this.check(xa(...e))},includes(...e){return this.check(Oa(...e))},startsWith(...e){return this.check(Pa(...e))},endsWith(...e){return this.check(Ia(...e))},min(...e){return this.check(vn(...e))},max(...e){return this.check(Ao(...e))},length(...e){return this.check(Co(...e))},nonempty(...e){return this.check(vn(1,...e))},lowercase(e){return this.check(Aa(e))},uppercase(e){return this.check(Ca(e))},trim(){return this.check(Na())},normalize(...e){return this.check(La(...e))},toLowerCase(){return this.check(Da())},toUpperCase(){return this.check(Ua())},slugify(){return this.check(Ma())}})),mR=v("ZodString",(e,t)=>{wo.init(e,t),ph.init(e,t)},{email(e){return this.check(Pf(_R,e))},url(e){return this.check(Mf(bR,e))},jwt(e){return this.check(Yf(DR,e))},emoji(e){return this.check($f(kR,e))},guid(e){return this.check(If(wR,e))},uuid(e){return this.check(Lf(Io,e))},uuidv4(e){return this.check(Nf(Io,e))},uuidv6(e){return this.check(Df(Io,e))},uuidv7(e){return this.check(Uf(Io,e))},nanoid(e){return this.check(Ff(ER,e))},cuid(e){return this.check(Bf(vR,e))},cuid2(e){return this.check(zf(TR,e))},ulid(e){return this.check(qf(RR,e))},base64(e){return this.check(Xf(IR,e))},base64url(e){return this.check(Vf(LR,e))},xid(e){return this.check(Hf(SR,e))},ksuid(e){return this.check(Wf(xR,e))},ipv4(e){return this.check(jf(AR,e))},ipv6(e){return this.check(Kf(CR,e))},cidrv4(e){return this.check(Gf(OR,e))},cidrv6(e){return this.check(Zf(PR,e))},e164(e){return this.check(Qf(NR,e))},datetime(e){return this.check(Jf(fR,e))},date(e){return this.check(eg(gR,e))},time(e){return this.check(tg(hR,e))},duration(e){return this.check(ng(yR,e))}});function K(e){return Of(mR,e)}var te=v("ZodStringFormat",(e,t)=>{Y.init(e,t),ph.init(e,t)}),fR=v("ZodISODateTime",(e,t)=>{Fm.init(e,t),te.init(e,t)}),gR=v("ZodISODate",(e,t)=>{Bm.init(e,t),te.init(e,t)}),hR=v("ZodISOTime",(e,t)=>{zm.init(e,t),te.init(e,t)}),yR=v("ZodISODuration",(e,t)=>{qm.init(e,t),te.init(e,t)}),_R=v("ZodEmail",(e,t)=>{Am.init(e,t),te.init(e,t)});var wR=v("ZodGUID",(e,t)=>{Sm.init(e,t),te.init(e,t)});var Io=v("ZodUUID",(e,t)=>{xm.init(e,t),te.init(e,t)});var bR=v("ZodURL",(e,t)=>{Pm.init(e,t),te.init(e,t)});var kR=v("ZodEmoji",(e,t)=>{Im.init(e,t),te.init(e,t)});var ER=v("ZodNanoID",(e,t)=>{Lm.init(e,t),te.init(e,t)});var vR=v("ZodCUID",(e,t)=>{Nm.init(e,t),te.init(e,t)});var TR=v("ZodCUID2",(e,t)=>{Dm.init(e,t),te.init(e,t)});var RR=v("ZodULID",(e,t)=>{Um.init(e,t),te.init(e,t)});var SR=v("ZodXID",(e,t)=>{Mm.init(e,t),te.init(e,t)});var xR=v("ZodKSUID",(e,t)=>{$m.init(e,t),te.init(e,t)});var AR=v("ZodIPv4",(e,t)=>{Hm.init(e,t),te.init(e,t)});var CR=v("ZodIPv6",(e,t)=>{jm.init(e,t),te.init(e,t)});var OR=v("ZodCIDRv4",(e,t)=>{Km.init(e,t),te.init(e,t)});var PR=v("ZodCIDRv6",(e,t)=>{Gm.init(e,t),te.init(e,t)});var IR=v("ZodBase64",(e,t)=>{Xm.init(e,t),te.init(e,t)});var LR=v("ZodBase64URL",(e,t)=>{Vm.init(e,t),te.init(e,t)});var NR=v("ZodE164",(e,t)=>{Qm.init(e,t),te.init(e,t)});var DR=v("ZodJWT",(e,t)=>{Ym.init(e,t),te.init(e,t)});var mh=v("ZodNumber",(e,t)=>{ka.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>xg(e,n,r,o),e.isFinite=!0},dp({minValue:(e)=>{let{minimum:t,exclusiveMinimum:n}=We(e);return Math.max(t??Number.NEGATIVE_INFINITY,n??Number.NEGATIVE_INFINITY)},maxValue:(e)=>{let{maximum:t,exclusiveMaximum:n}=We(e);return Math.min(t??Number.POSITIVE_INFINITY,n??Number.POSITIVE_INFINITY)},isInt:(e)=>{let{isInt:t,multipleOf:n}=We(e);return!!t||!!n?.some(Number.isSafeInteger)},format:(e)=>We(e).format??null},{gt(e,t){return this.check(So(e,t))},gte(e,t){return this.check(ur(e,t))},min(e,t){return this.check(ur(e,t))},lt(e,t){return this.check(Ro(e,t))},lte(e,t){return this.check(ar(e,t))},max(e,t){return this.check(ar(e,t))},int(e){return this.check(ah(e))},safe(e){return this.check(ah(e))},positive(e){return this.check(So(0,e))},nonnegative(e){return this.check(ur(0,e))},negative(e){return this.check(Ro(0,e))},nonpositive(e){return this.check(ar(0,e))},multipleOf(e,t){return this.check(xo(e,t))},step(e,t){return this.check(xo(e,t))},finite(){return this}}));function N(e){return rg(mh,e)}var UR=v("ZodNumberFormat",(e,t)=>{Jm.init(e,t),mh.init(e,t)});function ah(e){return og(UR,e)}var MR=v("ZodBoolean",(e,t)=>{ef.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ag(e,n,r,o)});function Ue(e){return ig(MR,e)}var $R=v("ZodUnknown",(e,t)=>{tf.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Og(e,n,r,o)});function Ga(){return sg($R)}var FR=v("ZodNever",(e,t)=>{nf.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Cg(e,n,r,o)});function BR(e){return ag(FR,e)}var zR=v("ZodArray",(e,t)=>{Lo(),rf.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Dg(e,n,r,o),e.element=t.element},{min(e,t){return this.check(vn(e,t))},nonempty(e){return this.check(vn(1,e))},max(e,t){return this.check(Ao(e,t))},length(e,t){return this.check(Co(e,t))},unwrap(){return this.element}});function Sn(e,t){return ug(zR,e,t)}var qR=v("ZodObject",(e,t)=>{Lo(),af.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ug(e,n,r,o),bT(e,"shape",(n)=>n._zod.def.shape,!1)},{keyof(){return St(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(Le(this._zod.def,{catchall:e}))},passthrough(){return this.clone(Le(this._zod.def,{catchall:Ga()}))},loose(){return this.clone(Le(this._zod.def,{catchall:Ga()}))},strict(){return this.clone(Le(this._zod.def,{catchall:BR()}))},strip(){return this.clone(Le(this._zod.def,{catchall:void 0}))},extend(e){return mT(this,e)},safeExtend(e){return fT(this,e)},merge(e){return gT(this,e)},pick(e){return lT(this,e)},omit(e){return pT(this,e)},partial(...e){return sp(yh,this,e[0])},exactPartial(...e){return sp(_h,this,e[0],"exactPartial")},required(...e){return hT(wh,this,e[0])}});function ne(e,t){let n={type:"object",shape:e??{},...x(t)};return new qR(n)}var fh=v("ZodUnion",(e,t)=>{Ea.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Mg(e,n,r,o),e.options=t.options});function Xa(e,t){return new fh({type:"union",options:e,...x(t)})}var HR=v("ZodDiscriminatedUnion",(e,t)=>{fh.init(e,t),uf.init(e,t)});function WR(e,t,n){return new HR({type:"union",options:t,discriminator:e,...x(n)})}var jR=v("ZodIntersection",(e,t)=>{cf.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>$g(e,n,r,o)});function KR(e,t){return new jR({type:"intersection",left:e,right:t})}var uh=v("ZodRecord",(e,t)=>{Lo(),df.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Fg(e,n,r,o),e.keyType=t.keyType,e.valueType=t.valueType});function gh(e,t,n){if(!t||!t._zod)return new uh({type:"record",keyType:K(),valueType:e,...x(t)});return new uh({type:"record",keyType:e,valueType:t,...x(n)})}var Za=v("ZodEnum",(e,t)=>{lf.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(r,o,i)=>Pg(e,r,o,i),e.enum=t.entries,e.options=[...e._zod.values];let n=new Set(Object.keys(t.entries));e.extract=(r,o)=>{let i={};for(let s of r)if(n.has(s))i[s]=t.entries[s];else throw Error(`Key ${s} not found in enum`);return new Za({...t,checks:[],...x(o),entries:i})},e.exclude=(r,o)=>{let i={...t.entries};for(let s of r)if(n.has(s))delete i[s];else throw Error(`Key ${s} not found in enum`);return new Za({...t,checks:[],...x(o),entries:i})}});function St(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map((r)=>[r,r])):e;return new Za({type:"enum",entries:n,...x(t)})}var GR=v("ZodLiteral",(e,t)=>{pf.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ig(e,n,r,o),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function hh(e,t){return new GR({type:"literal",values:Array.isArray(e)?e:[e],...x(t)})}var ZR=v("ZodTransform",(e,t)=>{Lo(),mf.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ng(e,n,r,o),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new tr(e.constructor.name);n.addIssue=(i)=>{if(typeof i==="string")n.issues.push(nn(i,n.value,t));else{let s=i;if(s.fatal)s.continue=!1;if(s.code??(s.code="custom"),!("input"in s))s.input=n.value;s.inst??(s.inst=e),n.issues.push(nn(s))}};let o=t.transform(n.value,n);if(o instanceof Promise)return o.then((i)=>(n.value=i,n));return n.value=o,n}});function XR(e){return new ZR({type:"transform",transform:e})}var yh=v("ZodOptional",(e,t)=>{va.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ja(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function ch(e){return new yh({type:"optional",innerType:e})}var _h=v("ZodExactOptional",(e,t)=>{ff.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ja(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function VR(e){return new _h({type:"optional",innerType:e})}var QR=v("ZodNullable",(e,t)=>{gf.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Bg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function dh(e){return new QR({type:"nullable",innerType:e})}var YR=v("ZodDefault",(e,t)=>{hf.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Hg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function JR(e,t){return new YR({type:"default",innerType:e,get defaultValue(){return typeof t==="function"?t():ta(t)}})}var eS=v("ZodPrefault",(e,t)=>{yf.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Wg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function tS(e,t){return new eS({type:"prefault",innerType:e,get defaultValue(){return typeof t==="function"?t():ta(t)}})}var wh=v("ZodNonOptional",(e,t)=>{_f.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>zg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function nS(e,t){return new wh({type:"nonoptional",innerType:e,...x(t)})}var rS=v("ZodCatch",(e,t)=>{wf.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>jg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function oS(e,t){return new rS({type:"catch",innerType:e,catchValue:typeof t==="function"?t:lp(t)})}var iS=v("ZodPipe",(e,t)=>{bf.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Kg(e,n,r,o),e.in=t.in,e.out=t.out});function lh(e,t){return new iS({type:"pipe",in:e,out:t})}var sS=v("ZodReadonly",(e,t)=>{kf.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Gg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function aS(e){return new sS({type:"readonly",innerType:e})}var uS=v("ZodCustom",(e,t)=>{Ef.init(e,t),ee.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Lg(e,n,r,o)});function cS(e,t={}){return cg(uS,e,t)}function dS(e,t){return dg(e,t)}var xn=["1m","5h","1w"],Uo={"1m":60000,"5h":18000000,"1w":604800000},Do=N().int().positive().nullable(),bh=N().positive().nullable(),kh=ne({"1m":Do.optional(),"5h":Do.optional(),"1w":Do.optional()}).strict(),lS=ne({"5h":bh.optional(),"1w":bh.optional()}).strict(),Va=ne({requests:kh.optional(),tokens:kh.optional(),spend:lS.optional(),concurrency:Do.optional()}).strict(),Eh=64,pS=256;function mS(e){if(e.concurrency!==void 0&&e.concurrency!==null)return!0;for(let t of["requests","tokens","spend"]){let n=e[t];if(n===void 0)continue;for(let r of xn){let o=n[r];if(o!==void 0&&o!==null)return!0}}return!1}var fS=Va.refine(mS,{message:"a model override must set at least one limit; omit the model to remove it"}),lr=Va.extend({models:gh(K().min(1).max(pS),fS).refine((e)=>Object.keys(e).length<=Eh,{message:`at most ${Eh} model overrides per key`}).optional()}).strict();function Qa(e,t){let n=e.models;if(n===void 0||!Object.hasOwn(n,t))return;return n[t]}function vh(e,t){if(typeof e!=="object"||e===null)return;for(let n of Object.getOwnPropertyNames(e)){if(n==="__proto__")throw Error(`limits cannot name "__proto__"${t===""?"":` under ${t}`}`);vh(e[n],t===""?n:`${t}.${n}`)}}function Je(e){return vh(e,""),lr.parse(e)}class Mo{windowMs;stamps=[];constructor(e){this.windowMs=e}count(e){let t=e-this.windowMs,n=0;for(let r of this.stamps){if(r>t)break;n++}if(n>0)this.stamps.splice(0,n);return this.stamps.length}record(e){this.stamps.push(e)}forget(e){for(let t=this.stamps.length-1;t>=0;t--){let n=this.stamps[t];if(n===void 0||n<e)return;if(n===e){this.stamps.splice(t,1);return}}}resetAt(e){let t=this.stamps[0];return t===void 0?e:t+this.windowMs}get empty(){return this.stamps.length===0}}class $o extends Error{constructor(e){super(`LOCK_UNAVAILABLE: ${e}`);this.name="LockUnavailable"}}var gS=1000;function Mt(e={}){let t=e.now??(()=>Date.now()),n=new Map,r=new Map,o=(f)=>{if(f===void 0)return;if(f==="")throw TypeError("gauge holder must be a non-empty string");return f},i=(f)=>{let y=t(),_=(r.get(f)??[]).filter((b)=>b.expiresAt>y);if(_.length===0)r.delete(f);else r.set(f,_);return _},s=new Map,a=new Map,c=new Map,u=new Map,d=new Set,p=new Map,l=Number.NEGATIVE_INFINITY,m=(f,y)=>Math.floor(y/f)*f,g=(f,y,_,b)=>{let k=c.get(f);if(k===void 0)return;let E=m(y,b-_);for(let T of k.keys())if(T<E)k.delete(T)},h=(f)=>{let y=f-l;if(y>=0&&y<gS)return;l=f;for(let[_,b]of n)if(b.count(f),b.empty)n.delete(_)};return{liveWindows:()=>n.size,window:{claim(f,y,_){h(_);let b=n.get(f);if(b===void 0)b=new Mo(y),n.set(f,b);let k={used:b.count(_),resetAt:b.resetAt(_)};return b.record(_),Promise.resolve({stamp:_,before:k})},rollback(f,y){return n.get(f)?.forget(y),Promise.resolve()}},gauge:{acquire(f,y,_){let b=o(_),k=i(f),E=t()+y,T=b===void 0?-1:k.findIndex((re)=>re.holder===b);if(T!==-1&&b!==void 0)return k[T]={expiresAt:E,holder:b},r.set(f,k),Promise.resolve(k.length-1);let I=k.length;return k.push(b===void 0?{expiresAt:E}:{expiresAt:E,holder:b}),r.set(f,k),Promise.resolve(I)},renew(f,y,_){o(y);let b=i(f),k=b.findIndex((E)=>E.holder===y);if(k!==-1)b[k]={expiresAt:t()+_,holder:y},r.set(f,b);return Promise.resolve()},release(f,y){o(y);let _=i(f);if(y===void 0)_.sort((b,k)=>b.expiresAt-k.expiresAt).shift();else{let b=_.findIndex((k)=>k.holder===y);if(b!==-1)_.splice(b,1)}if(_.length===0)r.delete(f);else r.set(f,_);return Promise.resolve()},read(f){return Promise.resolve(i(f).length)},snapshot(f){let y=new Map;for(let _ of[...r.keys()]){if(!_.startsWith(f))continue;let b=i(_).length;if(b>0)y.set(_,b)}return Promise.resolve(y)}},buckets:{add(f,y,_,b,k){g(f,y,_,b);let E=c.get(f);if(E===void 0)return Promise.resolve();let T=m(y,b),I=E.get(T)??{requests:0,tokens:0,costUsd:0};return E.set(T,{requests:I.requests+k.requests,tokens:I.tokens+k.tokens,costUsd:I.costUsd+k.costUsd}),Promise.resolve()},sum(f,y,_,b){g(f,y,_,b);let k=c.get(f);if(k===void 0)return Promise.resolve(null);let E={requests:0,tokens:0,costUsd:0};for(let T of k.values())E.requests+=T.requests,E.tokens+=T.tokens,E.costUsd+=T.costUsd;return Promise.resolve(E)},seed(f,y,_,b,k){let E=new Map;for(let[T,I]of k)E.set(m(y,T),{...I});return c.set(f,E),g(f,y,_,b),Promise.resolve()}},lease:{acquire(f,y,_){let b=u.get(f),k=t();if(b!==void 0&&b.holder!==y&&b.expiresAt>k)return Promise.resolve(!1);return u.set(f,{holder:y,expiresAt:k+_}),Promise.resolve(!0)},release(f,y){if(u.get(f)?.holder===y)u.delete(f);return Promise.resolve()}},pubsub:{publish(f,y){for(let _ of d)if(_.pattern.endsWith("*")?f.startsWith(_.pattern.slice(0,-1)):f===_.pattern)_.fn(f,y);return Promise.resolve()},publishSequenced(f,y,_){let b=(p.get(_)??0)+1;return p.set(_,b),this.publish(f,`${b}:${y}`).then(()=>b)},subscribe(f,y){let _={pattern:f,fn:y};return d.add(_),()=>{d.delete(_)}}},incr(f){let y=(p.get(f)??0)+1;return p.set(f,y),Promise.resolve(y)},kv:{set(f,y,_){return a.set(f,{value:y,expiresAt:t()+_}),Promise.resolve()},get(f){let y=a.get(f);if(y===void 0)return Promise.resolve(null);if(y.expiresAt<=t())return a.delete(f),Promise.resolve(null);return Promise.resolve(y.value)},del(f){return a.delete(f),Promise.resolve()},delPrefix(f){for(let y of a.keys())if(y.startsWith(f))a.delete(y);return Promise.resolve()}},mutex:{async withLock(f,y,_,b){let k,E=new Promise((I)=>{k=setTimeout(()=>I("expired"),_)});try{for(;;){let I=s.get(f);if(I===void 0)break;if(await Promise.race([I.then(()=>"released"),E])==="expired")throw new $o(f)}}finally{clearTimeout(k)}let T=()=>{};s.set(f,new Promise((I)=>{T=I}));try{return await b()}finally{s.delete(f),T()}}}}}import{mkdir as AS,open as CS,readdir as OS,rmdir as PS,unlink as IS,writeFile as LS}from"fs/promises";import{dirname as zo,join as gr,sep as NS}from"path";import{promisify as xh}from"util";import{gunzip as DS,gzip as US}from"zlib";var hS=new TextEncoder().encode("omnigateway-field-encryption-v1");async function Fo(e){let t=await crypto.subtle.importKey("raw",new TextEncoder().encode(e),"PBKDF2",!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"PBKDF2",salt:hS,iterations:210000,hash:"SHA-256"},t,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}async function Bo(e,t){let n=crypto.getRandomValues(new Uint8Array(12)),r=new Uint8Array(await crypto.subtle.encrypt({name:"AES-GCM",iv:n,tagLength:128},e,new TextEncoder().encode(t))),o=r.subarray(0,r.length-16),i=r.subarray(r.length-16);return["enc:v1",Ja(n),Ja(o),Ja(i)].join(":")}var yS=/^[0-9a-f]*$/;function Ya(e){return e.length%2===0&&yS.test(e)}async function An(e,t){let n=t.split(":"),[r,o,i,s,a]=n;if(n.length!==5||r!=="enc"||o!=="v1"||!i||!a||s===void 0||!Ya(i)||!Ya(s)||!Ya(a))throw Error("malformed ciphertext");let c=new Uint8Array([...eu(s),...eu(a)]),u=await crypto.subtle.decrypt({name:"AES-GCM",iv:eu(i),tagLength:128},e,c);return new TextDecoder().decode(u)}function Ja(e){return Array.from(e,(t)=>t.toString(16).padStart(2,"0")).join("")}function eu(e){let t=new Uint8Array(e.length/2);for(let n=0;n<t.length;n++)t[n]=Number.parseInt(e.slice(n*2,n*2+2),16);return t}var Th=new TextEncoder,_S=new TextDecoder,wS=65536-Th.encode("\u2026[truncated]").length-3;function bS(e){let t=Th.encode(e);if(t.length<=65536)return e;return _S.decode(t.subarray(0,wS))+"\u2026[truncated]"}function pr(e){let t=!1,n=(o,i)=>{if(typeof o==="string"){let s=bS(o);if(s!==o)t=!0;return s}if(Array.isArray(o)){if(i>6)return t=!0,"[omitted: nesting past 6 levels]";let s=o.length>24?o.slice(-24):o;if(s.length!==o.length)t=!0;return s.map((a)=>n(a,i+1))}if(o!==null&&typeof o==="object"){if(i>6)return t=!0,"[omitted: nesting past 6 levels]";let s=Object.entries(o),a=s.length>80?s.slice(0,80):s;if(a.length!==s.length)t=!0;return Object.fromEntries(a.map(([c,u])=>[c,n(u,i+1)]))}return o};return{value:n(e,1),truncated:t}}var kS=/\b(bearer)\s+[A-Za-z0-9._~+/=-]+/gi,ES=/(?<![A-Za-z0-9_-])(?:sk|ak|pk)-[A-Za-z0-9_-]{8,}/g,vS=/(?<![A-Za-z0-9_-])(?:gh[posu]_|github_pat_|AIza|GOCSPX-)[A-Za-z0-9_-]{8,}/g,TS=/^(?:gh[posu]_|github_pat_|AIza|GOCSPX-)/,RS=/(?<![A-Za-z0-9_-])xai-[A-Za-z0-9_]{8,}/g,SS=/[A-Za-z0-9_-]{41,}/g,xS=[{id:"bearer",pattern:kS,keep:(e)=>e.length-e.replace(/^bearer\s+/i,"").length},{id:"prefixedKey",pattern:ES,keep:()=>3},{id:"vendorKey",pattern:vS,keep:(e)=>TS.exec(e)?.[0].length??0},{id:"xaiKey",pattern:RS,keep:()=>4},{id:"opaque",pattern:SS,keep:()=>0}];function tu(e){return xS.reduce((t,n)=>t.replace(n.pattern,(r)=>`${r.slice(0,n.keep(r))}[redacted]`),e)}function Cn(e){if(typeof e==="string")return tu(e);if(Array.isArray(e))return e.map(Cn);if(e!==null&&typeof e==="object")return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,Cn(n)]));return e}var Ah=1,xt=524288,hr=1e5,Ch="request_bodies",ru=new TextEncoder;function yr(e){return gr(zo(e),Ch)}var MS=/^[A-Za-z0-9_-]{1,128}$/;function Ho(e){return MS.test(e)}function Wo(e,t){let n=new Date(t),r=String(n.getUTCFullYear()).padStart(4,"0"),o=String(n.getUTCMonth()+1).padStart(2,"0"),i=String(n.getUTCDate()).padStart(2,"0");return`${r}/${o}/${i}/${e}.json.enc`}async function Oh(e){let t=await crypto.subtle.digest("SHA-256",new Uint8Array(e));return Array.from(new Uint8Array(t),(n)=>n.toString(16).padStart(2,"0")).join("")}function Rh(e){let t=pr(Cn(e.request)),n=pr(Cn(e.response));return{request:t.value,response:n.value,truncated:e.truncated===!0||t.truncated||n.truncated}}function $S(e){return{omitted:!0,reason:`artifact exceeded ${xt} bytes after structural bounding`,serializedBytes:e}}function FS(e,t){return{...e,client:{request:t,response:t,truncated:!0},attempts:e.attempts.map((n)=>({attempt:n.attempt,provider:n.provider,request:t,response:t,streamChunks:null,truncated:!0}))}}function jo(e){let t=Rh(e.client),n=e.attempts.map((p)=>{let l=Rh(p),m=p.streamChunks===null?null:pr(p.streamChunks.map(tu));return{attempt:p.attempt,provider:p.provider,request:l.request,response:l.response,streamChunks:m===null?null:m.value,truncated:l.truncated||(m?.truncated??!1)}}),r=pr(Cn(e.error)),o={schemaVersion:Ah,requestId:e.requestId,at:e.at,client:t,attempts:n,error:r.value},i=JSON.stringify(o),s=Buffer.byteLength(i);if(s<=xt)return{artifact:o,json:i};let a=$S(s),c=FS(o,a),u=JSON.stringify(c);if(Buffer.byteLength(u)<=xt)return{artifact:c,json:u};let d={...c,error:a};return{artifact:d,json:JSON.stringify(d)}}var Ko=2*xt+65,Ph=ru.encode("OGBA"),BS=ru.encode("enc:v1:"),Ih=1,$t=10,fr=12,ou=16,qo=$t+fr+ou,zS=xt+qo,iu=0,Lh=1;var qS=18,qM=xh(US),HS=xh(DS);function mr(e,t,n){return e.slice(t,n)}function WS(e){let t=ru.encode(e);if(t.length<1||t.length>xt)throw Error("artifact plaintext is outside the binary envelope's bounds");return t}async function Go(e,t){let n=WS(t);return jS(e,n.length,iu,n)}async function jS(e,t,n,r){let o=new Uint8Array(qo+r.length);o.set(Ph,0),o[4]=Ih,o[5]=n,new DataView(o.buffer).setUint32(6,t,!1);let i=crypto.getRandomValues(new Uint8Array(fr)),s=await crypto.subtle.encrypt({name:"AES-GCM",iv:i,additionalData:mr(o,0,$t),tagLength:ou*8},e,mr(r,0));return o.set(i,$t),o.set(new Uint8Array(s),$t+fr),{bytes:o,sha256:await Oh(o)}}async function Nh(e,t,n,r){let o=await KS(gr(t,n));if(!(o instanceof Uint8Array))return{ok:!1,failure:o};return su(e,o,r)}async function KS(e){let t;try{t=await CS(e,"r")}catch{return"missing"}try{let{size:n}=await t.stat();if(n>Ko)return"corrupt";let r=new Uint8Array(n+1),o=0;while(o<r.length){let{bytesRead:i}=await t.read(r,o,r.length-o,o);if(i===0)break;o+=i}return o>n?"corrupt":r.subarray(0,o)}catch{return"missing"}finally{await t.close().catch(()=>{})}}var nu=/^(?:[0-9a-f]{2})*$/,GS=24,ZS=32;function XS(e){let t=e.split(":"),[n,r,o,i,s]=t;return t.length===5&&n==="enc"&&r==="v1"&&o!==void 0&&i!==void 0&&s!==void 0&&o.length===GS&&s.length===ZS&&nu.test(o)&&nu.test(i)&&nu.test(s)}function VS(e,t,n){switch(e){case iu:return t===n;case Lh:return t>=qS;default:return!1}}async function QS(e,t,n){switch(e){case iu:return t;case Lh:return YS(t,n);default:throw Error("unsupported artifact codec")}}async function YS(e,t){let n=await HS(e,{maxOutputLength:xt,info:!0}),r=JS(n);if(r===null)throw Error("gzip result has an unexpected shape");if(r.consumed!==e.length)throw Error("bytes follow the gzip stream");if(r.output.length!==t)throw Error("gzip output is not the claimed length");return r.output}function JS(e){if(typeof e!=="object"||e===null)return null;if(!("buffer"in e)||!("engine"in e))return null;let{buffer:t,engine:n}=e;if(!(t instanceof Uint8Array)||typeof n!=="object"||n===null)return null;if(!("bytesWritten"in n)||typeof n.bytesWritten!=="number")return null;return{output:t,consumed:n.bytesWritten}}function ex(e){if(e.length<qo||e.length>zS)return null;let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=t.getUint8(4),r=t.getUint8(5),o=t.getUint32(6,!1);if(n!==Ih)return null;if(o<1||o>xt)return null;if(!VS(r,e.length-qo,o))return null;return{header:mr(e,0,$t),codec:r,claimed:o,iv:mr(e,$t,$t+fr),sealed:mr(e,$t+fr)}}async function tx(e,t){let n=await crypto.subtle.decrypt({name:"AES-GCM",iv:t.iv,additionalData:t.header,tagLength:ou*8},e,t.sealed);return new TextDecoder("utf-8",{fatal:!0}).decode(await QS(t.codec,new Uint8Array(n),t.claimed))}function Sh(e,t){if(e.length<t.length)return!1;return t.every((n,r)=>e[r]===n)}async function su(e,t,n){let r={ok:!1,failure:"corrupt"};try{if(t.length>Ko)return r;let o;if(Sh(t,Ph)){let s=ex(t);if(s===null)return r;o=()=>tx(e,s)}else if(Sh(t,BS)){let s=new TextDecoder().decode(t);if(!XS(s))return r;o=()=>An(e,s)}else return r;if(n!==null&&await Oh(t)!==n)return r;let i=JSON.parse(await o());if(i===null||typeof i!=="object"||Array.isArray(i))return r;return{ok:!0,artifact:i}}catch{return r}}async function Dh(e,t,n){let r=gr(e,t);await AS(zo(r),{recursive:!0}),await LS(r,n)}async function au(e,t){let n=gr(e,t);try{await IS(n)}catch{return}let r=zo(n);while(r.length>e.length&&r.startsWith(e+NS)){try{await PS(r)}catch{return}r=zo(r)}}async function Uh(e){let t=[],n=async(r,o)=>{let i;try{i=await OS(r,{withFileTypes:!0})}catch{return}for(let s of i){let a=o===""?s.name:`${o}/${s.name}`;if(s.isDirectory())await n(gr(r,s.name),a);else if(s.isFile())t.push(a)}};return await n(e,""),t}var Ee="context-1m-2025-08-07",Mh=1e6;var J={AUTH:!0,RATE_LIMIT:!0,QUOTA_EXHAUSTED:!0,OVERLOADED:!0,MODEL_UNAVAILABLE:!0,CAPABILITY_MISMATCH:!0,UPSTREAM:!0,TIMEOUT:!0,NETWORK:!0,BAD_REQUEST:!1,CONFLICT:!1,CONTENT_FILTER:!1,FINGERPRINT_REFUSED:!1,NO_CANDIDATES:!1,ALL_CANDIDATES_FAILED:!1,INTERNAL:!1};function H(e,t){if(!(e instanceof Error))return t;return e.message.length>0?e.message:e.name}class w extends Error{code;retryable;provider;upstreamStatus;gatewayAuthored;retryAfterMs;degradations;constructor(e,t,n){super(t,n?.cause===void 0?void 0:{cause:n.cause});this.name="GatewayError",this.code=e,this.retryable=J[e],this.provider=n?.provider,this.upstreamStatus=n?.status,this.gatewayAuthored=n?.gatewayAuthored??!1,this.retryAfterMs=n?.retryAfterMs,this.degradations=[...n?.degradations??[]]}}var Zo={debug:10,info:20,warn:30,error:40};function on(e){let t=typeof e==="string"?e:String(e);return/^[A-Za-z0-9_.:/+-]{1,64}$/.test(t)?t:"(unprintable)"}var nx=/\u001B\[[0-9;]*m/g,rx=/^(\S+) (DEBUG|INFO|WARN|ERROR) {1,2}(.*)$/,ox=/ {2}(?=[a-zA-Z]+=)/;function $h(e){let t={raw:e,at:null,level:null,msg:null},n=rx.exec(e.replace(nx,""));if(n===null)return t;let[,r,o,i]=n;if(r===void 0||o===void 0||i===void 0)return t;let s=Date.parse(r);if(Number.isNaN(s))return t;let a=i.split(ox,1)[0]??i;return{raw:e,at:s,level:o.toLowerCase(),msg:a}}var se={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{},enabled:()=>!1};function Xo(e){let t=e?.trim().toLowerCase();if(t===void 0||t.length===0)return null;return Object.hasOwn(Zo,t)?t:null}function pt(e){return e.type==="thinking"?void 0:e.cacheControl}function Se(e,t,n,r=0){return{inputTokens:Math.max(0,e-n-r),outputTokens:t,cacheReadTokens:n,cacheWriteTokens:r}}var ix=4,Fh=1600,Ft=4,Bh=4;function xe(e){return Math.ceil(e.length/ix)}function On(e){switch(e.type){case"text":return Ft+xe(e.text);case"image":return Ft+Fh;case"thinking":return Ft+xe(e.text);case"toolUse":return Ft+xe(e.name)+xe(Vo(e.input));case"toolResult":return Ft+xe(e.toolUseId)+xe(e.content)+(e.images?.length??0)*Fh+(e.files??[]).reduce((t,n)=>t+xe(n.data),0)+(e.native??[]).reduce((t,n)=>t+On(n),0);case"providerNative":return Ft+xe(e.blockType)+xe(Vo(e.data))}}function zh(e){let t=Bh;for(let n of e.content)t+=On(n);return t}function uu(e){if(e.kind==="provider")return Ft+xe(e.name)+xe(e.type)+xe(Vo(e.wire));return Ft+xe(e.name)+xe(e.description??"")+xe(Vo(e.inputSchema))}function Vo(e){try{return JSON.stringify(e)??""}catch{return""}}function qh(e){let t=0;for(let n of e.system??[])t+=On(n);for(let n of e.messages)t+=zh(n);for(let n of e.tools??[])t+=uu(n);return t}function Hh(e){let t=0;for(let o of e.tools??[])t+=uu(o);let n=t;for(let o of e.system??[])n+=On(o);let r=n;for(let o of e.messages)r+=zh(o);return{tools:t,toolsAndSystem:n,total:r}}function Qo(e){let t=0,n=0;for(let r of e.tools??[])if(t+=uu(r),r.cacheControl!==void 0)n=t;for(let r of e.system??[])if(t+=On(r),pt(r)!==void 0)n=t;for(let r of e.messages){t+=Bh;for(let o of r.content){if(t+=On(o),pt(o)!==void 0)n=t;if(o.type==="toolResult"&&[...o.images??[],...o.native??[]].some((i)=>i.cacheControl!==void 0))n=t}}return n}var ve=3600000;function Me(e){return Math.floor(e/3600000)}var Wh=86400000;function et(){return-new Date().getTimezoneOffset()||0}function mt(e,t){let n=t*60000;return Math.floor((e+n)/Wh)*Wh-n}var sx=`
|
|
68
|
+
Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let s of e.seen.entries()){let a=s[1];if(t===s[0]){i(s);continue}if(e.external){let c=e.external.registry.get(s[0])?.id;if(t!==s[0]&&c){i(s);continue}}if(e.metadataRegistry.get(s[0])?.id){i(s);continue}if(a.cycle){i(s);continue}if(a.count>1){if(e.reused==="ref")i(s)}}if(e.external)e.sharedDefsExtractedFor=e.external}function fg(e){let t=e.anyOf;if(!Array.isArray(t)||t.length===0||e.type!==void 0)return;let n=[];for(let r of t){if(!r||typeof r!=="object")return;fg(r);let o=Object.keys(r);if(o.length!==1||o[0]!=="type")return;let i=r.type;for(let s of Array.isArray(i)?i:[i]){if(typeof s!=="string")return;if(!n.includes(s))n.push(s)}}delete e.anyOf,e.type=n.length===1?n[0]:n}var gg=new Set(["type","properties","required","additionalProperties"]),pg=["oneOf","anyOf"];function mg(e){let t=e.additionalProperties;if(t===void 0||t===!1||typeof t!=="object"||t===null)return null;return Object.keys(t).length?t:null}function $a(e){let t=[];for(let i of e){if(typeof i!=="object"||i.type!=="object")return null;for(let s in i)if(!gg.has(s))return null;t.push(i)}let n={},r=new Set;for(let i of t){for(let s in i.properties){if(Object.prototype.hasOwnProperty.call(n,s))continue;let a=[];for(let c of t){let d=c.properties?.[s]??mg(c);if(d===null||d===void 0)continue;if(!a.some((p)=>JSON.stringify(p)===JSON.stringify(d)))a.push(d)}let u=a.length===1?a[0]:$a(a)??{allOf:a};je(n,s,u)}for(let s of i.required??[])r.add(s)}let o={type:"object",properties:n};if(r.size)o.required=[...r];if(t.every((i)=>i.additionalProperties===!1))o.additionalProperties=!1;else{let i=[];for(let s of t){let a=mg(s);if(a&&!i.some((u)=>JSON.stringify(u)===JSON.stringify(a)))i.push(a)}if(i.length===1)o.additionalProperties=i[0];else if(i.length>1)o.additionalProperties={allOf:i}}return o}function JT(e){let t=e.allOf;if(!Array.isArray(t)||t.length<2)return;for(let o of gg)if(o in e)return;let n=t.filter((o)=>pg.some((i)=>Array.isArray(o[i]))),r=null;if(!n.length)r=$a(t);else{let o=n[0],i=pg.find((u)=>Array.isArray(o[u]));if(Object.keys(o).length!==1)return;let s=t.filter((u)=>u!==o),a=o[i].map((u)=>$a([...s,u]));if(a.some((u)=>!u))return;r={[i]:a}}if(!r)return;delete e.allOf,cr(e,r)}function za(e,t){let n=e.seen.get(t);if(!n)throw Error("Unprocessed schema. This is a bug in Zod.");let r=(a)=>{let u=e.seen.get(a);if(u.ref===null)return;let c=u.def??u.schema,d={...c},p=u.ref;if(u.ref=null,p){r(p);let m=e.seen.get(p),g=m.schema;if(g.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0"))c.allOf=c.allOf??[],c.allOf.push(g);else cr(c,g);if(cr(c,d),a._zod.parent===p)for(let f in c){if(f==="$ref"||f==="allOf")continue;if(!(f in d))delete c[f]}if(g.$ref&&m.def)for(let f in c){if(f==="$ref"||f==="allOf")continue;if(f in m.def&&JSON.stringify(c[f])===JSON.stringify(m.def[f]))delete c[f]}}let l=a._zod.parent;if(l&&l!==p){r(l);let m=e.seen.get(l);if(m?.schema.$ref){if(c.$ref=m.schema.$ref,m.def)for(let g in c){if(g==="$ref"||g==="allOf")continue;if(g in m.def&&JSON.stringify(c[g])===JSON.stringify(m.def[g]))delete c[g]}}}e.override({zodSchema:a,jsonSchema:c,path:u.path??[]})};if(!e.external||e.sharedEmitDoneFor!==e.external){for(let a of[...e.seen.entries()].reverse())r(a[0]);if(e.target!=="openapi-3.0")for(let a of e.seen.entries())fg(a[1].def??a[1].schema);for(let a of e.deferred)a();if(e.intersections.length){let a=new Map;for(let u of e.seen.values())for(let c of[u.schema,u.def]){let d=c?.allOf;if(!Array.isArray(d))continue;let p=a.get(d);if(p)p.push(c);else a.set(d,[c])}for(let u of e.intersections)for(let c of a.get(u)??[])JT(c)}}let o={};if(e.target==="draft-2020-12")o.$schema="https://json-schema.org/draft/2020-12/schema";else if(e.target==="draft-07")o.$schema="http://json-schema.org/draft-07/schema#";else if(e.target==="draft-04")o.$schema="http://json-schema.org/draft-04/schema#";else if(e.target==="openapi-3.0");if(e.external?.uri){let a=e.external.registry.get(t)?.id;if(!a)throw Error("Schema is missing an `id` property");o.$id=e.external.uri(a)}cr(o,n.defId?n.schema:n.def??n.schema);let i=e.metadataRegistry.get(t)?.id;if(i!==void 0&&o.id===i)delete o.id;let s=e.external?.defs??{};if(!e.external||e.sharedEmitDoneFor!==e.external)for(let a of e.seen.entries()){let u=a[1];if(u.def&&u.defId){if(u.def.id===u.defId)delete u.def.id;je(s,u.defId,u.def)}}if(e.external)e.sharedEmitDoneFor=e.external;if(e.external);else if(Object.keys(s).length>0)if(e.target==="draft-2020-12")o.$defs=s;else o.definitions=s;try{let a=JSON.parse(JSON.stringify(o));return Object.defineProperty(a,"~standard",{value:{...t["~standard"],jsonSchema:{input:dr(t,"input",e.processors),output:dr(t,"output",e.processors)}},enumerable:!1,writable:!1}),a}catch(a){throw Error("Error converting schema to JSON.")}}function ke(e,t){let n=t??{seen:new Set};if(n.seen.has(e))return!1;n.seen.add(e);let r=e._zod.def;if(r.type==="transform")return!0;if(r.type==="array")return ke(r.element,n);if(r.type==="set")return ke(r.valueType,n);if(r.type==="lazy")return ke(r.getter(),n);if(r.type==="promise"||r.type==="optional"||r.type==="nonoptional"||r.type==="nullable"||r.type==="readonly"||r.type==="default"||r.type==="prefault"||r.type==="catch")return ke(r.innerType,n);if(r.type==="intersection")return ke(r.left,n)||ke(r.right,n);if(r.type==="record"||r.type==="map")return ke(r.keyType,n)||ke(r.valueType,n);if(r.type==="pipe"){if(e._zod.traits.has("$ZodCodec"))return!0;return ke(r.in,n)||ke(r.out,n)}if(r.type==="object"){for(let o in r.shape)if(ke(r.shape[o],n))return!0;return!1}if(r.type==="union"){for(let o of r.options)if(ke(o,n))return!0;return!1}if(r.type==="tuple"){for(let o of r.items)if(ke(o,n))return!0;if(r.rest&&ke(r.rest,n))return!0;return!1}return!1}var hg=(e,t={})=>(n)=>{let r=Fa({...n,processors:t});return ie(e,r),Ba(r,e),za(r,e)},dr=(e,t,n={})=>(r)=>{let{libraryOptions:o,target:i}=r??{},s=Fa({...o??{},target:i,io:t,processors:n});return ie(e,s),Ba(s,e),za(s,e)};var Tn=(e,t,n)=>{if(e[t]===void 0||n>e[t])e[t]=n},Rn=(e,t,n)=>{if(e[t]===void 0||n<e[t])e[t]=n},yg=(e,t)=>{Tn(e,"minimum",t),Rn(e,"maximum",t)},kg=(e,t)=>{if(e.multipleOf??(e.multipleOf=[]),!e.multipleOf.includes(t))e.multipleOf.push(t)},Eg=(e,t)=>{e.patterns??(e.patterns=new Set),e.patterns.add(t)},vg=(e,t)=>{e.mime=e.mime?e.mime.filter((n)=>t.includes(n)):[...t]},Tg=(e,t)=>{if(e.format=t,t.includes("int"))e.isInt=!0},_g=(e,t)=>Tn(e,"minimum",t.minimum),wg=(e,t)=>Rn(e,"maximum",t.maximum),bg=(e)=>(t,n)=>{Tg(t,n.format);let[r,o]=e[n.format];Tn(t,"minimum",r),Rn(t,"maximum",o)},eR={greater_than:(e,t)=>Tn(e,t.inclusive?"minimum":"exclusiveMinimum",t.value),less_than:(e,t)=>Rn(e,t.inclusive?"maximum":"exclusiveMaximum",t.value),multiple_of:(e,t)=>kg(e,t.value),number_format:bg(ao),bigint_format:bg(ra),min_length:_g,max_length:wg,length_equals:(e,t)=>yg(e,t.length),min_size:_g,max_size:wg,size_equals:(e,t)=>yg(e,t.size),string_format:(e,t)=>{if(Tg(e,t.format),t.pattern)Eg(e,t.pattern);if(t.format==="base64"||t.format==="base64url")e.contentEncoding=t.format;if(t.local||t.precision===-1)e.laxFormat=!0},mime_type:(e,t)=>vg(e,t.mime)};function Ke(e){let t={},n=e._zod.def,r=e._zod.traits.has("$ZodCheck")?[e,...n.checks??[]]:n.checks??[];for(let i of r)eR[i._zod.def.check]?.(t,i._zod.def);let o=e._zod.bag;if(o.minimum!==void 0)Tn(t,"minimum",o.minimum);if(o.exclusiveMinimum!==void 0)Tn(t,"exclusiveMinimum",o.exclusiveMinimum);if(o.maximum!==void 0)Rn(t,"maximum",o.maximum);if(o.exclusiveMaximum!==void 0)Rn(t,"exclusiveMaximum",o.exclusiveMaximum);if(o.multipleOf!==void 0)kg(t,o.multipleOf);if(o.format!==void 0){if(t.format??(t.format=o.format),o.format.includes("int"))t.isInt=!0}if(o.mime)vg(t,o.mime);for(let i of o.patterns??[])Eg(t,i);return t}var tR={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},nR=new Map([[ba,Hp],[ko,Wp]]),Rg=(e)=>nR.get(e)??e,Sg=(e,t,n,r)=>{let o=n;o.type="string";let{minimum:i,maximum:s,format:a,patterns:u,contentEncoding:c,laxFormat:d}=Ke(e);if(typeof i==="number")o.minLength=i;if(typeof s==="number")o.maxLength=s;if(a){if(o.format=tR[a]??a,o.format==="")delete o.format;if(a==="time"||d)delete o.format}if(c)o.contentEncoding=c;if(u&&u.size>0){let p=[...u].map(Rg);if(p.length===1)o.pattern=p[0].source;else if(p.length>1)o.allOf=[...p.map((l)=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:l.source}))]}},xg=(e,t,n,r)=>{let o=n,{minimum:i,maximum:s,multipleOf:a,exclusiveMaximum:u,exclusiveMinimum:c,isInt:d}=Ke(e);o.type=d?"integer":"number";let p=typeof c==="number"&&c>=(i??Number.NEGATIVE_INFINITY),l=typeof u==="number"&&u<=(s??Number.POSITIVE_INFINITY),m=t.target==="draft-04"||t.target==="openapi-3.0";if(p)if(m)o.minimum=c,o.exclusiveMinimum=!0;else o.exclusiveMinimum=c;else if(typeof i==="number")o.minimum=i;if(l)if(m)o.maximum=u,o.exclusiveMaximum=!0;else o.exclusiveMaximum=u;else if(typeof s==="number")o.maximum=s;if(a){let g=new Set;for(let y of a)if(Number.isFinite(y)&&y!==0)g.add(Math.abs(y));else Rt(e,t,o,r,`A multipleOf divisor of ${y} cannot be represented in JSON Schema`);let[h,...f]=g;if(h!==void 0)o.multipleOf=h;if(f.length)o.allOf=[...o.allOf??[],...f.map((y)=>({multipleOf:y}))]}},Ag=(e,t,n,r)=>{n.type="boolean"};var Og=(e,t,n,r)=>{n.not={}};var Cg=(e,t,n,r)=>{};var Pg=(e,t,n,r)=>{let o=e._zod.def,i=Qn(o.entries);if(i.length===0){n.not={};return}if(i.every((s)=>typeof s==="number"))n.type="number";if(i.every((s)=>typeof s==="string"))n.type="string";n.enum=i},Ig=(e,t,n,r)=>{let o=e._zod.def;if(o.values.length===0){n.not={};return}let i=[];for(let s of o.values)if(s===void 0){if(Rt(e,t,n,r,"Literal `undefined` cannot be represented in JSON Schema"))return}else if(typeof s==="bigint"){if(Rt(e,t,n,r,"BigInt literals cannot be represented in JSON Schema"))return;i.push(Number(s))}else i.push(s);if(i.length===0);else if(i.length===1){let s=i[0];if(n.type=s===null?"null":typeof s,t.target==="draft-04"||t.target==="openapi-3.0")n.enum=[s];else n.const=s}else{if(i.every((s)=>typeof s==="number"))n.type="number";if(i.every((s)=>typeof s==="string"))n.type="string";if(i.every((s)=>typeof s==="boolean"))n.type="boolean";if(i.every((s)=>s===null))n.type="null";n.enum=i}};var Lg=(e,t,n,r)=>{Rt(e,t,n,r,"Custom types cannot be represented in JSON Schema")};var Ng=(e,t,n,r)=>{Rt(e,t,n,r,"Transforms cannot be represented in JSON Schema")};var Dg=(e,t,n,r)=>{let o=n,i=e._zod.def,{minimum:s,maximum:a}=Ke(e);if(typeof s==="number")o.minItems=s;if(typeof a==="number")o.maxItems=a;o.type="array",o.items=ie(i.element,t,{...r,path:[...r.path,"items"]})};function Po(e){let t=e._zod.def;if(t.type==="pipe"&&t.in._zod.traits.has("$ZodTransform"))return Po(t.out);if(t.type==="catch")return Po(t.innerType);return e._zod.optin}var Ug=(e,t,n,r)=>{let o=n,i=e._zod.def,s=i.shape;if(Object.getOwnPropertySymbols(s).length&&Rt(e,t,o,r,"Symbol keys cannot be represented in JSON Schema"))return;o.type="object",o.properties={};for(let d in s)je(o.properties,d,ie(s[d],t,{...r,path:[...r.path,"properties",d]}));let u=new Set(Object.keys(s)),c=new Set([...u].filter((d)=>{let p=i.shape[d];if(t.io==="input")return Po(p)===void 0;else return p._zod.optout===void 0}));if(c.size>0)o.required=Array.from(c);if(i.catchall?._zod.def.type==="never")o.additionalProperties=!1;else if(!i.catchall){if(t.io==="output")o.additionalProperties=!1}else if(i.catchall)o.additionalProperties=ie(i.catchall,t,{...r,path:[...r.path,"additionalProperties"]})};var Mg=(e,t,n,r)=>{let o=e._zod.def,i=o.inclusive===!1,s=o.options.map((a,u)=>ie(a,t,{...r,path:[...r.path,i?"oneOf":"anyOf",u]}));if(i)n.oneOf=s;else n.anyOf=s},$g=(e,t,n,r)=>{let o=e._zod.def,i=ie(o.left,t,{...r,path:[...r.path,"allOf",0]}),s=ie(o.right,t,{...r,path:[...r.path,"allOf",1]}),a=(c)=>("allOf"in c)&&Object.keys(c).length===1,u=[...a(i)?i.allOf:[i],...a(s)?s.allOf:[s]];n.allOf=u,t.intersections.push(u)};function qa(e,t,n){if(t.$ref){if(n.has(t))return t;n.add(t);let g=e.get(t)?.def;if(!g)return t;let h=qa(e,g,n);return h===g?t:h}for(let g of["anyOf","oneOf"]){let h=t[g];if(!Array.isArray(h))continue;let f=h.map((y)=>qa(e,y,n));if(f.some((y,_)=>y!==h[_]))t={...t,[g]:f}}let r=Array.isArray(t.type)?t.type:[t.type],o=!r.includes("string")&&r.some((g)=>g==="number"||g==="integer"),i=t.enum??(t.const!==void 0?[t.const]:void 0);if(!o&&!i?.some((g)=>typeof g==="number"))return t;let{minimum:s,maximum:a,exclusiveMinimum:u,exclusiveMaximum:c,multipleOf:d,format:p,id:l,...m}=t;if(m.enum)m.enum=m.enum.map((g)=>typeof g==="number"?String(g):g);else if(typeof m.const==="number")m.const=String(m.const);if(!o)return m;if(m.type="string",!i)m.pattern=(r.includes("number")?nr:ma).source;return m}var Ha=new WeakMap;function rR(e){let t=new Map;for(let r of e.seen.values())if(r.def&&!t.has(r.schema))t.set(r.schema,r);let n=new Map;for(let r of Ha.get(e)??[]){let o=e.seen.get(r),i=(o?.def??o?.schema)?.propertyNames;if(!i||i===!0||n.has(i))continue;let s=qa(t,i,new Set);if(s!==i)n.set(i,s)}if(!n.size)return;for(let r of e.seen.values())for(let o of[r.schema,r.def]){let i=o&&n.get(o.propertyNames);if(i)o.propertyNames=i}}var Fg=(e,t,n,r)=>{let o=n,i=e._zod.def;o.type="object";let s=i.keyType,a=Ke(s).patterns;if(i.mode==="loose"&&a&&a.size>0){let d=ie(i.valueType,t,{...r,path:[...r.path,"patternProperties","*"]});o.patternProperties={};for(let p of a)je(o.patternProperties,Rg(p).source,d)}else{if(t.target==="draft-07"||t.target==="draft-2020-12"){o.propertyNames=ie(i.keyType,t,{...r,path:[...r.path,"propertyNames"]});let d=Ha.get(t);if(!d)d=[],Ha.set(t,d),t.deferred.push(()=>rR(t));d.push(e)}o.additionalProperties=ie(i.valueType,t,{...r,path:[...r.path,"additionalProperties"]})}let u=s._zod.values,c=t.io==="input"&&Po(i.valueType)!==void 0;if(u&&!i.partial&&!c){let d=[...u].filter((p)=>typeof p==="string"||typeof p==="number");if(d.length>0)o.required=d.map(String)}},Bg=(e,t,n,r)=>{let o=e._zod.def,i=ie(o.innerType,t,r),s=t.seen.get(e);if(t.target==="openapi-3.0")s.ref=o.innerType,n.nullable=!0;else n.anyOf=[i,{type:"null"}]},zg=(e,t,n,r)=>{let o=e._zod.def;ie(o.innerType,t,r);let i=t.seen.get(e);i.ref=o.innerType},Wa=Symbol();function qg(e,t,n,r,o){let i=!1,s=JSON.stringify(e,(a,u)=>{if(typeof u!=="bigint")return u;return i=!0,null});if(!i)return JSON.parse(s);return Rt(t,n,r,o,"BigInt defaults cannot be represented in JSON Schema"),Wa}var Hg=(e,t,n,r)=>{let o=e._zod.def;ie(o.innerType,t,r);let i=t.seen.get(e);i.ref=o.innerType;let s=qg(o.defaultValue,e,t,n,r);if(s!==Wa)n.default=s},Wg=(e,t,n,r)=>{let o=e._zod.def;ie(o.innerType,t,r);let i=t.seen.get(e);if(i.ref=o.innerType,t.io!=="input")return;let s=qg(o.defaultValue,e,t,n,r);if(s!==Wa)n._prefault=s},jg=(e,t,n,r)=>{let o=e._zod.def;ie(o.innerType,t,r);let i=t.seen.get(e);i.ref=o.innerType;let s;try{s=o.catchValue(void 0)}catch{Rt(e,t,n,r,"Dynamic catch values are not supported in JSON Schema");return}n.default=s},Kg=(e,t,n,r)=>{let o=e._zod.def,i=o.in._zod.traits.has("$ZodTransform"),s=t.io==="input"?i?o.out:o.in:o.out;ie(s,t,r);let a=t.seen.get(e);a.ref=s},Gg=(e,t,n,r)=>{let o=e._zod.def;ie(o.innerType,t,r);let i=t.seen.get(e);i.ref=o.innerType,n.readOnly=!0};var ja=(e,t,n,r)=>{let o=e._zod.def;ie(o.innerType,t,r);let i=t.seen.get(e);i.ref=o.innerType};var Zg=new WeakSet([Object.prototype,Error.prototype]);function Io(e,t,n){Object.defineProperty(e,t,{configurable:!0,enumerable:!1,get(){let r=n(this);return Object.defineProperty(this,t,{value:r,configurable:!0,writable:!0}),r},set(r){Object.defineProperty(this,t,{value:r,configurable:!0,writable:!0})}})}var dR=(e,t)=>{hp.init(e,t),e.name="ZodError";let n=Object.getPrototypeOf(e);if(Zg.has(n))return;Zg.add(n),Io(n,"format",(r)=>(o)=>_p(r,o)),Io(n,"flatten",(r)=>(o)=>yp(r,o)),Io(n,"addIssue",(r)=>(o)=>{r.issues.push(o),r.message=JSON.stringify(r.issues,Yn,2)}),Io(n,"addIssues",(r)=>(o)=>{r.issues.push(...o),r.message=JSON.stringify(r.issues,Yn,2)}),Object.defineProperty(n,"isEmpty",{configurable:!0,enumerable:!1,get(){return this.issues.length===0}})};var Ue=E("ZodError",dR,void 0,{Parent:Error});var Xg=mo(Ue),Vg=fo(Ue),Qg=go(Ue),Yg=ho(Ue),Jg=bp(Ue),eh=kp(Ue),th=Ep(Ue),nh=vp(Ue),rh=Tp(Ue),oh=Rp(Ue),ih=Sp(Ue),sh=xp(Ue);function pR(){if(!Se.localeError)De(Sa())}function No(){if(!Se.memoizer)De({memoizer:xf()})}var te=E("ZodType",(e,t)=>(pR(),Y.init(e,t),e.def=t,e.type=t.type,e),{check(...e){let t=this.def;return this.clone(Ne(t,{checks:[...t.checks??[],...e.map((n)=>typeof n==="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0})},with(...e){return this.check(...e)},clone(e,t){return ut(this,e,t)},brand(){return this},register(e,t){return e.add(this,t),this},refine(e,t){return this.check(cS(e,t))},superRefine(e,t){return this.check(dS(e,t))},overwrite(e){return this.check(Ut(e))},optional(){return ch(this)},exactOptional(){return VR(this)},nullable(){return dh(this)},nullish(){return ch(dh(this))},nonoptional(e){return nS(this,e)},array(){return Sn(this)},or(e){return Xa([this,e])},and(e){return KR(this,e)},transform(e){return lh(this,XR(e))},default(e){return JR(this,e)},prefault(e){return tS(this,e)},catch(e){return oS(this,e)},pipe(e){return lh(this,e)},readonly(){return aS(this)},describe(e){let t=this.clone();return rn.add(t,{description:e}),t},meta(...e){if(e.length===0)return rn.get(this);let t=this.clone();return rn.add(t,e[0]),t},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(e,...t){return t.length===0?e(this):e(this,...t)},get "~standard"(){return ia(this,"~standard",{...wa(this),jsonSchema:{input:dr(this,"input"),output:dr(this,"output")}})},set "~standard"(e){vt(this,"~standard",e)},parse:function e(t,n){return Xg(this,t,n,{callee:e})},parseAsync:async function e(t,n){return await Vg(this,t,n,{callee:e})},safeParse(e,t){return Qg(this,e,t)},async safeParseAsync(e,t){return Yg(this,e,t)},get spa(){return this?.safeParseAsync},set spa(e){vt(this,"spa",e)},validate(e,t){return ca(this,e,t)},validateAsync(e,t){return da(this,e,t)},encode:function e(t,n){return Jg(this,t,n,{callee:e})},decode:function e(t,n){return eh(this,t,n,{callee:e})},encodeAsync:async function e(t,n){return await th(this,t,n,{callee:e})},decodeAsync:async function e(t,n){return await nh(this,t,n,{callee:e})},safeEncode(e,t){return rh(this,e,t)},safeDecode(e,t){return oh(this,e,t)},async safeEncodeAsync(e,t){return ih(this,e,t)},async safeDecodeAsync(e,t){return sh(this,e,t)},toJSONSchema(e){return hg(this,{})(e)},get description(){return rn.get(this)?.description},get _def(){return this._zod.def}}),ph=E("_ZodString",(e,t)=>{bo.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Sg(e,n,r,o)},dp({format:(e)=>Ke(e).format??null,minLength:(e)=>Ke(e).minimum??null,maxLength:(e)=>Ke(e).maximum??null},{regex(...e){return this.check(xa(...e))},includes(...e){return this.check(Ca(...e))},startsWith(...e){return this.check(Pa(...e))},endsWith(...e){return this.check(Ia(...e))},min(...e){return this.check(vn(...e))},max(...e){return this.check(Oo(...e))},length(...e){return this.check(Co(...e))},nonempty(...e){return this.check(vn(1,...e))},lowercase(e){return this.check(Aa(e))},uppercase(e){return this.check(Oa(e))},trim(){return this.check(Na())},normalize(...e){return this.check(La(...e))},toLowerCase(){return this.check(Da())},toUpperCase(){return this.check(Ua())},slugify(){return this.check(Ma())}})),mR=E("ZodString",(e,t)=>{bo.init(e,t),ph.init(e,t)},{email(e){return this.check(Pf(_R,e))},url(e){return this.check(Mf(bR,e))},jwt(e){return this.check(Yf(DR,e))},emoji(e){return this.check($f(kR,e))},guid(e){return this.check(If(wR,e))},uuid(e){return this.check(Lf(Lo,e))},uuidv4(e){return this.check(Nf(Lo,e))},uuidv6(e){return this.check(Df(Lo,e))},uuidv7(e){return this.check(Uf(Lo,e))},nanoid(e){return this.check(Ff(ER,e))},cuid(e){return this.check(Bf(vR,e))},cuid2(e){return this.check(zf(TR,e))},ulid(e){return this.check(qf(RR,e))},base64(e){return this.check(Xf(IR,e))},base64url(e){return this.check(Vf(LR,e))},xid(e){return this.check(Hf(SR,e))},ksuid(e){return this.check(Wf(xR,e))},ipv4(e){return this.check(jf(AR,e))},ipv6(e){return this.check(Kf(OR,e))},cidrv4(e){return this.check(Gf(CR,e))},cidrv6(e){return this.check(Zf(PR,e))},e164(e){return this.check(Qf(NR,e))},datetime(e){return this.check(Jf(fR,e))},date(e){return this.check(eg(gR,e))},time(e){return this.check(tg(hR,e))},duration(e){return this.check(ng(yR,e))}});function K(e){return Cf(mR,e)}var ne=E("ZodStringFormat",(e,t)=>{J.init(e,t),ph.init(e,t)}),fR=E("ZodISODateTime",(e,t)=>{Fm.init(e,t),ne.init(e,t)}),gR=E("ZodISODate",(e,t)=>{Bm.init(e,t),ne.init(e,t)}),hR=E("ZodISOTime",(e,t)=>{zm.init(e,t),ne.init(e,t)}),yR=E("ZodISODuration",(e,t)=>{qm.init(e,t),ne.init(e,t)}),_R=E("ZodEmail",(e,t)=>{Am.init(e,t),ne.init(e,t)});var wR=E("ZodGUID",(e,t)=>{Sm.init(e,t),ne.init(e,t)});var Lo=E("ZodUUID",(e,t)=>{xm.init(e,t),ne.init(e,t)});var bR=E("ZodURL",(e,t)=>{Pm.init(e,t),ne.init(e,t)});var kR=E("ZodEmoji",(e,t)=>{Im.init(e,t),ne.init(e,t)});var ER=E("ZodNanoID",(e,t)=>{Lm.init(e,t),ne.init(e,t)});var vR=E("ZodCUID",(e,t)=>{Nm.init(e,t),ne.init(e,t)});var TR=E("ZodCUID2",(e,t)=>{Dm.init(e,t),ne.init(e,t)});var RR=E("ZodULID",(e,t)=>{Um.init(e,t),ne.init(e,t)});var SR=E("ZodXID",(e,t)=>{Mm.init(e,t),ne.init(e,t)});var xR=E("ZodKSUID",(e,t)=>{$m.init(e,t),ne.init(e,t)});var AR=E("ZodIPv4",(e,t)=>{Hm.init(e,t),ne.init(e,t)});var OR=E("ZodIPv6",(e,t)=>{jm.init(e,t),ne.init(e,t)});var CR=E("ZodCIDRv4",(e,t)=>{Km.init(e,t),ne.init(e,t)});var PR=E("ZodCIDRv6",(e,t)=>{Gm.init(e,t),ne.init(e,t)});var IR=E("ZodBase64",(e,t)=>{Xm.init(e,t),ne.init(e,t)});var LR=E("ZodBase64URL",(e,t)=>{Vm.init(e,t),ne.init(e,t)});var NR=E("ZodE164",(e,t)=>{Qm.init(e,t),ne.init(e,t)});var DR=E("ZodJWT",(e,t)=>{Ym.init(e,t),ne.init(e,t)});var mh=E("ZodNumber",(e,t)=>{ka.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>xg(e,n,r,o),e.isFinite=!0},dp({minValue:(e)=>{let{minimum:t,exclusiveMinimum:n}=Ke(e);return Math.max(t??Number.NEGATIVE_INFINITY,n??Number.NEGATIVE_INFINITY)},maxValue:(e)=>{let{maximum:t,exclusiveMaximum:n}=Ke(e);return Math.min(t??Number.POSITIVE_INFINITY,n??Number.POSITIVE_INFINITY)},isInt:(e)=>{let{isInt:t,multipleOf:n}=Ke(e);return!!t||!!n?.some(Number.isSafeInteger)},format:(e)=>Ke(e).format??null},{gt(e,t){return this.check(xo(e,t))},gte(e,t){return this.check(ur(e,t))},min(e,t){return this.check(ur(e,t))},lt(e,t){return this.check(So(e,t))},lte(e,t){return this.check(ar(e,t))},max(e,t){return this.check(ar(e,t))},int(e){return this.check(ah(e))},safe(e){return this.check(ah(e))},positive(e){return this.check(xo(0,e))},nonnegative(e){return this.check(ur(0,e))},negative(e){return this.check(So(0,e))},nonpositive(e){return this.check(ar(0,e))},multipleOf(e,t){return this.check(Ao(e,t))},step(e,t){return this.check(Ao(e,t))},finite(){return this}}));function N(e){return rg(mh,e)}var UR=E("ZodNumberFormat",(e,t)=>{Jm.init(e,t),mh.init(e,t)});function ah(e){return og(UR,e)}var MR=E("ZodBoolean",(e,t)=>{ef.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ag(e,n,r,o)});function Me(e){return ig(MR,e)}var $R=E("ZodUnknown",(e,t)=>{tf.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Cg(e,n,r,o)});function Ga(){return sg($R)}var FR=E("ZodNever",(e,t)=>{nf.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Og(e,n,r,o)});function BR(e){return ag(FR,e)}var zR=E("ZodArray",(e,t)=>{No(),rf.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Dg(e,n,r,o),e.element=t.element},{min(e,t){return this.check(vn(e,t))},nonempty(e){return this.check(vn(1,e))},max(e,t){return this.check(Oo(e,t))},length(e,t){return this.check(Co(e,t))},unwrap(){return this.element}});function Sn(e,t){return ug(zR,e,t)}var qR=E("ZodObject",(e,t)=>{No(),af.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ug(e,n,r,o),bT(e,"shape",(n)=>n._zod.def.shape,!1)},{keyof(){return St(Object.keys(this._zod.def.shape))},catchall(e){return this.clone(Ne(this._zod.def,{catchall:e}))},passthrough(){return this.clone(Ne(this._zod.def,{catchall:Ga()}))},loose(){return this.clone(Ne(this._zod.def,{catchall:Ga()}))},strict(){return this.clone(Ne(this._zod.def,{catchall:BR()}))},strip(){return this.clone(Ne(this._zod.def,{catchall:void 0}))},extend(e){return mT(this,e)},safeExtend(e){return fT(this,e)},merge(e){return gT(this,e)},pick(e){return lT(this,e)},omit(e){return pT(this,e)},partial(...e){return sp(yh,this,e[0])},exactPartial(...e){return sp(_h,this,e[0],"exactPartial")},required(...e){return hT(wh,this,e[0])}});function re(e,t){let n={type:"object",shape:e??{},...x(t)};return new qR(n)}var fh=E("ZodUnion",(e,t)=>{Ea.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Mg(e,n,r,o),e.options=t.options});function Xa(e,t){return new fh({type:"union",options:e,...x(t)})}var HR=E("ZodDiscriminatedUnion",(e,t)=>{fh.init(e,t),uf.init(e,t)});function WR(e,t,n){return new HR({type:"union",options:t,discriminator:e,...x(n)})}var jR=E("ZodIntersection",(e,t)=>{cf.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>$g(e,n,r,o)});function KR(e,t){return new jR({type:"intersection",left:e,right:t})}var uh=E("ZodRecord",(e,t)=>{No(),df.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Fg(e,n,r,o),e.keyType=t.keyType,e.valueType=t.valueType});function gh(e,t,n){if(!t||!t._zod)return new uh({type:"record",keyType:K(),valueType:e,...x(t)});return new uh({type:"record",keyType:e,valueType:t,...x(n)})}var Za=E("ZodEnum",(e,t)=>{lf.init(e,t),te.init(e,t),e._zod.processJSONSchema=(r,o,i)=>Pg(e,r,o,i),e.enum=t.entries,e.options=[...e._zod.values];let n=new Set(Object.keys(t.entries));e.extract=(r,o)=>{let i={};for(let s of r)if(n.has(s))i[s]=t.entries[s];else throw Error(`Key ${s} not found in enum`);return new Za({...t,checks:[],...x(o),entries:i})},e.exclude=(r,o)=>{let i={...t.entries};for(let s of r)if(n.has(s))delete i[s];else throw Error(`Key ${s} not found in enum`);return new Za({...t,checks:[],...x(o),entries:i})}});function St(e,t){let n=Array.isArray(e)?Object.fromEntries(e.map((r)=>[r,r])):e;return new Za({type:"enum",entries:n,...x(t)})}var GR=E("ZodLiteral",(e,t)=>{pf.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ig(e,n,r,o),e.values=new Set(t.values),Object.defineProperty(e,"value",{get(){if(t.values.length>1)throw Error("This schema contains multiple valid literal values. Use `.values` instead.");return t.values[0]}})});function hh(e,t){return new GR({type:"literal",values:Array.isArray(e)?e:[e],...x(t)})}var ZR=E("ZodTransform",(e,t)=>{No(),mf.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Ng(e,n,r,o),e._zod.parse=(n,r)=>{if(r.direction==="backward")throw new tr(e.constructor.name);n.addIssue=(i)=>{if(typeof i==="string")n.issues.push(nn(i,n.value,t));else{let s=i;if(s.fatal)s.continue=!1;if(s.code??(s.code="custom"),!("input"in s))s.input=n.value;s.inst??(s.inst=e),n.issues.push(nn(s))}};let o=t.transform(n.value,n);if(o instanceof Promise)return o.then((i)=>(n.value=i,n));return n.value=o,n}});function XR(e){return new ZR({type:"transform",transform:e})}var yh=E("ZodOptional",(e,t)=>{va.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ja(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function ch(e){return new yh({type:"optional",innerType:e})}var _h=E("ZodExactOptional",(e,t)=>{ff.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>ja(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function VR(e){return new _h({type:"optional",innerType:e})}var QR=E("ZodNullable",(e,t)=>{gf.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Bg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function dh(e){return new QR({type:"nullable",innerType:e})}var YR=E("ZodDefault",(e,t)=>{hf.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Hg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function JR(e,t){return new YR({type:"default",innerType:e,get defaultValue(){return typeof t==="function"?t():ta(t)}})}var eS=E("ZodPrefault",(e,t)=>{yf.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Wg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function tS(e,t){return new eS({type:"prefault",innerType:e,get defaultValue(){return typeof t==="function"?t():ta(t)}})}var wh=E("ZodNonOptional",(e,t)=>{_f.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>zg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function nS(e,t){return new wh({type:"nonoptional",innerType:e,...x(t)})}var rS=E("ZodCatch",(e,t)=>{wf.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>jg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function oS(e,t){return new rS({type:"catch",innerType:e,catchValue:typeof t==="function"?t:lp(t)})}var iS=E("ZodPipe",(e,t)=>{bf.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Kg(e,n,r,o),e.in=t.in,e.out=t.out});function lh(e,t){return new iS({type:"pipe",in:e,out:t})}var sS=E("ZodReadonly",(e,t)=>{kf.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Gg(e,n,r,o),e.unwrap=()=>e._zod.def.innerType});function aS(e){return new sS({type:"readonly",innerType:e})}var uS=E("ZodCustom",(e,t)=>{Ef.init(e,t),te.init(e,t),e._zod.processJSONSchema=(n,r,o)=>Lg(e,n,r,o)});function cS(e,t={}){return cg(uS,e,t)}function dS(e,t){return dg(e,t)}var xn=["1m","5h","1w"],Mo={"1m":60000,"5h":18000000,"1w":604800000},Uo=N().int().positive().nullable(),bh=N().positive().nullable(),kh=re({"1m":Uo.optional(),"5h":Uo.optional(),"1w":Uo.optional()}).strict(),lS=re({"5h":bh.optional(),"1w":bh.optional()}).strict(),Va=re({requests:kh.optional(),tokens:kh.optional(),spend:lS.optional(),concurrency:Uo.optional()}).strict(),Eh=64,pS=256;function mS(e){if(e.concurrency!==void 0&&e.concurrency!==null)return!0;for(let t of["requests","tokens","spend"]){let n=e[t];if(n===void 0)continue;for(let r of xn){let o=n[r];if(o!==void 0&&o!==null)return!0}}return!1}var fS=Va.refine(mS,{message:"a model override must set at least one limit; omit the model to remove it"}),lr=Va.extend({models:gh(K().min(1).max(pS),fS).refine((e)=>Object.keys(e).length<=Eh,{message:`at most ${Eh} model overrides per key`}).optional()}).strict();function Qa(e,t){let n=e.models;if(n===void 0||!Object.hasOwn(n,t))return;return n[t]}function vh(e,t){if(typeof e!=="object"||e===null)return;for(let n of Object.getOwnPropertyNames(e)){if(n==="__proto__")throw Error(`limits cannot name "__proto__"${t===""?"":` under ${t}`}`);vh(e[n],t===""?n:`${t}.${n}`)}}function Je(e){return vh(e,""),lr.parse(e)}class $o{windowMs;stamps=[];constructor(e){this.windowMs=e}count(e){let t=e-this.windowMs,n=0;for(let r of this.stamps){if(r>t)break;n++}if(n>0)this.stamps.splice(0,n);return this.stamps.length}record(e){this.stamps.push(e)}forget(e){for(let t=this.stamps.length-1;t>=0;t--){let n=this.stamps[t];if(n===void 0||n<e)return;if(n===e){this.stamps.splice(t,1);return}}}resetAt(e){let t=this.stamps[0];return t===void 0?e:t+this.windowMs}get empty(){return this.stamps.length===0}}class Fo extends Error{constructor(e){super(`LOCK_UNAVAILABLE: ${e}`);this.name="LockUnavailable"}}var gS=1000;function Mt(e={}){let t=e.now??(()=>Date.now()),n=new Map,r=new Map,o=(f)=>{if(f===void 0)return;if(f==="")throw TypeError("gauge holder must be a non-empty string");return f},i=(f)=>{let y=t(),_=(r.get(f)??[]).filter((w)=>w.expiresAt>y);if(_.length===0)r.delete(f);else r.set(f,_);return _},s=new Map,a=new Map,u=new Map,c=new Map,d=new Set,p=new Map,l=Number.NEGATIVE_INFINITY,m=(f,y)=>Math.floor(y/f)*f,g=(f,y,_,w)=>{let v=u.get(f);if(v===void 0)return;let k=m(y,w-_);for(let T of v.keys())if(T<k)v.delete(T)},h=(f)=>{let y=f-l;if(y>=0&&y<gS)return;l=f;for(let[_,w]of n)if(w.count(f),w.empty)n.delete(_)};return{liveWindows:()=>n.size,window:{claim(f,y,_){h(_);let w=n.get(f);if(w===void 0)w=new $o(y),n.set(f,w);let v={used:w.count(_),resetAt:w.resetAt(_)};return w.record(_),Promise.resolve({stamp:_,before:v})},rollback(f,y){return n.get(f)?.forget(y),Promise.resolve()}},gauge:{acquire(f,y,_){let w=o(_),v=i(f),k=t()+y,T=w===void 0?-1:v.findIndex((V)=>V.holder===w);if(T!==-1&&w!==void 0)return v[T]={expiresAt:k,holder:w},r.set(f,v),Promise.resolve(v.length-1);let C=v.length;return v.push(w===void 0?{expiresAt:k}:{expiresAt:k,holder:w}),r.set(f,v),Promise.resolve(C)},renew(f,y,_){o(y);let w=i(f),v=w.findIndex((k)=>k.holder===y);if(v!==-1)w[v]={expiresAt:t()+_,holder:y},r.set(f,w);return Promise.resolve()},release(f,y){o(y);let _=i(f);if(y===void 0)_.sort((w,v)=>w.expiresAt-v.expiresAt).shift();else{let w=_.findIndex((v)=>v.holder===y);if(w!==-1)_.splice(w,1)}if(_.length===0)r.delete(f);else r.set(f,_);return Promise.resolve()},read(f){return Promise.resolve(i(f).length)},snapshot(f){let y=new Map;for(let _ of[...r.keys()]){if(!_.startsWith(f))continue;let w=i(_).length;if(w>0)y.set(_,w)}return Promise.resolve(y)}},buckets:{add(f,y,_,w,v){g(f,y,_,w);let k=u.get(f);if(k===void 0)return Promise.resolve();let T=m(y,w),C=k.get(T)??{requests:0,tokens:0,costUsd:0};return k.set(T,{requests:C.requests+v.requests,tokens:C.tokens+v.tokens,costUsd:C.costUsd+v.costUsd}),Promise.resolve()},sum(f,y,_,w){g(f,y,_,w);let v=u.get(f);if(v===void 0)return Promise.resolve(null);let k={requests:0,tokens:0,costUsd:0};for(let T of v.values())k.requests+=T.requests,k.tokens+=T.tokens,k.costUsd+=T.costUsd;return Promise.resolve(k)},seed(f,y,_,w,v){let k=new Map;for(let[T,C]of v)k.set(m(y,T),{...C});return u.set(f,k),g(f,y,_,w),Promise.resolve()}},lease:{acquire(f,y,_){let w=c.get(f),v=t();if(w!==void 0&&w.holder!==y&&w.expiresAt>v)return Promise.resolve(!1);return c.set(f,{holder:y,expiresAt:v+_}),Promise.resolve(!0)},release(f,y){if(c.get(f)?.holder===y)c.delete(f);return Promise.resolve()}},pubsub:{publish(f,y){for(let _ of d)if(_.pattern.endsWith("*")?f.startsWith(_.pattern.slice(0,-1)):f===_.pattern)_.fn(f,y);return Promise.resolve()},publishSequenced(f,y,_){let w=(p.get(_)??0)+1;return p.set(_,w),this.publish(f,`${w}:${y}`).then(()=>w)},subscribe(f,y){let _={pattern:f,fn:y};return d.add(_),()=>{d.delete(_)}}},incr(f){let y=(p.get(f)??0)+1;return p.set(f,y),Promise.resolve(y)},kv:{set(f,y,_){return a.set(f,{value:y,expiresAt:t()+_}),Promise.resolve()},get(f){let y=a.get(f);if(y===void 0)return Promise.resolve(null);if(y.expiresAt<=t())return a.delete(f),Promise.resolve(null);return Promise.resolve(y.value)},del(f){return a.delete(f),Promise.resolve()},delPrefix(f){for(let y of a.keys())if(y.startsWith(f))a.delete(y);return Promise.resolve()}},mutex:{async withLock(f,y,_,w){let v,k=new Promise((C)=>{v=setTimeout(()=>C("expired"),_)});try{for(;;){let C=s.get(f);if(C===void 0)break;if(await Promise.race([C.then(()=>"released"),k])==="expired")throw new Fo(f)}}finally{clearTimeout(v)}let T=()=>{};s.set(f,new Promise((C)=>{T=C}));try{return await w()}finally{s.delete(f),T()}}}}}import{mkdir as AS,open as OS,readdir as CS,rmdir as PS,unlink as IS,writeFile as LS}from"fs/promises";import{dirname as qo,join as gr,sep as NS}from"path";import{promisify as xh}from"util";import{gunzip as DS,gzip as US}from"zlib";var hS=new TextEncoder().encode("omnigateway-field-encryption-v1");async function Bo(e){let t=await crypto.subtle.importKey("raw",new TextEncoder().encode(e),"PBKDF2",!1,["deriveKey"]);return crypto.subtle.deriveKey({name:"PBKDF2",salt:hS,iterations:210000,hash:"SHA-256"},t,{name:"AES-GCM",length:256},!1,["encrypt","decrypt"])}async function zo(e,t){let n=crypto.getRandomValues(new Uint8Array(12)),r=new Uint8Array(await crypto.subtle.encrypt({name:"AES-GCM",iv:n,tagLength:128},e,new TextEncoder().encode(t))),o=r.subarray(0,r.length-16),i=r.subarray(r.length-16);return["enc:v1",Ja(n),Ja(o),Ja(i)].join(":")}var yS=/^[0-9a-f]*$/;function Ya(e){return e.length%2===0&&yS.test(e)}async function An(e,t){let n=t.split(":"),[r,o,i,s,a]=n;if(n.length!==5||r!=="enc"||o!=="v1"||!i||!a||s===void 0||!Ya(i)||!Ya(s)||!Ya(a))throw Error("malformed ciphertext");let u=new Uint8Array([...eu(s),...eu(a)]),c=await crypto.subtle.decrypt({name:"AES-GCM",iv:eu(i),tagLength:128},e,u);return new TextDecoder().decode(c)}function Ja(e){return Array.from(e,(t)=>t.toString(16).padStart(2,"0")).join("")}function eu(e){let t=new Uint8Array(e.length/2);for(let n=0;n<t.length;n++)t[n]=Number.parseInt(e.slice(n*2,n*2+2),16);return t}var Th=new TextEncoder,_S=new TextDecoder,wS=65536-Th.encode("\u2026[truncated]").length-3;function bS(e){let t=Th.encode(e);if(t.length<=65536)return e;return _S.decode(t.subarray(0,wS))+"\u2026[truncated]"}function pr(e){let t=!1,n=(o,i)=>{if(typeof o==="string"){let s=bS(o);if(s!==o)t=!0;return s}if(Array.isArray(o)){if(i>6)return t=!0,"[omitted: nesting past 6 levels]";let s=o.length>24?o.slice(-24):o;if(s.length!==o.length)t=!0;return s.map((a)=>n(a,i+1))}if(o!==null&&typeof o==="object"){if(i>6)return t=!0,"[omitted: nesting past 6 levels]";let s=Object.entries(o),a=s.length>80?s.slice(0,80):s;if(a.length!==s.length)t=!0;return Object.fromEntries(a.map(([u,c])=>[u,n(c,i+1)]))}return o};return{value:n(e,1),truncated:t}}var kS=/\b(bearer)\s+[A-Za-z0-9._~+/=-]+/gi,ES=/(?<![A-Za-z0-9_-])(?:sk|ak|pk)-[A-Za-z0-9_-]{8,}/g,vS=/(?<![A-Za-z0-9_-])(?:gh[posu]_|github_pat_|AIza|GOCSPX-)[A-Za-z0-9_-]{8,}/g,TS=/^(?:gh[posu]_|github_pat_|AIza|GOCSPX-)/,RS=/(?<![A-Za-z0-9_-])xai-[A-Za-z0-9_]{8,}/g,SS=/[A-Za-z0-9_-]{41,}/g,xS=[{id:"bearer",pattern:kS,keep:(e)=>e.length-e.replace(/^bearer\s+/i,"").length},{id:"prefixedKey",pattern:ES,keep:()=>3},{id:"vendorKey",pattern:vS,keep:(e)=>TS.exec(e)?.[0].length??0},{id:"xaiKey",pattern:RS,keep:()=>4},{id:"opaque",pattern:SS,keep:()=>0}];function tu(e){return xS.reduce((t,n)=>t.replace(n.pattern,(r)=>`${r.slice(0,n.keep(r))}[redacted]`),e)}function On(e){if(typeof e==="string")return tu(e);if(Array.isArray(e))return e.map(On);if(e!==null&&typeof e==="object")return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,On(n)]));return e}var Ah=1,xt=524288,hr=1e5,Oh="request_bodies",ru=new TextEncoder;function yr(e){return gr(qo(e),Oh)}var MS=/^[A-Za-z0-9_-]{1,128}$/;function Wo(e){return MS.test(e)}function jo(e,t){let n=new Date(t),r=String(n.getUTCFullYear()).padStart(4,"0"),o=String(n.getUTCMonth()+1).padStart(2,"0"),i=String(n.getUTCDate()).padStart(2,"0");return`${r}/${o}/${i}/${e}.json.enc`}async function Ch(e){let t=await crypto.subtle.digest("SHA-256",new Uint8Array(e));return Array.from(new Uint8Array(t),(n)=>n.toString(16).padStart(2,"0")).join("")}function Rh(e){let t=pr(On(e.request)),n=pr(On(e.response));return{request:t.value,response:n.value,truncated:e.truncated===!0||t.truncated||n.truncated}}function $S(e){return{omitted:!0,reason:`artifact exceeded ${xt} bytes after structural bounding`,serializedBytes:e}}function FS(e,t){return{...e,client:{request:t,response:t,truncated:!0},attempts:e.attempts.map((n)=>({attempt:n.attempt,provider:n.provider,request:t,response:t,streamChunks:null,truncated:!0}))}}function Ko(e){let t=Rh(e.client),n=e.attempts.map((p)=>{let l=Rh(p),m=p.streamChunks===null?null:pr(p.streamChunks.map(tu));return{attempt:p.attempt,provider:p.provider,request:l.request,response:l.response,streamChunks:m===null?null:m.value,truncated:l.truncated||(m?.truncated??!1)}}),r=pr(On(e.error)),o={schemaVersion:Ah,requestId:e.requestId,at:e.at,client:t,attempts:n,error:r.value},i=JSON.stringify(o),s=Buffer.byteLength(i);if(s<=xt)return{artifact:o,json:i};let a=$S(s),u=FS(o,a),c=JSON.stringify(u);if(Buffer.byteLength(c)<=xt)return{artifact:u,json:c};let d={...u,error:a};return{artifact:d,json:JSON.stringify(d)}}var Go=2*xt+65,Ph=ru.encode("OGBA"),BS=ru.encode("enc:v1:"),Ih=1,$t=10,fr=12,ou=16,Ho=$t+fr+ou,zS=xt+Ho,iu=0,Lh=1;var qS=18,qM=xh(US),HS=xh(DS);function mr(e,t,n){return e.slice(t,n)}function WS(e){let t=ru.encode(e);if(t.length<1||t.length>xt)throw Error("artifact plaintext is outside the binary envelope's bounds");return t}async function Zo(e,t){let n=WS(t);return jS(e,n.length,iu,n)}async function jS(e,t,n,r){let o=new Uint8Array(Ho+r.length);o.set(Ph,0),o[4]=Ih,o[5]=n,new DataView(o.buffer).setUint32(6,t,!1);let i=crypto.getRandomValues(new Uint8Array(fr)),s=await crypto.subtle.encrypt({name:"AES-GCM",iv:i,additionalData:mr(o,0,$t),tagLength:ou*8},e,mr(r,0));return o.set(i,$t),o.set(new Uint8Array(s),$t+fr),{bytes:o,sha256:await Ch(o)}}async function Nh(e,t,n,r){let o=await KS(gr(t,n));if(!(o instanceof Uint8Array))return{ok:!1,failure:o};return su(e,o,r)}async function KS(e){let t;try{t=await OS(e,"r")}catch{return"missing"}try{let{size:n}=await t.stat();if(n>Go)return"corrupt";let r=new Uint8Array(n+1),o=0;while(o<r.length){let{bytesRead:i}=await t.read(r,o,r.length-o,o);if(i===0)break;o+=i}return o>n?"corrupt":r.subarray(0,o)}catch{return"missing"}finally{await t.close().catch(()=>{})}}var nu=/^(?:[0-9a-f]{2})*$/,GS=24,ZS=32;function XS(e){let t=e.split(":"),[n,r,o,i,s]=t;return t.length===5&&n==="enc"&&r==="v1"&&o!==void 0&&i!==void 0&&s!==void 0&&o.length===GS&&s.length===ZS&&nu.test(o)&&nu.test(i)&&nu.test(s)}function VS(e,t,n){switch(e){case iu:return t===n;case Lh:return t>=qS;default:return!1}}async function QS(e,t,n){switch(e){case iu:return t;case Lh:return YS(t,n);default:throw Error("unsupported artifact codec")}}async function YS(e,t){let n=await HS(e,{maxOutputLength:xt,info:!0}),r=JS(n);if(r===null)throw Error("gzip result has an unexpected shape");if(r.consumed!==e.length)throw Error("bytes follow the gzip stream");if(r.output.length!==t)throw Error("gzip output is not the claimed length");return r.output}function JS(e){if(typeof e!=="object"||e===null)return null;if(!("buffer"in e)||!("engine"in e))return null;let{buffer:t,engine:n}=e;if(!(t instanceof Uint8Array)||typeof n!=="object"||n===null)return null;if(!("bytesWritten"in n)||typeof n.bytesWritten!=="number")return null;return{output:t,consumed:n.bytesWritten}}function ex(e){if(e.length<Ho||e.length>zS)return null;let t=new DataView(e.buffer,e.byteOffset,e.byteLength),n=t.getUint8(4),r=t.getUint8(5),o=t.getUint32(6,!1);if(n!==Ih)return null;if(o<1||o>xt)return null;if(!VS(r,e.length-Ho,o))return null;return{header:mr(e,0,$t),codec:r,claimed:o,iv:mr(e,$t,$t+fr),sealed:mr(e,$t+fr)}}async function tx(e,t){let n=await crypto.subtle.decrypt({name:"AES-GCM",iv:t.iv,additionalData:t.header,tagLength:ou*8},e,t.sealed);return new TextDecoder("utf-8",{fatal:!0}).decode(await QS(t.codec,new Uint8Array(n),t.claimed))}function Sh(e,t){if(e.length<t.length)return!1;return t.every((n,r)=>e[r]===n)}async function su(e,t,n){let r={ok:!1,failure:"corrupt"};try{if(t.length>Go)return r;let o;if(Sh(t,Ph)){let s=ex(t);if(s===null)return r;o=()=>tx(e,s)}else if(Sh(t,BS)){let s=new TextDecoder().decode(t);if(!XS(s))return r;o=()=>An(e,s)}else return r;if(n!==null&&await Ch(t)!==n)return r;let i=JSON.parse(await o());if(i===null||typeof i!=="object"||Array.isArray(i))return r;return{ok:!0,artifact:i}}catch{return r}}async function Dh(e,t,n){let r=gr(e,t);await AS(qo(r),{recursive:!0}),await LS(r,n)}async function au(e,t){let n=gr(e,t);try{await IS(n)}catch{return}let r=qo(n);while(r.length>e.length&&r.startsWith(e+NS)){try{await PS(r)}catch{return}r=qo(r)}}async function Uh(e){let t=[],n=async(r,o)=>{let i;try{i=await CS(r,{withFileTypes:!0})}catch{return}for(let s of i){let a=o===""?s.name:`${o}/${s.name}`;if(s.isDirectory())await n(gr(r,s.name),a);else if(s.isFile())t.push(a)}};return await n(e,""),t}var Ee="context-1m-2025-08-07",Mh=1e6;var ee={AUTH:!0,RATE_LIMIT:!0,QUOTA_EXHAUSTED:!0,OVERLOADED:!0,MODEL_UNAVAILABLE:!0,CAPABILITY_MISMATCH:!0,UPSTREAM:!0,TIMEOUT:!0,NETWORK:!0,BAD_REQUEST:!1,CONFLICT:!1,CONTENT_FILTER:!1,FINGERPRINT_REFUSED:!1,NO_CANDIDATES:!1,ALL_CANDIDATES_FAILED:!1,INTERNAL:!1};function H(e,t){if(!(e instanceof Error))return t;return e.message.length>0?e.message:e.name}class b extends Error{code;retryable;provider;upstreamStatus;gatewayAuthored;retryAfterMs;degradations;constructor(e,t,n){super(t,n?.cause===void 0?void 0:{cause:n.cause});this.name="GatewayError",this.code=e,this.retryable=ee[e],this.provider=n?.provider,this.upstreamStatus=n?.status,this.gatewayAuthored=n?.gatewayAuthored??!1,this.retryAfterMs=n?.retryAfterMs,this.degradations=[...n?.degradations??[]]}}var Xo={debug:10,info:20,warn:30,error:40};function on(e){let t=typeof e==="string"?e:String(e);return/^[A-Za-z0-9_.:/+-]{1,64}$/.test(t)?t:"(unprintable)"}var nx=/\u001B\[[0-9;]*m/g,rx=/^(\S+) (DEBUG|INFO|WARN|ERROR) {1,2}(.*)$/,ox=/ {2}(?=[a-zA-Z]+=)/;function $h(e){let t={raw:e,at:null,level:null,msg:null},n=rx.exec(e.replace(nx,""));if(n===null)return t;let[,r,o,i]=n;if(r===void 0||o===void 0||i===void 0)return t;let s=Date.parse(r);if(Number.isNaN(s))return t;let a=i.split(ox,1)[0]??i;return{raw:e,at:s,level:o.toLowerCase(),msg:a}}var se={debug:()=>{},info:()=>{},warn:()=>{},error:()=>{},enabled:()=>!1};function Vo(e){let t=e?.trim().toLowerCase();if(t===void 0||t.length===0)return null;return Object.hasOwn(Xo,t)?t:null}function pt(e){return e.type==="thinking"?void 0:e.cacheControl}function xe(e,t,n,r=0){return{inputTokens:Math.max(0,e-n-r),outputTokens:t,cacheReadTokens:n,cacheWriteTokens:r}}var ix=4,Fh=1600,Ft=4,Bh=4;function Ae(e){return Math.ceil(e.length/ix)}function Cn(e){switch(e.type){case"text":return Ft+Ae(e.text);case"image":return Ft+Fh;case"thinking":return Ft+Ae(e.text);case"toolUse":return Ft+Ae(e.name)+Ae(Qo(e.input));case"toolResult":return Ft+Ae(e.toolUseId)+Ae(e.content)+(e.images?.length??0)*Fh+(e.files??[]).reduce((t,n)=>t+Ae(n.data),0)+(e.native??[]).reduce((t,n)=>t+Cn(n),0);case"providerNative":return Ft+Ae(e.blockType)+Ae(Qo(e.data))}}function zh(e){let t=Bh;for(let n of e.content)t+=Cn(n);return t}function uu(e){if(e.kind==="provider")return Ft+Ae(e.name)+Ae(e.type)+Ae(Qo(e.wire));return Ft+Ae(e.name)+Ae(e.description??"")+Ae(Qo(e.inputSchema))}function Qo(e){try{return JSON.stringify(e)??""}catch{return""}}function qh(e){let t=0;for(let n of e.system??[])t+=Cn(n);for(let n of e.messages)t+=zh(n);for(let n of e.tools??[])t+=uu(n);return t}function Hh(e){let t=0;for(let o of e.tools??[])t+=uu(o);let n=t;for(let o of e.system??[])n+=Cn(o);let r=n;for(let o of e.messages)r+=zh(o);return{tools:t,toolsAndSystem:n,total:r}}function Yo(e){let t=0,n=0;for(let r of e.tools??[])if(t+=uu(r),r.cacheControl!==void 0)n=t;for(let r of e.system??[])if(t+=Cn(r),pt(r)!==void 0)n=t;for(let r of e.messages){t+=Bh;for(let o of r.content){if(t+=Cn(o),pt(o)!==void 0)n=t;if(o.type==="toolResult"&&[...o.images??[],...o.native??[]].some((i)=>i.cacheControl!==void 0))n=t}}return n}var ve=3600000;function $e(e){return Math.floor(e/3600000)}var Wh=86400000;function et(){return-new Date().getTimezoneOffset()||0}function mt(e,t){let n=t*60000;return Math.floor((e+n)/Wh)*Wh-n}var sx=`
|
|
69
69
|
INSERT INTO usage_daily
|
|
70
70
|
(day, provider, credential_id, requested_model, resolved_model, api_key_id,
|
|
71
71
|
requests, errors, input_tokens, output_tokens, cache_read_tokens,
|
|
@@ -112,7 +112,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
112
112
|
output_tokens = output_tokens + excluded.output_tokens,
|
|
113
113
|
cache_read_tokens = cache_read_tokens + excluded.cache_read_tokens,
|
|
114
114
|
cache_write_tokens = cache_write_tokens + excluded.cache_write_tokens,
|
|
115
|
-
cost_usd = cost_usd + excluded.cost_usd`;function Gh(e,t){let n=t.apiKeyId;if(n===null)return;e.run(px,[n
|
|
115
|
+
cost_usd = cost_usd + excluded.cost_usd`;function Gh(e,t){let n=t.apiKeyId;if(n===null)return;e.run(px,[n,$e(t.at),1,t.inputTokens,t.outputTokens,t.cacheReadTokens,t.cacheWriteTokens,t.costUsd])}var mx=`
|
|
116
116
|
INSERT INTO usage_rollup
|
|
117
117
|
(api_key_id, hour, requests, input_tokens, output_tokens,
|
|
118
118
|
cache_read_tokens, cache_write_tokens, cost_usd)
|
|
@@ -126,7 +126,7 @@ Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.
|
|
|
126
126
|
COALESCE(SUM(cost_usd), 0)
|
|
127
127
|
FROM request_logs
|
|
128
128
|
WHERE state = 'done' AND api_key_id IS NOT NULL
|
|
129
|
-
GROUP BY api_key_id, CAST(at / 3600000 AS INTEGER)`;function
|
|
129
|
+
GROUP BY api_key_id, CAST(at / 3600000 AS INTEGER)`;function Jo(e){e.run("DELETE FROM usage_rollup"),e.run(mx)}function Zh(e){let t=e.query(`WITH truth AS (
|
|
130
130
|
SELECT api_key_id AS k,
|
|
131
131
|
CAST(at / 3600000 AS INTEGER) AS h,
|
|
132
132
|
COUNT(*) AS requests,
|
|
@@ -606,7 +606,7 @@ CREATE INDEX idx_request_logs_key_model_at ON request_logs (api_key_id, requeste
|
|
|
606
606
|
-- previous image keeps serving, ignoring the field (and therefore not judging
|
|
607
607
|
-- that key's requests until it is replaced, which README's upgrade notes say).
|
|
608
608
|
ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
609
|
-
`;var
|
|
609
|
+
`;var P=(e)=>Number(e),ae=(e)=>e===null?null:Number(e),ei=7140641,Ex=[{id:1,sql:Vh},{id:2,sql:Qh},{id:3,sql:Yh},{id:4,sql:Jh},{id:5,sql:ey},{id:6,sql:ty},{id:7,sql:ny}];async function ry(e){let t=new kx({url:e}),n=await t.reserve();try{await n.unsafe(`SELECT pg_advisory_lock(${ei})`);try{await n.unsafe("CREATE TABLE IF NOT EXISTS migrations (id INTEGER PRIMARY KEY, applied_at BIGINT NOT NULL)");let r=new Set((await n.unsafe("SELECT id FROM migrations")).map((o)=>o.id));for(let o of Ex){if(r.has(o.id))continue;await n.unsafe("BEGIN");try{await n.unsafe(o.sql),await n.unsafe("INSERT INTO migrations (id, applied_at) VALUES ($1, $2)",[o.id,Date.now()]),await n.unsafe("COMMIT")}catch(i){throw await n.unsafe("ROLLBACK"),i}}}finally{await n.unsafe(`SELECT pg_advisory_unlock(${ei})`)}}finally{n.release()}return t}function vx(e){return e==="ready"||e==="missing"||e==="corrupt"?e:"none"}var cu=(e)=>({requestId:e.request_id,at:P(e.at),relPath:e.rel_path,sizeBytes:P(e.size_bytes),sha256:e.sha256,detailState:vx(e.detail_state),truncated:e.truncated}),du="request_id, at, rel_path, size_bytes, sha256, detail_state, truncated";function oy(e,t){let n=async(o)=>{if(o.length>0)await e.unsafe("DELETE FROM request_bodies WHERE request_id IN (SELECT jsonb_array_elements_text($1::jsonb))",[o.map((i)=>i.requestId)]);return o.length},r=async(o,i)=>{await e.unsafe("UPDATE request_bodies SET detail_state = $1 WHERE request_id = $2",[i,o])};return{async put(o){if(!Wo(o.requestId))throw Error("request id is not safe to use as an artifact path segment");let i=Ko(o),s=await Zo(t,i.json),a=jo(o.requestId,o.at),u=i.artifact.client.truncated||i.artifact.attempts.some((d)=>d.truncated),c={requestId:o.requestId,at:o.at,relPath:a,sizeBytes:s.bytes.length,sha256:s.sha256,detailState:"ready",truncated:u};return await e.unsafe(`INSERT INTO request_bodies
|
|
610
610
|
(request_id, at, rel_path, size_bytes, sha256, detail_state, truncated, bytes)
|
|
611
611
|
VALUES ($1,$2,$3,$4,$5,$6,$7,$8)
|
|
612
612
|
ON CONFLICT (request_id) DO UPDATE SET
|
|
@@ -616,14 +616,14 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
616
616
|
sha256 = EXCLUDED.sha256,
|
|
617
617
|
detail_state = EXCLUDED.detail_state,
|
|
618
618
|
truncated = EXCLUDED.truncated,
|
|
619
|
-
bytes = EXCLUDED.bytes`,[
|
|
619
|
+
bytes = EXCLUDED.bytes`,[c.requestId,c.at,c.relPath,c.sizeBytes,c.sha256,c.detailState,c.truncated,s.bytes]),c},async get(o){let i=(await e.unsafe(`SELECT ${du},
|
|
620
620
|
CASE WHEN octet_length(bytes) <= $2 THEN bytes ELSE NULL END AS bytes,
|
|
621
621
|
octet_length(bytes) AS encoded_size
|
|
622
|
-
FROM request_bodies WHERE request_id = $1`,[o,
|
|
622
|
+
FROM request_bodies WHERE request_id = $1`,[o,Go]))[0];if(i===void 0)return null;let s=cu(i);if(s.relPath===null||s.detailState==="none")return{row:s,artifact:null};let a=i.encoded_size===null?{ok:!1,failure:"missing"}:i.bytes===null?{ok:!1,failure:"corrupt"}:await su(t,new Uint8Array(i.bytes),s.sha256);if(a.ok){if(s.detailState!=="ready")await r(o,"ready");return{row:{...s,detailState:"ready"},artifact:a.artifact}}return await r(o,a.failure),{row:{...s,detailState:a.failure},artifact:null}},async prune(o){let i=await e.unsafe(`SELECT ${du} FROM request_bodies WHERE at < $1`,[o]);return n(i.map(cu))},async pruneToCap(o=hr){let i=P((await e.unsafe("SELECT COUNT(*) AS n FROM request_bodies"))[0]?.n??0);if(i<=o)return 0;let s=await e.unsafe(`SELECT ${du} FROM request_bodies ORDER BY at ASC, request_id ASC LIMIT $1`,[i-o]);return n(s.map(cu))},async sweepOrphans(){return 0}}}var lu=["off","lite","full","ultra"],Tx=new Set(lu);function ti(e){return Tx.has(e)}var Rx={fiveHour:18000000,daily:86400000,weekly:604800000};function ni(e,t){return t!==null&&t>0?t:Rx[e]}var Sx=60000;function ri(e,t){if(e===null||t===null)return e===t;return Math.abs(e-t)<=Sx}function _r(e,t){return e.resetsAt!==null&&e.resetsAt<=t}function sy(e,t){if(t===void 0)return"unknown";if(e.observedAt>0&&t.stale)return"stale";if(t.ratePerHour===null||e.limit===null||e.limit<=0)return"unknown";if(t.survives===!1&&t.exhaustsAt!==null)return"empty";return t.survives===!0?"ok":"unknown"}var xx=0.1;function ay(e){return e.cacheRead??e.input*xx}function pu(e,t){if(t.provider!==e.provider)return!1;let n=Symbol("unusable-endpoint"),r=(i)=>i===void 0||i===""?void 0:i,o=(i)=>{if(i===void 0)return;return typeof i==="string"&&i!==""?i:n};if(r(e.endpointId)!==o(t.providerData.endpointId))return!1;return e.credentialId===void 0||t.id===e.credentialId}function Pn(e,t){if(e.credentialId===void 0)return;return t.find((n)=>pu(e,n))}var uy=4000,mu=60000,fu=10,wr=(e,t)=>e.revokedAt===null&&(e.expiresAt===null||e.expiresAt>t),gu=(e,t)=>e.authType==="oauth"&&e.expiresAt!==null&&e.expiresAt<=t,oi=(e,t)=>gu(e,t)&&!e.hasRefreshToken,Bt=60000,ye={weights:{tier:10,health:3,quota:2,load:2,cost:1,latency:1},maxAttempts:3,requestDeadlineMs:0,breakerThreshold:3,breakerCooldownMs:30000,logRetentionDays:30,bodyRetentionDays:1,quotaPollIntervalMs:300000,rtkEnabled:!1,autoCacheEnabled:!0,ponytailMode:"off",bodyLoggingEnabled:!1,bodyLoggingCaptureStreamChunks:!1,snapshotKeepLatest:5,snapshotMaxAgeDays:30,guardrailModel:null,guardrailTimeoutMs:1e4,guardrailHistoryTurns:3},iy=(e,t)=>typeof e==="number"&&Number.isInteger(e)&&e>=1&&e<=t;function ii(e){let{guardrailModel:t,guardrailTimeoutMs:n,guardrailHistoryTurns:r}=e;return{guardrailModel:typeof t==="string"&&t.trim()!==""?t:null,guardrailTimeoutMs:iy(n,mu)?n:ye.guardrailTimeoutMs,guardrailHistoryTurns:iy(r,fu)?r:ye.guardrailHistoryTurns}}var cy="settings",hu="adminPasswordHash",yu="viewerPasswordHash";function Ax(e){let t=ye.weights,n=(r)=>{let o=e?.[r];return typeof o==="number"&&Number.isFinite(o)?o:t[r]};return{tier:n("tier"),health:n("health"),quota:n("quota"),load:n("load"),cost:n("cost"),latency:n("latency")}}function dy(e,t){let n=async(o)=>(await e.unsafe("SELECT value FROM settings WHERE key = $1",[o]))[0]?.value??null,r=async(o,i)=>{await e.unsafe("INSERT INTO settings (key, value) VALUES ($1, $2) ON CONFLICT (key) DO UPDATE SET value = EXCLUDED.value",[o,i])};return{async listModels(){return(await e.unsafe("SELECT * FROM virtual_models ORDER BY id")).map((i)=>({id:i.id,targets:JSON.parse(i.targets),strategy:i.strategy,isAlias:i.is_alias}))},async putModel(o){await e.unsafe(`INSERT INTO virtual_models (id, targets, strategy, is_alias) VALUES ($1,$2,$3,$4)
|
|
623
623
|
ON CONFLICT (id) DO UPDATE SET
|
|
624
624
|
targets = EXCLUDED.targets,
|
|
625
625
|
strategy = EXCLUDED.strategy,
|
|
626
|
-
is_alias = EXCLUDED.is_alias`,[o.id,JSON.stringify(o.targets),o.strategy,o.isAlias]),t({type:"modelsChanged"})},async removeModel(o){await e.unsafe("DELETE FROM virtual_models WHERE id = $1",[o]),t({type:"modelsChanged"})},async getSettings(){let o=await n(cy);if(o===null)return
|
|
626
|
+
is_alias = EXCLUDED.is_alias`,[o.id,JSON.stringify(o.targets),o.strategy,o.isAlias]),t({type:"modelsChanged"})},async removeModel(o){await e.unsafe("DELETE FROM virtual_models WHERE id = $1",[o]),t({type:"modelsChanged"})},async getSettings(){let o=await n(cy);if(o===null)return ye;try{let i=JSON.parse(o),s=i!==null&&typeof i==="object"&&!Array.isArray(i)?i:{};return{...ye,...s,rtkEnabled:s.rtkEnabled===!0,autoCacheEnabled:s.autoCacheEnabled===void 0?!0:s.autoCacheEnabled===!0,ponytailMode:ti(s.ponytailMode)?s.ponytailMode:"off",bodyRetentionDays:Number.isInteger(s.bodyRetentionDays)&&(s.bodyRetentionDays??0)>=1&&(s.bodyRetentionDays??0)<=3650?s.bodyRetentionDays:ye.bodyRetentionDays,bodyLoggingEnabled:s.bodyLoggingEnabled===!0,bodyLoggingCaptureStreamChunks:s.bodyLoggingCaptureStreamChunks===!0,weights:Ax(s.weights),...ii(s)}}catch{return ye}},async putSettings(o){let i=await this.getSettings(),s={...i,...o,weights:{...i.weights,...o.weights}};return await r(cy,JSON.stringify(s)),t({type:"settingsChanged"}),s},async getAdminPasswordHash(){return n(hu)},async setAdminPasswordHashIfAbsent(o){return(await e.unsafe("INSERT INTO settings (key, value) VALUES ($1, $2) ON CONFLICT (key) DO NOTHING",[hu,o])).count===1},async setAdminPasswordHash(o){await r(hu,o)},async getViewerPasswordHash(){return n(yu)},async setViewerPasswordHash(o){if(o===null){await e.unsafe("DELETE FROM settings WHERE key = $1",[yu]);return}await r(yu,o)}}}function ly(e){return{credentialId:e.credential_id,model:e.model,breakerState:e.breaker_state,consecutiveFailures:e.consecutive_failures,openedAt:ae(e.opened_at),rateLimitedUntil:ae(e.rate_limited_until)}}var Ox=`INSERT INTO credential_health
|
|
627
627
|
(credential_id, model, breaker_state, consecutive_failures, opened_at,
|
|
628
628
|
rate_limited_until)
|
|
629
629
|
VALUES ($1,$2,$3,$4,$5,$6)
|
|
@@ -631,7 +631,7 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
631
631
|
breaker_state = EXCLUDED.breaker_state,
|
|
632
632
|
consecutive_failures = EXCLUDED.consecutive_failures,
|
|
633
633
|
opened_at = EXCLUDED.opened_at,
|
|
634
|
-
rate_limited_until = EXCLUDED.rate_limited_until`,
|
|
634
|
+
rate_limited_until = EXCLUDED.rate_limited_until`,Cx=(e)=>[e.credentialId,e.model,e.breakerState,e.consecutiveFailures,e.openedAt,e.rateLimitedUntil];function py(e,t,n){let r=async(l)=>l===null?null:An(t,l),o=async(l)=>({accessToken:await r(l.access_token),refreshToken:await r(l.refresh_token),apiKey:await r(l.api_key),idToken:await r(l.id_token)}),i=async(l,m,g)=>{let f=(await l.unsafe(`SELECT ${m} FROM credentials WHERE id = $1`,[g]))[0];if(f===void 0)throw Error(`credential ${g} no longer exists`);return f},s=async(l)=>o(await i(e,"access_token, refresh_token, api_key, id_token",l)),a=async(l,m)=>{if(m==="oauth"){let h=await i(e,"access_token",l);return{accessToken:await r(h.access_token),apiKey:null}}let g=await i(e,"api_key",l);return{accessToken:null,apiKey:await r(g.api_key)}},u=async(l)=>{let m=await i(e,"refresh_token",l);return{refreshToken:await r(m.refresh_token)}},c=async(l)=>{let m=await i(e,"access_token",l);return{accessToken:await r(m.access_token)}},d=(l,m=!1)=>({id:l.id,provider:l.provider,label:l.label,authType:l.auth_type,enabled:l.enabled,tier:l.tier,weight:l.weight,expiresAt:ae(l.expires_at),accountEmail:l.account_email,providerData:JSON.parse(l.provider_data),disabledReason:l.disabled_reason,disabledAt:ae(l.disabled_at),hasRefreshToken:l.refresh_token!==null,tokenVersion:l.token_version,createdAt:P(l.created_at),updatedAt:P(l.updated_at),secrets:()=>m?s(l.id):o(l),openForInference:async()=>{if(m)return a(l.id,l.auth_type);if(l.auth_type==="oauth")return{accessToken:await r(l.access_token),apiKey:null};return{accessToken:null,apiKey:await r(l.api_key)}},openForRefresh:async()=>m?u(l.id):{refreshToken:await r(l.refresh_token)},openForUsage:async()=>m?c(l.id):{accessToken:await r(l.access_token)}}),p=async(l)=>l===null||l===void 0?null:zo(t,l);return{async list(){return(await e.unsafe("SELECT * FROM credentials ORDER BY tier, label")).map((m)=>d(m))},async listRouting(){return(await e.unsafe(`SELECT id, provider, label, auth_type, enabled, tier, weight, expires_at,
|
|
635
635
|
account_email, provider_data, disabled_reason, disabled_at,
|
|
636
636
|
NULL AS access_token,
|
|
637
637
|
CASE WHEN refresh_token IS NULL THEN NULL ELSE 'present' END AS refresh_token,
|
|
@@ -641,7 +641,7 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
641
641
|
(id, provider, label, auth_type, enabled, tier, weight, expires_at, account_email,
|
|
642
642
|
provider_data, disabled_reason, disabled_at, access_token, refresh_token, api_key,
|
|
643
643
|
id_token, created_at, updated_at)
|
|
644
|
-
VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18)`,[l.id,l.provider,l.label,l.authType,l.enabled,l.tier,l.weight,l.expiresAt,l.accountEmail,JSON.stringify(l.providerData),l.disabledReason,l.disabledAt,await p(l.accessToken),await p(l.refreshToken),await p(l.apiKey),await p(l.idToken),m,m]);let{accessToken:g,refreshToken:h,apiKey:f,idToken:y,..._}=l;return n({type:"credentialsChanged"}),{..._,hasRefreshToken:h!=null,tokenVersion:0,createdAt:m,updatedAt:m}},async update(l,m){let g=[],h=[],f=(y,_)=>{h.push(_),g.push(`${y} = $${h.length}`)};if(m.label!==void 0)f("label",m.label);if(m.enabled!==void 0)f("enabled",m.enabled);if(m.tier!==void 0)f("tier",m.tier);if(m.weight!==void 0)f("weight",m.weight);if(m.expiresAt!==void 0)f("expires_at",m.expiresAt);if(m.accountEmail!==void 0)f("account_email",m.accountEmail);if(m.providerData!==void 0)f("provider_data",JSON.stringify(m.providerData));if(m.disabledReason!==void 0)f("disabled_reason",m.disabledReason);if(m.disabledAt!==void 0)f("disabled_at",m.disabledAt);if(g.length===0)return;f("updated_at",Date.now()),await e.unsafe(`UPDATE credentials SET ${g.join(", ")} WHERE id = $${h.length+1}`,[...h,l]),n({type:"credentialsChanged"})},async updateSecrets(l,m,g,h){let f=[],y=[],_=(
|
|
644
|
+
VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18)`,[l.id,l.provider,l.label,l.authType,l.enabled,l.tier,l.weight,l.expiresAt,l.accountEmail,JSON.stringify(l.providerData),l.disabledReason,l.disabledAt,await p(l.accessToken),await p(l.refreshToken),await p(l.apiKey),await p(l.idToken),m,m]);let{accessToken:g,refreshToken:h,apiKey:f,idToken:y,..._}=l;return n({type:"credentialsChanged"}),{..._,hasRefreshToken:h!=null,tokenVersion:0,createdAt:m,updatedAt:m}},async update(l,m){let g=[],h=[],f=(y,_)=>{h.push(_),g.push(`${y} = $${h.length}`)};if(m.label!==void 0)f("label",m.label);if(m.enabled!==void 0)f("enabled",m.enabled);if(m.tier!==void 0)f("tier",m.tier);if(m.weight!==void 0)f("weight",m.weight);if(m.expiresAt!==void 0)f("expires_at",m.expiresAt);if(m.accountEmail!==void 0)f("account_email",m.accountEmail);if(m.providerData!==void 0)f("provider_data",JSON.stringify(m.providerData));if(m.disabledReason!==void 0)f("disabled_reason",m.disabledReason);if(m.disabledAt!==void 0)f("disabled_at",m.disabledAt);if(g.length===0)return;f("updated_at",Date.now()),await e.unsafe(`UPDATE credentials SET ${g.join(", ")} WHERE id = $${h.length+1}`,[...h,l]),n({type:"credentialsChanged"})},async updateSecrets(l,m,g,h){let f=[],y=[],_=(k,T)=>{y.push(T),f.push(`${k} = $${y.length}`)};if(m.accessToken!==void 0)_("access_token",await p(m.accessToken));if(m.refreshToken!==void 0)_("refresh_token",await p(m.refreshToken));if(m.apiKey!==void 0)_("api_key",await p(m.apiKey));if(m.idToken!==void 0)_("id_token",await p(m.idToken));_("expires_at",g),_("updated_at",Date.now()),f.push("token_version = token_version + 1"),y.push(l);let w=`WHERE id = $${y.length}`;if(h!==void 0)y.push(h),w+=` AND token_version = $${y.length}`;let v=await e.unsafe(`UPDATE credentials SET ${f.join(", ")} ${w}`,y);if(v.count>0)n({type:"credentialsChanged"});return v.count>0},async remove(l){await e.unsafe("DELETE FROM credentials WHERE id = $1",[l]),n({type:"credentialsChanged"})},async listHealth(){return(await e.unsafe("SELECT * FROM credential_health")).map(ly)},async updateHealth(l,m,g){let h=await e.begin(async(f)=>{await f.unsafe("SELECT pg_advisory_xact_lock(hashtext($1))",[`${l}|${m}`]);let _=(await f.unsafe("SELECT * FROM credential_health WHERE credential_id = $1 AND model = $2 FOR UPDATE",[l,m]))[0],w=g(_===void 0?null:ly(_));return await f.unsafe(Ox,Cx(w)),w});return n({type:"healthSaved",rows:[h]}),h},async listQuota(){return(await e.unsafe("SELECT * FROM quota_windows")).map((m)=>({credentialId:m.credential_id,windowType:m.window_type,startsAt:P(m.starts_at),used:P(m.used),limit:ae(m.limit_value),resetsAt:ae(m.resets_at),observedAt:P(m.observed_at),windowMs:ae(m.window_ms)}))},async saveQuota(l){let m=new Map;for(let g of l){let h=m.get(g.credentialId);if(h===void 0)m.set(g.credentialId,[g.windowType]);else h.push(g.windowType)}await e.begin(async(g)=>{for(let h of l){await g.unsafe(`INSERT INTO quota_windows
|
|
645
645
|
(credential_id, window_type, starts_at, used, limit_value, resets_at, observed_at,
|
|
646
646
|
window_ms)
|
|
647
647
|
VALUES ($1,$2,$3,$4,$5,$6,$7,$8)
|
|
@@ -655,7 +655,7 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
655
655
|
FROM quota_samples
|
|
656
656
|
WHERE credential_id = $1 AND window_type = $2
|
|
657
657
|
ORDER BY observed_at DESC
|
|
658
|
-
LIMIT 1`,[h.credentialId,h.windowType]))[0];if(f!==void 0&&
|
|
658
|
+
LIMIT 1`,[h.credentialId,h.windowType]))[0];if(f!==void 0&&P(f.used)===h.used&&ae(f.limit_value)===h.limit&&ri(ae(f.resets_at),h.resetsAt)&&ae(f.window_ms)===h.windowMs)continue;await g.unsafe(`INSERT INTO quota_samples
|
|
659
659
|
(credential_id, window_type, observed_at, used, limit_value, resets_at, window_ms)
|
|
660
660
|
VALUES ($1,$2,$3,$4,$5,$6,$7)
|
|
661
661
|
ON CONFLICT (credential_id, window_type, observed_at) DO UPDATE SET
|
|
@@ -667,15 +667,15 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
667
667
|
AND window_type NOT IN (SELECT jsonb_array_elements_text($2::jsonb))`,[h,f])}),n({type:"quotaSaved",rows:l})},async listQuotaSamples(l){let m=l.limit!==void 0,g=[l.since,l.until],h="";if(l.credentialId!==void 0)g.push(l.credentialId),h=` AND credential_id = $${g.length}`;let f="";if(l.limit!==void 0)g.push(l.limit),f=`LIMIT $${g.length}`;let _=(await e.unsafe(`SELECT * FROM quota_samples
|
|
668
668
|
WHERE observed_at >= $1 AND observed_at <= $2${h}
|
|
669
669
|
ORDER BY ${m?"observed_at DESC":'credential_id COLLATE "C", window_type COLLATE "C", observed_at'}
|
|
670
|
-
${f}`,g)).map((
|
|
670
|
+
${f}`,g)).map((w)=>({credentialId:w.credential_id,windowType:w.window_type,observedAt:P(w.observed_at),used:P(w.used),limit:ae(w.limit_value),resetsAt:ae(w.resets_at),windowMs:ae(w.window_ms)}));if(m){let w=(v,k)=>v<k?-1:v>k?1:0;_.sort((v,k)=>w(v.credentialId,k.credentialId)||w(v.windowType,k.windowType)||v.observedAt-k.observedAt)}return _},async pruneQuotaSamples(l){return(await e.unsafe("DELETE FROM quota_samples WHERE observed_at < $1",[l])).count}}}function Px(e,t,n){try{let r=JSON.parse(t);return Je(r)}catch{return n.error("api key limits unreadable",{apiKeyId:e}),null}}var my=(e,t)=>({id:e.id,label:e.label,prefix:e.prefix,hash:e.hash,modelAllowlist:e.model_allowlist===null?null:JSON.parse(e.model_allowlist),limits:Px(e.id,e.limits,t),bodyLoggingOptOut:e.body_logging_opt_out,createdAt:P(e.created_at),revokedAt:ae(e.revoked_at),expiresAt:ae(e.expires_at),guardrailPolicy:e.guardrail_policy});function fy(e,t){let n=async(r,o)=>{let s=(await e.unsafe(`SELECT * FROM api_keys WHERE ${r} = $1`,[o]))[0];return s===void 0?null:my(s,t)};return{async list(){return(await e.unsafe("SELECT * FROM api_keys ORDER BY created_at DESC")).map((o)=>my(o,t))},findByHash:(r)=>n("hash",r),get:(r)=>n("id",r),async create(r){let o=Date.now();return await e.unsafe(`INSERT INTO api_keys (id, label, prefix, hash, model_allowlist, limits,
|
|
671
671
|
body_logging_opt_out, created_at, revoked_at, expires_at,
|
|
672
672
|
guardrail_policy)
|
|
673
673
|
VALUES ($1,$2,$3,$4,$5,$6,$7,$8,NULL,$9,$10)`,[r.id,r.label,r.prefix,r.hash,r.modelAllowlist===null?null:JSON.stringify(r.modelAllowlist),JSON.stringify(Je(r.limits)),r.bodyLoggingOptOut,o,r.expiresAt,r.guardrailPolicy]),{...r,createdAt:o,revokedAt:null}},async importRow(r){if(r.limits===null)throw Error(`api key ${r.id} has unreadable limits`);await e.unsafe(`INSERT INTO api_keys (id, label, prefix, hash, model_allowlist, limits,
|
|
674
674
|
body_logging_opt_out, created_at, revoked_at, expires_at,
|
|
675
675
|
guardrail_policy)
|
|
676
|
-
VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11)`,[r.id,r.label,r.prefix,r.hash,r.modelAllowlist===null?null:JSON.stringify(r.modelAllowlist),JSON.stringify(Je(r.limits)),r.bodyLoggingOptOut,r.createdAt,r.revokedAt,r.expiresAt,r.guardrailPolicy])},async setLimits(r,o){await e.unsafe("UPDATE api_keys SET limits = $1 WHERE id = $2",[JSON.stringify(Je(o)),r])},async setModelAllowlist(r,o){await e.unsafe("UPDATE api_keys SET model_allowlist = $1 WHERE id = $2",[o===null?null:JSON.stringify(o),r])},async setExpiry(r,o){await e.unsafe("UPDATE api_keys SET expires_at = $1 WHERE id = $2",[o,r])},async setGuardrailPolicy(r,o){await e.unsafe("UPDATE api_keys SET guardrail_policy = $1 WHERE id = $2",[o,r])},async revoke(r){await e.unsafe("UPDATE api_keys SET revoked_at = $1 WHERE id = $2",[Date.now(),r])}}}var _u=()=>{throw new
|
|
676
|
+
VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11)`,[r.id,r.label,r.prefix,r.hash,r.modelAllowlist===null?null:JSON.stringify(r.modelAllowlist),JSON.stringify(Je(r.limits)),r.bodyLoggingOptOut,r.createdAt,r.revokedAt,r.expiresAt,r.guardrailPolicy])},async setLimits(r,o){await e.unsafe("UPDATE api_keys SET limits = $1 WHERE id = $2",[JSON.stringify(Je(o)),r])},async setModelAllowlist(r,o){await e.unsafe("UPDATE api_keys SET model_allowlist = $1 WHERE id = $2",[o===null?null:JSON.stringify(o),r])},async setExpiry(r,o){await e.unsafe("UPDATE api_keys SET expires_at = $1 WHERE id = $2",[o,r])},async setGuardrailPolicy(r,o){await e.unsafe("UPDATE api_keys SET guardrail_policy = $1 WHERE id = $2",[o,r])},async revoke(r){await e.unsafe("UPDATE api_keys SET revoked_at = $1 WHERE id = $2",[Date.now(),r])}}}var _u=()=>{throw new b("BAD_REQUEST","not available on a Postgres store; use pg_dump",{gatewayAuthored:!0})};function gy(e,t){return{async heartbeat(n){await e.unsafe("INSERT INTO nodes (id, seen_at) VALUES ($1, $2) ON CONFLICT (id) DO UPDATE SET seen_at = EXCLUDED.seen_at",[t,n]),await e.unsafe("DELETE FROM nodes WHERE seen_at < $1",[n-86400000])},async nodes(n){return(await e.unsafe("SELECT id, seen_at FROM nodes WHERE seen_at > $1 ORDER BY seen_at DESC",[n-Bt])).map((o)=>({id:o.id,seenAt:P(o.seen_at)}))},async stats(){let n=(await e.unsafe(`SELECT pg_database_size(current_database()) AS bytes,
|
|
677
677
|
current_setting('block_size')::int AS block_size,
|
|
678
|
-
(SELECT MAX(id) FROM migrations) AS version`))[0],r=n?.block_size??0;return{pageSize:r,pageCount:n===void 0||r===0?0:Math.ceil(
|
|
678
|
+
(SELECT MAX(id) FROM migrations) AS version`))[0],r=n?.block_size??0;return{pageSize:r,pageCount:n===void 0||r===0?0:Math.ceil(P(n.bytes)/r),freelistCount:0,schemaVersion:n?.version??0}},async tables(){return(await e.unsafe(`SELECT c.relname AS name,
|
|
679
679
|
pg_total_relation_size(c.oid) AS bytes,
|
|
680
680
|
GREATEST(c.reltuples, 0)::bigint AS rows,
|
|
681
681
|
COALESCE(s.n_dead_tup, 0) AS dead_rows
|
|
@@ -683,12 +683,12 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
683
683
|
JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
684
684
|
LEFT JOIN pg_stat_user_tables s ON s.relid = c.oid
|
|
685
685
|
WHERE c.relkind = 'r' AND n.nspname = current_schema()
|
|
686
|
-
ORDER BY bytes DESC, name`)).map((r)=>({name:r.name,bytes:
|
|
687
|
-
`)n+=1;t+=" "}else if(r==="/"&&o==="*"){n+=2;while(n<e.length&&!(e[n]==="*"&&e[n+1]==="/"))n+=1;n+=2,t+=" "}else t+=r,n+=1}return t}function Ux(e,t){return`"plugin_${e}_${t}"`}function sn(e){return`plugin_${e}_`}function tt(e){if(!br.test(e))throw Error(`plugin id ${JSON.stringify(e)} is not a valid identifier`)}var Mx=/^\s*(pragma|attach|detach|vacuum|set|reset)\b/i;function
|
|
686
|
+
ORDER BY bytes DESC, name`)).map((r)=>({name:r.name,bytes:P(r.bytes),rows:P(r.rows),deadRows:P(r.dead_rows)}))},vacuum:async()=>_u(),snapshotTo:async()=>_u(),inspect:async()=>_u()}}import{AsyncLocalStorage as Fx}from"async_hooks";var br=/^[a-z][a-z0-9-]{0,31}$/,hy=/^[a-z][a-z0-9_]{0,31}$/,Ix=/\{\{([^{}]*)\}\}/g,yy=["api_keys","credential_health","credentials","migrations","nodes","plugin_migrations","quota_samples","quota_windows","request_bodies","request_logs","settings","usage_daily","usage_rollup","virtual_models"],Lx=["config_version"],Nx=new RegExp(`\\b(?:${[...yy,...Lx].join("|")})\\b`,"i"),si="plugin_";function Dx(e){let t="",n=0;while(n<e.length){let r=e[n],o=e[n+1];if(r==='"'||r==="`"||r==="["){let i=r==="["?"]":r;t+=r,n+=1;while(n<e.length){if(e[n]===i){if(i!=="]"&&e[n+1]===i){t+=i+i,n+=2;continue}break}t+=e[n],n+=1}t+=i,n+=1}else if(r==="'"){n+=1;while(n<e.length)if(e[n]==="'")if(e[n+1]==="'")n+=2;else break;else n+=1;n+=1,t+=" "}else if(r==="-"&&o==="-"){while(n<e.length&&e[n]!==`
|
|
687
|
+
`)n+=1;t+=" "}else if(r==="/"&&o==="*"){n+=2;while(n<e.length&&!(e[n]==="*"&&e[n+1]==="/"))n+=1;n+=2,t+=" "}else t+=r,n+=1}return t}function Ux(e,t){return`"plugin_${e}_${t}"`}function sn(e){return`plugin_${e}_`}function tt(e){if(!br.test(e))throw Error(`plugin id ${JSON.stringify(e)} is not a valid identifier`)}var Mx=/^\s*(pragma|attach|detach|vacuum|set|reset)\b/i;function ai(e,t){tt(e);let n=t.replace(Ix,(s,a)=>{if(!hy.test(a))throw Error(`plugin table placeholder ${JSON.stringify(a)} must match ${hy.source}`);return Ux(e,a)}),r=Dx(n),o=Mx.exec(r);if(o!==null)throw Error(`plugin sql may not ${o[1]?.toUpperCase()}: the database handle is the gateway's, and this would reconfigure it for everything sharing it`);let i=Nx.exec(r);if(i!==null)throw Error(`plugin sql may not reference the core table ${i[0]}`);return n}function $x(e,t){if(e===null||typeof e==="string"||typeof e==="number"||typeof e==="bigint"||typeof e==="boolean"||e instanceof Uint8Array)return e;throw Error(`plugin sql parameter ${t} is not a bindable value`)}var zt=(e)=>(e??[]).map($x);var ui=ai;async function _y(e){let t=await e.unsafe(`SELECT c.relname FROM pg_class c
|
|
688
688
|
JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
689
689
|
WHERE n.nspname = current_schema()`);return new Set(t.map((n)=>n.relname))}async function Bx(e,t,n){let r=sn(t);for(let o of await _y(e)){if(n.has(o)||o.startsWith(r))continue;throw Error(`plugin migration created ${o}, which is outside this plugin's namespace \u2014 `+`name it {{\u2026}} so it becomes ${r}\u2026`)}}function wy(e){let t=new Fx,n=()=>t.getStore()??e,r=async()=>(await e.unsafe(`SELECT table_name FROM information_schema.tables
|
|
690
690
|
WHERE table_schema = current_schema() AND table_type = 'BASE TABLE'
|
|
691
|
-
ORDER BY table_name COLLATE "C"`)).map((i)=>i.table_name).filter((i)=>i.startsWith(
|
|
691
|
+
ORDER BY table_name COLLATE "C"`)).map((i)=>i.table_name).filter((i)=>i.startsWith(si)&&i!=="plugin_migrations"),o=async(i)=>{let s=sn(i);return(await r()).filter((a)=>a.startsWith(s))};return{async migrate(i,s){tt(i);let a=[],u=[...s].sort((c,d)=>c.version-d.version);for(let c of u)try{if(!Number.isSafeInteger(c.version)||c.version<1)throw Error("migration version must be a positive integer");let d=ui(i,c.sql);if(await e.begin(async(l)=>{if(await l.unsafe(`SELECT pg_advisory_xact_lock(${ei})`),(await l.unsafe("SELECT 1 FROM plugin_migrations WHERE plugin_id = $1 AND version = $2",[i,c.version])).length>0)return!1;let g=await _y(l);return await l.unsafe(d),await Bx(l,i,g),await l.unsafe("INSERT INTO plugin_migrations (plugin_id, version, applied_at) VALUES ($1,$2,$3)",[i,c.version,Date.now()]),!0}))a.push(c.version)}catch(d){return{applied:a,failed:{version:c.version,reason:H(d,String(d))}}}return{applied:a}},async run(i,s,a){await n().unsafe(ui(i,s),zt(a))},async all(i,s,a){return[...await n().unsafe(ui(i,s),zt(a))]},async get(i,s,a){return(await n().unsafe(ui(i,s),zt(a)))[0]??null},async transaction(i,s){return tt(i),e.begin((a)=>t.run(a,s))},async listTables(i){return tt(i),o(i)},async dropAll(i){tt(i);let s=await o(i);return await e.begin(async(a)=>{for(let u of s)await a.unsafe(`DROP TABLE IF EXISTS "${u}"`);await a.unsafe("DELETE FROM plugin_migrations WHERE plugin_id = $1",[i])}),s.length},async orphanTables(i){let s=i.filter((a)=>br.test(a)).map(sn);return(await r()).filter((a)=>!s.some((u)=>a.startsWith(u)))}}}var zx=["git-diff","git-status","git-log","grep","path-list","numbered-read","build-output","test-output","deduplicate-log","smart-truncate","lint-output","package-output","tree-output","git-operation","docker-build"],qx=new Set(zx);function ci(e){return qx.has(e)}function di(e,t,n="LIKE"){let r=[],o=[],i=(u)=>(o.push(u),t(o.length)),s=(u,c)=>{if(c===void 0)return;let d=c.replace(/[\\%_]/g,"\\$&");r.push(`${u} ${n} ${i(`%${d}%`)} ESCAPE '\\'`)},a=(u,c)=>{if(c!==void 0)r.push(`${u} = ${i(c)}`)};if(e.cursor!==null){let u=e.cursor;r.push(`(at < ${i(u.at)} OR (at = ${i(u.at)} AND id < ${i(u.id)}))`)}if(a("api_key_id",e.apiKeyId),a("credential_id",e.credentialId),a("resolved_provider",e.provider),a("state",e.state),s("requested_model",e.requestedModel),s("resolved_model",e.resolvedModel),s("error_code",e.errorCode),e.model!==void 0){let u=r.length;s("requested_model",e.model),s("resolved_model",e.model),r.push(`(${r.splice(u).join(" OR ")})`)}if(e.since!==void 0)r.push(`at >= ${i(e.since)}`);if(e.until!==void 0)r.push(`at <= ${i(e.until)}`);if(e.failed===!0)r.push("state = 'done' AND status >= 400");return{where:r.length===0?"":`WHERE ${r.join(" AND ")}`,bindings:o}}function li(e,t){if(e.length<=t)return{logs:e,next:null};let n=e.slice(0,t),r=n[n.length-1];return{logs:n,next:r===void 0?null:{at:r.at,id:r.id}}}var Hx=`
|
|
692
692
|
INSERT INTO usage_daily
|
|
693
693
|
(day, provider, credential_id, requested_model, resolved_model, api_key_id,
|
|
694
694
|
requests, errors, input_tokens, output_tokens, cache_read_tokens,
|
|
@@ -717,7 +717,7 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
717
717
|
output_tokens = usage_rollup.output_tokens + EXCLUDED.output_tokens,
|
|
718
718
|
cache_read_tokens = usage_rollup.cache_read_tokens + EXCLUDED.cache_read_tokens,
|
|
719
719
|
cache_write_tokens = usage_rollup.cache_write_tokens + EXCLUDED.cache_write_tokens,
|
|
720
|
-
cost_usd = usage_rollup.cost_usd + EXCLUDED.cost_usd`;async function ky(e,t){let n=t.apiKeyId;if(n===null)return;await e.unsafe(Wx,[n
|
|
720
|
+
cost_usd = usage_rollup.cost_usd + EXCLUDED.cost_usd`;async function ky(e,t){let n=t.apiKeyId;if(n===null)return;await e.unsafe(Wx,[n,$e(t.at),1,t.inputTokens,t.outputTokens,t.cacheReadTokens,t.cacheWriteTokens,t.costUsd])}var jx=`
|
|
721
721
|
INSERT INTO usage_rollup
|
|
722
722
|
(api_key_id, hour, requests, input_tokens, output_tokens,
|
|
723
723
|
cache_read_tokens, cache_write_tokens, cost_usd)
|
|
@@ -760,7 +760,7 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
760
760
|
FROM usage_rollup r
|
|
761
761
|
LEFT JOIN truth ON r.api_key_id = truth.k AND r.hour = truth.h
|
|
762
762
|
WHERE truth.k IS NULL
|
|
763
|
-
) AS orphans`))[0],n=t===void 0?0:
|
|
763
|
+
) AS orphans`))[0],n=t===void 0?0:P(t.buckets),r=t===void 0?0:P(t.mismatched)+P(t.orphans);return{buckets:n,mismatched:r,ok:r===0}}function Kx(e){try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(ci):[]}catch{return[]}}var kr=(e)=>({id:e.id,state:e.state==="pending"?"pending":"done",at:P(e.at),apiKeyId:e.api_key_id,requestedModel:e.requested_model,resolvedProvider:e.resolved_provider,resolvedModel:e.resolved_model,credentialId:e.credential_id,attempts:e.attempts,status:e.status,errorCode:e.error_code,inputTokens:P(e.input_tokens),outputTokens:P(e.output_tokens),cacheReadTokens:P(e.cache_read_tokens),cacheWriteTokens:P(e.cache_write_tokens),ttftMs:ae(e.ttft_ms),durationMs:P(e.duration_ms),costUsd:e.cost_usd,degradations:JSON.parse(e.degradations),rtkApplied:e.rtk_applied,rtkFilterHits:P(e.rtk_filter_hits),rtkOriginalCodeUnits:P(e.rtk_original_code_units),rtkCompressedCodeUnits:P(e.rtk_compressed_code_units),rtkEstimatedTokensSaved:P(e.rtk_estimated_tokens_saved),rtkFilters:Kx(e.rtk_filters)}),Gx={raw:{credential:"credential_id",model:"resolved_model",requestedModel:"requested_model",apiKey:"api_key_id",provider:"resolved_provider",hour:"at / 3600000",day:null},daily:{credential:"credential_id",model:"resolved_model",requestedModel:"requested_model",apiKey:"api_key_id",provider:"provider",hour:null,day:"day"}};function Ty(e,t){let n=Gx[e][t];if(n===null)throw Error(`usage grain ${e} cannot group by ${t}`);return n}var Zx={raw:`COUNT(*) AS requests,
|
|
764
764
|
COALESCE(SUM(CASE WHEN status >= 400 THEN 1 ELSE 0 END), 0) AS errors,
|
|
765
765
|
COALESCE(SUM(duration_ms), 0) AS duration_ms_sum`,daily:`COALESCE(SUM(requests), 0) AS requests,
|
|
766
766
|
COALESCE(SUM(errors), 0) AS errors,
|
|
@@ -793,7 +793,7 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
793
793
|
rtk_compressed_code_units = EXCLUDED.rtk_compressed_code_units,
|
|
794
794
|
rtk_estimated_tokens_saved = EXCLUDED.rtk_estimated_tokens_saved,
|
|
795
795
|
rtk_filters = EXCLUDED.rtk_filters
|
|
796
|
-
WHERE request_logs.state = 'pending'`,Er=(e)=>({requests:e===void 0?0:
|
|
796
|
+
WHERE request_logs.state = 'pending'`,Er=(e)=>({requests:e===void 0?0:P(e.requests),tokens:e===void 0?0:P(e.tokens),costUsd:e===void 0?0:e.cost_usd}),wu={sumSince:`SELECT COUNT(*) AS requests,
|
|
797
797
|
COALESCE(SUM(input_tokens + output_tokens
|
|
798
798
|
+ cache_read_tokens + cache_write_tokens), 0) AS tokens,
|
|
799
799
|
COALESCE(SUM(cost_usd), 0) AS cost_usd
|
|
@@ -806,38 +806,38 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
806
806
|
WHERE api_key_id = $3 AND requested_model = $4 AND state = 'done' AND at >= $5
|
|
807
807
|
GROUP BY 1`,oldestSince:`SELECT MIN(at) AS at
|
|
808
808
|
FROM request_logs
|
|
809
|
-
WHERE api_key_id = $1 AND requested_model = $2 AND state = 'done' AND at >= $3`};function
|
|
809
|
+
WHERE api_key_id = $1 AND requested_model = $2 AND state = 'done' AND at >= $3`};function Oy(e,t,n){let r=async(o,i)=>{if((await o.unsafe(Xx,Sy(i,"done",t))).count===0)return;let a=(await o.unsafe("SELECT * FROM request_logs WHERE id = $1",[i.id]))[0];if(a!==void 0){let u=kr(a);await by(o,u,n),await ky(o,u)}};return{async begin(o){await e.unsafe(`INSERT INTO request_logs ${xy} VALUES ${Ay}`,Sy(o,"pending",t))},async route(o,i){await e.unsafe(`UPDATE request_logs
|
|
810
810
|
SET resolved_provider = $1, resolved_model = $2, credential_id = $3
|
|
811
811
|
WHERE id = $4 AND state = 'pending'`,[i.provider,i.model,i.credentialId,o])},async append(o){await e.begin((i)=>r(i,o))},async sweepPending(o){let i=(await e.unsafe(`SELECT * FROM request_logs
|
|
812
812
|
WHERE state = 'pending'
|
|
813
|
-
AND (node_id = $1 OR node_id NOT IN (SELECT id FROM nodes WHERE seen_at > $2))`,[t,o-Bt])).map(kr);for(let s of i)await e.begin((a)=>r(a,{...s,status:499,errorCode:"interrupted",durationMs:0}));return i.length},async recent(o,i){return(i===void 0?await e.unsafe("SELECT * FROM request_logs ORDER BY at DESC LIMIT $1",[o]):await e.unsafe("SELECT * FROM request_logs WHERE api_key_id = $1 ORDER BY at DESC LIMIT $2",[i,o])).map(kr)},async page(o){let{where:i,bindings:s}=
|
|
814
|
-
ORDER BY at DESC, id DESC LIMIT $${s.length+1}`,[...s,o.limit+1])).map(kr);return
|
|
813
|
+
AND (node_id = $1 OR node_id NOT IN (SELECT id FROM nodes WHERE seen_at > $2))`,[t,o-Bt])).map(kr);for(let s of i)await e.begin((a)=>r(a,{...s,status:499,errorCode:"interrupted",durationMs:0}));return i.length},async recent(o,i){return(i===void 0?await e.unsafe("SELECT * FROM request_logs ORDER BY at DESC LIMIT $1",[o]):await e.unsafe("SELECT * FROM request_logs WHERE api_key_id = $1 ORDER BY at DESC LIMIT $2",[i,o])).map(kr)},async page(o){let{where:i,bindings:s}=di(o,(u)=>`$${u}`,"ILIKE"),a=(await e.unsafe(`SELECT * FROM request_logs ${i}
|
|
814
|
+
ORDER BY at DESC, id DESC LIMIT $${s.length+1}`,[...s,o.limit+1])).map(kr);return li(a,o.limit)},async lastUsedByCredential(o){let i=await e.unsafe("SELECT MAX(at) AS at FROM request_logs WHERE credential_id = $1",[o]);return ae(i[0]?.at??null)},async scan(o,i){return(o===null?await e.unsafe("SELECT * FROM request_logs ORDER BY at, id LIMIT $1",[i]):await e.unsafe(`SELECT * FROM request_logs
|
|
815
815
|
WHERE at > $1 OR (at = $1 AND id > $2)
|
|
816
|
-
ORDER BY at, id LIMIT $3`,[o.at,o.id,i])).map(kr)},async sumSince(o,i,s){if(s!==void 0){let l=await e.unsafe(wu.sumSince,[o,s,i]);return Er(l[0])}let a
|
|
816
|
+
ORDER BY at, id LIMIT $3`,[o.at,o.id,i])).map(kr)},async sumSince(o,i,s){if(s!==void 0){let l=await e.unsafe(wu.sumSince,[o,s,i]);return Er(l[0])}let a=$e(i),u=await e.unsafe(`SELECT COALESCE(SUM(requests), 0) AS requests,
|
|
817
817
|
COALESCE(SUM(input_tokens + output_tokens
|
|
818
818
|
+ cache_read_tokens + cache_write_tokens), 0) AS tokens,
|
|
819
819
|
COALESCE(SUM(cost_usd), 0) AS cost_usd
|
|
820
820
|
FROM usage_rollup
|
|
821
|
-
WHERE api_key_id = $1 AND hour > $2`,[o,a]),
|
|
821
|
+
WHERE api_key_id = $1 AND hour > $2`,[o,a]),c=await e.unsafe(`SELECT COUNT(*) AS requests,
|
|
822
822
|
COALESCE(SUM(input_tokens + output_tokens
|
|
823
823
|
+ cache_read_tokens + cache_write_tokens), 0) AS tokens,
|
|
824
824
|
COALESCE(SUM(cost_usd), 0) AS cost_usd
|
|
825
825
|
FROM request_logs
|
|
826
|
-
WHERE api_key_id = $1 AND state = 'done' AND at >= $2 AND at < $3`,[o,i,(a+1)*ve]),d=Er(
|
|
826
|
+
WHERE api_key_id = $1 AND state = 'done' AND at >= $2 AND at < $3`,[o,i,(a+1)*ve]),d=Er(u[0]),p=Er(c[0]);return{requests:d.requests+p.requests,tokens:d.tokens+p.tokens,costUsd:d.costUsd+p.costUsd}},async sumBuckets(o,i,s,a){if(a!==void 0){let c=s===ve?$e(i)*ve:i;return(await e.unsafe(wu.sumBuckets,[s,s,o,a,c])).map((p)=>[P(p.bucket),Er(p)])}return(s===ve?await e.unsafe(`SELECT hour * ${ve} AS bucket, requests,
|
|
827
827
|
input_tokens + output_tokens + cache_read_tokens + cache_write_tokens
|
|
828
828
|
AS tokens,
|
|
829
829
|
cost_usd
|
|
830
830
|
FROM usage_rollup
|
|
831
|
-
WHERE api_key_id = $1 AND hour >= $2`,[o
|
|
831
|
+
WHERE api_key_id = $1 AND hour >= $2`,[o,$e(i)]):await e.unsafe(`SELECT (at / $1) * $2 AS bucket, COUNT(*) AS requests,
|
|
832
832
|
COALESCE(SUM(input_tokens + output_tokens
|
|
833
833
|
+ cache_read_tokens + cache_write_tokens), 0) AS tokens,
|
|
834
834
|
COALESCE(SUM(cost_usd), 0) AS cost_usd
|
|
835
835
|
FROM request_logs
|
|
836
836
|
WHERE api_key_id = $3 AND state = 'done' AND at >= $4
|
|
837
|
-
GROUP BY 1`,[s,s,o,i])).map((
|
|
837
|
+
GROUP BY 1`,[s,s,o,i])).map((c)=>[P(c.bucket),Er(c)])},async rebuildRollup(){await e.begin((o)=>Ey(o))},async auditRollup(){return vy(e)},async oldestSince(o,i,s){let a=(s===void 0?await e.unsafe(`SELECT MIN(at) AS at
|
|
838
838
|
FROM request_logs
|
|
839
|
-
WHERE api_key_id = $1 AND state = 'done' AND at >= $2`,[o,i]):await e.unsafe(wu.oldestSince,[o,s,i]))[0];return a===void 0?null:ae(a.at)},async aggregate(o){let i=o.grain??"raw",s=i==="daily",a=Ty(i,o.groupBy),
|
|
840
|
-
${
|
|
839
|
+
WHERE api_key_id = $1 AND state = 'done' AND at >= $2`,[o,i]):await e.unsafe(wu.oldestSince,[o,s,i]))[0];return a===void 0?null:ae(a.at)},async aggregate(o){let i=o.grain??"raw",s=i==="daily",a=Ty(i,o.groupBy),u=o.splitBy===void 0?null:Ty(i,o.splitBy),c=s?mt(o.since,n):o.since,d=o.until??Number.MAX_SAFE_INTEGER,p=s?"day":"at",l=[c,d],m="";if(o.apiKeyId!==void 0)l.push(o.apiKeyId),m+=` AND api_key_id = $${l.length}`;if(o.credentialId!==void 0)l.push(o.credentialId),m+=` AND credential_id = $${l.length}`;return(await e.unsafe(`SELECT ${a} AS key,
|
|
840
|
+
${u??"NULL"} AS split,
|
|
841
841
|
${Zx[i]},
|
|
842
842
|
COALESCE(SUM(input_tokens), 0) AS input_tokens,
|
|
843
843
|
COALESCE(SUM(output_tokens), 0) AS output_tokens,
|
|
@@ -848,8 +848,8 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
848
848
|
COALESCE(SUM(cost_usd), 0) AS cost_usd
|
|
849
849
|
FROM ${s?"usage_daily":"request_logs"}
|
|
850
850
|
WHERE ${s?"":"state = 'done' AND "}${p} >= $1 AND ${p} <= $2${m}
|
|
851
|
-
GROUP BY 1${
|
|
852
|
-
ORDER BY requests DESC`,l)).map((h)=>{let f={key:Ry(h.key),requests:
|
|
851
|
+
GROUP BY 1${u===null?"":", 2"}
|
|
852
|
+
ORDER BY requests DESC`,l)).map((h)=>{let f={key:Ry(h.key),requests:P(h.requests),inputTokens:P(h.input_tokens),outputTokens:P(h.output_tokens),cacheReadTokens:P(h.cache_read_tokens),cacheWriteTokens:P(h.cache_write_tokens),rtkSavedTokens:P(h.rtk_saved_tokens),rtkAppliedRequests:P(h.rtk_applied_requests),costUsd:h.cost_usd,errors:P(h.errors),durationMsSum:P(h.duration_ms_sum)};return u===null?f:{...f,split:Ry(h.split)}})},async prune(o){return e.begin(async(i)=>{let s=(await i.unsafe("DELETE FROM request_logs WHERE at < $1",[o])).count,a=$e(o);return await i.unsafe("DELETE FROM usage_rollup WHERE hour <= $1",[a]),await i.unsafe(`INSERT INTO usage_rollup
|
|
853
853
|
(api_key_id, hour, requests, input_tokens, output_tokens,
|
|
854
854
|
cache_read_tokens, cache_write_tokens, cost_usd)
|
|
855
855
|
SELECT api_key_id, $1::bigint, COUNT(*),
|
|
@@ -860,7 +860,7 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
860
860
|
COALESCE(SUM(cost_usd), 0)
|
|
861
861
|
FROM request_logs
|
|
862
862
|
WHERE state = 'done' AND api_key_id IS NOT NULL AND at >= $2 AND at < $3
|
|
863
|
-
GROUP BY api_key_id`,[a,a*ve,(a+1)*ve]),s})},async pruneDaily(o){return(await e.unsafe("DELETE FROM usage_daily WHERE day < $1",[o])).count}}}function
|
|
863
|
+
GROUP BY api_key_id`,[a,a*ve,(a+1)*ve]),s})},async pruneDaily(o){return(await e.unsafe("DELETE FROM usage_daily WHERE day < $1",[o])).count}}}function Cy(e){try{let t=new URL(e);if(t.password!=="")t.password="***";return t.toString()}catch{return"postgres://<unparseable>"}}async function pi(e){let t=e.logger??se,n=e.nodeId??crypto.randomUUID(),r=e.dayOffsetMinutes??et(),o=new Set,i=(p)=>{for(let l of o)try{l(p)}catch{}},s=await ry(e.url);t.debug("store opened",{path:Cy(e.url)});let a=await c(),u=null;async function c(){let p=await s.unsafe("SELECT version FROM config_version WHERE id = 1");return P(p[0]?.version??0)}let d=()=>{if(u!==null)return;u=c().then((p)=>{a=p}).catch(()=>{}).finally(()=>{u=null})};return{engine:"postgres",databasePath:Cy(e.url),credentials:py(s,e.encryptionKey,i),config:dy(s,i),keys:fy(s,t),usage:Oy(s,n,r),bodies:oy(s,e.encryptionKey),maintenance:gy(s,n),plugins:wy(s),routing:{version:()=>(d(),a),subscribe(p){return o.add(p),()=>o.delete(p)}},async reopen(){},close:()=>{s.close()}}}function Vx(e){return e==="ready"||e==="missing"||e==="corrupt"?e:"none"}var bu=(e)=>({requestId:e.request_id,at:e.at,relPath:e.rel_path,sizeBytes:e.size_bytes,sha256:e.sha256,detailState:Vx(e.detail_state),truncated:e.truncated===1});function ku(e,t,n){let r=async(i)=>{for(let a of i)if(a.relPath!==null)await au(n,a.relPath);let s=e.prepare("DELETE FROM request_bodies WHERE request_id = ?");return e.transaction(()=>{for(let a of i)s.run(a.requestId)})(),i.length},o=(i,s)=>{e.run("UPDATE request_bodies SET detail_state = ? WHERE request_id = ?",[s,i])};return{async put(i){if(!Wo(i.requestId))throw Error("request id is not safe to use as an artifact path segment");let s=Ko(i),a=await Zo(t,s.json),u=jo(i.requestId,i.at);await Dh(n,u,a.bytes);let c=s.artifact.client.truncated||s.artifact.attempts.some((p)=>p.truncated),d={requestId:i.requestId,at:i.at,relPath:u,sizeBytes:a.bytes.length,sha256:a.sha256,detailState:"ready",truncated:c};return e.run(`INSERT INTO request_bodies (request_id, at, rel_path, size_bytes, sha256, detail_state, truncated)
|
|
864
864
|
VALUES (?,?,?,?,?,?,?)
|
|
865
865
|
ON CONFLICT (request_id) DO UPDATE SET
|
|
866
866
|
at = excluded.at,
|
|
@@ -868,11 +868,11 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
868
868
|
size_bytes = excluded.size_bytes,
|
|
869
869
|
sha256 = excluded.sha256,
|
|
870
870
|
detail_state = excluded.detail_state,
|
|
871
|
-
truncated = excluded.truncated`,[d.requestId,d.at,d.relPath,d.sizeBytes,d.sha256,d.detailState,d.truncated?1:0]),d},async get(i){let s=e.query("SELECT * FROM request_bodies WHERE request_id = ?").get(i);if(s===null)return null;let a=bu(s);if(a.relPath===null||a.detailState==="none")return{row:a,artifact:null};let
|
|
871
|
+
truncated = excluded.truncated`,[d.requestId,d.at,d.relPath,d.sizeBytes,d.sha256,d.detailState,d.truncated?1:0]),d},async get(i){let s=e.query("SELECT * FROM request_bodies WHERE request_id = ?").get(i);if(s===null)return null;let a=bu(s);if(a.relPath===null||a.detailState==="none")return{row:a,artifact:null};let u=await Nh(t,n,a.relPath,a.sha256);if(u.ok){if(a.detailState!=="ready")o(i,"ready");return{row:{...a,detailState:"ready"},artifact:u.artifact}}return o(i,u.failure),{row:{...a,detailState:u.failure},artifact:null}},async prune(i){let s=e.query("SELECT * FROM request_bodies WHERE at < ?").all(i).map(bu);return r(s)},async pruneToCap(i=hr){let s=e.query("SELECT COUNT(*) AS n FROM request_bodies").get()?.n??0;if(s<=i)return 0;let a=e.query("SELECT * FROM request_bodies ORDER BY at ASC, request_id ASC LIMIT ?").all(s-i).map(bu);return r(a)},async sweepOrphans(){let i=new Set(e.query("SELECT rel_path FROM request_bodies WHERE rel_path IS NOT NULL").all().map((u)=>u.rel_path)),s=e.query("SELECT COUNT(*) AS n FROM request_bodies WHERE rel_path = ?"),a=0;for(let u of await Uh(n)){if(i.has(u))continue;if((s.get(u)?.n??0)>0)continue;await au(n,u),a+=1}return a}}}var Py="settings",Eu="adminPasswordHash",vu="viewerPasswordHash";function Qx(e){let t=ye.weights,n=(r)=>{let o=e?.[r];return typeof o==="number"&&Number.isFinite(o)?o:t[r]};return{tier:n("tier"),health:n("health"),quota:n("quota"),load:n("load"),cost:n("cost"),latency:n("latency")}}function Tu(e,t=()=>{}){let n=(o)=>e.query("SELECT value FROM settings WHERE key = ?").get(o)?.value??null,r=(o,i)=>{e.run("INSERT INTO settings (key, value) VALUES (?, ?) ON CONFLICT (key) DO UPDATE SET value = excluded.value",[o,i])};return{async listModels(){return e.query("SELECT * FROM virtual_models ORDER BY id").all().map((o)=>({id:o.id,targets:JSON.parse(o.targets),strategy:o.strategy,isAlias:o.is_alias===1}))},async putModel(o){e.run(`INSERT INTO virtual_models (id, targets, strategy, is_alias) VALUES (?,?,?,?)
|
|
872
872
|
ON CONFLICT (id) DO UPDATE SET
|
|
873
873
|
targets = excluded.targets,
|
|
874
874
|
strategy = excluded.strategy,
|
|
875
|
-
is_alias = excluded.is_alias`,[o.id,JSON.stringify(o.targets),o.strategy,o.isAlias?1:0]),t({type:"modelsChanged"})},async removeModel(o){e.run("DELETE FROM virtual_models WHERE id = ?",[o]),t({type:"modelsChanged"})},async getSettings(){let o=n(Py);if(o===null)return
|
|
875
|
+
is_alias = excluded.is_alias`,[o.id,JSON.stringify(o.targets),o.strategy,o.isAlias?1:0]),t({type:"modelsChanged"})},async removeModel(o){e.run("DELETE FROM virtual_models WHERE id = ?",[o]),t({type:"modelsChanged"})},async getSettings(){let o=n(Py);if(o===null)return ye;try{let i=JSON.parse(o),s=i!==null&&typeof i==="object"&&!Array.isArray(i)?i:{};return{...ye,...s,rtkEnabled:s.rtkEnabled===!0,autoCacheEnabled:s.autoCacheEnabled===void 0?!0:s.autoCacheEnabled===!0,ponytailMode:ti(s.ponytailMode)?s.ponytailMode:"off",bodyRetentionDays:Number.isInteger(s.bodyRetentionDays)&&(s.bodyRetentionDays??0)>=1&&(s.bodyRetentionDays??0)<=3650?s.bodyRetentionDays:ye.bodyRetentionDays,bodyLoggingEnabled:s.bodyLoggingEnabled===!0,bodyLoggingCaptureStreamChunks:s.bodyLoggingCaptureStreamChunks===!0,weights:Qx(s.weights),...ii(s)}}catch{return ye}},async putSettings(o){let i=await this.getSettings(),s={...i,...o,weights:{...i.weights,...o.weights}};return r(Py,JSON.stringify(s)),t({type:"settingsChanged"}),s},async getAdminPasswordHash(){return n(Eu)},async setAdminPasswordHashIfAbsent(o){return e.run("INSERT INTO settings (key, value) VALUES (?, ?) ON CONFLICT (key) DO NOTHING",[Eu,o]).changes===1},async setAdminPasswordHash(o){r(Eu,o)},async getViewerPasswordHash(){return n(vu)},async setViewerPasswordHash(o){if(o===null){e.run("DELETE FROM settings WHERE key = ?",[vu]);return}r(vu,o)}}}function Iy(e){return{credentialId:e.credential_id,model:e.model,breakerState:e.breaker_state,consecutiveFailures:e.consecutive_failures,openedAt:e.opened_at,rateLimitedUntil:e.rate_limited_until}}var Yx=`INSERT INTO credential_health
|
|
876
876
|
(credential_id, model, breaker_state, consecutive_failures, opened_at,
|
|
877
877
|
rate_limited_until)
|
|
878
878
|
VALUES (?,?,?,?,?,?)
|
|
@@ -880,7 +880,7 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
880
880
|
breaker_state = excluded.breaker_state,
|
|
881
881
|
consecutive_failures = excluded.consecutive_failures,
|
|
882
882
|
opened_at = excluded.opened_at,
|
|
883
|
-
rate_limited_until = excluded.rate_limited_until`;function Ru(e,t,n=()=>{}){let r=async(l)=>l===null?null:An(t,l),o=async(l)=>({accessToken:await r(l.access_token),refreshToken:await r(l.refresh_token),apiKey:await r(l.api_key),idToken:await r(l.id_token)}),i=(l,m)=>{if(l===null)throw Error(`credential ${m} no longer exists`);return l},s=async(l)=>{let m=i(e.query("SELECT access_token, refresh_token, api_key, id_token FROM credentials WHERE id = ?").get(l),l);return o(m)},a=async(l,m)=>{if(m==="oauth"){let h=i(e.query("SELECT access_token FROM credentials WHERE id = ?").get(l),l);return{accessToken:await r(h.access_token),apiKey:null}}let g=i(e.query("SELECT api_key FROM credentials WHERE id = ?").get(l),l);return{accessToken:null,apiKey:await r(g.api_key)}},
|
|
883
|
+
rate_limited_until = excluded.rate_limited_until`;function Ru(e,t,n=()=>{}){let r=async(l)=>l===null?null:An(t,l),o=async(l)=>({accessToken:await r(l.access_token),refreshToken:await r(l.refresh_token),apiKey:await r(l.api_key),idToken:await r(l.id_token)}),i=(l,m)=>{if(l===null)throw Error(`credential ${m} no longer exists`);return l},s=async(l)=>{let m=i(e.query("SELECT access_token, refresh_token, api_key, id_token FROM credentials WHERE id = ?").get(l),l);return o(m)},a=async(l,m)=>{if(m==="oauth"){let h=i(e.query("SELECT access_token FROM credentials WHERE id = ?").get(l),l);return{accessToken:await r(h.access_token),apiKey:null}}let g=i(e.query("SELECT api_key FROM credentials WHERE id = ?").get(l),l);return{accessToken:null,apiKey:await r(g.api_key)}},u=async(l)=>{let m=i(e.query("SELECT refresh_token FROM credentials WHERE id = ?").get(l),l);return{refreshToken:await r(m.refresh_token)}},c=async(l)=>{let m=i(e.query("SELECT access_token FROM credentials WHERE id = ?").get(l),l);return{accessToken:await r(m.access_token)}},d=(l,m=!1)=>({id:l.id,provider:l.provider,label:l.label,authType:l.auth_type,enabled:l.enabled===1,tier:l.tier,weight:l.weight,expiresAt:l.expires_at,accountEmail:l.account_email,providerData:JSON.parse(l.provider_data),disabledReason:l.disabled_reason,disabledAt:l.disabled_at,hasRefreshToken:l.refresh_token!==null,tokenVersion:l.token_version,createdAt:l.created_at,updatedAt:l.updated_at,secrets:()=>m?s(l.id):o(l),openForInference:async()=>{if(m)return a(l.id,l.auth_type);if(l.auth_type==="oauth")return{accessToken:await r(l.access_token),apiKey:null};return{accessToken:null,apiKey:await r(l.api_key)}},openForRefresh:async()=>m?u(l.id):{refreshToken:await r(l.refresh_token)},openForUsage:async()=>m?c(l.id):{accessToken:await r(l.access_token)}}),p=async(l)=>l===null||l===void 0?null:zo(t,l);return{async list(){return e.query("SELECT * FROM credentials ORDER BY tier, label").all().map((l)=>d(l))},async listRouting(){return e.query(`SELECT id, provider, label, auth_type, enabled, tier, weight, expires_at,
|
|
884
884
|
account_email, provider_data, disabled_reason, disabled_at,
|
|
885
885
|
NULL AS access_token,
|
|
886
886
|
CASE WHEN refresh_token IS NULL THEN NULL ELSE 'present' END AS refresh_token,
|
|
@@ -890,7 +890,7 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
890
890
|
(id, provider, label, auth_type, enabled, tier, weight, expires_at, account_email,
|
|
891
891
|
provider_data, disabled_reason, disabled_at, access_token, refresh_token, api_key,
|
|
892
892
|
id_token, created_at, updated_at)
|
|
893
|
-
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`,[l.id,l.provider,l.label,l.authType,l.enabled?1:0,l.tier,l.weight,l.expiresAt,l.accountEmail,JSON.stringify(l.providerData),l.disabledReason,l.disabledAt,await p(l.accessToken),await p(l.refreshToken),await p(l.apiKey),await p(l.idToken),m,m]);let{accessToken:g,refreshToken:h,apiKey:f,idToken:y,..._}=l;return n({type:"credentialsChanged"}),{..._,hasRefreshToken:h!=null,tokenVersion:0,createdAt:m,updatedAt:m}},async update(l,m){let g=[],h=[],f=(y,_)=>{g.push(`${y} = ?`),h.push(_)};if(m.label!==void 0)f("label",m.label);if(m.enabled!==void 0)f("enabled",m.enabled?1:0);if(m.tier!==void 0)f("tier",m.tier);if(m.weight!==void 0)f("weight",m.weight);if(m.expiresAt!==void 0)f("expires_at",m.expiresAt);if(m.accountEmail!==void 0)f("account_email",m.accountEmail);if(m.providerData!==void 0)f("provider_data",JSON.stringify(m.providerData));if(m.disabledReason!==void 0)f("disabled_reason",m.disabledReason);if(m.disabledAt!==void 0)f("disabled_at",m.disabledAt);if(g.length===0)return;f("updated_at",Date.now()),e.run(`UPDATE credentials SET ${g.join(", ")} WHERE id = ?`,[...h,l]),n({type:"credentialsChanged"})},async updateSecrets(l,m,g,h){let f=[],y=[];if(m.accessToken!==void 0)f.push("access_token = ?"),y.push(await p(m.accessToken));if(m.refreshToken!==void 0)f.push("refresh_token = ?"),y.push(await p(m.refreshToken));if(m.apiKey!==void 0)f.push("api_key = ?"),y.push(await p(m.apiKey));if(m.idToken!==void 0)f.push("id_token = ?"),y.push(await p(m.idToken));f.push("expires_at = ?","updated_at = ?","token_version = token_version + 1"),y.push(g,Date.now());let _=h===void 0?"WHERE id = ?":"WHERE id = ? AND token_version = ?",
|
|
893
|
+
VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)`,[l.id,l.provider,l.label,l.authType,l.enabled?1:0,l.tier,l.weight,l.expiresAt,l.accountEmail,JSON.stringify(l.providerData),l.disabledReason,l.disabledAt,await p(l.accessToken),await p(l.refreshToken),await p(l.apiKey),await p(l.idToken),m,m]);let{accessToken:g,refreshToken:h,apiKey:f,idToken:y,..._}=l;return n({type:"credentialsChanged"}),{..._,hasRefreshToken:h!=null,tokenVersion:0,createdAt:m,updatedAt:m}},async update(l,m){let g=[],h=[],f=(y,_)=>{g.push(`${y} = ?`),h.push(_)};if(m.label!==void 0)f("label",m.label);if(m.enabled!==void 0)f("enabled",m.enabled?1:0);if(m.tier!==void 0)f("tier",m.tier);if(m.weight!==void 0)f("weight",m.weight);if(m.expiresAt!==void 0)f("expires_at",m.expiresAt);if(m.accountEmail!==void 0)f("account_email",m.accountEmail);if(m.providerData!==void 0)f("provider_data",JSON.stringify(m.providerData));if(m.disabledReason!==void 0)f("disabled_reason",m.disabledReason);if(m.disabledAt!==void 0)f("disabled_at",m.disabledAt);if(g.length===0)return;f("updated_at",Date.now()),e.run(`UPDATE credentials SET ${g.join(", ")} WHERE id = ?`,[...h,l]),n({type:"credentialsChanged"})},async updateSecrets(l,m,g,h){let f=[],y=[];if(m.accessToken!==void 0)f.push("access_token = ?"),y.push(await p(m.accessToken));if(m.refreshToken!==void 0)f.push("refresh_token = ?"),y.push(await p(m.refreshToken));if(m.apiKey!==void 0)f.push("api_key = ?"),y.push(await p(m.apiKey));if(m.idToken!==void 0)f.push("id_token = ?"),y.push(await p(m.idToken));f.push("expires_at = ?","updated_at = ?","token_version = token_version + 1"),y.push(g,Date.now());let _=h===void 0?"WHERE id = ?":"WHERE id = ? AND token_version = ?",w=h===void 0?[...y,l]:[...y,l,h],v=e.run(`UPDATE credentials SET ${f.join(", ")} ${_}`,w).changes;if(v>0)n({type:"credentialsChanged"});return v>0},async remove(l){e.run("DELETE FROM credentials WHERE id = ?",[l]),n({type:"credentialsChanged"})},async listHealth(){return e.query("SELECT * FROM credential_health").all().map(Iy)},async updateHealth(l,m,g){let h=e.prepare("SELECT * FROM credential_health WHERE credential_id = ? AND model = ?"),f=e.prepare(Yx),y=e.transaction(()=>{let _=h.get(l,m),w=g(_===null?null:Iy(_));return f.run(w.credentialId,w.model,w.breakerState,w.consecutiveFailures,w.openedAt,w.rateLimitedUntil),w})();return n({type:"healthSaved",rows:[y]}),y},async listQuota(){return e.query("SELECT * FROM quota_windows").all().map((l)=>({credentialId:l.credential_id,windowType:l.window_type,startsAt:l.starts_at,used:l.used,limit:l.limit_value,resetsAt:l.resets_at,observedAt:l.observed_at,windowMs:l.window_ms}))},async saveQuota(l){let m=e.prepare(`INSERT INTO quota_windows
|
|
894
894
|
(credential_id, window_type, starts_at, used, limit_value, resets_at, observed_at,
|
|
895
895
|
window_ms)
|
|
896
896
|
VALUES (?,?,?,?,?,?,?,?)
|
|
@@ -911,10 +911,10 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
911
911
|
used = excluded.used,
|
|
912
912
|
limit_value = excluded.limit_value,
|
|
913
913
|
resets_at = excluded.resets_at,
|
|
914
|
-
window_ms = excluded.window_ms`),y=new Map;for(let _ of l){let
|
|
914
|
+
window_ms = excluded.window_ms`),y=new Map;for(let _ of l){let w=y.get(_.credentialId);if(w===void 0)y.set(_.credentialId,[_.windowType]);else w.push(_.windowType)}e.transaction(()=>{for(let _ of l){m.run(_.credentialId,_.windowType,_.startsAt,_.used,_.limit,_.resetsAt,_.observedAt,_.windowMs);let w=h.get(_.credentialId,_.windowType);if(w!==null&&w.used===_.used&&w.limit_value===_.limit&&ri(w.resets_at,_.resetsAt)&&w.window_ms===_.windowMs)continue;f.run(_.credentialId,_.windowType,_.observedAt,_.used,_.limit,_.resetsAt,_.windowMs)}for(let[_,w]of y)g.run(_,JSON.stringify(w))})(),n({type:"quotaSaved",rows:l})},async listQuotaSamples(l){let m=l.limit!==void 0,g=(y)=>`SELECT * FROM quota_samples
|
|
915
915
|
WHERE observed_at >= ? AND observed_at <= ?${y}
|
|
916
916
|
ORDER BY ${m?"observed_at DESC":"credential_id, window_type, observed_at"}
|
|
917
|
-
${l.limit===void 0?"":"LIMIT ?"}`,h=[l.since,l.until];if(l.credentialId!==void 0)h.push(l.credentialId);if(l.limit!==void 0)h.push(l.limit);let f=e.query(g(l.credentialId===void 0?"":" AND credential_id = ?")).all(...h);if(m){let y=(_,
|
|
917
|
+
${l.limit===void 0?"":"LIMIT ?"}`,h=[l.since,l.until];if(l.credentialId!==void 0)h.push(l.credentialId);if(l.limit!==void 0)h.push(l.limit);let f=e.query(g(l.credentialId===void 0?"":" AND credential_id = ?")).all(...h);if(m){let y=(_,w)=>_<w?-1:_>w?1:0;f.sort((_,w)=>y(_.credential_id,w.credential_id)||y(_.window_type,w.window_type)||_.observed_at-w.observed_at)}return f.map((y)=>({credentialId:y.credential_id,windowType:y.window_type,observedAt:y.observed_at,used:y.used,limit:y.limit_value,resetsAt:y.resets_at,windowMs:y.window_ms}))},async pruneQuotaSamples(l){return e.run("DELETE FROM quota_samples WHERE observed_at < ?",[l]),e.query("SELECT changes() AS n").get()?.n??0}}}import{Database as _A}from"bun:sqlite";var Ly=`CREATE TABLE credentials (
|
|
918
918
|
id TEXT PRIMARY KEY,
|
|
919
919
|
provider TEXT NOT NULL,
|
|
920
920
|
label TEXT NOT NULL,
|
|
@@ -1537,21 +1537,21 @@ CREATE INDEX idx_request_logs_key_model_at ON request_logs (api_key_id, requeste
|
|
|
1537
1537
|
-- accepted and documented: a rollback to a build without this column ignores
|
|
1538
1538
|
-- it and stops judging \u2014 the guardrail fails open across a downgrade.
|
|
1539
1539
|
ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
1540
|
-
`;var wA=[{id:1,sql:Ly},{id:2,sql:Ny,after:Kh},{id:3,sql:Dy},{id:4,sql:Uy},{id:5,sql:My},{id:6,sql:$y,after:Xh},{id:7,sql:Fy},{id:8,sql:By},{id:9,sql:zy},{id:10,sql:qy,after:
|
|
1540
|
+
`;var wA=[{id:1,sql:Ly},{id:2,sql:Ny,after:Kh},{id:3,sql:Dy},{id:4,sql:Uy},{id:5,sql:My},{id:6,sql:$y,after:Xh},{id:7,sql:Fy},{id:8,sql:By},{id:9,sql:zy},{id:10,sql:qy,after:Jo},{id:11,sql:Hy},{id:12,sql:Wy},{id:13,sql:jy},{id:14,sql:Ky},{id:15,sql:Gy},{id:16,sql:Zy},{id:17,sql:Xy},{id:18,sql:Vy},{id:19,sql:Qy}];function bA(e){return e.split(`
|
|
1541
1541
|
`).filter((t)=>!t.trimStart().startsWith("--")).join(`
|
|
1542
|
-
`).split(/;[ \t]*(?:\n|$)/).map((t)=>t.trim()).filter((t)=>t.length>0)}function Su(e,t=et()){let n=new _A(e,{create:!0});n.run("PRAGMA journal_mode = WAL"),n.run("PRAGMA synchronous = NORMAL"),n.run("PRAGMA foreign_keys = ON"),n.run("PRAGMA busy_timeout = 5000"),n.run("CREATE TABLE IF NOT EXISTS migrations (id INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL)");let r=new Set(n.query("SELECT id FROM migrations").all().map((o)=>o.id));for(let o of wA){if(r.has(o.id))continue;n.transaction(()=>{for(let i of bA(o.sql))n.run(i);o.after?.(n,t),n.run("INSERT INTO migrations (id, applied_at) VALUES (?, ?)",[o.id,Date.now()])})()}return n}var kA="sk-omni-";function Au(){let e=crypto.getRandomValues(new Uint8Array(32)),t=btoa(String.fromCharCode(...e)).replaceAll("+","-").replaceAll("/","_").replaceAll("=","");return kA+t}async function vr(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Array.from(new Uint8Array(t),(n)=>n.toString(16).padStart(2,"0")).join("")}function EA(e,t,n){try{let r=JSON.parse(t);return Je(r)}catch{return n.error("api key limits unreadable",{apiKeyId:e}),null}}var xu=(e,t)=>({id:e.id,label:e.label,prefix:e.prefix,hash:e.hash,modelAllowlist:e.model_allowlist===null?null:JSON.parse(e.model_allowlist),limits:EA(e.id,e.limits,t),bodyLoggingOptOut:e.body_logging_opt_out===1,createdAt:e.created_at,revokedAt:e.revoked_at,expiresAt:e.expires_at,guardrailPolicy:e.guardrail_policy});function
|
|
1542
|
+
`).split(/;[ \t]*(?:\n|$)/).map((t)=>t.trim()).filter((t)=>t.length>0)}function Su(e,t=et()){let n=new _A(e,{create:!0});n.run("PRAGMA journal_mode = WAL"),n.run("PRAGMA synchronous = NORMAL"),n.run("PRAGMA foreign_keys = ON"),n.run("PRAGMA busy_timeout = 5000"),n.run("CREATE TABLE IF NOT EXISTS migrations (id INTEGER PRIMARY KEY, applied_at INTEGER NOT NULL)");let r=new Set(n.query("SELECT id FROM migrations").all().map((o)=>o.id));for(let o of wA){if(r.has(o.id))continue;n.transaction(()=>{for(let i of bA(o.sql))n.run(i);o.after?.(n,t),n.run("INSERT INTO migrations (id, applied_at) VALUES (?, ?)",[o.id,Date.now()])})()}return n}var kA="sk-omni-";function Au(){let e=crypto.getRandomValues(new Uint8Array(32)),t=btoa(String.fromCharCode(...e)).replaceAll("+","-").replaceAll("/","_").replaceAll("=","");return kA+t}async function vr(e){let t=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Array.from(new Uint8Array(t),(n)=>n.toString(16).padStart(2,"0")).join("")}function EA(e,t,n){try{let r=JSON.parse(t);return Je(r)}catch{return n.error("api key limits unreadable",{apiKeyId:e}),null}}var xu=(e,t)=>({id:e.id,label:e.label,prefix:e.prefix,hash:e.hash,modelAllowlist:e.model_allowlist===null?null:JSON.parse(e.model_allowlist),limits:EA(e.id,e.limits,t),bodyLoggingOptOut:e.body_logging_opt_out===1,createdAt:e.created_at,revokedAt:e.revoked_at,expiresAt:e.expires_at,guardrailPolicy:e.guardrail_policy});function Ou(e,t=se){return{async list(){return e.query("SELECT * FROM api_keys ORDER BY created_at DESC").all().map((n)=>xu(n,t))},async findByHash(n){let r=e.query("SELECT * FROM api_keys WHERE hash = ?").get(n);return r?xu(r,t):null},async get(n){let r=e.query("SELECT * FROM api_keys WHERE id = ?").get(n);return r?xu(r,t):null},async create(n){let r=Date.now();return e.run(`INSERT INTO api_keys (id, label, prefix, hash, model_allowlist, limits,
|
|
1543
1543
|
body_logging_opt_out, created_at, revoked_at, expires_at,
|
|
1544
1544
|
guardrail_policy)
|
|
1545
1545
|
VALUES (?,?,?,?,?,?,?,?,NULL,?,?)`,[n.id,n.label,n.prefix,n.hash,n.modelAllowlist===null?null:JSON.stringify(n.modelAllowlist),JSON.stringify(Je(n.limits)),n.bodyLoggingOptOut?1:0,r,n.expiresAt,n.guardrailPolicy]),{...n,createdAt:r,revokedAt:null}},async importRow(n){if(n.limits===null)throw Error(`api key ${n.id} has unreadable limits`);e.run(`INSERT INTO api_keys (id, label, prefix, hash, model_allowlist, limits,
|
|
1546
1546
|
body_logging_opt_out, created_at, revoked_at, expires_at,
|
|
1547
1547
|
guardrail_policy)
|
|
1548
|
-
VALUES (?,?,?,?,?,?,?,?,?,?,?)`,[n.id,n.label,n.prefix,n.hash,n.modelAllowlist===null?null:JSON.stringify(n.modelAllowlist),JSON.stringify(Je(n.limits)),n.bodyLoggingOptOut?1:0,n.createdAt,n.revokedAt,n.expiresAt,n.guardrailPolicy])},async setLimits(n,r){e.run("UPDATE api_keys SET limits = ? WHERE id = ?",[JSON.stringify(Je(r)),n])},async setModelAllowlist(n,r){e.run("UPDATE api_keys SET model_allowlist = ? WHERE id = ?",[r===null?null:JSON.stringify(r),n])},async setExpiry(n,r){e.run("UPDATE api_keys SET expires_at = ? WHERE id = ?",[r,n])},async setGuardrailPolicy(n,r){e.run("UPDATE api_keys SET guardrail_policy = ? WHERE id = ?",[r,n])},async revoke(n){e.run("UPDATE api_keys SET revoked_at = ? WHERE id = ?",[Date.now(),n])}}}import{Database as vA}from"bun:sqlite";var Yy=["api_keys","credential_health","credentials","migrations","quota_windows","request_logs","settings","virtual_models"],
|
|
1548
|
+
VALUES (?,?,?,?,?,?,?,?,?,?,?)`,[n.id,n.label,n.prefix,n.hash,n.modelAllowlist===null?null:JSON.stringify(n.modelAllowlist),JSON.stringify(Je(n.limits)),n.bodyLoggingOptOut?1:0,n.createdAt,n.revokedAt,n.expiresAt,n.guardrailPolicy])},async setLimits(n,r){e.run("UPDATE api_keys SET limits = ? WHERE id = ?",[JSON.stringify(Je(r)),n])},async setModelAllowlist(n,r){e.run("UPDATE api_keys SET model_allowlist = ? WHERE id = ?",[r===null?null:JSON.stringify(r),n])},async setExpiry(n,r){e.run("UPDATE api_keys SET expires_at = ? WHERE id = ?",[r,n])},async setGuardrailPolicy(n,r){e.run("UPDATE api_keys SET guardrail_policy = ? WHERE id = ?",[r,n])},async revoke(n){e.run("UPDATE api_keys SET revoked_at = ? WHERE id = ?",[Date.now(),n])}}}import{Database as vA}from"bun:sqlite";var Yy=["api_keys","credential_health","credentials","migrations","quota_windows","request_logs","settings","virtual_models"],Cu="unreadable";function TA(e){return`'${e.replaceAll("'","''")}'`}function Pu(e,t){return{async heartbeat(n){e.run("INSERT OR REPLACE INTO nodes (id, seen_at) VALUES (?, ?)",[t,n]),e.run("DELETE FROM nodes WHERE seen_at < ?",[n-86400000])},async nodes(n){return e.query("SELECT id, seen_at FROM nodes WHERE seen_at > ? ORDER BY seen_at DESC").all(n-Bt).map((r)=>({id:r.id,seenAt:r.seen_at}))},async stats(){let n=e.query("PRAGMA page_size").get(),r=e.query("PRAGMA page_count").get(),o=e.query("PRAGMA freelist_count").get(),i=e.query("SELECT MAX(id) AS version FROM migrations").get();return{pageSize:n?.page_size??0,pageCount:r?.page_count??0,freelistCount:o?.freelist_count??0,schemaVersion:i?.version??0}},async tables(){return e.query(`SELECT m.tbl_name AS name,
|
|
1549
1549
|
SUM(s.pgsize) AS bytes,
|
|
1550
1550
|
SUM(CASE WHEN s.pagetype = 'leaf' AND s.name = m.tbl_name THEN s.ncell ELSE 0 END) AS rows
|
|
1551
1551
|
FROM dbstat s JOIN sqlite_master m ON m.name = s.name
|
|
1552
1552
|
WHERE m.tbl_name NOT LIKE 'sqlite_%'
|
|
1553
1553
|
GROUP BY m.tbl_name
|
|
1554
|
-
ORDER BY bytes DESC, name`).all().map((n)=>({...n,deadRows:null}))},async vacuum(){e.run("VACUUM"),e.run("PRAGMA wal_checkpoint(TRUNCATE)")},async snapshotTo(n){e.run(`VACUUM INTO ${TA(n)}`)},async inspect(n){let r;try{r=new vA(n,{readonly:!0})}catch{return{ok:!1,quickCheck:
|
|
1554
|
+
ORDER BY bytes DESC, name`).all().map((n)=>({...n,deadRows:null}))},async vacuum(){e.run("VACUUM"),e.run("PRAGMA wal_checkpoint(TRUNCATE)")},async snapshotTo(n){e.run(`VACUUM INTO ${TA(n)}`)},async inspect(n){let r;try{r=new vA(n,{readonly:!0})}catch{return{ok:!1,quickCheck:Cu,tables:[],counts:{}}}try{let i=r.query("PRAGMA quick_check").all()[0]?.quick_check??Cu,s=r.query("SELECT name FROM sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%' ORDER BY name").all().map((d)=>d.name),a=new Set(s),u={};for(let d of Yy){if(!a.has(d))continue;let p=r.query(`SELECT COUNT(*) AS n FROM ${d}`).get();u[d]=p?.n??0}let c=Yy.every((d)=>a.has(d));return{ok:i==="ok"&&c,quickCheck:i,tables:s,counts:u}}catch{return{ok:!1,quickCheck:Cu,tables:[],counts:{}}}finally{r.close()}}}}var mi=ai,Jy=si;function e_(e){let t=e.query("SELECT name FROM sqlite_master").all();return new Set(t.map((n)=>n.name))}function RA(e,t,n){let r=`${Jy}${t}_`;for(let o of e_(e)){if(n.has(o)||o.startsWith(r)||o.startsWith("sqlite_"))continue;throw Error(`plugin migration created ${o}, which is outside this plugin's namespace \u2014 `+`name it {{\u2026}} so it becomes ${r}\u2026`)}}function Iu(e){let t=()=>e.query("SELECT name FROM sqlite_master WHERE type = 'table' ORDER BY name").all().map((o)=>o.name).filter((o)=>o.startsWith(Jy)&&o!=="plugin_migrations"),n=(o)=>{let i=sn(o);return t().filter((s)=>s.startsWith(i))},r=(o)=>new Set(e.query("SELECT version FROM plugin_migrations WHERE plugin_id = ?").all(o).map((i)=>i.version));return{async migrate(o,i){tt(o);let s=r(o),a=[],u=[...i].sort((c,d)=>c.version-d.version);for(let c of u){if(s.has(c.version))continue;try{if(!Number.isSafeInteger(c.version)||c.version<1)throw Error("migration version must be a positive integer");let d=mi(o,c.sql),p=e_(e);e.transaction(()=>{e.run(d),RA(e,o,p),e.run("INSERT INTO plugin_migrations (plugin_id, version, applied_at) VALUES (?,?,?)",[o,c.version,Date.now()])})(),a.push(c.version)}catch(d){return{applied:a,failed:{version:c.version,reason:H(d,String(d))}}}}return{applied:a}},async run(o,i,s){e.run(mi(o,i),zt(s))},async all(o,i,s){return e.prepare(mi(o,i)).all(...zt(s))},async get(o,i,s){let a=e.prepare(mi(o,i)).get(...zt(s));return a===null||a===void 0?null:a},async transaction(o,i){tt(o),e.run("BEGIN");try{let s=await i();return e.run("COMMIT"),s}catch(s){throw e.run("ROLLBACK"),s}},async listTables(o){return tt(o),n(o)},async dropAll(o){tt(o);let i=n(o);return e.transaction(()=>{for(let s of i)e.run(`DROP TABLE IF EXISTS "${s}"`);e.run("DELETE FROM plugin_migrations WHERE plugin_id = ?",[o])})(),i.length},async orphanTables(o){let i=o.filter((s)=>br.test(s)).map(sn);return t().filter((s)=>!i.some((a)=>s.startsWith(a)))}}}function SA(e){try{let t=JSON.parse(e);return Array.isArray(t)?t.filter(ci):[]}catch{return[]}}var In=(e)=>({id:e.id,state:e.state==="pending"?"pending":"done",at:e.at,apiKeyId:e.api_key_id,requestedModel:e.requested_model,resolvedProvider:e.resolved_provider,resolvedModel:e.resolved_model,credentialId:e.credential_id,attempts:e.attempts,status:e.status,errorCode:e.error_code,inputTokens:e.input_tokens,outputTokens:e.output_tokens,cacheReadTokens:e.cache_read_tokens,cacheWriteTokens:e.cache_write_tokens,ttftMs:e.ttft_ms,durationMs:e.duration_ms,costUsd:e.cost_usd,degradations:JSON.parse(e.degradations),rtkApplied:e.rtk_applied===1,rtkFilterHits:e.rtk_filter_hits,rtkOriginalCodeUnits:e.rtk_original_code_units,rtkCompressedCodeUnits:e.rtk_compressed_code_units,rtkEstimatedTokensSaved:e.rtk_estimated_tokens_saved,rtkFilters:SA(e.rtk_filters)}),xA={raw:{credential:"credential_id",model:"resolved_model",requestedModel:"requested_model",apiKey:"api_key_id",provider:"resolved_provider",hour:"CAST(at / 3600000 AS INTEGER)",day:null},daily:{credential:"credential_id",model:"resolved_model",requestedModel:"requested_model",apiKey:"api_key_id",provider:"provider",hour:null,day:"day"}};function t_(e,t){let n=xA[e][t];if(n===null)throw Error(`usage grain ${e} cannot group by ${t}`);return n}var AA={raw:`COUNT(*) AS requests,
|
|
1555
1555
|
COALESCE(SUM(CASE WHEN status >= 400 THEN 1 ELSE 0 END), 0) AS errors,
|
|
1556
1556
|
COALESCE(SUM(duration_ms), 0) AS duration_ms_sum`,daily:`COALESCE(SUM(requests), 0) AS requests,
|
|
1557
1557
|
COALESCE(SUM(errors), 0) AS errors,
|
|
@@ -1559,7 +1559,7 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
1559
1559
|
resolved_model, credential_id, attempts, status, error_code, input_tokens,
|
|
1560
1560
|
output_tokens, cache_read_tokens, cache_write_tokens, ttft_ms, duration_ms,
|
|
1561
1561
|
cost_usd, degradations, rtk_applied, rtk_filter_hits, rtk_original_code_units,
|
|
1562
|
-
rtk_compressed_code_units, rtk_estimated_tokens_saved, rtk_filters)`,i_="(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";function r_(e,t,n){return[e.id,t,n,e.at,e.apiKeyId,e.requestedModel,e.resolvedProvider,e.resolvedModel,e.credentialId,e.attempts,e.status,e.errorCode,e.inputTokens,e.outputTokens,e.cacheReadTokens,e.cacheWriteTokens,e.ttftMs,e.durationMs,e.costUsd,JSON.stringify(e.degradations),e.rtkApplied===!0?1:0,e.rtkFilterHits??0,e.rtkOriginalCodeUnits??0,e.rtkCompressedCodeUnits??0,e.rtkEstimatedTokensSaved??0,JSON.stringify(e.rtkFilters??[])]}var
|
|
1562
|
+
rtk_compressed_code_units, rtk_estimated_tokens_saved, rtk_filters)`,i_="(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";function r_(e,t,n){return[e.id,t,n,e.at,e.apiKeyId,e.requestedModel,e.resolvedProvider,e.resolvedModel,e.credentialId,e.attempts,e.status,e.errorCode,e.inputTokens,e.outputTokens,e.cacheReadTokens,e.cacheWriteTokens,e.ttftMs,e.durationMs,e.costUsd,JSON.stringify(e.degradations),e.rtkApplied===!0?1:0,e.rtkFilterHits??0,e.rtkOriginalCodeUnits??0,e.rtkCompressedCodeUnits??0,e.rtkEstimatedTokensSaved??0,JSON.stringify(e.rtkFilters??[])]}var OA=`INSERT INTO request_logs ${o_} VALUES ${i_}
|
|
1563
1563
|
ON CONFLICT(id) DO UPDATE SET
|
|
1564
1564
|
state = 'done',
|
|
1565
1565
|
requested_model = COALESCE(NULLIF(excluded.requested_model, ''), request_logs.requested_model),
|
|
@@ -1597,7 +1597,7 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
1597
1597
|
WHERE api_key_id = ? AND requested_model = ? AND state = 'done' AND at >= ?
|
|
1598
1598
|
GROUP BY bucket`,oldestSince:`SELECT MIN(at) AS at
|
|
1599
1599
|
FROM request_logs
|
|
1600
|
-
WHERE api_key_id = ? AND requested_model = ? AND state = 'done' AND at >= ?`};function Nu(e,t,n=et()){let r=e.transaction((i)=>{if(e.run(
|
|
1600
|
+
WHERE api_key_id = ? AND requested_model = ? AND state = 'done' AND at >= ?`};function Nu(e,t,n=et()){let r=e.transaction((i)=>{if(e.run(OA,r_(i,"done",t)).changes===0)return;let s=e.query("SELECT * FROM request_logs WHERE id = ?").get(i.id);if(s!==null){let a=In(s);jh(e,a,n),Gh(e,a)}}),o=e.transaction((i)=>{e.run("DELETE FROM request_logs WHERE at < ?",[i]);let s=e.query("SELECT changes() AS n").get()?.n??0,a=$e(i);return e.run("DELETE FROM usage_rollup WHERE hour <= ?",[a]),e.run(`INSERT INTO usage_rollup
|
|
1601
1601
|
(api_key_id, hour, requests, input_tokens, output_tokens,
|
|
1602
1602
|
cache_read_tokens, cache_write_tokens, cost_usd)
|
|
1603
1603
|
SELECT api_key_id, ?, COUNT(*),
|
|
@@ -1612,33 +1612,33 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
1612
1612
|
SET resolved_provider = ?, resolved_model = ?, credential_id = ?
|
|
1613
1613
|
WHERE id = ? AND state = 'pending'`,[s.provider,s.model,s.credentialId,i])},async append(i){r(i)},async sweepPending(i){let s=e.query(`SELECT * FROM request_logs
|
|
1614
1614
|
WHERE state = 'pending'
|
|
1615
|
-
AND (node_id = ? OR node_id NOT IN (SELECT id FROM nodes WHERE seen_at > ?))`).all(t,i-Bt).map(In);for(let a of s)r({...a,status:499,errorCode:"interrupted",durationMs:0});return s.length},async recent(i,s){if(s===void 0)return e.query("SELECT * FROM request_logs ORDER BY at DESC LIMIT ?").all(i).map(In);return e.query("SELECT * FROM request_logs WHERE api_key_id = ? ORDER BY at DESC LIMIT ?").all(s,i).map(In)},async page(i){let{where:s,bindings:a}=
|
|
1615
|
+
AND (node_id = ? OR node_id NOT IN (SELECT id FROM nodes WHERE seen_at > ?))`).all(t,i-Bt).map(In);for(let a of s)r({...a,status:499,errorCode:"interrupted",durationMs:0});return s.length},async recent(i,s){if(s===void 0)return e.query("SELECT * FROM request_logs ORDER BY at DESC LIMIT ?").all(i).map(In);return e.query("SELECT * FROM request_logs WHERE api_key_id = ? ORDER BY at DESC LIMIT ?").all(s,i).map(In)},async page(i){let{where:s,bindings:a}=di(i,()=>"?"),u=e.query(`SELECT * FROM request_logs ${s} ORDER BY at DESC, id DESC LIMIT ?`).all(...a,i.limit+1).map(In);return li(u,i.limit)},async lastUsedByCredential(i){return e.query("SELECT MAX(at) AS at FROM request_logs WHERE credential_id = ?").get(i)?.at??null},async scan(i,s){return(i===null?e.query("SELECT * FROM request_logs ORDER BY at, id LIMIT ?").all(s):e.query(`SELECT * FROM request_logs
|
|
1616
1616
|
WHERE at > ? OR (at = ? AND id > ?)
|
|
1617
|
-
ORDER BY at, id LIMIT ?`).all(i.at,i.at,i.id,s)).map(In)},async sumSince(i,s,a){if(a!==void 0){let p=e.query(Lu.sumSince).get(i,a,s);return{requests:p?.requests??0,tokens:p?.tokens??0,costUsd:p?.cost_usd??0}}let
|
|
1617
|
+
ORDER BY at, id LIMIT ?`).all(i.at,i.at,i.id,s)).map(In)},async sumSince(i,s,a){if(a!==void 0){let p=e.query(Lu.sumSince).get(i,a,s);return{requests:p?.requests??0,tokens:p?.tokens??0,costUsd:p?.cost_usd??0}}let u=$e(s),c=e.query(`SELECT COALESCE(SUM(requests), 0) AS requests,
|
|
1618
1618
|
COALESCE(SUM(input_tokens + output_tokens
|
|
1619
1619
|
+ cache_read_tokens + cache_write_tokens), 0) AS tokens,
|
|
1620
1620
|
COALESCE(SUM(cost_usd), 0) AS cost_usd
|
|
1621
1621
|
FROM usage_rollup
|
|
1622
|
-
WHERE api_key_id = ? AND hour > ?`).get(i,
|
|
1622
|
+
WHERE api_key_id = ? AND hour > ?`).get(i,u),d=e.query(`SELECT COUNT(*) AS requests,
|
|
1623
1623
|
COALESCE(SUM(input_tokens + output_tokens
|
|
1624
1624
|
+ cache_read_tokens + cache_write_tokens), 0) AS tokens,
|
|
1625
1625
|
COALESCE(SUM(cost_usd), 0) AS cost_usd
|
|
1626
1626
|
FROM request_logs
|
|
1627
|
-
WHERE api_key_id = ? AND state = 'done' AND at >= ? AND at < ?`).get(i,s,(
|
|
1627
|
+
WHERE api_key_id = ? AND state = 'done' AND at >= ? AND at < ?`).get(i,s,(u+1)*ve);return{requests:(c?.requests??0)+(d?.requests??0),tokens:(c?.tokens??0)+(d?.tokens??0),costUsd:(c?.cost_usd??0)+(d?.cost_usd??0)}},async sumBuckets(i,s,a,u){if(u!==void 0){let d=a===ve?$e(s)*ve:s;return e.query(Lu.sumBuckets).all(a,a,i,u,d).map((l)=>[l.bucket,{requests:l.requests,tokens:l.tokens,costUsd:l.cost_usd}])}return(a===ve?e.query(`SELECT hour * ${ve} AS bucket, requests,
|
|
1628
1628
|
input_tokens + output_tokens + cache_read_tokens + cache_write_tokens
|
|
1629
1629
|
AS tokens,
|
|
1630
1630
|
cost_usd
|
|
1631
1631
|
FROM usage_rollup
|
|
1632
|
-
WHERE api_key_id = ? AND hour >= ?`).all(i
|
|
1632
|
+
WHERE api_key_id = ? AND hour >= ?`).all(i,$e(s)):e.query(`SELECT (at / ?) * ? AS bucket, COUNT(*) AS requests,
|
|
1633
1633
|
COALESCE(SUM(input_tokens + output_tokens
|
|
1634
1634
|
+ cache_read_tokens + cache_write_tokens), 0) AS tokens,
|
|
1635
1635
|
COALESCE(SUM(cost_usd), 0) AS cost_usd
|
|
1636
1636
|
FROM request_logs
|
|
1637
1637
|
WHERE api_key_id = ? AND state = 'done' AND at >= ?
|
|
1638
|
-
GROUP BY bucket`).all(a,a,i,s)).map((d)=>[d.bucket,{requests:d.requests,tokens:d.tokens,costUsd:d.cost_usd}])},async rebuildRollup(){
|
|
1638
|
+
GROUP BY bucket`).all(a,a,i,s)).map((d)=>[d.bucket,{requests:d.requests,tokens:d.tokens,costUsd:d.cost_usd}])},async rebuildRollup(){Jo(e)},async auditRollup(){return Zh(e)},async oldestSince(i,s,a){return(a===void 0?e.query(`SELECT MIN(at) AS at
|
|
1639
1639
|
FROM request_logs
|
|
1640
|
-
WHERE api_key_id = ? AND state = 'done' AND at >= ?`).get(i,s):e.query(Lu.oldestSince).get(i,a,s))?.at??null},async aggregate(i){let s=i.grain??"raw",a=s==="daily",
|
|
1641
|
-
${
|
|
1640
|
+
WHERE api_key_id = ? AND state = 'done' AND at >= ?`).get(i,s):e.query(Lu.oldestSince).get(i,a,s))?.at??null},async aggregate(i){let s=i.grain??"raw",a=s==="daily",u=t_(s,i.groupBy),c=i.splitBy===void 0?null:t_(s,i.splitBy),d=a?mt(i.since,n):i.since,p=i.until??Number.MAX_SAFE_INTEGER,l=a?"day":"at",m=[d,p],g="";if(i.apiKeyId!==void 0)g+=" AND api_key_id = ?",m.push(i.apiKeyId);if(i.credentialId!==void 0)g+=" AND credential_id = ?",m.push(i.credentialId);return e.query(`SELECT ${u} AS key,
|
|
1641
|
+
${c??"NULL"} AS split,
|
|
1642
1642
|
${AA[s]},
|
|
1643
1643
|
COALESCE(SUM(input_tokens), 0) AS input_tokens,
|
|
1644
1644
|
COALESCE(SUM(output_tokens), 0) AS output_tokens,
|
|
@@ -1649,52 +1649,52 @@ ALTER TABLE api_keys ADD COLUMN guardrail_policy TEXT;
|
|
|
1649
1649
|
COALESCE(SUM(cost_usd), 0) AS cost_usd
|
|
1650
1650
|
FROM ${a?"usage_daily":"request_logs"}
|
|
1651
1651
|
WHERE ${a?"":"state = 'done' AND "}${l} >= ? AND ${l} <= ?${g}
|
|
1652
|
-
GROUP BY key${
|
|
1653
|
-
ORDER BY requests DESC`).all(...m).map((f)=>{let y={key:n_(f.key),requests:f.requests,inputTokens:f.input_tokens,outputTokens:f.output_tokens,cacheReadTokens:f.cache_read_tokens,cacheWriteTokens:f.cache_write_tokens,rtkSavedTokens:f.rtk_saved_tokens,rtkAppliedRequests:f.rtk_applied_requests,costUsd:f.cost_usd,errors:f.errors,durationMsSum:f.duration_ms_sum};return u===null?y:{...y,split:n_(f.split)}})},async prune(i){return o(i)},async pruneDaily(i){return e.run("DELETE FROM usage_daily WHERE day < ?",[i]),e.query("SELECT changes() AS n").get()?.n??0}}}async function mi(e){let t=e.logger??se,n=e.nodeId??crypto.randomUUID(),r=e.dayOffsetMinutes??et(),o=new Set,i=(d)=>{for(let p of o)try{p(d)}catch{}},s=()=>{let d=Su(e.path,r);return t.debug("store opened",{path:e.path}),{db:d,credentials:Ru(d,e.encryptionKey,i),config:Tu(d,i),keys:Cu(d,t),usage:Nu(d,n,r),bodies:ku(d,e.encryptionKey,yr(e.path)),maintenance:Pu(d,n),plugins:Iu(d)}},a=s(),c=!0,u=()=>{if(!c)return;a.db.close(),c=!1};return{engine:"sqlite",databasePath:e.path,credentials:{list:()=>a.credentials.list(),listRouting:()=>a.credentials.listRouting(),get:(d)=>a.credentials.get(d),create:(d)=>a.credentials.create(d),update:(d,p)=>a.credentials.update(d,p),updateSecrets:(d,p,l,m)=>a.credentials.updateSecrets(d,p,l,m),remove:(d)=>a.credentials.remove(d),listHealth:()=>a.credentials.listHealth(),updateHealth:(d,p,l)=>a.credentials.updateHealth(d,p,l),listQuota:()=>a.credentials.listQuota(),saveQuota:(d)=>a.credentials.saveQuota(d),listQuotaSamples:(d)=>a.credentials.listQuotaSamples(d),pruneQuotaSamples:(d)=>a.credentials.pruneQuotaSamples(d)},config:{listModels:()=>a.config.listModels(),putModel:(d)=>a.config.putModel(d),removeModel:(d)=>a.config.removeModel(d),getSettings:()=>a.config.getSettings(),putSettings:(d)=>a.config.putSettings(d),getAdminPasswordHash:()=>a.config.getAdminPasswordHash(),setAdminPasswordHashIfAbsent:(d)=>a.config.setAdminPasswordHashIfAbsent(d),setAdminPasswordHash:(d)=>a.config.setAdminPasswordHash(d),getViewerPasswordHash:()=>a.config.getViewerPasswordHash(),setViewerPasswordHash:(d)=>a.config.setViewerPasswordHash(d)},keys:{list:()=>a.keys.list(),findByHash:(d)=>a.keys.findByHash(d),get:(d)=>a.keys.get(d),create:(d)=>a.keys.create(d),importRow:(d)=>a.keys.importRow(d),setLimits:(d,p)=>a.keys.setLimits(d,p),setModelAllowlist:(d,p)=>a.keys.setModelAllowlist(d,p),setExpiry:(d,p)=>a.keys.setExpiry(d,p),setGuardrailPolicy:(d,p)=>a.keys.setGuardrailPolicy(d,p),revoke:(d)=>a.keys.revoke(d)},usage:{begin:(d)=>a.usage.begin(d),route:(d,p)=>a.usage.route(d,p),append:(d)=>a.usage.append(d),sweepPending:(d)=>a.usage.sweepPending(d),recent:(d,p)=>a.usage.recent(d,p),page:(d)=>a.usage.page(d),lastUsedByCredential:(d)=>a.usage.lastUsedByCredential(d),scan:(d,p)=>a.usage.scan(d,p),aggregate:(d)=>a.usage.aggregate(d),sumSince:(d,p,l)=>a.usage.sumSince(d,p,l),sumBuckets:(d,p,l,m)=>a.usage.sumBuckets(d,p,l,m),oldestSince:(d,p,l)=>a.usage.oldestSince(d,p,l),rebuildRollup:()=>a.usage.rebuildRollup(),auditRollup:()=>a.usage.auditRollup(),prune:(d)=>a.usage.prune(d),pruneDaily:(d)=>a.usage.pruneDaily(d)},bodies:{put:(d)=>a.bodies.put(d),get:(d)=>a.bodies.get(d),prune:(d)=>a.bodies.prune(d),pruneToCap:(d)=>a.bodies.pruneToCap(d),sweepOrphans:()=>a.bodies.sweepOrphans()},maintenance:{stats:()=>a.maintenance.stats(),tables:()=>a.maintenance.tables(),heartbeat:(d)=>a.maintenance.heartbeat(d),nodes:(d)=>a.maintenance.nodes(d),vacuum:()=>a.maintenance.vacuum(),snapshotTo:(d)=>a.maintenance.snapshotTo(d),inspect:(d)=>a.maintenance.inspect(d)},plugins:{migrate:(d,p)=>a.plugins.migrate(d,p),run:(d,p,l)=>a.plugins.run(d,p,l),all(d,p,l){return a.plugins.all(d,p,l)},get(d,p,l){return a.plugins.get(d,p,l)},transaction(d,p){return a.plugins.transaction(d,p)},listTables:(d)=>a.plugins.listTables(d),dropAll:(d)=>a.plugins.dropAll(d),orphanTables:(d)=>a.plugins.orphanTables(d)},routing:{version:()=>a.db.query("PRAGMA data_version").get()?.data_version??0,subscribe(d){return o.add(d),()=>o.delete(d)}},async reopen(){u(),a=s(),c=!0},close:u}}var At=12,Du={algorithm:"argon2id",memoryCost:19456,timeCost:2},fi="sess:";function s_(e,t){return`${fi}${e}:${new Bun.CryptoHasher("sha256").update(t).digest("hex")}`}function Tr(e,t){let n=t.coord??Mt({now:t.now}),r=async(u)=>{let d=Buffer.from(crypto.getRandomValues(new Uint8Array(32))).toString("base64url"),p={expiresAt:t.now()+t.sessionTtlMs,principal:u};return await n.kv.set(s_(u.kind,d),JSON.stringify(p),t.sessionTtlMs),d},o=(u)=>n.kv.delPrefix(`${fi}${u}:`),i=async(u)=>{for(let d of["admin","viewer","client"]){let p=s_(d,u),l=await n.kv.get(p);if(l!==null)return{key:p,session:JSON.parse(l)}}return null},s=async(u,d)=>{if(u===null)return!1;try{return await Bun.password.verify(d,u)}catch{return!1}},a=async(u)=>{let d=await e.keys.get(u);return d!==null&&wr(d,t.now())},c=async(u)=>{if(u.length<At)throw Error(`admin password must be at least ${At} characters`);await e.config.setAdminPasswordHash(await Bun.password.hash(u,Du)),await n.kv.delPrefix(fi)};return{async isConfigured(){return await e.config.getAdminPasswordHash()!==null},setPassword:c,async setInitialPassword(u){if(u.length<At)throw Error(`admin password must be at least ${At} characters`);return e.config.setAdminPasswordHashIfAbsent(await Bun.password.hash(u,Du))},async changePassword(u,d){if(d.length<At)throw Error(`admin password must be at least ${At} characters`);let p=await e.config.getAdminPasswordHash();if(!await s(p,u))return!1;return await c(d),!0},async login(u){let d=await e.config.getAdminPasswordHash();if(!await s(d,u))return null;return r({kind:"admin"})},async isViewerConfigured(){return await e.config.getViewerPasswordHash()!==null},async setViewerPassword(u){if(u!==null&&u.length<At)throw Error(`viewer password must be at least ${At} characters`);await e.config.setViewerPasswordHash(u===null?null:await Bun.password.hash(u,Du)),await o("viewer")},async loginViewer(u){let d=await e.config.getViewerPasswordHash();if(!await s(d,u))return null;return r({kind:"viewer"})},async loginClient(u){let d=await e.keys.findByHash(await vr(u));if(d===null||!wr(d,t.now()))return null;return r({kind:"client",apiKeyId:d.id})},async verify(u){let d=await i(u);if(d===null)return null;let{key:p,session:l}=d;if(l.expiresAt<=t.now())return await n.kv.del(p),null;if(l.principal.kind==="client"){if(!await a(l.principal.apiKeyId))return await n.kv.del(p),null}return l.principal},async logout(u){let d=await i(u);if(d!==null)await n.kv.del(d.key)},invalidateSessions(){return n.kv.delPrefix(fi)},invalidateKind(u){return o(u)}}}async function Uu(e,t){let n=await e.bodies.get(t);if(n===null)return{requestId:t,detailState:"none",truncated:!1,sizeBytes:0,at:null,artifact:null};return{requestId:n.row.requestId,detailState:n.row.detailState,truncated:n.row.truncated,sizeBytes:n.row.sizeBytes,at:n.row.at,artifact:n.artifact}}var Rr={defaultModel:"claude-opus-5-5",authTypes:["oauth","apiKey"],models:[{id:"claude-fable-5-1",label:"Claude Fable 5.1",pricing:{input:10,output:50,cacheRead:0.25,cacheWrite5m:12.5,cacheWrite1h:20},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"claude-opus-5-5",label:"Claude Opus 5.5",pricing:{input:4,output:20,cacheRead:0.2,cacheWrite5m:5,cacheWrite1h:8},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"claude-fable-5",label:"Claude Fable 5",pricing:{input:10,output:50,cacheRead:1,cacheWrite5m:12.5,cacheWrite1h:20},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"claude-opus-5",label:"Claude Opus 5",pricing:{input:5,output:25,cacheRead:0.5,cacheWrite5m:6.25,cacheWrite1h:10},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"claude-sonnet-5-5",label:"Claude Sonnet 5.5",pricing:{input:2,output:10,cacheRead:0.1,cacheWrite5m:2.5,cacheWrite1h:4},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"claude-sonnet-5",label:"Claude Sonnet 5",pricing:{input:2,output:10,cacheRead:0.2,cacheWrite5m:2.5,cacheWrite1h:4},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"claude-haiku-5-5",label:"Claude Haiku 5.5",pricing:{input:0.1,output:0.5,cacheRead:0.01,cacheWrite5m:0.125,cacheWrite1h:0.2},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"claude-haiku-4-5",label:"Claude Haiku 4.5",pricing:{input:1,output:5,cacheRead:0.1,cacheWrite5m:1.25,cacheWrite1h:2},limits:{contextWindow:200000,maxOutputTokens:64000},reasoningForm:"budget"}]};var OA=/-\d{8}$/;function a_(e){let t=e.trim();if(t.toLowerCase().endsWith("[1m]"))t=t.slice(0,-4).trim();return t=t.replace(OA,""),Rr.models.find((n)=>n.id===t)}function Mu(e){return a_(e)?.reasoningForm??"adaptive"}function u_(e){return a_(e)?.limits.maxOutputTokens}var gi={id:"anthropic",capabilities:{tools:!0,images:!0,reasoning:!0},writeOverInput:{fiveMinute:1.25,oneHour:2},catalog:Rr,modelPrefixes:["claude-"],presentation:{label:"Anthropic",order:1,tone:"magenta",colour:{light:"oklch(0.56 0.13 45)",dark:"oklch(0.74 0.12 48)"},pasteHint:"Authorize in the browser, then paste the code Anthropic shows you."}};var hi=65536;var me={cacheWrite5m:0,cacheWrite1h:0},PA={input:0,output:0,cacheRead:0,...me},$e={contextWindow:1048576,maxOutputTokens:65536},Sr={contextWindow:1048576,maxOutputTokens:65535},yi={defaultModel:"gemini-3.8-flash-high",authTypes:["oauth"],models:[{id:"gemini-3.8-flash-high",label:"Gemini 3.8 Flash (High)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:$e},{id:"gemini-3.8-flash-medium",label:"Gemini 3.8 Flash (Medium)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:$e},{id:"gemini-3.8-flash-low",label:"Gemini 3.8 Flash (Low)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:$e},{id:"gemini-3.7-flash-high",label:"Gemini 3.7 Flash (High)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:$e},{id:"gemini-3.7-flash-medium",label:"Gemini 3.7 Flash (Medium)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:$e},{id:"gemini-3.7-flash-low",label:"Gemini 3.7 Flash (Low)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:$e},{id:"gemini-3.6-flash-high",label:"Gemini 3.6 Flash (High)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:$e},{id:"gemini-3.6-flash-medium",label:"Gemini 3.6 Flash (Medium)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:$e},{id:"gemini-3.6-flash-low",label:"Gemini 3.6 Flash (Low)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:$e},{id:"gemini-3-flash-agent",label:"Gemini 3.5 Flash (High)",pricing:{input:1.5,output:9,cacheRead:0.15,...me},limits:$e},{id:"gemini-3.5-flash-low",label:"Gemini 3.5 Flash (Medium)",pricing:{input:1.5,output:9,cacheRead:0.15,...me},limits:$e},{id:"gemini-3.5-flash-extra-low",label:"Gemini 3.5 Flash (Low)",pricing:{input:1.5,output:9,cacheRead:0.15,...me},limits:$e},{id:"gemini-3-flash",label:"Gemini 3 Flash",pricing:PA,limits:$e},{id:"gemini-3.5-flash-lite",label:"Gemini 3.5 Flash Lite",pricing:{input:0.3,output:2.5,cacheRead:0.03,...me},limits:Sr},{id:"gemini-pro-agent",label:"Gemini 3.1 Pro (High)",pricing:{input:2,output:12,cacheRead:0.2,...me},limits:Sr},{id:"gemini-3.1-pro-low",label:"Gemini 3.1 Pro (Low)",pricing:{input:2,output:12,cacheRead:0.2,...me},limits:Sr},{id:"gemini-3.1-flash-lite",label:"Gemini 3.1 Flash Lite",pricing:{input:0.25,output:1.5,cacheRead:0.025,...me},limits:Sr},{id:"gemini-2.5-pro",label:"Gemini 2.5 Pro",pricing:{input:1.25,output:10,cacheRead:0.125,...me},limits:Sr}]};var _i={id:"antigravity",capabilities:{tools:!0,images:!0,reasoning:!0},writeOverInput:{fiveMinute:0,oneHour:0},catalog:yi,modelPrefixes:["gemini-"],callback:{uri:"https://antigravity.google/oauth-callback",label:"Antigravity"},presentation:{label:"Antigravity",order:6,tone:"violet",colour:{light:"oklch(0.52 0.14 277)",dark:"oklch(0.74 0.14 277)"},pasteHint:"Approve in any browser, then paste the whole URL it lands on. A code shown on its own works too."}};var wi={defaultModel:"",authTypes:["apiKey"],models:[]};var bi={id:"custom",capabilities:{tools:!0,images:!0,reasoning:!0},writeOverInput:{fiveMinute:0,oneHour:0},catalog:wi,modelPrefixes:[],presentation:{label:"OpenAI Compatible",order:8,tone:"cyan",colour:{light:"oklch(0.5 0.03 258)",dark:"oklch(0.72 0.03 258)"},pasteHint:"Enter endpoint metadata and API key."}};var ki={defaultModel:"grok-4.6",authTypes:["oauth","apiKey"],models:[{id:"grok-4.6",label:"Grok 4.6",pricing:{input:2,output:6,cacheRead:0.5,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:500000,maxOutputTokens:128000}},{id:"grok-4.5",label:"Grok 4.5",pricing:{input:2,output:6,cacheRead:0.3,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:500000,maxOutputTokens:128000}},{id:"grok-4.3",label:"Grok 4.3",pricing:{input:1.25,output:2.5,cacheRead:0.2,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"grok-4.20-0309-reasoning",label:"Grok 4.20 \u2014 reasoning",pricing:{input:1.25,output:2.5,cacheRead:0.2,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"grok-4.20-0309-non-reasoning",label:"Grok 4.20 \u2014 non-reasoning",pricing:{input:1.25,output:2.5,cacheRead:0.2,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"grok-4.20-multi-agent-0309",label:"Grok 4.20 \u2014 multi-agent",pricing:{input:1.25,output:2.5,cacheRead:0.2,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:128000}}]};var Ei={id:"grok",capabilities:{tools:!0,images:!0,reasoning:!0},writeOverInput:{fiveMinute:0,oneHour:0},catalog:ki,modelPrefixes:["grok-"],callback:{uri:"http://127.0.0.1:56121/callback",label:"Grok"},presentation:{label:"Grok",order:5,tone:"yellow",colour:{light:"oklch(0.52 0.14 125)",dark:"oklch(0.74 0.14 125)"},pasteHint:"Authorize in the browser. When it redirects to 127.0.0.1, paste the whole URL."}};var vi={defaultModel:"anthropic/claude-sonnet-5",authTypes:["oauth","apiKey"],models:[{id:"anthropic/claude-fable-5",label:"Claude Fable 5",pricing:{input:10,output:50,cacheRead:1,cacheWrite5m:12.5,cacheWrite1h:12.5},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"anthropic/claude-opus-5",label:"Claude Opus 5",pricing:{input:5,output:25,cacheRead:0.5,cacheWrite5m:6.25,cacheWrite1h:6.25},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"anthropic/claude-sonnet-5",label:"Claude Sonnet 5",pricing:{input:2,output:10,cacheRead:0.2,cacheWrite5m:2.5,cacheWrite1h:2.5},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"anthropic/claude-haiku-4.5",label:"Claude Haiku 4.5",pricing:{input:1,output:5,cacheRead:0.1,cacheWrite5m:1.25,cacheWrite1h:1.25},limits:{contextWindow:200000,maxOutputTokens:64000}},{id:"openai/gpt-5.6-sol",label:"GPT-5.6 Sol",pricing:{input:5,output:30,cacheRead:0.5,cacheWrite5m:6.25,cacheWrite1h:6.25},limits:{contextWindow:1050000,maxOutputTokens:128000}},{id:"openai/gpt-5.6-terra",label:"GPT-5.6 Terra",pricing:{input:2,output:12,cacheRead:0.2,cacheWrite5m:2.5,cacheWrite1h:2.5},limits:{contextWindow:1050000,maxOutputTokens:128000}},{id:"openai/gpt-5.6-luna",label:"GPT-5.6 Luna",pricing:{input:0.2,output:1.2,cacheRead:0.02,cacheWrite5m:0.25,cacheWrite1h:0.25},limits:{contextWindow:1050000,maxOutputTokens:128000}},{id:"google/gemini-3.1-pro-preview",label:"Gemini 3.1 Pro Preview",pricing:{input:2,output:12,cacheRead:0.2,cacheWrite5m:0.375,cacheWrite1h:0.375},limits:{contextWindow:1048576,maxOutputTokens:65536}},{id:"google/gemini-3.7-flash",label:"Gemini 3.7 Flash",pricing:{input:0.75,output:3.75,cacheRead:0.075,cacheWrite5m:0.041667,cacheWrite1h:0.041667},limits:{contextWindow:1048576,maxOutputTokens:65536}},{id:"moonshotai/kimi-k3",label:"Kimi K3",pricing:{input:3,output:15,cacheRead:0.3,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1048576,maxOutputTokens:131072}},{id:"nvidia/nemotron-3-ultra-550b-a55b:free",label:"Nemotron 3 Ultra 550B \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:65536},auth:["apiKey"]},{id:"nvidia/nemotron-3.5-lightning:free",label:"Nemotron 3.5 Lightning \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:65536},auth:["apiKey"]},{id:"dots-studio/dots-3-note-preview:free",label:"Dots 3 Note Preview \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:512000,maxOutputTokens:512000},auth:["apiKey"]},{id:"cohere/north-mini-code:free",label:"North Mini Code \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:256000,maxOutputTokens:64000},auth:["apiKey"]},{id:"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",label:"Nemotron 3 Nano Omni 30B Reasoning \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:256000,maxOutputTokens:65536},auth:["apiKey"]},{id:"stepfun/step-3.7-flash:free",label:"Step 3.7 Flash \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:262144},auth:["apiKey"]},{id:"nvidia/nemotron-3-super-120b-a12b:free",label:"Nemotron 3 Super 120B \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:262144},auth:["apiKey"]},{id:"tencent/hy3:free",label:"Tencent HY3 \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:128000},auth:["apiKey"]},{id:"poolside/laguna-s-2.1:free",label:"Laguna S 2.1 \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:32768},auth:["apiKey"]},{id:"poolside/laguna-xs-2.1:free",label:"Laguna XS 2.1 \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:32768},auth:["apiKey"]},{id:"liquid/lfm-2.5-2.6b:free",label:"LFM 2.5 2.6B \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:128000,maxOutputTokens:8192},auth:["apiKey"]},{id:"nvidia/nemotron-3.5-content-safety:free",label:"Nemotron 3.5 Content Safety \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:128000,maxOutputTokens:8192},auth:["apiKey"]},{id:"kilo-auto/frontier",label:"Kilo Auto \u2014 Frontier",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:128000},auth:["apiKey"]},{id:"kilo-auto/balanced",label:"Kilo Auto \u2014 Balanced",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:65536},auth:["apiKey"]},{id:"kilo-auto/efficient",label:"Kilo Auto \u2014 Efficient",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:65536},auth:["apiKey"]},{id:"kilo-auto/small",label:"Kilo Auto \u2014 Small",pricing:{input:0.05,output:0.4,cacheRead:0.005,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:32768},auth:["apiKey"]},{id:"kilo-auto/free",label:"Kilo Auto \u2014 Free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:256000,maxOutputTokens:1e4},auth:["apiKey"]}]};var Ti={id:"kilo",capabilities:{tools:!0,images:!0,reasoning:!0},writeOverInput:{fiveMinute:0,oneHour:0},catalog:vi,modelPrefixes:[],presentation:{label:"Kilo",order:4,tone:"orange",colour:{light:"oklch(0.52 0.14 224)",dark:"oklch(0.74 0.14 224)"},pasteHint:"Approve the code on Kilo's device page. This dialog finishes on its own."}};var Ri={defaultModel:"k3-256k",authTypes:["oauth","apiKey"],models:[{id:"k3-256k",label:"Kimi K3 \u2014 256K",pricing:{input:3,output:15,cacheRead:0.3,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:131072}},{id:"k3",label:"Kimi K3 \u2014 up to 1M",pricing:{input:3,output:15,cacheRead:0.3,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1048576,maxOutputTokens:131072}},{id:"kimi-for-coding",label:"Kimi K2.7 Code",pricing:{input:0.95,output:4,cacheRead:0.19,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:131072}},{id:"kimi-for-coding-highspeed",label:"Kimi K2.7 Code \u2014 High Speed",pricing:{input:0.95,output:8,cacheRead:0.19,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:131072}}]};var Si={id:"kimi",capabilities:{tools:!0,images:!1,reasoning:!1},writeOverInput:{fiveMinute:0,oneHour:0},catalog:Ri,modelPrefixes:["kimi-","moonshot"],presentation:{label:"Kimi",order:3,tone:"blue",colour:{light:"oklch(0.53 0.17 330)",dark:"oklch(0.72 0.16 330)"},pasteHint:"Enter the code on Kimi's device page. This dialog finishes on its own."}};var xi={defaultModel:"muse-spark-1.3",authTypes:["oauth","apiKey"],models:[{id:"muse-spark-1.3",label:"Muse Spark 1.3",pricing:{input:1.25,output:4.25,cacheRead:0.15,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1048576,maxOutputTokens:943718}},{id:"muse-spark-1.3-contributor",label:"Muse Spark 1.3 \u2014 Meta trains on this traffic",pricing:{input:0.1,output:0.2,cacheRead:0.002,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1048576,maxOutputTokens:943718}},{id:"muse-spark-1.2",label:"Muse Spark 1.2",pricing:{input:1.25,output:4.25,cacheRead:0.15,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1048576,maxOutputTokens:943718}},{id:"muse-spark-1.2-contributor",label:"Muse Spark 1.2 \u2014 Meta trains on this traffic",pricing:{input:0.1,output:0.2,cacheRead:0.002,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1048576,maxOutputTokens:943718}}]};var Ai={id:"muse",capabilities:{tools:!0,images:!0,reasoning:!0},writeOverInput:{fiveMinute:0,oneHour:0},catalog:xi,modelPrefixes:["muse-","muse-spark"],presentation:{label:"Muse",order:7,tone:"azure",colour:{light:"oklch(0.55 0.23 262)",dark:"oklch(0.72 0.17 262)"},pasteHint:"Enter the code on Meta's device page. This dialog finishes on its own."}};var Ci={defaultModel:"gpt-6.1-sol",authTypes:["oauth","apiKey"],models:[{id:"gpt-6-astra",label:"GPT-6 Astra",pricing:{input:10,output:50,cacheRead:1,cacheWrite5m:12.5,cacheWrite1h:0},limits:{contextWindow:922000,maxOutputTokens:128000},oauthLimits:{contextWindow:272000,maxOutputTokens:128000}},{id:"gpt-6.1-sol",label:"GPT-6.1 Sol",pricing:{input:2,output:10,cacheRead:0.1,cacheWrite5m:2.5,cacheWrite1h:0},limits:{contextWindow:922000,maxOutputTokens:128000},oauthLimits:{contextWindow:272000,maxOutputTokens:128000}},{id:"gpt-6-sol",label:"GPT-6 Sol",pricing:{input:2,output:10,cacheRead:0.2,cacheWrite5m:2.5,cacheWrite1h:0},limits:{contextWindow:922000,maxOutputTokens:128000},oauthLimits:{contextWindow:272000,maxOutputTokens:128000}},{id:"gpt-6-luna",label:"GPT-6 Luna",pricing:{input:0.1,output:0.5,cacheRead:0.01,cacheWrite5m:0.125,cacheWrite1h:0},limits:{contextWindow:922000,maxOutputTokens:128000},oauthLimits:{contextWindow:272000,maxOutputTokens:128000}},{id:"gpt-5.6",label:"GPT-5.6 \u2014 routes to Sol",pricing:{input:4,output:20,cacheRead:0.4,cacheWrite5m:5,cacheWrite1h:0},limits:{contextWindow:922000,maxOutputTokens:128000},oauthLimits:{contextWindow:272000,maxOutputTokens:128000}},{id:"gpt-5.6-sol",label:"GPT-5.6 Sol",pricing:{input:4,output:20,cacheRead:0.4,cacheWrite5m:5,cacheWrite1h:0},limits:{contextWindow:922000,maxOutputTokens:128000},oauthLimits:{contextWindow:272000,maxOutputTokens:128000}},{id:"gpt-5.6-terra",label:"GPT-5.6 Terra",pricing:{input:2,output:12,cacheRead:0.2,cacheWrite5m:2.5,cacheWrite1h:0},limits:{contextWindow:922000,maxOutputTokens:128000},oauthLimits:{contextWindow:272000,maxOutputTokens:128000}},{id:"gpt-5.6-luna",label:"GPT-5.6 Luna",pricing:{input:0.2,output:1.2,cacheRead:0.02,cacheWrite5m:0.25,cacheWrite1h:0},limits:{contextWindow:922000,maxOutputTokens:128000},oauthLimits:{contextWindow:272000,maxOutputTokens:128000}}]};var Oi={id:"openai",capabilities:{tools:!0,images:!0,reasoning:!0},writeOverInput:{fiveMinute:0,oneHour:0},catalog:Ci,modelPrefixes:["gpt-","o1","o3","o4"],callback:{uri:"http://localhost:1455/auth/callback",label:"OpenAI"},presentation:{label:"OpenAI",order:2,tone:"green",colour:{light:"oklch(0.5 0.09 190)",dark:"oklch(0.76 0.1 190)"},pasteHint:"Authorize in the browser. When it redirects to localhost, paste the whole URL."}};var an=/^[a-z][a-z0-9-]{0,31}$/;function $u(e){return typeof e==="string"&&an.test(e)}var M={anthropic:gi,openai:Oi,kimi:Si,kilo:Ti,grok:Ei,antigravity:_i,muse:Ai,custom:bi};Object.setPrototypeOf(M,null);var c_=Object.keys(M);var d_=16,l_=new Set(["1","true","yes","on"]),p_=/^\d+$/,IA=/^-?\d+$/;function Fu(e,t){return e?.trim()||t}function Bu(e){let t=e.OMNI_ENCRYPTION_KEY;if(typeof t!=="string"||t.length<d_)throw Error(`OMNI_ENCRYPTION_KEY must be set to at least ${d_} characters. Generate one with: openssl rand -base64 32`);let n=Fu(e.OMNI_HOST,"127.0.0.1"),r=e.OMNI_PORT??"9000",o=Number(r);if(!p_.test(r)||!Number.isInteger(o)||o<1||o>65535)throw Error(`OMNI_PORT must be an integer between 1 and 65535, got "${r}"`);let i=`http://${n}:${o}`,s=Fu(e.OMNI_BASE_URL,i).replace(/\/+$/,"")||i,a=e.OMNI_STATIC_DIR?.trim(),c=e.OMNI_LOG_FILE?.trim(),u=l_.has((e.OMNI_CLUSTER_MODE??"").trim().toLowerCase()),d=e.OMNI_DATABASE_URL?.trim()||void 0,p=e.OMNI_REDIS_URL?.trim()||void 0;if(u){if(d===void 0||!d.startsWith("postgres"))throw Error("OMNI_CLUSTER_MODE=true needs OMNI_DATABASE_URL to be a postgres:// URL");if(p===void 0)throw Error("OMNI_CLUSTER_MODE=true needs OMNI_REDIS_URL")}else if(d!==void 0||p!==void 0)throw Error("OMNI_DATABASE_URL and OMNI_REDIS_URL are cluster-mode settings; set OMNI_CLUSTER_MODE=true or unset them");let l=e.OMNI_DAY_OFFSET_MINUTES?.trim(),m=l===void 0?NaN:Number(l),g=l!==void 0&&IA.test(l)&&Number.isInteger(m)&&m>=-1440&&m<=1440,h=g?m:et(),f=l!==void 0&&!g?l:null,y=l_.has((e.OMNI_BODY_LOGGING_ALLOWED??"").trim().toLowerCase()),_=e.OMNI_LOG_LEVEL?.trim(),b=Xo(_),k=e.OMNI_METRICS_TOKEN?.trim()||null,E=e.OMNI_METRICS_MAX_SERIES??"5000",T=Number(E);if(!p_.test(E)||T<1)throw Error(`OMNI_METRICS_MAX_SERIES must be a positive integer, got "${E}"`);let I=e.OMNI_OTLP_ENDPOINT?.trim().replace(/\/+$/,"")||null,re=e.OMNI_OTLP_HEADERS?.trim()||null,Qe=e.OMNI_TRACE_SAMPLE??"1.0",W=Number(Qe);if(!Number.isFinite(W)||W<0||W>1)throw Error(`OMNI_TRACE_SAMPLE must be between 0 and 1, got "${Qe}"`);return{logLevel:b??"info",logLevelFallbackFrom:b===null&&_?_:null,port:o,host:n,databasePath:Fu(e.OMNI_DB_PATH,"./omnigateway.db"),encryptionKey:t,baseUrl:s,staticDir:a===void 0||a.length===0?null:a,bodyLoggingAllowed:y,logFile:c===void 0||c.length===0?null:c,clusterMode:u,databaseUrl:u?d??null:null,redisUrl:u?p??null:null,dayOffsetMinutes:h,dayOffsetFallbackFrom:f,metricsToken:k,metricsMaxSeries:T,otlpEndpoint:I,otlpHeaders:re,traceSample:W}}var Pi="oauth:pending:";function zu(e){let t=e.coord??Mt({now:e.now});return{async put(n){let r=Buffer.from(crypto.getRandomValues(new Uint8Array(32))).toString("base64url");return await t.kv.set(Pi+r,JSON.stringify(n),e.ttlMs),r},async take(n){let r=await t.kv.get(Pi+n);if(r===null)return null;return await t.kv.del(Pi+n),JSON.parse(r)},async peek(n){let r=await t.kv.get(Pi+n);return r===null?null:JSON.parse(r)}}}function LA(e){if(e===401||e===403)return"AUTH";if(e===402)return"QUOTA_EXHAUSTED";if(e===404)return"MODEL_UNAVAILABLE";if(e===413||e===422||e===400)return"BAD_REQUEST";if(e===429)return"RATE_LIMIT";if(e===529)return"OVERLOADED";if(e>=500)return"UPSTREAM";return"UPSTREAM"}function m_(e,t){if(e===null)return;let n=Number(e);if(Number.isFinite(n))return Math.max(0,n*1000);let r=Date.parse(e);return Number.isNaN(r)?void 0:Math.max(0,r-t)}async function qu(e,t,n=Date.now()){let r=await e.text().catch(()=>""),o=r.slice(0,500),i=LA(e.status);try{let a=JSON.parse(r);if(typeof a.error?.message==="string")o=a.error.message.slice(0,500);else if(typeof a.detail==="string")o=a.detail.slice(0,500);let c=a.error?.type??a.error?.code;if(c==="overloaded_error")i="OVERLOADED";else if(c==="insufficient_quota")i="QUOTA_EXHAUSTED";else if(c==="context_length_exceeded")i="BAD_REQUEST";else if(c==="content_policy_violation")i="CONTENT_FILTER"}catch{}let s=m_(e.headers.get("retry-after"),n);return new w(i,o||`${t} returned ${e.status}`,{provider:t,status:e.status,...s===void 0?{}:{retryAfterMs:s}})}function xr(e,t){let n;try{n=new URL(e)}catch{return!1}return t.some((r)=>{try{return new URL(r).origin===n.origin}catch{return!1}})}function Ar(e){if(typeof e!=="string")return!1;try{let t=new URL(e);return t.protocol==="https:"||t.protocol==="http:"}catch{return!1}}var NA=new Set(["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"]);function Cr(e){return typeof e==="string"&&NA.has(e)}function Ln(e,t,n){return new w("UPSTREAM",`${e} codec ${t} ${n}`,{provider:e,gatewayAuthored:!0})}function DA(e,t,n){let r=(u)=>e.filter(([d])=>d.toLowerCase()===u),o=r("content-length"),i=r("content-encoding");if(n!==void 0)return o.length===0&&i.length===1&&i[0]?.[1].trim().toLowerCase()===n;if(o.length>1||i.length>1)return!1;let s=o[0]?.[1],a=new TextEncoder().encode(t).byteLength;if(s!==void 0&&s!==String(a))return!1;let c=i[0]?.[1];return c===void 0||c.trim().toLowerCase()==="identity"}function Ii(e){if(!Array.isArray(e))return[];return e.filter((t)=>typeof t==="string").slice(0,16).map((t)=>t.slice(0,64))}function f_(e,t){return new w(t.code,t.message,{provider:e,...t.upstreamStatus===void 0?{}:{status:t.upstreamStatus},...t.retryAfterMs===void 0?{}:{retryAfterMs:t.retryAfterMs},degradations:Ii(t.degradations),cause:t})}function UA(e){return e instanceof Error&&e.name==="GatewayError"}function Hu(e,t,n){try{return n()}catch(r){if(!(r instanceof w)&&UA(r))throw Ln(e,t,"threw a GatewayError from its own bundled copy, whose classification the host cannot trust; build the error with input.fail() instead");if(r instanceof w)throw f_(e,r);throw Ln(e,t,"threw")}}async function*MA(e,t){try{yield*t}catch(n){if(n instanceof w)throw n;throw Ln(e,"decode","threw")}}function de(e,t,n,r){return{id:e,capabilities:t,async send(o){let i=(m,g,h)=>new w(m,g,{provider:e,...h?.status===void 0?{}:{status:h.status},...h?.retryAfterMs===void 0?{}:{retryAfterMs:h.retryAfterMs},degradations:Ii(h?.degradations)}),s=Hu(e,"buildRequest",()=>n.buildRequest({request:o.request,model:o.model,credentials:o.credentials,fail:i,...o.requestId===void 0?{}:{requestId:o.requestId},...o.autoCache===void 0?{}:{autoCacheEnabled:o.autoCache},...o.maxOutputTokens===void 0?{}:{maxOutputTokens:o.maxOutputTokens},...o.requestStartedAt===void 0?{}:{requestStartedAt:o.requestStartedAt}})),a=s?.request??{},c={url:a.url,method:a.method,headers:Array.isArray(a.headers)?[...a.headers]:a.headers,body:a.body,bodyEncoding:a.bodyEncoding};if(typeof c.body!=="string"||c.bodyEncoding!==void 0&&c.bodyEncoding!=="zstd"||!Ar(c.url)||!Cr(c.method)||!Array.isArray(c.headers)||!c.headers.every((m)=>Array.isArray(m)&&m.length===2&&typeof m[0]==="string"&&typeof m[1]==="string")||!DA(c.headers,c.body,c.bodyEncoding))throw Ln(e,"buildRequest","did not return a usable request");let u={url:c.url,method:c.method,headers:c.headers,body:c.body,...c.bodyEncoding==="zstd"?{bodyEncoding:c.bodyEncoding}:{}};if(r!==void 0&&!xr(c.url,r))throw Ln(e,"buildRequest","described a request to an origin its manifest does not declare");let d=await o.http({provider:e,...u,signal:o.signal,...o.requestId===void 0?{}:{requestId:o.requestId}});if(d.status<200||d.status>=300){let m=await d.text().catch(()=>""),g=await qu({status:d.status,headers:d.headers,body:null,text:async()=>m},e);Object.freeze(g.degradations),Object.freeze(g);let h=Hu(e,"classifyError",()=>n.classifyError?.({status:d.status,body:m,headers:d.headers,fallback:g,fail:i,degradations:Ii(s.degradations),decodeState:s.decodeState}));if(h!==void 0){if(!(h instanceof w))throw Ln(e,"classifyError","returned something that is not an error");throw f_(e,h)}throw g}let p=d.body;if(p===null)throw new w("UPSTREAM","empty response body",{provider:e,gatewayAuthored:!0});let l=s.cloakedTools;return{events:MA(e,Hu(e,"decode",()=>n.decode({body:p,decodeState:s.decodeState,headers:d.headers,fail:i}))),degradations:Ii(s.degradations),...Number.isInteger(l)&&(l??0)>=0?{cloakedTools:l}:{}}}}}import{createHash as WA}from"crypto";var Wu=/^[\x20-\x7E]{1,200}$/;function G(e,t){let n=Bun.env[e];if(typeof n!=="string"||n.length===0)return t;return Wu.test(n)?n:t}function ju(e){let t=Bun.env[e];if(typeof t!=="string"||t.length===0)return null;return Wu.test(t)?t:null}function Ie(e,t){let n=Bun.env[e];if(typeof n!=="string"||n.length===0)return t;let r=n.split(",").map((o)=>o.trim()).filter((o)=>o.length>0&&Wu.test(o));return r.length>0?r:t}function Ku(e,t){return{os:e==="darwin"?"MacOS":e==="linux"?"Linux":e==="win32"?"Windows":"Unknown",arch:t}}function Gu(e,t){return{os:e.toLowerCase(),arch:t==="arm64"?"aarch64":t}}function fe(e,t){let n=[...e],r=[];for(let o of t){let i=o.toLowerCase(),s=n.findIndex(([a])=>a.toLowerCase()===i);if(s!==-1)r.push(...n.splice(s,1))}return r.push(...n),r}function ge(e,t){let n=[...e];for(let[r,o]of t){let i=r.toLowerCase(),s=n.findIndex(([a])=>a.toLowerCase()===i);if(s===-1)n.push([r,o]);else n[s]=[r,o]}return n}var g_=Ku(process.platform,process.arch),un=G("OMNI_ANTHROPIC_CLI_VERSION","2.1.296"),je={headers:[["User-Agent",G("OMNI_UA_ANTHROPIC",`claude-cli/${un} (external, cli)`)],["x-app","cli"],["anthropic-dangerous-direct-browser-access","true"],["X-Stainless-Lang","js"],["X-Stainless-Package-Version",G("OMNI_ANTHROPIC_STAINLESS_PACKAGE_VERSION","0.128.0")],["X-Stainless-OS",ju("OMNI_ANTHROPIC_STAINLESS_OS")??g_.os],["X-Stainless-Arch",ju("OMNI_ANTHROPIC_STAINLESS_ARCH")??g_.arch],["X-Stainless-Runtime","node"],["X-Stainless-Runtime-Version",G("OMNI_ANTHROPIC_STAINLESS_RUNTIME_VERSION","v26.3.0")],["X-Stainless-Retry-Count","0"],["Accept","application/json"]],order:Ie("OMNI_ORDER_ANTHROPIC",["Accept","Authorization","Content-Type","User-Agent","X-Stainless-Arch","X-Stainless-Lang","X-Stainless-OS","X-Stainless-Package-Version","X-Stainless-Retry-Count","X-Stainless-Runtime","X-Stainless-Runtime-Version","X-Stainless-Timeout","anthropic-beta","anthropic-dangerous-direct-browser-access","anthropic-version","x-api-key","x-app","Connection","Host","Accept-Encoding","Content-Length"])},Li=["model","messages","system","tools","tool_choice","metadata","max_tokens","temperature","thinking","context_management","output_config","stream"];var $A=G("OMNI_ANTIGRAVITY_IDE_VERSION","2.12.2"),FA="darwin/arm64",nt={headers:[["User-Agent",G("OMNI_UA_ANTIGRAVITY",`antigravity/ide/${$A} ${FA}`)],["Content-Type","application/json"],["Accept","text/event-stream"]],order:Ie("OMNI_ORDER_ANTIGRAVITY",["Host","Content-Type","Authorization","User-Agent","X-Goog-Api-Client","Accept","Accept-Encoding","Content-Length"])},h_=["project","requestId","model","userAgent","requestType","request"];var Zu={headers:[],order:[]},y_=[];var __=G("OMNI_GROK_CLI_VERSION","0.2.120"),w_=Gu(process.platform,process.arch),Ct={headers:[["User-Agent",G("OMNI_UA_GROK",`grok-shell/${__} (${w_.os}; ${w_.arch})`)],["x-grok-client-identifier","grok-shell"],["x-grok-client-version",__],["x-grok-client-mode","headless"],["Accept","text/event-stream"]],order:Ie("OMNI_ORDER_GROK",["Host","Content-Type","Authorization","X-XAI-Token-Auth","x-authenticateresponse","x-grok-client-identifier","x-grok-client-version","x-grok-client-mode","x-grok-agent-id","x-grok-req-id","x-grok-conv-id","x-grok-session-id","x-grok-model-override","User-Agent","Accept","Accept-Encoding","Content-Length"])},Ni=["model","stream","input","instructions","store","reasoning","prompt_cache_key","tools","tool_choice","include","service_tier","client_metadata","parallel_tool_calls","metadata"];var BA=G("OMNI_KILO_CLI_VERSION","4.140.0"),ft={headers:[["User-Agent",G("OMNI_UA_KILO",`Kilo-Code/${BA}`)],["X-KILOCODE-EDITORNAME",G("OMNI_KILO_EDITOR_NAME","vscode")],["Accept","text/event-stream"]],order:Ie("OMNI_ORDER_KILO",["Host","Content-Type","Authorization","X-Kilocode-OrganizationID","X-KILOCODE-EDITORNAME","User-Agent","Accept","Accept-Encoding","Content-Length"])},Di=["model","messages","tools","tool_choice","max_tokens","temperature","reasoning","stream"];var b_=G("OMNI_KIMI_CLI_VERSION","0.26.0"),Ot={headers:[["User-Agent",G("OMNI_UA_KIMI",`kimi-code-cli/${b_}`)],["X-Msh-Platform","kimi_code_cli"],["X-Msh-Version",b_],["Accept","application/json"]],order:Ie("OMNI_ORDER_KIMI",["Host","Content-Type","Authorization","X-Msh-Platform","X-Msh-Version","X-Msh-Device-Id","X-Msh-Device-Name","X-Msh-Device-Model","X-Msh-Os-Version","User-Agent","Accept","Accept-Encoding","Content-Length"])},Ui=["model","messages","tools","tool_choice","max_tokens","temperature","stream"];var zA=G("OMNI_MUSE_CLI_VERSION","1.0.3"),gt={headers:[["User-Agent",G("OMNI_UA_MUSE",`muse-code/${zA}`)],["x-api-version",G("OMNI_MUSE_API_VERSION","1.0.0")],["Accept","text/event-stream"]],order:Ie("OMNI_ORDER_MUSE",["Host","Content-Type","Authorization","x-meta-ai-gateway-session-id","x-api-version","Accept","User-Agent","Accept-Encoding","Content-Length"])},Mi=["model","stream","input","instructions","store","reasoning","prompt_cache_key","max_output_tokens","temperature","tools","tool_choice","include","parallel_tool_calls","metadata"];var Xu=G("OMNI_OPENAI_CLI_VERSION","0.163.0"),Vu=G("OMNI_OPENAI_UA_PLATFORM","Windows 10.0.26200"),qA=G("OMNI_OPENAI_UA_ARCH","x86_64"),HA=G("OMNI_OPENAI_UA_TERMINAL","WindowsTerminal"),Or=G("OMNI_OPENAI_ORIGINATOR","codex-tui"),k_=Vu.startsWith("Windows")?"windows_elevated":/^(Mac OS|macOS)/.test(Vu)?"seatbelt":"seccomp",rt={headers:[["user-agent",G("OMNI_UA_OPENAI",`${Or}/${Xu} (${Vu}; ${qA}) ${HA} (${Or}; ${Xu})`)],["originator",Or],["version",Xu],["x-codex-beta-features","remote_compaction_v2"],["accept","text/event-stream"]],order:Ie("OMNI_ORDER_OPENAI",["version","x-codex-beta-features","x-codex-window-id","x-codex-turn-metadata","x-openai-internal-codex-responses-lite","x-codex-routing-hint","x-client-request-id","session-id","thread-id","accept","content-encoding","content-type","authorization","chatgpt-account-id","originator","user-agent","host","content-length"])},$i=["model","stream","service_tier","input","instructions","tools","tool_choice","parallel_tool_calls","reasoning","store","stream_options","include","prompt_cache_key","text","client_metadata","access_programs","metadata"];var Qu={anthropic:Li,openai:$i,kimi:Ui,kilo:Di,grok:Ni,antigravity:h_,muse:Mi,custom:y_};Object.setPrototypeOf(Qu,null);function Ke(e,t){let n={},r=new Set;for(let o of t)if(Object.hasOwn(e,o))n[o]=e[o],r.add(o);for(let o of Object.keys(e))if(!r.has(o))n[o]=e[o];return n}var E_="00000",jA=0x6e52736ac806831en,KA=0xfffffn,GA="59cf53e54c78",Pr="x-anthropic-billing-header:",Fi="You are a Claude agent, built on Anthropic's Claude Agent SDK.";function ZA(e){let t=[4,7,20].map((n)=>e[n]??"0").join("");return WA("sha256").update(`${GA}${t}${un}`).digest("hex").slice(0,3)}function XA(e){return`${Pr} cc_version=${un}.${ZA(e)}; cc_entrypoint=cli; cch=${E_};`}var VA=["github.com/anomalyco/opencode","opencode.ai/docs","github.com/cline/cline","github.com/getcursor/cursor","continue.dev","hermes-agent.nousresearch.com"],QA=["You are OpenCode","You are Hermes Agent"],YA=[["if OpenCode honestly","if the assistant honestly"],["Here is some useful information about the environment you are running in:","Environment context you are running in:"]];function v_(e,t){let n=[];for(let r of e){let i=r.text.split(/\n{2,}/).filter((s)=>!VA.some((a)=>s.includes(a))).filter((s)=>!QA.some((a)=>s.trimStart().startsWith(a))).filter((s)=>!s.includes(Pr)).filter((s)=>s.trim()!==Fi).join(`
|
|
1652
|
+
GROUP BY key${c===null?"":", split"}
|
|
1653
|
+
ORDER BY requests DESC`).all(...m).map((f)=>{let y={key:n_(f.key),requests:f.requests,inputTokens:f.input_tokens,outputTokens:f.output_tokens,cacheReadTokens:f.cache_read_tokens,cacheWriteTokens:f.cache_write_tokens,rtkSavedTokens:f.rtk_saved_tokens,rtkAppliedRequests:f.rtk_applied_requests,costUsd:f.cost_usd,errors:f.errors,durationMsSum:f.duration_ms_sum};return c===null?y:{...y,split:n_(f.split)}})},async prune(i){return o(i)},async pruneDaily(i){return e.run("DELETE FROM usage_daily WHERE day < ?",[i]),e.query("SELECT changes() AS n").get()?.n??0}}}async function fi(e){let t=e.logger??se,n=e.nodeId??crypto.randomUUID(),r=e.dayOffsetMinutes??et(),o=new Set,i=(d)=>{for(let p of o)try{p(d)}catch{}},s=()=>{let d=Su(e.path,r);return t.debug("store opened",{path:e.path}),{db:d,credentials:Ru(d,e.encryptionKey,i),config:Tu(d,i),keys:Ou(d,t),usage:Nu(d,n,r),bodies:ku(d,e.encryptionKey,yr(e.path)),maintenance:Pu(d,n),plugins:Iu(d)}},a=s(),u=!0,c=()=>{if(!u)return;a.db.close(),u=!1};return{engine:"sqlite",databasePath:e.path,credentials:{list:()=>a.credentials.list(),listRouting:()=>a.credentials.listRouting(),get:(d)=>a.credentials.get(d),create:(d)=>a.credentials.create(d),update:(d,p)=>a.credentials.update(d,p),updateSecrets:(d,p,l,m)=>a.credentials.updateSecrets(d,p,l,m),remove:(d)=>a.credentials.remove(d),listHealth:()=>a.credentials.listHealth(),updateHealth:(d,p,l)=>a.credentials.updateHealth(d,p,l),listQuota:()=>a.credentials.listQuota(),saveQuota:(d)=>a.credentials.saveQuota(d),listQuotaSamples:(d)=>a.credentials.listQuotaSamples(d),pruneQuotaSamples:(d)=>a.credentials.pruneQuotaSamples(d)},config:{listModels:()=>a.config.listModels(),putModel:(d)=>a.config.putModel(d),removeModel:(d)=>a.config.removeModel(d),getSettings:()=>a.config.getSettings(),putSettings:(d)=>a.config.putSettings(d),getAdminPasswordHash:()=>a.config.getAdminPasswordHash(),setAdminPasswordHashIfAbsent:(d)=>a.config.setAdminPasswordHashIfAbsent(d),setAdminPasswordHash:(d)=>a.config.setAdminPasswordHash(d),getViewerPasswordHash:()=>a.config.getViewerPasswordHash(),setViewerPasswordHash:(d)=>a.config.setViewerPasswordHash(d)},keys:{list:()=>a.keys.list(),findByHash:(d)=>a.keys.findByHash(d),get:(d)=>a.keys.get(d),create:(d)=>a.keys.create(d),importRow:(d)=>a.keys.importRow(d),setLimits:(d,p)=>a.keys.setLimits(d,p),setModelAllowlist:(d,p)=>a.keys.setModelAllowlist(d,p),setExpiry:(d,p)=>a.keys.setExpiry(d,p),setGuardrailPolicy:(d,p)=>a.keys.setGuardrailPolicy(d,p),revoke:(d)=>a.keys.revoke(d)},usage:{begin:(d)=>a.usage.begin(d),route:(d,p)=>a.usage.route(d,p),append:(d)=>a.usage.append(d),sweepPending:(d)=>a.usage.sweepPending(d),recent:(d,p)=>a.usage.recent(d,p),page:(d)=>a.usage.page(d),lastUsedByCredential:(d)=>a.usage.lastUsedByCredential(d),scan:(d,p)=>a.usage.scan(d,p),aggregate:(d)=>a.usage.aggregate(d),sumSince:(d,p,l)=>a.usage.sumSince(d,p,l),sumBuckets:(d,p,l,m)=>a.usage.sumBuckets(d,p,l,m),oldestSince:(d,p,l)=>a.usage.oldestSince(d,p,l),rebuildRollup:()=>a.usage.rebuildRollup(),auditRollup:()=>a.usage.auditRollup(),prune:(d)=>a.usage.prune(d),pruneDaily:(d)=>a.usage.pruneDaily(d)},bodies:{put:(d)=>a.bodies.put(d),get:(d)=>a.bodies.get(d),prune:(d)=>a.bodies.prune(d),pruneToCap:(d)=>a.bodies.pruneToCap(d),sweepOrphans:()=>a.bodies.sweepOrphans()},maintenance:{stats:()=>a.maintenance.stats(),tables:()=>a.maintenance.tables(),heartbeat:(d)=>a.maintenance.heartbeat(d),nodes:(d)=>a.maintenance.nodes(d),vacuum:()=>a.maintenance.vacuum(),snapshotTo:(d)=>a.maintenance.snapshotTo(d),inspect:(d)=>a.maintenance.inspect(d)},plugins:{migrate:(d,p)=>a.plugins.migrate(d,p),run:(d,p,l)=>a.plugins.run(d,p,l),all(d,p,l){return a.plugins.all(d,p,l)},get(d,p,l){return a.plugins.get(d,p,l)},transaction(d,p){return a.plugins.transaction(d,p)},listTables:(d)=>a.plugins.listTables(d),dropAll:(d)=>a.plugins.dropAll(d),orphanTables:(d)=>a.plugins.orphanTables(d)},routing:{version:()=>a.db.query("PRAGMA data_version").get()?.data_version??0,subscribe(d){return o.add(d),()=>o.delete(d)}},async reopen(){c(),a=s(),u=!0},close:c}}var At=12,Du={algorithm:"argon2id",memoryCost:19456,timeCost:2},gi="sess:";function s_(e,t){return`${gi}${e}:${new Bun.CryptoHasher("sha256").update(t).digest("hex")}`}function Tr(e,t){let n=t.coord??Mt({now:t.now}),r=async(c)=>{let d=Buffer.from(crypto.getRandomValues(new Uint8Array(32))).toString("base64url"),p={expiresAt:t.now()+t.sessionTtlMs,principal:c};return await n.kv.set(s_(c.kind,d),JSON.stringify(p),t.sessionTtlMs),d},o=(c)=>n.kv.delPrefix(`${gi}${c}:`),i=async(c)=>{for(let d of["admin","viewer","client"]){let p=s_(d,c),l=await n.kv.get(p);if(l!==null)return{key:p,session:JSON.parse(l)}}return null},s=async(c,d)=>{if(c===null)return!1;try{return await Bun.password.verify(d,c)}catch{return!1}},a=async(c)=>{let d=await e.keys.get(c);return d!==null&&wr(d,t.now())},u=async(c)=>{if(c.length<At)throw Error(`admin password must be at least ${At} characters`);await e.config.setAdminPasswordHash(await Bun.password.hash(c,Du)),await n.kv.delPrefix(gi)};return{async isConfigured(){return await e.config.getAdminPasswordHash()!==null},setPassword:u,async setInitialPassword(c){if(c.length<At)throw Error(`admin password must be at least ${At} characters`);return e.config.setAdminPasswordHashIfAbsent(await Bun.password.hash(c,Du))},async changePassword(c,d){if(d.length<At)throw Error(`admin password must be at least ${At} characters`);let p=await e.config.getAdminPasswordHash();if(!await s(p,c))return!1;return await u(d),!0},async login(c){let d=await e.config.getAdminPasswordHash();if(!await s(d,c))return null;return r({kind:"admin"})},async isViewerConfigured(){return await e.config.getViewerPasswordHash()!==null},async setViewerPassword(c){if(c!==null&&c.length<At)throw Error(`viewer password must be at least ${At} characters`);await e.config.setViewerPasswordHash(c===null?null:await Bun.password.hash(c,Du)),await o("viewer")},async loginViewer(c){let d=await e.config.getViewerPasswordHash();if(!await s(d,c))return null;return r({kind:"viewer"})},async loginClient(c){let d=await e.keys.findByHash(await vr(c));if(d===null||!wr(d,t.now()))return null;return r({kind:"client",apiKeyId:d.id})},async verify(c){let d=await i(c);if(d===null)return null;let{key:p,session:l}=d;if(l.expiresAt<=t.now())return await n.kv.del(p),null;if(l.principal.kind==="client"){if(!await a(l.principal.apiKeyId))return await n.kv.del(p),null}return l.principal},async logout(c){let d=await i(c);if(d!==null)await n.kv.del(d.key)},invalidateSessions(){return n.kv.delPrefix(gi)},invalidateKind(c){return o(c)}}}async function Uu(e,t){let n=await e.bodies.get(t);if(n===null)return{requestId:t,detailState:"none",truncated:!1,sizeBytes:0,at:null,artifact:null};return{requestId:n.row.requestId,detailState:n.row.detailState,truncated:n.row.truncated,sizeBytes:n.row.sizeBytes,at:n.row.at,artifact:n.artifact}}var Rr={defaultModel:"claude-opus-5-5",authTypes:["oauth","apiKey"],models:[{id:"claude-fable-5-1",label:"Claude Fable 5.1",pricing:{input:10,output:50,cacheRead:0.25,cacheWrite5m:12.5,cacheWrite1h:20},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"claude-opus-5-5",label:"Claude Opus 5.5",pricing:{input:4,output:20,cacheRead:0.2,cacheWrite5m:5,cacheWrite1h:8},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"claude-fable-5",label:"Claude Fable 5",pricing:{input:10,output:50,cacheRead:1,cacheWrite5m:12.5,cacheWrite1h:20},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"claude-opus-5",label:"Claude Opus 5",pricing:{input:5,output:25,cacheRead:0.5,cacheWrite5m:6.25,cacheWrite1h:10},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"claude-sonnet-5-5",label:"Claude Sonnet 5.5",pricing:{input:2,output:10,cacheRead:0.1,cacheWrite5m:2.5,cacheWrite1h:4},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"claude-sonnet-5",label:"Claude Sonnet 5",pricing:{input:2,output:10,cacheRead:0.2,cacheWrite5m:2.5,cacheWrite1h:4},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"claude-haiku-5-5",label:"Claude Haiku 5.5",pricing:{input:0.1,output:0.5,cacheRead:0.01,cacheWrite5m:0.125,cacheWrite1h:0.2},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"claude-haiku-4-5",label:"Claude Haiku 4.5",pricing:{input:1,output:5,cacheRead:0.1,cacheWrite5m:1.25,cacheWrite1h:2},limits:{contextWindow:200000,maxOutputTokens:64000},reasoningForm:"budget"}]};var CA=/-\d{8}$/;function a_(e){let t=e.trim();if(t.toLowerCase().endsWith("[1m]"))t=t.slice(0,-4).trim();return t=t.replace(CA,""),Rr.models.find((n)=>n.id===t)}function Mu(e){return a_(e)?.reasoningForm??"adaptive"}function u_(e){return a_(e)?.limits.maxOutputTokens}var hi={id:"anthropic",capabilities:{tools:!0,images:!0,reasoning:!0},writeOverInput:{fiveMinute:1.25,oneHour:2},catalog:Rr,modelPrefixes:["claude-"],presentation:{label:"Anthropic",order:1,tone:"magenta",colour:{light:"oklch(0.56 0.13 45)",dark:"oklch(0.74 0.12 48)"},pasteHint:"Authorize in the browser, then paste the code Anthropic shows you."}};var yi=65536;var me={cacheWrite5m:0,cacheWrite1h:0},PA={input:0,output:0,cacheRead:0,...me},Fe={contextWindow:1048576,maxOutputTokens:65536},Sr={contextWindow:1048576,maxOutputTokens:65535},_i={defaultModel:"gemini-3.8-flash-high",authTypes:["oauth"],models:[{id:"gemini-3.8-flash-high",label:"Gemini 3.8 Flash (High)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:Fe},{id:"gemini-3.8-flash-medium",label:"Gemini 3.8 Flash (Medium)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:Fe},{id:"gemini-3.8-flash-low",label:"Gemini 3.8 Flash (Low)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:Fe},{id:"gemini-3.7-flash-high",label:"Gemini 3.7 Flash (High)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:Fe},{id:"gemini-3.7-flash-medium",label:"Gemini 3.7 Flash (Medium)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:Fe},{id:"gemini-3.7-flash-low",label:"Gemini 3.7 Flash (Low)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:Fe},{id:"gemini-3.6-flash-high",label:"Gemini 3.6 Flash (High)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:Fe},{id:"gemini-3.6-flash-medium",label:"Gemini 3.6 Flash (Medium)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:Fe},{id:"gemini-3.6-flash-low",label:"Gemini 3.6 Flash (Low)",pricing:{input:1.5,output:7.5,cacheRead:0.15,...me},limits:Fe},{id:"gemini-3-flash-agent",label:"Gemini 3.5 Flash (High)",pricing:{input:1.5,output:9,cacheRead:0.15,...me},limits:Fe},{id:"gemini-3.5-flash-low",label:"Gemini 3.5 Flash (Medium)",pricing:{input:1.5,output:9,cacheRead:0.15,...me},limits:Fe},{id:"gemini-3.5-flash-extra-low",label:"Gemini 3.5 Flash (Low)",pricing:{input:1.5,output:9,cacheRead:0.15,...me},limits:Fe},{id:"gemini-3-flash",label:"Gemini 3 Flash",pricing:PA,limits:Fe},{id:"gemini-3.5-flash-lite",label:"Gemini 3.5 Flash Lite",pricing:{input:0.3,output:2.5,cacheRead:0.03,...me},limits:Sr},{id:"gemini-pro-agent",label:"Gemini 3.1 Pro (High)",pricing:{input:2,output:12,cacheRead:0.2,...me},limits:Sr},{id:"gemini-3.1-pro-low",label:"Gemini 3.1 Pro (Low)",pricing:{input:2,output:12,cacheRead:0.2,...me},limits:Sr},{id:"gemini-3.1-flash-lite",label:"Gemini 3.1 Flash Lite",pricing:{input:0.25,output:1.5,cacheRead:0.025,...me},limits:Sr},{id:"gemini-2.5-pro",label:"Gemini 2.5 Pro",pricing:{input:1.25,output:10,cacheRead:0.125,...me},limits:Sr}]};var wi={id:"antigravity",capabilities:{tools:!0,images:!0,reasoning:!0},writeOverInput:{fiveMinute:0,oneHour:0},catalog:_i,modelPrefixes:["gemini-"],callback:{uri:"https://antigravity.google/oauth-callback",label:"Antigravity"},presentation:{label:"Antigravity",order:6,tone:"violet",colour:{light:"oklch(0.52 0.14 277)",dark:"oklch(0.74 0.14 277)"},pasteHint:"Approve in any browser, then paste the whole URL it lands on. A code shown on its own works too."}};var bi={defaultModel:"",authTypes:["apiKey"],models:[]};var ki={id:"custom",capabilities:{tools:!0,images:!0,reasoning:!0},writeOverInput:{fiveMinute:0,oneHour:0},catalog:bi,modelPrefixes:[],presentation:{label:"OpenAI Compatible",order:8,tone:"cyan",colour:{light:"oklch(0.5 0.03 258)",dark:"oklch(0.72 0.03 258)"},pasteHint:"Enter endpoint metadata and API key."}};var Ei={defaultModel:"grok-4.6",authTypes:["oauth","apiKey"],models:[{id:"grok-4.6",label:"Grok 4.6",pricing:{input:2,output:6,cacheRead:0.5,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:500000,maxOutputTokens:128000}},{id:"grok-4.5",label:"Grok 4.5",pricing:{input:2,output:6,cacheRead:0.3,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:500000,maxOutputTokens:128000}},{id:"grok-4.3",label:"Grok 4.3",pricing:{input:1.25,output:2.5,cacheRead:0.2,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"grok-4.20-0309-reasoning",label:"Grok 4.20 \u2014 reasoning",pricing:{input:1.25,output:2.5,cacheRead:0.2,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"grok-4.20-0309-non-reasoning",label:"Grok 4.20 \u2014 non-reasoning",pricing:{input:1.25,output:2.5,cacheRead:0.2,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"grok-4.20-multi-agent-0309",label:"Grok 4.20 \u2014 multi-agent",pricing:{input:1.25,output:2.5,cacheRead:0.2,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:128000}}]};var vi={id:"grok",capabilities:{tools:!0,images:!0,reasoning:!0},writeOverInput:{fiveMinute:0,oneHour:0},catalog:Ei,modelPrefixes:["grok-"],callback:{uri:"http://127.0.0.1:56121/callback",label:"Grok"},presentation:{label:"Grok",order:5,tone:"yellow",colour:{light:"oklch(0.52 0.14 125)",dark:"oklch(0.74 0.14 125)"},pasteHint:"Authorize in the browser. When it redirects to 127.0.0.1, paste the whole URL."}};var Ti={defaultModel:"anthropic/claude-sonnet-5",authTypes:["oauth","apiKey"],models:[{id:"anthropic/claude-fable-5",label:"Claude Fable 5",pricing:{input:10,output:50,cacheRead:1,cacheWrite5m:12.5,cacheWrite1h:12.5},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"anthropic/claude-opus-5",label:"Claude Opus 5",pricing:{input:5,output:25,cacheRead:0.5,cacheWrite5m:6.25,cacheWrite1h:6.25},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"anthropic/claude-sonnet-5",label:"Claude Sonnet 5",pricing:{input:2,output:10,cacheRead:0.2,cacheWrite5m:2.5,cacheWrite1h:2.5},limits:{contextWindow:1e6,maxOutputTokens:128000}},{id:"anthropic/claude-haiku-4.5",label:"Claude Haiku 4.5",pricing:{input:1,output:5,cacheRead:0.1,cacheWrite5m:1.25,cacheWrite1h:1.25},limits:{contextWindow:200000,maxOutputTokens:64000}},{id:"openai/gpt-5.6-sol",label:"GPT-5.6 Sol",pricing:{input:5,output:30,cacheRead:0.5,cacheWrite5m:6.25,cacheWrite1h:6.25},limits:{contextWindow:1050000,maxOutputTokens:128000}},{id:"openai/gpt-5.6-terra",label:"GPT-5.6 Terra",pricing:{input:2,output:12,cacheRead:0.2,cacheWrite5m:2.5,cacheWrite1h:2.5},limits:{contextWindow:1050000,maxOutputTokens:128000}},{id:"openai/gpt-5.6-luna",label:"GPT-5.6 Luna",pricing:{input:0.2,output:1.2,cacheRead:0.02,cacheWrite5m:0.25,cacheWrite1h:0.25},limits:{contextWindow:1050000,maxOutputTokens:128000}},{id:"google/gemini-3.1-pro-preview",label:"Gemini 3.1 Pro Preview",pricing:{input:2,output:12,cacheRead:0.2,cacheWrite5m:0.375,cacheWrite1h:0.375},limits:{contextWindow:1048576,maxOutputTokens:65536}},{id:"google/gemini-3.7-flash",label:"Gemini 3.7 Flash",pricing:{input:0.75,output:3.75,cacheRead:0.075,cacheWrite5m:0.041667,cacheWrite1h:0.041667},limits:{contextWindow:1048576,maxOutputTokens:65536}},{id:"moonshotai/kimi-k3",label:"Kimi K3",pricing:{input:3,output:15,cacheRead:0.3,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1048576,maxOutputTokens:131072}},{id:"nvidia/nemotron-3-ultra-550b-a55b:free",label:"Nemotron 3 Ultra 550B \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:65536},auth:["apiKey"]},{id:"nvidia/nemotron-3.5-lightning:free",label:"Nemotron 3.5 Lightning \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:65536},auth:["apiKey"]},{id:"dots-studio/dots-3-note-preview:free",label:"Dots 3 Note Preview \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:512000,maxOutputTokens:512000},auth:["apiKey"]},{id:"cohere/north-mini-code:free",label:"North Mini Code \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:256000,maxOutputTokens:64000},auth:["apiKey"]},{id:"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",label:"Nemotron 3 Nano Omni 30B Reasoning \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:256000,maxOutputTokens:65536},auth:["apiKey"]},{id:"stepfun/step-3.7-flash:free",label:"Step 3.7 Flash \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:262144},auth:["apiKey"]},{id:"nvidia/nemotron-3-super-120b-a12b:free",label:"Nemotron 3 Super 120B \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:262144},auth:["apiKey"]},{id:"tencent/hy3:free",label:"Tencent HY3 \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:128000},auth:["apiKey"]},{id:"poolside/laguna-s-2.1:free",label:"Laguna S 2.1 \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:32768},auth:["apiKey"]},{id:"poolside/laguna-xs-2.1:free",label:"Laguna XS 2.1 \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:32768},auth:["apiKey"]},{id:"liquid/lfm-2.5-2.6b:free",label:"LFM 2.5 2.6B \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:128000,maxOutputTokens:8192},auth:["apiKey"]},{id:"nvidia/nemotron-3.5-content-safety:free",label:"Nemotron 3.5 Content Safety \u2014 free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:128000,maxOutputTokens:8192},auth:["apiKey"]},{id:"kilo-auto/frontier",label:"Kilo Auto \u2014 Frontier",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:128000},auth:["apiKey"]},{id:"kilo-auto/balanced",label:"Kilo Auto \u2014 Balanced",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:65536},auth:["apiKey"]},{id:"kilo-auto/efficient",label:"Kilo Auto \u2014 Efficient",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1e6,maxOutputTokens:65536},auth:["apiKey"]},{id:"kilo-auto/small",label:"Kilo Auto \u2014 Small",pricing:{input:0.05,output:0.4,cacheRead:0.005,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:32768},auth:["apiKey"]},{id:"kilo-auto/free",label:"Kilo Auto \u2014 Free",pricing:{input:0,output:0,cacheRead:0,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:256000,maxOutputTokens:1e4},auth:["apiKey"]}]};var Ri={id:"kilo",capabilities:{tools:!0,images:!0,reasoning:!0},writeOverInput:{fiveMinute:0,oneHour:0},catalog:Ti,modelPrefixes:[],presentation:{label:"Kilo",order:4,tone:"orange",colour:{light:"oklch(0.52 0.14 224)",dark:"oklch(0.74 0.14 224)"},pasteHint:"Approve the code on Kilo's device page. This dialog finishes on its own."}};var Si={defaultModel:"k3-256k",authTypes:["oauth","apiKey"],models:[{id:"k3-256k",label:"Kimi K3 \u2014 256K",pricing:{input:3,output:15,cacheRead:0.3,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:131072}},{id:"k3",label:"Kimi K3 \u2014 up to 1M",pricing:{input:3,output:15,cacheRead:0.3,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1048576,maxOutputTokens:131072}},{id:"kimi-for-coding",label:"Kimi K2.7 Code",pricing:{input:0.95,output:4,cacheRead:0.19,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:131072}},{id:"kimi-for-coding-highspeed",label:"Kimi K2.7 Code \u2014 High Speed",pricing:{input:0.95,output:8,cacheRead:0.19,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:262144,maxOutputTokens:131072}}]};var xi={id:"kimi",capabilities:{tools:!0,images:!1,reasoning:!1},writeOverInput:{fiveMinute:0,oneHour:0},catalog:Si,modelPrefixes:["kimi-","moonshot"],presentation:{label:"Kimi",order:3,tone:"blue",colour:{light:"oklch(0.53 0.17 330)",dark:"oklch(0.72 0.16 330)"},pasteHint:"Enter the code on Kimi's device page. This dialog finishes on its own."}};var Ai={defaultModel:"muse-spark-1.3",authTypes:["oauth","apiKey"],models:[{id:"muse-spark-1.3",label:"Muse Spark 1.3",pricing:{input:1.25,output:4.25,cacheRead:0.15,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1048576,maxOutputTokens:943718}},{id:"muse-spark-1.3-contributor",label:"Muse Spark 1.3 \u2014 Meta trains on this traffic",pricing:{input:0.1,output:0.2,cacheRead:0.002,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1048576,maxOutputTokens:943718}},{id:"muse-spark-1.2",label:"Muse Spark 1.2",pricing:{input:1.25,output:4.25,cacheRead:0.15,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1048576,maxOutputTokens:943718}},{id:"muse-spark-1.2-contributor",label:"Muse Spark 1.2 \u2014 Meta trains on this traffic",pricing:{input:0.1,output:0.2,cacheRead:0.002,cacheWrite5m:0,cacheWrite1h:0},limits:{contextWindow:1048576,maxOutputTokens:943718}}]};var Oi={id:"muse",capabilities:{tools:!0,images:!0,reasoning:!0},writeOverInput:{fiveMinute:0,oneHour:0},catalog:Ai,modelPrefixes:["muse-","muse-spark"],presentation:{label:"Muse",order:7,tone:"azure",colour:{light:"oklch(0.55 0.23 262)",dark:"oklch(0.72 0.17 262)"},pasteHint:"Enter the code on Meta's device page. This dialog finishes on its own."}};var Ci={defaultModel:"gpt-6.1-sol",authTypes:["oauth","apiKey"],models:[{id:"gpt-6-astra",label:"GPT-6 Astra",pricing:{input:10,output:50,cacheRead:1,cacheWrite5m:12.5,cacheWrite1h:0},limits:{contextWindow:922000,maxOutputTokens:128000},oauthLimits:{contextWindow:272000,maxOutputTokens:128000}},{id:"gpt-6.1-sol",label:"GPT-6.1 Sol",pricing:{input:2,output:10,cacheRead:0.1,cacheWrite5m:2.5,cacheWrite1h:0},limits:{contextWindow:922000,maxOutputTokens:128000},oauthLimits:{contextWindow:272000,maxOutputTokens:128000}},{id:"gpt-6-sol",label:"GPT-6 Sol",pricing:{input:2,output:10,cacheRead:0.2,cacheWrite5m:2.5,cacheWrite1h:0},limits:{contextWindow:922000,maxOutputTokens:128000},oauthLimits:{contextWindow:272000,maxOutputTokens:128000}},{id:"gpt-6-luna",label:"GPT-6 Luna",pricing:{input:0.1,output:0.5,cacheRead:0.01,cacheWrite5m:0.125,cacheWrite1h:0},limits:{contextWindow:922000,maxOutputTokens:128000},oauthLimits:{contextWindow:272000,maxOutputTokens:128000}},{id:"gpt-5.6",label:"GPT-5.6 \u2014 routes to Sol",pricing:{input:4,output:20,cacheRead:0.4,cacheWrite5m:5,cacheWrite1h:0},limits:{contextWindow:922000,maxOutputTokens:128000},oauthLimits:{contextWindow:272000,maxOutputTokens:128000}},{id:"gpt-5.6-sol",label:"GPT-5.6 Sol",pricing:{input:4,output:20,cacheRead:0.4,cacheWrite5m:5,cacheWrite1h:0},limits:{contextWindow:922000,maxOutputTokens:128000},oauthLimits:{contextWindow:272000,maxOutputTokens:128000}},{id:"gpt-5.6-terra",label:"GPT-5.6 Terra",pricing:{input:2,output:12,cacheRead:0.2,cacheWrite5m:2.5,cacheWrite1h:0},limits:{contextWindow:922000,maxOutputTokens:128000},oauthLimits:{contextWindow:272000,maxOutputTokens:128000}},{id:"gpt-5.6-luna",label:"GPT-5.6 Luna",pricing:{input:0.2,output:1.2,cacheRead:0.02,cacheWrite5m:0.25,cacheWrite1h:0},limits:{contextWindow:922000,maxOutputTokens:128000},oauthLimits:{contextWindow:272000,maxOutputTokens:128000}}]};var Pi={id:"openai",capabilities:{tools:!0,images:!0,reasoning:!0},writeOverInput:{fiveMinute:0,oneHour:0},catalog:Ci,modelPrefixes:["gpt-","o1","o3","o4"],callback:{uri:"http://localhost:1455/auth/callback",label:"OpenAI"},presentation:{label:"OpenAI",order:2,tone:"green",colour:{light:"oklch(0.5 0.09 190)",dark:"oklch(0.76 0.1 190)"},pasteHint:"Authorize in the browser. When it redirects to localhost, paste the whole URL."}};var an=/^[a-z][a-z0-9-]{0,31}$/;function $u(e){return typeof e==="string"&&an.test(e)}var M={anthropic:hi,openai:Pi,kimi:xi,kilo:Ri,grok:vi,antigravity:wi,muse:Oi,custom:ki};Object.setPrototypeOf(M,null);var c_=Object.keys(M);var d_=16,l_=new Set(["1","true","yes","on"]),p_=/^\d+$/,IA=/^-?\d+$/;function Fu(e,t){return e?.trim()||t}function Bu(e){let t=e.OMNI_ENCRYPTION_KEY;if(typeof t!=="string"||t.length<d_)throw Error(`OMNI_ENCRYPTION_KEY must be set to at least ${d_} characters. Generate one with: openssl rand -base64 32`);let n=Fu(e.OMNI_HOST,"127.0.0.1"),r=e.OMNI_PORT??"9000",o=Number(r);if(!p_.test(r)||!Number.isInteger(o)||o<1||o>65535)throw Error(`OMNI_PORT must be an integer between 1 and 65535, got "${r}"`);let i=`http://${n}:${o}`,s=Fu(e.OMNI_BASE_URL,i).replace(/\/+$/,"")||i,a=e.OMNI_STATIC_DIR?.trim(),u=e.OMNI_LOG_FILE?.trim(),c=l_.has((e.OMNI_CLUSTER_MODE??"").trim().toLowerCase()),d=e.OMNI_DATABASE_URL?.trim()||void 0,p=e.OMNI_REDIS_URL?.trim()||void 0;if(c){if(d===void 0||!d.startsWith("postgres"))throw Error("OMNI_CLUSTER_MODE=true needs OMNI_DATABASE_URL to be a postgres:// URL");if(p===void 0)throw Error("OMNI_CLUSTER_MODE=true needs OMNI_REDIS_URL")}else if(d!==void 0||p!==void 0)throw Error("OMNI_DATABASE_URL and OMNI_REDIS_URL are cluster-mode settings; set OMNI_CLUSTER_MODE=true or unset them");let l=e.OMNI_DAY_OFFSET_MINUTES?.trim(),m=l===void 0?NaN:Number(l),g=l!==void 0&&IA.test(l)&&Number.isInteger(m)&&m>=-1440&&m<=1440,h=g?m:et(),f=l!==void 0&&!g?l:null,y=l_.has((e.OMNI_BODY_LOGGING_ALLOWED??"").trim().toLowerCase()),_=e.OMNI_LOG_LEVEL?.trim(),w=Vo(_),v=e.OMNI_METRICS_TOKEN?.trim()||null,k=e.OMNI_METRICS_MAX_SERIES??"5000",T=Number(k);if(!p_.test(k)||T<1)throw Error(`OMNI_METRICS_MAX_SERIES must be a positive integer, got "${k}"`);let C=e.OMNI_OTLP_ENDPOINT?.trim().replace(/\/+$/,"")||null,V=e.OMNI_OTLP_HEADERS?.trim()||null,Re=e.OMNI_TRACE_SAMPLE??"1.0",W=Number(Re);if(!Number.isFinite(W)||W<0||W>1)throw Error(`OMNI_TRACE_SAMPLE must be between 0 and 1, got "${Re}"`);return{logLevel:w??"info",logLevelFallbackFrom:w===null&&_?_:null,port:o,host:n,databasePath:Fu(e.OMNI_DB_PATH,"./omnigateway.db"),encryptionKey:t,baseUrl:s,staticDir:a===void 0||a.length===0?null:a,bodyLoggingAllowed:y,logFile:u===void 0||u.length===0?null:u,clusterMode:c,databaseUrl:c?d??null:null,redisUrl:c?p??null:null,dayOffsetMinutes:h,dayOffsetFallbackFrom:f,metricsToken:v,metricsMaxSeries:T,otlpEndpoint:C,otlpHeaders:V,traceSample:W}}var Ii="oauth:pending:";function zu(e){let t=e.coord??Mt({now:e.now});return{async put(n){let r=Buffer.from(crypto.getRandomValues(new Uint8Array(32))).toString("base64url");return await t.kv.set(Ii+r,JSON.stringify(n),e.ttlMs),r},async take(n){let r=await t.kv.get(Ii+n);if(r===null)return null;return await t.kv.del(Ii+n),JSON.parse(r)},async peek(n){let r=await t.kv.get(Ii+n);return r===null?null:JSON.parse(r)}}}function LA(e){if(e===401||e===403)return"AUTH";if(e===402)return"QUOTA_EXHAUSTED";if(e===404)return"MODEL_UNAVAILABLE";if(e===413||e===422||e===400)return"BAD_REQUEST";if(e===429)return"RATE_LIMIT";if(e===529)return"OVERLOADED";if(e>=500)return"UPSTREAM";return"UPSTREAM"}function m_(e,t){if(e===null)return;let n=Number(e);if(Number.isFinite(n))return Math.max(0,n*1000);let r=Date.parse(e);return Number.isNaN(r)?void 0:Math.max(0,r-t)}async function qu(e,t,n=Date.now()){let r=await e.text().catch(()=>""),o=r.slice(0,500),i=LA(e.status);try{let a=JSON.parse(r);if(typeof a.error?.message==="string")o=a.error.message.slice(0,500);else if(typeof a.detail==="string")o=a.detail.slice(0,500);let u=a.error?.type??a.error?.code;if(u==="overloaded_error")i="OVERLOADED";else if(u==="insufficient_quota")i="QUOTA_EXHAUSTED";else if(u==="context_length_exceeded")i="BAD_REQUEST";else if(u==="content_policy_violation")i="CONTENT_FILTER"}catch{}let s=m_(e.headers.get("retry-after"),n);return new b(i,o||`${t} returned ${e.status}`,{provider:t,status:e.status,...s===void 0?{}:{retryAfterMs:s}})}function xr(e,t){let n;try{n=new URL(e)}catch{return!1}return t.some((r)=>{try{return new URL(r).origin===n.origin}catch{return!1}})}function Ar(e){if(typeof e!=="string")return!1;try{let t=new URL(e);return t.protocol==="https:"||t.protocol==="http:"}catch{return!1}}var NA=new Set(["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"]);function Or(e){return typeof e==="string"&&NA.has(e)}function Ln(e,t,n){return new b("UPSTREAM",`${e} codec ${t} ${n}`,{provider:e,gatewayAuthored:!0})}function DA(e,t,n){let r=(c)=>e.filter(([d])=>d.toLowerCase()===c),o=r("content-length"),i=r("content-encoding");if(n!==void 0)return o.length===0&&i.length===1&&i[0]?.[1].trim().toLowerCase()===n;if(o.length>1||i.length>1)return!1;let s=o[0]?.[1],a=new TextEncoder().encode(t).byteLength;if(s!==void 0&&s!==String(a))return!1;let u=i[0]?.[1];return u===void 0||u.trim().toLowerCase()==="identity"}function Li(e){if(!Array.isArray(e))return[];return e.filter((t)=>typeof t==="string").slice(0,16).map((t)=>t.slice(0,64))}function f_(e,t){return new b(t.code,t.message,{provider:e,...t.upstreamStatus===void 0?{}:{status:t.upstreamStatus},...t.retryAfterMs===void 0?{}:{retryAfterMs:t.retryAfterMs},degradations:Li(t.degradations),cause:t})}function UA(e){return e instanceof Error&&e.name==="GatewayError"}function Hu(e,t,n){try{return n()}catch(r){if(!(r instanceof b)&&UA(r))throw Ln(e,t,"threw a GatewayError from its own bundled copy, whose classification the host cannot trust; build the error with input.fail() instead");if(r instanceof b)throw f_(e,r);throw Ln(e,t,"threw")}}async function*MA(e,t){try{yield*t}catch(n){if(n instanceof b)throw n;throw Ln(e,"decode","threw")}}function de(e,t,n,r){return{id:e,capabilities:t,async send(o){let i=(m,g,h)=>new b(m,g,{provider:e,...h?.status===void 0?{}:{status:h.status},...h?.retryAfterMs===void 0?{}:{retryAfterMs:h.retryAfterMs},degradations:Li(h?.degradations)}),s=Hu(e,"buildRequest",()=>n.buildRequest({request:o.request,model:o.model,credentials:o.credentials,fail:i,...o.requestId===void 0?{}:{requestId:o.requestId},...o.autoCache===void 0?{}:{autoCacheEnabled:o.autoCache},...o.maxOutputTokens===void 0?{}:{maxOutputTokens:o.maxOutputTokens},...o.requestStartedAt===void 0?{}:{requestStartedAt:o.requestStartedAt}})),a=s?.request??{},u={url:a.url,method:a.method,headers:Array.isArray(a.headers)?[...a.headers]:a.headers,body:a.body,bodyEncoding:a.bodyEncoding};if(typeof u.body!=="string"||u.bodyEncoding!==void 0&&u.bodyEncoding!=="zstd"||!Ar(u.url)||!Or(u.method)||!Array.isArray(u.headers)||!u.headers.every((m)=>Array.isArray(m)&&m.length===2&&typeof m[0]==="string"&&typeof m[1]==="string")||!DA(u.headers,u.body,u.bodyEncoding))throw Ln(e,"buildRequest","did not return a usable request");let c={url:u.url,method:u.method,headers:u.headers,body:u.body,...u.bodyEncoding==="zstd"?{bodyEncoding:u.bodyEncoding}:{}};if(r!==void 0&&!xr(u.url,r))throw Ln(e,"buildRequest","described a request to an origin its manifest does not declare");let d=await o.http({provider:e,...c,signal:o.signal,...o.requestId===void 0?{}:{requestId:o.requestId}});if(d.status<200||d.status>=300){let m=await d.text().catch(()=>""),g=await qu({status:d.status,headers:d.headers,body:null,text:async()=>m},e);Object.freeze(g.degradations),Object.freeze(g);let h=Hu(e,"classifyError",()=>n.classifyError?.({status:d.status,body:m,headers:d.headers,fallback:g,fail:i,degradations:Li(s.degradations),decodeState:s.decodeState}));if(h!==void 0){if(!(h instanceof b))throw Ln(e,"classifyError","returned something that is not an error");throw f_(e,h)}throw g}let p=d.body;if(p===null)throw new b("UPSTREAM","empty response body",{provider:e,gatewayAuthored:!0});let l=s.cloakedTools;return{events:MA(e,Hu(e,"decode",()=>n.decode({body:p,decodeState:s.decodeState,headers:d.headers,fail:i}))),degradations:Li(s.degradations),...Number.isInteger(l)&&(l??0)>=0?{cloakedTools:l}:{}}}}}import{createHash as WA}from"crypto";var Wu=/^[\x20-\x7E]{1,200}$/;function G(e,t){let n=Bun.env[e];if(typeof n!=="string"||n.length===0)return t;return Wu.test(n)?n:t}function ju(e){let t=Bun.env[e];if(typeof t!=="string"||t.length===0)return null;return Wu.test(t)?t:null}function Le(e,t){let n=Bun.env[e];if(typeof n!=="string"||n.length===0)return t;let r=n.split(",").map((o)=>o.trim()).filter((o)=>o.length>0&&Wu.test(o));return r.length>0?r:t}function Ku(e,t){return{os:e==="darwin"?"MacOS":e==="linux"?"Linux":e==="win32"?"Windows":"Unknown",arch:t}}function Gu(e,t){return{os:e.toLowerCase(),arch:t==="arm64"?"aarch64":t}}function fe(e,t){let n=[...e],r=[];for(let o of t){let i=o.toLowerCase(),s=n.findIndex(([a])=>a.toLowerCase()===i);if(s!==-1)r.push(...n.splice(s,1))}return r.push(...n),r}function ge(e,t){let n=[...e];for(let[r,o]of t){let i=r.toLowerCase(),s=n.findIndex(([a])=>a.toLowerCase()===i);if(s===-1)n.push([r,o]);else n[s]=[r,o]}return n}var g_=Ku(process.platform,process.arch),un=G("OMNI_ANTHROPIC_CLI_VERSION","2.1.296"),Ge={headers:[["User-Agent",G("OMNI_UA_ANTHROPIC",`claude-cli/${un} (external, cli)`)],["x-app","cli"],["anthropic-dangerous-direct-browser-access","true"],["X-Stainless-Lang","js"],["X-Stainless-Package-Version",G("OMNI_ANTHROPIC_STAINLESS_PACKAGE_VERSION","0.128.0")],["X-Stainless-OS",ju("OMNI_ANTHROPIC_STAINLESS_OS")??g_.os],["X-Stainless-Arch",ju("OMNI_ANTHROPIC_STAINLESS_ARCH")??g_.arch],["X-Stainless-Runtime","node"],["X-Stainless-Runtime-Version",G("OMNI_ANTHROPIC_STAINLESS_RUNTIME_VERSION","v26.3.0")],["X-Stainless-Retry-Count","0"],["Accept","application/json"]],order:Le("OMNI_ORDER_ANTHROPIC",["Accept","Authorization","Content-Type","User-Agent","X-Stainless-Arch","X-Stainless-Lang","X-Stainless-OS","X-Stainless-Package-Version","X-Stainless-Retry-Count","X-Stainless-Runtime","X-Stainless-Runtime-Version","X-Stainless-Timeout","anthropic-beta","anthropic-dangerous-direct-browser-access","anthropic-version","x-api-key","x-app","Connection","Host","Accept-Encoding","Content-Length"])},Cr=["model","messages","system","tools","tool_choice","metadata","max_tokens","temperature","thinking","context_management","output_config","stream"];var $A=G("OMNI_ANTIGRAVITY_IDE_VERSION","2.12.2"),FA="darwin/arm64",nt={headers:[["User-Agent",G("OMNI_UA_ANTIGRAVITY",`antigravity/ide/${$A} ${FA}`)],["Content-Type","application/json"],["Accept","text/event-stream"]],order:Le("OMNI_ORDER_ANTIGRAVITY",["Host","Content-Type","Authorization","User-Agent","X-Goog-Api-Client","Accept","Accept-Encoding","Content-Length"])},h_=["project","requestId","model","userAgent","requestType","request"];var Zu={headers:[],order:[]},y_=[];var __=G("OMNI_GROK_CLI_VERSION","0.2.120"),w_=Gu(process.platform,process.arch),Ot={headers:[["User-Agent",G("OMNI_UA_GROK",`grok-shell/${__} (${w_.os}; ${w_.arch})`)],["x-grok-client-identifier","grok-shell"],["x-grok-client-version",__],["x-grok-client-mode","headless"],["Accept","text/event-stream"]],order:Le("OMNI_ORDER_GROK",["Host","Content-Type","Authorization","X-XAI-Token-Auth","x-authenticateresponse","x-grok-client-identifier","x-grok-client-version","x-grok-client-mode","x-grok-agent-id","x-grok-req-id","x-grok-conv-id","x-grok-session-id","x-grok-model-override","User-Agent","Accept","Accept-Encoding","Content-Length"])},Ni=["model","stream","input","instructions","store","reasoning","prompt_cache_key","tools","tool_choice","include","service_tier","client_metadata","parallel_tool_calls","metadata"];var BA=G("OMNI_KILO_CLI_VERSION","4.140.0"),ft={headers:[["User-Agent",G("OMNI_UA_KILO",`Kilo-Code/${BA}`)],["X-KILOCODE-EDITORNAME",G("OMNI_KILO_EDITOR_NAME","vscode")],["Accept","text/event-stream"]],order:Le("OMNI_ORDER_KILO",["Host","Content-Type","Authorization","X-Kilocode-OrganizationID","X-KILOCODE-EDITORNAME","User-Agent","Accept","Accept-Encoding","Content-Length"])},Di=["model","messages","tools","tool_choice","max_tokens","temperature","reasoning","stream"];var b_=G("OMNI_KIMI_CLI_VERSION","0.26.0"),Ct={headers:[["User-Agent",G("OMNI_UA_KIMI",`kimi-code-cli/${b_}`)],["X-Msh-Platform","kimi_code_cli"],["X-Msh-Version",b_],["Accept","application/json"]],order:Le("OMNI_ORDER_KIMI",["Host","Content-Type","Authorization","X-Msh-Platform","X-Msh-Version","X-Msh-Device-Id","X-Msh-Device-Name","X-Msh-Device-Model","X-Msh-Os-Version","User-Agent","Accept","Accept-Encoding","Content-Length"])},Ui=["model","messages","tools","tool_choice","max_tokens","temperature","stream"];var zA=G("OMNI_MUSE_CLI_VERSION","1.0.3"),gt={headers:[["User-Agent",G("OMNI_UA_MUSE",`muse-code/${zA}`)],["x-api-version",G("OMNI_MUSE_API_VERSION","1.0.0")],["Accept","text/event-stream"]],order:Le("OMNI_ORDER_MUSE",["Host","Content-Type","Authorization","x-meta-ai-gateway-session-id","x-api-version","Accept","User-Agent","Accept-Encoding","Content-Length"])},Mi=["model","stream","input","instructions","store","reasoning","prompt_cache_key","max_output_tokens","temperature","tools","tool_choice","include","parallel_tool_calls","metadata"];var Xu=G("OMNI_OPENAI_CLI_VERSION","0.163.0"),Vu=G("OMNI_OPENAI_UA_PLATFORM","Windows 10.0.26200"),qA=G("OMNI_OPENAI_UA_ARCH","x86_64"),HA=G("OMNI_OPENAI_UA_TERMINAL","WindowsTerminal"),Pr=G("OMNI_OPENAI_ORIGINATOR","codex-tui"),k_=Vu.startsWith("Windows")?"windows_elevated":/^(Mac OS|macOS)/.test(Vu)?"seatbelt":"seccomp",rt={headers:[["user-agent",G("OMNI_UA_OPENAI",`${Pr}/${Xu} (${Vu}; ${qA}) ${HA} (${Pr}; ${Xu})`)],["originator",Pr],["version",Xu],["x-codex-beta-features","remote_compaction_v2"],["accept","text/event-stream"]],order:Le("OMNI_ORDER_OPENAI",["version","x-codex-beta-features","x-codex-window-id","x-codex-turn-metadata","x-openai-internal-codex-responses-lite","x-codex-routing-hint","x-client-request-id","session-id","thread-id","accept","content-encoding","content-type","authorization","chatgpt-account-id","originator","user-agent","host","content-length"])},$i=["model","stream","service_tier","input","instructions","tools","tool_choice","parallel_tool_calls","reasoning","store","stream_options","include","prompt_cache_key","text","client_metadata","access_programs","metadata"];var Qu={anthropic:Cr,openai:$i,kimi:Ui,kilo:Di,grok:Ni,antigravity:h_,muse:Mi,custom:y_};Object.setPrototypeOf(Qu,null);function Be(e,t){let n={},r=new Set;for(let o of t)if(Object.hasOwn(e,o))n[o]=e[o],r.add(o);for(let o of Object.keys(e))if(!r.has(o))n[o]=e[o];return n}var E_="00000",jA=0x6e52736ac806831en,KA=0xfffffn,GA="59cf53e54c78",Ir="x-anthropic-billing-header:",Fi="You are a Claude agent, built on Anthropic's Claude Agent SDK.";function ZA(e){let t=[4,7,20].map((n)=>e[n]??"0").join("");return WA("sha256").update(`${GA}${t}${un}`).digest("hex").slice(0,3)}function XA(e){return`${Ir} cc_version=${un}.${ZA(e)}; cc_entrypoint=cli; cch=${E_};`}var VA=["github.com/anomalyco/opencode","opencode.ai/docs","github.com/cline/cline","github.com/getcursor/cursor","continue.dev","hermes-agent.nousresearch.com"],QA=["You are OpenCode","You are Hermes Agent"],YA=[["if OpenCode honestly","if the assistant honestly"],["Here is some useful information about the environment you are running in:","Environment context you are running in:"]];function v_(e,t){let n=[];for(let r of e){let i=r.text.split(/\n{2,}/).filter((s)=>!VA.some((a)=>s.includes(a))).filter((s)=>!QA.some((a)=>s.trimStart().startsWith(a))).filter((s)=>!s.includes(Ir)).filter((s)=>s.trim()!==Fi).join(`
|
|
1654
1654
|
|
|
1655
|
-
`);for(let[s,a]of YA)i=i.replaceAll(s,a);if(i.trim().length>0)n.push({type:"text",text:i,...r.cache_control===void 0?{}:{cache_control:r.cache_control}})}return[{type:"text",text:XA(t)},{type:"text",text:Fi},...n]}function JA(e){return(Bun.hash.xxHash64(Buffer.from(e,"utf8"),jA)&KA).toString(16).padStart(5,"0")}var e0=`"system":[{"type":"text","text":"${
|
|
1656
|
-
`);while(p!==-1){let g=r0(
|
|
1657
|
-
`,p+1);continue}
|
|
1658
|
-
`,g)}let l=Math.min(n0,
|
|
1659
|
-
`)){let o=r.endsWith("\r")?r.slice(0,-1):r;if(o.length===0||o.startsWith(":"))continue;let i=o.indexOf(":"),s=i===-1?o:o.slice(0,i),a=i===-1?"":o.slice(i+1),
|
|
1660
|
-
`)}}var o0=/^[A-Z][A-Za-z0-9]*$/;function i0(e){return o0.test(e)||e.startsWith("mcp__")}var I_=128,L_=6;function s0(e){let t=e.split(/[^A-Za-z0-9]+/).filter((n)=>n.length>0).map((n)=>n.charAt(0).toUpperCase()+n.slice(1)).join("");if(t==="")return{base:"Tool",forced:!0};if(t.length>I_)return{base:t.slice(0,I_-L_),forced:!0};return{base:t,forced:!1}}function a0(e){let t=new Set,n=new Set,r=(o)=>{(i0(o)?n:t).add(o)};for(let o of e.tools??[])if(o.kind==="portable")r(o.name);for(let o of e.messages)for(let i of o.content)if(i.type==="toolUse")r(i.name);if(e.toolChoice?.type==="tool")r(e.toolChoice.name);return{renamable:[...t],reserved:[...n]}}function u0(e){let n=(Bun.hash.xxHash64(Buffer.from(e,"utf8"))&0xffffffn).toString(16).padStart(L_,"0");return n.charAt(0).toUpperCase()+n.slice(1)}function N_(e){let{renamable:t,reserved:n}=a0(e),r=new Map,o=(c)=>{r.set(c,(r.get(c)??0)+1)};for(let c of e.tools??[])if(c.kind==="provider"&&c.name!=="")o(c.name);for(let c of n)o(c);let i=new Map;for(let c of t){let u=s0(c);i.set(c,u),o(u.base)}let s=new Map,a=new Map;for(let[c,{base:u,forced:d}]of i){let p=d||(r.get(u)??0)>1?u+u0(c):u;s.set(c,p),a.set(p,c)}return s.size===0?null:{toWire:s,fromWire:a}}function qi(e,t){return e?.toWire.get(t)??t}function D_(e,t){return e?.fromWire.get(t)??t}var _e=["cache_control","strict","defer_loading","allowed_callers"],ht=[..._e,"input_examples"],cn=["max_uses","allowed_domains","blocked_domains"],dq={web_search_20250305:{family:"webSearch",name:"web_search",required:[],optional:[..._e,...cn,"user_location"]},web_search_20260209:{family:"webSearch",name:"web_search",required:[],optional:[..._e,...cn,"user_location"]},web_search_20260318:{family:"webSearch",name:"web_search",required:[],optional:[..._e,...cn,"user_location","response_inclusion"]},web_fetch_20250910:{family:"webFetch",name:"web_fetch",required:[],optional:[..._e,...cn,"citations","max_content_tokens"]},web_fetch_20260209:{family:"webFetch",name:"web_fetch",required:[],optional:[..._e,...cn,"citations","max_content_tokens"]},web_fetch_20260309:{family:"webFetch",name:"web_fetch",required:[],optional:[..._e,...cn,"citations","max_content_tokens","use_cache"]},web_fetch_20260318:{family:"webFetch",name:"web_fetch",required:[],optional:[..._e,...cn,"citations","max_content_tokens","use_cache","response_inclusion"]},code_execution_20250522:{family:"codeExecution",name:"code_execution",required:[],optional:[..._e]},code_execution_20250825:{family:"codeExecution",name:"code_execution",required:[],optional:[..._e]},code_execution_20260120:{family:"codeExecution",name:"code_execution",required:[],optional:[..._e]},code_execution_20260521:{family:"codeExecution",name:"code_execution",required:[],optional:[..._e]},bash_20241022:{family:"bash",name:"bash",required:[],optional:[...ht]},bash_20250124:{family:"bash",name:"bash",required:[],optional:[...ht]},text_editor_20241022:{family:"textEditor",name:"str_replace_editor",required:[],optional:[...ht]},text_editor_20250124:{family:"textEditor",name:"str_replace_editor",required:[],optional:[...ht]},text_editor_20250429:{family:"textEditor",name:"str_replace_based_edit_tool",required:[],optional:[...ht]},text_editor_20250728:{family:"textEditor",name:"str_replace_based_edit_tool",required:[],optional:[...ht,"max_characters"]},computer_20241022:{family:"computer",name:"computer",required:["display_width_px","display_height_px"],optional:[...ht,"display_number"]},computer_20250124:{family:"computer",name:"computer",required:["display_width_px","display_height_px"],optional:[...ht,"display_number"]},computer_20251124:{family:"computer",name:"computer",required:["display_width_px","display_height_px"],optional:[...ht,"display_number","enable_zoom"]},memory_20250818:{family:"memory",name:"memory",required:[],optional:[...ht]},tool_search_tool_regex_20251119:{family:"toolSearchRegex",name:"tool_search_tool_regex",required:[],optional:[..._e]},tool_search_tool_regex:{family:"toolSearchRegex",name:"tool_search_tool_regex",required:[],optional:[..._e]},tool_search_tool_bm25_20251119:{family:"toolSearchBm25",name:"tool_search_tool_bm25",required:[],optional:[..._e]},tool_search_tool_bm25:{family:"toolSearchBm25",name:"tool_search_tool_bm25",required:[],optional:[..._e]},advisor_20260301:{family:"advisor",name:"advisor",required:["model"],optional:[..._e,"caching","max_uses","max_tokens"]},mcp_toolset:{family:"mcpToolset",required:["mcp_server_name"],optional:["cache_control","configs","default_config"]}};var U_=new Set(["server_tool_use","web_search_tool_result","web_fetch_tool_result","code_execution_tool_result","bash_code_execution_tool_result","text_editor_code_execution_tool_result","mcp_tool_use","mcp_tool_result","tool_search_tool_result","tool_reference","advisor_tool_result","advisor_result","advisor_redacted_result","container_upload","compaction","search_result","document","mid_conv_system","tool_addition","tool_removal","fallback","redacted_thinking"]);var M_={end_turn:"endTurn",max_tokens:"maxTokens",stop_sequence:"stopSequence",tool_use:"toolUse",refusal:"contentFilter",pause_turn:"pauseTurn"},c0=new Set(["message_start","content_block_start","content_block_delta","content_block_stop","message_delta","message_stop","error","ping"]),d0=new Set(["text_delta","thinking_delta","signature_delta","input_json_delta","citations_delta","compaction_delta"]),$_={overloaded_error:"OVERLOADED",rate_limit_error:"RATE_LIMIT",authentication_error:"AUTH",permission_error:"AUTH",invalid_request_error:"BAD_REQUEST",api_error:"UPSTREAM"},l0=["out of extra usage","draw from extra usage"];function Ju(e){let t=e.toLowerCase();return l0.some((n)=>t.includes(n))}function p0(e,t){return e==="invalid_request_error"&&Ju(t)}function m0(e){try{let t=JSON.parse(e);return typeof t==="object"&&t!==null?t:null}catch{return null}}async function*Hi(e,t={}){let n=t.cloak??null,r=0,o=0,i=0,s,a,c=0,u="endTurn",d=!1,p=new Set,l=(m)=>({type:"error",code:"UPSTREAM",message:m,retryable:!1});for await(let m of e){let g=m0(m.data);if(g===null)continue;if(!c0.has(m.event)){yield l(`unrecognized Anthropic stream event "${m.event}"`);return}switch(m.event){case"message_start":{let h=g.message??{};r=h.usage?.input_tokens??0,o=h.usage?.cache_read_input_tokens??0,i=h.usage?.cache_creation_input_tokens??0,s=h.usage?.cache_creation?.ephemeral_5m_input_tokens,a=h.usage?.cache_creation?.ephemeral_1h_input_tokens,yield{type:"start",id:String(h.id??""),model:String(h.model??"")};break}case"content_block_start":{let h=g.content_block??{},f=g.index??0;if(h.type==="text")yield{type:"blockStart",index:f,block:{type:"text"}};else if(h.type==="thinking")yield{type:"blockStart",index:f,block:{type:"thinking",signed:!0}};else if(h.type==="tool_use")yield{type:"blockStart",index:f,block:{type:"toolUse",id:String(h.id),name:D_(n,String(h.name))}};else if(h.type!==void 0&&U_.has(h.type)){p.add(f);let{type:y,..._}=h;yield{type:"blockStart",index:f,block:{type:"providerNative",provider:"anthropic",blockType:h.type,data:_}}}else{yield l(`unrecognized Anthropic content block type "${String(h.type)}"`);return}break}case"content_block_delta":{let h=g.index??0,f=g.delta??{};if(f.type==="text_delta")yield{type:"blockDelta",index:h,delta:{type:"text",text:f.text??""}};else if(f.type==="thinking_delta")yield{type:"blockDelta",index:h,delta:{type:"thinking",text:f.thinking??""}};else if(f.type==="signature_delta"&&(f.signature??"")!=="")yield{type:"blockDelta",index:h,delta:{type:"thinkingSignature",signature:f.signature??""}};else if(f.type==="input_json_delta")yield{type:"blockDelta",index:h,delta:p.has(h)?{type:"providerNativeJson",provider:"anthropic",partial:f.partial_json??""}:{type:"toolJson",partial:f.partial_json??""}};else if(f.type==="citations_delta")yield{type:"blockDelta",index:h,delta:{type:"providerNative",provider:"anthropic",deltaType:f.type,fold:"citation",data:{citation:f.citation}}};else if(f.type==="compaction_delta")yield{type:"blockDelta",index:h,delta:{type:"providerNative",provider:"anthropic",deltaType:f.type,fold:"merge",data:{...f.content===void 0?{}:{content:f.content},...f.encrypted_content===void 0?{}:{encrypted_content:f.encrypted_content}}}};else if(f.type===void 0||!d0.has(f.type)){yield l(`unrecognized Anthropic content block delta "${String(f.type)}"`);return}break}case"content_block_stop":p.delete(g.index??0),yield{type:"blockEnd",index:g.index??0};break;case"message_delta":{let h=g.delta?.stop_reason;if(typeof h==="string"){let f=Object.hasOwn(M_,h)?M_[h]:void 0;if(f===void 0){yield l(`unrecognized Anthropic stop reason "${h}"`);return}u=f}r=g.usage?.input_tokens??r,c=g.usage?.output_tokens??c;break}case"message_stop":d=!0,yield{type:"end",stopReason:u,usage:{inputTokens:r,outputTokens:c,cacheReadTokens:o,cacheWriteTokens:i,...s===void 0?{}:{cacheWrite5mTokens:s},...a===void 0?{}:{cacheWrite1hTokens:a}}};break;case"error":{d=!0;let h=String(g.error?.type),f=String(g.error?.message??"upstream error"),y=p0(h,f)?"FINGERPRINT_REFUSED":(Object.hasOwn($_,h)?$_[h]:void 0)??"UPSTREAM";yield{type:"error",code:y,message:f,retryable:J[y]};break}default:break}}if(!d)yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before message_stop",retryable:J.UPSTREAM}}var le=(e)=>typeof e==="object"&&e!==null&&!Array.isArray(e);function ot(e){let t=e.vendor?.openai,n=t?.response_format;if(n!==void 0){if(!le(n)||n.type!=="json_schema")return{kind:"malformed"};return ec(n.json_schema)}let r=t?.text;if(le(r)&&r.format!==void 0)return ec(r.format);if(r!==void 0)return{kind:"malformed"};let o=e.vendor?.anthropic?.output_config;if(le(o)&&o.format!==void 0)return ec(o.format);if(o!==void 0)return{kind:"malformed"};return{kind:"absent"}}function Lr(e){return le(e)&&(e.type===void 0||e.type==="json_schema")&&le(e.schema)}function tc(e){if(typeof e==="bigint")return!1;if(typeof e!=="object"||e===null)return!0;let t=new WeakSet,n=[e];while(n.length>0){let r=n.pop();if(r===void 0)break;if(t.has(r))continue;if(t.add(r),typeof r.toJSON==="function")try{if(typeof r.toJSON()==="bigint")return!1}catch{return!1}let o=Array.isArray(r)?r:Object.values(r);for(let i of o){if(typeof i==="bigint")return!1;if(typeof i==="object"&&i!==null)n.push(i)}}return!0}function ec(e){if(!Lr(e))return{kind:"malformed"};let t=e.schema;if(!le(t))return{kind:"malformed"};if(g0(t)||h0(t)||!tc(t))return{kind:"tooDeep"};return{kind:"readable",format:{schema:t,name:typeof e.name==="string"&&e.name.length>0?e.name:"response"}}}function f0(e,t){for(let n of e)for(let[r,o]of Object.entries(n))if(q_.includes(r)&&le(o)){for(let i of Object.values(o))if(le(i))t(i,n)}else if(z_.includes(r)&&Array.isArray(o)){for(let i of o)if(le(i))t(i,n)}else if(B_.includes(r)&&le(o))t(o,n)}function g0(e){let t=new Set,n=new WeakSet,r=[{node:e,entering:!0}];while(r.length>0){let o=r.pop();if(o===void 0)break;let i=o.node;if(!o.entering){t.delete(i),n.add(i);continue}if(t.has(i))return!0;if(n.has(i))continue;if(t.add(i),r.push({node:i,entering:!1}),Array.isArray(i)){for(let s of i)if(typeof s==="object"&&s!==null)r.push({node:s,entering:!0})}else for(let s of Object.values(i))if(typeof s==="object"&&s!==null)r.push({node:s,entering:!0})}return!1}function h0(e){let t=[e];for(let n=0;n<H_;n++){let r=[],o=new WeakSet;if(f0(t,(i)=>{if(o.has(i))return;o.add(i),r.push(i)}),r.length===0)return!1;t=r}return!0}function qt(e,t,n){let r=t.response_format;delete t.response_format;let o=t.text!==void 0&&!le(t.text);if(o)delete t.text;let i=ot(e),s=le(t.text)?t.text:void 0,a=s?.format;if(Lr(a)&&i.kind==="readable")return;let c=s!==void 0&&a!==void 0,u=s===void 0?void 0:{...s};if(u!==void 0)delete u.format;if(c)t.text=u;if(i.kind==="readable"){let d=i.format;return t.text={...u,format:{type:"json_schema",name:d.name,schema:d.schema,strict:!0}},`${n}:response-format-translated`}if(le(r)&&r.type==="json_object")return t.text={...u,format:{type:"json_object"}},`${n}:response-format-translated`;if(i.kind==="tooDeep")return`${n}:response-schema-too-deep`;if(r!==void 0||o||c)return`${n}:response-format-dropped`;return}function F_(e,t){if(t!==void 0)t.changed=!1,t.truncated=!1;return Wi(e,0,t??{changed:!1,truncated:!1},new Map)}var B_=["items","additionalItems","additionalProperties","contains","contentSchema","if","then","else","not","propertyNames","unevaluatedItems","unevaluatedProperties"],z_=["anyOf","allOf","oneOf","prefixItems","items"],q_=["properties","patternProperties","$defs","definitions","dependentSchemas","dependencies"],H_=64;function Wi(e,t,n,r){if(t>=H_)return n.truncated=!0,e;let o=r.get(t);if(o===void 0)o=new WeakMap,r.set(t,o);let i=o.get(e);if(i!==void 0)return i;let s={};o.set(e,s);for(let[a,c]of Object.entries(e)){if(q_.includes(a)&&le(c)){let u={};for(let[d,p]of Object.entries(c))Object.defineProperty(u,d,{value:le(p)?Wi(p,t+1,n,r):p,writable:!0,enumerable:!0,configurable:!0});s[a]=u;continue}if(B_.includes(a)&&le(c)){s[a]=Wi(c,t+1,n,r);continue}if(z_.includes(a)&&Array.isArray(c)){s[a]=c.map((u)=>le(u)?Wi(u,t+1,n,r):u);continue}s[a]=c}if(s.type==="object"&&s.additionalProperties!==!1)s.additionalProperties=!1,n.changed=!0;return s}function nc(e,t,n){if(e===void 0)return[];let r=[];for(let o of e){if(o.type==="text"){r.push({type:"text",text:o.text,cacheControl:pt(o)});continue}n(`${t}:system-${o.type}-dropped`)}return r}function Ae(e,t,n){if(e===void 0)return;return nc(e,t,n).map((r)=>r.text).join(`
|
|
1655
|
+
`);for(let[s,a]of YA)i=i.replaceAll(s,a);if(i.trim().length>0)n.push({type:"text",text:i,...r.cache_control===void 0?{}:{cache_control:r.cache_control}})}return[{type:"text",text:XA(t)},{type:"text",text:Fi},...n]}function JA(e){return(Bun.hash.xxHash64(Buffer.from(e,"utf8"),jA)&KA).toString(16).padStart(5,"0")}var e0=`"system":[{"type":"text","text":"${Ir}`;function T_(e){let t=`cch=${E_};`,n=e.indexOf(e0);if(n<0)return e;let r=e.indexOf(t,n);if(r<0)return e;return`${e.slice(0,r)}cch=${JA(e)};${e.slice(r+t.length)}`}var R_={anthropic:Rr,openai:Ci,kimi:Si,kilo:Ti,grok:Ei,antigravity:_i,muse:Ai,custom:bi};Object.setPrototypeOf(R_,null);var t0=["oauth","apiKey"];function Bi(e,t){return e.models.find((n)=>n.id===t)?.pricing??null}function S_(e,t){return e.models.find((n)=>n.id===t)?.auth??e.authTypes}var x_=t0;function A_(e,t,n="apiKey"){let r=R_[e];return r===void 0?null:Lr(r,t,n)}function Lr(e,t,n="apiKey"){let r=e.models.find((o)=>o.id===t);return r===void 0?null:zi(r,n)}function zi(e,t="apiKey"){return(t==="oauth"?e.oauthLimits:void 0)??e.limits}var Yu={anthropic:Ge,openai:rt,kimi:Ct,kilo:ft,grok:Ot,antigravity:nt,muse:gt,custom:Zu};Object.setPrototypeOf(Yu,null);var n0=2,O_=10485760;async function*_e(e){let t=e.getReader(),n=new TextDecoder,r=[],o=0,i="";try{while(!0){let{done:a,value:u}=await t.read();if(a)break;let c=i+n.decode(u,{stream:!0}),d=0,p=c.indexOf(`
|
|
1656
|
+
`);while(p!==-1){let g=r0(c,p);if(g===-1){p=c.indexOf(`
|
|
1657
|
+
`,p+1);continue}C_(o+(p-d)),r.push(c.slice(d,p));let h=r.join("");r.length=0,o=0;let f=P_(h);if(f)yield f;d=g,p=c.indexOf(`
|
|
1658
|
+
`,g)}let l=Math.min(n0,c.length-d),m=c.slice(d,c.length-l);if(m.length>0)r.push(m),o+=m.length;i=c.slice(c.length-l),C_(o+i.length)}let s=P_(r.join("")+i);if(s)yield s}finally{t.releaseLock()}}function C_(e){if(e<=O_)return;throw new b("UPSTREAM",`upstream SSE record exceeded ${O_} characters`,{gatewayAuthored:!0})}function r0(e,t){let n=e.charCodeAt(t+1);if(n===10)return t+2;if(n===13&&e.charCodeAt(t+2)===10)return t+3;return-1}function P_(e){let t="message",n=[];for(let r of e.split(`
|
|
1659
|
+
`)){let o=r.endsWith("\r")?r.slice(0,-1):r;if(o.length===0||o.startsWith(":"))continue;let i=o.indexOf(":"),s=i===-1?o:o.slice(0,i),a=i===-1?"":o.slice(i+1),u=a.startsWith(" ")?a.slice(1):a;if(s==="event")t=u;else if(s==="data")n.push(u)}return n.length===0?null:{event:t,data:n.join(`
|
|
1660
|
+
`)}}var o0=/^[A-Z][A-Za-z0-9]*$/;function i0(e){return o0.test(e)||e.startsWith("mcp__")}var I_=128,L_=6;function s0(e){let t=e.split(/[^A-Za-z0-9]+/).filter((n)=>n.length>0).map((n)=>n.charAt(0).toUpperCase()+n.slice(1)).join("");if(t==="")return{base:"Tool",forced:!0};if(t.length>I_)return{base:t.slice(0,I_-L_),forced:!0};return{base:t,forced:!1}}function a0(e){let t=new Set,n=new Set,r=(o)=>{(i0(o)?n:t).add(o)};for(let o of e.tools??[])if(o.kind==="portable")r(o.name);for(let o of e.messages)for(let i of o.content)if(i.type==="toolUse")r(i.name);if(e.toolChoice?.type==="tool")r(e.toolChoice.name);return{renamable:[...t],reserved:[...n]}}function u0(e){let n=(Bun.hash.xxHash64(Buffer.from(e,"utf8"))&0xffffffn).toString(16).padStart(L_,"0");return n.charAt(0).toUpperCase()+n.slice(1)}function N_(e){let{renamable:t,reserved:n}=a0(e),r=new Map,o=(u)=>{r.set(u,(r.get(u)??0)+1)};for(let u of e.tools??[])if(u.kind==="provider"&&u.name!=="")o(u.name);for(let u of n)o(u);let i=new Map;for(let u of t){let c=s0(u);i.set(u,c),o(c.base)}let s=new Map,a=new Map;for(let[u,{base:c,forced:d}]of i){let p=d||(r.get(c)??0)>1?c+u0(u):c;s.set(u,p),a.set(p,u)}return s.size===0?null:{toWire:s,fromWire:a}}function qi(e,t){return e?.toWire.get(t)??t}function D_(e,t){return e?.fromWire.get(t)??t}var we=["cache_control","strict","defer_loading","allowed_callers"],ht=[...we,"input_examples"],cn=["max_uses","allowed_domains","blocked_domains"],dq={web_search_20250305:{family:"webSearch",name:"web_search",required:[],optional:[...we,...cn,"user_location"]},web_search_20260209:{family:"webSearch",name:"web_search",required:[],optional:[...we,...cn,"user_location"]},web_search_20260318:{family:"webSearch",name:"web_search",required:[],optional:[...we,...cn,"user_location","response_inclusion"]},web_fetch_20250910:{family:"webFetch",name:"web_fetch",required:[],optional:[...we,...cn,"citations","max_content_tokens"]},web_fetch_20260209:{family:"webFetch",name:"web_fetch",required:[],optional:[...we,...cn,"citations","max_content_tokens"]},web_fetch_20260309:{family:"webFetch",name:"web_fetch",required:[],optional:[...we,...cn,"citations","max_content_tokens","use_cache"]},web_fetch_20260318:{family:"webFetch",name:"web_fetch",required:[],optional:[...we,...cn,"citations","max_content_tokens","use_cache","response_inclusion"]},code_execution_20250522:{family:"codeExecution",name:"code_execution",required:[],optional:[...we]},code_execution_20250825:{family:"codeExecution",name:"code_execution",required:[],optional:[...we]},code_execution_20260120:{family:"codeExecution",name:"code_execution",required:[],optional:[...we]},code_execution_20260521:{family:"codeExecution",name:"code_execution",required:[],optional:[...we]},bash_20241022:{family:"bash",name:"bash",required:[],optional:[...ht]},bash_20250124:{family:"bash",name:"bash",required:[],optional:[...ht]},text_editor_20241022:{family:"textEditor",name:"str_replace_editor",required:[],optional:[...ht]},text_editor_20250124:{family:"textEditor",name:"str_replace_editor",required:[],optional:[...ht]},text_editor_20250429:{family:"textEditor",name:"str_replace_based_edit_tool",required:[],optional:[...ht]},text_editor_20250728:{family:"textEditor",name:"str_replace_based_edit_tool",required:[],optional:[...ht,"max_characters"]},computer_20241022:{family:"computer",name:"computer",required:["display_width_px","display_height_px"],optional:[...ht,"display_number"]},computer_20250124:{family:"computer",name:"computer",required:["display_width_px","display_height_px"],optional:[...ht,"display_number"]},computer_20251124:{family:"computer",name:"computer",required:["display_width_px","display_height_px"],optional:[...ht,"display_number","enable_zoom"]},memory_20250818:{family:"memory",name:"memory",required:[],optional:[...ht]},tool_search_tool_regex_20251119:{family:"toolSearchRegex",name:"tool_search_tool_regex",required:[],optional:[...we]},tool_search_tool_regex:{family:"toolSearchRegex",name:"tool_search_tool_regex",required:[],optional:[...we]},tool_search_tool_bm25_20251119:{family:"toolSearchBm25",name:"tool_search_tool_bm25",required:[],optional:[...we]},tool_search_tool_bm25:{family:"toolSearchBm25",name:"tool_search_tool_bm25",required:[],optional:[...we]},advisor_20260301:{family:"advisor",name:"advisor",required:["model"],optional:[...we,"caching","max_uses","max_tokens"]},mcp_toolset:{family:"mcpToolset",required:["mcp_server_name"],optional:["cache_control","configs","default_config"]}};var U_=new Set(["server_tool_use","web_search_tool_result","web_fetch_tool_result","code_execution_tool_result","bash_code_execution_tool_result","text_editor_code_execution_tool_result","mcp_tool_use","mcp_tool_result","tool_search_tool_result","tool_reference","advisor_tool_result","advisor_result","advisor_redacted_result","container_upload","compaction","search_result","document","mid_conv_system","tool_addition","tool_removal","fallback","redacted_thinking"]);var M_={end_turn:"endTurn",max_tokens:"maxTokens",stop_sequence:"stopSequence",tool_use:"toolUse",refusal:"contentFilter",pause_turn:"pauseTurn"},c0=new Set(["message_start","content_block_start","content_block_delta","content_block_stop","message_delta","message_stop","error","ping"]),d0=new Set(["text_delta","thinking_delta","signature_delta","input_json_delta","citations_delta","compaction_delta"]),$_={overloaded_error:"OVERLOADED",rate_limit_error:"RATE_LIMIT",authentication_error:"AUTH",permission_error:"AUTH",invalid_request_error:"BAD_REQUEST",api_error:"UPSTREAM"},l0=["out of extra usage","draw from extra usage"];function Ju(e){let t=e.toLowerCase();return l0.some((n)=>t.includes(n))}function p0(e,t){return e==="invalid_request_error"&&Ju(t)}function m0(e){try{let t=JSON.parse(e);return typeof t==="object"&&t!==null?t:null}catch{return null}}async function*Hi(e,t={}){let n=t.cloak??null,r=0,o=0,i=0,s,a,u=0,c="endTurn",d=!1,p,l=new Set,m=(g)=>({type:"error",code:"UPSTREAM",message:g,retryable:!1});for await(let g of e){let h=m0(g.data);if(h===null)continue;if(!c0.has(g.event)){yield m(`unrecognized Anthropic stream event "${g.event}"`);return}switch(g.event){case"message_start":{let f=h.message??{};r=f.usage?.input_tokens??0,o=f.usage?.cache_read_input_tokens??0,i=f.usage?.cache_creation_input_tokens??0,s=f.usage?.cache_creation?.ephemeral_5m_input_tokens,a=f.usage?.cache_creation?.ephemeral_1h_input_tokens,yield{type:"start",id:String(f.id??""),model:String(f.model??"")};break}case"content_block_start":{let f=h.content_block??{},y=h.index??0;if(f.type==="text")yield{type:"blockStart",index:y,block:{type:"text"}};else if(f.type==="thinking")yield{type:"blockStart",index:y,block:{type:"thinking",signed:!0}};else if(f.type==="tool_use")yield{type:"blockStart",index:y,block:{type:"toolUse",id:String(f.id),name:D_(n,String(f.name))}};else if(f.type!==void 0&&U_.has(f.type)){l.add(y);let{type:_,...w}=f;yield{type:"blockStart",index:y,block:{type:"providerNative",provider:"anthropic",blockType:f.type,data:w}}}else{yield m(`unrecognized Anthropic content block type "${String(f.type)}"`);return}break}case"content_block_delta":{let f=h.index??0,y=h.delta??{};if(y.type==="text_delta")yield{type:"blockDelta",index:f,delta:{type:"text",text:y.text??""}};else if(y.type==="thinking_delta")yield{type:"blockDelta",index:f,delta:{type:"thinking",text:y.thinking??""}};else if(y.type==="signature_delta"&&(y.signature??"")!=="")yield{type:"blockDelta",index:f,delta:{type:"thinkingSignature",signature:y.signature??""}};else if(y.type==="input_json_delta")yield{type:"blockDelta",index:f,delta:l.has(f)?{type:"providerNativeJson",provider:"anthropic",partial:y.partial_json??""}:{type:"toolJson",partial:y.partial_json??""}};else if(y.type==="citations_delta")yield{type:"blockDelta",index:f,delta:{type:"providerNative",provider:"anthropic",deltaType:y.type,fold:"citation",data:{citation:y.citation}}};else if(y.type==="compaction_delta")yield{type:"blockDelta",index:f,delta:{type:"providerNative",provider:"anthropic",deltaType:y.type,fold:"merge",data:{...y.content===void 0?{}:{content:y.content},...y.encrypted_content===void 0?{}:{encrypted_content:y.encrypted_content}}}};else if(y.type===void 0||!d0.has(y.type)){yield m(`unrecognized Anthropic content block delta "${String(y.type)}"`);return}break}case"content_block_stop":l.delete(h.index??0),yield{type:"blockEnd",index:h.index??0};break;case"message_delta":{let f=h.delta!==void 0&&Object.hasOwn(h.delta,"safeguard_results")?h.delta:h;if(Object.hasOwn(f,"safeguard_results"))p={safeguard_results:f.safeguard_results};let y=h.delta?.stop_reason;if(typeof y==="string"){let _=Object.hasOwn(M_,y)?M_[y]:void 0;if(_===void 0){yield m(`unrecognized Anthropic stop reason "${y}"`);return}c=_}r=h.usage?.input_tokens??r,u=h.usage?.output_tokens??u;break}case"message_stop":if(Object.hasOwn(h,"safeguard_results"))p={safeguard_results:h.safeguard_results};d=!0,yield{type:"end",stopReason:c,...p===void 0?{}:{vendor:{anthropic:p}},usage:{inputTokens:r,outputTokens:u,cacheReadTokens:o,cacheWriteTokens:i,...s===void 0?{}:{cacheWrite5mTokens:s},...a===void 0?{}:{cacheWrite1hTokens:a}}};break;case"error":{d=!0;let f=String(h.error?.type),y=String(h.error?.message??"upstream error"),_=p0(f,y)?"FINGERPRINT_REFUSED":(Object.hasOwn($_,f)?$_[f]:void 0)??"UPSTREAM";yield{type:"error",code:_,message:y,retryable:ee[_]};break}default:break}}if(!d)yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before message_stop",retryable:ee.UPSTREAM}}var le=(e)=>typeof e==="object"&&e!==null&&!Array.isArray(e);function ot(e){let t=e.vendor?.openai,n=t?.response_format;if(n!==void 0){if(!le(n)||n.type!=="json_schema")return{kind:"malformed"};return ec(n.json_schema)}let r=t?.text;if(le(r)&&r.format!==void 0)return ec(r.format);if(r!==void 0)return{kind:"malformed"};let o=e.vendor?.anthropic?.output_config;if(le(o)&&o.format!==void 0)return ec(o.format);if(o!==void 0)return{kind:"malformed"};return{kind:"absent"}}function Nr(e){return le(e)&&(e.type===void 0||e.type==="json_schema")&&le(e.schema)}function tc(e){if(typeof e==="bigint")return!1;if(typeof e!=="object"||e===null)return!0;let t=new WeakSet,n=[e];while(n.length>0){let r=n.pop();if(r===void 0)break;if(t.has(r))continue;if(t.add(r),typeof r.toJSON==="function")try{if(typeof r.toJSON()==="bigint")return!1}catch{return!1}let o=Array.isArray(r)?r:Object.values(r);for(let i of o){if(typeof i==="bigint")return!1;if(typeof i==="object"&&i!==null)n.push(i)}}return!0}function ec(e){if(!Nr(e))return{kind:"malformed"};let t=e.schema;if(!le(t))return{kind:"malformed"};if(g0(t)||h0(t)||!tc(t))return{kind:"tooDeep"};return{kind:"readable",format:{schema:t,name:typeof e.name==="string"&&e.name.length>0?e.name:"response"}}}function f0(e,t){for(let n of e)for(let[r,o]of Object.entries(n))if(q_.includes(r)&&le(o)){for(let i of Object.values(o))if(le(i))t(i,n)}else if(z_.includes(r)&&Array.isArray(o)){for(let i of o)if(le(i))t(i,n)}else if(B_.includes(r)&&le(o))t(o,n)}function g0(e){let t=new Set,n=new WeakSet,r=[{node:e,entering:!0}];while(r.length>0){let o=r.pop();if(o===void 0)break;let i=o.node;if(!o.entering){t.delete(i),n.add(i);continue}if(t.has(i))return!0;if(n.has(i))continue;if(t.add(i),r.push({node:i,entering:!1}),Array.isArray(i)){for(let s of i)if(typeof s==="object"&&s!==null)r.push({node:s,entering:!0})}else for(let s of Object.values(i))if(typeof s==="object"&&s!==null)r.push({node:s,entering:!0})}return!1}function h0(e){let t=[e];for(let n=0;n<H_;n++){let r=[],o=new WeakSet;if(f0(t,(i)=>{if(o.has(i))return;o.add(i),r.push(i)}),r.length===0)return!1;t=r}return!0}function qt(e,t,n){let r=t.response_format;delete t.response_format;let o=t.text!==void 0&&!le(t.text);if(o)delete t.text;let i=ot(e),s=le(t.text)?t.text:void 0,a=s?.format;if(Nr(a)&&i.kind==="readable")return;let u=s!==void 0&&a!==void 0,c=s===void 0?void 0:{...s};if(c!==void 0)delete c.format;if(u)t.text=c;if(i.kind==="readable"){let d=i.format;return t.text={...c,format:{type:"json_schema",name:d.name,schema:d.schema,strict:!0}},`${n}:response-format-translated`}if(le(r)&&r.type==="json_object")return t.text={...c,format:{type:"json_object"}},`${n}:response-format-translated`;if(i.kind==="tooDeep")return`${n}:response-schema-too-deep`;if(r!==void 0||o||u)return`${n}:response-format-dropped`;return}function F_(e,t){if(t!==void 0)t.changed=!1,t.truncated=!1;return Wi(e,0,t??{changed:!1,truncated:!1},new Map)}var B_=["items","additionalItems","additionalProperties","contains","contentSchema","if","then","else","not","propertyNames","unevaluatedItems","unevaluatedProperties"],z_=["anyOf","allOf","oneOf","prefixItems","items"],q_=["properties","patternProperties","$defs","definitions","dependentSchemas","dependencies"],H_=64;function Wi(e,t,n,r){if(t>=H_)return n.truncated=!0,e;let o=r.get(t);if(o===void 0)o=new WeakMap,r.set(t,o);let i=o.get(e);if(i!==void 0)return i;let s={};o.set(e,s);for(let[a,u]of Object.entries(e)){if(q_.includes(a)&&le(u)){let c={};for(let[d,p]of Object.entries(u))Object.defineProperty(c,d,{value:le(p)?Wi(p,t+1,n,r):p,writable:!0,enumerable:!0,configurable:!0});s[a]=c;continue}if(B_.includes(a)&&le(u)){s[a]=Wi(u,t+1,n,r);continue}if(z_.includes(a)&&Array.isArray(u)){s[a]=u.map((c)=>le(c)?Wi(c,t+1,n,r):c);continue}s[a]=u}if(s.type==="object"&&s.additionalProperties!==!1)s.additionalProperties=!1,n.changed=!0;return s}function nc(e,t,n){if(e===void 0)return[];let r=[];for(let o of e){if(o.type==="text"){r.push({type:"text",text:o.text,cacheControl:pt(o)});continue}n(`${t}:system-${o.type}-dropped`)}return r}function Oe(e,t,n){if(e===void 0)return;return nc(e,t,n).map((r)=>r.text).join(`
|
|
1661
1661
|
|
|
1662
|
-
`)}function y0(e){let t=e.split(";")[0]?.trim().toLowerCase()??"";return t.startsWith("text/")||t.endsWith("+json")||t.endsWith("+xml")||_0.has(t)}var _0=new Set(["application/json","application/x-ndjson","application/xml","application/yaml","application/x-yaml","application/toml","application/javascript","application/typescript","application/sql","application/x-sh","message/rfc822"]);function w0(e){return Buffer.from(e.data,"base64").toString("utf8")}function
|
|
1662
|
+
`)}function y0(e){let t=e.split(";")[0]?.trim().toLowerCase()??"";return t.startsWith("text/")||t.endsWith("+json")||t.endsWith("+xml")||_0.has(t)}var _0=new Set(["application/json","application/x-ndjson","application/xml","application/yaml","application/x-yaml","application/toml","application/javascript","application/typescript","application/sql","application/x-sh","message/rfc822"]);function w0(e){return Buffer.from(e.data,"base64").toString("utf8")}function Ze(e,t){let n=[],r=[],o=!1;for(let i of e)if(y0(i.mediaType))n.push(w0(i));else if(t(i.mediaType))r.push(i);else o=!0;return{text:n,carried:r,dropped:o}}function be(e,t){return[e,...t].filter((n)=>n.length>0).join(`
|
|
1663
1663
|
|
|
1664
|
-
`)}var W_=Object.assign(Object.create(null),{"application/pdf":"pdf","application/rtf":"rtf","application/msword":"doc","application/vnd.ms-excel":"xls","application/vnd.ms-powerpoint":"ppt","application/vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx","application/vnd.openxmlformats-officedocument.presentationml.presentation":"pptx"});function rc(e){return e.filename??`file.${W_[e.mediaType]??"bin"}`}function Ht(e){let{text:t,carried:n,dropped:r}=
|
|
1665
|
-
`);return e.map((n)=>ji(n,t))}function E0(e){let t=e.messages.flatMap((i)=>i.role==="system"?i.content.filter((s)=>pt(s)!==void 0):[]),n=e.messages.at(-1),r=n?.role==="system"?n.content.findLast((i)=>pt(i)!==void 0):void 0,o=r===void 0?void 0:pt(r);return{...o===void 0?{}:{retarget:o},lost:t.length>(o===void 0?0:1)}}function v0(e,t){if(e.kind==="provider"){if(e.provider!=="anthropic")throw new w("INTERNAL",`anthropic adapter received a ${e.provider} provider-defined tool`);return{type:e.type,...e.name===""?{}:{name:e.name},...e.wire,...Nr(e.cacheControl)}}return{name:qi(t,e.name),...e.description===void 0?{}:{description:e.description},input_schema:e.inputSchema,...e.options??{},...Nr(e.cacheControl)}}function T0(e,t){switch(e.type){case"auto":return{type:"auto"};case"any":return{type:"any"};case"none":return{type:"none"};case"tool":return{type:"tool",name:qi(t,e.name)}}}function be(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function R0(e,t){let n=e.output_config;if(!be(n))return e;let r=Object.entries(n),o=r.filter(([i])=>i!=="effort");if(o.length===r.length)return e;if(t("anthropic:effort-unsupported"),o.length===0)return Object.fromEntries(Object.entries(e).filter(([i])=>i!=="output_config"));return{...e,output_config:Object.fromEntries(o)}}var S0=new Set(["clear_thinking_20251015"]);function x0(e){if(!be(e))return e!==void 0;return e.type!=="adaptive"&&e.type!=="enabled"}function A0(e,t){if(!x0(e.thinking))return;let n=e.context_management;if(!be(n)||!Array.isArray(n.edits))return;let r=n.edits.filter((o)=>!(be(o)&&S0.has(String(o.type))));if(r.length===n.edits.length)return;if(t("anthropic:clear-thinking-unsupported"),r.length===0&&Object.keys(n).length===1){delete e.context_management;return}e.context_management={...n,edits:r}}var C0=1024;function K_(e){let t=e.vendor?.anthropic;return typeof t==="object"&&t!==null&&"cache_control"in t}var O0=new Set(["text","image","tool_use","tool_result","document"]);function G_(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(!be(n)||!Array.isArray(n.content))continue;for(let r=n.content.length-1;r>=0;r--){let o=n.content[r];if(!be(o))continue;if(typeof o.type==="string"&&O0.has(o.type))return o}}return}function P0(e,t,n){if(Qo(t)!==0||K_(t))return;let r=0,o=(l)=>l-r>=C0,i=!1,s=Hh(t),a=s.tools,c=e.tools?.at(-1);if(c!==void 0&&o(a))c.cache_control={type:"ephemeral"},r=a,i=!0;let u=s.toolsAndSystem,d=e.system?.at(-1);if(d!==void 0&&o(u))d.cache_control={type:"ephemeral"},r=u,i=!0;if(i)n("anthropic:cache-breakpoint-added");if(!o(s.total))return;let p=G_(e.messages);if(p===void 0)return;p.cache_control={type:"ephemeral"},n("anthropic:history-cache-breakpoint-added")}function I0(e,t){let n=u_(e);if(t===void 0)return n??4096;return n===void 0?t:Math.min(t,n)}function Ki(e,t,n){let r=n.cloak??null,o=[],i=(k)=>{if(!o.includes(k))o.push(k)},s=nc(e.system,"anthropic",i),a=e.system===void 0?void 0:s.map((k)=>({type:"text",text:k.text,...Nr(k.cacheControl)}));if(n.oauth&&a?.[0]?.text!==j_)a=[{type:"text",text:j_},...a??[]],i("anthropic:oauth-system-prefix");if(r!==null)i("anthropic:tool-names-cloaked");let c=E0(e);if(c.lost)i("anthropic:system-turn-cache-control-dropped");for(let k of e.messages)for(let E of k.content)if(E.type==="toolResult"&&E.files!==void 0){let T=Ge(E.files,(I)=>I==="application/pdf");if(T.text.length>0)i("anthropic:tool-result-files-inlined");if(T.dropped)i("anthropic:files-dropped")}let u={model:t,messages:e.messages.flatMap((k)=>{if(k.role!=="system"){let E=k.content.filter(b0);if(E.length!==k.content.length)i("anthropic:unsigned-thinking-dropped");if(E.length===0)return[];return[{role:k.role,content:E.map((T)=>ji(T,r))}]}return[{role:k.role,content:k0(k.content,r)}]}),max_tokens:e.maxTokens??I0(t,n.maxOutputTokens),stream:e.stream};if(c.retarget!==void 0){let k=u.messages.at(-1);if(be(k)&&Array.isArray(k.content)){for(let E of k.content)if(be(E))delete E.cache_control}if(!K_(e)){let E=G_(u.messages.slice(0,-1));if(E===void 0)i("anthropic:system-turn-cache-control-dropped");else if(E.cache_control===void 0)Object.assign(E,Nr(c.retarget)),i("anthropic:system-turn-cache-control-retargeted")}}if(a!==void 0&&a.length>0)u.system=a;if(e.temperature!==void 0)u.temperature=e.temperature;if(e.stopSequences!==void 0)u.stop_sequences=e.stopSequences;if(e.tools!==void 0)u.tools=e.tools.map((k)=>v0(k,r));if(e.toolChoice!==void 0)u.tool_choice=T0(e.toolChoice,r);if(n.autoCache===!0)P0(u,e,i);if(e.reasoning!==void 0)switch(e.reasoning.mode){case"betweenTools":u.thinking={type:"between_tools"};break;case"adaptive":if(Mu(t)==="budget"){u.thinking={type:"disabled"},i("anthropic:adaptive-thinking-unsupported");break}if(u.thinking={type:"adaptive",...e.reasoning.display===void 0?{}:{display:e.reasoning.display}},e.reasoning.effort!==void 0)u.output_config={...be(u.output_config)?u.output_config:{},effort:e.reasoning.effort};break;case"budget":u.thinking={type:"enabled",budget_tokens:e.reasoning.budgetTokens};break;case"off":u.thinking={type:"disabled"};break}let d=e.vendor?.anthropic?.output_config,p=be(d)&&Lr(d.format),l=ot(e),m=!p&&l.kind==="readable"?l.format:void 0;if(m!==void 0)u.output_config={...be(u.output_config)?u.output_config:{},format:{type:"json_schema",schema:m.schema}},i("anthropic:response-format-translated");else if(!p&&l.kind==="tooDeep")i("anthropic:response-schema-too-deep");let{thinking:g,...h}=e.vendor?.anthropic??{};if(u.thinking!==void 0&&be(g))u.thinking={...g,...u.thinking};let f=h.output_config,y=be(u.output_config)?u.output_config:void 0,_=!1,b=h;if(y!==void 0&&f!==void 0)if(!be(f)){let{output_config:k,...E}=h;b=E,_=!0}else{let k=Lr(f.format),{format:E,...T}=f;b={...h,output_config:{...y,...k?f:T}},_=!k&&f.format!==void 0}if(Object.assign(u,Mu(t)==="budget"?R0(b,i):b),_)i("anthropic:response-format-dropped");return L0(u,i),A0(u,i),{body:u,degradations:o}}function L0(e,t){let n=e.output_config;if(!be(n))return;let r=n.format;if(!be(r)||!be(r.schema))return;let o={changed:!1,truncated:!1},i=F_(r.schema,o);if(o.truncated||!tc(i)){let{format:s,...a}=n;e.output_config=a,t("anthropic:response-schema-too-deep");return}if(!o.changed)return;e.output_config={...n,format:{...r,schema:i}},t("anthropic:response-schema-closed")}var N0="https://api.anthropic.com/v1/messages",D0="2023-06-01",U0="oauth-2025-04-20";function M0(e){if(e===null||typeof e!=="object")return null;let t=e.cloak;if(t===null||t===void 0||typeof t!=="object")return null;let{toWire:n,fromWire:r}=t;return n instanceof Map&&r instanceof Map?t:null}var Z_={buildRequest(e){let t=e.credentials.accessToken!==null,n=t?N_(e.request):null,{body:r,degradations:o}=Ki(e.request,e.model,{oauth:t,cloak:n,autoCache:e.autoCacheEnabled===!0,...e.maxOutputTokens===void 0?{}:{maxOutputTokens:e.maxOutputTokens}}),s=e.request.messages.find((l)=>l.role==="user")?.content.find((l)=>l.type==="text"),a={...r,system:v_(r.system??[],s?.text??""),stream:!0},c=[["Content-Type","application/json"],["anthropic-version",D0],["Accept","text/event-stream"]],u=new Set(e.request.betas??[]),d=[...o];if(u.has(Ee)){let m=A_("anthropic",e.model,t?"oauth":"apiKey")?.contextWindow;if(m!==void 0&&m<Mh)u.delete(Ee),d.push("anthropic:context-1m-dropped")}if(t)c.push(["Authorization",`Bearer ${e.credentials.accessToken}`]),u.add(U0);else if(e.credentials.apiKey!==null)c.push(["x-api-key",e.credentials.apiKey]);else throw e.fail("AUTH","anthropic credential has no token");if(u.size>0)c.push(["anthropic-beta",[...u].join(",")]);let p=fe(ge(je.headers,c),je.order);return{request:{url:N0,method:"POST",headers:p,body:T_(JSON.stringify(Ke(a,Li)))},decodeState:{cloak:n},degradations:d,...n===null?{}:{cloakedTools:n.toWire.size}}},decode({body:e,decodeState:t}){return Hi(ye(e),{cloak:M0(t)})},classifyError(e){if(e.status!==400||!Ju(e.fallback.message))return;return e.fail("FINGERPRINT_REFUSED",e.fallback.message,{degradations:e.degradations,...e.fallback.upstreamStatus===void 0?{}:{status:e.fallback.upstreamStatus},...e.fallback.retryAfterMs===void 0?{}:{retryAfterMs:e.fallback.retryAfterMs}})}};var oc=de("anthropic",gi.capabilities,Z_);function Te(e){if(e===429)return"RATE_LIMIT";if(e>=400&&e<500)return"AUTH";return"UPSTREAM"}function Fe(e,t){let n=typeof t==="object"&&t!==null&&typeof t.error==="string"?t.error:"";return`token endpoint rejected the request: ${/^[A-Za-z0-9_.:-]{1,64}$/.test(n)?n:`http_${e}`}`}var X_="__omni_authorization_pending";function Gi(e){return e instanceof w&&e[X_]===!0}function ic(e){let t=new w("AUTH",`authorization not yet complete: ${e}`);return t[X_]=!0,t}var sc=15000;function ue(e,t,n){return{url:e,method:"POST",headers:fe(ge(t.headers,[["Content-Type",n.contentType],["Accept","application/json"],...n.extraHeaders??[]]),t.order),body:n.body}}function V_(e,t,n,r,o=sc){return{url:e,method:"GET",headers:fe(ge(t.headers,[...n,["Accept","application/json"],...r]),t.order),body:"",timeoutMs:o}}function Be(e,t,n){return V_(e,t,[["Authorization",`Bearer ${n.accessToken}`]],n.extraHeaders??[])}function Zi(e,t,n=[],r){return V_(e,t,[],n,r)}function B(e){try{return JSON.parse(e)}catch{return null}}function Ze(e,t){if(e===429)throw new w("RATE_LIMIT",`${t} usage endpoint is rate limited`);return e>=200&&e<300}function D(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)?e:null}function it(e,t){for(let n of t){let r=e[n];if(typeof r==="number"&&Number.isFinite(r))return r;if(typeof r==="string"&&r.trim().length>0){let o=Number(r);if(Number.isFinite(o))return o}}return null}function Xi(e,t){for(let n of t){let r=D(e[n]);if(r!==null)return r}return null}function ac(e,t,n){for(let r of t.absolute){let o=e[r];if(typeof o==="number"&&Number.isFinite(o)&&o>0)return o<1000000000000?Math.round(o*1000):Math.round(o);if(typeof o==="string"){let i=Date.parse(o);if(!Number.isNaN(i))return i}}for(let r of t.relativeSeconds??[]){let o=e[r];if(typeof o==="number"&&Number.isFinite(o)&&o>=0)return n+Math.round(o*1000)}return null}var $0=["used","used_units","usage","consumed"],F0=["limit","limit_units","total","quota","allowed"],B0=["utilization","used_percent","usedPercent","percent_used","percentUsed","percent"],z0=["resets_at","resetsAt","reset_at","resetAt","resetTime","reset_time","resets_at_epoch","reset"],q0=["resets_in_seconds","resetsInSeconds","reset_after_seconds","resetAfterSeconds","seconds_until_reset","resets_in"];function st(e,t,n,r=null){let o=D(e);if(o===null)return null;let i=ac(o,{absolute:z0,relativeSeconds:q0},n),s=it(o,$0),a=it(o,F0);if(s!==null)return{windowType:t,used:Math.max(0,s),limit:a,resetsAt:i,windowMs:r};let c=it(o,["remaining","remaining_units","left"]);if(c!==null&&a!==null)return{windowType:t,used:Math.max(0,a-c),limit:a,resetsAt:i,windowMs:r};let u=it(o,B0);if(u!==null)return{windowType:t,used:Math.max(0,Math.min(100,u)),limit:100,resetsAt:i,windowMs:r};return null}function yt(e){let t=e.filter((n)=>n!==null);return t.length===0?null:{windows:t}}var tw="9d1c250a-e61b-44d9-88ed-5944d1962f5e",H0="https://claude.ai/oauth/authorize",W0="https://api.anthropic.com/v1/oauth/token",j0="https://platform.claude.com/oauth/code/callback",K0="org:create_api_key user:profile user:inference",nw="https://api.anthropic.com/api/oauth/usage";async function*Q_(e,t){let n=yield ue(W0,je,{contentType:"application/json",body:JSON.stringify({...e,client_id:tw})}),r=B(n.body);if(n.status<200||n.status>=300)throw t(Te(n.status),Fe(n.status,r));if(!G0(r)||typeof r.access_token!=="string")throw t("AUTH","token endpoint returned no access_token");return r}function G0(e){return typeof e==="object"&&e!==null}function Y_(e,t,n){return{secrets:{accessToken:e.access_token??null,refreshToken:e.refresh_token??t,apiKey:null,idToken:null},expiresAt:typeof e.expires_in==="number"?n()+e.expires_in*1000:null,accountEmail:e.account?.email_address??null,providerData:{}}}function rw(e,t){let n=D(e);if(n===null)return null;let r=Xi(n,["usage","rate_limits","limits"])??n;return yt([st(r.five_hour??r.fiveHour??r.session,"fiveHour",t),st(r.seven_day??r.sevenDay??r.weekly,"weekly",t)])}var cc={kind:"pkce",supportsManualPaste:!0,async*start({redirectUri:e,pkce:t,randomState:n}){let{verifier:r,challenge:o}=t(),i=n(),s=j0,a=new URL(H0);return a.searchParams.set("code","true"),a.searchParams.set("client_id",tw),a.searchParams.set("response_type","code"),a.searchParams.set("redirect_uri",s),a.searchParams.set("scope",K0),a.searchParams.set("code_challenge",o),a.searchParams.set("code_challenge_method","S256"),a.searchParams.set("state",i),{authorizeUrl:a.toString(),pending:{verifier:r,challenge:o,state:i,redirectUri:s}}},async*exchange({code:e,pending:t,fail:n,now:r}){let[o,i]=e.split("#");if(i!==void 0&&i!==t.state)throw n("AUTH","authorization state mismatch");let s=yield*Q_({grant_type:"authorization_code",code:(o??"").trim(),redirect_uri:t.redirectUri,code_verifier:t.verifier,state:t.state},n);return Y_(s,null,r)},async*refresh({refreshToken:e,fail:t,now:n}){let r=yield*Q_({grant_type:"refresh_token",refresh_token:e},t);return Y_(r,e,n)},async*usage({secrets:e,now:t}){if(e.accessToken===null)return null;let n=yield Be(nw,je,{accessToken:e.accessToken,extraHeaders:[["anthropic-beta","oauth-2025-04-20"],["User-Agent",`claude-code/${un}`]]});if(!Ze(n.status,"anthropic"))return null;return rw(B(n.body),t())},async*resetCredits({secrets:e}){if(e.accessToken===null)return null;let t=yield Be(X0,je,{accessToken:e.accessToken,extraHeaders:uc});if(!Ze(t.status,"anthropic"))return null;let n=D(B(t.body));return n===null?null:ow(n.cedar_ember??null)},async*redeemReset({secrets:e,creditId:t,requestId:n,fail:r}){if(e.accessToken===null)throw r("AUTH","credential holds no access token");let o=eC(t);if(o===null)throw r("CONFLICT","that reset credit is not available");let i=yield Be(V0,je,{accessToken:e.accessToken,extraHeaders:uc});if(i.status<200||i.status>=300)throw r(J_(i.status),`profile read refused: http_${i.status}`,{status:i.status});let s=tC(B(i.body));if(s===null)throw r("UPSTREAM","profile names no organization");let a=yield ue(`https://api.anthropic.com/api/organizations/${s}/reset_rate_limits`,je,{contentType:"application/json",body:JSON.stringify({program:Z0,grant_id:o,request_id:n}),extraHeaders:[["Authorization",`Bearer ${e.accessToken}`],...uc]});if(a.status<200||a.status>=300)throw r(J_(a.status),`reset claim refused: http_${a.status}`,{status:a.status});return nC(B(a.body),r)}},Z0="cedar_ember",X0=`${nw}?cedar_ember=1&skip_spend=1`,V0="https://api.anthropic.com/api/oauth/profile",Q0=/^[A-Za-z0-9-]{1,64}$/,uc=[["anthropic-beta","oauth-2025-04-20"]],Y0=/-u(\d+)$/;function J0(e,t){return`${e}-u${t}`}function eC(e){let t=e.replace(Y0,"");return t===e||t===""?null:t}function tC(e){let n=D(D(e)?.organization)?.uuid;return typeof n==="string"&&Q0.test(n)?n:null}function ow(e){if(e===null)return{available:0,credits:[]};let t=D(e);if(t===null||!Array.isArray(t.grants))return null;let n=typeof t.next_grant_id==="string"?t.next_grant_id:null,r=t.at_limit===!0,o=0,i=t.grants.flatMap((s)=>{let a=D(s);if(a===null||typeof a.id!=="string")return[];let c=typeof a.resets_left==="number"?a.resets_left:0,u=c>0&&a.usable_now===!0&&a.paused!==!0&&(a.use_requires_limit!==!0||r)&&(n===null||n===a.id);if(u)o+=c;return[{id:J0(a.id,c),status:u?"available":c>0?"unavailable":"used",title:typeof a.label==="string"&&a.label!==""?a.label:null,grantedAt:ew(a.starts_at),expiresAt:ew(a.ends_at)}]});return{available:o,credits:i}}function nC(e,t){let n=D(e),r=typeof n?.result==="string"?n.result:null;if(r==="reset")return{windowsReset:Array.isArray(n?.cleared)?n.cleared.length:null};if(r==="cooldown")throw t("RATE_LIMIT","reset claim refused: cooldown");if(r==="already_used"||r==="not_limited"||r==="ineligible")throw t("CONFLICT",`reset claim refused: ${r}`);throw t("UPSTREAM","reset claim answered without a reset")}function J_(e){if(e===429)return"RATE_LIMIT";if(e===401||e===403)return"AUTH";if(e>=400&&e<500)return"CONFLICT";return"UPSTREAM"}function ew(e){if(typeof e!=="string")return null;let t=Date.parse(e);return Number.isNaN(t)?null:t}import{createHash as vC}from"crypto";var rC=/^[A-Za-z_][A-Za-z0-9_.-]{0,127}$/;function oC(e){let t=e.replace(/[^A-Za-z0-9_.-]+/g,"_");if(!/^[A-Za-z_]/.test(t))t=`_${t}`;if(t==="_")return{base:"_tool",forced:!0};if(t.length>128)return{base:t.slice(0,122),forced:!0};return{base:t,forced:!1}}function iC(e){let t=new Set,n=new Set,r=(i)=>{(rC.test(i)?n:t).add(i)},o=new Set;for(let i of e.messages)for(let s of i.content)if(s.type==="toolUse")o.add(s.id);for(let i of e.tools??[])if(i.kind==="portable")r(i.name);for(let i of e.messages)for(let s of i.content){if(s.type==="toolUse")r(s.name);if(s.type==="toolResult"&&!o.has(s.toolUseId))r(s.toolUseId)}if(e.toolChoice?.type==="tool")r(e.toolChoice.name);return{renamable:[...t],reserved:[...n]}}function sC(e){return(Bun.hash.xxHash64(Buffer.from(e,"utf8"))&0xffffffn).toString(16).padStart(6,"0")}function iw(e){let{renamable:t,reserved:n}=iC(e),r=new Map,o=(c)=>{r.set(c,(r.get(c)??0)+1)};for(let c of n)o(c);let i=new Map;for(let c of t){let u=oC(c);i.set(c,u),o(u.base)}let s=new Map,a=new Map;for(let[c,{base:u,forced:d}]of i){let p=d||(r.get(u)??0)>1?u+sC(c):u;s.set(c,p),a.set(p,c)}return s.size===0?null:{toWire:s,fromWire:a}}function Dr(e,t){return e?.toWire.get(t)??t}function sw(e,t){return e?.fromWire.get(t)??t}var aw={STOP:"endTurn",MAX_TOKENS:"maxTokens",SAFETY:"contentFilter",PROHIBITED_CONTENT:"contentFilter",SPII:"contentFilter",BLOCKLIST:"contentFilter",RECITATION:"contentFilter"},uw={RESOURCE_EXHAUSTED:"RATE_LIMIT",UNAUTHENTICATED:"AUTH",PERMISSION_DENIED:"AUTH",INVALID_ARGUMENT:"BAD_REQUEST",FAILED_PRECONDITION:"BAD_REQUEST",UNAVAILABLE:"UPSTREAM",INTERNAL:"UPSTREAM",DEADLINE_EXCEEDED:"TIMEOUT"};function aC(e){try{let t=JSON.parse(e);return typeof t==="object"&&t!==null?t:null}catch{return null}}function Vi(e){return typeof e==="number"&&Number.isFinite(e)?e:0}function cw(e){return Se(Vi(e?.promptTokenCount),Vi(e?.candidatesTokenCount)+Vi(e?.thoughtsTokenCount),Vi(e?.cachedContentTokenCount))}async function*Qi(e,t={}){let n=t.cloak??null,r=!1,o=!1,i=0,s=0,a=null,c=function*(){if(a===null)return;yield{type:"blockEnd",index:a.index},a=null};for await(let u of e){if(u.data==="[DONE]")continue;let d=aC(u.data);if(d===null)continue;let p=d.error??d.response?.error;if(p!==void 0){o=!0,yield*c();let b=String(p.status??""),k=(Object.hasOwn(uw,b)?uw[b]:void 0)??"UPSTREAM";yield{type:"error",code:k,message:String(p.message??"upstream error"),retryable:J[k]};return}let l=d.response;if(l===void 0)continue;if(l.promptFeedback?.blockReason!==void 0&&(l.candidates??[]).length===0){if(o=!0,!r)yield{type:"start",id:"",model:""};yield*c(),yield{type:"end",stopReason:"contentFilter",usage:cw(l.usageMetadata)};return}if(!r)r=!0,yield{type:"start",id:String(l.responseId??""),model:String(l.modelVersion??"")};let g=l.candidates??[];if(g.length>1){o=!0,yield*c(),yield{type:"error",code:"UPSTREAM",message:`Antigravity returned ${g.length} candidates, which cannot be represented`,retryable:!1};return}let h=g[0];for(let b of h?.content?.parts??[]){let k=b.functionCall;if(k!==void 0&&typeof k.name==="string"){yield*c();let T=i++;yield{type:"blockStart",index:T,block:{type:"toolUse",id:typeof k.id==="string"&&k.id.length>0?k.id:`fc_${s}`,name:sw(n,k.name)}},yield{type:"blockDelta",index:T,delta:{type:"toolJson",partial:JSON.stringify(k.args??{})}},yield{type:"blockEnd",index:T},s++;continue}if(typeof b.text!=="string")continue;let E=b.thought===!0?"thinking":"text";if(a===null||a.kind!==E)yield*c(),a={kind:E,index:i++},yield{type:"blockStart",index:a.index,block:{type:E}};yield{type:"blockDelta",index:a.index,delta:E==="thinking"?{type:"thinking",text:b.text}:{type:"text",text:b.text}}}let f=h?.finishReason;if(f===void 0||f===null)continue;o=!0,yield*c();let y=String(f);if(y==="MALFORMED_FUNCTION_CALL"){yield{type:"error",code:"BAD_REQUEST",message:"the model emitted a malformed function call",retryable:!1};return}let _=Object.hasOwn(aw,y)?aw[y]:void 0;if(_===void 0){yield{type:"error",code:"UPSTREAM",message:`unrecognized Antigravity finish reason "${y}"`,retryable:!1};return}yield{type:"end",stopReason:s>0?"toolUse":_,usage:cw(l.usageMetadata)};return}if(!o)yield*c(),yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before the response finished",retryable:J.UPSTREAM}}var uC="skip_thought_signature_validator";function cC(e){let t=new Map;for(let n of e.messages)for(let r of n.content)if(r.type==="toolUse")t.set(r.id,r.name);return t}function dC(e){let t=[];for(let n of e){let r=t[t.length-1];if(r!==void 0&&r.role===n.role)r.parts.push(...n.parts);else t.push({role:n.role,parts:[...n.parts]})}return t}function lC(e,t){let n=e[0];if(n===void 0)return e;if(!(n.role==="model"||n.parts[0]!==void 0&&("functionResponse"in n.parts[0])))return e;return t("antigravity:opening-turn-added"),[{role:"user",parts:[{text:""}]},...e]}function pC(e,t){if(e[e.length-1]?.role!=="model")return e;return t("antigravity:closing-turn-added"),[...e,{role:"user",parts:[{text:" "}]}]}var mC=(e)=>("cacheControl"in e)&&e.cacheControl!==void 0,fC="antigravity:tool-schema-pruned",gC="antigravity:agent-preamble-dropped",hC="antigravity:billing-header-dropped";function yC(e,t){let n=e.split(/(?:\r?\n){2,}/),r=!1,o=!1,i=n.filter((s)=>{let a=s.trim();if(a===Fi)return r=!0,!1;if(a.startsWith(Pr))return o=!0,!1;return!0});if(i.length===n.length)return e;if(r)t(gC);if(o)t(hC);return i.join(`
|
|
1664
|
+
`)}var W_=Object.assign(Object.create(null),{"application/pdf":"pdf","application/rtf":"rtf","application/msword":"doc","application/vnd.ms-excel":"xls","application/vnd.ms-powerpoint":"ppt","application/vnd.openxmlformats-officedocument.wordprocessingml.document":"docx","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":"xlsx","application/vnd.openxmlformats-officedocument.presentationml.presentation":"pptx"});function rc(e){return e.filename??`file.${W_[e.mediaType]??"bin"}`}function Ht(e){let{text:t,carried:n,dropped:r}=Ze(e,(i)=>(i in W_));return{parts:n.map((i)=>({type:"input_file",filename:rc(i),file_data:`data:${i.mediaType};base64,${i.data}`})),text:t,dropped:r}}var j_="You are Claude Code, Anthropic's official CLI for Claude.";function Dr(e){if(e===void 0)return{};return{cache_control:{type:e.type,...e.ttl===void 0?{}:{ttl:e.ttl}}}}function b0(e){return e.type!=="thinking"||e.signature!==void 0&&e.signature!==""}function ji(e,t){let n=Dr(pt(e));switch(e.type){case"text":return{type:"text",text:e.text,...e.citations===void 0?{}:{citations:e.citations},...n};case"image":return{type:"image",source:{type:"base64",media_type:e.mediaType,data:e.data},...n};case"thinking":return{type:"thinking",thinking:e.text,signature:e.signature};case"toolUse":return{type:"tool_use",id:e.id,name:qi(t,e.name),input:e.input,...n};case"toolResult":{let r=Ze(e.files??[],(a)=>a==="application/pdf"),o=be(e.content,r.text),i=r.carried.map((a)=>({type:"document",source:{type:"base64",media_type:a.mediaType,data:a.data},...a.filename!==void 0&&{title:a.filename}})),s=[...(e.images??[]).map((a)=>ji(a,t)),...i,...(e.native??[]).map((a)=>ji(a,t))];return{type:"tool_result",tool_use_id:e.toolUseId,content:s.length===0?o:[...o.length>0?[{type:"text",text:o}]:[],...s],is_error:e.isError,...n}}case"providerNative":if(e.provider!=="anthropic")throw new b("INTERNAL",`anthropic adapter received a ${e.provider} provider-native block`);return{...e.data,type:e.blockType,...n}}}function k0(e,t){if(e.every((n)=>n.type==="text"))return e.map((n)=>n.text).join(`
|
|
1665
|
+
`);return e.map((n)=>ji(n,t))}function E0(e){let t=e.messages.flatMap((i)=>i.role==="system"?i.content.filter((s)=>pt(s)!==void 0):[]),n=e.messages.at(-1),r=n?.role==="system"?n.content.findLast((i)=>pt(i)!==void 0):void 0,o=r===void 0?void 0:pt(r);return{...o===void 0?{}:{retarget:o},lost:t.length>(o===void 0?0:1)}}function v0(e,t){if(e.kind==="provider"){if(e.provider!=="anthropic")throw new b("INTERNAL",`anthropic adapter received a ${e.provider} provider-defined tool`);return{type:e.type,...e.name===""?{}:{name:e.name},...e.wire,...Dr(e.cacheControl)}}return{name:qi(t,e.name),...e.description===void 0?{}:{description:e.description},input_schema:e.inputSchema,...e.options??{},...Dr(e.cacheControl)}}function T0(e,t){switch(e.type){case"auto":return{type:"auto"};case"any":return{type:"any"};case"none":return{type:"none"};case"tool":return{type:"tool",name:qi(t,e.name)}}}function he(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function R0(e,t){let n=e.output_config;if(!he(n))return e;let r=Object.entries(n),o=r.filter(([i])=>i!=="effort");if(o.length===r.length)return e;if(t("anthropic:effort-unsupported"),o.length===0)return Object.fromEntries(Object.entries(e).filter(([i])=>i!=="output_config"));return{...e,output_config:Object.fromEntries(o)}}var S0=new Set(["clear_thinking_20251015"]);function x0(e){if(!he(e))return e!==void 0;return e.type!=="adaptive"&&e.type!=="enabled"}function A0(e,t){if(!x0(e.thinking))return;let n=e.context_management;if(!he(n)||!Array.isArray(n.edits))return;let r=n.edits.filter((o)=>!(he(o)&&S0.has(String(o.type))));if(r.length===n.edits.length)return;if(t("anthropic:clear-thinking-unsupported"),r.length===0&&Object.keys(n).length===1){delete e.context_management;return}e.context_management={...n,edits:r}}var O0=1024;function K_(e){let t=e.vendor?.anthropic;return typeof t==="object"&&t!==null&&"cache_control"in t}var C0=new Set(["text","image","tool_use","tool_result","document"]);function G_(e){for(let t=e.length-1;t>=0;t--){let n=e[t];if(!he(n)||!Array.isArray(n.content))continue;for(let r=n.content.length-1;r>=0;r--){let o=n.content[r];if(!he(o))continue;if(typeof o.type==="string"&&C0.has(o.type))return o}}return}function P0(e,t,n){if(Yo(t)!==0||K_(t))return;let r=0,o=(l)=>l-r>=O0,i=!1,s=Hh(t),a=s.tools,u=e.tools?.at(-1);if(u!==void 0&&o(a))u.cache_control={type:"ephemeral"},r=a,i=!0;let c=s.toolsAndSystem,d=e.system?.at(-1);if(d!==void 0&&o(c))d.cache_control={type:"ephemeral"},r=c,i=!0;if(i)n("anthropic:cache-breakpoint-added");if(!o(s.total))return;let p=G_(e.messages);if(p===void 0)return;p.cache_control={type:"ephemeral"},n("anthropic:history-cache-breakpoint-added")}function I0(e,t){let n=u_(e);if(t===void 0)return n??4096;return n===void 0?t:Math.min(t,n)}function Ki(e,t,n){let r=n.cloak??null,o=[],i=(k)=>{if(!o.includes(k))o.push(k)},s=nc(e.system,"anthropic",i),a=e.vendor?.anthropic?.system,u=e.system===void 0?void 0:s.map((k,T)=>{let C=Array.isArray(a)?a[T]:void 0;return{...n.preserveSystem===!0&&he(C)?Object.fromEntries(Object.entries(C).filter(([Re])=>Re!=="type"&&Re!=="text"&&Re!=="cache_control")):{},type:"text",text:k.text,...Dr(k.cacheControl)}});if(n.oauth&&n.preserveSystem!==!0&&u?.[0]?.text!==j_)u=[{type:"text",text:j_},...u??[]],i("anthropic:oauth-system-prefix");if(r!==null)i("anthropic:tool-names-cloaked");let c=E0(e);if(c.lost)i("anthropic:system-turn-cache-control-dropped");for(let k of e.messages)for(let T of k.content)if(T.type==="toolResult"&&T.files!==void 0){let C=Ze(T.files,(V)=>V==="application/pdf");if(C.text.length>0)i("anthropic:tool-result-files-inlined");if(C.dropped)i("anthropic:files-dropped")}let d={model:t,messages:e.messages.flatMap((k)=>{if(k.role!=="system"){let T=k.content.filter(b0);if(T.length!==k.content.length)i("anthropic:unsigned-thinking-dropped");if(T.length===0)return[];return[{role:k.role,content:T.map((C)=>ji(C,r))}]}return[{role:k.role,content:k0(k.content,r)}]}),max_tokens:e.maxTokens??I0(t,n.maxOutputTokens),stream:e.stream};if(c.retarget!==void 0){let k=d.messages.at(-1);if(he(k)&&Array.isArray(k.content)){for(let T of k.content)if(he(T))delete T.cache_control}if(!K_(e)){let T=G_(d.messages.slice(0,-1));if(T===void 0)i("anthropic:system-turn-cache-control-dropped");else if(T.cache_control===void 0)Object.assign(T,Dr(c.retarget)),i("anthropic:system-turn-cache-control-retargeted")}}if(u!==void 0&&u.length>0)d.system=u;if(e.temperature!==void 0)d.temperature=e.temperature;if(e.stopSequences!==void 0)d.stop_sequences=e.stopSequences;if(e.tools!==void 0)d.tools=e.tools.map((k)=>v0(k,r));if(e.toolChoice!==void 0)d.tool_choice=T0(e.toolChoice,r);if(n.autoCache===!0)P0(d,e,i);if(e.reasoning!==void 0)switch(e.reasoning.mode){case"betweenTools":d.thinking={type:"between_tools"};break;case"adaptive":if(Mu(t)==="budget"){d.thinking={type:"disabled"},i("anthropic:adaptive-thinking-unsupported");break}if(d.thinking={type:"adaptive",...e.reasoning.display===void 0?{}:{display:e.reasoning.display}},e.reasoning.effort!==void 0)d.output_config={...he(d.output_config)?d.output_config:{},effort:e.reasoning.effort};break;case"budget":d.thinking={type:"enabled",budget_tokens:e.reasoning.budgetTokens};break;case"off":d.thinking={type:"disabled"};break}let p=e.vendor?.anthropic?.output_config,l=he(p)&&Nr(p.format),m=ot(e),g=!l&&m.kind==="readable"?m.format:void 0;if(g!==void 0)d.output_config={...he(d.output_config)?d.output_config:{},format:{type:"json_schema",schema:g.schema}},i("anthropic:response-format-translated");else if(!l&&m.kind==="tooDeep")i("anthropic:response-schema-too-deep");let{thinking:h,...f}=e.vendor?.anthropic??{};if(d.thinking!==void 0&&he(h))d.thinking={...h,...d.thinking};let y=f.output_config,_=he(d.output_config)?d.output_config:void 0,w=!1,v=f;if(_!==void 0&&y!==void 0)if(!he(y)){let{output_config:k,...T}=f;v=T,w=!0}else{let k=Nr(y.format),{format:T,...C}=y;v={...f,output_config:{..._,...k?y:C}},w=!k&&y.format!==void 0}if(Object.assign(d,Mu(t)==="budget"?R0(v,i):v),n.preserveSystem===!0&&a!==void 0&&u!==void 0){if(!(typeof a==="string"&&u.length===1&&u[0]?.text===a&&u[0]?.cache_control===void 0))d.system=u}if(w)i("anthropic:response-format-dropped");return L0(d,i),A0(d,i),{body:d,degradations:o}}function L0(e,t){let n=e.output_config;if(!he(n))return;let r=n.format;if(!he(r)||!he(r.schema))return;let o={changed:!1,truncated:!1},i=F_(r.schema,o);if(o.truncated||!tc(i)){let{format:s,...a}=n;e.output_config=a,t("anthropic:response-schema-too-deep");return}if(!o.changed)return;e.output_config={...n,format:{...r,schema:i}},t("anthropic:response-schema-closed")}var N0="https://api.anthropic.com/v1/messages",D0="2023-06-01",U0="oauth-2025-04-20";function M0(e){if(e===null||typeof e!=="object")return null;let t=e.cloak;if(t===null||t===void 0||typeof t!=="object")return null;let{toWire:n,fromWire:r}=t;return n instanceof Map&&r instanceof Map?t:null}var Z_={buildRequest(e){let t=e.credentials.accessToken!==null,n=e.request.vendor?.anthropic?.safeguards,r=Array.isArray(n)&&n.length>0,o=e.request.providerHeaders?.anthropic??{},i=t&&!r?N_(e.request):null,{body:s,degradations:a}=Ki(e.request,e.model,{oauth:t,preserveSystem:r,cloak:i,autoCache:e.autoCacheEnabled===!0,...e.maxOutputTokens===void 0?{}:{maxOutputTokens:e.maxOutputTokens}}),c=e.request.messages.find((h)=>h.role==="user")?.content.find((h)=>h.type==="text"),d={...s,...!r?{system:v_(s.system??[],c?.text??"")}:{},stream:!0},p=[["Content-Type","application/json"],["anthropic-version",o["anthropic-version"]??D0],["Accept","text/event-stream"]];for(let[h,f]of Object.entries(o))if(h.startsWith("anthropic-")&&h!=="anthropic-version"&&h!=="anthropic-beta")p.push([h,f]);let l=new Set(e.request.betas??[]),m=[...a];if(l.has(Ee)){let f=A_("anthropic",e.model,t?"oauth":"apiKey")?.contextWindow;if(f!==void 0&&f<Mh)l.delete(Ee),m.push("anthropic:context-1m-dropped")}if(t)p.push(["Authorization",`Bearer ${e.credentials.accessToken}`]),l.add(U0);else if(e.credentials.apiKey!==null)p.push(["x-api-key",e.credentials.apiKey]);else throw e.fail("AUTH","anthropic credential has no token");if(l.size>0){let h=o["anthropic-beta"],f=h?.split(",").map((w)=>w.trim()).filter(Boolean),y=f?.every((w)=>l.has(w)),_=[...l].filter((w)=>!f?.includes(w));p.push(["anthropic-beta",y?[h,..._].join(","):[...l].join(",")])}let g=fe(ge(Ge.headers,p),Ge.order);return{request:{url:N0,method:"POST",headers:g,body:r?JSON.stringify(Be(d,Cr)):T_(JSON.stringify(Be(d,Cr)))},decodeState:{cloak:i},degradations:m,...i===null?{}:{cloakedTools:i.toWire.size}}},decode({body:e,decodeState:t}){return Hi(_e(e),{cloak:M0(t)})},classifyError(e){if(e.status!==400||!Ju(e.fallback.message))return;return e.fail("FINGERPRINT_REFUSED",e.fallback.message,{degradations:e.degradations,...e.fallback.upstreamStatus===void 0?{}:{status:e.fallback.upstreamStatus},...e.fallback.retryAfterMs===void 0?{}:{retryAfterMs:e.fallback.retryAfterMs}})}};var oc=de("anthropic",hi.capabilities,Z_);function Te(e){if(e===429)return"RATE_LIMIT";if(e>=400&&e<500)return"AUTH";return"UPSTREAM"}function ze(e,t){let n=typeof t==="object"&&t!==null&&typeof t.error==="string"?t.error:"";return`token endpoint rejected the request: ${/^[A-Za-z0-9_.:-]{1,64}$/.test(n)?n:`http_${e}`}`}var X_="__omni_authorization_pending";function Gi(e){return e instanceof b&&e[X_]===!0}function ic(e){let t=new b("AUTH",`authorization not yet complete: ${e}`);return t[X_]=!0,t}var sc=15000;function ue(e,t,n){return{url:e,method:"POST",headers:fe(ge(t.headers,[["Content-Type",n.contentType],["Accept","application/json"],...n.extraHeaders??[]]),t.order),body:n.body}}function V_(e,t,n,r,o=sc){return{url:e,method:"GET",headers:fe(ge(t.headers,[...n,["Accept","application/json"],...r]),t.order),body:"",timeoutMs:o}}function qe(e,t,n){return V_(e,t,[["Authorization",`Bearer ${n.accessToken}`]],n.extraHeaders??[])}function Zi(e,t,n=[],r){return V_(e,t,[],n,r)}function B(e){try{return JSON.parse(e)}catch{return null}}function Xe(e,t){if(e===429)throw new b("RATE_LIMIT",`${t} usage endpoint is rate limited`);return e>=200&&e<300}function D(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)?e:null}function it(e,t){for(let n of t){let r=e[n];if(typeof r==="number"&&Number.isFinite(r))return r;if(typeof r==="string"&&r.trim().length>0){let o=Number(r);if(Number.isFinite(o))return o}}return null}function Xi(e,t){for(let n of t){let r=D(e[n]);if(r!==null)return r}return null}function ac(e,t,n){for(let r of t.absolute){let o=e[r];if(typeof o==="number"&&Number.isFinite(o)&&o>0)return o<1000000000000?Math.round(o*1000):Math.round(o);if(typeof o==="string"){let i=Date.parse(o);if(!Number.isNaN(i))return i}}for(let r of t.relativeSeconds??[]){let o=e[r];if(typeof o==="number"&&Number.isFinite(o)&&o>=0)return n+Math.round(o*1000)}return null}var $0=["used","used_units","usage","consumed"],F0=["limit","limit_units","total","quota","allowed"],B0=["utilization","used_percent","usedPercent","percent_used","percentUsed","percent"],z0=["resets_at","resetsAt","reset_at","resetAt","resetTime","reset_time","resets_at_epoch","reset"],q0=["resets_in_seconds","resetsInSeconds","reset_after_seconds","resetAfterSeconds","seconds_until_reset","resets_in"];function st(e,t,n,r=null){let o=D(e);if(o===null)return null;let i=ac(o,{absolute:z0,relativeSeconds:q0},n),s=it(o,$0),a=it(o,F0);if(s!==null)return{windowType:t,used:Math.max(0,s),limit:a,resetsAt:i,windowMs:r};let u=it(o,["remaining","remaining_units","left"]);if(u!==null&&a!==null)return{windowType:t,used:Math.max(0,a-u),limit:a,resetsAt:i,windowMs:r};let c=it(o,B0);if(c!==null)return{windowType:t,used:Math.max(0,Math.min(100,c)),limit:100,resetsAt:i,windowMs:r};return null}function yt(e){let t=e.filter((n)=>n!==null);return t.length===0?null:{windows:t}}var tw="9d1c250a-e61b-44d9-88ed-5944d1962f5e",H0="https://claude.ai/oauth/authorize",W0="https://api.anthropic.com/v1/oauth/token",j0="https://platform.claude.com/oauth/code/callback",K0="org:create_api_key user:profile user:inference",nw="https://api.anthropic.com/api/oauth/usage";async function*Q_(e,t){let n=yield ue(W0,Ge,{contentType:"application/json",body:JSON.stringify({...e,client_id:tw})}),r=B(n.body);if(n.status<200||n.status>=300)throw t(Te(n.status),ze(n.status,r));if(!G0(r)||typeof r.access_token!=="string")throw t("AUTH","token endpoint returned no access_token");return r}function G0(e){return typeof e==="object"&&e!==null}function Y_(e,t,n){return{secrets:{accessToken:e.access_token??null,refreshToken:e.refresh_token??t,apiKey:null,idToken:null},expiresAt:typeof e.expires_in==="number"?n()+e.expires_in*1000:null,accountEmail:e.account?.email_address??null,providerData:{}}}function rw(e,t){let n=D(e);if(n===null)return null;let r=Xi(n,["usage","rate_limits","limits"])??n;return yt([st(r.five_hour??r.fiveHour??r.session,"fiveHour",t),st(r.seven_day??r.sevenDay??r.weekly,"weekly",t)])}var cc={kind:"pkce",supportsManualPaste:!0,async*start({redirectUri:e,pkce:t,randomState:n}){let{verifier:r,challenge:o}=t(),i=n(),s=j0,a=new URL(H0);return a.searchParams.set("code","true"),a.searchParams.set("client_id",tw),a.searchParams.set("response_type","code"),a.searchParams.set("redirect_uri",s),a.searchParams.set("scope",K0),a.searchParams.set("code_challenge",o),a.searchParams.set("code_challenge_method","S256"),a.searchParams.set("state",i),{authorizeUrl:a.toString(),pending:{verifier:r,challenge:o,state:i,redirectUri:s}}},async*exchange({code:e,pending:t,fail:n,now:r}){let[o,i]=e.split("#");if(i!==void 0&&i!==t.state)throw n("AUTH","authorization state mismatch");let s=yield*Q_({grant_type:"authorization_code",code:(o??"").trim(),redirect_uri:t.redirectUri,code_verifier:t.verifier,state:t.state},n);return Y_(s,null,r)},async*refresh({refreshToken:e,fail:t,now:n}){let r=yield*Q_({grant_type:"refresh_token",refresh_token:e},t);return Y_(r,e,n)},async*usage({secrets:e,now:t}){if(e.accessToken===null)return null;let n=yield qe(nw,Ge,{accessToken:e.accessToken,extraHeaders:[["anthropic-beta","oauth-2025-04-20"],["User-Agent",`claude-code/${un}`]]});if(!Xe(n.status,"anthropic"))return null;return rw(B(n.body),t())},async*resetCredits({secrets:e}){if(e.accessToken===null)return null;let t=yield qe(X0,Ge,{accessToken:e.accessToken,extraHeaders:uc});if(!Xe(t.status,"anthropic"))return null;let n=D(B(t.body));return n===null?null:ow(n.cedar_ember??null)},async*redeemReset({secrets:e,creditId:t,requestId:n,fail:r}){if(e.accessToken===null)throw r("AUTH","credential holds no access token");let o=eO(t);if(o===null)throw r("CONFLICT","that reset credit is not available");let i=yield qe(V0,Ge,{accessToken:e.accessToken,extraHeaders:uc});if(i.status<200||i.status>=300)throw r(J_(i.status),`profile read refused: http_${i.status}`,{status:i.status});let s=tO(B(i.body));if(s===null)throw r("UPSTREAM","profile names no organization");let a=yield ue(`https://api.anthropic.com/api/organizations/${s}/reset_rate_limits`,Ge,{contentType:"application/json",body:JSON.stringify({program:Z0,grant_id:o,request_id:n}),extraHeaders:[["Authorization",`Bearer ${e.accessToken}`],...uc]});if(a.status<200||a.status>=300)throw r(J_(a.status),`reset claim refused: http_${a.status}`,{status:a.status});return nO(B(a.body),r)}},Z0="cedar_ember",X0=`${nw}?cedar_ember=1&skip_spend=1`,V0="https://api.anthropic.com/api/oauth/profile",Q0=/^[A-Za-z0-9-]{1,64}$/,uc=[["anthropic-beta","oauth-2025-04-20"]],Y0=/-u(\d+)$/;function J0(e,t){return`${e}-u${t}`}function eO(e){let t=e.replace(Y0,"");return t===e||t===""?null:t}function tO(e){let n=D(D(e)?.organization)?.uuid;return typeof n==="string"&&Q0.test(n)?n:null}function ow(e){if(e===null)return{available:0,credits:[]};let t=D(e);if(t===null||!Array.isArray(t.grants))return null;let n=typeof t.next_grant_id==="string"?t.next_grant_id:null,r=t.at_limit===!0,o=0,i=t.grants.flatMap((s)=>{let a=D(s);if(a===null||typeof a.id!=="string")return[];let u=typeof a.resets_left==="number"?a.resets_left:0,c=u>0&&a.usable_now===!0&&a.paused!==!0&&(a.use_requires_limit!==!0||r)&&(n===null||n===a.id);if(c)o+=u;return[{id:J0(a.id,u),status:c?"available":u>0?"unavailable":"used",title:typeof a.label==="string"&&a.label!==""?a.label:null,grantedAt:ew(a.starts_at),expiresAt:ew(a.ends_at)}]});return{available:o,credits:i}}function nO(e,t){let n=D(e),r=typeof n?.result==="string"?n.result:null;if(r==="reset")return{windowsReset:Array.isArray(n?.cleared)?n.cleared.length:null};if(r==="cooldown")throw t("RATE_LIMIT","reset claim refused: cooldown");if(r==="already_used"||r==="not_limited"||r==="ineligible")throw t("CONFLICT",`reset claim refused: ${r}`);throw t("UPSTREAM","reset claim answered without a reset")}function J_(e){if(e===429)return"RATE_LIMIT";if(e===401||e===403)return"AUTH";if(e>=400&&e<500)return"CONFLICT";return"UPSTREAM"}function ew(e){if(typeof e!=="string")return null;let t=Date.parse(e);return Number.isNaN(t)?null:t}import{createHash as vO}from"crypto";var rO=/^[A-Za-z_][A-Za-z0-9_.-]{0,127}$/;function oO(e){let t=e.replace(/[^A-Za-z0-9_.-]+/g,"_");if(!/^[A-Za-z_]/.test(t))t=`_${t}`;if(t==="_")return{base:"_tool",forced:!0};if(t.length>128)return{base:t.slice(0,122),forced:!0};return{base:t,forced:!1}}function iO(e){let t=new Set,n=new Set,r=(i)=>{(rO.test(i)?n:t).add(i)},o=new Set;for(let i of e.messages)for(let s of i.content)if(s.type==="toolUse")o.add(s.id);for(let i of e.tools??[])if(i.kind==="portable")r(i.name);for(let i of e.messages)for(let s of i.content){if(s.type==="toolUse")r(s.name);if(s.type==="toolResult"&&!o.has(s.toolUseId))r(s.toolUseId)}if(e.toolChoice?.type==="tool")r(e.toolChoice.name);return{renamable:[...t],reserved:[...n]}}function sO(e){return(Bun.hash.xxHash64(Buffer.from(e,"utf8"))&0xffffffn).toString(16).padStart(6,"0")}function iw(e){let{renamable:t,reserved:n}=iO(e),r=new Map,o=(u)=>{r.set(u,(r.get(u)??0)+1)};for(let u of n)o(u);let i=new Map;for(let u of t){let c=oO(u);i.set(u,c),o(c.base)}let s=new Map,a=new Map;for(let[u,{base:c,forced:d}]of i){let p=d||(r.get(c)??0)>1?c+sO(u):c;s.set(u,p),a.set(p,u)}return s.size===0?null:{toWire:s,fromWire:a}}function Ur(e,t){return e?.toWire.get(t)??t}function sw(e,t){return e?.fromWire.get(t)??t}var aw={STOP:"endTurn",MAX_TOKENS:"maxTokens",SAFETY:"contentFilter",PROHIBITED_CONTENT:"contentFilter",SPII:"contentFilter",BLOCKLIST:"contentFilter",RECITATION:"contentFilter"},uw={RESOURCE_EXHAUSTED:"RATE_LIMIT",UNAUTHENTICATED:"AUTH",PERMISSION_DENIED:"AUTH",INVALID_ARGUMENT:"BAD_REQUEST",FAILED_PRECONDITION:"BAD_REQUEST",UNAVAILABLE:"UPSTREAM",INTERNAL:"UPSTREAM",DEADLINE_EXCEEDED:"TIMEOUT"};function aO(e){try{let t=JSON.parse(e);return typeof t==="object"&&t!==null?t:null}catch{return null}}function Vi(e){return typeof e==="number"&&Number.isFinite(e)?e:0}function cw(e){return xe(Vi(e?.promptTokenCount),Vi(e?.candidatesTokenCount)+Vi(e?.thoughtsTokenCount),Vi(e?.cachedContentTokenCount))}async function*Qi(e,t={}){let n=t.cloak??null,r=!1,o=!1,i=0,s=0,a=null,u=function*(){if(a===null)return;yield{type:"blockEnd",index:a.index},a=null};for await(let c of e){if(c.data==="[DONE]")continue;let d=aO(c.data);if(d===null)continue;let p=d.error??d.response?.error;if(p!==void 0){o=!0,yield*u();let w=String(p.status??""),v=(Object.hasOwn(uw,w)?uw[w]:void 0)??"UPSTREAM";yield{type:"error",code:v,message:String(p.message??"upstream error"),retryable:ee[v]};return}let l=d.response;if(l===void 0)continue;if(l.promptFeedback?.blockReason!==void 0&&(l.candidates??[]).length===0){if(o=!0,!r)yield{type:"start",id:"",model:""};yield*u(),yield{type:"end",stopReason:"contentFilter",usage:cw(l.usageMetadata)};return}if(!r)r=!0,yield{type:"start",id:String(l.responseId??""),model:String(l.modelVersion??"")};let g=l.candidates??[];if(g.length>1){o=!0,yield*u(),yield{type:"error",code:"UPSTREAM",message:`Antigravity returned ${g.length} candidates, which cannot be represented`,retryable:!1};return}let h=g[0];for(let w of h?.content?.parts??[]){let v=w.functionCall;if(v!==void 0&&typeof v.name==="string"){yield*u();let T=i++;yield{type:"blockStart",index:T,block:{type:"toolUse",id:typeof v.id==="string"&&v.id.length>0?v.id:`fc_${s}`,name:sw(n,v.name)}},yield{type:"blockDelta",index:T,delta:{type:"toolJson",partial:JSON.stringify(v.args??{})}},yield{type:"blockEnd",index:T},s++;continue}if(typeof w.text!=="string")continue;let k=w.thought===!0?"thinking":"text";if(a===null||a.kind!==k)yield*u(),a={kind:k,index:i++},yield{type:"blockStart",index:a.index,block:{type:k}};yield{type:"blockDelta",index:a.index,delta:k==="thinking"?{type:"thinking",text:w.text}:{type:"text",text:w.text}}}let f=h?.finishReason;if(f===void 0||f===null)continue;o=!0,yield*u();let y=String(f);if(y==="MALFORMED_FUNCTION_CALL"){yield{type:"error",code:"BAD_REQUEST",message:"the model emitted a malformed function call",retryable:!1};return}let _=Object.hasOwn(aw,y)?aw[y]:void 0;if(_===void 0){yield{type:"error",code:"UPSTREAM",message:`unrecognized Antigravity finish reason "${y}"`,retryable:!1};return}yield{type:"end",stopReason:s>0?"toolUse":_,usage:cw(l.usageMetadata)};return}if(!o)yield*u(),yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before the response finished",retryable:ee.UPSTREAM}}var uO="skip_thought_signature_validator";function cO(e){let t=new Map;for(let n of e.messages)for(let r of n.content)if(r.type==="toolUse")t.set(r.id,r.name);return t}function dO(e){let t=[];for(let n of e){let r=t[t.length-1];if(r!==void 0&&r.role===n.role)r.parts.push(...n.parts);else t.push({role:n.role,parts:[...n.parts]})}return t}function lO(e,t){let n=e[0];if(n===void 0)return e;if(!(n.role==="model"||n.parts[0]!==void 0&&("functionResponse"in n.parts[0])))return e;return t("antigravity:opening-turn-added"),[{role:"user",parts:[{text:""}]},...e]}function pO(e,t){if(e[e.length-1]?.role!=="model")return e;return t("antigravity:closing-turn-added"),[...e,{role:"user",parts:[{text:" "}]}]}var mO=(e)=>("cacheControl"in e)&&e.cacheControl!==void 0,fO="antigravity:tool-schema-pruned",gO="antigravity:agent-preamble-dropped",hO="antigravity:billing-header-dropped";function yO(e,t){let n=e.split(/(?:\r?\n){2,}/),r=!1,o=!1,i=n.filter((s)=>{let a=s.trim();if(a===Fi)return r=!0,!1;if(a.startsWith(Ir))return o=!0,!1;return!0});if(i.length===n.length)return e;if(r)t(gO);if(o)t(hO);return i.join(`
|
|
1666
1666
|
|
|
1667
|
-
`)}var dw=5,_C=65535;function wC(e,t){let n=(r,o)=>{if(typeof r==="number")return Number.isFinite(r)&&(!o||Number.isInteger(r));if(typeof r!=="string")return!1;if(o)return/^-?\d+$/.test(r);return r.trim().length>0&&Number.isFinite(Number(r))};switch(e){case"free":return t;case"text":return typeof t==="string"?t:void 0;case"texts":{if(typeof t==="string")return t;if(!Array.isArray(t))return;let r=t.filter((o)=>typeof o==="string");return r.length===0?void 0:r}case"int":return n(t,!0)?t:void 0;case"double":return n(t,!1)?t:void 0;case"walked":return t}}var bC=new Map([["type","walked"],["items","walked"],["properties","walked"],["anyOf","walked"],["allOf","walked"],["additionalProperties","walked"],["format","text"],["title","text"],["description","text"],["pattern","text"],["enum","texts"],["required","texts"],["propertyOrdering","texts"],["minItems","int"],["maxItems","int"],["minLength","int"],["maxLength","int"],["minProperties","int"],["maxProperties","int"],["minimum","double"],["maximum","double"],["default","free"],["example","free"],["nullable","free"]]),lw=new Set(["string","number","integer","boolean","array","object","null","type_unspecified"]),kC=24,dc=(e)=>typeof e==="object"&&e!==null&&!Array.isArray(e);function lc(e,t,n=0){let r={},o=()=>t(fC),i=(c)=>{if(!dc(c)||n>=kC){o();return}return lc(c,t,n+1)};for(let[c,u]of Object.entries(e)){if(c==="const"){if(o(),typeof u==="string"&&!Object.hasOwn(e,"enum"))r.enum=[u];continue}let d=bC.get(c);if(d===void 0){o();continue}switch(c){case"type":{if(typeof u==="string"){if(lw.has(u.toLowerCase()))r.type=u;else o();break}let p=Array.isArray(u)?u.filter((m)=>typeof m==="string"&&lw.has(m.toLowerCase())):[],l=p.filter((m)=>m.toLowerCase()!=="null");if(!Array.isArray(u)||p.length!==u.length||l.length!==1)o();if(l[0]!==void 0)r.type=l[0];if(p.length!==l.length)r.nullable=!0;break}case"properties":{if(!dc(u)){o();break}let p=[];for(let[l,m]of Object.entries(u)){if(l.length===0){o();continue}let g=i(m);if(g!==void 0)p.push([l,g])}r.properties=Object.fromEntries(p);break}case"items":{if(Array.isArray(u)){o();let l=i(u[0]);if(l!==void 0)r.items=l;break}let p=i(u);if(p!==void 0)r.items=p;break}case"anyOf":case"allOf":{if(!Array.isArray(u)){o();break}let p=[];for(let l of u){let m=i(l);if(m!==void 0)p.push(m)}r[c]=p;break}case"additionalProperties":{if(typeof u==="boolean"){r[c]=u;break}let p=i(u);if(p!==void 0)r[c]=p;break}default:{let p=wC(d,u);if(p===void 0)o();else{if(Array.isArray(p)&&Array.isArray(u)&&p.length!==u.length)o();r[c]=p}}}}let s=typeof r.type==="string"?r.type.toLowerCase():void 0,a=(c,u)=>{if(!u.some((d)=>r[d]!==void 0))return;if(s===c)return;if(s===void 0){r.type=c;return}o();for(let d of u)delete r[d]};a("object",["properties","required","propertyOrdering"]),a("array",["items"]);for(let c of["required","propertyOrdering"]){let u=r[c];if(!Array.isArray(u))continue;let d=dc(r.properties)?r.properties:{},p=u.filter((l)=>typeof l==="string"&&Object.hasOwn(d,l));if(p.length===u.length)continue;if(o(),p.length===0)delete r[c];else r[c]=p}if(r.type==="array"&&r.items===void 0)o(),delete r.type;return r}function EC(e,t){switch(e.type){case"auto":return{functionCallingConfig:{mode:"AUTO"}};case"any":return{functionCallingConfig:{mode:"ANY"}};case"none":return{functionCallingConfig:{mode:"NONE"}};case"tool":return{functionCallingConfig:{mode:"ANY",allowedFunctionNames:[Dr(t,e.name)]}}}}function Yi(e,t,n){let r=n.cloak??null,o=[],i=(h)=>{if(!o.includes(h))o.push(h)},s=cC(e),a=[];for(let h of e.messages){let f=[];if(h.role==="system")i("antigravity:system-turn-as-user");let y=h.role==="assistant"?"model":"user";for(let _ of h.content){if(mC(_))i("antigravity:cache-control-dropped");switch(_.type){case"text":f.push({text:_.text});break;case"image":f.push({inlineData:{mimeType:_.mediaType,data:_.data}});break;case"thinking":i("antigravity:thinking-dropped");break;case"toolUse":f.push({thoughtSignature:uC,functionCall:{name:Dr(r,_.name),args:_.input}});break;case"toolResult":{if(_.native!==void 0)i("antigravity:provider-native-block-dropped");let b=s.get(_.toolUseId);if(b===void 0)i("antigravity:tool-result-unmatched");if(_.isError===!0)i("antigravity:tool-result-error-flag-dropped");let k=Ge(_.files??[],()=>!0);if(k.text.length>0)i("antigravity:tool-result-files-inlined");f.push({functionResponse:{name:Dr(r,b??_.toolUseId),response:{output:we(_.content,k.text)}}});for(let E of _.images??[])f.push({inlineData:{mimeType:E.mediaType,data:E.data}});for(let E of k.carried)f.push({inlineData:{mimeType:E.mediaType,data:E.data}});y="user";break}case"providerNative":i("antigravity:provider-native-block-dropped");break}}if(f.length>0)a.push({role:y,parts:f})}let c={contents:pC(lC(dC(a),i),i)},u=Ae(e.system,"antigravity",i),d=u===void 0?void 0:yC(u,i);if(d!==void 0&&d.trim().length>0)c.systemInstruction={parts:[{text:d}]};let p={};if(e.maxTokens!==void 0)if(e.maxTokens>0)p.maxOutputTokens=e.maxTokens;else i("antigravity:max-tokens-dropped");if(e.temperature!==void 0){let h=Math.min(Math.max(e.temperature,0),2);if(h!==e.temperature)i("antigravity:temperature-clamped");p.temperature=h}if(e.stopSequences!==void 0){if(p.stopSequences=e.stopSequences.slice(0,dw),e.stopSequences.length>dw)i("antigravity:stop-sequences-dropped")}if(e.reasoning!==void 0)switch(e.reasoning.mode){case"betweenTools":i("antigravity:reasoning-between-tools-as-off"),p.thinkingConfig={thinkingBudget:0,includeThoughts:!1};break;case"off":p.thinkingConfig={thinkingBudget:0,includeThoughts:!1};break;case"budget":{let h=e.reasoning.budgetTokens,f=Math.min(Math.max(h,-1),_C);if(f!==h)i("antigravity:thinking-budget-clamped");p.thinkingConfig={thinkingBudget:f,includeThoughts:f!==0}}break;case"adaptive":if(p.thinkingConfig={includeThoughts:e.reasoning.display!=="omitted"&&e.reasoning.display!=="updates"},e.reasoning.effort!==void 0)i("antigravity:reasoning-effort-dropped");break}let l=ot(e);if(l.kind==="readable"){let h=l.format;p.responseSchema=lc(h.schema,i),i("antigravity:response-format-translated")}else if(l.kind==="tooDeep")i("antigravity:response-schema-too-deep");let m=p.maxOutputTokens;if(m!==void 0&&m>hi)p.maxOutputTokens=hi,i("antigravity:max-tokens-clamped");let g=p.thinkingConfig?.thinkingBudget;if(g!==void 0&&g>0){let h=p.maxOutputTokens;if(h===void 0||h<=g)p.maxOutputTokens=Math.min(g+1,hi)}if(Object.keys(p).length>0)c.generationConfig=p;if(e.tools!==void 0){let h=e.tools.filter((_)=>_.kind==="portable");if(h.length!==e.tools.length)i("antigravity:provider-tool-dropped");let f=new Set,y=[];for(let _ of h){let b=Dr(r,_.name);if(f.has(b)){i("antigravity:duplicate-tool-dropped");continue}f.add(b),y.push({name:b,description:_.description,inputSchema:_.inputSchema})}if(r!==null&&r.toWire.size>0)i("antigravity:tool-name-renamed");if(y.length>0)c.tools=[{functionDeclarations:y.map((_)=>({name:_.name,description:_.description,parameters:lc(_.inputSchema,i)}))}]}if(e.toolChoice!==void 0)c.toolConfig=EC(e.toolChoice,r);return Object.assign(c,e.vendor?.antigravity??{}),{body:{project:n.project,requestId:n.requestId,model:t,userAgent:"antigravity",requestType:"agent",request:c},degradations:o}}var TC="https://daily-cloudcode-pa.googleapis.com/v1internal:streamGenerateContent?alt=sse",RC="omni-antigravity-req";function SC(e){let t=vC("sha256").update(`${RC}:${e}`).digest("hex"),n=(Number.parseInt(t[16],16)&3|8).toString(16);return[t.slice(0,8),t.slice(8,12),`4${t.slice(13,16)}`,`${n}${t.slice(17,20)}`,t.slice(20,32)].join("-")}function xC(e){let t=e.credentials.providerData.projectId,n=typeof t==="string"?t.trim():"";if(n.length===0)throw e.fail("AUTH","antigravity credential has no Cloud Code project; reconnect the account");return n}function AC(e){if(e===null||typeof e!=="object")return null;let t=e.cloak;if(t===null||t===void 0||typeof t!=="object")return null;let{toWire:n,fromWire:r}=t;return n instanceof Map&&r instanceof Map?t:null}var pw={buildRequest(e){let t=e.credentials.accessToken;if(t===null||t.length===0)throw e.fail("AUTH","antigravity credential has no access token");let n=xC(e),r=e.requestId!==void 0&&e.requestId.length>0?e.requestId:SC(`${e.model}:${n}`),o=iw(e.request),{body:i,degradations:s}=Yi(e.request,e.model,{project:n,requestId:r,cloak:o}),a=[["Authorization",`Bearer ${t}`]],c=fe(ge(nt.headers,a),nt.order);return{request:{url:TC,method:"POST",headers:c,body:JSON.stringify(i)},decodeState:{cloak:o},degradations:s,...o===null?{}:{cloakedTools:o.toWire.size}}},decode({body:e,decodeState:t}){return Qi(ye(e),{cloak:AC(t)})}};var pc=de("antigravity",_i.capabilities,pw);var mw="omnigateway-public-v1";function bw(e){let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]^mw.charCodeAt(n%mw.length));return t}var kw=bw([94,93,89,88,87,81,66,85,65,81,76,20,65,88,22,1,1,16,94,31,95,93,5,92,88,11,2,6,0,69,82,76,91,4,26,14,3,3,11,25,17,5,95,94,11,25,73,0,4,21,4,79,30,66,31,18,14,9,28,16,72,4,82,0,3,26,12,9,21,90,6,24,12]),mc=kw,fw=bw([40,34,45,58,55,57,89,46,66,89,63,122,34,65,90,90,37,7,97,60,0,2,33,44,81,20,57,55,81,13,87,8,105,49,19]),CC="https://accounts.google.com/o/oauth2/v2/auth",OC="https://oauth2.googleapis.com/token",PC="https://www.googleapis.com/oauth2/v1/userinfo?alt=json",fc="https://cloudcode-pa.googleapis.com/v1internal",IC=`${fc}:loadCodeAssist`,LC=`${fc}:onboardUser`,NC=`${fc}:retrieveUserQuotaSummary`,DC=["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"].join(" "),gw={ideType:"ANTIGRAVITY"},UC="legacy-tier";function MC(e){let t=D(e);if(t===null||typeof t.access_token!=="string")return null;return{accessToken:t.access_token,refreshToken:typeof t.refresh_token==="string"?t.refresh_token:null,expiresIn:typeof t.expires_in==="number"?t.expires_in:null}}async function*hw(e,t){let n=yield ue(OC,nt,{contentType:"application/x-www-form-urlencoded",body:new URLSearchParams(e).toString()}),r=B(n.body);if(n.status<200||n.status>=300)throw t(Te(n.status),Fe(n.status,r));let o=MC(r);if(o===null)throw t("AUTH","token endpoint returned no access_token");return o}function yw(e){let t=D(e);if(t===null)return"";let n=t.cloudaicompanionProject;if(typeof n==="string")return n.trim();let o=D(n)?.id;return typeof o==="string"?o.trim():""}function $C(e){let t=D(e),n=t?.allowedTiers;if(Array.isArray(n))for(let o of n){let i=D(o);if(i?.isDefault===!0&&typeof i.id==="string")return i.id}let r=D(t?.currentTier);return typeof r?.id==="string"?r.id:UC}function _w(e,t,n){return ue(e,nt,{contentType:"application/json",body:JSON.stringify(n),extraHeaders:[["Authorization",`Bearer ${t}`]]})}async function*FC(e){let t=yield _w(IC,e,{metadata:gw}),n=t.status>=200&&t.status<300?B(t.body):null,r=$C(n),o=yw(n);if(o.length>0)return{projectId:o,tier:r};let i=yield _w(LC,e,{tier_id:r,metadata:gw});if(i.status<200||i.status>=300)return{projectId:"",tier:r};let s=D(B(i.body));return{projectId:yw(s?.response),tier:r}}async function*BC(e){let t=yield Be(PC,nt,{accessToken:e});if(t.status<200||t.status>=300)return null;let r=D(B(t.body))?.email;return typeof r==="string"&&r.trim().length>0?r:null}function ww(e,t,n,r,o){return{secrets:{accessToken:e.accessToken,refreshToken:e.refreshToken??t,apiKey:null,idToken:null},expiresAt:e.expiresIn===null?null:o()+e.expiresIn*1000,accountEmail:n,providerData:r}}var zC=/\bgemini\b/;function qC(e){let t=`${String(e.bucketId??"")} ${String(e.displayName??"")}`.toLowerCase();if(/\bweekly\b|\bweek\b/.test(t))return"weekly";if(/\b5\s*-?\s*hour|\b5h\b|\bfive\s*hour/.test(t))return"fiveHour";return null}function HC(e){let t=D(e);if(t===null)return[];if(Array.isArray(t.groups))return t.groups;let n=D(t.quotaSummary)?.groups;return Array.isArray(n)?n:[]}function Ew(e,t){let n=[];for(let r of HC(e)){let o=D(r);if(o===null)continue;if(!zC.test(String(o.displayName??"").toLowerCase()))continue;let i=Array.isArray(o.buckets)?o.buckets:[];for(let s of i){let a=D(s);if(a===null||a.disabled===!0)continue;let c=qC(a);if(c===null)continue;let u=it(a,["remainingFraction"]);if(u===null)continue;let d=Math.max(0,Math.min(1,u));n.push({windowType:c,used:Math.round((1-d)*100),limit:100,resetsAt:ac(a,{absolute:["resetTime"]},t),windowMs:null})}}return yt(n)}var gc={kind:"pkce",supportsManualPaste:!0,async*start({redirectUri:e,randomState:t,pkce:n}){let r=t(),{verifier:o,challenge:i}=n(),s=new URL(CC);return s.searchParams.set("client_id",mc),s.searchParams.set("response_type","code"),s.searchParams.set("redirect_uri",e),s.searchParams.set("scope",DC),s.searchParams.set("state",r),s.searchParams.set("access_type","offline"),s.searchParams.set("prompt","consent"),s.searchParams.set("code_challenge",i),s.searchParams.set("code_challenge_method","S256"),{authorizeUrl:s.toString(),pending:{verifier:o,challenge:i,state:r,redirectUri:e}}},async*exchange({code:e,pending:t,fail:n,now:r}){let[o,i]=e.split("#");if(i!==void 0&&i!==t.state)throw n("AUTH","authorization state mismatch");let s=yield*hw({grant_type:"authorization_code",client_id:mc,client_secret:fw,code:(o??"").trim(),redirect_uri:t.redirectUri,code_verifier:t.verifier},n),a=yield*BC(s.accessToken),{projectId:c,tier:u}=yield*FC(s.accessToken);return ww(s,null,a,{projectId:c,tier:u},r)},async*refresh({refreshToken:e,providerData:t,fail:n,now:r}){let o=yield*hw({grant_type:"refresh_token",client_id:mc,client_secret:fw,refresh_token:e},n);return ww(o,e,null,t,r)},async*usage({secrets:e,providerData:t,now:n}){let r=typeof t.projectId==="string"?t.projectId:"";if(r.trim().length===0)return null;let o=yield{...ue(NC,nt,{contentType:"application/json",body:JSON.stringify({project:r}),extraHeaders:[["Authorization",`Bearer ${e.accessToken}`]]}),timeoutMs:sc};if(!Ze(o.status,"antigravity"))return null;return Ew(B(o.body),n())}};import{randomUUID as WC}from"crypto";function hc(){return{agentId:WC()}}function vw(e){let t=e.agentId;if(typeof t!=="string"||t.length===0)return[];return[["x-grok-agent-id",t]]}var yc="b1a00492-073a-47ea-816f-4c329264a828",jC="https://auth.x.ai",KC=`${jC}/.well-known/openid-configuration`,GC=["openid","profile","email","offline_access","grok-cli:access","api:access","conversations:read","conversations:write","workspaces:read","workspaces:write"].join(" "),_c="x.ai";function bc(e){return typeof e==="object"&&e!==null}function Tw(e,t,n){if(typeof e!=="string"||e.trim().length===0)throw n("UPSTREAM",`discovery document has no ${t}`);let r;try{r=new URL(e)}catch{throw n("UPSTREAM",`discovery document has an unusable ${t}`)}let o=r.hostname;if(r.protocol!=="https:"||o!==_c&&!o.endsWith(`.${_c}`))throw n("UPSTREAM",`discovery document ${t} is not an ${_c} https url`);return r.toString()}async function*wc(e){let t=yield Zi(KC,Ct);if(t.status<200||t.status>=300)throw e("UPSTREAM",`discovery endpoint returned http_${t.status}`);let n=B(t.body);if(!bc(n))throw e("UPSTREAM","discovery endpoint returned an unusable response");return{authorizeUrl:Tw(n.authorization_endpoint,"authorization_endpoint",e),tokenUrl:Tw(n.token_endpoint,"token_endpoint",e)}}function ZC(e){if(!bc(e)||typeof e.access_token!=="string")return null;return{accessToken:e.access_token,refreshToken:typeof e.refresh_token==="string"?e.refresh_token:null,expiresIn:typeof e.expires_in==="number"?e.expires_in:null,idToken:typeof e.id_token==="string"?e.id_token:null}}function XC(e){let t=typeof e==="string"?e.split("."):[],n=t[1];if(t.length!==3||n===void 0||n.length===0)return null;try{let r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"));if(!bc(r))return null;return typeof r.email==="string"&&r.email.trim().length>0?r.email:null}catch{return null}}async function*Rw(e,t,n){let r=yield ue(e,Ct,{contentType:"application/x-www-form-urlencoded",body:new URLSearchParams(t).toString()}),o=B(r.body);if(r.status<200||r.status>=300)throw n(Te(r.status),Fe(r.status,o));let i=ZC(o);if(i===null)throw n("AUTH","token endpoint returned no access_token");return i}function VC(e){let t=e.agentId;return typeof t==="string"&&t.trim().length>0?t:hc().agentId}function Sw(e,t,n,r){return{secrets:{accessToken:e.accessToken,refreshToken:e.refreshToken??t,apiKey:null,idToken:e.idToken},expiresAt:e.expiresIn===null?null:r()+e.expiresIn*1000,accountEmail:XC(e.idToken),providerData:{agentId:n}}}var kc={kind:"pkce",supportsManualPaste:!0,async*start({redirectUri:e,fail:t,pkce:n,randomState:r}){let{authorizeUrl:o}=yield*wc(t),{verifier:i,challenge:s}=n(),a=r(),c=new URL(o);return c.searchParams.set("response_type","code"),c.searchParams.set("client_id",yc),c.searchParams.set("redirect_uri",e),c.searchParams.set("scope",GC),c.searchParams.set("code_challenge",s),c.searchParams.set("code_challenge_method","S256"),c.searchParams.set("state",a),c.searchParams.set("nonce",r()),c.searchParams.set("referrer","grok-build"),{authorizeUrl:c.toString(),pending:{verifier:i,challenge:s,state:a,redirectUri:e}}},async*exchange({code:e,pending:t,fail:n,now:r}){let[o,i]=e.split("#");if(i!==void 0&&i!==t.state)throw n("AUTH","authorization state mismatch");let{tokenUrl:s}=yield*wc(n),a=yield*Rw(s,{grant_type:"authorization_code",code:(o??"").trim(),redirect_uri:t.redirectUri,client_id:yc,code_verifier:t.verifier},n);return Sw(a,null,hc().agentId,r)},async*refresh({refreshToken:e,providerData:t,fail:n,now:r}){let{tokenUrl:o}=yield*wc(n),i=yield*Rw(o,{grant_type:"refresh_token",client_id:yc,refresh_token:e},n);return Sw(i,e,VC(t),r)}};var xw="https://api.kilo.ai/api/device-auth/codes",QC="https://api.kilo.ai/api/profile",Aw="https://kilo.ai",YC=300,JC=3;function eO(e){return typeof e==="object"&&e!==null}function Ji(e){return eO(e)?e:null}function Nn(e,t){let n=e[t];return typeof n==="string"&&n.trim().length>0?n:null}function Cw(e,t){let n=e[t];return typeof n==="number"&&Number.isFinite(n)&&n>0?n:null}function tO(e,t){let n=Ji(e),r=n===null?null:Nn(n,"code");if(n===null||r===null)throw t("AUTH","device code endpoint returned an unusable response");return{code:r,verificationUrl:Nn(n,"verificationUrl")??Aw,expiresIn:Cw(n,"expiresIn")??YC}}async function*nO(e){try{let t=yield Be(QC,ft,{accessToken:e});if(t.status<200||t.status>=300)return null;let r=Ji(B(t.body))?.organizations;if(!Array.isArray(r))return null;let o=Ji(r[0]);return o===null?null:Nn(o,"id")}catch{return null}}var Ec={kind:"device",supportsManualPaste:!1,needsDeviceId:!1,async*start(){return{authorizeUrl:Aw,pending:{verifier:"",challenge:"",state:"",redirectUri:""}}},async*begin({fail:e,now:t}){let n=yield ue(xw,ft,{contentType:"application/json",body:""}),r=B(n.body);if(n.status===429)throw e("RATE_LIMIT","kilo has too many pending device authorizations; wait for one to expire and retry");if(n.status<200||n.status>=300)throw e(Te(n.status),`kilo refused a device code: http_${n.status}`);let o=tO(r,e);return{authorizeUrl:o.verificationUrl,userCode:o.code,pending:{verifier:"",challenge:"",state:"",redirectUri:"",deviceCode:o.code,interval:JC,extra:{expiresAt:t()+o.expiresIn*1000}}}},async*exchange({pending:e,fail:t,keepPolling:n,now:r}){let o=e.deviceCode;if(o===void 0)throw t("INTERNAL","kilo exchange requires a pending flow produced by begin()");let i=e.extra===void 0?null:Cw(e.extra,"expiresAt");if(i!==null&&r()>=i)throw t("AUTH","kilo device code expired; start the authorization again");let s=yield Zi(`${xw}/${encodeURIComponent(o)}`,ft);if(s.status===202)throw n("http_202");if(s.status===403)throw t("AUTH","kilo authorization was denied");if(s.status===410)throw t("AUTH","kilo device code expired; start the authorization again");if(s.status<200||s.status>=300)throw t(Te(s.status),`kilo refused the device code poll: http_${s.status}`);let a=Ji(B(s.body));if(a===null)throw n("http_200");if(Nn(a,"status")!=="approved")throw n("http_200");let c=Nn(a,"token");if(c===null)throw t("AUTH","kilo approved the authorization without a token");let u=yield*nO(c);return{secrets:{accessToken:c,refreshToken:null,apiKey:null,idToken:null},expiresAt:null,accountEmail:Nn(a,"userEmail"),providerData:u===null?{}:{orgId:u}}},async*refresh({fail:e}){throw e("AUTH","kilo tokens cannot be refreshed; reconnect the kilo account to get a new one")}};import{randomUUID as rO}from"crypto";function Ur(){return{deviceId:rO(),deviceName:"MacBook-Pro",deviceModel:"MacBookPro18,3",osVersion:"15.3.1"}}function Mr(e){let t=e.deviceId;if(typeof t!=="string"||t.length===0)return[];let n=(r)=>typeof r==="string"&&r.length>0?r:"unknown";return[["X-Msh-Device-Id",t],["X-Msh-Device-Name",n(e.deviceName)],["X-Msh-Device-Model",n(e.deviceModel)],["X-Msh-Os-Version",n(e.osVersion)]]}var oO="17e5f671-d194-4dfb-9706-5516cb48c098",iO="https://auth.kimi.com/api/oauth/device_authorization",Ow="https://auth.kimi.com/api/oauth/token",sO="https://api.kimi.com/coding/v1/usages",aO=5,uO=new Set(["authorization_pending","slow_down"]);function cO(e){return typeof e==="object"&&e!==null}function Rc(e){return cO(e)?e:null}function Wt(e,t){let n=e[t];return typeof n==="string"&&n.trim().length>0?n:null}function Lw(e,t){let n=e[t];return typeof n==="number"&&Number.isFinite(n)&&n>0?n:null}function Pw(e,t){let n=Rc(e);if(n===null)throw t("AUTH","token endpoint returned no access_token");let r=Wt(n,"access_token");if(r===null)throw t("AUTH","token endpoint returned no access_token");return{accessToken:r,refreshToken:Wt(n,"refresh_token"),expiresIn:Lw(n,"expires_in"),email:Wt(n,"email")}}function dO(e,t){let n=Rc(e);if(n===null)throw t("AUTH","device code endpoint returned an unusable response");let r=Wt(n,"device_code"),o=Wt(n,"user_code");if(r===null||o===null)throw t("AUTH","device code endpoint returned an unusable response");return{deviceCode:r,userCode:o,verificationUri:Wt(n,"verification_uri_complete")??Wt(n,"verification_uri")??"https://www.kimi.com/device",interval:Lw(n,"interval")??aO}}async function*vc(e,t,n,r,o){let i=yield ue(e,Ot,{contentType:"application/x-www-form-urlencoded",body:new URLSearchParams({...t,client_id:oO}).toString(),extraHeaders:Mr(n)}),s=B(i.body);if(i.status>=200&&i.status<300)return s;let a=Rc(s),c=a===null?`http_${i.status}`:Wt(a,"error")??`http_${i.status}`;if(uO.has(c))throw o(c);throw r(Te(i.status),Fe(i.status,s))}function Tc(e){if(typeof e?.deviceId==="string"&&e.deviceId.length>0){let t=Ur(),n=(r,o)=>{let i=e[r];return typeof i==="string"&&i.length>0?i:o};return{deviceId:e.deviceId,deviceName:n("deviceName",t.deviceName),deviceModel:n("deviceModel",t.deviceModel),osVersion:n("osVersion",t.osVersion)}}return Ur()}function lO(e){return{...Ur(),deviceId:e}}function Iw(e,t,n,r){return{secrets:{accessToken:e.accessToken,refreshToken:e.refreshToken??n,apiKey:null,idToken:null},expiresAt:e.expiresIn===null?null:r()+e.expiresIn*1000,accountEmail:e.email,providerData:{...t}}}function Nw(e,t){let n=D(e);if(n===null)return null;return yt([st(n.usage??n.Usage,"weekly",t)])}var Sc={kind:"device",needsDeviceId:!0,supportsManualPaste:!1,async*start(){return{authorizeUrl:"https://www.kimi.com/device",pending:{verifier:"",challenge:"",state:"",redirectUri:"",extra:{...Ur()}}}},async*begin({deviceId:e,fail:t,keepPolling:n}){if(e.trim().length===0)throw t("INTERNAL","kimi begin requires a non-blank deviceId");let r=lO(e),o=dO(yield*vc(iO,{},r,t,n),t);return{authorizeUrl:o.verificationUri,userCode:o.userCode,pending:{verifier:"",challenge:"",state:"",redirectUri:"",deviceCode:o.deviceCode,interval:o.interval,extra:{...r}}}},async*exchange({pending:e,fail:t,keepPolling:n,now:r}){if(e.deviceCode===void 0)throw t("INTERNAL","kimi exchange requires a pending flow produced by begin()");let o=Tc(e.extra),i=Pw(yield*vc(Ow,{grant_type:"urn:ietf:params:oauth:grant-type:device_code",device_code:e.deviceCode,device_id:o.deviceId},o,t,n),t);return Iw(i,o,null,r)},async*refresh({refreshToken:e,providerData:t,fail:n,keepPolling:r,now:o}){let i=Tc(t),s=Pw(yield*vc(Ow,{grant_type:"refresh_token",refresh_token:e,device_id:i.deviceId},i,n,r),n);return Iw(s,i,e,o)},async*usage({secrets:e,providerData:t,now:n}){if(e.accessToken===null)return null;let r=Tc(t),o=yield Be(sO,Ot,{accessToken:e.accessToken,extraHeaders:Mr(r)});if(!Ze(o.status,"kimi"))return null;return Nw(B(o.body),n())}};function xc(e){if(typeof e!=="string"||e.length===0)return null;let t;try{t=new URL(e)}catch{return null}if(t.protocol!=="https:")return null;let n=t.hostname;if(n!=="meta.ai"&&!n.endsWith(".meta.ai"))return null;return`${t.origin}${t.pathname}`.replace(/\/$/,"")}function Dw(e){return`${xc(e.baseUrl)??"https://api.meta.ai/v1"}/responses`}var Bw="https://auth.meta.com",pO=`${Bw}/oidc/device/authorization/`,Uw=`${Bw}/oidc/device/token/`,zw="https://api.meta.ai/muse-code/key",mO="1031625952748946",fO="urn:ietf:params:oauth:grant-type:device_code",qw="https://auth.meta.com/oauth/device/",gO=5,hO=new Set(["authorization_pending","slow_down"]);function yO(e){return typeof e==="object"&&e!==null}function es(e){return yO(e)?e:null}function _t(e,t){let n=e[t];return typeof n==="string"&&n.trim().length>0?n:null}function Hw(e,t){let n=e[t];return typeof n==="number"&&Number.isFinite(n)&&n>0?n:null}function Mw(e,t){let n=es(e),r=n===null?null:_t(n,"access_token");if(n===null||r===null)throw t("AUTH","token endpoint returned no access_token");return{accessToken:r,refreshToken:_t(n,"refresh_token"),expiresIn:Hw(n,"expires_in")}}function _O(e,t){let n=es(e),r=n===null?null:_t(n,"device_code"),o=n===null?null:_t(n,"user_code");if(n===null||r===null||o===null)throw t("AUTH","device authorization response missing user_code or verification_uri");return{deviceCode:r,userCode:o,verificationUri:_t(n,"verification_uri_complete")??_t(n,"verification_uri")??qw,interval:Hw(n,"interval")??gO}}async function*Ac(e,t,n,r){let o=yield ue(e,gt,{contentType:"application/x-www-form-urlencoded",body:new URLSearchParams({...t,client_id:mO}).toString(),extraHeaders:[["Accept","application/json"]]}),i=B(o.body);if(o.status>=200&&o.status<300)return i;let s=es(i),a=s===null?`http_${o.status}`:_t(s,"error")??`http_${o.status}`;if(hO.has(a))throw r(a);if(a==="expired_token")throw n("AUTH","muse device code expired; start the authorization again");throw n(Te(o.status),Fe(o.status,i))}async function*$w(e,t){let n=yield ue(zw,gt,{contentType:"application/json",body:"{}",extraHeaders:[["Authorization",`Bearer ${e}`],["Accept","application/json"]]}),r=B(n.body);if(n.status<200||n.status>=300){if(n.status===401||n.status===403)throw t("AUTH","muse rejected the saved login; reconnect the account or use a different one");if(n.status===429)throw t("RATE_LIMIT",`muse rate limited the key mint: http_${n.status}`);throw t("UPSTREAM",`muse key mint failed: http_${n.status}`)}let o=es(r);if(o===null)throw t("UPSTREAM","muse key mint returned an unusable response");if(o.require_payment===!0)throw t("AUTH","muse requires a payment method on the Meta account; add one at https://dev.meta.ai and reconnect");let i=_t(o,"api_key");if(i===null)throw t("AUTH","muse key mint returned an empty api key; finish onboarding at https://dev.meta.ai and reconnect");return{apiKey:i,email:_t(o,"user_email"),tierName:_t(o,"subs_tier_name"),subscriptionActive:o.is_subs_active===!0,baseUrl:xc(o.base_url),usage:o.subs_usage}}function Fw(e,t,n,r){return{secrets:{accessToken:e.accessToken,refreshToken:e.refreshToken??n,apiKey:t.apiKey,idToken:null},expiresAt:e.expiresIn===null?null:r()+e.expiresIn*1000,accountEmail:t.email,providerData:{...t.tierName===null?{}:{subscriptionTier:t.tierName},subscriptionActive:t.subscriptionActive,...t.baseUrl===null?{}:{baseUrl:t.baseUrl}}}}var Cc={kind:"device",supportsManualPaste:!1,needsDeviceId:!1,async*start(){return{authorizeUrl:qw,pending:{verifier:"",challenge:"",state:"",redirectUri:""}}},async*begin({fail:e,keepPolling:t}){let n=_O(yield*Ac(pO,{},e,t),e);return{authorizeUrl:n.verificationUri,userCode:n.userCode,pending:{verifier:"",challenge:"",state:"",redirectUri:"",deviceCode:n.deviceCode,interval:n.interval}}},async*exchange({pending:e,fail:t,keepPolling:n,now:r}){if(e.deviceCode===void 0)throw t("INTERNAL","muse exchange requires a pending flow produced by begin()");let o=Mw(yield*Ac(Uw,{grant_type:fO,device_code:e.deviceCode},t,n),t);return Fw(o,yield*$w(o.accessToken,t),null,r)},async*refresh({refreshToken:e,fail:t,keepPolling:n,now:r}){let o=Mw(yield*Ac(Uw,{grant_type:"refresh_token",refresh_token:e},t,n),t);return Fw(o,yield*$w(o.accessToken,t),e,r)},async*usage({secrets:e,now:t}){if(e.accessToken===null)return null;let n=yield ue(zw,gt,{contentType:"application/json",body:"{}",extraHeaders:[["Authorization",`Bearer ${e.accessToken}`],["Accept","application/json"]]});if(!Ze(n.status,"muse"))return null;let r=D(B(n.body));return r===null?null:Ww(r.subs_usage,t())}};function Ww(e,t){let n=D(e);if(n===null)return null;let r=D(n.window),o=r===null?null:it(r,["window_duration_mins"]);return yt([st(n.window,"fiveHour",t,o===null?null:o*60000),st(n.weekly,"weekly",t)])}import{createHash as jw,createHmac as wO}from"crypto";var bO="6ba7b812-9dad-11d1-80b4-00c04fd430c8",kO=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,Kw=Date.UTC(2026,9,1),ts=31536000000;function Oc(e){return kO.test(e)}function Pc(e){let t=Buffer.from(e).toString("hex");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20,32)}`}function Ic(e,t){let n=Uint8Array.from(e.subarray(0,16));return n[6]=(n[6]??0)&15|t<<4,n[8]=(n[8]??0)&63|128,n}var ns=(e)=>jw("sha256").update(e).digest();function rs(e,t){let n=jw("sha1").update(Buffer.from(e.replace(/-/g,""),"hex")).update(t,"utf8").digest();return Pc(Ic(n,5))}function Gw(e){return Pc(Ic(ns(e),4))}function $r(e,t){let n=Uint8Array.from(ns(e).subarray(0,16)),r=Math.max(0,Math.floor(t));for(let o=5;o>=0;o--)n[o]=r%256,r=Math.floor(r/256);return Pc(Ic(n,7))}function Lc(e){let n=ns(`thread:${e}`).readUIntBE(0,6)%ts;return $r(e,Kw-ts+n)}function Nc(e,t){let n=e.replace(/-/g,""),r=n[12],o=Number.parseInt(n.slice(0,12),16);if(r==="7"&&Number.isFinite(o)&&o<=t)return o;let i=ns(`thread:${e}`);return Kw-ts+i.readUIntBE(0,6)%ts}var EO=/^[0-9a-f]{64}$/;function Dc(e){let{installationId:t,idSalt:n}=e;return{...typeof t==="string"&&Oc(t)?{installationId:t}:{},...typeof n==="string"&&EO.test(n)?{idSalt:n}:{}}}function Zw(e){let t=Dc(e),n=()=>Buffer.from(globalThis.crypto.getRandomValues(new Uint8Array(32))).toString("hex");return{installationId:t.installationId??globalThis.crypto.randomUUID(),idSalt:t.idSalt??n()}}function dn(e,t){if(e===void 0)return t;return wO("sha256",e).update(t).digest("hex")}function Xw(e){return rs(bO,e)}var ob="app_EMoamEEZ73f0CkXaXp7hrann",vO="https://auth.openai.com/oauth/authorize",TO="https://auth.openai.com/oauth/token",Vw="openid profile email offline_access",RO="https://chatgpt.com/backend-api/wham/usage",Qw="https://chatgpt.com/backend-api/wham/rate-limit-reset-credits";function Uc(e){return typeof e==="object"&&e!==null}function ib(e){return typeof e==="string"&&e.trim().length>0?e:null}function Mc(e){return ib(e.accountId)}function SO(e){let t=typeof e==="string"?e.split("."):[],[n,r,o]=t;if(t.length!==3||n===void 0||r===void 0||o===void 0||n.length===0||r.length===0||o.length===0)return{email:null,accountId:null};try{let i=JSON.parse(Buffer.from(r,"base64url").toString("utf8"));if(!Uc(i))return{email:null,accountId:null};let s=i["https://api.openai.com/auth"];return{email:typeof i.email==="string"?i.email:null,accountId:Uc(s)?ib(s.chatgpt_account_id):null}}catch{return{email:null,accountId:null}}}function xO(e){if(!Uc(e)||typeof e.access_token!=="string")return null;return{accessToken:e.access_token,refreshToken:typeof e.refresh_token==="string"?e.refresh_token:null,expiresIn:typeof e.expires_in==="number"?e.expires_in:null,idToken:typeof e.id_token==="string"?e.id_token:null}}async function*Yw(e,t){let n=yield ue(TO,rt,{contentType:"application/x-www-form-urlencoded",body:new URLSearchParams({...e,client_id:ob}).toString()}),r=B(n.body);if(n.status<200||n.status>=300)throw t(Te(n.status),Fe(n.status,r));let o=xO(r);if(o===null)throw t("AUTH","token endpoint returned no access_token");return o}function Jw(e,t,n,r,o){let i=SO(e.idToken);return{secrets:{accessToken:e.accessToken,refreshToken:e.refreshToken??t,apiKey:null,idToken:e.idToken},expiresAt:e.expiresIn===null?null:n()+e.expiresIn*1000,accountEmail:i.email,providerData:{accountId:i.accountId??r,...Zw(o)}}}function sb(e){let t=D(e);if(t===null)return null;let n=it(t,["limit_window_seconds","limitWindowSeconds","window_seconds","windowSeconds"]);return n===null||n<=0?null:n}function eb(e,t){let n=sb(e);if(n===null)return t;if(n<=21600)return"fiveHour";if(n<=129600)return"daily";return"weekly"}function tb(e){let t=sb(e);return t===null?null:t*1000}function ab(e,t){let n=D(e);if(n===null)return null;let r=Xi(n,["rate_limit","rateLimit"])??n,o=r.primary_window??r.primaryWindow,i=r.secondary_window??r.secondaryWindow;return yt([st(o,eb(o,"fiveHour"),t,tb(o)),st(i,eb(i,"weekly"),t,tb(i))])}var $c={kind:"pkce",supportsManualPaste:!0,async*start({redirectUri:e,pkce:t,randomState:n}){let{verifier:r,challenge:o}=t(),i=n(),s=new URL(vO);return s.searchParams.set("client_id",ob),s.searchParams.set("response_type","code"),s.searchParams.set("redirect_uri",e),s.searchParams.set("scope",Vw),s.searchParams.set("code_challenge",o),s.searchParams.set("code_challenge_method","S256"),s.searchParams.set("id_token_add_organizations","true"),s.searchParams.set("codex_cli_simplified_flow","true"),s.searchParams.set("state",i),s.searchParams.set("originator",Or),s.searchParams.set("prompt","login"),{authorizeUrl:s.toString(),pending:{verifier:r,challenge:o,state:i,redirectUri:e}}},async*exchange({code:e,pending:t,providerData:n,fail:r,now:o}){let[i,s]=e.split("#");if(s!==void 0&&s!==t.state)throw r("AUTH","authorization state mismatch");let a=yield*Yw({grant_type:"authorization_code",code:(i??"").trim(),redirect_uri:t.redirectUri,code_verifier:t.verifier},r);return Jw(a,null,o,null,n??{})},async*refresh({refreshToken:e,providerData:t,fail:n,now:r}){let o=yield*Yw({grant_type:"refresh_token",refresh_token:e,scope:Vw},n);return Jw(o,e,r,Mc(t),t)},async*usage({secrets:e,providerData:t,now:n}){if(e.accessToken===null)return null;let r=Mc(t),o=yield Be(RO,rt,{accessToken:e.accessToken,...r===null?{}:{extraHeaders:[["chatgpt-account-id",r]]}});if(!Ze(o.status,"openai"))return null;return ab(B(o.body),n())},async*resetCredits({secrets:e,providerData:t}){if(e.accessToken===null)return null;let n=yield Be(Qw,rt,{accessToken:e.accessToken,extraHeaders:nb(t)});if(!Ze(n.status,"openai"))return null;return ub(B(n.body))},async*redeemReset({secrets:e,providerData:t,creditId:n,requestId:r,fail:o}){if(e.accessToken===null)throw o("AUTH","credential holds no access token");let i=yield ue(`${Qw}/consume`,rt,{contentType:"application/json",body:JSON.stringify({credit_id:n,redeem_request_id:r}),extraHeaders:[["Authorization",`Bearer ${e.accessToken}`],...nb(t)]});if(i.status<200||i.status>=300)throw o(AO(i.status),`reset credit redeem refused: http_${i.status}`,{status:i.status});let s=D(B(i.body));return{windowsReset:s===null?null:it(s,["windows_reset"])}}};function nb(e){let t=Mc(e);return t===null?[]:[["chatgpt-account-id",t]]}function AO(e){if(e===429)return"RATE_LIMIT";if(e===401||e===403)return"AUTH";if(e>=400&&e<500)return"CONFLICT";return"UPSTREAM"}function rb(e){if(typeof e!=="string")return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function ub(e){let t=D(e);if(t===null||!Array.isArray(t.credits))return null;let n=t.credits.flatMap((r)=>{let o=D(r);if(o===null||typeof o.id!=="string"||typeof o.status!=="string")return[];return[{id:o.id,status:o.status,title:typeof o.title==="string"?o.title:null,grantedAt:rb(o.granted_at),expiresAt:rb(o.expires_at)}]});return{available:n.filter((r)=>r.status==="available").length,credits:n}}function Fc(){return[["anthropic",cc],["openai",$c],["kimi",Sc],["kilo",Ec],["grok",kc],["antigravity",gc],["muse",Cc]]}var cb={stop:"endTurn",length:"maxTokens",tool_calls:"toolUse",content_filter:"contentFilter"};function CO(e){if(typeof e.reasoning==="string"&&e.reasoning.length>0)return e.reasoning;if(typeof e.reasoning_content==="string"&&e.reasoning_content.length>0)return e.reasoning_content;if(!Array.isArray(e.reasoning_details))return"";return e.reasoning_details.flatMap((t)=>{if(t===null||typeof t!=="object")return[];if(typeof t.text==="string"&&t.text.length>0)return[t.text];if(typeof t.summary==="string"&&t.summary.length>0)return[t.summary];return[]}).join("")}function lb(e){try{let t=JSON.parse(e);return typeof t==="object"&&t!==null?t:null}catch{return null}}async function*pb(e){let t=!1,n=!1,r="endTurn",o={inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0},i=new Map,s=0,a,c=0;for await(let u of e){if(u.data==="[DONE]"){n=!0;break}let d=lb(u.data);if(d===null)continue;if(!t&&(d.id!==void 0||d.model!==void 0))t=!0,yield{type:"start",id:String(d.id??""),model:String(d.model??"")};if(d.usage){let g=d.usage.prompt_tokens_details;o=Se(d.usage.prompt_tokens??0,d.usage.completion_tokens??0,g?.cached_tokens??d.usage.prompt_cache_hit_tokens??0,g?.cache_creation_tokens??g?.cache_write_tokens??0)}let p=d.choices?.[0];if(!p)continue;let l=p.delta??{},m=CO(l);if(m.length>0){if(a!=="thinking"){if(a!==void 0)yield{type:"blockEnd",index:c};a="thinking",c=s++,yield{type:"blockStart",index:c,block:{type:"thinking"}}}yield{type:"blockDelta",index:c,delta:{type:"thinking",text:m}}}if(typeof l.content==="string"&&l.content.length>0){if(a!=="text"){if(a!==void 0)yield{type:"blockEnd",index:c};a="text",c=s++,yield{type:"blockStart",index:c,block:{type:"text"}}}yield{type:"blockDelta",index:c,delta:{type:"text",text:l.content}}}for(let g of l.tool_calls??[]){let h=g.index??0,f=i.get(h);if(f===void 0){if(a!==void 0)yield{type:"blockEnd",index:c};f=s++,i.set(h,f),a="tool",c=f,yield{type:"blockStart",index:f,block:{type:"toolUse",id:String(g.id??`call_${h}`),name:String(g.function?.name??"")}}}let y=g.function?.arguments;if(typeof y==="string"&&y.length>0)yield{type:"blockDelta",index:f,delta:{type:"toolJson",partial:y}}}if(typeof p.finish_reason==="string"){let g=p.finish_reason,h=Object.hasOwn(cb,g)?cb[g]:void 0;if(h===void 0){yield{type:"error",code:"UPSTREAM",message:`unrecognized custom endpoint finish reason "${g}"`,retryable:!1};return}r=h}}if(n){if(a!==void 0)yield{type:"blockEnd",index:c};yield{type:"end",stopReason:r,usage:o}}else yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before [DONE]",retryable:J.UPSTREAM}}var db={rate_limit_exceeded:"RATE_LIMIT",insufficient_quota:"QUOTA_EXHAUSTED",invalid_api_key:"AUTH",server_error:"UPSTREAM",context_length_exceeded:"BAD_REQUEST",content_policy_violation:"CONTENT_FILTER"},OO=new Set(["response.created","response.queued","response.in_progress","response.output_item.added","response.output_item.done","response.content_part.added","response.content_part.done","response.output_text.delta","response.output_text.done","response.output_text.annotation.added","response.refusal.delta","response.refusal.done","response.reasoning_summary_part.added","response.reasoning_summary_part.done","response.reasoning_summary_text.delta","response.reasoning_summary_text.done","response.reasoning_text.delta","response.reasoning_text.done","response.function_call_arguments.delta","response.function_call_arguments.done","response.completed","response.incomplete","response.failed","error"]);async function*mb(e){let t=new Map,n=0,r=(a,c=0)=>{let u=`${a}:${c}`,d=t.get(u);if(d!==void 0)return d;let p=n++;return t.set(u,p),p},o=!1,i=!1,s=new Set;for await(let a of e){if(a.data==="[DONE]")continue;if(!OO.has(a.event)){yield{type:"error",code:"UPSTREAM",message:`unrecognized custom endpoint stream event "${a.event}"`,retryable:!1};return}let c=lb(a.data);if(c===null)continue;switch(a.event){case"response.created":yield{type:"start",id:String(c.response?.id??""),model:String(c.response?.model??"")};break;case"response.output_item.added":{let u=c.item??{};if(u.type==="reasoning")s.add(c.output_index??0),yield{type:"blockStart",index:r(c.output_index??0),block:{type:"thinking"}};else if(u.type==="function_call")o=!0,s.add(c.output_index??0),yield{type:"blockStart",index:r(c.output_index??0),block:{type:"toolUse",id:String(u.call_id),name:String(u.name)}};break}case"response.content_part.added":if(c.part?.type==="output_text")yield{type:"blockStart",index:r(c.output_index??0,c.content_index??0),block:{type:"text"}};break;case"response.output_text.delta":yield{type:"blockDelta",index:r(c.output_index??0,c.content_index??0),delta:{type:"text",text:String(c.delta??"")}};break;case"response.reasoning_summary_text.delta":yield{type:"blockDelta",index:r(c.output_index??0),delta:{type:"thinking",text:String(c.delta??"")}};break;case"response.function_call_arguments.delta":yield{type:"blockDelta",index:r(c.output_index??0),delta:{type:"toolJson",partial:String(c.delta??"")}};break;case"response.content_part.done":yield{type:"blockEnd",index:r(c.output_index??0,c.content_index??0)};break;case"response.output_item.done":{let u=c.output_index??0;if(s.delete(u))yield{type:"blockEnd",index:r(u)};break}case"response.completed":case"response.incomplete":{i=!0;let u=c.response??{},d=u.incomplete_details?.reason,p=o?"toolUse":"endTurn";if(d==="max_output_tokens")p="maxTokens";else if(d==="content_filter")p="contentFilter";else if(d!==void 0||a.event==="response.incomplete"||u.status!==void 0&&u.status!=="completed"){yield{type:"error",code:"UPSTREAM",message:d!==void 0?`unrecognized custom endpoint incomplete reason "${String(d)}"`:u.status!==void 0&&u.status!=="incomplete"?`custom endpoint reported terminal response status "${String(u.status)}"`:"custom endpoint reported the response incomplete without a reason",retryable:!1};break}yield{type:"end",stopReason:p,usage:Se(u.usage?.input_tokens??0,u.usage?.output_tokens??0,u.usage?.input_tokens_details?.cached_tokens??u.usage?.prompt_tokens_details?.cached_tokens??0)};break}case"response.failed":case"error":{i=!0;let u=c.response?.error??c.error??{},d=String(u.code??u.type),p=(Object.hasOwn(db,d)?db[d]:void 0)??"UPSTREAM";yield{type:"error",code:p,message:String(u.message??"upstream error"),retryable:J[p]};break}default:break}}if(!i)yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before response completion",retryable:J.UPSTREAM}}function PO(e){switch(e.type){case"auto":return"auto";case"any":return"required";case"none":return"none";case"tool":return{type:"function",function:{name:e.name}}}}function IO(e){switch(e.type){case"auto":return"auto";case"any":return"required";case"none":return"none";case"tool":return{type:"function",name:e.name}}}function fb(e){if(e===void 0||e.mode!=="adaptive")return;return e.effort??"medium"}function gb(e,t){let n=[],r=(p)=>{if(!n.includes(p))n.push(p)};if(e.betas?.includes(Ee))r("custom:context-1m-dropped");let o=[],i=Ae(e.system,"custom",r);if(i!==void 0&&i.length>0)o.push({role:"system",content:i});for(let p of e.messages){let l=[],m=[];for(let g of p.content)switch(g.type){case"text":l.push(g.text);break;case"image":r("custom:images-dropped");break;case"thinking":r("custom:thinking-dropped");break;case"toolUse":m.push({id:g.id,type:"function",function:{name:g.name,arguments:JSON.stringify(g.input)}});break;case"toolResult":{if(g.native!==void 0)r("custom:anthropic-native-block-dropped");let h=Ge(g.files??[],()=>!1);if(o.push({role:"tool",tool_call_id:g.toolUseId,content:we(g.content,h.text)}),g.images!==void 0)r("custom:images-dropped");if(h.text.length>0)r("custom:tool-result-files-inlined");if(h.dropped)r("custom:files-dropped");break}case"providerNative":r("custom:anthropic-native-block-dropped");break}if(m.length>0)o.push({role:p.role,content:l.length>0?l.join(`
|
|
1667
|
+
`)}var dw=5,_O=65535;function wO(e,t){let n=(r,o)=>{if(typeof r==="number")return Number.isFinite(r)&&(!o||Number.isInteger(r));if(typeof r!=="string")return!1;if(o)return/^-?\d+$/.test(r);return r.trim().length>0&&Number.isFinite(Number(r))};switch(e){case"free":return t;case"text":return typeof t==="string"?t:void 0;case"texts":{if(typeof t==="string")return t;if(!Array.isArray(t))return;let r=t.filter((o)=>typeof o==="string");return r.length===0?void 0:r}case"int":return n(t,!0)?t:void 0;case"double":return n(t,!1)?t:void 0;case"walked":return t}}var bO=new Map([["type","walked"],["items","walked"],["properties","walked"],["anyOf","walked"],["allOf","walked"],["additionalProperties","walked"],["format","text"],["title","text"],["description","text"],["pattern","text"],["enum","texts"],["required","texts"],["propertyOrdering","texts"],["minItems","int"],["maxItems","int"],["minLength","int"],["maxLength","int"],["minProperties","int"],["maxProperties","int"],["minimum","double"],["maximum","double"],["default","free"],["example","free"],["nullable","free"]]),lw=new Set(["string","number","integer","boolean","array","object","null","type_unspecified"]),kO=24,dc=(e)=>typeof e==="object"&&e!==null&&!Array.isArray(e);function lc(e,t,n=0){let r={},o=()=>t(fO),i=(u)=>{if(!dc(u)||n>=kO){o();return}return lc(u,t,n+1)};for(let[u,c]of Object.entries(e)){if(u==="const"){if(o(),typeof c==="string"&&!Object.hasOwn(e,"enum"))r.enum=[c];continue}let d=bO.get(u);if(d===void 0){o();continue}switch(u){case"type":{if(typeof c==="string"){if(lw.has(c.toLowerCase()))r.type=c;else o();break}let p=Array.isArray(c)?c.filter((m)=>typeof m==="string"&&lw.has(m.toLowerCase())):[],l=p.filter((m)=>m.toLowerCase()!=="null");if(!Array.isArray(c)||p.length!==c.length||l.length!==1)o();if(l[0]!==void 0)r.type=l[0];if(p.length!==l.length)r.nullable=!0;break}case"properties":{if(!dc(c)){o();break}let p=[];for(let[l,m]of Object.entries(c)){if(l.length===0){o();continue}let g=i(m);if(g!==void 0)p.push([l,g])}r.properties=Object.fromEntries(p);break}case"items":{if(Array.isArray(c)){o();let l=i(c[0]);if(l!==void 0)r.items=l;break}let p=i(c);if(p!==void 0)r.items=p;break}case"anyOf":case"allOf":{if(!Array.isArray(c)){o();break}let p=[];for(let l of c){let m=i(l);if(m!==void 0)p.push(m)}r[u]=p;break}case"additionalProperties":{if(typeof c==="boolean"){r[u]=c;break}let p=i(c);if(p!==void 0)r[u]=p;break}default:{let p=wO(d,c);if(p===void 0)o();else{if(Array.isArray(p)&&Array.isArray(c)&&p.length!==c.length)o();r[u]=p}}}}let s=typeof r.type==="string"?r.type.toLowerCase():void 0,a=(u,c)=>{if(!c.some((d)=>r[d]!==void 0))return;if(s===u)return;if(s===void 0){r.type=u;return}o();for(let d of c)delete r[d]};a("object",["properties","required","propertyOrdering"]),a("array",["items"]);for(let u of["required","propertyOrdering"]){let c=r[u];if(!Array.isArray(c))continue;let d=dc(r.properties)?r.properties:{},p=c.filter((l)=>typeof l==="string"&&Object.hasOwn(d,l));if(p.length===c.length)continue;if(o(),p.length===0)delete r[u];else r[u]=p}if(r.type==="array"&&r.items===void 0)o(),delete r.type;return r}function EO(e,t){switch(e.type){case"auto":return{functionCallingConfig:{mode:"AUTO"}};case"any":return{functionCallingConfig:{mode:"ANY"}};case"none":return{functionCallingConfig:{mode:"NONE"}};case"tool":return{functionCallingConfig:{mode:"ANY",allowedFunctionNames:[Ur(t,e.name)]}}}}function Yi(e,t,n){let r=n.cloak??null,o=[],i=(h)=>{if(!o.includes(h))o.push(h)},s=cO(e),a=[];for(let h of e.messages){let f=[];if(h.role==="system")i("antigravity:system-turn-as-user");let y=h.role==="assistant"?"model":"user";for(let _ of h.content){if(mO(_))i("antigravity:cache-control-dropped");switch(_.type){case"text":f.push({text:_.text});break;case"image":f.push({inlineData:{mimeType:_.mediaType,data:_.data}});break;case"thinking":i("antigravity:thinking-dropped");break;case"toolUse":f.push({thoughtSignature:uO,functionCall:{name:Ur(r,_.name),args:_.input}});break;case"toolResult":{if(_.native!==void 0)i("antigravity:provider-native-block-dropped");let w=s.get(_.toolUseId);if(w===void 0)i("antigravity:tool-result-unmatched");if(_.isError===!0)i("antigravity:tool-result-error-flag-dropped");let v=Ze(_.files??[],()=>!0);if(v.text.length>0)i("antigravity:tool-result-files-inlined");f.push({functionResponse:{name:Ur(r,w??_.toolUseId),response:{output:be(_.content,v.text)}}});for(let k of _.images??[])f.push({inlineData:{mimeType:k.mediaType,data:k.data}});for(let k of v.carried)f.push({inlineData:{mimeType:k.mediaType,data:k.data}});y="user";break}case"providerNative":i("antigravity:provider-native-block-dropped");break}}if(f.length>0)a.push({role:y,parts:f})}let u={contents:pO(lO(dO(a),i),i)},c=Oe(e.system,"antigravity",i),d=c===void 0?void 0:yO(c,i);if(d!==void 0&&d.trim().length>0)u.systemInstruction={parts:[{text:d}]};let p={};if(e.maxTokens!==void 0)if(e.maxTokens>0)p.maxOutputTokens=e.maxTokens;else i("antigravity:max-tokens-dropped");if(e.temperature!==void 0){let h=Math.min(Math.max(e.temperature,0),2);if(h!==e.temperature)i("antigravity:temperature-clamped");p.temperature=h}if(e.stopSequences!==void 0){if(p.stopSequences=e.stopSequences.slice(0,dw),e.stopSequences.length>dw)i("antigravity:stop-sequences-dropped")}if(e.reasoning!==void 0)switch(e.reasoning.mode){case"betweenTools":i("antigravity:reasoning-between-tools-as-off"),p.thinkingConfig={thinkingBudget:0,includeThoughts:!1};break;case"off":p.thinkingConfig={thinkingBudget:0,includeThoughts:!1};break;case"budget":{let h=e.reasoning.budgetTokens,f=Math.min(Math.max(h,-1),_O);if(f!==h)i("antigravity:thinking-budget-clamped");p.thinkingConfig={thinkingBudget:f,includeThoughts:f!==0}}break;case"adaptive":if(p.thinkingConfig={includeThoughts:e.reasoning.display!=="omitted"&&e.reasoning.display!=="updates"},e.reasoning.effort!==void 0)i("antigravity:reasoning-effort-dropped");break}let l=ot(e);if(l.kind==="readable"){let h=l.format;p.responseSchema=lc(h.schema,i),i("antigravity:response-format-translated")}else if(l.kind==="tooDeep")i("antigravity:response-schema-too-deep");let m=p.maxOutputTokens;if(m!==void 0&&m>yi)p.maxOutputTokens=yi,i("antigravity:max-tokens-clamped");let g=p.thinkingConfig?.thinkingBudget;if(g!==void 0&&g>0){let h=p.maxOutputTokens;if(h===void 0||h<=g)p.maxOutputTokens=Math.min(g+1,yi)}if(Object.keys(p).length>0)u.generationConfig=p;if(e.tools!==void 0){let h=e.tools.filter((_)=>_.kind==="portable");if(h.length!==e.tools.length)i("antigravity:provider-tool-dropped");let f=new Set,y=[];for(let _ of h){let w=Ur(r,_.name);if(f.has(w)){i("antigravity:duplicate-tool-dropped");continue}f.add(w),y.push({name:w,description:_.description,inputSchema:_.inputSchema})}if(r!==null&&r.toWire.size>0)i("antigravity:tool-name-renamed");if(y.length>0)u.tools=[{functionDeclarations:y.map((_)=>({name:_.name,description:_.description,parameters:lc(_.inputSchema,i)}))}]}if(e.toolChoice!==void 0)u.toolConfig=EO(e.toolChoice,r);return Object.assign(u,e.vendor?.antigravity??{}),{body:{project:n.project,requestId:n.requestId,model:t,userAgent:"antigravity",requestType:"agent",request:u},degradations:o}}var TO="https://daily-cloudcode-pa.googleapis.com/v1internal:streamGenerateContent?alt=sse",RO="omni-antigravity-req";function SO(e){let t=vO("sha256").update(`${RO}:${e}`).digest("hex"),n=(Number.parseInt(t[16],16)&3|8).toString(16);return[t.slice(0,8),t.slice(8,12),`4${t.slice(13,16)}`,`${n}${t.slice(17,20)}`,t.slice(20,32)].join("-")}function xO(e){let t=e.credentials.providerData.projectId,n=typeof t==="string"?t.trim():"";if(n.length===0)throw e.fail("AUTH","antigravity credential has no Cloud Code project; reconnect the account");return n}function AO(e){if(e===null||typeof e!=="object")return null;let t=e.cloak;if(t===null||t===void 0||typeof t!=="object")return null;let{toWire:n,fromWire:r}=t;return n instanceof Map&&r instanceof Map?t:null}var pw={buildRequest(e){let t=e.credentials.accessToken;if(t===null||t.length===0)throw e.fail("AUTH","antigravity credential has no access token");let n=xO(e),r=e.requestId!==void 0&&e.requestId.length>0?e.requestId:SO(`${e.model}:${n}`),o=iw(e.request),{body:i,degradations:s}=Yi(e.request,e.model,{project:n,requestId:r,cloak:o}),a=[["Authorization",`Bearer ${t}`]],u=fe(ge(nt.headers,a),nt.order);return{request:{url:TO,method:"POST",headers:u,body:JSON.stringify(i)},decodeState:{cloak:o},degradations:s,...o===null?{}:{cloakedTools:o.toWire.size}}},decode({body:e,decodeState:t}){return Qi(_e(e),{cloak:AO(t)})}};var pc=de("antigravity",wi.capabilities,pw);var mw="omnigateway-public-v1";function bw(e){let t="";for(let n=0;n<e.length;n++)t+=String.fromCharCode(e[n]^mw.charCodeAt(n%mw.length));return t}var kw=bw([94,93,89,88,87,81,66,85,65,81,76,20,65,88,22,1,1,16,94,31,95,93,5,92,88,11,2,6,0,69,82,76,91,4,26,14,3,3,11,25,17,5,95,94,11,25,73,0,4,21,4,79,30,66,31,18,14,9,28,16,72,4,82,0,3,26,12,9,21,90,6,24,12]),mc=kw,fw=bw([40,34,45,58,55,57,89,46,66,89,63,122,34,65,90,90,37,7,97,60,0,2,33,44,81,20,57,55,81,13,87,8,105,49,19]),OO="https://accounts.google.com/o/oauth2/v2/auth",CO="https://oauth2.googleapis.com/token",PO="https://www.googleapis.com/oauth2/v1/userinfo?alt=json",fc="https://cloudcode-pa.googleapis.com/v1internal",IO=`${fc}:loadCodeAssist`,LO=`${fc}:onboardUser`,NO=`${fc}:retrieveUserQuotaSummary`,DO=["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"].join(" "),gw={ideType:"ANTIGRAVITY"},UO="legacy-tier";function MO(e){let t=D(e);if(t===null||typeof t.access_token!=="string")return null;return{accessToken:t.access_token,refreshToken:typeof t.refresh_token==="string"?t.refresh_token:null,expiresIn:typeof t.expires_in==="number"?t.expires_in:null}}async function*hw(e,t){let n=yield ue(CO,nt,{contentType:"application/x-www-form-urlencoded",body:new URLSearchParams(e).toString()}),r=B(n.body);if(n.status<200||n.status>=300)throw t(Te(n.status),ze(n.status,r));let o=MO(r);if(o===null)throw t("AUTH","token endpoint returned no access_token");return o}function yw(e){let t=D(e);if(t===null)return"";let n=t.cloudaicompanionProject;if(typeof n==="string")return n.trim();let o=D(n)?.id;return typeof o==="string"?o.trim():""}function $O(e){let t=D(e),n=t?.allowedTiers;if(Array.isArray(n))for(let o of n){let i=D(o);if(i?.isDefault===!0&&typeof i.id==="string")return i.id}let r=D(t?.currentTier);return typeof r?.id==="string"?r.id:UO}function _w(e,t,n){return ue(e,nt,{contentType:"application/json",body:JSON.stringify(n),extraHeaders:[["Authorization",`Bearer ${t}`]]})}async function*FO(e){let t=yield _w(IO,e,{metadata:gw}),n=t.status>=200&&t.status<300?B(t.body):null,r=$O(n),o=yw(n);if(o.length>0)return{projectId:o,tier:r};let i=yield _w(LO,e,{tier_id:r,metadata:gw});if(i.status<200||i.status>=300)return{projectId:"",tier:r};let s=D(B(i.body));return{projectId:yw(s?.response),tier:r}}async function*BO(e){let t=yield qe(PO,nt,{accessToken:e});if(t.status<200||t.status>=300)return null;let r=D(B(t.body))?.email;return typeof r==="string"&&r.trim().length>0?r:null}function ww(e,t,n,r,o){return{secrets:{accessToken:e.accessToken,refreshToken:e.refreshToken??t,apiKey:null,idToken:null},expiresAt:e.expiresIn===null?null:o()+e.expiresIn*1000,accountEmail:n,providerData:r}}var zO=/\bgemini\b/;function qO(e){let t=`${String(e.bucketId??"")} ${String(e.displayName??"")}`.toLowerCase();if(/\bweekly\b|\bweek\b/.test(t))return"weekly";if(/\b5\s*-?\s*hour|\b5h\b|\bfive\s*hour/.test(t))return"fiveHour";return null}function HO(e){let t=D(e);if(t===null)return[];if(Array.isArray(t.groups))return t.groups;let n=D(t.quotaSummary)?.groups;return Array.isArray(n)?n:[]}function Ew(e,t){let n=[];for(let r of HO(e)){let o=D(r);if(o===null)continue;if(!zO.test(String(o.displayName??"").toLowerCase()))continue;let i=Array.isArray(o.buckets)?o.buckets:[];for(let s of i){let a=D(s);if(a===null||a.disabled===!0)continue;let u=qO(a);if(u===null)continue;let c=it(a,["remainingFraction"]);if(c===null)continue;let d=Math.max(0,Math.min(1,c));n.push({windowType:u,used:Math.round((1-d)*100),limit:100,resetsAt:ac(a,{absolute:["resetTime"]},t),windowMs:null})}}return yt(n)}var gc={kind:"pkce",supportsManualPaste:!0,async*start({redirectUri:e,randomState:t,pkce:n}){let r=t(),{verifier:o,challenge:i}=n(),s=new URL(OO);return s.searchParams.set("client_id",mc),s.searchParams.set("response_type","code"),s.searchParams.set("redirect_uri",e),s.searchParams.set("scope",DO),s.searchParams.set("state",r),s.searchParams.set("access_type","offline"),s.searchParams.set("prompt","consent"),s.searchParams.set("code_challenge",i),s.searchParams.set("code_challenge_method","S256"),{authorizeUrl:s.toString(),pending:{verifier:o,challenge:i,state:r,redirectUri:e}}},async*exchange({code:e,pending:t,fail:n,now:r}){let[o,i]=e.split("#");if(i!==void 0&&i!==t.state)throw n("AUTH","authorization state mismatch");let s=yield*hw({grant_type:"authorization_code",client_id:mc,client_secret:fw,code:(o??"").trim(),redirect_uri:t.redirectUri,code_verifier:t.verifier},n),a=yield*BO(s.accessToken),{projectId:u,tier:c}=yield*FO(s.accessToken);return ww(s,null,a,{projectId:u,tier:c},r)},async*refresh({refreshToken:e,providerData:t,fail:n,now:r}){let o=yield*hw({grant_type:"refresh_token",client_id:mc,client_secret:fw,refresh_token:e},n);return ww(o,e,null,t,r)},async*usage({secrets:e,providerData:t,now:n}){let r=typeof t.projectId==="string"?t.projectId:"";if(r.trim().length===0)return null;let o=yield{...ue(NO,nt,{contentType:"application/json",body:JSON.stringify({project:r}),extraHeaders:[["Authorization",`Bearer ${e.accessToken}`]]}),timeoutMs:sc};if(!Xe(o.status,"antigravity"))return null;return Ew(B(o.body),n())}};import{randomUUID as WO}from"crypto";function hc(){return{agentId:WO()}}function vw(e){let t=e.agentId;if(typeof t!=="string"||t.length===0)return[];return[["x-grok-agent-id",t]]}var yc="b1a00492-073a-47ea-816f-4c329264a828",jO="https://auth.x.ai",KO=`${jO}/.well-known/openid-configuration`,GO=["openid","profile","email","offline_access","grok-cli:access","api:access","conversations:read","conversations:write","workspaces:read","workspaces:write"].join(" "),_c="x.ai";function bc(e){return typeof e==="object"&&e!==null}function Tw(e,t,n){if(typeof e!=="string"||e.trim().length===0)throw n("UPSTREAM",`discovery document has no ${t}`);let r;try{r=new URL(e)}catch{throw n("UPSTREAM",`discovery document has an unusable ${t}`)}let o=r.hostname;if(r.protocol!=="https:"||o!==_c&&!o.endsWith(`.${_c}`))throw n("UPSTREAM",`discovery document ${t} is not an ${_c} https url`);return r.toString()}async function*wc(e){let t=yield Zi(KO,Ot);if(t.status<200||t.status>=300)throw e("UPSTREAM",`discovery endpoint returned http_${t.status}`);let n=B(t.body);if(!bc(n))throw e("UPSTREAM","discovery endpoint returned an unusable response");return{authorizeUrl:Tw(n.authorization_endpoint,"authorization_endpoint",e),tokenUrl:Tw(n.token_endpoint,"token_endpoint",e)}}function ZO(e){if(!bc(e)||typeof e.access_token!=="string")return null;return{accessToken:e.access_token,refreshToken:typeof e.refresh_token==="string"?e.refresh_token:null,expiresIn:typeof e.expires_in==="number"?e.expires_in:null,idToken:typeof e.id_token==="string"?e.id_token:null}}function XO(e){let t=typeof e==="string"?e.split("."):[],n=t[1];if(t.length!==3||n===void 0||n.length===0)return null;try{let r=JSON.parse(Buffer.from(n,"base64url").toString("utf8"));if(!bc(r))return null;return typeof r.email==="string"&&r.email.trim().length>0?r.email:null}catch{return null}}async function*Rw(e,t,n){let r=yield ue(e,Ot,{contentType:"application/x-www-form-urlencoded",body:new URLSearchParams(t).toString()}),o=B(r.body);if(r.status<200||r.status>=300)throw n(Te(r.status),ze(r.status,o));let i=ZO(o);if(i===null)throw n("AUTH","token endpoint returned no access_token");return i}function VO(e){let t=e.agentId;return typeof t==="string"&&t.trim().length>0?t:hc().agentId}function Sw(e,t,n,r){return{secrets:{accessToken:e.accessToken,refreshToken:e.refreshToken??t,apiKey:null,idToken:e.idToken},expiresAt:e.expiresIn===null?null:r()+e.expiresIn*1000,accountEmail:XO(e.idToken),providerData:{agentId:n}}}var kc={kind:"pkce",supportsManualPaste:!0,async*start({redirectUri:e,fail:t,pkce:n,randomState:r}){let{authorizeUrl:o}=yield*wc(t),{verifier:i,challenge:s}=n(),a=r(),u=new URL(o);return u.searchParams.set("response_type","code"),u.searchParams.set("client_id",yc),u.searchParams.set("redirect_uri",e),u.searchParams.set("scope",GO),u.searchParams.set("code_challenge",s),u.searchParams.set("code_challenge_method","S256"),u.searchParams.set("state",a),u.searchParams.set("nonce",r()),u.searchParams.set("referrer","grok-build"),{authorizeUrl:u.toString(),pending:{verifier:i,challenge:s,state:a,redirectUri:e}}},async*exchange({code:e,pending:t,fail:n,now:r}){let[o,i]=e.split("#");if(i!==void 0&&i!==t.state)throw n("AUTH","authorization state mismatch");let{tokenUrl:s}=yield*wc(n),a=yield*Rw(s,{grant_type:"authorization_code",code:(o??"").trim(),redirect_uri:t.redirectUri,client_id:yc,code_verifier:t.verifier},n);return Sw(a,null,hc().agentId,r)},async*refresh({refreshToken:e,providerData:t,fail:n,now:r}){let{tokenUrl:o}=yield*wc(n),i=yield*Rw(o,{grant_type:"refresh_token",client_id:yc,refresh_token:e},n);return Sw(i,e,VO(t),r)}};var xw="https://api.kilo.ai/api/device-auth/codes",QO="https://api.kilo.ai/api/profile",Aw="https://kilo.ai",YO=300,JO=3;function eC(e){return typeof e==="object"&&e!==null}function Ji(e){return eC(e)?e:null}function Nn(e,t){let n=e[t];return typeof n==="string"&&n.trim().length>0?n:null}function Ow(e,t){let n=e[t];return typeof n==="number"&&Number.isFinite(n)&&n>0?n:null}function tC(e,t){let n=Ji(e),r=n===null?null:Nn(n,"code");if(n===null||r===null)throw t("AUTH","device code endpoint returned an unusable response");return{code:r,verificationUrl:Nn(n,"verificationUrl")??Aw,expiresIn:Ow(n,"expiresIn")??YO}}async function*nC(e){try{let t=yield qe(QO,ft,{accessToken:e});if(t.status<200||t.status>=300)return null;let r=Ji(B(t.body))?.organizations;if(!Array.isArray(r))return null;let o=Ji(r[0]);return o===null?null:Nn(o,"id")}catch{return null}}var Ec={kind:"device",supportsManualPaste:!1,needsDeviceId:!1,async*start(){return{authorizeUrl:Aw,pending:{verifier:"",challenge:"",state:"",redirectUri:""}}},async*begin({fail:e,now:t}){let n=yield ue(xw,ft,{contentType:"application/json",body:""}),r=B(n.body);if(n.status===429)throw e("RATE_LIMIT","kilo has too many pending device authorizations; wait for one to expire and retry");if(n.status<200||n.status>=300)throw e(Te(n.status),`kilo refused a device code: http_${n.status}`);let o=tC(r,e);return{authorizeUrl:o.verificationUrl,userCode:o.code,pending:{verifier:"",challenge:"",state:"",redirectUri:"",deviceCode:o.code,interval:JO,extra:{expiresAt:t()+o.expiresIn*1000}}}},async*exchange({pending:e,fail:t,keepPolling:n,now:r}){let o=e.deviceCode;if(o===void 0)throw t("INTERNAL","kilo exchange requires a pending flow produced by begin()");let i=e.extra===void 0?null:Ow(e.extra,"expiresAt");if(i!==null&&r()>=i)throw t("AUTH","kilo device code expired; start the authorization again");let s=yield Zi(`${xw}/${encodeURIComponent(o)}`,ft);if(s.status===202)throw n("http_202");if(s.status===403)throw t("AUTH","kilo authorization was denied");if(s.status===410)throw t("AUTH","kilo device code expired; start the authorization again");if(s.status<200||s.status>=300)throw t(Te(s.status),`kilo refused the device code poll: http_${s.status}`);let a=Ji(B(s.body));if(a===null)throw n("http_200");if(Nn(a,"status")!=="approved")throw n("http_200");let u=Nn(a,"token");if(u===null)throw t("AUTH","kilo approved the authorization without a token");let c=yield*nC(u);return{secrets:{accessToken:u,refreshToken:null,apiKey:null,idToken:null},expiresAt:null,accountEmail:Nn(a,"userEmail"),providerData:c===null?{}:{orgId:c}}},async*refresh({fail:e}){throw e("AUTH","kilo tokens cannot be refreshed; reconnect the kilo account to get a new one")}};import{randomUUID as rC}from"crypto";function Mr(){return{deviceId:rC(),deviceName:"MacBook-Pro",deviceModel:"MacBookPro18,3",osVersion:"15.3.1"}}function $r(e){let t=e.deviceId;if(typeof t!=="string"||t.length===0)return[];let n=(r)=>typeof r==="string"&&r.length>0?r:"unknown";return[["X-Msh-Device-Id",t],["X-Msh-Device-Name",n(e.deviceName)],["X-Msh-Device-Model",n(e.deviceModel)],["X-Msh-Os-Version",n(e.osVersion)]]}var oC="17e5f671-d194-4dfb-9706-5516cb48c098",iC="https://auth.kimi.com/api/oauth/device_authorization",Cw="https://auth.kimi.com/api/oauth/token",sC="https://api.kimi.com/coding/v1/usages",aC=5,uC=new Set(["authorization_pending","slow_down"]);function cC(e){return typeof e==="object"&&e!==null}function Rc(e){return cC(e)?e:null}function Wt(e,t){let n=e[t];return typeof n==="string"&&n.trim().length>0?n:null}function Lw(e,t){let n=e[t];return typeof n==="number"&&Number.isFinite(n)&&n>0?n:null}function Pw(e,t){let n=Rc(e);if(n===null)throw t("AUTH","token endpoint returned no access_token");let r=Wt(n,"access_token");if(r===null)throw t("AUTH","token endpoint returned no access_token");return{accessToken:r,refreshToken:Wt(n,"refresh_token"),expiresIn:Lw(n,"expires_in"),email:Wt(n,"email")}}function dC(e,t){let n=Rc(e);if(n===null)throw t("AUTH","device code endpoint returned an unusable response");let r=Wt(n,"device_code"),o=Wt(n,"user_code");if(r===null||o===null)throw t("AUTH","device code endpoint returned an unusable response");return{deviceCode:r,userCode:o,verificationUri:Wt(n,"verification_uri_complete")??Wt(n,"verification_uri")??"https://www.kimi.com/device",interval:Lw(n,"interval")??aC}}async function*vc(e,t,n,r,o){let i=yield ue(e,Ct,{contentType:"application/x-www-form-urlencoded",body:new URLSearchParams({...t,client_id:oC}).toString(),extraHeaders:$r(n)}),s=B(i.body);if(i.status>=200&&i.status<300)return s;let a=Rc(s),u=a===null?`http_${i.status}`:Wt(a,"error")??`http_${i.status}`;if(uC.has(u))throw o(u);throw r(Te(i.status),ze(i.status,s))}function Tc(e){if(typeof e?.deviceId==="string"&&e.deviceId.length>0){let t=Mr(),n=(r,o)=>{let i=e[r];return typeof i==="string"&&i.length>0?i:o};return{deviceId:e.deviceId,deviceName:n("deviceName",t.deviceName),deviceModel:n("deviceModel",t.deviceModel),osVersion:n("osVersion",t.osVersion)}}return Mr()}function lC(e){return{...Mr(),deviceId:e}}function Iw(e,t,n,r){return{secrets:{accessToken:e.accessToken,refreshToken:e.refreshToken??n,apiKey:null,idToken:null},expiresAt:e.expiresIn===null?null:r()+e.expiresIn*1000,accountEmail:e.email,providerData:{...t}}}function Nw(e,t){let n=D(e);if(n===null)return null;return yt([st(n.usage??n.Usage,"weekly",t)])}var Sc={kind:"device",needsDeviceId:!0,supportsManualPaste:!1,async*start(){return{authorizeUrl:"https://www.kimi.com/device",pending:{verifier:"",challenge:"",state:"",redirectUri:"",extra:{...Mr()}}}},async*begin({deviceId:e,fail:t,keepPolling:n}){if(e.trim().length===0)throw t("INTERNAL","kimi begin requires a non-blank deviceId");let r=lC(e),o=dC(yield*vc(iC,{},r,t,n),t);return{authorizeUrl:o.verificationUri,userCode:o.userCode,pending:{verifier:"",challenge:"",state:"",redirectUri:"",deviceCode:o.deviceCode,interval:o.interval,extra:{...r}}}},async*exchange({pending:e,fail:t,keepPolling:n,now:r}){if(e.deviceCode===void 0)throw t("INTERNAL","kimi exchange requires a pending flow produced by begin()");let o=Tc(e.extra),i=Pw(yield*vc(Cw,{grant_type:"urn:ietf:params:oauth:grant-type:device_code",device_code:e.deviceCode,device_id:o.deviceId},o,t,n),t);return Iw(i,o,null,r)},async*refresh({refreshToken:e,providerData:t,fail:n,keepPolling:r,now:o}){let i=Tc(t),s=Pw(yield*vc(Cw,{grant_type:"refresh_token",refresh_token:e,device_id:i.deviceId},i,n,r),n);return Iw(s,i,e,o)},async*usage({secrets:e,providerData:t,now:n}){if(e.accessToken===null)return null;let r=Tc(t),o=yield qe(sC,Ct,{accessToken:e.accessToken,extraHeaders:$r(r)});if(!Xe(o.status,"kimi"))return null;return Nw(B(o.body),n())}};function xc(e){if(typeof e!=="string"||e.length===0)return null;let t;try{t=new URL(e)}catch{return null}if(t.protocol!=="https:")return null;let n=t.hostname;if(n!=="meta.ai"&&!n.endsWith(".meta.ai"))return null;return`${t.origin}${t.pathname}`.replace(/\/$/,"")}function Dw(e){return`${xc(e.baseUrl)??"https://api.meta.ai/v1"}/responses`}var Bw="https://auth.meta.com",pC=`${Bw}/oidc/device/authorization/`,Uw=`${Bw}/oidc/device/token/`,zw="https://api.meta.ai/muse-code/key",mC="1031625952748946",fC="urn:ietf:params:oauth:grant-type:device_code",qw="https://auth.meta.com/oauth/device/",gC=5,hC=new Set(["authorization_pending","slow_down"]);function yC(e){return typeof e==="object"&&e!==null}function es(e){return yC(e)?e:null}function _t(e,t){let n=e[t];return typeof n==="string"&&n.trim().length>0?n:null}function Hw(e,t){let n=e[t];return typeof n==="number"&&Number.isFinite(n)&&n>0?n:null}function Mw(e,t){let n=es(e),r=n===null?null:_t(n,"access_token");if(n===null||r===null)throw t("AUTH","token endpoint returned no access_token");return{accessToken:r,refreshToken:_t(n,"refresh_token"),expiresIn:Hw(n,"expires_in")}}function _C(e,t){let n=es(e),r=n===null?null:_t(n,"device_code"),o=n===null?null:_t(n,"user_code");if(n===null||r===null||o===null)throw t("AUTH","device authorization response missing user_code or verification_uri");return{deviceCode:r,userCode:o,verificationUri:_t(n,"verification_uri_complete")??_t(n,"verification_uri")??qw,interval:Hw(n,"interval")??gC}}async function*Ac(e,t,n,r){let o=yield ue(e,gt,{contentType:"application/x-www-form-urlencoded",body:new URLSearchParams({...t,client_id:mC}).toString(),extraHeaders:[["Accept","application/json"]]}),i=B(o.body);if(o.status>=200&&o.status<300)return i;let s=es(i),a=s===null?`http_${o.status}`:_t(s,"error")??`http_${o.status}`;if(hC.has(a))throw r(a);if(a==="expired_token")throw n("AUTH","muse device code expired; start the authorization again");throw n(Te(o.status),ze(o.status,i))}async function*$w(e,t){let n=yield ue(zw,gt,{contentType:"application/json",body:"{}",extraHeaders:[["Authorization",`Bearer ${e}`],["Accept","application/json"]]}),r=B(n.body);if(n.status<200||n.status>=300){if(n.status===401||n.status===403)throw t("AUTH","muse rejected the saved login; reconnect the account or use a different one");if(n.status===429)throw t("RATE_LIMIT",`muse rate limited the key mint: http_${n.status}`);throw t("UPSTREAM",`muse key mint failed: http_${n.status}`)}let o=es(r);if(o===null)throw t("UPSTREAM","muse key mint returned an unusable response");if(o.require_payment===!0)throw t("AUTH","muse requires a payment method on the Meta account; add one at https://dev.meta.ai and reconnect");let i=_t(o,"api_key");if(i===null)throw t("AUTH","muse key mint returned an empty api key; finish onboarding at https://dev.meta.ai and reconnect");return{apiKey:i,email:_t(o,"user_email"),tierName:_t(o,"subs_tier_name"),subscriptionActive:o.is_subs_active===!0,baseUrl:xc(o.base_url),usage:o.subs_usage}}function Fw(e,t,n,r){return{secrets:{accessToken:e.accessToken,refreshToken:e.refreshToken??n,apiKey:t.apiKey,idToken:null},expiresAt:e.expiresIn===null?null:r()+e.expiresIn*1000,accountEmail:t.email,providerData:{...t.tierName===null?{}:{subscriptionTier:t.tierName},subscriptionActive:t.subscriptionActive,...t.baseUrl===null?{}:{baseUrl:t.baseUrl}}}}var Oc={kind:"device",supportsManualPaste:!1,needsDeviceId:!1,async*start(){return{authorizeUrl:qw,pending:{verifier:"",challenge:"",state:"",redirectUri:""}}},async*begin({fail:e,keepPolling:t}){let n=_C(yield*Ac(pC,{},e,t),e);return{authorizeUrl:n.verificationUri,userCode:n.userCode,pending:{verifier:"",challenge:"",state:"",redirectUri:"",deviceCode:n.deviceCode,interval:n.interval}}},async*exchange({pending:e,fail:t,keepPolling:n,now:r}){if(e.deviceCode===void 0)throw t("INTERNAL","muse exchange requires a pending flow produced by begin()");let o=Mw(yield*Ac(Uw,{grant_type:fC,device_code:e.deviceCode},t,n),t);return Fw(o,yield*$w(o.accessToken,t),null,r)},async*refresh({refreshToken:e,fail:t,keepPolling:n,now:r}){let o=Mw(yield*Ac(Uw,{grant_type:"refresh_token",refresh_token:e},t,n),t);return Fw(o,yield*$w(o.accessToken,t),e,r)},async*usage({secrets:e,now:t}){if(e.accessToken===null)return null;let n=yield ue(zw,gt,{contentType:"application/json",body:"{}",extraHeaders:[["Authorization",`Bearer ${e.accessToken}`],["Accept","application/json"]]});if(!Xe(n.status,"muse"))return null;let r=D(B(n.body));return r===null?null:Ww(r.subs_usage,t())}};function Ww(e,t){let n=D(e);if(n===null)return null;let r=D(n.window),o=r===null?null:it(r,["window_duration_mins"]);return yt([st(n.window,"fiveHour",t,o===null?null:o*60000),st(n.weekly,"weekly",t)])}import{createHash as jw,createHmac as wC}from"crypto";var bC="6ba7b812-9dad-11d1-80b4-00c04fd430c8",kC=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,Kw=Date.UTC(2026,9,1),ts=31536000000;function Cc(e){return kC.test(e)}function Pc(e){let t=Buffer.from(e).toString("hex");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20,32)}`}function Ic(e,t){let n=Uint8Array.from(e.subarray(0,16));return n[6]=(n[6]??0)&15|t<<4,n[8]=(n[8]??0)&63|128,n}var ns=(e)=>jw("sha256").update(e).digest();function rs(e,t){let n=jw("sha1").update(Buffer.from(e.replace(/-/g,""),"hex")).update(t,"utf8").digest();return Pc(Ic(n,5))}function Gw(e){return Pc(Ic(ns(e),4))}function Fr(e,t){let n=Uint8Array.from(ns(e).subarray(0,16)),r=Math.max(0,Math.floor(t));for(let o=5;o>=0;o--)n[o]=r%256,r=Math.floor(r/256);return Pc(Ic(n,7))}function Lc(e){let n=ns(`thread:${e}`).readUIntBE(0,6)%ts;return Fr(e,Kw-ts+n)}function Nc(e,t){let n=e.replace(/-/g,""),r=n[12],o=Number.parseInt(n.slice(0,12),16);if(r==="7"&&Number.isFinite(o)&&o<=t)return o;let i=ns(`thread:${e}`);return Kw-ts+i.readUIntBE(0,6)%ts}var EC=/^[0-9a-f]{64}$/;function Dc(e){let{installationId:t,idSalt:n}=e;return{...typeof t==="string"&&Cc(t)?{installationId:t}:{},...typeof n==="string"&&EC.test(n)?{idSalt:n}:{}}}function Zw(e){let t=Dc(e),n=()=>Buffer.from(globalThis.crypto.getRandomValues(new Uint8Array(32))).toString("hex");return{installationId:t.installationId??globalThis.crypto.randomUUID(),idSalt:t.idSalt??n()}}function dn(e,t){if(e===void 0)return t;return wC("sha256",e).update(t).digest("hex")}function Xw(e){return rs(bC,e)}var ob="app_EMoamEEZ73f0CkXaXp7hrann",vC="https://auth.openai.com/oauth/authorize",TC="https://auth.openai.com/oauth/token",Vw="openid profile email offline_access",RC="https://chatgpt.com/backend-api/wham/usage",Qw="https://chatgpt.com/backend-api/wham/rate-limit-reset-credits";function Uc(e){return typeof e==="object"&&e!==null}function ib(e){return typeof e==="string"&&e.trim().length>0?e:null}function Mc(e){return ib(e.accountId)}function SC(e){let t=typeof e==="string"?e.split("."):[],[n,r,o]=t;if(t.length!==3||n===void 0||r===void 0||o===void 0||n.length===0||r.length===0||o.length===0)return{email:null,accountId:null};try{let i=JSON.parse(Buffer.from(r,"base64url").toString("utf8"));if(!Uc(i))return{email:null,accountId:null};let s=i["https://api.openai.com/auth"];return{email:typeof i.email==="string"?i.email:null,accountId:Uc(s)?ib(s.chatgpt_account_id):null}}catch{return{email:null,accountId:null}}}function xC(e){if(!Uc(e)||typeof e.access_token!=="string")return null;return{accessToken:e.access_token,refreshToken:typeof e.refresh_token==="string"?e.refresh_token:null,expiresIn:typeof e.expires_in==="number"?e.expires_in:null,idToken:typeof e.id_token==="string"?e.id_token:null}}async function*Yw(e,t){let n=yield ue(TC,rt,{contentType:"application/x-www-form-urlencoded",body:new URLSearchParams({...e,client_id:ob}).toString()}),r=B(n.body);if(n.status<200||n.status>=300)throw t(Te(n.status),ze(n.status,r));let o=xC(r);if(o===null)throw t("AUTH","token endpoint returned no access_token");return o}function Jw(e,t,n,r,o){let i=SC(e.idToken);return{secrets:{accessToken:e.accessToken,refreshToken:e.refreshToken??t,apiKey:null,idToken:e.idToken},expiresAt:e.expiresIn===null?null:n()+e.expiresIn*1000,accountEmail:i.email,providerData:{accountId:i.accountId??r,...Zw(o)}}}function sb(e){let t=D(e);if(t===null)return null;let n=it(t,["limit_window_seconds","limitWindowSeconds","window_seconds","windowSeconds"]);return n===null||n<=0?null:n}function eb(e,t){let n=sb(e);if(n===null)return t;if(n<=21600)return"fiveHour";if(n<=129600)return"daily";return"weekly"}function tb(e){let t=sb(e);return t===null?null:t*1000}function ab(e,t){let n=D(e);if(n===null)return null;let r=Xi(n,["rate_limit","rateLimit"])??n,o=r.primary_window??r.primaryWindow,i=r.secondary_window??r.secondaryWindow;return yt([st(o,eb(o,"fiveHour"),t,tb(o)),st(i,eb(i,"weekly"),t,tb(i))])}var $c={kind:"pkce",supportsManualPaste:!0,async*start({redirectUri:e,pkce:t,randomState:n}){let{verifier:r,challenge:o}=t(),i=n(),s=new URL(vC);return s.searchParams.set("client_id",ob),s.searchParams.set("response_type","code"),s.searchParams.set("redirect_uri",e),s.searchParams.set("scope",Vw),s.searchParams.set("code_challenge",o),s.searchParams.set("code_challenge_method","S256"),s.searchParams.set("id_token_add_organizations","true"),s.searchParams.set("codex_cli_simplified_flow","true"),s.searchParams.set("state",i),s.searchParams.set("originator",Pr),s.searchParams.set("prompt","login"),{authorizeUrl:s.toString(),pending:{verifier:r,challenge:o,state:i,redirectUri:e}}},async*exchange({code:e,pending:t,providerData:n,fail:r,now:o}){let[i,s]=e.split("#");if(s!==void 0&&s!==t.state)throw r("AUTH","authorization state mismatch");let a=yield*Yw({grant_type:"authorization_code",code:(i??"").trim(),redirect_uri:t.redirectUri,code_verifier:t.verifier},r);return Jw(a,null,o,null,n??{})},async*refresh({refreshToken:e,providerData:t,fail:n,now:r}){let o=yield*Yw({grant_type:"refresh_token",refresh_token:e,scope:Vw},n);return Jw(o,e,r,Mc(t),t)},async*usage({secrets:e,providerData:t,now:n}){if(e.accessToken===null)return null;let r=Mc(t),o=yield qe(RC,rt,{accessToken:e.accessToken,...r===null?{}:{extraHeaders:[["chatgpt-account-id",r]]}});if(!Xe(o.status,"openai"))return null;return ab(B(o.body),n())},async*resetCredits({secrets:e,providerData:t}){if(e.accessToken===null)return null;let n=yield qe(Qw,rt,{accessToken:e.accessToken,extraHeaders:nb(t)});if(!Xe(n.status,"openai"))return null;return ub(B(n.body))},async*redeemReset({secrets:e,providerData:t,creditId:n,requestId:r,fail:o}){if(e.accessToken===null)throw o("AUTH","credential holds no access token");let i=yield ue(`${Qw}/consume`,rt,{contentType:"application/json",body:JSON.stringify({credit_id:n,redeem_request_id:r}),extraHeaders:[["Authorization",`Bearer ${e.accessToken}`],...nb(t)]});if(i.status<200||i.status>=300)throw o(AC(i.status),`reset credit redeem refused: http_${i.status}`,{status:i.status});let s=D(B(i.body));return{windowsReset:s===null?null:it(s,["windows_reset"])}}};function nb(e){let t=Mc(e);return t===null?[]:[["chatgpt-account-id",t]]}function AC(e){if(e===429)return"RATE_LIMIT";if(e===401||e===403)return"AUTH";if(e>=400&&e<500)return"CONFLICT";return"UPSTREAM"}function rb(e){if(typeof e!=="string")return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function ub(e){let t=D(e);if(t===null||!Array.isArray(t.credits))return null;let n=t.credits.flatMap((r)=>{let o=D(r);if(o===null||typeof o.id!=="string"||typeof o.status!=="string")return[];return[{id:o.id,status:o.status,title:typeof o.title==="string"?o.title:null,grantedAt:rb(o.granted_at),expiresAt:rb(o.expires_at)}]});return{available:n.filter((r)=>r.status==="available").length,credits:n}}function Fc(){return[["anthropic",cc],["openai",$c],["kimi",Sc],["kilo",Ec],["grok",kc],["antigravity",gc],["muse",Oc]]}var cb={stop:"endTurn",length:"maxTokens",tool_calls:"toolUse",content_filter:"contentFilter"};function OC(e){if(typeof e.reasoning==="string"&&e.reasoning.length>0)return e.reasoning;if(typeof e.reasoning_content==="string"&&e.reasoning_content.length>0)return e.reasoning_content;if(!Array.isArray(e.reasoning_details))return"";return e.reasoning_details.flatMap((t)=>{if(t===null||typeof t!=="object")return[];if(typeof t.text==="string"&&t.text.length>0)return[t.text];if(typeof t.summary==="string"&&t.summary.length>0)return[t.summary];return[]}).join("")}function lb(e){try{let t=JSON.parse(e);return typeof t==="object"&&t!==null?t:null}catch{return null}}async function*pb(e){let t=!1,n=!1,r="endTurn",o={inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0},i=new Map,s=0,a,u=0;for await(let c of e){if(c.data==="[DONE]"){n=!0;break}let d=lb(c.data);if(d===null)continue;if(!t&&(d.id!==void 0||d.model!==void 0))t=!0,yield{type:"start",id:String(d.id??""),model:String(d.model??"")};if(d.usage){let g=d.usage.prompt_tokens_details;o=xe(d.usage.prompt_tokens??0,d.usage.completion_tokens??0,g?.cached_tokens??d.usage.prompt_cache_hit_tokens??0,g?.cache_creation_tokens??g?.cache_write_tokens??0)}let p=d.choices?.[0];if(!p)continue;let l=p.delta??{},m=OC(l);if(m.length>0){if(a!=="thinking"){if(a!==void 0)yield{type:"blockEnd",index:u};a="thinking",u=s++,yield{type:"blockStart",index:u,block:{type:"thinking"}}}yield{type:"blockDelta",index:u,delta:{type:"thinking",text:m}}}if(typeof l.content==="string"&&l.content.length>0){if(a!=="text"){if(a!==void 0)yield{type:"blockEnd",index:u};a="text",u=s++,yield{type:"blockStart",index:u,block:{type:"text"}}}yield{type:"blockDelta",index:u,delta:{type:"text",text:l.content}}}for(let g of l.tool_calls??[]){let h=g.index??0,f=i.get(h);if(f===void 0){if(a!==void 0)yield{type:"blockEnd",index:u};f=s++,i.set(h,f),a="tool",u=f,yield{type:"blockStart",index:f,block:{type:"toolUse",id:String(g.id??`call_${h}`),name:String(g.function?.name??"")}}}let y=g.function?.arguments;if(typeof y==="string"&&y.length>0)yield{type:"blockDelta",index:f,delta:{type:"toolJson",partial:y}}}if(typeof p.finish_reason==="string"){let g=p.finish_reason,h=Object.hasOwn(cb,g)?cb[g]:void 0;if(h===void 0){yield{type:"error",code:"UPSTREAM",message:`unrecognized custom endpoint finish reason "${g}"`,retryable:!1};return}r=h}}if(n){if(a!==void 0)yield{type:"blockEnd",index:u};yield{type:"end",stopReason:r,usage:o}}else yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before [DONE]",retryable:ee.UPSTREAM}}var db={rate_limit_exceeded:"RATE_LIMIT",insufficient_quota:"QUOTA_EXHAUSTED",invalid_api_key:"AUTH",server_error:"UPSTREAM",context_length_exceeded:"BAD_REQUEST",content_policy_violation:"CONTENT_FILTER"},CC=new Set(["response.created","response.queued","response.in_progress","response.output_item.added","response.output_item.done","response.content_part.added","response.content_part.done","response.output_text.delta","response.output_text.done","response.output_text.annotation.added","response.refusal.delta","response.refusal.done","response.reasoning_summary_part.added","response.reasoning_summary_part.done","response.reasoning_summary_text.delta","response.reasoning_summary_text.done","response.reasoning_text.delta","response.reasoning_text.done","response.function_call_arguments.delta","response.function_call_arguments.done","response.completed","response.incomplete","response.failed","error"]);async function*mb(e){let t=new Map,n=0,r=(a,u=0)=>{let c=`${a}:${u}`,d=t.get(c);if(d!==void 0)return d;let p=n++;return t.set(c,p),p},o=!1,i=!1,s=new Set;for await(let a of e){if(a.data==="[DONE]")continue;if(!CC.has(a.event)){yield{type:"error",code:"UPSTREAM",message:`unrecognized custom endpoint stream event "${a.event}"`,retryable:!1};return}let u=lb(a.data);if(u===null)continue;switch(a.event){case"response.created":yield{type:"start",id:String(u.response?.id??""),model:String(u.response?.model??"")};break;case"response.output_item.added":{let c=u.item??{};if(c.type==="reasoning")s.add(u.output_index??0),yield{type:"blockStart",index:r(u.output_index??0),block:{type:"thinking"}};else if(c.type==="function_call")o=!0,s.add(u.output_index??0),yield{type:"blockStart",index:r(u.output_index??0),block:{type:"toolUse",id:String(c.call_id),name:String(c.name)}};break}case"response.content_part.added":if(u.part?.type==="output_text")yield{type:"blockStart",index:r(u.output_index??0,u.content_index??0),block:{type:"text"}};break;case"response.output_text.delta":yield{type:"blockDelta",index:r(u.output_index??0,u.content_index??0),delta:{type:"text",text:String(u.delta??"")}};break;case"response.reasoning_summary_text.delta":yield{type:"blockDelta",index:r(u.output_index??0),delta:{type:"thinking",text:String(u.delta??"")}};break;case"response.function_call_arguments.delta":yield{type:"blockDelta",index:r(u.output_index??0),delta:{type:"toolJson",partial:String(u.delta??"")}};break;case"response.content_part.done":yield{type:"blockEnd",index:r(u.output_index??0,u.content_index??0)};break;case"response.output_item.done":{let c=u.output_index??0;if(s.delete(c))yield{type:"blockEnd",index:r(c)};break}case"response.completed":case"response.incomplete":{i=!0;let c=u.response??{},d=c.incomplete_details?.reason,p=o?"toolUse":"endTurn";if(d==="max_output_tokens")p="maxTokens";else if(d==="content_filter")p="contentFilter";else if(d!==void 0||a.event==="response.incomplete"||c.status!==void 0&&c.status!=="completed"){yield{type:"error",code:"UPSTREAM",message:d!==void 0?`unrecognized custom endpoint incomplete reason "${String(d)}"`:c.status!==void 0&&c.status!=="incomplete"?`custom endpoint reported terminal response status "${String(c.status)}"`:"custom endpoint reported the response incomplete without a reason",retryable:!1};break}yield{type:"end",stopReason:p,usage:xe(c.usage?.input_tokens??0,c.usage?.output_tokens??0,c.usage?.input_tokens_details?.cached_tokens??c.usage?.prompt_tokens_details?.cached_tokens??0)};break}case"response.failed":case"error":{i=!0;let c=u.response?.error??u.error??{},d=String(c.code??c.type),p=(Object.hasOwn(db,d)?db[d]:void 0)??"UPSTREAM";yield{type:"error",code:p,message:String(c.message??"upstream error"),retryable:ee[p]};break}default:break}}if(!i)yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before response completion",retryable:ee.UPSTREAM}}function PC(e){switch(e.type){case"auto":return"auto";case"any":return"required";case"none":return"none";case"tool":return{type:"function",function:{name:e.name}}}}function IC(e){switch(e.type){case"auto":return"auto";case"any":return"required";case"none":return"none";case"tool":return{type:"function",name:e.name}}}function fb(e){if(e===void 0||e.mode!=="adaptive")return;return e.effort??"medium"}function gb(e,t){let n=[],r=(p)=>{if(!n.includes(p))n.push(p)};if(e.betas?.includes(Ee))r("custom:context-1m-dropped");let o=[],i=Oe(e.system,"custom",r);if(i!==void 0&&i.length>0)o.push({role:"system",content:i});for(let p of e.messages){let l=[],m=[];for(let g of p.content)switch(g.type){case"text":l.push(g.text);break;case"image":r("custom:images-dropped");break;case"thinking":r("custom:thinking-dropped");break;case"toolUse":m.push({id:g.id,type:"function",function:{name:g.name,arguments:JSON.stringify(g.input)}});break;case"toolResult":{if(g.native!==void 0)r("custom:anthropic-native-block-dropped");let h=Ze(g.files??[],()=>!1);if(o.push({role:"tool",tool_call_id:g.toolUseId,content:be(g.content,h.text)}),g.images!==void 0)r("custom:images-dropped");if(h.text.length>0)r("custom:tool-result-files-inlined");if(h.dropped)r("custom:files-dropped");break}case"providerNative":r("custom:anthropic-native-block-dropped");break}if(m.length>0)o.push({role:p.role,content:l.length>0?l.join(`
|
|
1668
1668
|
`):null,tool_calls:m});else if(l.length>0)o.push({role:p.role,content:l.join(`
|
|
1669
|
-
`)})}let s={model:t,messages:o,stream:e.stream,stream_options:{include_usage:!0}};if(e.maxTokens!==void 0)s.max_tokens=e.maxTokens;if(e.temperature!==void 0)s.temperature=e.temperature;if(e.stopSequences!==void 0)s.stop=e.stopSequences;if(e.tools!==void 0){let p=e.tools.filter((l)=>l.kind==="portable");if(p.length!==e.tools.length)r("custom:anthropic-tool-dropped");s.tools=p.map((l)=>({type:"function",function:{name:l.name,description:l.description,parameters:l.inputSchema}}))}if(e.toolChoice!==void 0)s.tool_choice=PO(e.toolChoice);if(e.reasoning?.mode==="betweenTools")r("custom:reasoning-between-tools-as-off");let a=fb(e.reasoning);if(a!==void 0)s.reasoning_effort=a;else if(e.reasoning?.mode==="budget")r("custom:reasoning-budget-dropped");Object.assign(s,e.vendor?.openai??{});let c=s.text;delete s.text;let u=ot(e),d=u.kind==="readable"?u.format:void 0;if(d!==void 0){if(s.response_format===void 0)s.response_format={type:"json_schema",json_schema:{name:d.name,schema:d.schema,strict:!0}},r("custom:response-format-translated")}else if(le(c)&&c.format!==void 0)r("custom:response-format-dropped");else if(u.kind==="tooDeep")delete s.response_format,r("custom:response-schema-too-deep");return{body:s,degradations:n}}function hb(e,t){let n=[],r=(u)=>{if(!n.includes(u))n.push(u)},o=[];if(e.betas?.includes(Ee))r("custom:context-1m-dropped");for(let u of e.messages){let d=[],p=u.role==="system";if(p)r("custom:system-turn-as-developer");let l=p?"developer":u.role,m=()=>{if(d.length===0)return;o.push({type:"message",role:l,content:[...d]}),d.length=0};for(let g of u.content)switch(g.type){case"text":d.push({type:l==="assistant"?"output_text":"input_text",text:g.text});break;case"image":d.push({type:"input_image",image_url:`data:${g.mediaType};base64,${g.data}`});break;case"thinking":r("custom:thinking-dropped");break;case"toolUse":m(),o.push({type:"function_call",call_id:g.id,name:g.name,arguments:JSON.stringify(g.input)});break;case"toolResult":{if(g.native!==void 0)r("custom:anthropic-native-block-dropped");m();let h=Ht(g.files??[]);if(o.push({type:"function_call_output",call_id:g.toolUseId,output:we(g.content,h.text)}),g.images!==void 0){r("custom:tool-result-images-moved");for(let f of g.images)d.push({type:"input_image",image_url:`data:${f.mediaType};base64,${f.data}`})}if(h.parts.length>0)r("custom:tool-result-files-moved"),d.push(...h.parts);if(h.text.length>0)r("custom:tool-result-files-inlined");if(h.dropped)r("custom:files-dropped");break}case"providerNative":r("custom:anthropic-native-block-dropped");break}m()}let i={model:t,input:o,stream:e.stream,store:!1},s=Ae(e.system,"custom",r);if(s!==void 0&&s.length>0)i.instructions=s;if(e.maxTokens!==void 0)i.max_output_tokens=e.maxTokens;if(e.temperature!==void 0)i.temperature=e.temperature;if(e.tools!==void 0){let u=e.tools.filter((d)=>d.kind==="portable");if(u.length!==e.tools.length)r("custom:anthropic-tool-dropped");i.tools=u.map((d)=>({type:"function",name:d.name,description:d.description,parameters:d.inputSchema}))}if(e.toolChoice!==void 0)i.tool_choice=IO(e.toolChoice);if(e.reasoning?.mode==="betweenTools")r("custom:reasoning-between-tools-as-off");let a=fb(e.reasoning);if(a!==void 0)i.reasoning={effort:a,...e.reasoning?.mode==="adaptive"&&(e.reasoning.display==="omitted"||e.reasoning.display==="updates")?{}:{summary:"auto"}};else if(e.reasoning?.mode==="budget")r("custom:reasoning-budget-dropped");Object.assign(i,e.vendor?.openai??{});let c=qt(e,i,"custom");if(c!==void 0)r(c);return{body:i,degradations:n}}function LO(e,t){let{origin:n,protocol:r}=e;if(typeof n!=="string"||r!=="chat_completions"&&r!=="responses")throw t("BAD_REQUEST","custom credential has invalid endpoint metadata");let o=typeof e.basePath==="string"?e.basePath:"";return{origin:n,basePath:o,protocol:r}}function NO(e,t,n){let r=n==="chat_completions"?"chat/completions":"responses",o=`${e}${t}`.replace(/\/+$/,"");return/\/v\d+$/i.test(o)?`${o}/${r}`:`${o}/v1/${r}`}function DO(e,t){if(e!==null&&typeof e==="object"){let n=e.protocol;if(n==="responses"||n==="chat_completions")return n}throw t("INTERNAL","custom codec lost its endpoint protocol")}var yb={buildRequest(e){let t=e.credentials.apiKey;if(t===null)throw e.fail("AUTH","custom credential has no API key");let{origin:n,basePath:r,protocol:o}=LO(e.credentials.providerData,e.fail),i=o==="chat_completions"?gb(e.request,e.model):hb(e.request,e.model),s=[["Content-Type","application/json"],["Authorization",`Bearer ${t}`]];return{request:{url:NO(n,r,o),method:"POST",headers:s,body:JSON.stringify({...i.body,stream:!0})},decodeState:{protocol:o},degradations:i.degradations}},decode({body:e,decodeState:t,fail:n}){return DO(t,n)==="chat_completions"?pb(ye(e)):mb(ye(e))}};var Bc=de("custom",bi.capabilities,yb);import{createHash as zO}from"crypto";var _b={rate_limit_exceeded:"RATE_LIMIT",insufficient_quota:"QUOTA_EXHAUSTED",invalid_api_key:"AUTH",server_error:"UPSTREAM",context_length_exceeded:"BAD_REQUEST",content_policy_violation:"CONTENT_FILTER"},UO=new Set(["response.created","response.queued","response.in_progress","response.output_item.added","response.output_item.done","response.content_part.added","response.content_part.done","response.output_text.delta","response.output_text.done","response.output_text.annotation.added","response.refusal.delta","response.refusal.done","response.reasoning_summary_part.added","response.reasoning_summary_part.done","response.reasoning_summary_text.delta","response.reasoning_summary_text.done","response.reasoning_text.delta","response.reasoning_text.done","response.function_call_arguments.delta","response.function_call_arguments.done","response.completed","response.incomplete","response.failed","error"]);function MO(e){try{let t=JSON.parse(e);return typeof t==="object"&&t!==null?t:null}catch{return null}}async function*os(e){let t=new Map,n=0,r=(a,c=0)=>{let u=`${a}:${c}`,d=t.get(u);if(d!==void 0)return d;let p=n++;return t.set(u,p),p},o=!1,i=!1,s=new Set;for await(let a of e){if(a.data==="[DONE]")continue;if(!UO.has(a.event)){yield{type:"error",code:"UPSTREAM",message:`unrecognized xAI stream event "${a.event}"`,retryable:!1};return}let c=MO(a.data);if(c===null)continue;switch(a.event){case"response.created":yield{type:"start",id:String(c.response?.id??""),model:String(c.response?.model??"")};break;case"response.output_item.added":{let u=c.item??{};if(u.type==="reasoning")s.add(c.output_index??0),yield{type:"blockStart",index:r(c.output_index??0),block:{type:"thinking"}};else if(u.type==="function_call")o=!0,s.add(c.output_index??0),yield{type:"blockStart",index:r(c.output_index??0),block:{type:"toolUse",id:String(u.call_id),name:String(u.name)}};break}case"response.content_part.added":if(c.part?.type==="output_text")yield{type:"blockStart",index:r(c.output_index??0,c.content_index??0),block:{type:"text"}};break;case"response.output_text.delta":yield{type:"blockDelta",index:r(c.output_index??0,c.content_index??0),delta:{type:"text",text:String(c.delta??"")}};break;case"response.reasoning_summary_text.delta":case"response.reasoning_text.delta":yield{type:"blockDelta",index:r(c.output_index??0),delta:{type:"thinking",text:String(c.delta??"")}};break;case"response.function_call_arguments.delta":yield{type:"blockDelta",index:r(c.output_index??0),delta:{type:"toolJson",partial:String(c.delta??"")}};break;case"response.content_part.done":yield{type:"blockEnd",index:r(c.output_index??0,c.content_index??0)};break;case"response.output_item.done":{let u=c.output_index??0;if(s.delete(u))yield{type:"blockEnd",index:r(u)};break}case"response.completed":case"response.incomplete":{i=!0;let u=c.response??{},d=u.incomplete_details?.reason,p=o?"toolUse":"endTurn";if(d==="max_output_tokens")p="maxTokens";else if(d==="content_filter")p="contentFilter";else if(d!==void 0||a.event==="response.incomplete"||u.status!==void 0&&u.status!=="completed"){yield{type:"error",code:"UPSTREAM",message:d!==void 0?`unrecognized xAI incomplete reason "${String(d)}"`:u.status!==void 0&&u.status!=="incomplete"?`xAI reported terminal response status "${String(u.status)}"`:"xAI reported the response incomplete without a reason",retryable:!1};break}yield{type:"end",stopReason:p,usage:Se(u.usage?.input_tokens??0,u.usage?.output_tokens??0,u.usage?.input_tokens_details?.cached_tokens??0)};break}case"response.failed":case"error":{i=!0;let u=c.response?.error??c.error??{},d=String(u.code??u.type),p=(Object.hasOwn(_b,d)?_b[d]:void 0)??"UPSTREAM";yield{type:"error",code:p,message:String(u.message??"upstream error"),retryable:J[p]};break}default:break}}if(!i)yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before response completion",retryable:J.UPSTREAM}}import{createHash as $O}from"crypto";var wb=200;function FO(e){switch(e.type){case"auto":return"auto";case"any":return"required";case"none":return"none";case"tool":return{type:"function",name:e.name}}}function BO(e,t){let n=JSON.stringify({instructions:e,firstInput:t});return $O("sha256").update(n).digest("hex").slice(0,32)}function is(e,t){let n=[],r=[],o=(c)=>{if(!n.includes(c))n.push(c)};if(e.betas?.includes(Ee))o("grok:context-1m-dropped");for(let c of e.messages){let u=[],d=c.role==="system";if(d)o("grok:system-turn-as-developer");let p=d?"developer":c.role,l=()=>{if(u.length===0)return;r.push({type:"message",role:p,content:[...u]}),u.length=0};for(let m of c.content)switch(m.type){case"text":u.push({type:p==="assistant"?"output_text":"input_text",text:m.text});break;case"image":u.push({type:"input_image",image_url:`data:${m.mediaType};base64,${m.data}`});break;case"thinking":o("grok:thinking-dropped");break;case"toolUse":l(),r.push({type:"function_call",call_id:m.id,name:m.name,arguments:JSON.stringify(m.input)});break;case"toolResult":{if(m.native!==void 0)o("grok:anthropic-native-block-dropped");l();let g=Ht(m.files??[]);if(r.push({type:"function_call_output",call_id:m.toolUseId,output:we(m.content,g.text)}),m.images!==void 0){o("grok:tool-result-images-moved");for(let h of m.images)u.push({type:"input_image",image_url:`data:${h.mediaType};base64,${h.data}`})}if(g.parts.length>0)o("grok:tool-result-files-moved"),u.push(...g.parts);if(g.text.length>0)o("grok:tool-result-files-inlined");if(g.dropped)o("grok:files-dropped");break}case"providerNative":o("grok:anthropic-native-block-dropped");break}l()}let i=Ae(e.system,"grok",o),s={model:t,input:r,stream:e.stream,store:!1,include:["reasoning.encrypted_content"],prompt_cache_key:BO(i??"",r[0])};if(i!==void 0&&i.length>0)s.instructions=i;if(e.maxTokens!==void 0)s.max_output_tokens=e.maxTokens;if(e.temperature!==void 0)s.temperature=e.temperature;if(e.tools!==void 0){let c=e.tools.filter((u)=>u.kind==="portable");if(c.length!==e.tools.length)o("grok:anthropic-tool-dropped");if(c.length>wb)o("grok:tools-truncated");s.tools=c.slice(0,wb).map((u)=>({type:"function",name:u.name,description:u.description,parameters:u.inputSchema}))}if(e.toolChoice!==void 0)s.tool_choice=FO(e.toolChoice);if(e.reasoning?.mode==="betweenTools")o("grok:reasoning-between-tools-as-off");if(e.reasoning!==void 0&&e.reasoning.mode!=="off"&&e.reasoning.mode!=="betweenTools")if(e.reasoning.mode==="budget")o("grok:reasoning-budget-dropped");else{let c=e.reasoning.effort??"medium";s.reasoning={effort:c,...e.reasoning.display==="omitted"||e.reasoning.display==="updates"?{}:{summary:"concise"}}}Object.assign(s,e.vendor?.grok??{});let a=qt(e,s,"grok");if(a!==void 0)o(a);return{body:s,degradations:n}}var qO="https://cli-chat-proxy.grok.com/v1/responses",HO="https://api.x.ai/v1/responses",WO="omni-grok-conv";function jO(e){let t=zO("sha256").update(`${WO}:${e}`).digest("hex"),n=(Number.parseInt(t[16],16)&3|8).toString(16);return[t.slice(0,8),t.slice(8,12),`5${t.slice(13,16)}`,`${n}${t.slice(17,20)}`,t.slice(20,32)].join("-")}function KO(e,t){let n=[["x-grok-model-override",e]];if(t===void 0||t.length===0)return n;let r=jO(t);return[...n,["x-grok-req-id",t],["x-grok-conv-id",r],["x-grok-session-id",r]]}var bb={buildRequest(e){let t=e.credentials.accessToken!==null,{body:n,degradations:r}=is(e.request,e.model),o=[["Content-Type","application/json"]];if(t)o.push(["Authorization",`Bearer ${e.credentials.accessToken}`]),o.push(["X-XAI-Token-Auth","xai-grok-cli"]),o.push(["x-authenticateresponse","authenticate-response"]);else if(e.credentials.apiKey!==null)o.push(["Authorization",`Bearer ${e.credentials.apiKey}`]);else throw e.fail("AUTH","grok credential has no token");o.push(...KO(e.model,e.requestId)),o.push(...vw(e.credentials.providerData));let i=fe(ge(Ct.headers,o),Ct.order);return{request:{url:t?qO:HO,method:"POST",headers:i,body:JSON.stringify(Ke({...n,stream:!0},Ni))},degradations:r}},decode({body:e}){return os(ye(e))}};var zc=de("grok",Ei.capabilities,bb);import{request as GO}from"http";import{request as ZO}from"https";import{Readable as XO}from"stream";import*as ss from"zlib";var VO=3000;function Dn(e={}){let t=e.logger??se,n=e.now??(()=>Date.now());return(r)=>QO(r).then((o)=>new Promise((i,s)=>{let a=new URL(r.url),c=n(),u=!1,d=(f,y=!1)=>{if(u)return;u=!0;let _=n()-c;try{e.onResponseHead?.({provider:r.provider,host:a.host,path:a.pathname,...f===void 0?{}:{status:f},durationMs:_,...r.requestId===void 0?{}:{requestId:r.requestId}})}catch{}if(!t.enabled("debug"))return;t.debug("upstream http",{provider:r.provider,status:f,host:a.host,path:a.pathname,durationMs:_,reason:y?"transport error":void 0})},p=a.protocol==="https:"?ZO:GO,l={};for(let[f,y]of r.headers)l[f]=y;if(r.body.length>0&&!kb(r,"content-length"))l["Content-Length"]=o.byteLength;let m={protocol:a.protocol,hostname:a.hostname,port:a.port||(a.protocol==="https:"?443:80),path:`${a.pathname}${a.search}`,method:r.method,headers:l,setHost:!kb(r,"host"),autoSelectFamilyAttemptTimeout:VO},g=p(m,(f)=>{let y=[],_=null,b=new Headers;for(let[k,E]of Object.entries(f.headers))if(Array.isArray(E))for(let T of E)b.append(k,T);else if(typeof E==="string")b.set(k,E);d(f.statusCode),i({status:f.statusCode??0,headers:b,body:XO.toWeb(f),text:()=>(_??=new Promise((k,E)=>{f.on("data",(T)=>y.push(T)),f.on("end",()=>k(Buffer.concat(y).toString("utf8"))),f.on("error",E)}),_)})}),h=()=>g.destroy(Error("aborted"));if(g.on("error",(f)=>{r.signal.removeEventListener("abort",h),d(void 0,!0),s(f)}),g.on("close",()=>r.signal.removeEventListener("abort",h)),r.signal.aborted){g.destroy(Error("aborted"));return}if(r.signal.addEventListener("abort",h,{once:!0}),o.byteLength>0)g.write(o);g.end()}))}function QO(e){let t=Buffer.from(e.body,"utf8");if(e.bodyEncoding!=="zstd")return Promise.resolve(t);return YO(t)}function YO(e,t=(n)=>ss.createZstdCompress(n)){return new Promise((n,r)=>{let o=t({params:{[ss.constants.ZSTD_c_compressionLevel]:3}}),i=[];o.on("data",(s)=>i.push(s)),o.on("end",()=>n(Buffer.concat(i))),o.on("error",r),o.end(e)})}function kb(e,t){return e.headers.some(([n])=>n.toLowerCase()===t)}var Eb={stop:"endTurn",length:"maxTokens",tool_calls:"toolUse",content_filter:"contentFilter"};function JO(e){if(typeof e.reasoning==="string"&&e.reasoning.length>0)return e.reasoning;if(typeof e.reasoning_content==="string"&&e.reasoning_content.length>0)return e.reasoning_content;if(!Array.isArray(e.reasoning_details))return"";return e.reasoning_details.flatMap((t)=>{if(t===null||typeof t!=="object")return[];if(typeof t.text==="string"&&t.text.length>0)return[t.text];if(typeof t.summary==="string"&&t.summary.length>0)return[t.summary];return[]}).join("")}function eP(e){try{let t=JSON.parse(e);return typeof t==="object"&&t!==null?t:null}catch{return null}}async function*as(e){let t=!1,n=!1,r="endTurn",o={inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0},i=new Map,s=0,a,c=0;for await(let u of e){if(u.data==="[DONE]"){n=!0;break}let d=eP(u.data);if(d===null)continue;if(!t&&(d.id!==void 0||d.model!==void 0))t=!0,yield{type:"start",id:String(d.id??""),model:String(d.model??"")};if(d.usage){let h=d.usage.prompt_tokens_details;o=Se(d.usage.prompt_tokens??0,d.usage.completion_tokens??0,h?.cached_tokens??d.usage.prompt_cache_hit_tokens??0,h?.cache_creation_tokens??h?.cache_write_tokens??0)}let p=d.choices?.[0];if(!p)continue;let l=p.delta??{},m=JO(l);if(m.length>0){if(a!=="thinking"){if(a!==void 0)yield{type:"blockEnd",index:c};a="thinking",c=s++,yield{type:"blockStart",index:c,block:{type:"thinking"}}}yield{type:"blockDelta",index:c,delta:{type:"thinking",text:m}}}let g=l.tool_calls??[];if(typeof l.content==="string"&&l.content.length>0){if(a!=="text"){if(a!==void 0)yield{type:"blockEnd",index:c};a="text",c=s++,yield{type:"blockStart",index:c,block:{type:"text"}}}yield{type:"blockDelta",index:c,delta:{type:"text",text:l.content}}}for(let h of g){let f=h.index??0,y=i.get(f);if(y===void 0){if(a!==void 0)yield{type:"blockEnd",index:c};y=s++,i.set(f,y),a="tool",c=y,yield{type:"blockStart",index:y,block:{type:"toolUse",id:String(h.id??`call_${f}`),name:String(h.function?.name??"")}}}let _=h.function?.arguments;if(typeof _==="string"&&_.length>0)yield{type:"blockDelta",index:y,delta:{type:"toolJson",partial:_}}}if(typeof p.finish_reason==="string"){let h=p.finish_reason,f=Object.hasOwn(Eb,h)?Eb[h]:void 0;if(f===void 0){yield{type:"error",code:"UPSTREAM",message:`unrecognized Kilo finish reason "${h}"`,retryable:!1};return}r=f}}if(n){if(a!==void 0)yield{type:"blockEnd",index:c};yield{type:"end",stopReason:r,usage:o}}else yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before [DONE]",retryable:J.UPSTREAM}}function tP(e){switch(e.type){case"auto":return"auto";case"any":return"required";case"none":return"none";case"tool":return{type:"function",function:{name:e.name}}}}function nP(e){let t=(n)=>("cacheControl"in n)&&n.cacheControl!==void 0;if(e.system?.some(t)===!0)return!0;return e.messages.some((n)=>n.content.some(t))}function vb(e){if(e.length===0)return null;if(e.every((t)=>t.type==="text"))return e.map((t)=>t.type==="text"?t.text:"").join(`
|
|
1670
|
-
`);return[...e]}function us(e,t){let n=[],r=(
|
|
1669
|
+
`)})}let s={model:t,messages:o,stream:e.stream,stream_options:{include_usage:!0}};if(e.maxTokens!==void 0)s.max_tokens=e.maxTokens;if(e.temperature!==void 0)s.temperature=e.temperature;if(e.stopSequences!==void 0)s.stop=e.stopSequences;if(e.tools!==void 0){let p=e.tools.filter((l)=>l.kind==="portable");if(p.length!==e.tools.length)r("custom:anthropic-tool-dropped");s.tools=p.map((l)=>({type:"function",function:{name:l.name,description:l.description,parameters:l.inputSchema}}))}if(e.toolChoice!==void 0)s.tool_choice=PC(e.toolChoice);if(e.reasoning?.mode==="betweenTools")r("custom:reasoning-between-tools-as-off");let a=fb(e.reasoning);if(a!==void 0)s.reasoning_effort=a;else if(e.reasoning?.mode==="budget")r("custom:reasoning-budget-dropped");Object.assign(s,e.vendor?.openai??{});let u=s.text;delete s.text;let c=ot(e),d=c.kind==="readable"?c.format:void 0;if(d!==void 0){if(s.response_format===void 0)s.response_format={type:"json_schema",json_schema:{name:d.name,schema:d.schema,strict:!0}},r("custom:response-format-translated")}else if(le(u)&&u.format!==void 0)r("custom:response-format-dropped");else if(c.kind==="tooDeep")delete s.response_format,r("custom:response-schema-too-deep");return{body:s,degradations:n}}function hb(e,t){let n=[],r=(c)=>{if(!n.includes(c))n.push(c)},o=[];if(e.betas?.includes(Ee))r("custom:context-1m-dropped");for(let c of e.messages){let d=[],p=c.role==="system";if(p)r("custom:system-turn-as-developer");let l=p?"developer":c.role,m=()=>{if(d.length===0)return;o.push({type:"message",role:l,content:[...d]}),d.length=0};for(let g of c.content)switch(g.type){case"text":d.push({type:l==="assistant"?"output_text":"input_text",text:g.text});break;case"image":d.push({type:"input_image",image_url:`data:${g.mediaType};base64,${g.data}`});break;case"thinking":r("custom:thinking-dropped");break;case"toolUse":m(),o.push({type:"function_call",call_id:g.id,name:g.name,arguments:JSON.stringify(g.input)});break;case"toolResult":{if(g.native!==void 0)r("custom:anthropic-native-block-dropped");m();let h=Ht(g.files??[]);if(o.push({type:"function_call_output",call_id:g.toolUseId,output:be(g.content,h.text)}),g.images!==void 0){r("custom:tool-result-images-moved");for(let f of g.images)d.push({type:"input_image",image_url:`data:${f.mediaType};base64,${f.data}`})}if(h.parts.length>0)r("custom:tool-result-files-moved"),d.push(...h.parts);if(h.text.length>0)r("custom:tool-result-files-inlined");if(h.dropped)r("custom:files-dropped");break}case"providerNative":r("custom:anthropic-native-block-dropped");break}m()}let i={model:t,input:o,stream:e.stream,store:!1},s=Oe(e.system,"custom",r);if(s!==void 0&&s.length>0)i.instructions=s;if(e.maxTokens!==void 0)i.max_output_tokens=e.maxTokens;if(e.temperature!==void 0)i.temperature=e.temperature;if(e.tools!==void 0){let c=e.tools.filter((d)=>d.kind==="portable");if(c.length!==e.tools.length)r("custom:anthropic-tool-dropped");i.tools=c.map((d)=>({type:"function",name:d.name,description:d.description,parameters:d.inputSchema}))}if(e.toolChoice!==void 0)i.tool_choice=IC(e.toolChoice);if(e.reasoning?.mode==="betweenTools")r("custom:reasoning-between-tools-as-off");let a=fb(e.reasoning);if(a!==void 0)i.reasoning={effort:a,...e.reasoning?.mode==="adaptive"&&(e.reasoning.display==="omitted"||e.reasoning.display==="updates")?{}:{summary:"auto"}};else if(e.reasoning?.mode==="budget")r("custom:reasoning-budget-dropped");Object.assign(i,e.vendor?.openai??{});let u=qt(e,i,"custom");if(u!==void 0)r(u);return{body:i,degradations:n}}function LC(e,t){let{origin:n,protocol:r}=e;if(typeof n!=="string"||r!=="chat_completions"&&r!=="responses")throw t("BAD_REQUEST","custom credential has invalid endpoint metadata");let o=typeof e.basePath==="string"?e.basePath:"";return{origin:n,basePath:o,protocol:r}}function NC(e,t,n){let r=n==="chat_completions"?"chat/completions":"responses",o=`${e}${t}`.replace(/\/+$/,"");return/\/v\d+$/i.test(o)?`${o}/${r}`:`${o}/v1/${r}`}function DC(e,t){if(e!==null&&typeof e==="object"){let n=e.protocol;if(n==="responses"||n==="chat_completions")return n}throw t("INTERNAL","custom codec lost its endpoint protocol")}var yb={buildRequest(e){let t=e.credentials.apiKey;if(t===null)throw e.fail("AUTH","custom credential has no API key");let{origin:n,basePath:r,protocol:o}=LC(e.credentials.providerData,e.fail),i=o==="chat_completions"?gb(e.request,e.model):hb(e.request,e.model),s=[["Content-Type","application/json"],["Authorization",`Bearer ${t}`]];return{request:{url:NC(n,r,o),method:"POST",headers:s,body:JSON.stringify({...i.body,stream:!0})},decodeState:{protocol:o},degradations:i.degradations}},decode({body:e,decodeState:t,fail:n}){return DC(t,n)==="chat_completions"?pb(_e(e)):mb(_e(e))}};var Bc=de("custom",ki.capabilities,yb);import{createHash as zC}from"crypto";var _b={rate_limit_exceeded:"RATE_LIMIT",insufficient_quota:"QUOTA_EXHAUSTED",invalid_api_key:"AUTH",server_error:"UPSTREAM",context_length_exceeded:"BAD_REQUEST",content_policy_violation:"CONTENT_FILTER"},UC=new Set(["response.created","response.queued","response.in_progress","response.output_item.added","response.output_item.done","response.content_part.added","response.content_part.done","response.output_text.delta","response.output_text.done","response.output_text.annotation.added","response.refusal.delta","response.refusal.done","response.reasoning_summary_part.added","response.reasoning_summary_part.done","response.reasoning_summary_text.delta","response.reasoning_summary_text.done","response.reasoning_text.delta","response.reasoning_text.done","response.function_call_arguments.delta","response.function_call_arguments.done","response.completed","response.incomplete","response.failed","error"]);function MC(e){try{let t=JSON.parse(e);return typeof t==="object"&&t!==null?t:null}catch{return null}}async function*os(e){let t=new Map,n=0,r=(a,u=0)=>{let c=`${a}:${u}`,d=t.get(c);if(d!==void 0)return d;let p=n++;return t.set(c,p),p},o=!1,i=!1,s=new Set;for await(let a of e){if(a.data==="[DONE]")continue;if(!UC.has(a.event)){yield{type:"error",code:"UPSTREAM",message:`unrecognized xAI stream event "${a.event}"`,retryable:!1};return}let u=MC(a.data);if(u===null)continue;switch(a.event){case"response.created":yield{type:"start",id:String(u.response?.id??""),model:String(u.response?.model??"")};break;case"response.output_item.added":{let c=u.item??{};if(c.type==="reasoning")s.add(u.output_index??0),yield{type:"blockStart",index:r(u.output_index??0),block:{type:"thinking"}};else if(c.type==="function_call")o=!0,s.add(u.output_index??0),yield{type:"blockStart",index:r(u.output_index??0),block:{type:"toolUse",id:String(c.call_id),name:String(c.name)}};break}case"response.content_part.added":if(u.part?.type==="output_text")yield{type:"blockStart",index:r(u.output_index??0,u.content_index??0),block:{type:"text"}};break;case"response.output_text.delta":yield{type:"blockDelta",index:r(u.output_index??0,u.content_index??0),delta:{type:"text",text:String(u.delta??"")}};break;case"response.reasoning_summary_text.delta":case"response.reasoning_text.delta":yield{type:"blockDelta",index:r(u.output_index??0),delta:{type:"thinking",text:String(u.delta??"")}};break;case"response.function_call_arguments.delta":yield{type:"blockDelta",index:r(u.output_index??0),delta:{type:"toolJson",partial:String(u.delta??"")}};break;case"response.content_part.done":yield{type:"blockEnd",index:r(u.output_index??0,u.content_index??0)};break;case"response.output_item.done":{let c=u.output_index??0;if(s.delete(c))yield{type:"blockEnd",index:r(c)};break}case"response.completed":case"response.incomplete":{i=!0;let c=u.response??{},d=c.incomplete_details?.reason,p=o?"toolUse":"endTurn";if(d==="max_output_tokens")p="maxTokens";else if(d==="content_filter")p="contentFilter";else if(d!==void 0||a.event==="response.incomplete"||c.status!==void 0&&c.status!=="completed"){yield{type:"error",code:"UPSTREAM",message:d!==void 0?`unrecognized xAI incomplete reason "${String(d)}"`:c.status!==void 0&&c.status!=="incomplete"?`xAI reported terminal response status "${String(c.status)}"`:"xAI reported the response incomplete without a reason",retryable:!1};break}yield{type:"end",stopReason:p,usage:xe(c.usage?.input_tokens??0,c.usage?.output_tokens??0,c.usage?.input_tokens_details?.cached_tokens??0)};break}case"response.failed":case"error":{i=!0;let c=u.response?.error??u.error??{},d=String(c.code??c.type),p=(Object.hasOwn(_b,d)?_b[d]:void 0)??"UPSTREAM";yield{type:"error",code:p,message:String(c.message??"upstream error"),retryable:ee[p]};break}default:break}}if(!i)yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before response completion",retryable:ee.UPSTREAM}}import{createHash as $C}from"crypto";var wb=200;function FC(e){switch(e.type){case"auto":return"auto";case"any":return"required";case"none":return"none";case"tool":return{type:"function",name:e.name}}}function BC(e,t){let n=JSON.stringify({instructions:e,firstInput:t});return $C("sha256").update(n).digest("hex").slice(0,32)}function is(e,t){let n=[],r=[],o=(u)=>{if(!n.includes(u))n.push(u)};if(e.betas?.includes(Ee))o("grok:context-1m-dropped");for(let u of e.messages){let c=[],d=u.role==="system";if(d)o("grok:system-turn-as-developer");let p=d?"developer":u.role,l=()=>{if(c.length===0)return;r.push({type:"message",role:p,content:[...c]}),c.length=0};for(let m of u.content)switch(m.type){case"text":c.push({type:p==="assistant"?"output_text":"input_text",text:m.text});break;case"image":c.push({type:"input_image",image_url:`data:${m.mediaType};base64,${m.data}`});break;case"thinking":o("grok:thinking-dropped");break;case"toolUse":l(),r.push({type:"function_call",call_id:m.id,name:m.name,arguments:JSON.stringify(m.input)});break;case"toolResult":{if(m.native!==void 0)o("grok:anthropic-native-block-dropped");l();let g=Ht(m.files??[]);if(r.push({type:"function_call_output",call_id:m.toolUseId,output:be(m.content,g.text)}),m.images!==void 0){o("grok:tool-result-images-moved");for(let h of m.images)c.push({type:"input_image",image_url:`data:${h.mediaType};base64,${h.data}`})}if(g.parts.length>0)o("grok:tool-result-files-moved"),c.push(...g.parts);if(g.text.length>0)o("grok:tool-result-files-inlined");if(g.dropped)o("grok:files-dropped");break}case"providerNative":o("grok:anthropic-native-block-dropped");break}l()}let i=Oe(e.system,"grok",o),s={model:t,input:r,stream:e.stream,store:!1,include:["reasoning.encrypted_content"],prompt_cache_key:BC(i??"",r[0])};if(i!==void 0&&i.length>0)s.instructions=i;if(e.maxTokens!==void 0)s.max_output_tokens=e.maxTokens;if(e.temperature!==void 0)s.temperature=e.temperature;if(e.tools!==void 0){let u=e.tools.filter((c)=>c.kind==="portable");if(u.length!==e.tools.length)o("grok:anthropic-tool-dropped");if(u.length>wb)o("grok:tools-truncated");s.tools=u.slice(0,wb).map((c)=>({type:"function",name:c.name,description:c.description,parameters:c.inputSchema}))}if(e.toolChoice!==void 0)s.tool_choice=FC(e.toolChoice);if(e.reasoning?.mode==="betweenTools")o("grok:reasoning-between-tools-as-off");if(e.reasoning!==void 0&&e.reasoning.mode!=="off"&&e.reasoning.mode!=="betweenTools")if(e.reasoning.mode==="budget")o("grok:reasoning-budget-dropped");else{let u=e.reasoning.effort??"medium";s.reasoning={effort:u,...e.reasoning.display==="omitted"||e.reasoning.display==="updates"?{}:{summary:"concise"}}}Object.assign(s,e.vendor?.grok??{});let a=qt(e,s,"grok");if(a!==void 0)o(a);return{body:s,degradations:n}}var qC="https://cli-chat-proxy.grok.com/v1/responses",HC="https://api.x.ai/v1/responses",WC="omni-grok-conv";function jC(e){let t=zC("sha256").update(`${WC}:${e}`).digest("hex"),n=(Number.parseInt(t[16],16)&3|8).toString(16);return[t.slice(0,8),t.slice(8,12),`5${t.slice(13,16)}`,`${n}${t.slice(17,20)}`,t.slice(20,32)].join("-")}function KC(e,t){let n=[["x-grok-model-override",e]];if(t===void 0||t.length===0)return n;let r=jC(t);return[...n,["x-grok-req-id",t],["x-grok-conv-id",r],["x-grok-session-id",r]]}var bb={buildRequest(e){let t=e.credentials.accessToken!==null,{body:n,degradations:r}=is(e.request,e.model),o=[["Content-Type","application/json"]];if(t)o.push(["Authorization",`Bearer ${e.credentials.accessToken}`]),o.push(["X-XAI-Token-Auth","xai-grok-cli"]),o.push(["x-authenticateresponse","authenticate-response"]);else if(e.credentials.apiKey!==null)o.push(["Authorization",`Bearer ${e.credentials.apiKey}`]);else throw e.fail("AUTH","grok credential has no token");o.push(...KC(e.model,e.requestId)),o.push(...vw(e.credentials.providerData));let i=fe(ge(Ot.headers,o),Ot.order);return{request:{url:t?qC:HC,method:"POST",headers:i,body:JSON.stringify(Be({...n,stream:!0},Ni))},degradations:r}},decode({body:e}){return os(_e(e))}};var zc=de("grok",vi.capabilities,bb);import{request as GC}from"http";import{request as ZC}from"https";import{Readable as XC}from"stream";import*as ss from"zlib";var VC=3000;function Dn(e={}){let t=e.logger??se,n=e.now??(()=>Date.now());return(r)=>QC(r).then((o)=>new Promise((i,s)=>{let a=new URL(r.url),u=n(),c=!1,d=(f,y=!1)=>{if(c)return;c=!0;let _=n()-u;try{e.onResponseHead?.({provider:r.provider,host:a.host,path:a.pathname,...f===void 0?{}:{status:f},durationMs:_,...r.requestId===void 0?{}:{requestId:r.requestId}})}catch{}if(!t.enabled("debug"))return;t.debug("upstream http",{provider:r.provider,status:f,host:a.host,path:a.pathname,durationMs:_,reason:y?"transport error":void 0})},p=a.protocol==="https:"?ZC:GC,l={};for(let[f,y]of r.headers)l[f]=y;if(r.body.length>0&&!kb(r,"content-length"))l["Content-Length"]=o.byteLength;let m={protocol:a.protocol,hostname:a.hostname,port:a.port||(a.protocol==="https:"?443:80),path:`${a.pathname}${a.search}`,method:r.method,headers:l,setHost:!kb(r,"host"),autoSelectFamilyAttemptTimeout:VC},g=p(m,(f)=>{let y=[],_=null,w=new Headers;for(let[v,k]of Object.entries(f.headers))if(Array.isArray(k))for(let T of k)w.append(v,T);else if(typeof k==="string")w.set(v,k);d(f.statusCode),i({status:f.statusCode??0,headers:w,body:XC.toWeb(f),text:()=>(_??=new Promise((v,k)=>{f.on("data",(T)=>y.push(T)),f.on("end",()=>v(Buffer.concat(y).toString("utf8"))),f.on("error",k)}),_)})}),h=()=>g.destroy(Error("aborted"));if(g.on("error",(f)=>{r.signal.removeEventListener("abort",h),d(void 0,!0),s(f)}),g.on("close",()=>r.signal.removeEventListener("abort",h)),r.signal.aborted){g.destroy(Error("aborted"));return}if(r.signal.addEventListener("abort",h,{once:!0}),o.byteLength>0)g.write(o);g.end()}))}function QC(e){let t=Buffer.from(e.body,"utf8");if(e.bodyEncoding!=="zstd")return Promise.resolve(t);return YC(t)}function YC(e,t=(n)=>ss.createZstdCompress(n)){return new Promise((n,r)=>{let o=t({params:{[ss.constants.ZSTD_c_compressionLevel]:3}}),i=[];o.on("data",(s)=>i.push(s)),o.on("end",()=>n(Buffer.concat(i))),o.on("error",r),o.end(e)})}function kb(e,t){return e.headers.some(([n])=>n.toLowerCase()===t)}var Eb={stop:"endTurn",length:"maxTokens",tool_calls:"toolUse",content_filter:"contentFilter"};function JC(e){if(typeof e.reasoning==="string"&&e.reasoning.length>0)return e.reasoning;if(typeof e.reasoning_content==="string"&&e.reasoning_content.length>0)return e.reasoning_content;if(!Array.isArray(e.reasoning_details))return"";return e.reasoning_details.flatMap((t)=>{if(t===null||typeof t!=="object")return[];if(typeof t.text==="string"&&t.text.length>0)return[t.text];if(typeof t.summary==="string"&&t.summary.length>0)return[t.summary];return[]}).join("")}function eP(e){try{let t=JSON.parse(e);return typeof t==="object"&&t!==null?t:null}catch{return null}}async function*as(e){let t=!1,n=!1,r="endTurn",o={inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0},i=new Map,s=0,a,u=0;for await(let c of e){if(c.data==="[DONE]"){n=!0;break}let d=eP(c.data);if(d===null)continue;if(!t&&(d.id!==void 0||d.model!==void 0))t=!0,yield{type:"start",id:String(d.id??""),model:String(d.model??"")};if(d.usage){let h=d.usage.prompt_tokens_details;o=xe(d.usage.prompt_tokens??0,d.usage.completion_tokens??0,h?.cached_tokens??d.usage.prompt_cache_hit_tokens??0,h?.cache_creation_tokens??h?.cache_write_tokens??0)}let p=d.choices?.[0];if(!p)continue;let l=p.delta??{},m=JC(l);if(m.length>0){if(a!=="thinking"){if(a!==void 0)yield{type:"blockEnd",index:u};a="thinking",u=s++,yield{type:"blockStart",index:u,block:{type:"thinking"}}}yield{type:"blockDelta",index:u,delta:{type:"thinking",text:m}}}let g=l.tool_calls??[];if(typeof l.content==="string"&&l.content.length>0){if(a!=="text"){if(a!==void 0)yield{type:"blockEnd",index:u};a="text",u=s++,yield{type:"blockStart",index:u,block:{type:"text"}}}yield{type:"blockDelta",index:u,delta:{type:"text",text:l.content}}}for(let h of g){let f=h.index??0,y=i.get(f);if(y===void 0){if(a!==void 0)yield{type:"blockEnd",index:u};y=s++,i.set(f,y),a="tool",u=y,yield{type:"blockStart",index:y,block:{type:"toolUse",id:String(h.id??`call_${f}`),name:String(h.function?.name??"")}}}let _=h.function?.arguments;if(typeof _==="string"&&_.length>0)yield{type:"blockDelta",index:y,delta:{type:"toolJson",partial:_}}}if(typeof p.finish_reason==="string"){let h=p.finish_reason,f=Object.hasOwn(Eb,h)?Eb[h]:void 0;if(f===void 0){yield{type:"error",code:"UPSTREAM",message:`unrecognized Kilo finish reason "${h}"`,retryable:!1};return}r=f}}if(n){if(a!==void 0)yield{type:"blockEnd",index:u};yield{type:"end",stopReason:r,usage:o}}else yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before [DONE]",retryable:ee.UPSTREAM}}function tP(e){switch(e.type){case"auto":return"auto";case"any":return"required";case"none":return"none";case"tool":return{type:"function",function:{name:e.name}}}}function nP(e){let t=(n)=>("cacheControl"in n)&&n.cacheControl!==void 0;if(e.system?.some(t)===!0)return!0;return e.messages.some((n)=>n.content.some(t))}function vb(e){if(e.length===0)return null;if(e.every((t)=>t.type==="text"))return e.map((t)=>t.type==="text"?t.text:"").join(`
|
|
1670
|
+
`);return[...e]}function us(e,t){let n=[],r=(c)=>{if(!n.includes(c))n.push(c)};if(e.betas?.includes(Ee))r("kilo:context-1m-dropped");if(nP(e))r("kilo:cache-control-dropped");let o=[],i=Oe(e.system,"kilo",r);if(i!==void 0&&i.length>0)o.push({role:"system",content:i});for(let c of e.messages){let d=[],p=[],l=[],m=()=>{if(p.length>0)o.push({role:c.role,content:vb(d),tool_calls:[...p]});else if(d.length>0)o.push({role:c.role,content:vb(d)});d=[],p.length=0};for(let g of c.content)switch(g.type){case"text":d.push({type:"text",text:g.text});break;case"image":d.push({type:"image_url",image_url:{url:`data:${g.mediaType};base64,${g.data}`}});break;case"thinking":r("kilo:thinking-dropped");break;case"toolUse":p.push({id:g.id,type:"function",function:{name:g.name,arguments:JSON.stringify(g.input)}});break;case"toolResult":{if(g.native!==void 0)r("kilo:anthropic-native-block-dropped");m();let h=Ze(g.files??[],(f)=>f==="application/pdf");if(o.push({role:"tool",tool_call_id:g.toolUseId,content:be(g.content,h.text)}),h.text.length>0)r("kilo:tool-result-files-inlined");if(h.dropped)r("kilo:files-dropped");for(let f of g.images??[])r("kilo:tool-result-images-moved"),l.push({type:"image_url",image_url:{url:`data:${f.mediaType};base64,${f.data}`}});for(let f of h.carried)r("kilo:tool-result-files-moved"),l.push({type:"file",file:{filename:rc(f),file_data:`data:${f.mediaType};base64,${f.data}`}});break}case"providerNative":r("kilo:anthropic-native-block-dropped");break}if(m(),l.length>0)o.push({role:"user",content:l})}let s={model:t,messages:o,stream:e.stream,stream_options:{include_usage:!0}};if(e.maxTokens!==void 0)s.max_tokens=e.maxTokens;if(e.temperature!==void 0)s.temperature=e.temperature;if(e.stopSequences!==void 0)s.stop=e.stopSequences;if(e.tools!==void 0){let c=e.tools.filter((d)=>d.kind==="portable");if(c.length!==e.tools.length)r("kilo:anthropic-tool-dropped");s.tools=c.map((d)=>({type:"function",function:{name:d.name,description:d.description,parameters:d.inputSchema}}))}if(e.toolChoice!==void 0)s.tool_choice=tP(e.toolChoice);if(e.reasoning?.mode==="betweenTools")r("kilo:reasoning-between-tools-as-off");if(e.reasoning!==void 0&&e.reasoning.mode!=="off"&&e.reasoning.mode!=="betweenTools")if(e.reasoning.mode==="budget")s.reasoning={max_tokens:e.reasoning.budgetTokens};else s.reasoning={effort:e.reasoning.effort??"medium"};Object.assign(s,e.vendor?.kilo??{});let a=ot(e),u=a.kind==="readable"?a.format:void 0;if(u!==void 0&&s.response_format===void 0)s.response_format={type:"json_schema",json_schema:{name:u.name,schema:u.schema,strict:!0}},r("kilo:response-format-translated");else if(a.kind==="tooDeep")delete s.response_format,r("kilo:response-schema-too-deep");return{body:s,degradations:n}}var rP="https://api.kilo.ai/api/openrouter/chat/completions",oP="https://api.kilo.ai/api/gateway/chat/completions";function iP(e){let t=e.orgId;if(typeof t!=="string"||t.length===0)return[];return[["X-Kilocode-OrganizationID",t]]}var Tb={buildRequest(e){let t=e.credentials.accessToken!==null,n=e.credentials.accessToken??e.credentials.apiKey;if(n===null)throw e.fail("AUTH","kilo credential has no token");let{body:r,degradations:o}=us(e.request,e.model),i=[["Content-Type","application/json"],["Authorization",`Bearer ${n}`],...iP(e.credentials.providerData)],s=fe(ge(ft.headers,i),ft.order);return{request:{url:t?rP:oP,method:"POST",headers:s,body:JSON.stringify(Be({...r,stream:!0},Di))},degradations:o}},decode({body:e}){return as(_e(e))}};var qc=de("kilo",Ri.capabilities,Tb);var Rb={stop:"endTurn",length:"maxTokens",tool_calls:"toolUse",content_filter:"contentFilter"};function sP(e){try{let t=JSON.parse(e);return typeof t==="object"&&t!==null?t:null}catch{return null}}async function*cs(e){let t=!1,n=!1,r="endTurn",o={inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheWriteTokens:0},i=new Map,s=0,a,u=0;for await(let c of e){if(c.data==="[DONE]"){n=!0;break}let d=sP(c.data);if(d===null)continue;if(!t&&(d.id!==void 0||d.model!==void 0))t=!0,yield{type:"start",id:String(d.id??""),model:String(d.model??"")};if(d.usage){let m=d.usage.prompt_tokens_details;o=xe(d.usage.prompt_tokens??0,d.usage.completion_tokens??0,m?.cached_tokens??d.usage.prompt_cache_hit_tokens??0,m?.cache_creation_tokens??m?.cache_write_tokens??0)}let p=d.choices?.[0];if(!p)continue;let l=p.delta??{};if(typeof l.content==="string"&&l.content.length>0){if(a!=="text"){if(a!==void 0)yield{type:"blockEnd",index:u};a="text",u=s++,yield{type:"blockStart",index:u,block:{type:"text"}}}yield{type:"blockDelta",index:u,delta:{type:"text",text:l.content}}}for(let m of l.tool_calls??[]){let g=m.index??0,h=i.get(g);if(h===void 0){if(a!==void 0)yield{type:"blockEnd",index:u};h=s++,i.set(g,h),a="tool",u=h,yield{type:"blockStart",index:h,block:{type:"toolUse",id:String(m.id??`call_${g}`),name:String(m.function?.name??"")}}}let f=m.function?.arguments;if(typeof f==="string"&&f.length>0)yield{type:"blockDelta",index:h,delta:{type:"toolJson",partial:f}}}if(typeof p.finish_reason==="string"){let m=p.finish_reason,g=Object.hasOwn(Rb,m)?Rb[m]:void 0;if(g===void 0){yield{type:"error",code:"UPSTREAM",message:`unrecognized Kimi finish reason "${m}"`,retryable:!1};return}r=g}}if(n){if(a!==void 0)yield{type:"blockEnd",index:u};yield{type:"end",stopReason:r,usage:o}}else yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before [DONE]",retryable:ee.UPSTREAM}}function aP(e){switch(e.type){case"auto":return"auto";case"any":return"required";case"none":return"none";case"tool":return{type:"function",function:{name:e.name}}}}function ds(e,t,n="kimi"){let r=[],o=(d)=>{if(!r.includes(d))r.push(d)};if(e.betas?.includes(Ee))o("kimi:context-1m-dropped");let i=[],s=Oe(e.system,"kimi",o);if(s!==void 0&&s.length>0)i.push({role:"system",content:s});for(let d of e.messages){let p=[],l=[];for(let m of d.content)switch(m.type){case"text":p.push(m.text);break;case"image":o("kimi:images-dropped");break;case"thinking":o("kimi:thinking-dropped");break;case"toolUse":l.push({id:m.id,type:"function",function:{name:m.name,arguments:JSON.stringify(m.input)}});break;case"toolResult":{if(m.native!==void 0)o("kimi:anthropic-native-block-dropped");let g=Ze(m.files??[],()=>!1);if(i.push({role:"tool",tool_call_id:m.toolUseId,content:be(m.content,g.text)}),m.images!==void 0)o("kimi:images-dropped");if(g.text.length>0)o("kimi:tool-result-files-inlined");if(g.dropped)o("kimi:files-dropped");break}case"providerNative":o("kimi:anthropic-native-block-dropped");break}if(l.length>0)i.push({role:d.role,content:p.length>0?p.join(`
|
|
1671
1671
|
`):null,tool_calls:l});else if(p.length>0)i.push({role:d.role,content:p.join(`
|
|
1672
|
-
`)})}let a={model:t,messages:i,stream:e.stream,stream_options:{include_usage:!0}};if(e.maxTokens!==void 0)a.max_tokens=e.maxTokens;if(e.temperature!==void 0)a.temperature=e.temperature;if(e.stopSequences!==void 0)a.stop=e.stopSequences;if(e.tools!==void 0){let d=e.tools.filter((p)=>p.kind==="portable");if(d.length!==e.tools.length)o("kimi:anthropic-tool-dropped");a.tools=d.map((p)=>({type:"function",function:{name:p.name,description:p.description,parameters:p.inputSchema}}))}if(e.toolChoice!==void 0)a.tool_choice=aP(e.toolChoice);if(e.reasoning?.mode==="betweenTools")o("kimi:reasoning-between-tools-as-off");if(e.reasoning!==void 0)o("kimi:reasoning-dropped");Object.assign(a,e.vendor?.[n]??{});let c=ot(e),u=c.kind==="readable"?c.format:void 0;if(u!==void 0&&a.response_format===void 0)a.response_format={type:"json_schema",json_schema:{name:u.name,schema:u.schema,strict:!0}},o("kimi:response-format-translated");else if(c.kind==="tooDeep")delete a.response_format,o("kimi:response-schema-too-deep");return{body:a,degradations:r}}var uP="https://api.kimi.com/coding/v1/chat/completions",Sb={buildRequest(e){let{body:t,degradations:n}=ds(e.request,e.model),r=e.credentials.accessToken??e.credentials.apiKey;if(r===null)throw e.fail("AUTH","kimi credential has no token");let o=[["Content-Type","application/json"],["Accept","text/event-stream"],["Authorization",`Bearer ${r}`],...Mr(e.credentials.providerData)],i=fe(ge(Ot.headers,o),Ot.order);return{request:{url:uP,method:"POST",headers:i,body:JSON.stringify(Ke({...t,stream:!0},Ui))},degradations:n}},decode({body:e}){return cs(ye(e))}};var Hc=de("kimi",Si.capabilities,Sb);var xb={rate_limit_exceeded:"RATE_LIMIT",insufficient_quota:"QUOTA_EXHAUSTED",invalid_api_key:"AUTH",server_error:"UPSTREAM",context_length_exceeded:"BAD_REQUEST",content_policy_violation:"CONTENT_FILTER"},cP=new Set(["keepalive","response.created","response.queued","response.in_progress","response.output_item.added","response.output_item.done","response.content_part.added","response.content_part.done","response.output_text.delta","response.output_text.done","response.output_text.annotation.added","response.refusal.delta","response.refusal.done","response.reasoning_summary_part.added","response.reasoning_summary_part.done","response.reasoning_summary_text.delta","response.reasoning_summary_text.done","response.reasoning_text.delta","response.reasoning_text.done","response.function_call_arguments.delta","response.function_call_arguments.done","response.completed","response.incomplete","response.failed","error"]);function dP(e){try{let t=JSON.parse(e);return typeof t==="object"&&t!==null?t:null}catch{return null}}async function*ls(e,t={}){let n=t.nativeReasoning===!0,r=new Map,o=0,i=(u,d=0)=>{let p=`${u}:${d}`,l=r.get(p);if(l!==void 0)return l;let m=o++;return r.set(p,m),m},s=!1,a=!1,c=new Set;for await(let u of e){if(u.data==="[DONE]")continue;if(!cP.has(u.event)){yield{type:"error",code:"UPSTREAM",message:`unrecognized muse stream event "${u.event}"`,retryable:!1};return}let d=dP(u.data);if(d===null)continue;switch(u.event){case"response.created":yield{type:"start",id:String(d.response?.id??""),model:String(d.response?.model??"")};break;case"response.output_item.added":{let p=d.item??{};if(p.type==="reasoning")c.add(d.output_index??0),yield{type:"blockStart",index:i(d.output_index??0),block:n?{type:"providerNative",provider:"muse",blockType:"reasoning",data:{}}:{type:"thinking"}};else if(p.type==="function_call")s=!0,c.add(d.output_index??0),yield{type:"blockStart",index:i(d.output_index??0),block:{type:"toolUse",id:String(p.call_id),name:String(p.name)}};break}case"response.content_part.added":if(d.part?.type==="output_text")yield{type:"blockStart",index:i(d.output_index??0,d.content_index??0),block:{type:"text"}};break;case"response.output_text.delta":yield{type:"blockDelta",index:i(d.output_index??0,d.content_index??0),delta:{type:"text",text:String(d.delta??"")}};break;case"response.reasoning_summary_text.delta":yield{type:"blockDelta",index:i(d.output_index??0),delta:n?{type:"providerNative",provider:"muse",deltaType:"reasoning_summary_text.delta",data:{text:String(d.delta??"")}}:{type:"thinking",text:String(d.delta??"")}};break;case"response.function_call_arguments.delta":yield{type:"blockDelta",index:i(d.output_index??0),delta:{type:"toolJson",partial:String(d.delta??"")}};break;case"response.content_part.done":yield{type:"blockEnd",index:i(d.output_index??0,d.content_index??0)};break;case"response.output_item.done":{let p=d.output_index??0;if(c.delete(p)){let l=d.item??{};if(n&&l.type==="reasoning")yield{type:"blockDelta",index:i(p),delta:{type:"providerNative",provider:"muse",deltaType:"response.output_item.done",fold:"merge",data:l}};yield{type:"blockEnd",index:i(p)}}break}case"response.completed":case"response.incomplete":{a=!0;let p=d.response??{},l=p.incomplete_details?.reason,m=s?"toolUse":"endTurn";if(l==="max_output_tokens")m="maxTokens";else if(l==="content_filter")m="contentFilter";else if(l!==void 0||u.event==="response.incomplete"||p.status!==void 0&&p.status!=="completed"){yield{type:"error",code:"UPSTREAM",message:l!==void 0?`unrecognized muse incomplete reason "${String(l)}"`:p.status!==void 0&&p.status!=="incomplete"?`muse reported terminal response status "${String(p.status)}"`:"muse reported the response incomplete without a reason",retryable:!1};break}yield{type:"end",stopReason:m,usage:Se(p.usage?.input_tokens??0,p.usage?.output_tokens??0,p.usage?.input_tokens_details?.cached_tokens??p.usage?.prompt_tokens_details?.cached_tokens??0)};break}case"response.failed":case"error":{a=!0;let p=d.response?.error??d.error??{},l=String(p.code??p.type),m=(Object.hasOwn(xb,l)?xb[l]:void 0)??"UPSTREAM";yield{type:"error",code:m,message:String(p.message??"upstream error"),retryable:J[m]};break}default:break}}if(!a)yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before response completion",retryable:J.UPSTREAM}}import{createHash as lP}from"crypto";function pP(e){let t=e.vendor?.openai;for(let n of["prompt_cache_key","session_id"]){let r=t?.[n];if(typeof r==="string"&&r.length>0)return r}return}function mP(e,t,n){let r=e.conversationId!==void 0&&e.conversationId.length>0?JSON.stringify({conversation:e.conversationId}):JSON.stringify({instructions:t,firstInput:n??null});return lP("sha256").update(r).digest("hex").slice(0,32)}function fP(e){let t=new Set;for(let n of e){let r=n;if(r.type==="function_call_output"&&typeof r.call_id==="string")t.add(r.call_id)}for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.type!=="function_call"||typeof r.call_id!=="string")continue;if(t.has(r.call_id))continue;e.splice(n+1,0,{type:"function_call_output",call_id:r.call_id,output:""})}}function gP(e){switch(e.type){case"auto":return"auto";case"any":return"required";case"none":return"none";case"tool":return{type:"function",name:e.name}}}function ps(e,t){let n=[],r=[],o=(u)=>{if(!n.includes(u))n.push(u)};if(e.betas?.includes(Ee))o("muse:context-1m-dropped");for(let u of e.messages){let d=[],p=u.role==="system";if(p)o("muse:system-turn-as-developer");let l=p?"developer":u.role,m=()=>{if(d.length===0)return;r.push({type:"message",role:l,content:[...d]}),d.length=0};for(let g of u.content)switch(g.type){case"text":d.push({type:l==="assistant"?"output_text":"input_text",text:g.text});break;case"image":d.push({type:"input_image",image_url:`data:${g.mediaType};base64,${g.data}`});break;case"thinking":o("muse:thinking-dropped");break;case"toolUse":m(),r.push({type:"function_call",call_id:g.id,name:g.name,arguments:JSON.stringify(g.input)});break;case"toolResult":{if(g.native!==void 0)o("muse:foreign-native-block-dropped");m();let h=Ht(g.files??[]);if(r.push({type:"function_call_output",call_id:g.toolUseId,output:we(g.content,h.text)}),g.images!==void 0){o("muse:tool-result-images-moved");for(let f of g.images)d.push({type:"input_image",image_url:`data:${f.mediaType};base64,${f.data}`})}if(h.parts.length>0)o("muse:tool-result-files-moved"),d.push(...h.parts);if(h.text.length>0)o("muse:tool-result-files-inlined");if(h.dropped)o("muse:files-dropped");break}case"providerNative":if(g.provider==="muse"){m();let{id:h,...f}=g.data;r.push({type:g.blockType,...f});break}o("muse:foreign-native-block-dropped");break}m()}fP(r);let i={model:t,input:r,stream:e.stream,store:!1},s=Ae(e.system,"muse",o);if(s!==void 0&&s.length>0)i.instructions=s;if(e.maxTokens!==void 0)i.max_output_tokens=e.maxTokens;if(e.temperature!==void 0)i.temperature=e.temperature;if(e.tools!==void 0){let u=e.tools.filter((d)=>d.kind==="portable");if(u.length!==e.tools.length)o("muse:provider-tool-dropped");i.tools=u.map((d)=>({type:"function",name:d.name,description:d.description,parameters:d.inputSchema}))}if(e.toolChoice!==void 0)i.tool_choice=gP(e.toolChoice);if(e.reasoning?.mode==="betweenTools")o("muse:reasoning-between-tools-as-off");if(e.reasoning!==void 0&&e.reasoning.mode!=="off"&&e.reasoning.mode!=="betweenTools")if(e.reasoning.mode==="budget")o("muse:reasoning-budget-dropped");else{let u=e.reasoning.effort??"medium";i.reasoning={effort:u,...e.reasoning.display==="omitted"||e.reasoning.display==="updates"?{}:{summary:"auto"}}}let a=pP(e)??mP(e,s??"",r[0]);Object.assign(i,e.vendor?.openai??{});let c=qt(e,i,"muse");if(c!==void 0)o(c);return i.prompt_cache_key=a,{body:i,degradations:n,cacheKey:a}}var Ab={buildRequest(e){let{body:t,degradations:n,cacheKey:r}=ps(e.request,e.model);if(e.credentials.apiKey===null)throw e.fail("AUTH","muse credential has no model api key");let o=[["Content-Type","application/json"],["Authorization",`Bearer ${e.credentials.apiKey}`],["x-meta-ai-gateway-session-id",r]],i=fe(ge(gt.headers,o),gt.order),s=t.include;return{decodeState:{nativeReasoning:Array.isArray(s)&&s.includes("reasoning.encrypted_content")},request:{url:Dw(e.credentials.providerData),method:"POST",headers:i,body:JSON.stringify(Ke({...t,stream:!0},Mi))},degradations:n}},decode({body:e,decodeState:t}){let n=t;return ls(ye(e),{nativeReasoning:n?.nativeReasoning===!0})}};var Wc=de("muse",Ai.capabilities,Ab);var hP=new Set(["none","minimal","low","medium","high","xhigh","max","ultra","persistent"]);function Cb(e){return typeof e==="string"&&hP.has(e)}var Xe=(e,t,n={})=>({lite:!0,verbosity:"low",defaultEffort:e,lowestEffort:"low",nodeReplAutoReviewRequired:t,nodeReplDisabled:!1,supportsParallelToolCalls:!0,...n}),yP=Xe("low",!1),_P=Object.assign(Object.create(null),{"gpt-6-astra":Xe("low",!0),"gpt-6.1-sol":Xe("low",!0),"gpt-6-sol":Xe("medium",!0),"gpt-6-luna":Xe("medium",!1),"gpt-5.6-sol":Xe("low",!1),"gpt-5.6-terra":Xe("medium",!1),"gpt-5.6-luna":Xe("medium",!1),"gpt-daybreak-blue-latest":Xe("low",!1),"gpt-daybreak-red-latest":Xe("medium",!1,{verbosity:"high"}),"gpt-5.5":Xe("medium",!1,{lite:!1}),"codex-auto-review":Xe("medium",!1)});function wt(e){return _P[e]??yP}var Ob={rate_limit_exceeded:"RATE_LIMIT",insufficient_quota:"QUOTA_EXHAUSTED",invalid_api_key:"AUTH",server_error:"UPSTREAM",context_length_exceeded:"BAD_REQUEST",content_policy_violation:"CONTENT_FILTER"},wP=new Set(["keepalive","response.created","response.queued","response.in_progress","response.output_item.added","response.output_item.done","response.content_part.added","response.content_part.done","response.output_text.delta","response.output_text.done","response.output_text.annotation.added","response.refusal.delta","response.refusal.done","response.reasoning_summary_part.added","response.reasoning_summary_part.done","response.reasoning_summary_text.delta","response.reasoning_summary_text.done","response.reasoning_text.delta","response.reasoning_text.done","response.function_call_arguments.delta","response.function_call_arguments.done","response.metadata","response.completed","response.incomplete","response.failed","error"]);function bP(e){try{let t=JSON.parse(e);return typeof t==="object"&&t!==null?t:null}catch{return null}}async function*ms(e,t={}){let n=t.nativeReasoning===!0,r=new Map,o=0,i=(u,d=0)=>{let p=`${u}:${d}`,l=r.get(p);if(l!==void 0)return l;let m=o++;return r.set(p,m),m},s=!1,a=!1,c=new Set;for await(let u of e){if(u.data==="[DONE]")continue;if(!wP.has(u.event)){yield{type:"error",code:"UPSTREAM",message:`unrecognized OpenAI stream event "${u.event}"`,retryable:!1};return}let d=bP(u.data);if(d===null)continue;switch(u.event){case"response.created":yield{type:"start",id:String(d.response?.id??""),model:String(d.response?.model??"")};break;case"response.output_item.added":{let p=d.item??{};if(p.type==="reasoning")c.add(d.output_index??0),yield{type:"blockStart",index:i(d.output_index??0),block:n?{type:"providerNative",provider:"openai",blockType:"reasoning",data:{}}:{type:"thinking"}};else if(p.type==="function_call")s=!0,c.add(d.output_index??0),yield{type:"blockStart",index:i(d.output_index??0),block:{type:"toolUse",id:String(p.call_id),name:String(p.name)}};break}case"response.content_part.added":if(d.part?.type==="output_text")yield{type:"blockStart",index:i(d.output_index??0,d.content_index??0),block:{type:"text"}};break;case"response.output_text.delta":yield{type:"blockDelta",index:i(d.output_index??0,d.content_index??0),delta:{type:"text",text:String(d.delta??"")}};break;case"response.reasoning_summary_text.delta":yield{type:"blockDelta",index:i(d.output_index??0),delta:n?{type:"providerNative",provider:"openai",deltaType:"reasoning_summary_text.delta",data:{text:String(d.delta??"")}}:{type:"thinking",text:String(d.delta??"")}};break;case"response.function_call_arguments.delta":yield{type:"blockDelta",index:i(d.output_index??0),delta:{type:"toolJson",partial:String(d.delta??"")}};break;case"response.content_part.done":yield{type:"blockEnd",index:i(d.output_index??0,d.content_index??0)};break;case"response.output_item.done":{let p=d.output_index??0;if(c.delete(p)){let l=d.item??{};if(n&&l.type==="reasoning")yield{type:"blockDelta",index:i(p),delta:{type:"providerNative",provider:"openai",deltaType:"response.output_item.done",fold:"merge",data:l}};yield{type:"blockEnd",index:i(p)}}break}case"response.completed":case"response.incomplete":{a=!0;let p=d.response??{},l=p.incomplete_details?.reason,m=s?"toolUse":"endTurn";if(l==="max_output_tokens")m="maxTokens";else if(l==="content_filter")m="contentFilter";else if(l!==void 0||u.event==="response.incomplete"||p.status!==void 0&&p.status!=="completed"){yield{type:"error",code:"UPSTREAM",message:l!==void 0?`unrecognized OpenAI incomplete reason "${String(l)}"`:p.status!==void 0&&p.status!=="incomplete"?`OpenAI reported terminal response status "${String(p.status)}"`:"OpenAI reported the response incomplete without a reason",retryable:!1};break}yield{type:"end",stopReason:m,usage:Se(p.usage?.input_tokens??0,p.usage?.output_tokens??0,p.usage?.input_tokens_details?.cached_tokens??p.usage?.prompt_tokens_details?.cached_tokens??0)};break}case"response.failed":case"error":{a=!0;let p=d.response?.error??d.error??{},l=String(p.code??p.type),m=(Object.hasOwn(Ob,l)?Ob[l]:void 0)??"UPSTREAM";yield{type:"error",code:m,message:String(p.message??"upstream error"),retryable:J[m]};break}default:break}}if(!a)yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before response completion",retryable:J.UPSTREAM}}var ln="internal_chat_message_metadata_passthrough";function Pb(e,t,n,r){return $r(dn(r,`${e}:turn:${t}`),n+t)}function kP(e,t){if(!Array.isArray(e))return;if(t==="assistant")return e.map(()=>"unknown");let n=[];for(let r of e){let o=r.type;if(o==="input_text")n.push("user.text");else if(o==="input_image")n.push("user.image");else return}return n}function Ib(e){let{threadId:t}=e,n=Nc(t,e.startedAt??Number.POSITIVE_INFINITY),r=e.startedAt??n,o=e.requestId??t,i=e.idSalt,s=Xw(t),a=[];if(e.tools!==void 0&&e.tools.length>0){let d=[{type:"namespace",name:"functions",description:"",tools:e.tools}];a.push({type:"additional_tools",id:`at_${rs(s,JSON.stringify(d))}`,role:"developer",tools:d})}if(e.instructions!==void 0&&e.instructions.length>0)a.push({type:"message",id:`msg_${rs(s,e.instructions)}`,role:"developer",content:[{type:"input_text",text:e.instructions}],[ln]:{content_item_kinds:["model.base_instructions"]}});let c=0,u=e.input.map((d,p)=>{let l=d;c=e.turnOf.get(l)??c;let m=Pb(t,c,n,i),g=(f)=>`${f}_${$r(dn(i,`${o}:item:${p}`),r)}`,h=(r*1000+p)/1e6;switch(l.type){case"message":{let f=String(l.role),y=kP(l.content,f);if(f==="assistant")return{type:"message",status:"completed",id:g("msg"),role:f,content:Array.isArray(l.content)?l.content.map((_)=>_.type==="output_text"?{..._,annotations:[]}:_):l.content,[ln]:{turn_id:m,...y===void 0?{}:{content_item_kinds:y}}};return{type:"message",id:g("msg"),role:f,content:l.content,[ln]:{turn_id:m,create_time:h,...y===void 0?{}:{content_item_kinds:y}}}}case"function_call":return{type:"function_call",status:"completed",id:g("fc"),name:l.name,arguments:l.arguments,call_id:l.call_id,[ln]:{turn_id:m}};case"function_call_output":return{type:"function_call_output",id:g("fco"),call_id:l.call_id,output:l.output,[ln]:{turn_id:m,create_time:h}};case"reasoning":{let{[ln]:f,...y}=l;return{...y,[ln]:{turn_id:m}}}default:return l}});return{input:[...a,...u],turnId:Pb(t,c,n,i),startedAt:r}}function EP(e){return JSON.stringify(e).replace(/[^\x20-\x7e]/g,(t)=>`\\u${t.charCodeAt(0).toString(16).padStart(4,"0")}`)}function Lb(e){let{threadId:t,turnId:n}=e,r=`${t}:0`,o=e.installationId??Gw(`installation:${e.installationSeed}`),i=Nc(t,e.startedAt),s=wt(e.model),a=EP({installation_id:o,session_id:t,thread_id:t,agent_name:"/root",turn_id:n,window_id:r,window_number:0,context_window_id:$r(dn(e.idSalt,`${t}:context-window`),i),request_kind:"turn",history_initialization:"new",root_turn_id:n,thread_source:"user",turn_trigger:"user",sandbox:k_,sandbox_mode:"workspace-write",auto_review_enabled:!1,node_repl_auto_review_required:s.nodeReplAutoReviewRequired,node_repl_disabled:s.nodeReplDisabled,turn_started_at_unix_ms:e.startedAt,analytics_enabled:!1,model:e.model,reasoning_effort:e.effort});return{windowId:r,turnMetadata:a,clientMetadata:{turn_id:n,thread_id:t,"x-codex-turn-metadata":a,mcp_attribution:'{"status":"none"}',guardian_credits_requested:"true","x-codex-installation-id":o,"x-codex-window-id":r,root_turn_id:n,session_id:t}}}var vP=1024,TP=/^[\x21-\x7e]+$/;function RP(e){let t=e.vendor?.openai;for(let n of["prompt_cache_key","session_id"]){let r=t?.[n];if(typeof r==="string"&&r.length<=vP&&TP.test(r))return r}return}function SP(e,t,n,r){let o=RP(e);if(o!==void 0){if(Oc(o))return{key:o,seed:o};let s=JSON.stringify({key:o});return{key:Lc(dn(r,s)),seed:s}}let i=e.conversationId!==void 0&&e.conversationId.length>0?JSON.stringify({conversation:e.conversationId}):JSON.stringify({instructions:t,firstInput:n??null});return{key:Lc(dn(r,i)),seed:i}}function xP(e){let t=new Set;for(let n of e){let r=n;if(r.type==="function_call_output"&&typeof r.call_id==="string")t.add(r.call_id)}for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.type!=="function_call"||typeof r.call_id!=="string")continue;if(t.has(r.call_id))continue;e.splice(n+1,0,{type:"function_call_output",call_id:r.call_id,output:""})}}function AP(e){switch(e.type){case"auto":return"auto";case"any":return"required";case"none":return"none";case"tool":return{type:"function",name:e.name}}}function CP(e,t,n){let r=wt(t),o=r.lite?{context:"all_turns"}:{},i=e.reasoning;if(i===void 0)return{effort:r.defaultEffort,...o};if(i.mode==="off")return n("openai:reasoning-off-as-lowest"),{effort:r.lowestEffort,...o};if(i.mode==="betweenTools")return{effort:r.lowestEffort,...o};if(i.mode==="budget")return n("openai:reasoning-budget-dropped"),{effort:r.defaultEffort,...o};return{effort:i.effort??r.defaultEffort,...i.display==="omitted"||i.display==="updates"?{}:{summary:"auto"},...o}}var Nb=(e)=>typeof e==="object"&&e!==null&&!Array.isArray(e);function OP(e,t,n){let r=e;for(let[o,i]of Object.entries(t)){if(o==="client_metadata"){n("openai:client-metadata-replaced");continue}let s=r[o];if((o==="text"||o==="reasoning")&&Nb(s)&&Nb(i)){r[o]={...s,...i};continue}r[o]=i}}function fs(e,t,n={oauth:!1}){let r=[],o=[],i=(k)=>{if(!r.includes(k))r.push(k)},s=new WeakMap,a=-1,c=(k)=>{o.push(k),s.set(k,Math.max(0,a))};if(e.betas?.includes(Ee))i("openai:context-1m-dropped");for(let k of e.messages){let E=[],T=k.role==="system";if(T)i("openai:system-turn-as-developer");let I=T?"developer":k.role,re=()=>{if(E.length===0)return;c({type:"message",role:I,content:[...E]}),E.length=0},Qe=!1;for(let W of k.content){if(k.role==="user"&&!Qe&&W.type!=="toolResult")Qe=!0,a++;switch(W.type){case"text":E.push({type:I==="assistant"?"output_text":"input_text",text:W.text});break;case"image":E.push({type:"input_image",image_url:`data:${W.mediaType};base64,${W.data}`});break;case"thinking":if(!r.includes("openai:thinking-dropped"))i("openai:thinking-dropped");break;case"toolUse":re(),c({type:"function_call",call_id:W.id,name:W.name,arguments:JSON.stringify(W.input)});break;case"toolResult":{if(W.native!==void 0)i("openai:anthropic-native-block-dropped");re();let qe=Ht(W.files??[]);if(c({type:"function_call_output",call_id:W.toolUseId,output:we(W.content,qe.text)}),W.images!==void 0){i("openai:tool-result-images-moved");for(let Lt of W.images)E.push({type:"input_image",image_url:`data:${Lt.mediaType};base64,${Lt.data}`})}if(qe.parts.length>0)i("openai:tool-result-files-moved"),E.push(...qe.parts);if(qe.text.length>0)i("openai:tool-result-files-inlined");if(qe.dropped)i("openai:files-dropped");break}case"providerNative":if(W.provider==="openai"){re();let{id:qe,...Lt}=W.data;c({type:W.blockType,...Lt});break}i("openai:anthropic-native-block-dropped");break}}re()}xP(o);let u={model:t,input:o,stream:e.stream,store:!1},d=Ae(e.system,"openai",i),p=n.oauth&&wt(t).lite;if(d!==void 0&&d.length>0&&!n.oauth)u.instructions=d;if(e.maxTokens!==void 0)if(n.oauth)i("openai:max-tokens-dropped");else u.max_output_tokens=e.maxTokens;if(e.temperature!==void 0)if(n.oauth)i("openai:temperature-dropped");else u.temperature=e.temperature;let l;if(e.tools!==void 0){let k=e.tools.filter((E)=>E.kind==="portable");if(k.length!==e.tools.length)i("openai:anthropic-tool-dropped");if(n.oauth){let E=k.map((T)=>({type:"function",name:T.name,description:T.description,strict:!1,parameters:T.inputSchema}));if(p)l=E;else u.tools=E}else u.tools=k.map((E)=>({type:"function",name:E.name,description:E.description,parameters:E.inputSchema}))}if(e.toolChoice!==void 0)u.tool_choice=AP(e.toolChoice);else if(n.oauth)u.tool_choice="auto";if(n.oauth)u.parallel_tool_calls=!p&&wt(t).supportsParallelToolCalls;if(e.reasoning?.mode==="betweenTools")i(n.oauth?"openai:reasoning-between-tools-as-lowest":"openai:reasoning-between-tools-as-off");if(n.oauth)u.reasoning=CP(e,t,i);else if(e.reasoning!==void 0&&e.reasoning.mode!=="off"&&e.reasoning.mode!=="betweenTools")if(e.reasoning.mode==="budget")r.push("openai:reasoning-budget-dropped");else{let k=e.reasoning.effort??"medium";u.reasoning={effort:k,...e.reasoning.display==="omitted"||e.reasoning.display==="updates"?{}:{summary:"auto"}}}let m=n.oauth?n.idSalt:void 0,{key:g,seed:h}=SP(e,d??"",o[0],m);if(n.oauth)u.include=["reasoning.encrypted_content"],u.text={verbosity:wt(t).verbosity},OP(u,e.vendor?.openai??{},i);else Object.assign(u,e.vendor?.openai??{});let f=qt(e,u,"openai");if(f!==void 0)i(f);if(u.prompt_cache_key=g,!n.oauth)return{body:u,degradations:r,cacheKey:g};let y=Ib({threadId:g,input:o,turnOf:s,tools:l,instructions:d,requestId:n.requestId,startedAt:n.startedAt,idSalt:m});u.input=y.input;let _=u.reasoning?.effort,b=Lb({threadId:g,turnId:y.turnId,installationId:n.installationId,installationSeed:n.accountId??h,idSalt:m,model:t,effort:Cb(_)?_:wt(t).defaultEffort,startedAt:y.startedAt});return u.client_metadata=b.clientMetadata,{body:u,degradations:r,cacheKey:g,codex:b}}var PP="https://chatgpt.com/backend-api/codex/responses",IP="https://api.openai.com/v1/responses",Db=/^[\x21-\x7e]+$/;function LP(e,t){if(!Db.test(e))return;if(typeof t==="string"&&Db.test(t)&&!t.includes(";"))return`model=${e};tier=${t}`;return`model=${e}`}var Ub={buildRequest(e){let t=e.credentials.accessToken!==null,n=e.credentials.providerData.accountId,r=t?Dc(e.credentials.providerData):{},{body:o,degradations:i,cacheKey:s,codex:a}=fs(e.request,e.model,{oauth:t,requestId:e.requestId,startedAt:e.requestStartedAt,accountId:typeof n==="string"?n:void 0,installationId:r.installationId,idSalt:r.idSalt}),c=[];if(a!==void 0){if(c.push(["x-codex-window-id",a.windowId],["x-codex-turn-metadata",a.turnMetadata]),wt(e.model).lite)c.push(["x-openai-internal-codex-responses-lite","true"]);let l=LP(e.model,o.service_tier);if(l!==void 0)c.push(["x-codex-routing-hint",l])}if(c.push(["x-client-request-id",s],["session-id",s],["thread-id",s]),t)c.push(["content-encoding","zstd"]);if(c.push(["content-type","application/json"]),t){if(c.push(["authorization",`Bearer ${e.credentials.accessToken}`]),typeof n==="string")c.push(["chatgpt-account-id",n]);c.push(["host","chatgpt.com"])}else if(e.credentials.apiKey!==null)c.push(["authorization",`Bearer ${e.credentials.apiKey}`]);else throw e.fail("AUTH","openai credential has no token");let u=fe(ge(rt.headers,c),rt.order),d=e.request.vendor?.openai?.include;return{decodeState:{nativeReasoning:Array.isArray(d)&&d.includes("reasoning.encrypted_content")},request:{url:t?PP:IP,method:"POST",headers:u,body:JSON.stringify(Ke({...o,stream:!0},$i)),...t?{bodyEncoding:"zstd"}:{}},degradations:i}},decode({body:e,decodeState:t}){let n=t;return ms(ye(e),{nativeReasoning:n?.nativeReasoning===!0})}};var jc=de("openai",Oi.capabilities,Ub);var Kc={anthropic:oc,openai:jc,kimi:Hc,kilo:qc,grok:zc,antigravity:pc,muse:Wc,custom:Bc};Object.setPrototypeOf(Kc,null);var Mb=Object.fromEntries(Object.entries(M).flatMap(([e,t])=>{let n=Kc[e],r=Yu[e],o=Qu[e];if(n===void 0||r===void 0||o===void 0)return[];return[[e,{...t,adapter:n,profile:r,bodyOrder:o}]]}));Object.setPrototypeOf(Mb,null);var Gc=c_,NP=600000;function $b(e,t){return t[e]?.callback}function Zc(e){return typeof e==="string"&&Object.hasOwn(M,e)}function DP(e,t){let n=t.pending.extra?.deviceId;if(typeof n==="string"&&n.trim().length>0)return n;if(e.needsDeviceId)throw new w("INTERNAL","device authorization did not provide a device id");return""}function Xc(e){let t=e.logger??se,n=zu({now:e.now,ttlMs:NP,...e.coord===void 0?{}:{coord:e.coord}}),r=new Map,o=e.descriptors??M,i=(p)=>$b(p,o)?.uri??"",s=(p)=>typeof p==="string"&&Object.hasOwn(o,p),a=()=>Object.keys(e.providers);function c(p,l){let m=$b(p.provider,o);if(m===void 0)return l;let g=new URL(m.uri),h;try{h=new URL(l)}catch{return l}if(h.origin!==g.origin||h.pathname!==g.pathname)throw new w("BAD_REQUEST",`invalid ${m.label} callback URL`);let f=h.searchParams.get("code")?.trim()??"",y=h.searchParams.get("state")?.trim()??"";if(f.length===0||y.length===0)throw new w("BAD_REQUEST",`${m.label} callback URL must contain code and state`);if(y!==p.pending.state)throw new w("AUTH","authorization state mismatch");return`${f}#${y}`}async function u(p,l){let m=e.providers[p.provider];if(m===void 0)throw new w("BAD_REQUEST","provider does not support OAuth");let g=p.credentialId===void 0?null:await e.store.credentials.get(p.credentialId);if(p.credentialId!==void 0&&g===null)throw new w("BAD_REQUEST","credential not found");let h=g!==null&&g.provider===p.provider?g.providerData:void 0,f=await m.exchange({code:l,pending:p.pending,...h===void 0?{}:{providerData:h}},{http:e.http,now:e.now});if(p.credentialId!==void 0)return await e.store.credentials.updateSecrets(p.credentialId,f.secrets,f.expiresAt),await e.store.credentials.update(p.credentialId,{enabled:!0,disabledReason:null,disabledAt:null,accountEmail:f.accountEmail,providerData:f.providerData}),t.info("oauth reconnect completed",{provider:p.provider,credentialId:p.credentialId}),{id:p.credentialId};let y=crypto.randomUUID();return await e.store.credentials.create({id:y,provider:p.provider,label:p.label,authType:"oauth",enabled:!0,tier:1,weight:1,expiresAt:f.expiresAt,accountEmail:f.accountEmail,providerData:f.providerData,disabledReason:null,disabledAt:null,...f.secrets}),t.info("oauth connect completed",{provider:p.provider,credentialId:y}),{id:y}}async function d(p,l){try{let m=await l;return await n.take(p),{status:"complete",...m}}catch(m){if(Gi(m))return{status:"pending"};throw await n.take(p),m}}return{connectableIds:a,async start(p,l,m){let g=()=>new w("BAD_REQUEST",`provider must be one of ${a().join(", ")}`);if(!s(p))throw g();let h=e.providers[p];if(h===void 0)throw g();let f;if(m!==void 0){if(typeof m!=="string"||m.trim().length===0)throw new w("BAD_REQUEST","invalid credential for reconnect");let I=m.trim(),re=await e.store.credentials.get(I);if(re===null||re.provider!==p||re.authType!=="oauth")throw new w("BAD_REQUEST","invalid credential for reconnect");f=I}let y=typeof l==="string"&&l.trim().length>0?l.trim():p,_=i(p),b={http:e.http,now:e.now},k=await h.start({redirectUri:_},b),E=h.kind==="device"?await h.begin({deviceId:DP(h,k)},b):k;return{flowId:await n.put({provider:p,label:y,pending:E.pending,...f===void 0?{}:{credentialId:f},...E.userCode===void 0?{}:{userCode:E.userCode}}),authorizeUrl:E.authorizeUrl,userCode:E.userCode??null,kind:h.kind,supportsManualPaste:h.supportsManualPaste,pollIntervalMs:(E.pending.interval??5)*1000}},async finish(p,l){if(typeof p!=="string"||typeof l!=="string")throw new w("BAD_REQUEST","flowId and code are required");let m=await n.take(p);if(m===null)throw new w("BAD_REQUEST","unknown or expired authorization");return u(m,c(m,l))},async poll(p){if(typeof p!=="string")throw new w("BAD_REQUEST","flowId is required");let l=r.get(p);if(l!==void 0)return d(p,l);let m=(async()=>{let g=await n.peek(p);if(g===null)throw new w("BAD_REQUEST","unknown or expired authorization");return u(g,"")})().finally(()=>{r.delete(p)});return r.set(p,m),d(p,m)}}}function V(e,t){let n=e.safeParse(t);if(n.success)return n.data;let r=n.error.issues[0],o=r?.path??[],i=o.length===0?"(root)":o.map((a)=>on(String(a))).join("."),s=r===void 0?"invalid request":r.code==="unrecognized_keys"?`unrecognized key "${on(r.keys[0])}"`:r.message;throw new w("BAD_REQUEST",`${i}: ${s}`)}function Pt(e,t){if(e===void 0)return t;if(typeof e==="string"&&e.trim().length===0)return t;let n=Number(e);return Number.isFinite(n)?n:t}var Un=K().regex(an,"must be a lowercase provider id"),Vc=ne({tools:Ue().default(!1),images:Ue().default(!1),reasoning:Ue().default(!1)}).strict(),UP=ne({provider:Un,endpointId:K().trim().min(1).optional(),model:K().min(1),tier:N().int().min(1),weight:N().positive(),costPerMTok:ne({input:N().min(0),output:N().min(0),cacheRead:N().min(0).optional(),cacheWrite5m:N().min(0).optional(),cacheWrite1h:N().min(0).optional()}),contextWindow:N().int().positive().optional(),maxOutputTokens:N().int().positive().optional(),credentialId:K().trim().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/,"credentialId must be an account id").optional(),capabilities:ne({tools:Ue(),images:Ue(),reasoning:Ue()})}).strict().refine((e)=>e.provider!=="custom"||e.endpointId!==void 0,{message:"custom targets require an endpointId",path:["endpointId"]}).refine((e)=>e.provider==="custom"||e.endpointId===void 0,{message:"endpointId is only meaningful for a custom target",path:["endpointId"]}),Qc=ne({id:K().min(1),strategy:St(["score","priority","roundRobin","weighted"]),isAlias:Ue(),targets:Sn(UP).min(1,"a virtual model needs at least one target")}),Fb=8640000000000000,Bb=K().trim().min(1).max(uy),Yc=ne({label:K().min(1).default("api key"),modelAllowlist:Sn(K().min(1)).nullable().default(null),limits:lr.default({}),bodyLoggingOptOut:Ue().default(!1),expiresAt:N().int().positive().max(Fb).nullable().default(null),guardrailPolicy:Bb.nullable().default(null)}).strict(),zb=ne({limits:lr}).strict(),qb=ne({modelAllowlist:Sn(K().min(1)).nullable()}).strict(),Hb=ne({expiresAt:N().int().positive().max(Fb).nullable()}).strict(),Wb=ne({policy:Bb.nullable()}).strict(),Fr=ne({keepLatest:N().int().min(1).max(100),maxAgeDays:N().int().min(1).max(3650)}).strict(),Jc=ne({weights:ne({tier:N(),health:N(),quota:N(),cost:N(),latency:N(),load:N()}).strict(),maxAttempts:N().int().min(1).max(10),requestDeadlineMs:N().int().min(0),breakerThreshold:N().int().min(1),breakerCooldownMs:N().int().positive(),logRetentionDays:N().int().min(1),bodyRetentionDays:Fr.shape.maxAgeDays.optional(),quotaPollIntervalMs:N().int().min(0),rtkEnabled:Ue(),autoCacheEnabled:Ue(),ponytailMode:St(lu),bodyLoggingEnabled:Ue(),bodyLoggingCaptureStreamChunks:Ue(),snapshotKeepLatest:Fr.shape.keepLatest.optional(),snapshotMaxAgeDays:Fr.shape.maxAgeDays.optional(),guardrailModel:K().trim().min(1).max(256).nullable().optional(),guardrailTimeoutMs:N().int().min(1).max(mu).optional(),guardrailHistoryTurns:N().int().min(1).max(fu).optional()}),ed=ne({label:K().min(1).optional(),enabled:Ue().optional(),tier:N().int().min(1).optional(),weight:N().positive().optional()}).strict(),MP=WR("kind",[ne({kind:hh("one"),credentialId:K().trim().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/,"credentialId must be an account id")}).strict(),ne({kind:hh("all")}).strict()]),jb=(e)=>K().trim().min(1,e).max(64,e).regex(/^[A-Za-z0-9_-]+$/,e),td=jb("credentialId must be an account id"),Kb=jb("apiKeyId must be a key id"),$P=ne({credentialId:td,creditId:K().min(1).max(128).regex(/^[A-Za-z0-9_-]+$/).optional()}).strict(),gs=St(["credential","model","requestedModel","apiKey","provider","hour","day"]),nd=St(["raw","daily"]),FP={raw:new Set(["credential","model","requestedModel","apiKey","provider","hour"]),daily:new Set(["credential","model","requestedModel","apiKey","provider","day"])};function hs(e,t){if(FP[e].has(t))return t;throw new w("BAD_REQUEST",`usage grain "${e}" cannot group by "${t}"`)}var rd="omnigateway.service",Gb=500,BP=200;function od(e){let t=e.logFile?.trim();if(t!==void 0&&t.length>0)return{kind:"file",path:t};if(e.unitInstalled)return{kind:"journal",unit:rd,scope:e.scope};return{kind:"none"}}function id(e){let t=Pt(e,BP);return Math.floor(Math.min(Math.max(1,t),Gb))}function zP(e,t){if(t.since!==void 0&&(e.at===null||e.at<=t.since))return!1;if(t.level===void 0||e.level===null)return!0;return Zo[e.level]>=Zo[t.level]}var qP=20,HP=5000;function WP(e){return e.level!==void 0||e.since!==void 0?Math.min(e.lines*qP,HP):e.lines}async function jP(e,t,n){if(t.kind==="none")return"";if(t.kind==="file")return e.readFile(t.path,n)??"";let r=t.scope==="system"?["-u",t.unit]:[`--user-unit=${t.unit}`],o=await e.run(["journalctl",...r,"-n",String(n),"--no-pager","--output=cat"]);return o.code===0?o.stdout:""}function Zb(e,t){let n=id(t.lines);return e.split(`
|
|
1673
|
-
`).filter((r)=>r.trim().length>0).map($h).filter((r)=>zP(r,t)).slice(-n)}async function Mn(e,t,n){let r={...n,lines:id(n.lines)},o=await jP(e,t,WP(r)),i=Zb(o,r);return t.kind==="file"?{source:"file",path:t.path,lines:i}:{source:t.kind,lines:i}}var KP=1000,Xb=["request bodies (the artifact corpus stays with the source; body rows are not written)","usage_daily older than the retained request logs (rebuilt from the rows that are carried)","quota readings and credential health (re-probed and re-measured within one poll interval)","sessions and pending OAuth flows (ephemeral; every operator logs in again)","plugin_* tables (their SQL is the source dialect's; carry them by hand)"];async function sd(e,t){let[n,r,o,i]=await Promise.all([t.keys.list(),t.config.listModels(),t.credentials.list(),t.config.getAdminPasswordHash()]);if(n.length>0||r.length>0||o.length>0||i!==null)throw new w("CONFLICT","the target already holds data; copy into an empty store");let s=await e.keys.list();for(let p of s)if(p.limits===null)throw new w("BAD_REQUEST",`api key ${p.id} has unreadable limits; repair it first`);let a={credentials:0,apiKeys:0,models:0,requestLogs:0,skippedPending:0},c=await e.config.getSettings();await t.config.putSettings(c);let u=await e.config.getAdminPasswordHash();if(u!==null)await t.config.setAdminPasswordHash(u);await t.config.setViewerPasswordHash(await e.config.getViewerPasswordHash());for(let p of await e.credentials.list()){let l=await p.secrets(),{secrets:m,openForInference:g,openForRefresh:h,openForUsage:f,createdAt:y,updatedAt:_,hasRefreshToken:b,tokenVersion:k,...E}=p;await t.credentials.create({...E,...l}),a.credentials+=1}for(let p of await e.config.listModels())await t.config.putModel(p),a.models+=1;for(let p of s)await t.keys.importRow(p),a.apiKeys+=1;let d=null;for(;;){let p=await e.usage.scan(d,KP);if(p.length===0)break;for(let m of p){if(m.state!=="done"){a.skippedPending+=1;continue}await t.usage.append(m),a.requestLogs+=1}let l=p[p.length-1];if(l===void 0)break;d={at:l.at,id:l.id}}return await t.usage.rebuildRollup(),{counts:a,notCarried:Xb}}function at(e,t){return e+"::"+t}async function Br(e,t){let[n,r,o,i,s]=await Promise.all([e.credentials.listRouting(),e.credentials.listHealth(),e.credentials.listQuota(),e.config.listModels(),e.config.getSettings()]),a=new Map(r.map((u)=>[at(u.credentialId,u.model),u])),c=new Map;for(let u of o){let d=c.get(u.credentialId);if(d===void 0)c.set(u.credentialId,[u]);else d.push(u)}return{credentials:n,health:a,quota:c,models:new Map(i.map((u)=>[u.id,u])),settings:s,builtAt:t}}function GP(e){let t=new Set;for(let n of e.tools??[])if(n.kind==="provider")t.add(n.provider);for(let n of e.system??[])if(n.type==="providerNative")t.add(n.provider);for(let n of e.messages)for(let r of n.content){if(r.type==="providerNative")t.add(r.provider);if(r.type==="toolResult")for(let o of r.native??[])t.add(o.provider)}return t}function Vb(e){let t=(r)=>r.some((o)=>o.type==="image"||o.type==="toolResult"&&(o.images!==void 0||o.files!==void 0)),n=t(e.system??[])||e.messages.some((r)=>t(r.content));return{tools:(e.tools?.length??0)>0,images:n,reasoning:e.reasoning!==void 0&&e.reasoning.mode!=="off"&&e.reasoning.mode!=="betweenTools"}}function ZP(e,t,n){let r=Math.max(0,e-t);return Math.min(n*2**r,3600000)}function ad(e){let{request:t,model:n,snapshot:r,now:o}=e,i=e.providers??M,{breakerThreshold:s,breakerCooldownMs:a}=r.settings,c=Vb(t),u=GP(t),d=[],p=[];for(let l of n.targets){if(!Object.hasOwn(i,l.provider)){p.push({kind:"target",credentialId:"",model:l.model,reason:"provider:missing"});continue}let m=u.size>1||u.size===1&&!u.has(l.provider)?"providerNative":["tools","images","reasoning"].find((_)=>c[_]&&!l.capabilities[_]),g=m==="providerNative"?"target":"account",h=!1,f=!1,y=!1;for(let _ of r.credentials){if(_.provider===l.provider)f=!0;if(!pu(l,_))continue;y=!0,h=l.credentialId!==void 0;let b=(I,re="account")=>{p.push({kind:re,credentialId:_.id,model:l.model,reason:I})};if(m!==void 0){b(`capability:${m}`,g);continue}if(!_.enabled){b("disabled");continue}if(ri(_,o)){b("expired");continue}let k=!1,E=r.health.get(at(_.id,l.model));if(E!==void 0){if(E.rateLimitedUntil!==null&&E.rateLimitedUntil>o){b("rateLimited");continue}if(E.breakerState==="open"){if(o-(E.openedAt??o)<ZP(E.consecutiveFailures,s,a)){b("breaker:open");continue}k=!0}else if(E.breakerState==="halfOpen")k=!0}let T=(r.quota.get(_.id)??[]).find((I)=>I.limit!==null&&I.used>=I.limit&&(I.resetsAt===null||I.resetsAt>o));if(T!==void 0){b(`quota:${T.windowType}`);continue}d.push({credential:_,target:l,probe:k})}if(l.credentialId===void 0&&f&&!y)p.push({kind:"target",credentialId:"",model:l.model,reason:"endpoint:unmatched"});if(l.credentialId!==void 0&&!h)p.push({kind:"account",credentialId:l.credentialId,model:l.model,reason:"pin:missing"})}return{pairs:d,excluded:p}}var Qb=0.5,ud=0.1;function zr(e){return Math.max(e,60000)*3}function XP(e,t){let n=e.limit;if(n===null||n<=0)return 1;let r=Math.max(0,Math.min(1,1-e.used/n));if(e.resetsAt===null)return r;let o=ti(e.windowType,e.windowMs),i=Math.max(0.05,Math.min(1,(e.resetsAt-t)/o));return Math.max(0,Math.min(1,r/i))}function qr(e,t,n,r){let o=zr(r),i=t.filter((s)=>s.limit!==null&&s.limit>0&&s.observedAt>0&&n-s.observedAt<=o&&!_r(s,n));if(i.length===0)return e.authType==="apiKey"?1:Qb;return Math.min(...i.map((s)=>XP(s,n)))}var Yb=0.5;function VP(e,t,n){if(n===t)return 1;return(n-e)/(n-t)}function Jb(e,t){return Math.min(1,t/e)}function ek(e){let t=e.filter((n)=>n>0);return t.length>0?Math.min(...t):null}var tk=1000;function QP(e){let t=Qo(e),n=Math.max(0,qh(e)-t),r=Math.min(e.maxTokens??tk,tk);return{cachedTok:t,freshTok:n,outTok:r}}function YP(e,{cachedTok:t,freshTok:n,outTok:r}){return n*e.costPerMTok.input+t*ay(e.costPerMTok)+r*e.costPerMTok.output}function cd(e){let t=1/(1+(e?.consecutiveFailures??0));return e?.breakerState==="open"||e?.breakerState==="halfOpen"?t*0.5:t}function nk(e,t){let{snapshot:n,now:r,load:o,recent:i}=t,s=n.settings.weights,a=e.map((h)=>h.target.tier),c=Math.min(...a),u=Math.max(...a),d=QP(t.request),p=e.map((h)=>YP(h.target,d)),l=ek(p),m=(h)=>i?.get(h)?.ewmaTtftMs??null,g=ek(e.flatMap((h)=>{let f=m(at(h.credential.id,h.target.model));return f===null?[]:[f]}));return e.map((h,f)=>{let y=at(h.credential.id,h.target.model),_=n.health.get(y),b=VP(h.target.tier,c,u),E=1/(1+(o.get(y)??0)),T=cd(_),I=qr(h.credential,n.quota.get(h.credential.id)??[],r,n.settings.quotaPollIntervalMs),re=p[f],Qe=re<=0||l===null?Yb:Jb(re,l),W=m(y),qe=W===null||W<=0||g===null?Yb:Jb(W,g),Lt={tier:b,health:T,quota:I,cost:Qe,latency:qe,load:E},Vs=b*s.tier+T*s.health+I*s.quota+Qe*s.cost+qe*s.latency+E*s.load;return{credential:h.credential,target:h.target,probe:h.probe,score:Vs*h.credential.weight*h.target.weight,reasons:Lt}})}function JP(e){return Object.entries(e).flatMap(([t,n])=>n.modelPrefixes.map((r)=>[r,t,n])).sort(([t],[n])=>n.length-t.length)}function rk(e,t,n){let r=Bi(n.catalog,t),o=Ir(n.catalog,t),i={provider:e,model:t,tier:1,weight:1,costPerMTok:r===null?{input:0,output:0}:{input:r.input,output:r.output,cacheRead:r.cacheRead,cacheWrite5m:r.cacheWrite5m,cacheWrite1h:r.cacheWrite1h},...o===null?{}:{contextWindow:o.contextWindow,maxOutputTokens:o.maxOutputTokens},capabilities:n.capabilities};return{id:`${e}/${t}`,targets:[i],strategy:"score",isAlias:!0}}function dd(e,t,n=M){let r=t.models.get(e);if(r!==void 0)return r;let o=e.search(/[/:]/);if(o>0){let i=e.slice(0,o),s=e.slice(o+1),a=Object.hasOwn(n,i)?n[i]:void 0;if(a!==void 0&&i!=="custom"&&s.length>0)return rk(i,s,a);throw new w("NO_CANDIDATES",`unknown provider "${on(i)}" in model "${on(e)}"`)}for(let[i,s,a]of JP(n))if(e.startsWith(i))return rk(s,e,a);throw new w("NO_CANDIDATES",`model "${on(e)}" is not a configured virtual model and its provider could not be inferred`)}function eI(e,t,n,r){let o=(d)=>d.credential.weight*d.target.weight*n(d)*r(d),i=e.reduce((d,p)=>d+o(p),0);if(i<=0)return[...e].sort((d,p)=>p.score-d.score);let s=t*i,a=e.length-1;for(let d=0;d<e.length;d++)if(s-=o(e[d]),s<0){a=d;break}let c=e[a],u=e.filter((d,p)=>p!==a).sort((d,p)=>p.score-d.score);return[c,...u]}function ok(e){let{pairs:t,excluded:n}=ad(e);if(t.length===0)return{candidates:[],excluded:n};let r=nk(t,e),o=(a)=>qr(a.credential,e.snapshot.quota.get(a.credential.id)??[],e.now,e.snapshot.settings.quotaPollIntervalMs),i=(a)=>cd(e.snapshot.health.get(at(a.credential.id,a.target.model))),s=(a)=>e.load.get(at(a.credential.id,a.target.model))??0;switch(e.model.strategy){case"priority":r.sort((a,c)=>a.target.tier-c.target.tier||c.score-a.score);break;case"roundRobin":{let a=(u)=>{let d=e.recent?.get(at(u.credential.id,u.target.model))?.lastReleasedAt;return d===void 0?Number.POSITIVE_INFINITY:e.now-d},c=(u)=>o(u)<ud?1:0;r.sort((u,d)=>c(u)-c(d)||s(u)-s(d)||a(d)-a(u));break}case"weighted":return{candidates:eI(r,e.rand,o,i),excluded:n};case"score":r.sort((a,c)=>c.score-a.score);break}return{candidates:r,excluded:n}}var ik=3600000;function ys(e){if(e.resetsAt===null)return null;return e.resetsAt-ti(e.windowType,e.windowMs)}var ld=(e)=>({credentialId:e.credentialId,windowType:e.windowType,windowStartsAt:null,ratePerHour:null,exhaustsAt:null,survives:null,stale:!0});function pd(e,t){if(e.observedAt<=0)return ld(e);if(t.now-e.observedAt>zr(t.pollIntervalMs))return ld(e);if(_r(e,t.now))return{...ld(e),windowStartsAt:ys(e)};let n=ys(e),r=n===null?null:e.observedAt-n,o=r===null?null:r/ik,i=o===null?null:o<=0||e.used===0?0:e.used/o,s=e.limit===null||e.limit<=0||i===null||i<=0?null:e.observedAt+Math.max(0,e.limit-e.used)/i*ik;return{credentialId:e.credentialId,windowType:e.windowType,windowStartsAt:n,ratePerHour:i,exhaustsAt:s,survives:s===null||e.resetsAt===null||s>=e.resetsAt,stale:!1}}function Hr(e,t){return e.map((n)=>pd(n,t))}function md(e){return{id:e.id,provider:e.provider,label:e.label,authType:e.authType,enabled:e.enabled,tier:e.tier,weight:e.weight,expiresAt:e.expiresAt,accountEmail:e.accountEmail,providerData:e.providerData,disabledReason:e.disabledReason,disabledAt:e.disabledAt,hasRefreshToken:e.hasRefreshToken,tokenVersion:e.tokenVersion,createdAt:e.createdAt,updatedAt:e.updatedAt}}async function Ve(e){return(await e.credentials.list()).map(md)}async function ws(e,t){let n=await e.credentials.get(t);if(n===null)throw new w("BAD_REQUEST","no such credential");return md(n)}function _s(e,t){if(typeof e!=="string"||e.trim().length===0)throw new w("BAD_REQUEST",`${t}: must not be empty`);return e.trim()}function tI(e){let t=_s(e.endpointId,"endpointId"),n=_s(e.endpointLabel,"endpointLabel"),r=_s(e.origin,"origin");if(e.protocol!=="chat_completions"&&e.protocol!=="responses")throw new w("BAD_REQUEST","protocol: unsupported protocol");let o;try{o=new URL(r)}catch{throw new w("BAD_REQUEST","origin: must be a valid URL")}if(o.protocol!=="http:"&&o.protocol!=="https:"||o.hostname.length===0||o.username.length>0||o.password.length>0||o.search.length>0||o.hash.length>0)throw new w("BAD_REQUEST","origin: must be an HTTP(S) server origin");let i=o.pathname.replace(/\/+$/,"");return{endpointId:t,endpointLabel:n,origin:o.origin,basePath:i,protocol:e.protocol}}function nI(e,t){let n=typeof e.basePath==="string"?e.basePath:"";return e.endpointId===t.endpointId&&e.endpointLabel===t.endpointLabel&&e.origin===t.origin&&n===t.basePath&&e.protocol===t.protocol}async function fd(e,t,n=se,r=Zc){let o=V(Un,t.provider);if(!r(o))throw new w("BAD_REQUEST",`provider: no provider named "${o}"`);let i=_s(t.apiKey,"apiKey");if(t.label!==void 0&&typeof t.label!=="string")throw new w("BAD_REQUEST","label: must be a string");let s={};if(o==="custom"){let u=tI(t);if((await e.credentials.list()).filter((p)=>p.provider==="custom"&&p.providerData.endpointId===u.endpointId).some((p)=>!nI(p.providerData,u)))throw new w("CONFLICT","endpointId: metadata conflicts with existing endpoint");s=u}let a=t.label?.trim()||`${o} api key`,c=await e.credentials.create({id:crypto.randomUUID(),provider:o,label:a,authType:"apiKey",enabled:!0,tier:1,weight:1,expiresAt:null,accountEmail:null,providerData:s,disabledReason:null,disabledAt:null,accessToken:null,refreshToken:null,apiKey:i,idToken:null});return n.info("credential added",{credentialId:c.id,provider:c.provider}),md(c)}async function gd(e,t){let n=await e.store.credentials.get(t);if(n===null)throw new w("BAD_REQUEST","no such credential");if(n.authType!=="oauth")throw new w("BAD_REQUEST",`credential "${t}" is an api key and has nothing to refresh`);return await e.refresh(n),ws(e.store,t)}async function hd(e){let[t,n,r,o]=await Promise.all([e.store.credentials.listHealth(),e.store.credentials.listQuota(),e.store.config.getSettings(),e.store.credentials.list()]),i={};for(let a of o){let c=await e.store.usage.lastUsedByCredential(a.id);if(c!==null)i[a.id]=c}let s=Hr(n,{now:e.now(),pollIntervalMs:r.quotaPollIntervalMs});return{health:t,quota:n,burn:s,lastUsed:i}}async function Wr(e,t){let[n,r,o]=await Promise.all([Ve(e),e.credentials.listQuota(),Tr(e,{now:t.now,sessionTtlMs:0}).isConfigured()]),i=new Map;for(let s of r){let a=i.get(s.credentialId);if(a===void 0)i.set(s.credentialId,[s]);else a.push(s)}return{adminConfigured:o,credentials:n.map(({id:s,provider:a,label:c,enabled:u})=>({id:s,provider:a,label:c,enabled:u,quota:i.get(s)??[]}))}}async function bs(e,t,n){let r=V(ed,n),o=await e.store.credentials.get(t);if(o===null)throw new w("BAD_REQUEST","no such credential");if(await e.store.credentials.update(t,{...r.label===void 0?{}:{label:r.label},...r.enabled===void 0?{}:{enabled:r.enabled,disabledReason:r.enabled?null:"manual",disabledAt:r.enabled?null:e.now()},...r.tier===void 0?{}:{tier:r.tier},...r.weight===void 0?{}:{weight:r.weight}}),r.enabled!==void 0&&r.enabled!==o.enabled)(e.logger??se).info(r.enabled?"credential enabled":"credential disabled",{credentialId:t,provider:o.provider})}async function yd(e,t){await e.credentials.remove(t)}import{basename as XG,dirname as Es,join as vs,resolve as sk}from"path";var ks=null;async function Ts(e,t){if(ks!==null)throw new w("CONFLICT",`${ks} is already running on this database`);ks=e;try{return await t()}finally{ks=null}}var ak="snapshots";function pn(e){return vs(Es(e.store.databasePath),ak)}function rI(e,t){return`db_${new Date(e).toISOString().replaceAll(":","-").replaceAll(".","-")}_${t}.sqlite`}var oI=/^db_(\d{4}-\d{2}-\d{2})T(\d{2})-(\d{2})-(\d{2})-(\d{3})Z_([A-Za-z]+)\.sqlite$/;function uk(e){let t=oI.exec(e);if(t===null)return null;let[,n,r,o,i,s,a]=t,c=Date.parse(`${n}T${r}:${o}:${i}.${s}Z`);if(Number.isNaN(c)||a===void 0)return null;return{at:c,reason:a}}function ck(e,t){let n=sk(pn(e)),r=sk(n,t);if(uk(t)===null||Es(r)!==n)throw new w("BAD_REQUEST","invalid snapshot id");let o=e.fs.realpath(r);if(o!==null&&Es(o)!==(e.fs.realpath(n)??n))throw new w("BAD_REQUEST","invalid snapshot id");return r}function jr(e){let t=pn(e),n=[];for(let r of e.fs.readdir(t)){let o=uk(r);if(o===null)continue;n.push({id:r,filename:r,createdAt:o.at,sizeBytes:e.fs.stat(vs(t,r))?.size??0,reason:o.reason})}return n.sort((r,o)=>o.createdAt-r.createdAt)}var iI=86400000,dk=1.1;function lk(e){return{keepLatest:e.snapshotKeepLatest,maxAgeDays:e.snapshotMaxAgeDays}}function sI(e,t,n){let r=pn(e),o=n-t.maxAgeDays*iI,i=jr(e),s=i.find((c)=>c.reason==="preRestore")?.id,a=0;return i.forEach((c,u)=>{if(u===0)return;if(c.id===s)return;if(u<t.keepLatest&&c.createdAt>=o)return;e.fs.unlink(vs(r,c.id)),a++}),a}async function pk(e,t){let n=pn(e),r=e.now(),o=rI(r,t.reason),i=vs(n,o);if(e.fs.mkdir(n),e.fs.stat(i)!==null)throw new w("CONFLICT","a snapshot for this instant already exists");let s=e.fs.freeBytes(n),a=Math.ceil((e.fs.stat(e.store.databasePath)?.size??0)*dk);if(s!==null&&s<a)throw new w("CONFLICT","not enough free disk space to write a snapshot");try{await e.store.maintenance.snapshotTo(i)}catch(u){throw e.fs.unlink(i),u}let c={id:o,filename:o,createdAt:r,sizeBytes:e.fs.stat(i)?.size??0,reason:t.reason};if(t.force!==!0)sI(e,lk(await e.store.config.getSettings()),r);return c}async function _d(e,t){return Ts("a snapshot",()=>pk(e,t))}class wd extends Error{preRestoreSnapshotId;cause;reopened;constructor(e,t,n){super("the database swap failed and the database may be incomplete");this.preRestoreSnapshotId=e;this.cause=t;this.reopened=n;this.name="SwapFailedError"}}var aI=5;function uI(e){if(e.length===0)return"it has no tables at all";let t=e.slice(0,aI),n=e.length-t.length;return`it has ${t.join(", ")}${n>0?` and ${n} more`:""}`}async function mk(e,t){let n=await e.store.maintenance.inspect(t);if(!n.ok)throw new w("BAD_REQUEST",n.quickCheck==="ok"?`that file is a database, but not one of ours: ${uI(n.tables)}`:`that file failed its integrity check: ${n.quickCheck}`);return n}async function cI(e,t){let n=await mk(e,t.path),r=await pk(e,{reason:"preRestore",force:!0}),o=await e.store.config.getAdminPasswordHash(),i=await e.store.config.getViewerPasswordHash(),s=e.store.databasePath,a=`${s}.incoming`;try{if(t.consume)e.fs.rename(t.path,a);else e.fs.copyFile(t.path,a)}catch(d){throw e.fs.unlink(a),d}try{e.store.close(),e.fs.unlink(`${s}-wal`),e.fs.unlink(`${s}-shm`),e.fs.rename(a,s),await e.store.reopen()}catch(d){let p=!0;try{await e.store.reopen()}catch{p=!1}throw new wd(r.id,d,p)}let c=await e.store.config.getAdminPasswordHash(),u=await e.store.config.getViewerPasswordHash();try{await e.store.usage.rebuildRollup()}catch(d){(e.logger??se).warn("usage rollup not rebuilt after the swap; run omni doctor",{reason:H(d,"unknown")})}try{await e.reapplyPluginSchema?.()}catch(d){(e.logger??se).warn("plugin schema not reapplied after the swap; restart",{reason:H(d,"unknown")})}return{ok:!0,counts:n.counts,preRestoreSnapshot:r,adminPasswordChanged:c!==o,viewerPasswordChanged:u!==i}}async function bd(e,t){let n=ck(e,t);if(e.fs.stat(n)===null)throw new w("BAD_REQUEST","no such snapshot");return Ts("a restore preview",async()=>{let r=await mk(e,n),o=await e.store.maintenance.inspect(e.store.databasePath);return{snapshot:r.counts,live:o.ok?o.counts:null}})}async function kd(e,t){let n=ck(e,t);if(e.fs.stat(n)===null)throw new w("BAD_REQUEST","no such snapshot");return Ts("a restore",()=>cI(e,{path:n,consume:!1}))}async function Ed(e){let t=await e.store.bodies.prune(e.now()),n=await e.store.bodies.sweepOrphans();return{removed:t,orphans:n}}async function vd(e){return Ts("a vacuum",async()=>{let t=e.fs.stat(e.store.databasePath)?.size??0,n=e.now();await e.store.maintenance.vacuum();let r=e.fs.stat(e.store.databasePath)?.size??0;return{reclaimedBytes:Math.max(0,t-r),durationMs:Math.max(0,e.now()-n)}})}async function Td(e){let t=e.store.databasePath,[n,r,o]=await Promise.all([e.store.maintenance.stats(),e.store.maintenance.tables(),e.store.config.getSettings()]),i={engine:e.store.engine,location:t,stats:n,logicalBytes:n.pageSize*n.pageCount,freePageBytes:n.pageSize*n.freelistCount,retention:lk(o),tables:r};if(e.store.engine==="postgres")return{...i,fileBytes:0,walBytes:0,bodiesBytes:r.find((a)=>a.name==="request_bodies")?.bytes??0,freeDiskBytes:null,snapshots:{count:0,totalBytes:0,latestAt:null}};let s=jr(e);return{...i,fileBytes:e.fs.stat(t)?.size??0,walBytes:e.fs.stat(`${t}-wal`)?.size??0,bodiesBytes:e.fs.dirBytes(yr(t)),freeDiskBytes:e.fs.freeBytes(Es(t)),snapshots:{count:s.length,totalBytes:s.reduce((a,c)=>a+c.sizeBytes,0),latestAt:s[0]?.createdAt??null}}}async function Rd(e,t,n){let r=V(Vc,n),o=e.now(),i=await Br(e.store,o),s=i.models.get(t);if(s===void 0)throw new w("MODEL_UNAVAILABLE",`no virtual model "${t}"`);let a={model:t,messages:[{role:"user",content:r.images?[{type:"image",mediaType:"image/png",data:""}]:[{type:"text",text:""}]}],stream:!1,...r.tools?{tools:[{kind:"portable",name:"probe",description:"",inputSchema:{type:"object"}}]}:{},...r.reasoning?{reasoning:{mode:"adaptive"}}:{}},c=ok({request:a,model:s,snapshot:i,now:o,rand:0,load:new Map,...e.providers===void 0?{}:{providers:e.providers}});return{modelId:s.id,strategy:s.strategy,deterministic:s.strategy!=="weighted",rankedAt:o,candidates:c.candidates.map((u)=>({credentialId:u.credential.id,credentialLabel:u.credential.label,provider:u.credential.provider,model:u.target.model,tier:u.target.tier,score:u.score,reasons:u.reasons})),excluded:c.excluded.map((u)=>({credentialId:u.credentialId,model:u.model,reason:u.reason}))}}async function Sd(e,t,n=Date.now()){let r=(await e.keys.list()).filter((s)=>s.revokedAt===null&&s.guardrailPolicy!==null).length,o=await Br(e,n),i=o.settings.guardrailModel;if(r===0)return{keysWithPolicy:r,model:i,problem:null};if(i===null)return{keysWithPolicy:r,model:i,problem:"unconfigured"};try{return dd(i,o,t),{keysWithPolicy:r,model:i,problem:null}}catch{return{keysWithPolicy:r,model:i,problem:"unresolved"}}}function dI(e){let t=new Set;for(let n of["requests","tokens","spend"]){let r=e[n];if(r===void 0)continue;for(let o of xn){let i=r[o];if(i!==void 0&&i!==null)t.add(o)}}return[...t]}async function lI(e,t,n,r){if(n===null)return[];let o=await fk(e,t,n,null,r);for(let i of Object.keys(n.models??{})){let s=Qa(n,i);if(s===void 0)continue;o.push(...await fk(e,t,s,i,r))}return o}async function fk(e,t,n,r,o){let i=new Map;for(let a of dI(n)){let c=o-Uo[a];i.set(a,await e.usage.sumSince(t,c,r??void 0))}let s=[];for(let a of["requests","tokens","spend"]){let c=n[a];if(c===void 0)continue;for(let u of xn){let d=c[u];if(d===void 0||d===null)continue;let p=i.get(u),l=p===void 0?null:a==="requests"?p.requests:a==="tokens"?p.tokens:p.costUsd;s.push({dimension:a,window:u,limit:d,used:l,model:r})}}if(n.concurrency!==void 0&&n.concurrency!==null)s.push({dimension:"concurrency",window:null,limit:n.concurrency,used:null,model:r});return s}async function Kr(e,t,n){return{id:t.id,label:t.label,prefix:t.prefix,modelAllowlist:t.modelAllowlist,limits:t.limits,limitUsage:await lI(e,t.id,t.limits,n),bodyLoggingOptOut:t.bodyLoggingOptOut,createdAt:t.createdAt,revokedAt:t.revokedAt,expiresAt:t.expiresAt,guardrailPolicy:t.guardrailPolicy}}async function jt(e,t=Date.now()){let n=await e.keys.list();return Promise.all(n.map((r)=>Kr(e,r,t)))}async function xd(e,t){let n=V(Yc,t),r=Au(),o=await e.keys.create({id:crypto.randomUUID(),label:n.label,prefix:r.slice(0,12),hash:await vr(r),modelAllowlist:n.modelAllowlist,limits:n.limits,bodyLoggingOptOut:n.bodyLoggingOptOut,expiresAt:n.expiresAt,guardrailPolicy:n.guardrailPolicy});return{id:o.id,label:o.label,prefix:o.prefix,key:r}}async function Ad(e,t,n,r=Date.now()){let o=V(zb,n),i=await e.keys.get(t);if(i===null)throw new w("BAD_REQUEST","no such api key");return await e.keys.setLimits(t,o.limits),Kr(e,{...i,limits:o.limits},r)}async function Cd(e,t,n,r=Date.now()){let o=V(qb,n),i=await e.keys.get(t);if(i===null)throw new w("BAD_REQUEST","no such api key");return await e.keys.setModelAllowlist(t,o.modelAllowlist),Kr(e,{...i,modelAllowlist:o.modelAllowlist},r)}async function Od(e,t,n,r=Date.now()){let o=V(Hb,n),i=await e.keys.get(t);if(i===null)throw new w("BAD_REQUEST","no such api key");return await e.keys.setExpiry(t,o.expiresAt),Kr(e,{...i,expiresAt:o.expiresAt},r)}async function Pd(e,t,n,r=Date.now()){let o=V(Wb,n),i=await e.keys.get(t);if(i===null)throw new w("BAD_REQUEST","no such api key");return await e.keys.setGuardrailPolicy(t,o.policy),Kr(e,{...i,guardrailPolicy:o.policy},r)}async function Id(e,t){await e.keys.revoke(t)}var $n={kind:"all"};function Gr(e){return e.kind==="key"?e.apiKeyId:void 0}function Fn(e){return e.kind==="none"||e.kind==="key"&&e.apiKeyId===""}var gk=500,pI=100;async function Ld(e,t,n=$n){let r=V(nd,t.grain??"raw"),o=hs(r,V(gs,t.groupBy??"model")),i=t.splitBy===void 0?void 0:hs(r,V(gs,t.splitBy));if(n.kind!=="all"){for(let u of[o,i])if(u==="credential")throw new w("BAD_REQUEST","this dimension is not available on this surface");if(t.credentialId!==void 0||t.apiKeyId!==void 0)throw new w("BAD_REQUEST","this filter is not available on this surface")}let s=t.credentialId===void 0?void 0:V(td,t.credentialId),a=t.apiKeyId===void 0?void 0:V(Kb,t.apiKeyId);if(Fn(n))return[];let c=n.kind==="all"?a:Gr(n);return e.store.usage.aggregate({grain:r,groupBy:o,...i===void 0?{}:{splitBy:i},...c===void 0?{}:{apiKeyId:c},...s===void 0?{}:{credentialId:s},since:Pt(t.since,0),until:Pt(t.until,e.now())})}function Nd(e){let t=Pt(e,pI);return Math.floor(Math.min(Math.max(1,t),gk))}var _k=1,wk=128,mI=256,hk=K().min(1).max(wk),Rs=K().min(1).max(mI),yk=Xa([N(),K().regex(/^-?\d+$/,"must be epoch milliseconds").transform(Number)]).pipe(N().int()),fI=ne({cursor:K().max(512).optional(),limit:Xa([K(),N()]).optional(),since:yk.optional(),until:yk.optional(),state:St(["pending","done"]).optional(),failed:St(["true","false"]).optional(),provider:Un.optional(),requestedModel:Rs.optional(),resolvedModel:Rs.optional(),model:Rs.optional(),credentialId:hk.optional(),apiKeyId:hk.optional(),errorCode:Rs.optional()}).strict();function gI(e){let t={};for(let[n,r]of Object.entries(e)){if(r===void 0||r==="")continue;t[n]=typeof r==="boolean"?String(r):r}return t}function Md(e){let t=JSON.stringify({v:_k,at:e.at,id:e.id});return Buffer.from(t,"utf8").toString("base64url")}function bk(e){let t=()=>{throw new w("BAD_REQUEST","cursor: malformed")},n;try{n=JSON.parse(Buffer.from(e,"base64url").toString("utf8"))}catch{return t()}if(typeof n!=="object"||n===null||Array.isArray(n))return t();let r=n;if(Object.keys(r).length!==3)return t();if(r.v!==_k)throw new w("BAD_REQUEST","cursor: unknown version");let{at:i,id:s}=r;if(typeof i!=="number"||!Number.isSafeInteger(i))return t();if(typeof s!=="string"||s.length===0||s.length>wk)return t();let a={at:i,id:s};if(Md(a)!==e)return t();return a}function kk(e,t){let n=V(fI,gI(e)),{since:r,until:o}=n;if(r!==void 0&&o!==void 0&&r>o)throw new w("BAD_REQUEST","since: must not be after until");let i=Gr(t);return{limit:Nd(n.limit),cursor:n.cursor===void 0?null:bk(n.cursor),...n.apiKeyId===void 0?{}:{apiKeyId:n.apiKeyId},...i===void 0?{}:{apiKeyId:i},...n.credentialId===void 0?{}:{credentialId:n.credentialId},...n.provider===void 0?{}:{provider:n.provider},...n.requestedModel===void 0?{}:{requestedModel:n.requestedModel},...n.resolvedModel===void 0?{}:{resolvedModel:n.resolvedModel},...n.model===void 0?{}:{model:n.model},...n.errorCode===void 0?{}:{errorCode:n.errorCode},...n.state===void 0?{}:{state:n.state},...n.failed==="true"?{failed:!0}:{},...r===void 0?{}:{since:r},...o===void 0?{}:{until:o}}}async function Ss(e,t={},n=$n){let r=kk(t,n);if(Fn(n))return{logs:[],nextCursor:null};let o=await e.usage.page(r);return{logs:o.logs,nextCursor:o.next===null?null:Md(o.next)}}var hI=500,Dd=["id","state","at","apiKeyId","requestedModel","resolvedProvider","resolvedModel","credentialId","attempts","status","errorCode","inputTokens","outputTokens","cacheReadTokens","cacheWriteTokens","ttftMs","durationMs","costUsd","degradations","rtkApplied","rtkFilterHits","rtkOriginalCodeUnits","rtkCompressedCodeUnits","rtkEstimatedTokensSaved","rtkFilters"];function Ek(e){if(e===null||e===void 0)return"";let t=Array.isArray(e)?JSON.stringify(e):String(e),n=t.trimStart().charAt(0),r="=+-@".includes(n)&&n!==""?`'${t}`:t;return/[",\r\n]/.test(r)?`"${r.replaceAll('"','""')}"`:r}var vk=(e)=>`${e.map(Ek).join(",")}\r
|
|
1672
|
+
`)})}let a={model:t,messages:i,stream:e.stream,stream_options:{include_usage:!0}};if(e.maxTokens!==void 0)a.max_tokens=e.maxTokens;if(e.temperature!==void 0)a.temperature=e.temperature;if(e.stopSequences!==void 0)a.stop=e.stopSequences;if(e.tools!==void 0){let d=e.tools.filter((p)=>p.kind==="portable");if(d.length!==e.tools.length)o("kimi:anthropic-tool-dropped");a.tools=d.map((p)=>({type:"function",function:{name:p.name,description:p.description,parameters:p.inputSchema}}))}if(e.toolChoice!==void 0)a.tool_choice=aP(e.toolChoice);if(e.reasoning?.mode==="betweenTools")o("kimi:reasoning-between-tools-as-off");if(e.reasoning!==void 0)o("kimi:reasoning-dropped");Object.assign(a,e.vendor?.[n]??{});let u=ot(e),c=u.kind==="readable"?u.format:void 0;if(c!==void 0&&a.response_format===void 0)a.response_format={type:"json_schema",json_schema:{name:c.name,schema:c.schema,strict:!0}},o("kimi:response-format-translated");else if(u.kind==="tooDeep")delete a.response_format,o("kimi:response-schema-too-deep");return{body:a,degradations:r}}var uP="https://api.kimi.com/coding/v1/chat/completions",Sb={buildRequest(e){let{body:t,degradations:n}=ds(e.request,e.model),r=e.credentials.accessToken??e.credentials.apiKey;if(r===null)throw e.fail("AUTH","kimi credential has no token");let o=[["Content-Type","application/json"],["Accept","text/event-stream"],["Authorization",`Bearer ${r}`],...$r(e.credentials.providerData)],i=fe(ge(Ct.headers,o),Ct.order);return{request:{url:uP,method:"POST",headers:i,body:JSON.stringify(Be({...t,stream:!0},Ui))},degradations:n}},decode({body:e}){return cs(_e(e))}};var Hc=de("kimi",xi.capabilities,Sb);var xb={rate_limit_exceeded:"RATE_LIMIT",insufficient_quota:"QUOTA_EXHAUSTED",invalid_api_key:"AUTH",server_error:"UPSTREAM",context_length_exceeded:"BAD_REQUEST",content_policy_violation:"CONTENT_FILTER"},cP=new Set(["keepalive","response.created","response.queued","response.in_progress","response.output_item.added","response.output_item.done","response.content_part.added","response.content_part.done","response.output_text.delta","response.output_text.done","response.output_text.annotation.added","response.refusal.delta","response.refusal.done","response.reasoning_summary_part.added","response.reasoning_summary_part.done","response.reasoning_summary_text.delta","response.reasoning_summary_text.done","response.reasoning_text.delta","response.reasoning_text.done","response.function_call_arguments.delta","response.function_call_arguments.done","response.completed","response.incomplete","response.failed","error"]);function dP(e){try{let t=JSON.parse(e);return typeof t==="object"&&t!==null?t:null}catch{return null}}async function*ls(e,t={}){let n=t.nativeReasoning===!0,r=new Map,o=0,i=(c,d=0)=>{let p=`${c}:${d}`,l=r.get(p);if(l!==void 0)return l;let m=o++;return r.set(p,m),m},s=!1,a=!1,u=new Set;for await(let c of e){if(c.data==="[DONE]")continue;if(!cP.has(c.event)){yield{type:"error",code:"UPSTREAM",message:`unrecognized muse stream event "${c.event}"`,retryable:!1};return}let d=dP(c.data);if(d===null)continue;switch(c.event){case"response.created":yield{type:"start",id:String(d.response?.id??""),model:String(d.response?.model??"")};break;case"response.output_item.added":{let p=d.item??{};if(p.type==="reasoning")u.add(d.output_index??0),yield{type:"blockStart",index:i(d.output_index??0),block:n?{type:"providerNative",provider:"muse",blockType:"reasoning",data:{}}:{type:"thinking"}};else if(p.type==="function_call")s=!0,u.add(d.output_index??0),yield{type:"blockStart",index:i(d.output_index??0),block:{type:"toolUse",id:String(p.call_id),name:String(p.name)}};break}case"response.content_part.added":if(d.part?.type==="output_text")yield{type:"blockStart",index:i(d.output_index??0,d.content_index??0),block:{type:"text"}};break;case"response.output_text.delta":yield{type:"blockDelta",index:i(d.output_index??0,d.content_index??0),delta:{type:"text",text:String(d.delta??"")}};break;case"response.reasoning_summary_text.delta":yield{type:"blockDelta",index:i(d.output_index??0),delta:n?{type:"providerNative",provider:"muse",deltaType:"reasoning_summary_text.delta",data:{text:String(d.delta??"")}}:{type:"thinking",text:String(d.delta??"")}};break;case"response.function_call_arguments.delta":yield{type:"blockDelta",index:i(d.output_index??0),delta:{type:"toolJson",partial:String(d.delta??"")}};break;case"response.content_part.done":yield{type:"blockEnd",index:i(d.output_index??0,d.content_index??0)};break;case"response.output_item.done":{let p=d.output_index??0;if(u.delete(p)){let l=d.item??{};if(n&&l.type==="reasoning")yield{type:"blockDelta",index:i(p),delta:{type:"providerNative",provider:"muse",deltaType:"response.output_item.done",fold:"merge",data:l}};yield{type:"blockEnd",index:i(p)}}break}case"response.completed":case"response.incomplete":{a=!0;let p=d.response??{},l=p.incomplete_details?.reason,m=s?"toolUse":"endTurn";if(l==="max_output_tokens")m="maxTokens";else if(l==="content_filter")m="contentFilter";else if(l!==void 0||c.event==="response.incomplete"||p.status!==void 0&&p.status!=="completed"){yield{type:"error",code:"UPSTREAM",message:l!==void 0?`unrecognized muse incomplete reason "${String(l)}"`:p.status!==void 0&&p.status!=="incomplete"?`muse reported terminal response status "${String(p.status)}"`:"muse reported the response incomplete without a reason",retryable:!1};break}yield{type:"end",stopReason:m,usage:xe(p.usage?.input_tokens??0,p.usage?.output_tokens??0,p.usage?.input_tokens_details?.cached_tokens??p.usage?.prompt_tokens_details?.cached_tokens??0)};break}case"response.failed":case"error":{a=!0;let p=d.response?.error??d.error??{},l=String(p.code??p.type),m=(Object.hasOwn(xb,l)?xb[l]:void 0)??"UPSTREAM";yield{type:"error",code:m,message:String(p.message??"upstream error"),retryable:ee[m]};break}default:break}}if(!a)yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before response completion",retryable:ee.UPSTREAM}}import{createHash as lP}from"crypto";function pP(e){let t=e.vendor?.openai;for(let n of["prompt_cache_key","session_id"]){let r=t?.[n];if(typeof r==="string"&&r.length>0)return r}return}function mP(e,t,n){let r=e.conversationId!==void 0&&e.conversationId.length>0?JSON.stringify({conversation:e.conversationId}):JSON.stringify({instructions:t,firstInput:n??null});return lP("sha256").update(r).digest("hex").slice(0,32)}function fP(e){let t=new Set;for(let n of e){let r=n;if(r.type==="function_call_output"&&typeof r.call_id==="string")t.add(r.call_id)}for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.type!=="function_call"||typeof r.call_id!=="string")continue;if(t.has(r.call_id))continue;e.splice(n+1,0,{type:"function_call_output",call_id:r.call_id,output:""})}}function gP(e){switch(e.type){case"auto":return"auto";case"any":return"required";case"none":return"none";case"tool":return{type:"function",name:e.name}}}function ps(e,t){let n=[],r=[],o=(c)=>{if(!n.includes(c))n.push(c)};if(e.betas?.includes(Ee))o("muse:context-1m-dropped");for(let c of e.messages){let d=[],p=c.role==="system";if(p)o("muse:system-turn-as-developer");let l=p?"developer":c.role,m=()=>{if(d.length===0)return;r.push({type:"message",role:l,content:[...d]}),d.length=0};for(let g of c.content)switch(g.type){case"text":d.push({type:l==="assistant"?"output_text":"input_text",text:g.text});break;case"image":d.push({type:"input_image",image_url:`data:${g.mediaType};base64,${g.data}`});break;case"thinking":o("muse:thinking-dropped");break;case"toolUse":m(),r.push({type:"function_call",call_id:g.id,name:g.name,arguments:JSON.stringify(g.input)});break;case"toolResult":{if(g.native!==void 0)o("muse:foreign-native-block-dropped");m();let h=Ht(g.files??[]);if(r.push({type:"function_call_output",call_id:g.toolUseId,output:be(g.content,h.text)}),g.images!==void 0){o("muse:tool-result-images-moved");for(let f of g.images)d.push({type:"input_image",image_url:`data:${f.mediaType};base64,${f.data}`})}if(h.parts.length>0)o("muse:tool-result-files-moved"),d.push(...h.parts);if(h.text.length>0)o("muse:tool-result-files-inlined");if(h.dropped)o("muse:files-dropped");break}case"providerNative":if(g.provider==="muse"){m();let{id:h,...f}=g.data;r.push({type:g.blockType,...f});break}o("muse:foreign-native-block-dropped");break}m()}fP(r);let i={model:t,input:r,stream:e.stream,store:!1},s=Oe(e.system,"muse",o);if(s!==void 0&&s.length>0)i.instructions=s;if(e.maxTokens!==void 0)i.max_output_tokens=e.maxTokens;if(e.temperature!==void 0)i.temperature=e.temperature;if(e.tools!==void 0){let c=e.tools.filter((d)=>d.kind==="portable");if(c.length!==e.tools.length)o("muse:provider-tool-dropped");i.tools=c.map((d)=>({type:"function",name:d.name,description:d.description,parameters:d.inputSchema}))}if(e.toolChoice!==void 0)i.tool_choice=gP(e.toolChoice);if(e.reasoning?.mode==="betweenTools")o("muse:reasoning-between-tools-as-off");if(e.reasoning!==void 0&&e.reasoning.mode!=="off"&&e.reasoning.mode!=="betweenTools")if(e.reasoning.mode==="budget")o("muse:reasoning-budget-dropped");else{let c=e.reasoning.effort??"medium";i.reasoning={effort:c,...e.reasoning.display==="omitted"||e.reasoning.display==="updates"?{}:{summary:"auto"}}}let a=pP(e)??mP(e,s??"",r[0]);Object.assign(i,e.vendor?.openai??{});let u=qt(e,i,"muse");if(u!==void 0)o(u);return i.prompt_cache_key=a,{body:i,degradations:n,cacheKey:a}}var Ab={buildRequest(e){let{body:t,degradations:n,cacheKey:r}=ps(e.request,e.model);if(e.credentials.apiKey===null)throw e.fail("AUTH","muse credential has no model api key");let o=[["Content-Type","application/json"],["Authorization",`Bearer ${e.credentials.apiKey}`],["x-meta-ai-gateway-session-id",r]],i=fe(ge(gt.headers,o),gt.order),s=t.include;return{decodeState:{nativeReasoning:Array.isArray(s)&&s.includes("reasoning.encrypted_content")},request:{url:Dw(e.credentials.providerData),method:"POST",headers:i,body:JSON.stringify(Be({...t,stream:!0},Mi))},degradations:n}},decode({body:e,decodeState:t}){let n=t;return ls(_e(e),{nativeReasoning:n?.nativeReasoning===!0})}};var Wc=de("muse",Oi.capabilities,Ab);var hP=new Set(["none","minimal","low","medium","high","xhigh","max","ultra","persistent"]);function Ob(e){return typeof e==="string"&&hP.has(e)}var Ve=(e,t,n={})=>({lite:!0,verbosity:"low",defaultEffort:e,lowestEffort:"low",nodeReplAutoReviewRequired:t,nodeReplDisabled:!1,supportsParallelToolCalls:!0,...n}),yP=Ve("low",!1),_P=Object.assign(Object.create(null),{"gpt-6-astra":Ve("low",!0),"gpt-6.1-sol":Ve("low",!0),"gpt-6-sol":Ve("medium",!0),"gpt-6-luna":Ve("medium",!1),"gpt-5.6-sol":Ve("low",!1),"gpt-5.6-terra":Ve("medium",!1),"gpt-5.6-luna":Ve("medium",!1),"gpt-daybreak-blue-latest":Ve("low",!1),"gpt-daybreak-red-latest":Ve("medium",!1,{verbosity:"high"}),"gpt-5.5":Ve("medium",!1,{lite:!1}),"codex-auto-review":Ve("medium",!1)});function wt(e){return _P[e]??yP}var Cb={rate_limit_exceeded:"RATE_LIMIT",insufficient_quota:"QUOTA_EXHAUSTED",invalid_api_key:"AUTH",server_error:"UPSTREAM",context_length_exceeded:"BAD_REQUEST",content_policy_violation:"CONTENT_FILTER"},wP=new Set(["keepalive","response.created","response.queued","response.in_progress","response.output_item.added","response.output_item.done","response.content_part.added","response.content_part.done","response.output_text.delta","response.output_text.done","response.output_text.annotation.added","response.refusal.delta","response.refusal.done","response.reasoning_summary_part.added","response.reasoning_summary_part.done","response.reasoning_summary_text.delta","response.reasoning_summary_text.done","response.reasoning_text.delta","response.reasoning_text.done","response.function_call_arguments.delta","response.function_call_arguments.done","response.metadata","response.completed","response.incomplete","response.failed","error"]);function bP(e){try{let t=JSON.parse(e);return typeof t==="object"&&t!==null?t:null}catch{return null}}async function*ms(e,t={}){let n=t.nativeReasoning===!0,r=new Map,o=0,i=(c,d=0)=>{let p=`${c}:${d}`,l=r.get(p);if(l!==void 0)return l;let m=o++;return r.set(p,m),m},s=!1,a=!1,u=new Set;for await(let c of e){if(c.data==="[DONE]")continue;if(!wP.has(c.event)){yield{type:"error",code:"UPSTREAM",message:`unrecognized OpenAI stream event "${c.event}"`,retryable:!1};return}let d=bP(c.data);if(d===null)continue;switch(c.event){case"response.created":yield{type:"start",id:String(d.response?.id??""),model:String(d.response?.model??"")};break;case"response.output_item.added":{let p=d.item??{};if(p.type==="reasoning")u.add(d.output_index??0),yield{type:"blockStart",index:i(d.output_index??0),block:n?{type:"providerNative",provider:"openai",blockType:"reasoning",data:{}}:{type:"thinking"}};else if(p.type==="function_call")s=!0,u.add(d.output_index??0),yield{type:"blockStart",index:i(d.output_index??0),block:{type:"toolUse",id:String(p.call_id),name:String(p.name)}};break}case"response.content_part.added":if(d.part?.type==="output_text")yield{type:"blockStart",index:i(d.output_index??0,d.content_index??0),block:{type:"text"}};break;case"response.output_text.delta":yield{type:"blockDelta",index:i(d.output_index??0,d.content_index??0),delta:{type:"text",text:String(d.delta??"")}};break;case"response.reasoning_summary_text.delta":yield{type:"blockDelta",index:i(d.output_index??0),delta:n?{type:"providerNative",provider:"openai",deltaType:"reasoning_summary_text.delta",data:{text:String(d.delta??"")}}:{type:"thinking",text:String(d.delta??"")}};break;case"response.function_call_arguments.delta":yield{type:"blockDelta",index:i(d.output_index??0),delta:{type:"toolJson",partial:String(d.delta??"")}};break;case"response.content_part.done":yield{type:"blockEnd",index:i(d.output_index??0,d.content_index??0)};break;case"response.output_item.done":{let p=d.output_index??0;if(u.delete(p)){let l=d.item??{};if(n&&l.type==="reasoning")yield{type:"blockDelta",index:i(p),delta:{type:"providerNative",provider:"openai",deltaType:"response.output_item.done",fold:"merge",data:l}};yield{type:"blockEnd",index:i(p)}}break}case"response.completed":case"response.incomplete":{a=!0;let p=d.response??{},l=p.incomplete_details?.reason,m=s?"toolUse":"endTurn";if(l==="max_output_tokens")m="maxTokens";else if(l==="content_filter")m="contentFilter";else if(l!==void 0||c.event==="response.incomplete"||p.status!==void 0&&p.status!=="completed"){yield{type:"error",code:"UPSTREAM",message:l!==void 0?`unrecognized OpenAI incomplete reason "${String(l)}"`:p.status!==void 0&&p.status!=="incomplete"?`OpenAI reported terminal response status "${String(p.status)}"`:"OpenAI reported the response incomplete without a reason",retryable:!1};break}yield{type:"end",stopReason:m,usage:xe(p.usage?.input_tokens??0,p.usage?.output_tokens??0,p.usage?.input_tokens_details?.cached_tokens??p.usage?.prompt_tokens_details?.cached_tokens??0)};break}case"response.failed":case"error":{a=!0;let p=d.response?.error??d.error??{},l=String(p.code??p.type),m=(Object.hasOwn(Cb,l)?Cb[l]:void 0)??"UPSTREAM";yield{type:"error",code:m,message:String(p.message??"upstream error"),retryable:ee[m]};break}default:break}}if(!a)yield{type:"error",code:"UPSTREAM",message:"upstream stream ended before response completion",retryable:ee.UPSTREAM}}var ln="internal_chat_message_metadata_passthrough";function Pb(e,t,n,r){return Fr(dn(r,`${e}:turn:${t}`),n+t)}function kP(e,t){if(!Array.isArray(e))return;if(t==="assistant")return e.map(()=>"unknown");let n=[];for(let r of e){let o=r.type;if(o==="input_text")n.push("user.text");else if(o==="input_image")n.push("user.image");else return}return n}function Ib(e){let{threadId:t}=e,n=Nc(t,e.startedAt??Number.POSITIVE_INFINITY),r=e.startedAt??n,o=e.requestId??t,i=e.idSalt,s=Xw(t),a=[];if(e.tools!==void 0&&e.tools.length>0){let d=[{type:"namespace",name:"functions",description:"",tools:e.tools}];a.push({type:"additional_tools",id:`at_${rs(s,JSON.stringify(d))}`,role:"developer",tools:d})}if(e.instructions!==void 0&&e.instructions.length>0)a.push({type:"message",id:`msg_${rs(s,e.instructions)}`,role:"developer",content:[{type:"input_text",text:e.instructions}],[ln]:{content_item_kinds:["model.base_instructions"]}});let u=0,c=e.input.map((d,p)=>{let l=d;u=e.turnOf.get(l)??u;let m=Pb(t,u,n,i),g=(f)=>`${f}_${Fr(dn(i,`${o}:item:${p}`),r)}`,h=(r*1000+p)/1e6;switch(l.type){case"message":{let f=String(l.role),y=kP(l.content,f);if(f==="assistant")return{type:"message",status:"completed",id:g("msg"),role:f,content:Array.isArray(l.content)?l.content.map((_)=>_.type==="output_text"?{..._,annotations:[]}:_):l.content,[ln]:{turn_id:m,...y===void 0?{}:{content_item_kinds:y}}};return{type:"message",id:g("msg"),role:f,content:l.content,[ln]:{turn_id:m,create_time:h,...y===void 0?{}:{content_item_kinds:y}}}}case"function_call":return{type:"function_call",status:"completed",id:g("fc"),name:l.name,arguments:l.arguments,call_id:l.call_id,[ln]:{turn_id:m}};case"function_call_output":return{type:"function_call_output",id:g("fco"),call_id:l.call_id,output:l.output,[ln]:{turn_id:m,create_time:h}};case"reasoning":{let{[ln]:f,...y}=l;return{...y,[ln]:{turn_id:m}}}default:return l}});return{input:[...a,...c],turnId:Pb(t,u,n,i),startedAt:r}}function EP(e){return JSON.stringify(e).replace(/[^\x20-\x7e]/g,(t)=>`\\u${t.charCodeAt(0).toString(16).padStart(4,"0")}`)}function Lb(e){let{threadId:t,turnId:n}=e,r=`${t}:0`,o=e.installationId??Gw(`installation:${e.installationSeed}`),i=Nc(t,e.startedAt),s=wt(e.model),a=EP({installation_id:o,session_id:t,thread_id:t,agent_name:"/root",turn_id:n,window_id:r,window_number:0,context_window_id:Fr(dn(e.idSalt,`${t}:context-window`),i),request_kind:"turn",history_initialization:"new",root_turn_id:n,thread_source:"user",turn_trigger:"user",sandbox:k_,sandbox_mode:"workspace-write",auto_review_enabled:!1,node_repl_auto_review_required:s.nodeReplAutoReviewRequired,node_repl_disabled:s.nodeReplDisabled,turn_started_at_unix_ms:e.startedAt,analytics_enabled:!1,model:e.model,reasoning_effort:e.effort});return{windowId:r,turnMetadata:a,clientMetadata:{turn_id:n,thread_id:t,"x-codex-turn-metadata":a,mcp_attribution:'{"status":"none"}',guardian_credits_requested:"true","x-codex-installation-id":o,"x-codex-window-id":r,root_turn_id:n,session_id:t}}}var vP=1024,TP=/^[\x21-\x7e]+$/;function RP(e){let t=e.vendor?.openai;for(let n of["prompt_cache_key","session_id"]){let r=t?.[n];if(typeof r==="string"&&r.length<=vP&&TP.test(r))return r}return}function SP(e,t,n,r){let o=RP(e);if(o!==void 0){if(Cc(o))return{key:o,seed:o};let s=JSON.stringify({key:o});return{key:Lc(dn(r,s)),seed:s}}let i=e.conversationId!==void 0&&e.conversationId.length>0?JSON.stringify({conversation:e.conversationId}):JSON.stringify({instructions:t,firstInput:n??null});return{key:Lc(dn(r,i)),seed:i}}function xP(e){let t=new Set;for(let n of e){let r=n;if(r.type==="function_call_output"&&typeof r.call_id==="string")t.add(r.call_id)}for(let n=e.length-1;n>=0;n--){let r=e[n];if(r.type!=="function_call"||typeof r.call_id!=="string")continue;if(t.has(r.call_id))continue;e.splice(n+1,0,{type:"function_call_output",call_id:r.call_id,output:""})}}function AP(e){switch(e.type){case"auto":return"auto";case"any":return"required";case"none":return"none";case"tool":return{type:"function",name:e.name}}}function OP(e,t,n){let r=wt(t),o=r.lite?{context:"all_turns"}:{},i=e.reasoning;if(i===void 0)return{effort:r.defaultEffort,...o};if(i.mode==="off")return n("openai:reasoning-off-as-lowest"),{effort:r.lowestEffort,...o};if(i.mode==="betweenTools")return{effort:r.lowestEffort,...o};if(i.mode==="budget")return n("openai:reasoning-budget-dropped"),{effort:r.defaultEffort,...o};return{effort:i.effort??r.defaultEffort,...i.display==="omitted"||i.display==="updates"?{}:{summary:"auto"},...o}}var Nb=(e)=>typeof e==="object"&&e!==null&&!Array.isArray(e);function CP(e,t,n){let r=e;for(let[o,i]of Object.entries(t)){if(o==="client_metadata"){n("openai:client-metadata-replaced");continue}let s=r[o];if((o==="text"||o==="reasoning")&&Nb(s)&&Nb(i)){r[o]={...s,...i};continue}r[o]=i}}function fs(e,t,n={oauth:!1}){let r=[],o=[],i=(v)=>{if(!r.includes(v))r.push(v)},s=new WeakMap,a=-1,u=(v)=>{o.push(v),s.set(v,Math.max(0,a))};if(e.betas?.includes(Ee))i("openai:context-1m-dropped");for(let v of e.messages){let k=[],T=v.role==="system";if(T)i("openai:system-turn-as-developer");let C=T?"developer":v.role,V=()=>{if(k.length===0)return;u({type:"message",role:C,content:[...k]}),k.length=0},Re=!1;for(let W of v.content){if(v.role==="user"&&!Re&&W.type!=="toolResult")Re=!0,a++;switch(W.type){case"text":k.push({type:C==="assistant"?"output_text":"input_text",text:W.text});break;case"image":k.push({type:"input_image",image_url:`data:${W.mediaType};base64,${W.data}`});break;case"thinking":if(!r.includes("openai:thinking-dropped"))i("openai:thinking-dropped");break;case"toolUse":V(),u({type:"function_call",call_id:W.id,name:W.name,arguments:JSON.stringify(W.input)});break;case"toolResult":{if(W.native!==void 0)i("openai:anthropic-native-block-dropped");V();let We=Ht(W.files??[]);if(u({type:"function_call_output",call_id:W.toolUseId,output:be(W.content,We.text)}),W.images!==void 0){i("openai:tool-result-images-moved");for(let Lt of W.images)k.push({type:"input_image",image_url:`data:${Lt.mediaType};base64,${Lt.data}`})}if(We.parts.length>0)i("openai:tool-result-files-moved"),k.push(...We.parts);if(We.text.length>0)i("openai:tool-result-files-inlined");if(We.dropped)i("openai:files-dropped");break}case"providerNative":if(W.provider==="openai"){V();let{id:We,...Lt}=W.data;u({type:W.blockType,...Lt});break}i("openai:anthropic-native-block-dropped");break}}V()}xP(o);let c={model:t,input:o,stream:e.stream,store:!1},d=Oe(e.system,"openai",i),p=n.oauth&&wt(t).lite;if(d!==void 0&&d.length>0&&!n.oauth)c.instructions=d;if(e.maxTokens!==void 0)if(n.oauth)i("openai:max-tokens-dropped");else c.max_output_tokens=e.maxTokens;if(e.temperature!==void 0)if(n.oauth)i("openai:temperature-dropped");else c.temperature=e.temperature;let l;if(e.tools!==void 0){let v=e.tools.filter((k)=>k.kind==="portable");if(v.length!==e.tools.length)i("openai:anthropic-tool-dropped");if(n.oauth){let k=v.map((T)=>({type:"function",name:T.name,description:T.description,strict:!1,parameters:T.inputSchema}));if(p)l=k;else c.tools=k}else c.tools=v.map((k)=>({type:"function",name:k.name,description:k.description,parameters:k.inputSchema}))}if(e.toolChoice!==void 0)c.tool_choice=AP(e.toolChoice);else if(n.oauth)c.tool_choice="auto";if(n.oauth)c.parallel_tool_calls=!p&&wt(t).supportsParallelToolCalls;if(e.reasoning?.mode==="betweenTools")i(n.oauth?"openai:reasoning-between-tools-as-lowest":"openai:reasoning-between-tools-as-off");if(n.oauth)c.reasoning=OP(e,t,i);else if(e.reasoning!==void 0&&e.reasoning.mode!=="off"&&e.reasoning.mode!=="betweenTools")if(e.reasoning.mode==="budget")r.push("openai:reasoning-budget-dropped");else{let v=e.reasoning.effort??"medium";c.reasoning={effort:v,...e.reasoning.display==="omitted"||e.reasoning.display==="updates"?{}:{summary:"auto"}}}let m=n.oauth?n.idSalt:void 0,{key:g,seed:h}=SP(e,d??"",o[0],m);if(n.oauth)c.include=["reasoning.encrypted_content"],c.text={verbosity:wt(t).verbosity},CP(c,e.vendor?.openai??{},i);else Object.assign(c,e.vendor?.openai??{});let f=qt(e,c,"openai");if(f!==void 0)i(f);if(c.prompt_cache_key=g,!n.oauth)return{body:c,degradations:r,cacheKey:g};let y=Ib({threadId:g,input:o,turnOf:s,tools:l,instructions:d,requestId:n.requestId,startedAt:n.startedAt,idSalt:m});c.input=y.input;let _=c.reasoning?.effort,w=Lb({threadId:g,turnId:y.turnId,installationId:n.installationId,installationSeed:n.accountId??h,idSalt:m,model:t,effort:Ob(_)?_:wt(t).defaultEffort,startedAt:y.startedAt});return c.client_metadata=w.clientMetadata,{body:c,degradations:r,cacheKey:g,codex:w}}var PP="https://chatgpt.com/backend-api/codex/responses",IP="https://api.openai.com/v1/responses",Db=/^[\x21-\x7e]+$/;function LP(e,t){if(!Db.test(e))return;if(typeof t==="string"&&Db.test(t)&&!t.includes(";"))return`model=${e};tier=${t}`;return`model=${e}`}var Ub={buildRequest(e){let t=e.credentials.accessToken!==null,n=e.credentials.providerData.accountId,r=t?Dc(e.credentials.providerData):{},{body:o,degradations:i,cacheKey:s,codex:a}=fs(e.request,e.model,{oauth:t,requestId:e.requestId,startedAt:e.requestStartedAt,accountId:typeof n==="string"?n:void 0,installationId:r.installationId,idSalt:r.idSalt}),u=[];if(a!==void 0){if(u.push(["x-codex-window-id",a.windowId],["x-codex-turn-metadata",a.turnMetadata]),wt(e.model).lite)u.push(["x-openai-internal-codex-responses-lite","true"]);let l=LP(e.model,o.service_tier);if(l!==void 0)u.push(["x-codex-routing-hint",l])}if(u.push(["x-client-request-id",s],["session-id",s],["thread-id",s]),t)u.push(["content-encoding","zstd"]);if(u.push(["content-type","application/json"]),t){if(u.push(["authorization",`Bearer ${e.credentials.accessToken}`]),typeof n==="string")u.push(["chatgpt-account-id",n]);u.push(["host","chatgpt.com"])}else if(e.credentials.apiKey!==null)u.push(["authorization",`Bearer ${e.credentials.apiKey}`]);else throw e.fail("AUTH","openai credential has no token");let c=fe(ge(rt.headers,u),rt.order),d=e.request.vendor?.openai?.include;return{decodeState:{nativeReasoning:Array.isArray(d)&&d.includes("reasoning.encrypted_content")},request:{url:t?PP:IP,method:"POST",headers:c,body:JSON.stringify(Be({...o,stream:!0},$i)),...t?{bodyEncoding:"zstd"}:{}},degradations:i}},decode({body:e,decodeState:t}){let n=t;return ms(_e(e),{nativeReasoning:n?.nativeReasoning===!0})}};var jc=de("openai",Pi.capabilities,Ub);var Kc={anthropic:oc,openai:jc,kimi:Hc,kilo:qc,grok:zc,antigravity:pc,muse:Wc,custom:Bc};Object.setPrototypeOf(Kc,null);var Mb=Object.fromEntries(Object.entries(M).flatMap(([e,t])=>{let n=Kc[e],r=Yu[e],o=Qu[e];if(n===void 0||r===void 0||o===void 0)return[];return[[e,{...t,adapter:n,profile:r,bodyOrder:o}]]}));Object.setPrototypeOf(Mb,null);var Gc=c_,NP=600000;function $b(e,t){return t[e]?.callback}function Zc(e){return typeof e==="string"&&Object.hasOwn(M,e)}function DP(e,t){let n=t.pending.extra?.deviceId;if(typeof n==="string"&&n.trim().length>0)return n;if(e.needsDeviceId)throw new b("INTERNAL","device authorization did not provide a device id");return""}function Xc(e){let t=e.logger??se,n=zu({now:e.now,ttlMs:NP,...e.coord===void 0?{}:{coord:e.coord}}),r=new Map,o=e.descriptors??M,i=(p)=>$b(p,o)?.uri??"",s=(p)=>typeof p==="string"&&Object.hasOwn(o,p),a=()=>Object.keys(e.providers);function u(p,l){let m=$b(p.provider,o);if(m===void 0)return l;let g=new URL(m.uri),h;try{h=new URL(l)}catch{return l}if(h.origin!==g.origin||h.pathname!==g.pathname)throw new b("BAD_REQUEST",`invalid ${m.label} callback URL`);let f=h.searchParams.get("code")?.trim()??"",y=h.searchParams.get("state")?.trim()??"";if(f.length===0||y.length===0)throw new b("BAD_REQUEST",`${m.label} callback URL must contain code and state`);if(y!==p.pending.state)throw new b("AUTH","authorization state mismatch");return`${f}#${y}`}async function c(p,l){let m=e.providers[p.provider];if(m===void 0)throw new b("BAD_REQUEST","provider does not support OAuth");let g=p.credentialId===void 0?null:await e.store.credentials.get(p.credentialId);if(p.credentialId!==void 0&&g===null)throw new b("BAD_REQUEST","credential not found");let h=g!==null&&g.provider===p.provider?g.providerData:void 0,f=await m.exchange({code:l,pending:p.pending,...h===void 0?{}:{providerData:h}},{http:e.http,now:e.now});if(p.credentialId!==void 0)return await e.store.credentials.updateSecrets(p.credentialId,f.secrets,f.expiresAt),await e.store.credentials.update(p.credentialId,{enabled:!0,disabledReason:null,disabledAt:null,accountEmail:f.accountEmail,providerData:f.providerData}),t.info("oauth reconnect completed",{provider:p.provider,credentialId:p.credentialId}),{id:p.credentialId};let y=crypto.randomUUID();return await e.store.credentials.create({id:y,provider:p.provider,label:p.label,authType:"oauth",enabled:!0,tier:1,weight:1,expiresAt:f.expiresAt,accountEmail:f.accountEmail,providerData:f.providerData,disabledReason:null,disabledAt:null,...f.secrets}),t.info("oauth connect completed",{provider:p.provider,credentialId:y}),{id:y}}async function d(p,l){try{let m=await l;return await n.take(p),{status:"complete",...m}}catch(m){if(Gi(m))return{status:"pending"};throw await n.take(p),m}}return{connectableIds:a,async start(p,l,m){let g=()=>new b("BAD_REQUEST",`provider must be one of ${a().join(", ")}`);if(!s(p))throw g();let h=e.providers[p];if(h===void 0)throw g();let f;if(m!==void 0){if(typeof m!=="string"||m.trim().length===0)throw new b("BAD_REQUEST","invalid credential for reconnect");let C=m.trim(),V=await e.store.credentials.get(C);if(V===null||V.provider!==p||V.authType!=="oauth")throw new b("BAD_REQUEST","invalid credential for reconnect");f=C}let y=typeof l==="string"&&l.trim().length>0?l.trim():p,_=i(p),w={http:e.http,now:e.now},v=await h.start({redirectUri:_},w),k=h.kind==="device"?await h.begin({deviceId:DP(h,v)},w):v;return{flowId:await n.put({provider:p,label:y,pending:k.pending,...f===void 0?{}:{credentialId:f},...k.userCode===void 0?{}:{userCode:k.userCode}}),authorizeUrl:k.authorizeUrl,userCode:k.userCode??null,kind:h.kind,supportsManualPaste:h.supportsManualPaste,pollIntervalMs:(k.pending.interval??5)*1000}},async finish(p,l){if(typeof p!=="string"||typeof l!=="string")throw new b("BAD_REQUEST","flowId and code are required");let m=await n.take(p);if(m===null)throw new b("BAD_REQUEST","unknown or expired authorization");return c(m,u(m,l))},async poll(p){if(typeof p!=="string")throw new b("BAD_REQUEST","flowId is required");let l=r.get(p);if(l!==void 0)return d(p,l);let m=(async()=>{let g=await n.peek(p);if(g===null)throw new b("BAD_REQUEST","unknown or expired authorization");return c(g,"")})().finally(()=>{r.delete(p)});return r.set(p,m),d(p,m)}}}function Q(e,t){let n=e.safeParse(t);if(n.success)return n.data;let r=n.error.issues[0],o=r?.path??[],i=o.length===0?"(root)":o.map((a)=>on(String(a))).join("."),s=r===void 0?"invalid request":r.code==="unrecognized_keys"?`unrecognized key "${on(r.keys[0])}"`:r.message;throw new b("BAD_REQUEST",`${i}: ${s}`)}function Pt(e,t){if(e===void 0)return t;if(typeof e==="string"&&e.trim().length===0)return t;let n=Number(e);return Number.isFinite(n)?n:t}var Un=K().regex(an,"must be a lowercase provider id"),Vc=re({tools:Me().default(!1),images:Me().default(!1),reasoning:Me().default(!1)}).strict(),UP=re({provider:Un,endpointId:K().trim().min(1).optional(),model:K().min(1),tier:N().int().min(1),weight:N().positive(),costPerMTok:re({input:N().min(0),output:N().min(0),cacheRead:N().min(0).optional(),cacheWrite5m:N().min(0).optional(),cacheWrite1h:N().min(0).optional()}),contextWindow:N().int().positive().optional(),maxOutputTokens:N().int().positive().optional(),credentialId:K().trim().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/,"credentialId must be an account id").optional(),capabilities:re({tools:Me(),images:Me(),reasoning:Me()})}).strict().refine((e)=>e.provider!=="custom"||e.endpointId!==void 0,{message:"custom targets require an endpointId",path:["endpointId"]}).refine((e)=>e.provider==="custom"||e.endpointId===void 0,{message:"endpointId is only meaningful for a custom target",path:["endpointId"]}),Qc=re({id:K().min(1),strategy:St(["score","priority","roundRobin","weighted"]),isAlias:Me(),targets:Sn(UP).min(1,"a virtual model needs at least one target")}),Fb=8640000000000000,Bb=K().trim().min(1).max(uy),Yc=re({label:K().min(1).default("api key"),modelAllowlist:Sn(K().min(1)).nullable().default(null),limits:lr.default({}),bodyLoggingOptOut:Me().default(!1),expiresAt:N().int().positive().max(Fb).nullable().default(null),guardrailPolicy:Bb.nullable().default(null)}).strict(),zb=re({limits:lr}).strict(),qb=re({modelAllowlist:Sn(K().min(1)).nullable()}).strict(),Hb=re({expiresAt:N().int().positive().max(Fb).nullable()}).strict(),Wb=re({policy:Bb.nullable()}).strict(),Br=re({keepLatest:N().int().min(1).max(100),maxAgeDays:N().int().min(1).max(3650)}).strict(),Jc=re({weights:re({tier:N(),health:N(),quota:N(),cost:N(),latency:N(),load:N()}).strict(),maxAttempts:N().int().min(1).max(10),requestDeadlineMs:N().int().min(0),breakerThreshold:N().int().min(1),breakerCooldownMs:N().int().positive(),logRetentionDays:N().int().min(1),bodyRetentionDays:Br.shape.maxAgeDays.optional(),quotaPollIntervalMs:N().int().min(0),rtkEnabled:Me(),autoCacheEnabled:Me(),ponytailMode:St(lu),bodyLoggingEnabled:Me(),bodyLoggingCaptureStreamChunks:Me(),snapshotKeepLatest:Br.shape.keepLatest.optional(),snapshotMaxAgeDays:Br.shape.maxAgeDays.optional(),guardrailModel:K().trim().min(1).max(256).nullable().optional(),guardrailTimeoutMs:N().int().min(1).max(mu).optional(),guardrailHistoryTurns:N().int().min(1).max(fu).optional()}),ed=re({label:K().min(1).optional(),enabled:Me().optional(),tier:N().int().min(1).optional(),weight:N().positive().optional()}).strict(),MP=WR("kind",[re({kind:hh("one"),credentialId:K().trim().min(1).max(64).regex(/^[A-Za-z0-9_-]+$/,"credentialId must be an account id")}).strict(),re({kind:hh("all")}).strict()]),jb=(e)=>K().trim().min(1,e).max(64,e).regex(/^[A-Za-z0-9_-]+$/,e),td=jb("credentialId must be an account id"),Kb=jb("apiKeyId must be a key id"),$P=re({credentialId:td,creditId:K().min(1).max(128).regex(/^[A-Za-z0-9_-]+$/).optional()}).strict(),gs=St(["credential","model","requestedModel","apiKey","provider","hour","day"]),nd=St(["raw","daily"]),FP={raw:new Set(["credential","model","requestedModel","apiKey","provider","hour"]),daily:new Set(["credential","model","requestedModel","apiKey","provider","day"])};function hs(e,t){if(FP[e].has(t))return t;throw new b("BAD_REQUEST",`usage grain "${e}" cannot group by "${t}"`)}var rd="omnigateway.service",Gb=500,BP=200;function od(e){let t=e.logFile?.trim();if(t!==void 0&&t.length>0)return{kind:"file",path:t};if(e.unitInstalled)return{kind:"journal",unit:rd,scope:e.scope};return{kind:"none"}}function id(e){let t=Pt(e,BP);return Math.floor(Math.min(Math.max(1,t),Gb))}function zP(e,t){if(t.since!==void 0&&(e.at===null||e.at<=t.since))return!1;if(t.level===void 0||e.level===null)return!0;return Xo[e.level]>=Xo[t.level]}var qP=20,HP=5000;function WP(e){return e.level!==void 0||e.since!==void 0?Math.min(e.lines*qP,HP):e.lines}async function jP(e,t,n){if(t.kind==="none")return"";if(t.kind==="file")return e.readFile(t.path,n)??"";let r=t.scope==="system"?["-u",t.unit]:[`--user-unit=${t.unit}`],o=await e.run(["journalctl",...r,"-n",String(n),"--no-pager","--output=cat"]);return o.code===0?o.stdout:""}function Zb(e,t){let n=id(t.lines);return e.split(`
|
|
1673
|
+
`).filter((r)=>r.trim().length>0).map($h).filter((r)=>zP(r,t)).slice(-n)}async function Mn(e,t,n){let r={...n,lines:id(n.lines)},o=await jP(e,t,WP(r)),i=Zb(o,r);return t.kind==="file"?{source:"file",path:t.path,lines:i}:{source:t.kind,lines:i}}var KP=1000,Xb=["request bodies (the artifact corpus stays with the source; body rows are not written)","usage_daily older than the retained request logs (rebuilt from the rows that are carried)","quota readings and credential health (re-probed and re-measured within one poll interval)","sessions and pending OAuth flows (ephemeral; every operator logs in again)","plugin_* tables (their SQL is the source dialect's; carry them by hand)"];async function sd(e,t){let[n,r,o,i]=await Promise.all([t.keys.list(),t.config.listModels(),t.credentials.list(),t.config.getAdminPasswordHash()]);if(n.length>0||r.length>0||o.length>0||i!==null)throw new b("CONFLICT","the target already holds data; copy into an empty store");let s=await e.keys.list();for(let p of s)if(p.limits===null)throw new b("BAD_REQUEST",`api key ${p.id} has unreadable limits; repair it first`);let a={credentials:0,apiKeys:0,models:0,requestLogs:0,skippedPending:0},u=await e.config.getSettings();await t.config.putSettings(u);let c=await e.config.getAdminPasswordHash();if(c!==null)await t.config.setAdminPasswordHash(c);await t.config.setViewerPasswordHash(await e.config.getViewerPasswordHash());for(let p of await e.credentials.list()){let l=await p.secrets(),{secrets:m,openForInference:g,openForRefresh:h,openForUsage:f,createdAt:y,updatedAt:_,hasRefreshToken:w,tokenVersion:v,...k}=p;await t.credentials.create({...k,...l}),a.credentials+=1}for(let p of await e.config.listModels())await t.config.putModel(p),a.models+=1;for(let p of s)await t.keys.importRow(p),a.apiKeys+=1;let d=null;for(;;){let p=await e.usage.scan(d,KP);if(p.length===0)break;for(let m of p){if(m.state!=="done"){a.skippedPending+=1;continue}await t.usage.append(m),a.requestLogs+=1}let l=p[p.length-1];if(l===void 0)break;d={at:l.at,id:l.id}}return await t.usage.rebuildRollup(),{counts:a,notCarried:Xb}}function at(e,t){return e+"::"+t}async function zr(e,t){let[n,r,o,i,s]=await Promise.all([e.credentials.listRouting(),e.credentials.listHealth(),e.credentials.listQuota(),e.config.listModels(),e.config.getSettings()]),a=new Map(r.map((c)=>[at(c.credentialId,c.model),c])),u=new Map;for(let c of o){let d=u.get(c.credentialId);if(d===void 0)u.set(c.credentialId,[c]);else d.push(c)}return{credentials:n,health:a,quota:u,models:new Map(i.map((c)=>[c.id,c])),settings:s,builtAt:t}}function GP(e){let t=new Set;for(let n of e.tools??[])if(n.kind==="provider")t.add(n.provider);for(let n of e.system??[])if(n.type==="providerNative")t.add(n.provider);for(let n of e.messages)for(let r of n.content){if(r.type==="providerNative")t.add(r.provider);if(r.type==="toolResult")for(let o of r.native??[])t.add(o.provider)}return t}function Vb(e){let t=(r)=>r.some((o)=>o.type==="image"||o.type==="toolResult"&&(o.images!==void 0||o.files!==void 0)),n=t(e.system??[])||e.messages.some((r)=>t(r.content));return{tools:(e.tools?.length??0)>0,images:n,reasoning:e.reasoning!==void 0&&e.reasoning.mode!=="off"&&e.reasoning.mode!=="betweenTools"}}function ZP(e,t,n){let r=Math.max(0,e-t);return Math.min(n*2**r,3600000)}function ad(e){let{request:t,model:n,snapshot:r,now:o}=e,i=e.providers??M,{breakerThreshold:s,breakerCooldownMs:a}=r.settings,u=Vb(t),c=GP(t),d=[],p=[];for(let l of n.targets){if(!Object.hasOwn(i,l.provider)){p.push({kind:"target",credentialId:"",model:l.model,reason:"provider:missing"});continue}let m=c.size>1||c.size===1&&!c.has(l.provider)?"providerNative":["tools","images","reasoning"].find((_)=>u[_]&&!l.capabilities[_]),g=m==="providerNative"?"target":"account",h=!1,f=!1,y=!1;for(let _ of r.credentials){if(_.provider===l.provider)f=!0;if(!pu(l,_))continue;y=!0,h=l.credentialId!==void 0;let w=(C,V="account")=>{p.push({kind:V,credentialId:_.id,model:l.model,reason:C})};if(m!==void 0){w(`capability:${m}`,g);continue}if(!_.enabled){w("disabled");continue}if(oi(_,o)){w("expired");continue}let v=!1,k=r.health.get(at(_.id,l.model));if(k!==void 0){if(k.rateLimitedUntil!==null&&k.rateLimitedUntil>o){w("rateLimited");continue}if(k.breakerState==="open"){if(o-(k.openedAt??o)<ZP(k.consecutiveFailures,s,a)){w("breaker:open");continue}v=!0}else if(k.breakerState==="halfOpen")v=!0}let T=(r.quota.get(_.id)??[]).find((C)=>C.limit!==null&&C.used>=C.limit&&(C.resetsAt===null||C.resetsAt>o));if(T!==void 0){w(`quota:${T.windowType}`);continue}d.push({credential:_,target:l,probe:v})}if(l.credentialId===void 0&&f&&!y)p.push({kind:"target",credentialId:"",model:l.model,reason:"endpoint:unmatched"});if(l.credentialId!==void 0&&!h)p.push({kind:"account",credentialId:l.credentialId,model:l.model,reason:"pin:missing"})}return{pairs:d,excluded:p}}var Qb=0.5,ud=0.1;function qr(e){return Math.max(e,60000)*3}function XP(e,t){let n=e.limit;if(n===null||n<=0)return 1;let r=Math.max(0,Math.min(1,1-e.used/n));if(e.resetsAt===null)return r;let o=ni(e.windowType,e.windowMs),i=Math.max(0.05,Math.min(1,(e.resetsAt-t)/o));return Math.max(0,Math.min(1,r/i))}function Hr(e,t,n,r){let o=qr(r),i=t.filter((s)=>s.limit!==null&&s.limit>0&&s.observedAt>0&&n-s.observedAt<=o&&!_r(s,n));if(i.length===0)return e.authType==="apiKey"?1:Qb;return Math.min(...i.map((s)=>XP(s,n)))}var Yb=0.5;function VP(e,t,n){if(n===t)return 1;return(n-e)/(n-t)}function Jb(e,t){return Math.min(1,t/e)}function ek(e){let t=e.filter((n)=>n>0);return t.length>0?Math.min(...t):null}var tk=1000;function QP(e){let t=Yo(e),n=Math.max(0,qh(e)-t),r=Math.min(e.maxTokens??tk,tk);return{cachedTok:t,freshTok:n,outTok:r}}function YP(e,{cachedTok:t,freshTok:n,outTok:r}){return n*e.costPerMTok.input+t*ay(e.costPerMTok)+r*e.costPerMTok.output}function cd(e){let t=1/(1+(e?.consecutiveFailures??0));return e?.breakerState==="open"||e?.breakerState==="halfOpen"?t*0.5:t}function nk(e,t){let{snapshot:n,now:r,load:o,recent:i}=t,s=n.settings.weights,a=e.map((h)=>h.target.tier),u=Math.min(...a),c=Math.max(...a),d=QP(t.request),p=e.map((h)=>YP(h.target,d)),l=ek(p),m=(h)=>i?.get(h)?.ewmaTtftMs??null,g=ek(e.flatMap((h)=>{let f=m(at(h.credential.id,h.target.model));return f===null?[]:[f]}));return e.map((h,f)=>{let y=at(h.credential.id,h.target.model),_=n.health.get(y),w=VP(h.target.tier,u,c),k=1/(1+(o.get(y)??0)),T=cd(_),C=Hr(h.credential,n.quota.get(h.credential.id)??[],r,n.settings.quotaPollIntervalMs),V=p[f],Re=V<=0||l===null?Yb:Jb(V,l),W=m(y),We=W===null||W<=0||g===null?Yb:Jb(W,g),Lt={tier:w,health:T,quota:C,cost:Re,latency:We,load:k},Vs=w*s.tier+T*s.health+C*s.quota+Re*s.cost+We*s.latency+k*s.load;return{credential:h.credential,target:h.target,probe:h.probe,score:Vs*h.credential.weight*h.target.weight,reasons:Lt}})}function JP(e){return Object.entries(e).flatMap(([t,n])=>n.modelPrefixes.map((r)=>[r,t,n])).sort(([t],[n])=>n.length-t.length)}function rk(e,t,n){let r=Bi(n.catalog,t),o=Lr(n.catalog,t),i={provider:e,model:t,tier:1,weight:1,costPerMTok:r===null?{input:0,output:0}:{input:r.input,output:r.output,cacheRead:r.cacheRead,cacheWrite5m:r.cacheWrite5m,cacheWrite1h:r.cacheWrite1h},...o===null?{}:{contextWindow:o.contextWindow,maxOutputTokens:o.maxOutputTokens},capabilities:n.capabilities};return{id:`${e}/${t}`,targets:[i],strategy:"score",isAlias:!0}}function dd(e,t,n=M){let r=t.models.get(e);if(r!==void 0)return r;let o=e.search(/[/:]/);if(o>0){let i=e.slice(0,o),s=e.slice(o+1),a=Object.hasOwn(n,i)?n[i]:void 0;if(a!==void 0&&i!=="custom"&&s.length>0)return rk(i,s,a);throw new b("NO_CANDIDATES",`unknown provider "${on(i)}" in model "${on(e)}"`)}for(let[i,s,a]of JP(n))if(e.startsWith(i))return rk(s,e,a);throw new b("NO_CANDIDATES",`model "${on(e)}" is not a configured virtual model and its provider could not be inferred`)}function eI(e,t,n,r){let o=(d)=>d.credential.weight*d.target.weight*n(d)*r(d),i=e.reduce((d,p)=>d+o(p),0);if(i<=0)return[...e].sort((d,p)=>p.score-d.score);let s=t*i,a=e.length-1;for(let d=0;d<e.length;d++)if(s-=o(e[d]),s<0){a=d;break}let u=e[a],c=e.filter((d,p)=>p!==a).sort((d,p)=>p.score-d.score);return[u,...c]}function ok(e){let{pairs:t,excluded:n}=ad(e);if(t.length===0)return{candidates:[],excluded:n};let r=nk(t,e),o=(a)=>Hr(a.credential,e.snapshot.quota.get(a.credential.id)??[],e.now,e.snapshot.settings.quotaPollIntervalMs),i=(a)=>cd(e.snapshot.health.get(at(a.credential.id,a.target.model))),s=(a)=>e.load.get(at(a.credential.id,a.target.model))??0;switch(e.model.strategy){case"priority":r.sort((a,u)=>a.target.tier-u.target.tier||u.score-a.score);break;case"roundRobin":{let a=(c)=>{let d=e.recent?.get(at(c.credential.id,c.target.model))?.lastReleasedAt;return d===void 0?Number.POSITIVE_INFINITY:e.now-d},u=(c)=>o(c)<ud?1:0;r.sort((c,d)=>u(c)-u(d)||s(c)-s(d)||a(d)-a(c));break}case"weighted":return{candidates:eI(r,e.rand,o,i),excluded:n};case"score":r.sort((a,u)=>u.score-a.score);break}return{candidates:r,excluded:n}}var ik=3600000;function ys(e){if(e.resetsAt===null)return null;return e.resetsAt-ni(e.windowType,e.windowMs)}var ld=(e)=>({credentialId:e.credentialId,windowType:e.windowType,windowStartsAt:null,ratePerHour:null,exhaustsAt:null,survives:null,stale:!0});function pd(e,t){if(e.observedAt<=0)return ld(e);if(t.now-e.observedAt>qr(t.pollIntervalMs))return ld(e);if(_r(e,t.now))return{...ld(e),windowStartsAt:ys(e)};let n=ys(e),r=n===null?null:e.observedAt-n,o=r===null?null:r/ik,i=o===null?null:o<=0||e.used===0?0:e.used/o,s=e.limit===null||e.limit<=0||i===null||i<=0?null:e.observedAt+Math.max(0,e.limit-e.used)/i*ik;return{credentialId:e.credentialId,windowType:e.windowType,windowStartsAt:n,ratePerHour:i,exhaustsAt:s,survives:s===null||e.resetsAt===null||s>=e.resetsAt,stale:!1}}function Wr(e,t){return e.map((n)=>pd(n,t))}function md(e){return{id:e.id,provider:e.provider,label:e.label,authType:e.authType,enabled:e.enabled,tier:e.tier,weight:e.weight,expiresAt:e.expiresAt,accountEmail:e.accountEmail,providerData:e.providerData,disabledReason:e.disabledReason,disabledAt:e.disabledAt,hasRefreshToken:e.hasRefreshToken,tokenVersion:e.tokenVersion,createdAt:e.createdAt,updatedAt:e.updatedAt}}async function Qe(e){return(await e.credentials.list()).map(md)}async function ws(e,t){let n=await e.credentials.get(t);if(n===null)throw new b("BAD_REQUEST","no such credential");return md(n)}function _s(e,t){if(typeof e!=="string"||e.trim().length===0)throw new b("BAD_REQUEST",`${t}: must not be empty`);return e.trim()}function tI(e){let t=_s(e.endpointId,"endpointId"),n=_s(e.endpointLabel,"endpointLabel"),r=_s(e.origin,"origin");if(e.protocol!=="chat_completions"&&e.protocol!=="responses")throw new b("BAD_REQUEST","protocol: unsupported protocol");let o;try{o=new URL(r)}catch{throw new b("BAD_REQUEST","origin: must be a valid URL")}if(o.protocol!=="http:"&&o.protocol!=="https:"||o.hostname.length===0||o.username.length>0||o.password.length>0||o.search.length>0||o.hash.length>0)throw new b("BAD_REQUEST","origin: must be an HTTP(S) server origin");let i=o.pathname.replace(/\/+$/,"");return{endpointId:t,endpointLabel:n,origin:o.origin,basePath:i,protocol:e.protocol}}function nI(e,t){let n=typeof e.basePath==="string"?e.basePath:"";return e.endpointId===t.endpointId&&e.endpointLabel===t.endpointLabel&&e.origin===t.origin&&n===t.basePath&&e.protocol===t.protocol}async function fd(e,t,n=se,r=Zc){let o=Q(Un,t.provider);if(!r(o))throw new b("BAD_REQUEST",`provider: no provider named "${o}"`);let i=_s(t.apiKey,"apiKey");if(t.label!==void 0&&typeof t.label!=="string")throw new b("BAD_REQUEST","label: must be a string");let s={};if(o==="custom"){let c=tI(t);if((await e.credentials.list()).filter((p)=>p.provider==="custom"&&p.providerData.endpointId===c.endpointId).some((p)=>!nI(p.providerData,c)))throw new b("CONFLICT","endpointId: metadata conflicts with existing endpoint");s=c}let a=t.label?.trim()||`${o} api key`,u=await e.credentials.create({id:crypto.randomUUID(),provider:o,label:a,authType:"apiKey",enabled:!0,tier:1,weight:1,expiresAt:null,accountEmail:null,providerData:s,disabledReason:null,disabledAt:null,accessToken:null,refreshToken:null,apiKey:i,idToken:null});return n.info("credential added",{credentialId:u.id,provider:u.provider}),md(u)}async function gd(e,t){let n=await e.store.credentials.get(t);if(n===null)throw new b("BAD_REQUEST","no such credential");if(n.authType!=="oauth")throw new b("BAD_REQUEST",`credential "${t}" is an api key and has nothing to refresh`);return await e.refresh(n),ws(e.store,t)}async function hd(e){let[t,n,r,o]=await Promise.all([e.store.credentials.listHealth(),e.store.credentials.listQuota(),e.store.config.getSettings(),e.store.credentials.list()]),i={};for(let a of o){let u=await e.store.usage.lastUsedByCredential(a.id);if(u!==null)i[a.id]=u}let s=Wr(n,{now:e.now(),pollIntervalMs:r.quotaPollIntervalMs});return{health:t,quota:n,burn:s,lastUsed:i}}async function jr(e,t){let[n,r,o]=await Promise.all([Qe(e),e.credentials.listQuota(),Tr(e,{now:t.now,sessionTtlMs:0}).isConfigured()]),i=new Map;for(let s of r){let a=i.get(s.credentialId);if(a===void 0)i.set(s.credentialId,[s]);else a.push(s)}return{adminConfigured:o,credentials:n.map(({id:s,provider:a,label:u,enabled:c})=>({id:s,provider:a,label:u,enabled:c,quota:i.get(s)??[]}))}}async function bs(e,t,n){let r=Q(ed,n),o=await e.store.credentials.get(t);if(o===null)throw new b("BAD_REQUEST","no such credential");if(await e.store.credentials.update(t,{...r.label===void 0?{}:{label:r.label},...r.enabled===void 0?{}:{enabled:r.enabled,disabledReason:r.enabled?null:"manual",disabledAt:r.enabled?null:e.now()},...r.tier===void 0?{}:{tier:r.tier},...r.weight===void 0?{}:{weight:r.weight}}),r.enabled!==void 0&&r.enabled!==o.enabled)(e.logger??se).info(r.enabled?"credential enabled":"credential disabled",{credentialId:t,provider:o.provider})}async function yd(e,t){await e.credentials.remove(t)}import{basename as XG,dirname as Es,join as vs,resolve as sk}from"path";var ks=null;async function Ts(e,t){if(ks!==null)throw new b("CONFLICT",`${ks} is already running on this database`);ks=e;try{return await t()}finally{ks=null}}var ak="snapshots";function pn(e){return vs(Es(e.store.databasePath),ak)}function rI(e,t){return`db_${new Date(e).toISOString().replaceAll(":","-").replaceAll(".","-")}_${t}.sqlite`}var oI=/^db_(\d{4}-\d{2}-\d{2})T(\d{2})-(\d{2})-(\d{2})-(\d{3})Z_([A-Za-z]+)\.sqlite$/;function uk(e){let t=oI.exec(e);if(t===null)return null;let[,n,r,o,i,s,a]=t,u=Date.parse(`${n}T${r}:${o}:${i}.${s}Z`);if(Number.isNaN(u)||a===void 0)return null;return{at:u,reason:a}}function ck(e,t){let n=sk(pn(e)),r=sk(n,t);if(uk(t)===null||Es(r)!==n)throw new b("BAD_REQUEST","invalid snapshot id");let o=e.fs.realpath(r);if(o!==null&&Es(o)!==(e.fs.realpath(n)??n))throw new b("BAD_REQUEST","invalid snapshot id");return r}function Kr(e){let t=pn(e),n=[];for(let r of e.fs.readdir(t)){let o=uk(r);if(o===null)continue;n.push({id:r,filename:r,createdAt:o.at,sizeBytes:e.fs.stat(vs(t,r))?.size??0,reason:o.reason})}return n.sort((r,o)=>o.createdAt-r.createdAt)}var iI=86400000,dk=1.1;function lk(e){return{keepLatest:e.snapshotKeepLatest,maxAgeDays:e.snapshotMaxAgeDays}}function sI(e,t,n){let r=pn(e),o=n-t.maxAgeDays*iI,i=Kr(e),s=i.find((u)=>u.reason==="preRestore")?.id,a=0;return i.forEach((u,c)=>{if(c===0)return;if(u.id===s)return;if(c<t.keepLatest&&u.createdAt>=o)return;e.fs.unlink(vs(r,u.id)),a++}),a}async function pk(e,t){let n=pn(e),r=e.now(),o=rI(r,t.reason),i=vs(n,o);if(e.fs.mkdir(n),e.fs.stat(i)!==null)throw new b("CONFLICT","a snapshot for this instant already exists");let s=e.fs.freeBytes(n),a=Math.ceil((e.fs.stat(e.store.databasePath)?.size??0)*dk);if(s!==null&&s<a)throw new b("CONFLICT","not enough free disk space to write a snapshot");try{await e.store.maintenance.snapshotTo(i)}catch(c){throw e.fs.unlink(i),c}let u={id:o,filename:o,createdAt:r,sizeBytes:e.fs.stat(i)?.size??0,reason:t.reason};if(t.force!==!0)sI(e,lk(await e.store.config.getSettings()),r);return u}async function _d(e,t){return Ts("a snapshot",()=>pk(e,t))}class wd extends Error{preRestoreSnapshotId;cause;reopened;constructor(e,t,n){super("the database swap failed and the database may be incomplete");this.preRestoreSnapshotId=e;this.cause=t;this.reopened=n;this.name="SwapFailedError"}}var aI=5;function uI(e){if(e.length===0)return"it has no tables at all";let t=e.slice(0,aI),n=e.length-t.length;return`it has ${t.join(", ")}${n>0?` and ${n} more`:""}`}async function mk(e,t){let n=await e.store.maintenance.inspect(t);if(!n.ok)throw new b("BAD_REQUEST",n.quickCheck==="ok"?`that file is a database, but not one of ours: ${uI(n.tables)}`:`that file failed its integrity check: ${n.quickCheck}`);return n}async function cI(e,t){let n=await mk(e,t.path),r=await pk(e,{reason:"preRestore",force:!0}),o=await e.store.config.getAdminPasswordHash(),i=await e.store.config.getViewerPasswordHash(),s=e.store.databasePath,a=`${s}.incoming`;try{if(t.consume)e.fs.rename(t.path,a);else e.fs.copyFile(t.path,a)}catch(d){throw e.fs.unlink(a),d}try{e.store.close(),e.fs.unlink(`${s}-wal`),e.fs.unlink(`${s}-shm`),e.fs.rename(a,s),await e.store.reopen()}catch(d){let p=!0;try{await e.store.reopen()}catch{p=!1}throw new wd(r.id,d,p)}let u=await e.store.config.getAdminPasswordHash(),c=await e.store.config.getViewerPasswordHash();try{await e.store.usage.rebuildRollup()}catch(d){(e.logger??se).warn("usage rollup not rebuilt after the swap; run omni doctor",{reason:H(d,"unknown")})}try{await e.reapplyPluginSchema?.()}catch(d){(e.logger??se).warn("plugin schema not reapplied after the swap; restart",{reason:H(d,"unknown")})}return{ok:!0,counts:n.counts,preRestoreSnapshot:r,adminPasswordChanged:u!==o,viewerPasswordChanged:c!==i}}async function bd(e,t){let n=ck(e,t);if(e.fs.stat(n)===null)throw new b("BAD_REQUEST","no such snapshot");return Ts("a restore preview",async()=>{let r=await mk(e,n),o=await e.store.maintenance.inspect(e.store.databasePath);return{snapshot:r.counts,live:o.ok?o.counts:null}})}async function kd(e,t){let n=ck(e,t);if(e.fs.stat(n)===null)throw new b("BAD_REQUEST","no such snapshot");return Ts("a restore",()=>cI(e,{path:n,consume:!1}))}async function Ed(e){let t=await e.store.bodies.prune(e.now()),n=await e.store.bodies.sweepOrphans();return{removed:t,orphans:n}}async function vd(e){return Ts("a vacuum",async()=>{let t=e.fs.stat(e.store.databasePath)?.size??0,n=e.now();await e.store.maintenance.vacuum();let r=e.fs.stat(e.store.databasePath)?.size??0;return{reclaimedBytes:Math.max(0,t-r),durationMs:Math.max(0,e.now()-n)}})}async function Td(e){let t=e.store.databasePath,[n,r,o]=await Promise.all([e.store.maintenance.stats(),e.store.maintenance.tables(),e.store.config.getSettings()]),i={engine:e.store.engine,location:t,stats:n,logicalBytes:n.pageSize*n.pageCount,freePageBytes:n.pageSize*n.freelistCount,retention:lk(o),tables:r};if(e.store.engine==="postgres")return{...i,fileBytes:0,walBytes:0,bodiesBytes:r.find((a)=>a.name==="request_bodies")?.bytes??0,freeDiskBytes:null,snapshots:{count:0,totalBytes:0,latestAt:null}};let s=Kr(e);return{...i,fileBytes:e.fs.stat(t)?.size??0,walBytes:e.fs.stat(`${t}-wal`)?.size??0,bodiesBytes:e.fs.dirBytes(yr(t)),freeDiskBytes:e.fs.freeBytes(Es(t)),snapshots:{count:s.length,totalBytes:s.reduce((a,u)=>a+u.sizeBytes,0),latestAt:s[0]?.createdAt??null}}}async function Rd(e,t,n){let r=Q(Vc,n),o=e.now(),i=await zr(e.store,o),s=i.models.get(t);if(s===void 0)throw new b("MODEL_UNAVAILABLE",`no virtual model "${t}"`);let a={model:t,messages:[{role:"user",content:r.images?[{type:"image",mediaType:"image/png",data:""}]:[{type:"text",text:""}]}],stream:!1,...r.tools?{tools:[{kind:"portable",name:"probe",description:"",inputSchema:{type:"object"}}]}:{},...r.reasoning?{reasoning:{mode:"adaptive"}}:{}},u=ok({request:a,model:s,snapshot:i,now:o,rand:0,load:new Map,...e.providers===void 0?{}:{providers:e.providers}});return{modelId:s.id,strategy:s.strategy,deterministic:s.strategy!=="weighted",rankedAt:o,candidates:u.candidates.map((c)=>({credentialId:c.credential.id,credentialLabel:c.credential.label,provider:c.credential.provider,model:c.target.model,tier:c.target.tier,score:c.score,reasons:c.reasons})),excluded:u.excluded.map((c)=>({credentialId:c.credentialId,model:c.model,reason:c.reason}))}}async function Sd(e,t,n=Date.now()){let r=(await e.keys.list()).filter((s)=>s.revokedAt===null&&s.guardrailPolicy!==null).length,o=await zr(e,n),i=o.settings.guardrailModel;if(r===0)return{keysWithPolicy:r,model:i,problem:null};if(i===null)return{keysWithPolicy:r,model:i,problem:"unconfigured"};try{return dd(i,o,t),{keysWithPolicy:r,model:i,problem:null}}catch{return{keysWithPolicy:r,model:i,problem:"unresolved"}}}function dI(e){let t=new Set;for(let n of["requests","tokens","spend"]){let r=e[n];if(r===void 0)continue;for(let o of xn){let i=r[o];if(i!==void 0&&i!==null)t.add(o)}}return[...t]}async function lI(e,t,n,r){if(n===null)return[];let o=await fk(e,t,n,null,r);for(let i of Object.keys(n.models??{})){let s=Qa(n,i);if(s===void 0)continue;o.push(...await fk(e,t,s,i,r))}return o}async function fk(e,t,n,r,o){let i=new Map;for(let a of dI(n)){let u=o-Mo[a];i.set(a,await e.usage.sumSince(t,u,r??void 0))}let s=[];for(let a of["requests","tokens","spend"]){let u=n[a];if(u===void 0)continue;for(let c of xn){let d=u[c];if(d===void 0||d===null)continue;let p=i.get(c),l=p===void 0?null:a==="requests"?p.requests:a==="tokens"?p.tokens:p.costUsd;s.push({dimension:a,window:c,limit:d,used:l,model:r})}}if(n.concurrency!==void 0&&n.concurrency!==null)s.push({dimension:"concurrency",window:null,limit:n.concurrency,used:null,model:r});return s}async function Gr(e,t,n){return{id:t.id,label:t.label,prefix:t.prefix,modelAllowlist:t.modelAllowlist,limits:t.limits,limitUsage:await lI(e,t.id,t.limits,n),bodyLoggingOptOut:t.bodyLoggingOptOut,createdAt:t.createdAt,revokedAt:t.revokedAt,expiresAt:t.expiresAt,guardrailPolicy:t.guardrailPolicy}}async function jt(e,t=Date.now()){let n=await e.keys.list();return Promise.all(n.map((r)=>Gr(e,r,t)))}async function xd(e,t){let n=Q(Yc,t),r=Au(),o=await e.keys.create({id:crypto.randomUUID(),label:n.label,prefix:r.slice(0,12),hash:await vr(r),modelAllowlist:n.modelAllowlist,limits:n.limits,bodyLoggingOptOut:n.bodyLoggingOptOut,expiresAt:n.expiresAt,guardrailPolicy:n.guardrailPolicy});return{id:o.id,label:o.label,prefix:o.prefix,key:r}}async function Ad(e,t,n,r=Date.now()){let o=Q(zb,n),i=await e.keys.get(t);if(i===null)throw new b("BAD_REQUEST","no such api key");return await e.keys.setLimits(t,o.limits),Gr(e,{...i,limits:o.limits},r)}async function Od(e,t,n,r=Date.now()){let o=Q(qb,n),i=await e.keys.get(t);if(i===null)throw new b("BAD_REQUEST","no such api key");return await e.keys.setModelAllowlist(t,o.modelAllowlist),Gr(e,{...i,modelAllowlist:o.modelAllowlist},r)}async function Cd(e,t,n,r=Date.now()){let o=Q(Hb,n),i=await e.keys.get(t);if(i===null)throw new b("BAD_REQUEST","no such api key");return await e.keys.setExpiry(t,o.expiresAt),Gr(e,{...i,expiresAt:o.expiresAt},r)}async function Pd(e,t,n,r=Date.now()){let o=Q(Wb,n),i=await e.keys.get(t);if(i===null)throw new b("BAD_REQUEST","no such api key");return await e.keys.setGuardrailPolicy(t,o.policy),Gr(e,{...i,guardrailPolicy:o.policy},r)}async function Id(e,t){await e.keys.revoke(t)}var $n={kind:"all"};function Zr(e){return e.kind==="key"?e.apiKeyId:void 0}function Fn(e){return e.kind==="none"||e.kind==="key"&&e.apiKeyId===""}var gk=500,pI=100;async function Ld(e,t,n=$n){let r=Q(nd,t.grain??"raw"),o=hs(r,Q(gs,t.groupBy??"model")),i=t.splitBy===void 0?void 0:hs(r,Q(gs,t.splitBy));if(n.kind!=="all"){for(let c of[o,i])if(c==="credential")throw new b("BAD_REQUEST","this dimension is not available on this surface");if(t.credentialId!==void 0||t.apiKeyId!==void 0)throw new b("BAD_REQUEST","this filter is not available on this surface")}let s=t.credentialId===void 0?void 0:Q(td,t.credentialId),a=t.apiKeyId===void 0?void 0:Q(Kb,t.apiKeyId);if(Fn(n))return[];let u=n.kind==="all"?a:Zr(n);return e.store.usage.aggregate({grain:r,groupBy:o,...i===void 0?{}:{splitBy:i},...u===void 0?{}:{apiKeyId:u},...s===void 0?{}:{credentialId:s},since:Pt(t.since,0),until:Pt(t.until,e.now())})}function Nd(e){let t=Pt(e,pI);return Math.floor(Math.min(Math.max(1,t),gk))}var _k=1,wk=128,mI=256,hk=K().min(1).max(wk),Rs=K().min(1).max(mI),yk=Xa([N(),K().regex(/^-?\d+$/,"must be epoch milliseconds").transform(Number)]).pipe(N().int()),fI=re({cursor:K().max(512).optional(),limit:Xa([K(),N()]).optional(),since:yk.optional(),until:yk.optional(),state:St(["pending","done"]).optional(),failed:St(["true","false"]).optional(),provider:Un.optional(),requestedModel:Rs.optional(),resolvedModel:Rs.optional(),model:Rs.optional(),credentialId:hk.optional(),apiKeyId:hk.optional(),errorCode:Rs.optional()}).strict();function gI(e){let t={};for(let[n,r]of Object.entries(e)){if(r===void 0||r==="")continue;t[n]=typeof r==="boolean"?String(r):r}return t}function Md(e){let t=JSON.stringify({v:_k,at:e.at,id:e.id});return Buffer.from(t,"utf8").toString("base64url")}function bk(e){let t=()=>{throw new b("BAD_REQUEST","cursor: malformed")},n;try{n=JSON.parse(Buffer.from(e,"base64url").toString("utf8"))}catch{return t()}if(typeof n!=="object"||n===null||Array.isArray(n))return t();let r=n;if(Object.keys(r).length!==3)return t();if(r.v!==_k)throw new b("BAD_REQUEST","cursor: unknown version");let{at:i,id:s}=r;if(typeof i!=="number"||!Number.isSafeInteger(i))return t();if(typeof s!=="string"||s.length===0||s.length>wk)return t();let a={at:i,id:s};if(Md(a)!==e)return t();return a}function kk(e,t){let n=Q(fI,gI(e)),{since:r,until:o}=n;if(r!==void 0&&o!==void 0&&r>o)throw new b("BAD_REQUEST","since: must not be after until");let i=Zr(t);return{limit:Nd(n.limit),cursor:n.cursor===void 0?null:bk(n.cursor),...n.apiKeyId===void 0?{}:{apiKeyId:n.apiKeyId},...i===void 0?{}:{apiKeyId:i},...n.credentialId===void 0?{}:{credentialId:n.credentialId},...n.provider===void 0?{}:{provider:n.provider},...n.requestedModel===void 0?{}:{requestedModel:n.requestedModel},...n.resolvedModel===void 0?{}:{resolvedModel:n.resolvedModel},...n.model===void 0?{}:{model:n.model},...n.errorCode===void 0?{}:{errorCode:n.errorCode},...n.state===void 0?{}:{state:n.state},...n.failed==="true"?{failed:!0}:{},...r===void 0?{}:{since:r},...o===void 0?{}:{until:o}}}async function Ss(e,t={},n=$n){let r=kk(t,n);if(Fn(n))return{logs:[],nextCursor:null};let o=await e.usage.page(r);return{logs:o.logs,nextCursor:o.next===null?null:Md(o.next)}}var hI=500,Dd=["id","state","at","apiKeyId","requestedModel","resolvedProvider","resolvedModel","credentialId","attempts","status","errorCode","inputTokens","outputTokens","cacheReadTokens","cacheWriteTokens","ttftMs","durationMs","costUsd","degradations","rtkApplied","rtkFilterHits","rtkOriginalCodeUnits","rtkCompressedCodeUnits","rtkEstimatedTokensSaved","rtkFilters"];function Ek(e){if(e===null||e===void 0)return"";let t=Array.isArray(e)?JSON.stringify(e):String(e),n=t.trimStart().charAt(0),r="=+-@".includes(n)&&n!==""?`'${t}`:t;return/[",\r\n]/.test(r)?`"${r.replaceAll('"','""')}"`:r}var vk=(e)=>`${e.map(Ek).join(",")}\r
|
|
1674
1674
|
`;function Ud(e){return e==="csv"?vk(Dd):""}function Tk(e,t){if(e==="jsonl"){let n={};for(let r of Dd)n[r]=t[r];return`${JSON.stringify(n)}
|
|
1675
|
-
`}return vk(Dd.map((n)=>t[n]))}var yI=St(["csv","jsonl"]);async function*$d(e,t,n=$n){let{format:r,...o}=t,i=V(yI,r??"csv");if(t.since===void 0||t.since==="")throw new w("BAD_REQUEST","since: required for export");if(t.until===void 0||t.until==="")throw new w("BAD_REQUEST","until: required for export");let s=kk({...o,limit:hI,cursor:void 0},n);if(Fn(n)){yield Ud(i);return}let a=await e.usage.page(s);yield Ud(i);for(;;){for(let c of a.logs)yield Tk(i,c);if(a.next===null)return;a=await e.usage.page({...s,cursor:a.next})}}function Rk(e,t){let n=[e.contextWindow,t.contextWindow].filter((o)=>o!==void 0),r=[e.maxOutputTokens,t.maxOutputTokens].filter((o)=>o!==void 0);return{...n.length===0?{}:{contextWindow:Math.min(...n)},...r.length===0?{}:{maxOutputTokens:Math.min(...r)}}}function _I(e,t,n,r){let o=n!==void 0?[n.authType]:t.size===0?["apiKey"]:[...t],i=r[e.provider]?.catalog,s={};for(let u of i===void 0?[]:o){let d=i===void 0?null:Ir(i,e.model,u);if(d===null)continue;s=Rk(s,{contextWindow:d.contextWindow,maxOutputTokens:d.maxOutputTokens})}let a=e.contextWindow??s.contextWindow,c=e.maxOutputTokens??s.maxOutputTokens;return{...a===void 0?{}:{contextWindow:a},...c===void 0?{}:{maxOutputTokens:c}}}function wI(e){let t=new Map,n=[];for(let r of e){if(!r.enabled)continue;let o=t.get(r.provider)??new Set;o.add(r.authType),t.set(r.provider,o),n.push(r)}return{byProvider:t,routable:n}}function Fd(e,t,n=M){let{byProvider:r,routable:o}=wI(t),i={};for(let s of e.targets)i=Rk(i,_I(s,r.get(s.provider)??new Set,Pn(s,o),n));return i}function Bd(e,t=M){let n=e.targets.length===1?e.targets[0]:void 0;if(n===void 0)return e.id;return t[n.provider]?.catalog.models.find((o)=>o.id===n.model)?.label??e.id}async function mn(e){return e.config.listModels()}async function xs(e,t){let n=(await e.config.listModels()).find((r)=>r.id===t);if(n===void 0)throw new w("MODEL_UNAVAILABLE",`no virtual model "${t}"`);return n}var bI={oauth:"OAuth",apiKey:"API key"};function zd(e){return e.map((t)=>bI[t]).join(" or ")}function kI(e){let t=new Map;for(let n of e){let r=t.get(n.provider)??new Set;r.add(n.authType),t.set(n.provider,r)}return t}function Sk(e){return`${e.provider}\x00${e.model}`}function EI(e,t,n){let r=kI(t),o=new Set((n?.targets??[]).map(Sk));for(let i of e.targets){let s=Pn(i,t);if(s===void 0&&o.has(Sk(i)))continue;let a=s===void 0?r.get(i.provider):new Set([s.authType]);if(a===void 0)continue;let c=M[i.provider]?.catalog,u=c===void 0?x_:S_(c,i.model);if(u.some((l)=>a.has(l)))continue;let d=s===void 0?`every ${i.provider} credential here is ${zd([...a])}`:`this target is pinned to "${s.label}", which is ${zd([...a])}`,p=s===void 0?"connect the other kind, or pick a model this one can reach":"pin it to the other kind, or pick a model this account can reach";return new w("BAD_REQUEST",`${i.provider} serves "${i.model}" to ${zd(u)} credentials only, and ${d} \u2014 ${p}`)}return null}async function qd(e,t,n){let r=V(Qc,n);if(r.id!==t)throw new w("BAD_REQUEST","model id in the path and body must match");let o=await e.credentials.list(),i=new Set(o.filter((c)=>c.provider==="custom").map((c)=>c.providerData.endpointId).filter((c)=>typeof c==="string")),s=r.targets.find((c)=>c.provider==="custom"&&(c.endpointId===void 0||!i.has(c.endpointId)));if(s!==void 0)throw new w("BAD_REQUEST",`custom endpoint "${s.endpointId}" has no credential`);let a=EI(r,o,(await e.config.listModels()).find((c)=>c.id===t));if(a!==null)throw a;await e.config.putModel(r)}async function Hd(e,t){await e.config.removeModel(t)}import{copyFileSync as VI,mkdirSync as Fk,readdirSync as Jd,readFileSync as $k,realpathSync as QI,renameSync as Bk,rmSync as zk,statfsSync as YI,statSync as Ls,writeFileSync as JI}from"fs";import{join as eL}from"path";import{Buffer as AI}from"buffer";import{basename as CI,join as ze,resolve as Pk,sep as OI}from"path";var Bn=3,As="0.1.9";var Ck=["storage","files","net:outbound","events:request","events:limit","channels","provider"],vI=/^[a-z][a-z0-9-]{0,31}$/,TI=K().regex(vI,"id must match /^[a-z][a-z0-9-]{0,31}$/"),xk=K().min(1).refine((e)=>!e.startsWith("/")&&!e.split("/").includes(".."),{message:"entry must be a relative path with no '..' segment"}),RI=K().refine((e)=>{let t;try{t=new URL(e)}catch{return!1}if(t.protocol!=="https:"&&t.protocol!=="http:")return!1;if(t.hostname==="")return!1;if(t.pathname!=="/"||t.search!==""||t.hash!=="")return!1;return e===t.origin||e===`${t.origin}/`},{message:"origin must be scheme://host with no path, query or fragment"}),SI=ne({label:K().min(1).max(32)}).strict(),Ak=["net:outbound","provider"],xI=ne({id:TI,name:K().min(1).max(64),version:K().min(1).max(32),api:N().int().nonnegative(),sdk:K().min(1).max(32).optional(),server:xk.optional(),ui:xk.optional(),nav:SI.optional(),capabilities:Sn(St(Ck)).default([]),origins:Sn(RI).min(1).optional(),defaults:gh(K(),Ga()).optional()}).strict().refine((e)=>e.server!==void 0||e.ui!==void 0,{message:"manifest must declare a server entry, a ui entry, or both"}).refine((e)=>e.ui===void 0||e.sdk!==void 0,{message:"a ui entry requires an sdk range"}).refine((e)=>!Ak.some((t)=>e.capabilities.includes(t))||e.origins!==void 0,{message:"net:outbound and provider each require origins"}).refine((e)=>Ak.some((t)=>e.capabilities.includes(t))||e.origins===void 0,{message:"origins requires the net:outbound or provider capability"});function Cs(e){let t=xI.safeParse(e);if(t.success)return{ok:!0,manifest:t.data};let n=t.error.issues[0],r=n?.path.join(".")??"",o=n?.message??"invalid manifest";return{ok:!1,reason:r===""?o:`${r}: ${o}`}}function Wd(e){return e.api===Bn}var Ik="plugins";function Ce(e){return ze(e,Ik)}var Kt="omni-plugin.json",Os=".omni-install.json",gn=33554432,qn=/^[a-z][a-z0-9-]{0,31}$/,PI="package";function II(e,t){let n=e.readText(ze(t,Kt));if(n===null)return{check:"manifest",reason:`no ${Kt}`,fatal:!0};let r;try{r=JSON.parse(n)}catch(i){let s=H(i,String(i));return{check:"manifest",reason:`${Kt} is not valid JSON: ${s}`,fatal:!0}}let o=Cs(r);if(!o.ok)return{check:"manifest",reason:o.reason,fatal:!0};return o.manifest}function Ok(e,t,n,r,o){let i=Pk(t,n);if(i!==t&&!i.startsWith(`${t}${OI}`))return{check:"entry",reason:`${r} entry resolves outside the plugin directory`,fatal:o};if(!e.isFile(i))return{check:"entry",reason:`${r} entry ${n} does not exist`,fatal:o};return null}function Xd(e,t,n){let r=ze(Ce(t),n);if(!qn.test(n)||!e.fs.isDirectory(r))throw new w("BAD_REQUEST",`no plugin "${n}" installed under ${Ce(t)}`);return Lk(e,r,n)}function Lk(e,t,n){let r=[],o=II(e.fs,t);if(!("id"in o))return r.push(o),{id:n,path:t,manifest:null,problems:r,loadable:!1};let i=o;if(i.id!==n)r.push({check:"id",reason:`manifest id ${i.id} does not match its directory ${n}`,fatal:!0});if(!Wd(i))r.push({check:"api",reason:`plugin api ${i.api} is not supported by this host (api ${Bn})`,fatal:!0});if(i.server!==void 0){let a=Ok(e.fs,t,i.server,"server",!0);if(a!==null)r.push(a)}if(i.ui!==void 0){let a=Ok(e.fs,t,i.ui,"ui",!1);if(a!==null)r.push(a)}let s=LI(e,i);if(s!==null)r.push(s);return{id:n,path:t,manifest:i,problems:r,loadable:!r.some((a)=>a.fatal)}}function LI(e,t){if(t.ui===void 0||t.sdk===void 0)return null;if(e.sdkVersion===void 0)return null;if(Bun.semver.satisfies(e.sdkVersion,t.sdk))return null;return{check:"sdk",reason:`requires dashboard sdk ${t.sdk}, host ships ${e.sdkVersion}`,fatal:!1}}function Gt(e,t){let n=Ce(t),r=[];for(let o of[...e.fs.readdir(n)].sort()){let i=ze(n,o);if(!e.fs.isDirectory(i))continue;if(!qn.test(o)){r.push({id:o,path:i,manifest:null,problems:[{check:"id",reason:`directory name ${o} is not a valid plugin id`,fatal:!0}],loadable:!1,name:null,version:null,api:null,sdk:null,capabilities:[],origins:[]});continue}let s=Lk(e,i,o),a=s.manifest;r.push({...s,name:a?.name??null,version:a?.version??null,api:a?.api??null,sdk:a?.sdk??null,capabilities:a?.capabilities??[],origins:a?.origins??[]})}return r}var Zr=512,Ps=new TextDecoder,NI=new TextEncoder;function jd(e,t,n){let r=e.subarray(t,t+n),o=r.indexOf(0);return Ps.decode(o===-1?r:r.subarray(0,o))}function DI(e,t,n){let r=jd(e,t,n).trim();if(r.length===0)return 0;let o=Number.parseInt(r,8);return Number.isSafeInteger(o)&&o>=0?o:-1}function UI(e){if(e.length===0||e.startsWith("/")||e.includes("\x00"))return!1;if(e.includes("\\"))return!1;return!e.split("/").includes("..")}function Kd(e){let t=new Map,n=0,r=null,o=0;while(o+Zr<=e.length){let i=e.subarray(o,o+Zr);if(i.every((l)=>l===0))break;let s=DI(i,124,12);if(s<0)throw new w("BAD_REQUEST","archive has an unreadable entry size");let a=String.fromCharCode(i[156]??0),c=jd(i,0,100),u=jd(i,345,155);if(o+=Zr,n+=s,n>gn)throw new w("BAD_REQUEST",`archive unpacks to more than ${gn} bytes`);if(o+s>e.length)throw new w("BAD_REQUEST",`archive is truncated: entry ${c||"(unnamed)"} declares ${s} bytes and the archive ends before them`);let d=e.subarray(o,o+s);if(o+=Math.ceil(s/Zr)*Zr,a==="1"||a==="2")throw new w("BAD_REQUEST",`archive contains a link (${c}); plugin packages must be plain files`);if(a==="L"){r=Ps.decode(d).replace(/\0+$/,"");continue}if(a==="K"||a==="x"||a==="g")continue;if(a!=="0"&&a!=="\x00"){r=null;continue}let p=r??(u.length>0?`${u}/${c}`:c);if(r=null,!UI(p))throw new w("BAD_REQUEST",`archive contains an unsafe path: ${p}`);t.set(p,new Uint8Array(d))}return t}function Gd(e){if(e[0]!==31||e[1]!==139)return e;try{return Bun.gunzipSync(new Uint8Array(e))}catch(t){let n=H(t,String(t));throw new w("BAD_REQUEST",`could not decompress the archive: ${n}`)}}function Zd(e){let t=new Set;for(let o of e.keys()){let i=o.indexOf("/");if(i<=0)return{files:e,claimedId:null};t.add(o.slice(0,i))}let[n]=[...t];if(t.size!==1||n===void 0)return{files:e,claimedId:null};let r=new Map;for(let[o,i]of e)r.set(o.slice(n.length+1),i);return{files:r,claimedId:n===PI?null:n}}function Nk(e,t,n=""){let r=new Map,o=0;for(let i of e.readdir(t)){let s=ze(t,i),a=n.length===0?i:`${n}/${i}`;if(e.isDirectory(s)){for(let[u,d]of Nk(e,s,a))r.set(u,d);continue}let c=e.readBytes(s);if(c===null)continue;if(o+=c.byteLength,o>gn)throw new w("BAD_REQUEST",`${t} holds more than ${gn} bytes`);r.set(a,c)}return r}var Dk="https://registry.npmjs.org",Uk="application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*",MI=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,$I=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)*$/,FI=["sha512","sha384","sha256"];function zn(e){if(typeof e!=="object"||e===null||Array.isArray(e))return null;return e}function fn(e){return typeof e==="string"?e:null}function BI(e){let t=e.lastIndexOf("@"),n=t<=0?e:e.slice(0,t),r=t<=0?null:e.slice(t+1);if(n.length>214||!MI.test(n))return null;return{name:n,version:r}}function zI(e){let t=e.registry??Dk,n;try{n=new URL(t)}catch{throw new w("BAD_REQUEST",`registry ${t} is not a URL`)}if(n.protocol!=="https:")throw new w("BAD_REQUEST",`plugins may only be installed over https; ${t} is not`);return n}function qI(e,t){return`${e.href.replace(/\/+$/,"")}/${t.replace("/","%2f")}`}function HI(e,t){let n=zn(e);if(n===null)throw new w("BAD_REQUEST",`the registry's answer for ${t.name} is not a package`);let r=zn(n.versions);if(r===null)throw new w("BAD_REQUEST",`the registry lists no versions of ${t.name}`);let o=t.version;if(o===null){let c=zn(n["dist-tags"]);if(o=c===null?null:fn(c.latest),o===null)throw new w("BAD_REQUEST",`the registry names no dist-tags.latest for ${t.name}; install ${t.name}@<exact version>`)}let i=zn(r[o]);if(i===null)throw new w("BAD_REQUEST",`the registry has no version ${o} of ${t.name}`);let s=zn(i.dist),a=s===null?null:fn(s.tarball);if(s===null||a===null)throw new w("BAD_REQUEST",`the registry's entry for ${t.name}@${o} names no tarball`);return{version:o,dist:{tarball:a,integrity:fn(s.integrity),shasum:fn(s.shasum)}}}function WI(e,t,n){let r;try{r=new URL(e)}catch{throw new w("BAD_REQUEST",`the registry gave ${n} a tarball that is not a URL`)}if(r.protocol!=="https:")throw new w("BAD_REQUEST",`plugins may only be installed over https; the registry points ${n} at ${e}`);if(r.host!==t.host)throw new w("BAD_REQUEST",`registry ${t.host} points ${n} at ${r.host}; install that URL directly if it is the one you meant`)}function jI(e,t){let n=[];if(e.integrity!==null)for(let r of e.integrity.trim().split(/\s+/)){let o=r.indexOf("-"),i=o===-1?"":r.slice(0,o),s=o===-1?"":r.slice(o+1);if(s.length===0)continue;let a=FI.find((c)=>c===i);if(a===void 0)continue;n.push({algorithm:a,expected:AI.from(s,"base64").toString("hex"),source:`${a} integrity`})}if(n.length===0&&e.shasum!==null&&/^[0-9a-f]{40}$/i.test(e.shasum))n.push({algorithm:"sha1",expected:e.shasum.toLowerCase(),source:"sha1 shasum"});if(n.length===0)throw new w("BAD_REQUEST",`the registry advertises no usable integrity or shasum for ${t}; refusing to install bytes nothing vouches for`);return n}function KI(e,t,n){for(let o of t)if(new Bun.CryptoHasher(o.algorithm).update(e).digest("hex")===o.expected)return;let r=t[0];throw new w("BAD_REQUEST",`${n} does not match the ${r?.source??"digest"} the registry advertised; the download was corrupted or the registry served something else`)}async function GI(e,t){if(t.version!==null&&!$I.test(t.version))throw new w("BAD_REQUEST",`${t.name}@${t.version} is not an exact version; this installer resolves no ranges `+`or tags \u2014 install ${t.name}@1.2.3, or ${t.name} for the registry's latest`);let n=e.fetchBytes;if(n===void 0)throw new w("BAD_REQUEST","this caller cannot install from a registry");let r=zI(e),o=ZI(await n(qI(r,t.name),Uk),`the registry's answer for ${t.name}`),{version:i,dist:s}=HI(o,t),a=`${t.name}@${i}`;WI(s.tarball,r,a);let c=jI(s,a),u=await n(s.tarball);return KI(u,c,a),Zd(Kd(Gd(u)))}function ZI(e,t){try{return JSON.parse(Ps.decode(e))}catch(n){let r=H(n,String(n));throw new w("BAD_REQUEST",`${t} is not valid JSON: ${r}`)}}async function XI(e,t){if(t.startsWith("http://"))throw new w("BAD_REQUEST","plugins may only be installed over https");if(t.startsWith("https://")){if(e.fetchBytes===void 0)throw new w("BAD_REQUEST","this caller cannot install from a URL");return Zd(Kd(Gd(await e.fetchBytes(t))))}let n=Pk(t);if(e.fs.isDirectory(n)){let i=Nk(e.fs,n),s=CI(n);return{files:i,claimedId:qn.test(s)?s:null,recordSpec:n}}let r=e.fs.readBytes(n);if(r!==null)return{...Zd(Kd(Gd(r))),recordSpec:n};let o=BI(t);if(o!==null)return GI(e,o);throw new w("BAD_REQUEST",`no directory or archive at ${n}, and "${t}" is not a package name`)}async function Is(e,t,n,r={}){let o=await XI(e,n),i=o.files.get(Kt);if(i===void 0)throw new w("BAD_REQUEST",`${n} has no ${Kt} at its root`);let s;try{s=JSON.parse(Ps.decode(i))}catch(g){let h=H(g,String(g));throw new w("BAD_REQUEST",`${Kt} is not valid JSON: ${h}`)}let a=Cs(s);if(!a.ok)throw new w("BAD_REQUEST",`invalid ${Kt}: ${a.reason}`);let c=a.manifest,u=o.claimedId??c.id;if(c.id!==u)throw new w("BAD_REQUEST",`manifest id ${c.id} does not match its directory ${u}; rename one of them so the gateway loads what you installed`);if(r.expectId!==void 0&&u!==r.expectId)throw new w("BAD_REQUEST",`${n} installs plugin "${u}", which does not match "${r.expectId}"; `+"an update reinstalls the plugin it names and nothing else \u2014 install the new id "+"separately if the rename was intended");let d=Ce(t),p=ze(d,u),l=e.fs.isDirectory(p),m=ze(d,`.staging-${u}`);e.fs.rm(m);try{for(let[h,f]of o.files){let y=ze(m,h);e.fs.mkdir(ze(y,"..")),e.fs.writeBytes(y,f)}let g={spec:o.recordSpec??n,installedAt:new Date((e.now??Date.now)()).toISOString(),version:c.version};e.fs.mkdir(m),e.fs.writeBytes(ze(m,Os),NI.encode(`${JSON.stringify(g,null,2)}
|
|
1676
|
-
`)),e.fs.rm(p),e.fs.rename(m,p)}finally{e.fs.rm(m)}return{id:u,name:c.name,version:c.version,path:p,spec:o.recordSpec??n,replaced:l,restartRequired:!0}}function Mk(e,t,n){if(!qn.test(n))return null;let r=e.fs.readText(ze(Ce(t),n,Os));if(r===null)return null;let o;try{o=JSON.parse(r)}catch{return null}let i=zn(o);if(i===null)return null;let s=fn(i.spec),a=fn(i.installedAt),c=fn(i.version);if(s===null||s.length===0||a===null||c===null)return null;return{spec:s,installedAt:a,version:c}}async function Vd(e,t,n){if(!qn.test(n)||!e.fs.isDirectory(ze(Ce(t),n)))throw new w("BAD_REQUEST",`no plugin "${n}" installed under ${Ce(t)}`);let r=Mk(e,t,n);if(r===null)throw new w("BAD_REQUEST",`plugin "${n}" has no readable ${Os}, so nothing here knows where it `+"came from; it was copied in by hand or installed before this host recorded a source \u2014 "+"reinstall it once with omni plugin install <spec> to seed the record");return Is(e,t,r.spec,{expectId:n})}async function Qd(e,t,n,r={}){if(!qn.test(n))throw new w("BAD_REQUEST",`"${n}" is not a valid plugin id`);let o=ze(Ce(t),n),i=e.fs.isDirectory(o),s=r.purge===!0;if(s&&e.store===void 0)throw new w("INTERNAL","purging a plugin's data needs a database");let a=s&&e.store!==void 0?await e.store.plugins.listTables(n):[];if(!i&&a.length===0)throw new w("BAD_REQUEST",`no plugin "${n}" installed under ${Ce(t)}`);if(i)e.fs.rm(o);if(s&&e.store!==void 0)await e.store.plugins.dropAll(n);return{id:n,removed:i,droppedTables:a}}function Yd(e,t,n){let r=Gt(e,t).map((o)=>o.id);return n.plugins.orphanTables(r)}function el(){let e=(t)=>{let n;try{n=Jd(t,{withFileTypes:!0,encoding:"utf8"})}catch{return 0}let r=0;for(let o of n){let i=eL(t,o.name);if(o.isDirectory()){r+=e(i);continue}try{r+=Ls(i).size}catch{}}return r};return{readdir:(t)=>{try{return Jd(t)}catch{return[]}},stat:(t)=>{try{let n=Ls(t);return{size:n.size,mtimeMs:n.mtimeMs}}catch{return null}},unlink:(t)=>{zk(t,{force:!0})},rename:(t,n)=>Bk(t,n),copyFile:(t,n)=>VI(t,n),mkdir:(t)=>{Fk(t,{recursive:!0})},realpath:(t)=>{try{return QI(t)}catch{return null}},freeBytes:(t)=>{try{let n=YI(t);return Number(n.bavail)*Number(n.bsize)}catch{return null}},dirBytes:e}}function Xr(){return{readdir:(e)=>{try{return Jd(e)}catch{return[]}},readText:(e)=>{try{return $k(e,"utf8")}catch{return null}},readBytes:(e)=>{try{return new Uint8Array($k(e))}catch{return null}},writeBytes:(e,t)=>{JI(e,t)},isDirectory:(e)=>{try{return Ls(e).isDirectory()}catch{return!1}},isFile:(e)=>{try{return Ls(e).isFile()}catch{return!1}},mkdir:(e)=>{Fk(e,{recursive:!0})},rm:(e)=>{zk(e,{force:!0,recursive:!0})},rename:(e,t)=>Bk(e,t)}}function tl(e={}){let t=e.fetchImpl??fetch,n=e.maxBytes??gn;return async(r,o)=>{if(!r.startsWith("https://"))throw new w("BAD_REQUEST",`plugins may only be fetched over https; ${r} is not`);let i=await t(r,{headers:o===void 0?{}:{accept:o},redirect:"follow"});if(!i.ok)throw new w("BAD_REQUEST",`${r} answered ${i.status}`);let s=i.body?.getReader();if(s===void 0)return new Uint8Array(0);let a=[],c=0;for(;;){let{done:p,value:l}=await s.read();if(p)break;if(l===void 0)continue;if(c+=l.byteLength,c>n)throw await s.cancel(),new w("BAD_REQUEST",`${r} sent more than ${n} bytes`);a.push(l)}let u=new Uint8Array(c),d=0;for(let p of a)u.set(p,d),d+=p.byteLength;return u}}function qk(){return Buffer.from(crypto.getRandomValues(new Uint8Array(32))).toString("base64url")}function Hk(){let e=qk();return{verifier:e,challenge:Bun.SHA256.hash(e,"base64url")}}function Wk(){return qk()}var jk=4,Kk=30000,Gk=150000;function Zt(e,t,n){return new w("UPSTREAM",`${e} oauth ${t} ${n}`,{provider:e,gatewayAuthored:!0})}function tL(e){if(typeof e!=="object"||e===null)return!1;let t=e;return Ar(t.url)&&Cr(t.method)&&Array.isArray(t.headers)&&t.headers.every((n)=>Array.isArray(n)&&n.length===2&&typeof n[0]==="string"&&typeof n[1]==="string")&&(t.body===void 0||typeof t.body==="string")&&(t.timeoutMs===void 0||typeof t.timeoutMs==="number"&&Number.isFinite(t.timeoutMs)&&t.timeoutMs>0)}async function hn(e,t,n,r,o){let i;try{return await Promise.race([nL(e,t,n,r,o),new Promise((s,a)=>{i=setTimeout(()=>{a(Zt(e,t,`did not finish within ${Gk}ms`))},Gk),i.unref?.()})])}finally{if(i!==void 0)clearTimeout(i);n.return(void 0).catch(()=>{})}}async function nL(e,t,n,r,o){let i=0,s;try{s=await n.next()}catch(c){throw Hn(e,t,c)}while(!s.done){if(++i>jk)throw Zt(e,t,`asked for more than ${jk} requests`);let c=s.value,u={url:c.url,method:c.method,headers:Array.isArray(c.headers)?[...c.headers]:[],...c.body===void 0?{}:{body:c.body},...c.timeoutMs===void 0?{}:{timeoutMs:c.timeoutMs}};if(!tL(u)||!Array.isArray(c.headers))throw Zt(e,t,"yielded something that is not a request");if(o!==void 0&&!xr(u.url,o))throw Zt(e,t,"described a request to an origin its manifest does not declare");let d;try{d=await r.http({provider:e,url:u.url,method:u.method,headers:u.headers,body:u.body??"",signal:AbortSignal.timeout(Math.min(u.timeoutMs??Kk,Kk))})}catch(l){try{s=await n.throw(Hn(e,t,l))}catch(m){throw Hn(e,t,m)}continue}let p;try{p=await d.text()}catch(l){try{s=await n.throw(Hn(e,t,l))}catch(m){throw Hn(e,t,m)}continue}try{s=await n.next({status:d.status,headers:d.headers,body:p})}catch(l){throw Hn(e,t,l)}}let a=iL[t];if(a!==void 0&&!a(s.value))throw Zt(e,t,"returned something the host cannot use");return s.value}function Hn(e,t,n){if(n instanceof w)return n;if(n instanceof Error&&n.name==="GatewayError")return Zt(e,t,"threw a GatewayError from its own bundled copy, whose classification the host cannot trust; build the error with the fail() it was handed");return Zt(e,t,"threw")}function Ns(e,t,n={}){let{origins:r,trusted:o=!1}=n,i=(c)=>({fail:(u,d,p)=>new w(u,d,{provider:e,...p?.status===void 0?{}:{status:p.status},...o?{gatewayAuthored:!0}:{}}),keepPolling:(u)=>ic(u),pkce:()=>Hk(),randomState:()=>Wk(),now:c.now}),s={id:e,supportsManualPaste:t.supportsManualPaste,start:(c,u)=>hn(e,"start",t.start({...c,...i(u)}),u,r),exchange:(c,u)=>hn(e,"exchange",t.exchange({...c,...i(u)}),u,r),refresh:(c,u,d)=>hn(e,"refresh",t.refresh({refreshToken:c,providerData:d,...i(u)}),u,r),...t.usage===void 0?{}:{usage:(c,u,d)=>{let p=t.usage?.({secrets:c,providerData:d,...i(u)});if(p===void 0)return Promise.resolve(null);return hn(e,"usage",p,u,r)}},...t.resetCredits===void 0?{}:{resetCredits:(c,u,d)=>{let p=t.resetCredits?.({secrets:c,providerData:d,...i(u)});if(p===void 0)return Promise.resolve(null);return hn(e,"resetCredits",p,u,r)}},...t.redeemReset===void 0?{}:{redeemReset:(c,u,d,p,l)=>{let m=t.redeemReset?.({secrets:c,providerData:d,creditId:p,requestId:l,...i(u)});if(m===void 0)return Promise.reject(Zt(e,"redeemReset","has no redeem step"));return hn(e,"redeemReset",m,u,r)}}};if(t.kind==="pkce")return{...s,kind:"pkce"};let a=t.begin;if(a===void 0)throw Error(`plugin ${e} declares a device oauth flow without a begin step`);return{...s,kind:"device",needsDeviceId:t.needsDeviceId===!0,begin:(c,u)=>hn(e,"begin",a({...c,...i(u)}),u,r)}}function Zk(e){if(typeof e!=="object"||e===null)return!1;let t=e;if(typeof t.secrets!=="object"||t.secrets===null)return!1;let n=t.secrets;for(let r of["accessToken","refreshToken","apiKey","idToken"]){let o=n[r];if(o!==null&&typeof o!=="string")return!1}return typeof t.providerData==="object"&&t.providerData!==null}function Xk(e){if(typeof e!=="object"||e===null)return!1;let t=e;return typeof t.authorizeUrl==="string"&&typeof t.pending==="object"&&t.pending!==null}function rL(e){if(e===null)return!0;if(typeof e!=="object")return!1;let t=e;return typeof t.available==="number"&&Array.isArray(t.credits)&&t.credits.every((n)=>{if(typeof n!=="object"||n===null)return!1;let r=n;return typeof r.id==="string"&&typeof r.status==="string"&&(r.title===null||typeof r.title==="string")&&(r.grantedAt===null||typeof r.grantedAt==="number")&&(r.expiresAt===null||typeof r.expiresAt==="number")})}function oL(e){if(typeof e!=="object"||e===null)return!1;let t=e.windowsReset;return t===null||typeof t==="number"}var iL={start:Xk,begin:Xk,exchange:Zk,refresh:Zk,resetCredits:rL,redeemReset:oL};var bt=Object.create(null),Vk=new WeakMap;function nl(e=bt){let t=Vk.get(e)??new Set;Vk.set(e,t);for(let[n,r]of Fc()){if(t.has(n)&&Object.hasOwn(e,n))continue;Qk(n,Ns(n,r,{trusted:!0}),e),t.add(n)}}function rl(e=bt){return Object.keys(e)}function Qk(e,t,n=bt){if(Object.hasOwn(n,e))throw Error(`an oauth flow for ${e} is already installed`);n[e]=t}var ol=300000;var Yk=30000;function Vr(e){let t=e.logger??se,n=e.coord??Mt(),r=new Map;async function o(s){try{return await n.mutex.withLock(`refresh:${s.id}`,Yk,Yk,async()=>{let a=await e.store.credentials.get(s.id);if(a!==null&&a.tokenVersion>s.tokenVersion)return a.secrets();return i(a??s)})}catch(a){if(!(a instanceof $o))throw a;return t.warn("refresh lock unavailable; refreshing unserialised",{provider:s.provider,credentialId:s.id}),i(s)}}async function i(s){let a=await s.openForRefresh();if(a.refreshToken===null)throw new w("AUTH",`credential ${s.id} has no refresh token`);let c=e.providers[s.provider];if(c===void 0)throw new w("BAD_REQUEST","provider does not support OAuth refresh");t.debug("refreshing credential",{provider:s.provider,credentialId:s.id});let u;try{u=await c.refresh(a.refreshToken,{http:e.http,now:e.now},s.providerData)}catch(p){if(p instanceof w&&p.code==="AUTH")t.warn("credential disabled: refresh token rejected",{provider:s.provider,credentialId:s.id,code:"AUTH"}),await e.store.credentials.update(s.id,{enabled:!1,disabledReason:"tokenRejected",disabledAt:e.now()});throw p}if(!await e.store.credentials.updateSecrets(s.id,u.secrets,u.expiresAt,s.tokenVersion)){t.warn("refresh lost a race; using the stored rotation",{provider:s.provider,credentialId:s.id});let p=await e.store.credentials.get(s.id);if(p===null)throw new w("AUTH",`credential ${s.id} is gone`);return p.secrets()}return await e.store.credentials.update(s.id,{accountEmail:u.accountEmail??s.accountEmail,providerData:{...s.providerData,...u.providerData}}),t.debug("credential refreshed",{provider:s.provider,credentialId:s.id}),u.secrets}return function(a){let c=r.get(a.id);if(c!==void 0)return c;let u=o(a).finally(()=>{r.delete(a.id)});return r.set(a.id,u),u}}import{join as sL}from"path";function It(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Qr(e){return typeof e==="number"&&Number.isFinite(e)}function z(e,t,n,r){if(!e)throw Error(`provider ${t} descriptor: ${n} must be ${r}`)}function Jk(e,t,n){z(It(n),e,t,"an object");let r=n;z(Qr(r.contextWindow),e,`${t}.contextWindow`,"a finite number"),z(Qr(r.maxOutputTokens),e,`${t}.maxOutputTokens`,"a finite number")}function aL(e,t){for(let u of["capabilities","writeOverInput","catalog","modelPrefixes","presentation"])if(t[u]===void 0)throw Error(`provider ${e} is missing ${u}`);let n=t.capabilities;z(It(n),e,"capabilities","an object");for(let u of["tools","images","reasoning"]){let d=n[u];z(typeof d==="boolean",e,`capabilities.${u}`,"a boolean")}let r=t.writeOverInput;z(It(r),e,"writeOverInput","an object");for(let u of["fiveMinute","oneHour"]){let d=r[u];z(Qr(d),e,`writeOverInput.${u}`,"a finite number")}let o=t.catalog;z(It(o),e,"catalog","an object");let i=o;z(typeof i.defaultModel==="string",e,"catalog.defaultModel","a string"),z(Array.isArray(i.authTypes),e,"catalog.authTypes","an array");for(let[u,d]of i.authTypes.entries())z(d==="oauth"||d==="apiKey",e,`catalog.authTypes[${u}]`,'"oauth" or "apiKey"');z(Array.isArray(i.models),e,"catalog.models","an array");for(let[u,d]of i.models.entries()){let p=`catalog.models[${u}]`;z(It(d),e,p,"an object");let l=d;z(typeof l.id==="string",e,`${p}.id`,"a string"),z(typeof l.label==="string",e,`${p}.label`,"a string"),z(It(l.pricing),e,`${p}.pricing`,"an object");let m=l.pricing;for(let g of["input","output","cacheRead","cacheWrite5m","cacheWrite1h"])z(Qr(m[g]),e,`${p}.pricing.${g}`,"a finite number");if(Jk(e,`${p}.limits`,l.limits),l.oauthLimits!==void 0)Jk(e,`${p}.oauthLimits`,l.oauthLimits)}let s=t.modelPrefixes;z(Array.isArray(s),e,"modelPrefixes","an array");for(let[u,d]of s.entries())z(typeof d==="string",e,`modelPrefixes[${u}]`,"a string");let a=t.presentation;z(It(a),e,"presentation","an object");let c=a;for(let u of["label","tone"])z(typeof c[u]==="string",e,`presentation.${u}`,"a string");z(Qr(c.order),e,"presentation.order","a finite number"),z(It(c.colour),e,"presentation.colour","an object");for(let u of["light","dark"]){let d=c.colour[u];z(typeof d==="string",e,`presentation.colour.${u}`,"a string")}if(c.pasteHint!==void 0)z(typeof c.pasteHint==="string",e,"presentation.pasteHint","a string")}function uL(e,t){if(t===void 0)return;if(!It(t))throw Error(`provider ${e} oauth must be an object`);let n=t.kind;if(n!=="pkce"&&n!=="device")throw Error(`provider ${e} oauth kind must be "pkce" or "device"`);z(typeof t.supportsManualPaste==="boolean",e,"oauth.supportsManualPaste","a boolean");for(let r of["start","exchange","refresh"])z(typeof t[r]==="function",e,`oauth.${r}`,"a function");if(t.usage!==void 0)z(typeof t.usage==="function",e,"oauth.usage","a function");for(let r of["resetCredits","redeemReset"])if(t[r]!==void 0)z(typeof t[r]==="function",e,`oauth.${r}`,"a function");if(n==="device")z(typeof t.begin==="function",e,"oauth.begin","a function"),z(typeof t.needsDeviceId==="boolean",e,"oauth.needsDeviceId","a boolean");return t}function eE(e,t,n){let r=t.descriptor;if(typeof r!=="object"||r===null)throw Error("provider registration needs a descriptor object");let o=r,i=o.id;if(!$u(i))throw Error(`provider id ${JSON.stringify(i)} is not a usable provider id; expected ${an.source}`);if(i!==e)throw Error(`plugin ${e} registered a provider named ${i}; a plugin may only register its own id`);aL(i,o);let s=t.codec;if(typeof s!=="object"||s===null)throw Error(`provider ${i} registered no codec`);let a=s;for(let d of["buildRequest","decode"])if(typeof a[d]!=="function")throw Error(`provider ${i} codec has no ${d}`);if(a.classifyError!==void 0&&typeof a.classifyError!=="function")throw Error(`provider ${i} codec has a non-callable classifyError`);let c=uL(i,t.oauth),u=r;return{descriptor:u,adapter:de(i,u.capabilities,s,n),...c===void 0?{}:{oauth:Ns(i,c,{...n===void 0?{}:{origins:n}})}}}function tE(e,t,n){let r=n.providers??[];if(r.length===0)return[];if(!t.capabilities.includes("provider"))throw Error(`plugin ${e} declares a provider without the "provider" capability in its manifest`);if(r.length>1)throw Error(`plugin ${e} declares more than one provider`);for(let o of r){let i=o.descriptor?.id;if(typeof i==="string"&&Object.hasOwn(M,i))throw Error(`plugin ${e} declares a provider named ${i}, which is built in`)}return r.map((o)=>eE(e,o,t.origins))}var cL=5000;async function dL(e,t,n){let r;try{return await Promise.race([e,new Promise((o,i)=>{r=setTimeout(()=>i(Error(n)),t)})])}finally{if(r!==void 0)clearTimeout(r)}}async function Ds(e,t,n=cL){let r=Object.create(null),o=Object.create(null),i=[],s=(a,c)=>{let u=a.problems.filter((d)=>d.fatal);return u.length===0?c:`${c}: ${u.map((d)=>d.reason).join("; ")}`};for(let a of e){let c=a.manifest;if(typeof c!=="object"||c===null){i.push({id:a.id,reason:s(a,"manifest could not be read, so whether it supplies a provider is unknown")});continue}let u=c.capabilities;if(!Array.isArray(u)||!u.includes("provider"))continue;if(!a.loadable){i.push({id:a.id,reason:s(a,"declares a provider but will not load")});continue}let d=c.server;if(typeof d!=="string"){i.push({id:a.id,reason:"declares a provider but has no server entry"});continue}try{let l=(await dL(t(sL(a.path,d)),n,`reading its provider took longer than ${n}ms`)).default;if(typeof l!=="object"||l===null||typeof l.setup!=="function"){i.push({id:a.id,reason:"server entry has no default export with a setup"});continue}let m=c.origins;for(let g of tE(a.id,{capabilities:u,...Array.isArray(m)?{origins:m.filter((h)=>typeof h==="string")}:{}},l))if(r[g.descriptor.id]=g.descriptor,g.oauth!==void 0)o[g.descriptor.id]=g.oauth}catch(p){i.push({id:a.id,reason:H(p,String(p))})}}return{descriptors:r,oauth:o,failures:i}}var lL=86400000,pL=3600000,il=50000,nE=il+1;function rE(e){let t=e.length>il;return{page:t?e.slice(0,il):e,truncated:t}}async function sl(e,t,n){let r=e.now(),o=await e.store.config.getSettings(),i=r-o.logRetentionDays*lL,s=n===void 0?i:Math.max(i,r-n);return{since:Math.max(Pt(t.since,s),s),until:Math.min(Pt(t.until,r),r)}}async function mL(e,t){let n=[];for(let r of t){let o=ys(r);if(o===null||r.observedAt<=o){n.push({credentialId:r.credentialId,windowType:r.windowType,gatewayRatePerHour:null});continue}let s=(await e.usage.aggregate({grain:"raw",groupBy:"credential",since:o,until:r.observedAt})).find((c)=>c.key===r.credentialId),a=s===void 0?0:s.inputTokens+s.outputTokens+s.cacheReadTokens+s.cacheWriteTokens;n.push({credentialId:r.credentialId,windowType:r.windowType,gatewayRatePerHour:a/((r.observedAt-o)/pL)})}return n}async function al(e,t){let{since:n,until:r}=await sl(e,t),o=t.credentialId?.trim(),i=o===void 0||o.length===0?void 0:o,[s,a]=await Promise.all([e.store.credentials.listQuotaSamples({since:n,until:r,limit:nE,...i===void 0?{}:{credentialId:i}}),e.store.credentials.listQuota()]),c=i===void 0?a:a.filter((p)=>p.credentialId===i),{page:u,truncated:d}=rE(s);return{samples:u,truncated:d,gatewayRates:await mL(e.store,c)}}async function oE(e,t){let n=await e.store.credentials.get(t.trim());if(n===null)throw new w("BAD_REQUEST","no such credential");let r=e.providers[n.provider],o=r?.resetCredits,i=r?.redeemReset;if(n.authType!=="oauth"||o===void 0||i===void 0)throw new w("BAD_REQUEST","this account's provider has no quota resets");return{credential:n,list:o,redeem:i}}async function iE(e,t){let n=await Yr(e,t.credential),r=await t.list(n,{http:e.http,now:e.now},t.credential.providerData);if(r===null)throw new w("UPSTREAM","provider answered the reset list with nothing usable",{gatewayAuthored:!0});return r}async function ul(e,t){let n=await oE(e,t);return{credentialId:n.credential.id,...await iE(e,n)}}async function cl(e,t){let n=await oE(e,t.credentialId);return e.coord.mutex.withLock(dl+n.credential.id,ll,pl,()=>gL(e,n,t))}async function gL(e,t,n){let r=(await iE(e,t)).credits.filter((c)=>c.status==="available").sort((c,u)=>(c.expiresAt??Number.POSITIVE_INFINITY)-(u.expiresAt??Number.POSITIVE_INFINITY)),o=n.creditId===void 0?r[0]:r.find((c)=>c.id===n.creditId);if(o===void 0)throw new w("CONFLICT",n.creditId===void 0?"no reset credit is available for this account":"that reset credit is not available");let i=await Yr(e,t.credential),{windowsReset:s}=await t.redeem(i,{http:e.http,now:e.now},t.credential.providerData,o.id,crypto.randomUUID()),a=!1;try{a=await Us(e,t.credential)!==null}catch{}return{credentialId:t.credential.id,creditId:o.id,windowsReset:s,quotaRefreshed:a}}var hL=4,ml=180000,sE="quota:cooldown:",dl="quota:probe:",ll=60000,pl=30000;async function Yr(e,t){let n=t.hasRefreshToken&&t.expiresAt!==null&&t.expiresAt-ol<=e.now()?await e.refresh(t):null;return n===null?await t.openForUsage():{accessToken:n.accessToken}}async function Us(e,t){if(t.authType!=="oauth")return null;let n=e.providers[t.provider];if(n?.usage===void 0)return null;let r=await Yr(e,t),o=await n.usage(r,{http:e.http,now:e.now},t.providerData);if(o===null||o.windows.length===0)return null;let i=e.now(),s=o.windows.map((a)=>({credentialId:t.id,windowType:a.windowType,startsAt:i,used:a.used,limit:a.limit,resetsAt:a.resetsAt,observedAt:i,windowMs:a.windowMs}));return await e.store.credentials.saveQuota(s),(e.logger??se).debug("quota snapshot written",{provider:t.provider,credentialId:t.id,count:s.length}),s}async function aE(e,t){let n=Array(e.length).fill(void 0),r=0,o=async()=>{while(r<e.length){let i=r++,s=e[i];if(s===void 0)return;n[i]=await t(s)}};return await Promise.all(Array.from({length:Math.min(hL,e.length)},()=>o())),n}function fl(e){let t=e.logger??se,n=new Map;async function r(c,u,d){try{return await d()}catch(p){return t.warn("quota probe coordination unavailable",{provider:c.provider,credentialId:c.id,coordFallback:!0,reason:H(p,"unknown")}),u}}function o(c,u){let d=u instanceof w&&u.code==="RATE_LIMIT";return t.warn(d?"quota probe rate limited":"quota probe failed",{provider:c.provider,credentialId:c.id,code:u instanceof w?u.code:"INTERNAL",...d?{retryAfterMs:ml}:{},reason:H(u,"unknown")}),u instanceof w?u.code:"INTERNAL"}async function i(c){let u=c.id;try{let d=await Us(e,c);if(d===null)return{outcome:{kind:"noData",credentialId:u},wrote:!1};return{outcome:{kind:"refreshed",credentialId:u,windows:d.length},wrote:!0}}catch(d){if(d instanceof w&&d.code==="RATE_LIMIT")await r(c,void 0,()=>e.coord.kv.set(sE+u,"1",ml));return{outcome:{kind:"failed",credentialId:u,code:o(c,d)},wrote:!1}}}async function s(c,u){let d=c.id,p=!1,l=async()=>{p=!0;let m=(await e.store.credentials.listQuota()).filter((g)=>g.credentialId===d);if(m.some((g)=>g.observedAt>=u))return{outcome:{kind:"coalesced",credentialId:d,windows:m.length},wrote:!1};return i(c)};try{return await e.coord.mutex.withLock(dl+d,ll,pl,l)}catch(m){if(p)return{outcome:{kind:"failed",credentialId:d,code:"INTERNAL"},wrote:!1};return t.warn("quota probe lock unavailable",{provider:c.provider,credentialId:d,coordFallback:!0,reason:H(m,"unknown")}),i(c)}}function a(c){let u=c.id;if(!c.enabled)return Promise.resolve({outcome:{kind:"disabled",credentialId:u},wrote:!1});if(c.authType!=="oauth"||e.providers[c.provider]?.usage===void 0)return Promise.resolve({outcome:{kind:"unsupported",credentialId:u},wrote:!1});let d=n.get(u);if(d!==void 0)return d.then((m)=>m.outcome.kind==="refreshed"?{outcome:{kind:"coalesced",credentialId:u,windows:m.outcome.windows},wrote:!1}:{outcome:m.outcome,wrote:!1});let p=e.now(),l=(async()=>{if(await r(c,null,()=>e.coord.kv.get(sE+u))!==null)return{outcome:{kind:"cooldown",credentialId:u},wrote:!1};return s(c,p)})();return n.set(u,l),l.finally(()=>{n.delete(u)})}return{async poll(){let c=await e.store.credentials.list();return(await aE(c,a)).filter((d)=>d?.wrote===!0).length},async refresh(c){if(c.kind==="one"){let l=c.credentialId.trim();if(l==="")throw new w("BAD_REQUEST","no such credential");let m=await e.store.credentials.get(l);if(m===null)throw new w("BAD_REQUEST","no such credential");return{outcomes:[(await a(m)).outcome]}}let u=await e.store.credentials.list(),d=await aE(u,a),p=[];for(let[l,m]of u.entries()){let g=d[l];p.push(g?.outcome??{kind:"failed",credentialId:m.id,code:"INTERNAL"})}return{outcomes:p}},resetCredits:(c)=>ul(e,c),redeemReset:(c)=>cl(e,c),hasResets:(c)=>{let u=e.providers[c];return u?.resetCredits!==void 0&&u.redeemReset!==void 0}}}async function Wn(e){return e.config.getSettings()}async function gl(e,t){let{bodyRetentionDays:n,snapshotKeepLatest:r,snapshotMaxAgeDays:o,guardrailModel:i,guardrailTimeoutMs:s,guardrailHistoryTurns:a,...c}=V(Jc,t),u={...c,...n===void 0?{}:{bodyRetentionDays:n},...r===void 0?{}:{snapshotKeepLatest:r},...o===void 0?{}:{snapshotMaxAgeDays:o},...i===void 0?{}:{guardrailModel:i},...s===void 0?{}:{guardrailTimeoutMs:s},...a===void 0?{}:{guardrailHistoryTurns:a}};return e.config.putSettings(u)}var Ms="<your OmniGateway key>";async function yl(e,t){let n=await mn(e),r=(await Ve(e)).map((o)=>({id:o.id,provider:o.provider,authType:o.authType,enabled:o.enabled,providerData:o.providerData}));return n.map((o)=>({model:o,limits:Fd(o,r,t),label:Bd(o,t)}))}var hl={defaultModel:"ANTHROPIC_MODEL",fableModel:"ANTHROPIC_DEFAULT_FABLE_MODEL",opusModel:"ANTHROPIC_DEFAULT_OPUS_MODEL",sonnetModel:"ANTHROPIC_DEFAULT_SONNET_MODEL",haikuModel:"ANTHROPIC_DEFAULT_HAIKU_MODEL"};function yL(e){if(e===void 0)return{};try{let t=JSON.parse(e);if(typeof t!=="object"||t===null||Array.isArray(t))throw Error("settings root is not an object");return t}catch(t){let n=H(t,"invalid JSON");throw Error(`cannot parse existing settings.json: ${n}`)}}function _l(e,t,n,r){if(n.defaultModel==="")throw Error("default model is required");let o=new Set(e.map(({model:u})=>u.id)),i=(u,d)=>{if(!o.has(d))throw Error(`${u} names unknown virtual model "${d}"`);return d},s=yL(r),a=s.env,c=typeof a==="object"&&a!==null&&!Array.isArray(a)?{...a}:{};for(let u of Object.values(hl))delete c[u];delete c.CLAUDE_CODE_MAX_CONTEXT_TOKENS,c.ANTHROPIC_BASE_URL=t.baseUrl,c.ANTHROPIC_AUTH_TOKEN=t.apiKey??Ms,c.CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY="1";for(let[u,d]of Object.entries(hl)){let p=n[u];if(p!==void 0&&p!=="")c[d]=i(u,p)}return{path:"settings.json",contents:`${JSON.stringify({...s,env:c},null,2)}
|
|
1677
|
-
`}}function wl(e,t,n){if(n.defaultModel==="")throw Error("default model is required");let r=new Map(e.map((
|
|
1678
|
-
`}}import{closeSync as _L,fstatSync as wL,openSync as bL,readSync as kL,statSync as EL}from"fs";var vL=65536,TL=8388608;function bl(e,t){let n;try{n=bL(e,"r")}catch{return null}try{let r=wL(n).size;if(r===0)return"";let o=Math.min(r,TL),i=0,s=0,a=[];while(i<o&&s<=t){let
|
|
1679
|
-
`)){let r=n.trim();if(r.length===0||r.startsWith("#"))continue;let o=r.startsWith("export ")?r.slice(7).trim():r,i=o.indexOf("=");if(i<=0)continue;let s=o.slice(0,i).trim(),a=o.slice(i+1).trim(),
|
|
1675
|
+
`}return vk(Dd.map((n)=>t[n]))}var yI=St(["csv","jsonl"]);async function*$d(e,t,n=$n){let{format:r,...o}=t,i=Q(yI,r??"csv");if(t.since===void 0||t.since==="")throw new b("BAD_REQUEST","since: required for export");if(t.until===void 0||t.until==="")throw new b("BAD_REQUEST","until: required for export");let s=kk({...o,limit:hI,cursor:void 0},n);if(Fn(n)){yield Ud(i);return}let a=await e.usage.page(s);yield Ud(i);for(;;){for(let u of a.logs)yield Tk(i,u);if(a.next===null)return;a=await e.usage.page({...s,cursor:a.next})}}function Rk(e,t){let n=[e.contextWindow,t.contextWindow].filter((o)=>o!==void 0),r=[e.maxOutputTokens,t.maxOutputTokens].filter((o)=>o!==void 0);return{...n.length===0?{}:{contextWindow:Math.min(...n)},...r.length===0?{}:{maxOutputTokens:Math.min(...r)}}}function _I(e,t,n,r){let o=n!==void 0?[n.authType]:t.size===0?["apiKey"]:[...t],i=r[e.provider]?.catalog,s={};for(let c of i===void 0?[]:o){let d=i===void 0?null:Lr(i,e.model,c);if(d===null)continue;s=Rk(s,{contextWindow:d.contextWindow,maxOutputTokens:d.maxOutputTokens})}let a=e.contextWindow??s.contextWindow,u=e.maxOutputTokens??s.maxOutputTokens;return{...a===void 0?{}:{contextWindow:a},...u===void 0?{}:{maxOutputTokens:u}}}function wI(e){let t=new Map,n=[];for(let r of e){if(!r.enabled)continue;let o=t.get(r.provider)??new Set;o.add(r.authType),t.set(r.provider,o),n.push(r)}return{byProvider:t,routable:n}}function Fd(e,t,n=M){let{byProvider:r,routable:o}=wI(t),i={};for(let s of e.targets)i=Rk(i,_I(s,r.get(s.provider)??new Set,Pn(s,o),n));return i}function Bd(e,t=M){let n=e.targets.length===1?e.targets[0]:void 0;if(n===void 0)return e.id;return t[n.provider]?.catalog.models.find((o)=>o.id===n.model)?.label??e.id}async function mn(e){return e.config.listModels()}async function xs(e,t){let n=(await e.config.listModels()).find((r)=>r.id===t);if(n===void 0)throw new b("MODEL_UNAVAILABLE",`no virtual model "${t}"`);return n}var bI={oauth:"OAuth",apiKey:"API key"};function zd(e){return e.map((t)=>bI[t]).join(" or ")}function kI(e){let t=new Map;for(let n of e){let r=t.get(n.provider)??new Set;r.add(n.authType),t.set(n.provider,r)}return t}function Sk(e){return`${e.provider}\x00${e.model}`}function EI(e,t,n){let r=kI(t),o=new Set((n?.targets??[]).map(Sk));for(let i of e.targets){let s=Pn(i,t);if(s===void 0&&o.has(Sk(i)))continue;let a=s===void 0?r.get(i.provider):new Set([s.authType]);if(a===void 0)continue;let u=M[i.provider]?.catalog,c=u===void 0?x_:S_(u,i.model);if(c.some((l)=>a.has(l)))continue;let d=s===void 0?`every ${i.provider} credential here is ${zd([...a])}`:`this target is pinned to "${s.label}", which is ${zd([...a])}`,p=s===void 0?"connect the other kind, or pick a model this one can reach":"pin it to the other kind, or pick a model this account can reach";return new b("BAD_REQUEST",`${i.provider} serves "${i.model}" to ${zd(c)} credentials only, and ${d} \u2014 ${p}`)}return null}async function qd(e,t,n){let r=Q(Qc,n);if(r.id!==t)throw new b("BAD_REQUEST","model id in the path and body must match");let o=await e.credentials.list(),i=new Set(o.filter((u)=>u.provider==="custom").map((u)=>u.providerData.endpointId).filter((u)=>typeof u==="string")),s=r.targets.find((u)=>u.provider==="custom"&&(u.endpointId===void 0||!i.has(u.endpointId)));if(s!==void 0)throw new b("BAD_REQUEST",`custom endpoint "${s.endpointId}" has no credential`);let a=EI(r,o,(await e.config.listModels()).find((u)=>u.id===t));if(a!==null)throw a;await e.config.putModel(r)}async function Hd(e,t){await e.config.removeModel(t)}import{copyFileSync as VI,mkdirSync as Fk,readdirSync as Jd,readFileSync as $k,realpathSync as QI,renameSync as Bk,rmSync as zk,statfsSync as YI,statSync as Ls,writeFileSync as JI}from"fs";import{join as eL}from"path";import{Buffer as AI}from"buffer";import{basename as OI,join as He,resolve as Pk,sep as CI}from"path";var Bn=3,As="0.1.9";var Ok=["storage","files","net:outbound","events:request","events:limit","channels","provider"],vI=/^[a-z][a-z0-9-]{0,31}$/,TI=K().regex(vI,"id must match /^[a-z][a-z0-9-]{0,31}$/"),xk=K().min(1).refine((e)=>!e.startsWith("/")&&!e.split("/").includes(".."),{message:"entry must be a relative path with no '..' segment"}),RI=K().refine((e)=>{let t;try{t=new URL(e)}catch{return!1}if(t.protocol!=="https:"&&t.protocol!=="http:")return!1;if(t.hostname==="")return!1;if(t.pathname!=="/"||t.search!==""||t.hash!=="")return!1;return e===t.origin||e===`${t.origin}/`},{message:"origin must be scheme://host with no path, query or fragment"}),SI=re({label:K().min(1).max(32)}).strict(),Ak=["net:outbound","provider"],xI=re({id:TI,name:K().min(1).max(64),version:K().min(1).max(32),api:N().int().nonnegative(),sdk:K().min(1).max(32).optional(),server:xk.optional(),ui:xk.optional(),nav:SI.optional(),capabilities:Sn(St(Ok)).default([]),origins:Sn(RI).min(1).optional(),defaults:gh(K(),Ga()).optional()}).strict().refine((e)=>e.server!==void 0||e.ui!==void 0,{message:"manifest must declare a server entry, a ui entry, or both"}).refine((e)=>e.ui===void 0||e.sdk!==void 0,{message:"a ui entry requires an sdk range"}).refine((e)=>!Ak.some((t)=>e.capabilities.includes(t))||e.origins!==void 0,{message:"net:outbound and provider each require origins"}).refine((e)=>Ak.some((t)=>e.capabilities.includes(t))||e.origins===void 0,{message:"origins requires the net:outbound or provider capability"});function Os(e){let t=xI.safeParse(e);if(t.success)return{ok:!0,manifest:t.data};let n=t.error.issues[0],r=n?.path.join(".")??"",o=n?.message??"invalid manifest";return{ok:!1,reason:r===""?o:`${r}: ${o}`}}function Wd(e){return e.api===Bn}var Ik="plugins";function Ce(e){return He(e,Ik)}var Kt="omni-plugin.json",Cs=".omni-install.json",gn=33554432,qn=/^[a-z][a-z0-9-]{0,31}$/,PI="package";function II(e,t){let n=e.readText(He(t,Kt));if(n===null)return{check:"manifest",reason:`no ${Kt}`,fatal:!0};let r;try{r=JSON.parse(n)}catch(i){let s=H(i,String(i));return{check:"manifest",reason:`${Kt} is not valid JSON: ${s}`,fatal:!0}}let o=Os(r);if(!o.ok)return{check:"manifest",reason:o.reason,fatal:!0};return o.manifest}function Ck(e,t,n,r,o){let i=Pk(t,n);if(i!==t&&!i.startsWith(`${t}${CI}`))return{check:"entry",reason:`${r} entry resolves outside the plugin directory`,fatal:o};if(!e.isFile(i))return{check:"entry",reason:`${r} entry ${n} does not exist`,fatal:o};return null}function Xd(e,t,n){let r=He(Ce(t),n);if(!qn.test(n)||!e.fs.isDirectory(r))throw new b("BAD_REQUEST",`no plugin "${n}" installed under ${Ce(t)}`);return Lk(e,r,n)}function Lk(e,t,n){let r=[],o=II(e.fs,t);if(!("id"in o))return r.push(o),{id:n,path:t,manifest:null,problems:r,loadable:!1};let i=o;if(i.id!==n)r.push({check:"id",reason:`manifest id ${i.id} does not match its directory ${n}`,fatal:!0});if(!Wd(i))r.push({check:"api",reason:`plugin api ${i.api} is not supported by this host (api ${Bn})`,fatal:!0});if(i.server!==void 0){let a=Ck(e.fs,t,i.server,"server",!0);if(a!==null)r.push(a)}if(i.ui!==void 0){let a=Ck(e.fs,t,i.ui,"ui",!1);if(a!==null)r.push(a)}let s=LI(e,i);if(s!==null)r.push(s);return{id:n,path:t,manifest:i,problems:r,loadable:!r.some((a)=>a.fatal)}}function LI(e,t){if(t.ui===void 0||t.sdk===void 0)return null;if(e.sdkVersion===void 0)return null;if(Bun.semver.satisfies(e.sdkVersion,t.sdk))return null;return{check:"sdk",reason:`requires dashboard sdk ${t.sdk}, host ships ${e.sdkVersion}`,fatal:!1}}function Gt(e,t){let n=Ce(t),r=[];for(let o of[...e.fs.readdir(n)].sort()){let i=He(n,o);if(!e.fs.isDirectory(i))continue;if(!qn.test(o)){r.push({id:o,path:i,manifest:null,problems:[{check:"id",reason:`directory name ${o} is not a valid plugin id`,fatal:!0}],loadable:!1,name:null,version:null,api:null,sdk:null,capabilities:[],origins:[]});continue}let s=Lk(e,i,o),a=s.manifest;r.push({...s,name:a?.name??null,version:a?.version??null,api:a?.api??null,sdk:a?.sdk??null,capabilities:a?.capabilities??[],origins:a?.origins??[]})}return r}var Xr=512,Ps=new TextDecoder,NI=new TextEncoder;function jd(e,t,n){let r=e.subarray(t,t+n),o=r.indexOf(0);return Ps.decode(o===-1?r:r.subarray(0,o))}function DI(e,t,n){let r=jd(e,t,n).trim();if(r.length===0)return 0;let o=Number.parseInt(r,8);return Number.isSafeInteger(o)&&o>=0?o:-1}function UI(e){if(e.length===0||e.startsWith("/")||e.includes("\x00"))return!1;if(e.includes("\\"))return!1;return!e.split("/").includes("..")}function Kd(e){let t=new Map,n=0,r=null,o=0;while(o+Xr<=e.length){let i=e.subarray(o,o+Xr);if(i.every((l)=>l===0))break;let s=DI(i,124,12);if(s<0)throw new b("BAD_REQUEST","archive has an unreadable entry size");let a=String.fromCharCode(i[156]??0),u=jd(i,0,100),c=jd(i,345,155);if(o+=Xr,n+=s,n>gn)throw new b("BAD_REQUEST",`archive unpacks to more than ${gn} bytes`);if(o+s>e.length)throw new b("BAD_REQUEST",`archive is truncated: entry ${u||"(unnamed)"} declares ${s} bytes and the archive ends before them`);let d=e.subarray(o,o+s);if(o+=Math.ceil(s/Xr)*Xr,a==="1"||a==="2")throw new b("BAD_REQUEST",`archive contains a link (${u}); plugin packages must be plain files`);if(a==="L"){r=Ps.decode(d).replace(/\0+$/,"");continue}if(a==="K"||a==="x"||a==="g")continue;if(a!=="0"&&a!=="\x00"){r=null;continue}let p=r??(c.length>0?`${c}/${u}`:u);if(r=null,!UI(p))throw new b("BAD_REQUEST",`archive contains an unsafe path: ${p}`);t.set(p,new Uint8Array(d))}return t}function Gd(e){if(e[0]!==31||e[1]!==139)return e;try{return Bun.gunzipSync(new Uint8Array(e))}catch(t){let n=H(t,String(t));throw new b("BAD_REQUEST",`could not decompress the archive: ${n}`)}}function Zd(e){let t=new Set;for(let o of e.keys()){let i=o.indexOf("/");if(i<=0)return{files:e,claimedId:null};t.add(o.slice(0,i))}let[n]=[...t];if(t.size!==1||n===void 0)return{files:e,claimedId:null};let r=new Map;for(let[o,i]of e)r.set(o.slice(n.length+1),i);return{files:r,claimedId:n===PI?null:n}}function Nk(e,t,n=""){let r=new Map,o=0;for(let i of e.readdir(t)){let s=He(t,i),a=n.length===0?i:`${n}/${i}`;if(e.isDirectory(s)){for(let[c,d]of Nk(e,s,a))r.set(c,d);continue}let u=e.readBytes(s);if(u===null)continue;if(o+=u.byteLength,o>gn)throw new b("BAD_REQUEST",`${t} holds more than ${gn} bytes`);r.set(a,u)}return r}var Dk="https://registry.npmjs.org",Uk="application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*",MI=/^(?:@[a-z0-9][a-z0-9._-]*\/)?[a-z0-9][a-z0-9._-]*$/,$I=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)*$/,FI=["sha512","sha384","sha256"];function zn(e){if(typeof e!=="object"||e===null||Array.isArray(e))return null;return e}function fn(e){return typeof e==="string"?e:null}function BI(e){let t=e.lastIndexOf("@"),n=t<=0?e:e.slice(0,t),r=t<=0?null:e.slice(t+1);if(n.length>214||!MI.test(n))return null;return{name:n,version:r}}function zI(e){let t=e.registry??Dk,n;try{n=new URL(t)}catch{throw new b("BAD_REQUEST",`registry ${t} is not a URL`)}if(n.protocol!=="https:")throw new b("BAD_REQUEST",`plugins may only be installed over https; ${t} is not`);return n}function qI(e,t){return`${e.href.replace(/\/+$/,"")}/${t.replace("/","%2f")}`}function HI(e,t){let n=zn(e);if(n===null)throw new b("BAD_REQUEST",`the registry's answer for ${t.name} is not a package`);let r=zn(n.versions);if(r===null)throw new b("BAD_REQUEST",`the registry lists no versions of ${t.name}`);let o=t.version;if(o===null){let u=zn(n["dist-tags"]);if(o=u===null?null:fn(u.latest),o===null)throw new b("BAD_REQUEST",`the registry names no dist-tags.latest for ${t.name}; install ${t.name}@<exact version>`)}let i=zn(r[o]);if(i===null)throw new b("BAD_REQUEST",`the registry has no version ${o} of ${t.name}`);let s=zn(i.dist),a=s===null?null:fn(s.tarball);if(s===null||a===null)throw new b("BAD_REQUEST",`the registry's entry for ${t.name}@${o} names no tarball`);return{version:o,dist:{tarball:a,integrity:fn(s.integrity),shasum:fn(s.shasum)}}}function WI(e,t,n){let r;try{r=new URL(e)}catch{throw new b("BAD_REQUEST",`the registry gave ${n} a tarball that is not a URL`)}if(r.protocol!=="https:")throw new b("BAD_REQUEST",`plugins may only be installed over https; the registry points ${n} at ${e}`);if(r.host!==t.host)throw new b("BAD_REQUEST",`registry ${t.host} points ${n} at ${r.host}; install that URL directly if it is the one you meant`)}function jI(e,t){let n=[];if(e.integrity!==null)for(let r of e.integrity.trim().split(/\s+/)){let o=r.indexOf("-"),i=o===-1?"":r.slice(0,o),s=o===-1?"":r.slice(o+1);if(s.length===0)continue;let a=FI.find((u)=>u===i);if(a===void 0)continue;n.push({algorithm:a,expected:AI.from(s,"base64").toString("hex"),source:`${a} integrity`})}if(n.length===0&&e.shasum!==null&&/^[0-9a-f]{40}$/i.test(e.shasum))n.push({algorithm:"sha1",expected:e.shasum.toLowerCase(),source:"sha1 shasum"});if(n.length===0)throw new b("BAD_REQUEST",`the registry advertises no usable integrity or shasum for ${t}; refusing to install bytes nothing vouches for`);return n}function KI(e,t,n){for(let o of t)if(new Bun.CryptoHasher(o.algorithm).update(e).digest("hex")===o.expected)return;let r=t[0];throw new b("BAD_REQUEST",`${n} does not match the ${r?.source??"digest"} the registry advertised; the download was corrupted or the registry served something else`)}async function GI(e,t){if(t.version!==null&&!$I.test(t.version))throw new b("BAD_REQUEST",`${t.name}@${t.version} is not an exact version; this installer resolves no ranges `+`or tags \u2014 install ${t.name}@1.2.3, or ${t.name} for the registry's latest`);let n=e.fetchBytes;if(n===void 0)throw new b("BAD_REQUEST","this caller cannot install from a registry");let r=zI(e),o=ZI(await n(qI(r,t.name),Uk),`the registry's answer for ${t.name}`),{version:i,dist:s}=HI(o,t),a=`${t.name}@${i}`;WI(s.tarball,r,a);let u=jI(s,a),c=await n(s.tarball);return KI(c,u,a),Zd(Kd(Gd(c)))}function ZI(e,t){try{return JSON.parse(Ps.decode(e))}catch(n){let r=H(n,String(n));throw new b("BAD_REQUEST",`${t} is not valid JSON: ${r}`)}}async function XI(e,t){if(t.startsWith("http://"))throw new b("BAD_REQUEST","plugins may only be installed over https");if(t.startsWith("https://")){if(e.fetchBytes===void 0)throw new b("BAD_REQUEST","this caller cannot install from a URL");return Zd(Kd(Gd(await e.fetchBytes(t))))}let n=Pk(t);if(e.fs.isDirectory(n)){let i=Nk(e.fs,n),s=OI(n);return{files:i,claimedId:qn.test(s)?s:null,recordSpec:n}}let r=e.fs.readBytes(n);if(r!==null)return{...Zd(Kd(Gd(r))),recordSpec:n};let o=BI(t);if(o!==null)return GI(e,o);throw new b("BAD_REQUEST",`no directory or archive at ${n}, and "${t}" is not a package name`)}async function Is(e,t,n,r={}){let o=await XI(e,n),i=o.files.get(Kt);if(i===void 0)throw new b("BAD_REQUEST",`${n} has no ${Kt} at its root`);let s;try{s=JSON.parse(Ps.decode(i))}catch(g){let h=H(g,String(g));throw new b("BAD_REQUEST",`${Kt} is not valid JSON: ${h}`)}let a=Os(s);if(!a.ok)throw new b("BAD_REQUEST",`invalid ${Kt}: ${a.reason}`);let u=a.manifest,c=o.claimedId??u.id;if(u.id!==c)throw new b("BAD_REQUEST",`manifest id ${u.id} does not match its directory ${c}; rename one of them so the gateway loads what you installed`);if(r.expectId!==void 0&&c!==r.expectId)throw new b("BAD_REQUEST",`${n} installs plugin "${c}", which does not match "${r.expectId}"; `+"an update reinstalls the plugin it names and nothing else \u2014 install the new id "+"separately if the rename was intended");let d=Ce(t),p=He(d,c),l=e.fs.isDirectory(p),m=He(d,`.staging-${c}`);e.fs.rm(m);try{for(let[h,f]of o.files){let y=He(m,h);e.fs.mkdir(He(y,"..")),e.fs.writeBytes(y,f)}let g={spec:o.recordSpec??n,installedAt:new Date((e.now??Date.now)()).toISOString(),version:u.version};e.fs.mkdir(m),e.fs.writeBytes(He(m,Cs),NI.encode(`${JSON.stringify(g,null,2)}
|
|
1676
|
+
`)),e.fs.rm(p),e.fs.rename(m,p)}finally{e.fs.rm(m)}return{id:c,name:u.name,version:u.version,path:p,spec:o.recordSpec??n,replaced:l,restartRequired:!0}}function Mk(e,t,n){if(!qn.test(n))return null;let r=e.fs.readText(He(Ce(t),n,Cs));if(r===null)return null;let o;try{o=JSON.parse(r)}catch{return null}let i=zn(o);if(i===null)return null;let s=fn(i.spec),a=fn(i.installedAt),u=fn(i.version);if(s===null||s.length===0||a===null||u===null)return null;return{spec:s,installedAt:a,version:u}}async function Vd(e,t,n){if(!qn.test(n)||!e.fs.isDirectory(He(Ce(t),n)))throw new b("BAD_REQUEST",`no plugin "${n}" installed under ${Ce(t)}`);let r=Mk(e,t,n);if(r===null)throw new b("BAD_REQUEST",`plugin "${n}" has no readable ${Cs}, so nothing here knows where it `+"came from; it was copied in by hand or installed before this host recorded a source \u2014 "+"reinstall it once with omni plugin install <spec> to seed the record");return Is(e,t,r.spec,{expectId:n})}async function Qd(e,t,n,r={}){if(!qn.test(n))throw new b("BAD_REQUEST",`"${n}" is not a valid plugin id`);let o=He(Ce(t),n),i=e.fs.isDirectory(o),s=r.purge===!0;if(s&&e.store===void 0)throw new b("INTERNAL","purging a plugin's data needs a database");let a=s&&e.store!==void 0?await e.store.plugins.listTables(n):[];if(!i&&a.length===0)throw new b("BAD_REQUEST",`no plugin "${n}" installed under ${Ce(t)}`);if(i)e.fs.rm(o);if(s&&e.store!==void 0)await e.store.plugins.dropAll(n);return{id:n,removed:i,droppedTables:a}}function Yd(e,t,n){let r=Gt(e,t).map((o)=>o.id);return n.plugins.orphanTables(r)}function el(){let e=(t)=>{let n;try{n=Jd(t,{withFileTypes:!0,encoding:"utf8"})}catch{return 0}let r=0;for(let o of n){let i=eL(t,o.name);if(o.isDirectory()){r+=e(i);continue}try{r+=Ls(i).size}catch{}}return r};return{readdir:(t)=>{try{return Jd(t)}catch{return[]}},stat:(t)=>{try{let n=Ls(t);return{size:n.size,mtimeMs:n.mtimeMs}}catch{return null}},unlink:(t)=>{zk(t,{force:!0})},rename:(t,n)=>Bk(t,n),copyFile:(t,n)=>VI(t,n),mkdir:(t)=>{Fk(t,{recursive:!0})},realpath:(t)=>{try{return QI(t)}catch{return null}},freeBytes:(t)=>{try{let n=YI(t);return Number(n.bavail)*Number(n.bsize)}catch{return null}},dirBytes:e}}function Vr(){return{readdir:(e)=>{try{return Jd(e)}catch{return[]}},readText:(e)=>{try{return $k(e,"utf8")}catch{return null}},readBytes:(e)=>{try{return new Uint8Array($k(e))}catch{return null}},writeBytes:(e,t)=>{JI(e,t)},isDirectory:(e)=>{try{return Ls(e).isDirectory()}catch{return!1}},isFile:(e)=>{try{return Ls(e).isFile()}catch{return!1}},mkdir:(e)=>{Fk(e,{recursive:!0})},rm:(e)=>{zk(e,{force:!0,recursive:!0})},rename:(e,t)=>Bk(e,t)}}function tl(e={}){let t=e.fetchImpl??fetch,n=e.maxBytes??gn;return async(r,o)=>{if(!r.startsWith("https://"))throw new b("BAD_REQUEST",`plugins may only be fetched over https; ${r} is not`);let i=await t(r,{headers:o===void 0?{}:{accept:o},redirect:"follow"});if(!i.ok)throw new b("BAD_REQUEST",`${r} answered ${i.status}`);let s=i.body?.getReader();if(s===void 0)return new Uint8Array(0);let a=[],u=0;for(;;){let{done:p,value:l}=await s.read();if(p)break;if(l===void 0)continue;if(u+=l.byteLength,u>n)throw await s.cancel(),new b("BAD_REQUEST",`${r} sent more than ${n} bytes`);a.push(l)}let c=new Uint8Array(u),d=0;for(let p of a)c.set(p,d),d+=p.byteLength;return c}}function qk(){return Buffer.from(crypto.getRandomValues(new Uint8Array(32))).toString("base64url")}function Hk(){let e=qk();return{verifier:e,challenge:Bun.SHA256.hash(e,"base64url")}}function Wk(){return qk()}var jk=4,Kk=30000,Gk=150000;function Zt(e,t,n){return new b("UPSTREAM",`${e} oauth ${t} ${n}`,{provider:e,gatewayAuthored:!0})}function tL(e){if(typeof e!=="object"||e===null)return!1;let t=e;return Ar(t.url)&&Or(t.method)&&Array.isArray(t.headers)&&t.headers.every((n)=>Array.isArray(n)&&n.length===2&&typeof n[0]==="string"&&typeof n[1]==="string")&&(t.body===void 0||typeof t.body==="string")&&(t.timeoutMs===void 0||typeof t.timeoutMs==="number"&&Number.isFinite(t.timeoutMs)&&t.timeoutMs>0)}async function hn(e,t,n,r,o){let i;try{return await Promise.race([nL(e,t,n,r,o),new Promise((s,a)=>{i=setTimeout(()=>{a(Zt(e,t,`did not finish within ${Gk}ms`))},Gk),i.unref?.()})])}finally{if(i!==void 0)clearTimeout(i);n.return(void 0).catch(()=>{})}}async function nL(e,t,n,r,o){let i=0,s;try{s=await n.next()}catch(u){throw Hn(e,t,u)}while(!s.done){if(++i>jk)throw Zt(e,t,`asked for more than ${jk} requests`);let u=s.value,c={url:u.url,method:u.method,headers:Array.isArray(u.headers)?[...u.headers]:[],...u.body===void 0?{}:{body:u.body},...u.timeoutMs===void 0?{}:{timeoutMs:u.timeoutMs}};if(!tL(c)||!Array.isArray(u.headers))throw Zt(e,t,"yielded something that is not a request");if(o!==void 0&&!xr(c.url,o))throw Zt(e,t,"described a request to an origin its manifest does not declare");let d;try{d=await r.http({provider:e,url:c.url,method:c.method,headers:c.headers,body:c.body??"",signal:AbortSignal.timeout(Math.min(c.timeoutMs??Kk,Kk))})}catch(l){try{s=await n.throw(Hn(e,t,l))}catch(m){throw Hn(e,t,m)}continue}let p;try{p=await d.text()}catch(l){try{s=await n.throw(Hn(e,t,l))}catch(m){throw Hn(e,t,m)}continue}try{s=await n.next({status:d.status,headers:d.headers,body:p})}catch(l){throw Hn(e,t,l)}}let a=iL[t];if(a!==void 0&&!a(s.value))throw Zt(e,t,"returned something the host cannot use");return s.value}function Hn(e,t,n){if(n instanceof b)return n;if(n instanceof Error&&n.name==="GatewayError")return Zt(e,t,"threw a GatewayError from its own bundled copy, whose classification the host cannot trust; build the error with the fail() it was handed");return Zt(e,t,"threw")}function Ns(e,t,n={}){let{origins:r,trusted:o=!1}=n,i=(u)=>({fail:(c,d,p)=>new b(c,d,{provider:e,...p?.status===void 0?{}:{status:p.status},...o?{gatewayAuthored:!0}:{}}),keepPolling:(c)=>ic(c),pkce:()=>Hk(),randomState:()=>Wk(),now:u.now}),s={id:e,supportsManualPaste:t.supportsManualPaste,start:(u,c)=>hn(e,"start",t.start({...u,...i(c)}),c,r),exchange:(u,c)=>hn(e,"exchange",t.exchange({...u,...i(c)}),c,r),refresh:(u,c,d)=>hn(e,"refresh",t.refresh({refreshToken:u,providerData:d,...i(c)}),c,r),...t.usage===void 0?{}:{usage:(u,c,d)=>{let p=t.usage?.({secrets:u,providerData:d,...i(c)});if(p===void 0)return Promise.resolve(null);return hn(e,"usage",p,c,r)}},...t.resetCredits===void 0?{}:{resetCredits:(u,c,d)=>{let p=t.resetCredits?.({secrets:u,providerData:d,...i(c)});if(p===void 0)return Promise.resolve(null);return hn(e,"resetCredits",p,c,r)}},...t.redeemReset===void 0?{}:{redeemReset:(u,c,d,p,l)=>{let m=t.redeemReset?.({secrets:u,providerData:d,creditId:p,requestId:l,...i(c)});if(m===void 0)return Promise.reject(Zt(e,"redeemReset","has no redeem step"));return hn(e,"redeemReset",m,c,r)}}};if(t.kind==="pkce")return{...s,kind:"pkce"};let a=t.begin;if(a===void 0)throw Error(`plugin ${e} declares a device oauth flow without a begin step`);return{...s,kind:"device",needsDeviceId:t.needsDeviceId===!0,begin:(u,c)=>hn(e,"begin",a({...u,...i(c)}),c,r)}}function Zk(e){if(typeof e!=="object"||e===null)return!1;let t=e;if(typeof t.secrets!=="object"||t.secrets===null)return!1;let n=t.secrets;for(let r of["accessToken","refreshToken","apiKey","idToken"]){let o=n[r];if(o!==null&&typeof o!=="string")return!1}return typeof t.providerData==="object"&&t.providerData!==null}function Xk(e){if(typeof e!=="object"||e===null)return!1;let t=e;return typeof t.authorizeUrl==="string"&&typeof t.pending==="object"&&t.pending!==null}function rL(e){if(e===null)return!0;if(typeof e!=="object")return!1;let t=e;return typeof t.available==="number"&&Array.isArray(t.credits)&&t.credits.every((n)=>{if(typeof n!=="object"||n===null)return!1;let r=n;return typeof r.id==="string"&&typeof r.status==="string"&&(r.title===null||typeof r.title==="string")&&(r.grantedAt===null||typeof r.grantedAt==="number")&&(r.expiresAt===null||typeof r.expiresAt==="number")})}function oL(e){if(typeof e!=="object"||e===null)return!1;let t=e.windowsReset;return t===null||typeof t==="number"}var iL={start:Xk,begin:Xk,exchange:Zk,refresh:Zk,resetCredits:rL,redeemReset:oL};var bt=Object.create(null),Vk=new WeakMap;function nl(e=bt){let t=Vk.get(e)??new Set;Vk.set(e,t);for(let[n,r]of Fc()){if(t.has(n)&&Object.hasOwn(e,n))continue;Qk(n,Ns(n,r,{trusted:!0}),e),t.add(n)}}function rl(e=bt){return Object.keys(e)}function Qk(e,t,n=bt){if(Object.hasOwn(n,e))throw Error(`an oauth flow for ${e} is already installed`);n[e]=t}var ol=300000;var Yk=30000;function Qr(e){let t=e.logger??se,n=e.coord??Mt(),r=new Map;async function o(s){try{return await n.mutex.withLock(`refresh:${s.id}`,Yk,Yk,async()=>{let a=await e.store.credentials.get(s.id);if(a!==null&&a.tokenVersion>s.tokenVersion)return a.secrets();return i(a??s)})}catch(a){if(!(a instanceof Fo))throw a;return t.warn("refresh lock unavailable; refreshing unserialised",{provider:s.provider,credentialId:s.id}),i(s)}}async function i(s){let a=await s.openForRefresh();if(a.refreshToken===null)throw new b("AUTH",`credential ${s.id} has no refresh token`);let u=e.providers[s.provider];if(u===void 0)throw new b("BAD_REQUEST","provider does not support OAuth refresh");t.debug("refreshing credential",{provider:s.provider,credentialId:s.id});let c;try{c=await u.refresh(a.refreshToken,{http:e.http,now:e.now},s.providerData)}catch(p){if(p instanceof b&&p.code==="AUTH")t.warn("credential disabled: refresh token rejected",{provider:s.provider,credentialId:s.id,code:"AUTH"}),await e.store.credentials.update(s.id,{enabled:!1,disabledReason:"tokenRejected",disabledAt:e.now()});throw p}if(!await e.store.credentials.updateSecrets(s.id,c.secrets,c.expiresAt,s.tokenVersion)){t.warn("refresh lost a race; using the stored rotation",{provider:s.provider,credentialId:s.id});let p=await e.store.credentials.get(s.id);if(p===null)throw new b("AUTH",`credential ${s.id} is gone`);return p.secrets()}return await e.store.credentials.update(s.id,{accountEmail:c.accountEmail??s.accountEmail,providerData:{...s.providerData,...c.providerData}}),t.debug("credential refreshed",{provider:s.provider,credentialId:s.id}),c.secrets}return function(a){let u=r.get(a.id);if(u!==void 0)return u;let c=o(a).finally(()=>{r.delete(a.id)});return r.set(a.id,c),c}}import{join as sL}from"path";function It(e){return typeof e==="object"&&e!==null&&!Array.isArray(e)}function Yr(e){return typeof e==="number"&&Number.isFinite(e)}function z(e,t,n,r){if(!e)throw Error(`provider ${t} descriptor: ${n} must be ${r}`)}function Jk(e,t,n){z(It(n),e,t,"an object");let r=n;z(Yr(r.contextWindow),e,`${t}.contextWindow`,"a finite number"),z(Yr(r.maxOutputTokens),e,`${t}.maxOutputTokens`,"a finite number")}function aL(e,t){for(let c of["capabilities","writeOverInput","catalog","modelPrefixes","presentation"])if(t[c]===void 0)throw Error(`provider ${e} is missing ${c}`);let n=t.capabilities;z(It(n),e,"capabilities","an object");for(let c of["tools","images","reasoning"]){let d=n[c];z(typeof d==="boolean",e,`capabilities.${c}`,"a boolean")}let r=t.writeOverInput;z(It(r),e,"writeOverInput","an object");for(let c of["fiveMinute","oneHour"]){let d=r[c];z(Yr(d),e,`writeOverInput.${c}`,"a finite number")}let o=t.catalog;z(It(o),e,"catalog","an object");let i=o;z(typeof i.defaultModel==="string",e,"catalog.defaultModel","a string"),z(Array.isArray(i.authTypes),e,"catalog.authTypes","an array");for(let[c,d]of i.authTypes.entries())z(d==="oauth"||d==="apiKey",e,`catalog.authTypes[${c}]`,'"oauth" or "apiKey"');z(Array.isArray(i.models),e,"catalog.models","an array");for(let[c,d]of i.models.entries()){let p=`catalog.models[${c}]`;z(It(d),e,p,"an object");let l=d;z(typeof l.id==="string",e,`${p}.id`,"a string"),z(typeof l.label==="string",e,`${p}.label`,"a string"),z(It(l.pricing),e,`${p}.pricing`,"an object");let m=l.pricing;for(let g of["input","output","cacheRead","cacheWrite5m","cacheWrite1h"])z(Yr(m[g]),e,`${p}.pricing.${g}`,"a finite number");if(Jk(e,`${p}.limits`,l.limits),l.oauthLimits!==void 0)Jk(e,`${p}.oauthLimits`,l.oauthLimits)}let s=t.modelPrefixes;z(Array.isArray(s),e,"modelPrefixes","an array");for(let[c,d]of s.entries())z(typeof d==="string",e,`modelPrefixes[${c}]`,"a string");let a=t.presentation;z(It(a),e,"presentation","an object");let u=a;for(let c of["label","tone"])z(typeof u[c]==="string",e,`presentation.${c}`,"a string");z(Yr(u.order),e,"presentation.order","a finite number"),z(It(u.colour),e,"presentation.colour","an object");for(let c of["light","dark"]){let d=u.colour[c];z(typeof d==="string",e,`presentation.colour.${c}`,"a string")}if(u.pasteHint!==void 0)z(typeof u.pasteHint==="string",e,"presentation.pasteHint","a string")}function uL(e,t){if(t===void 0)return;if(!It(t))throw Error(`provider ${e} oauth must be an object`);let n=t.kind;if(n!=="pkce"&&n!=="device")throw Error(`provider ${e} oauth kind must be "pkce" or "device"`);z(typeof t.supportsManualPaste==="boolean",e,"oauth.supportsManualPaste","a boolean");for(let r of["start","exchange","refresh"])z(typeof t[r]==="function",e,`oauth.${r}`,"a function");if(t.usage!==void 0)z(typeof t.usage==="function",e,"oauth.usage","a function");for(let r of["resetCredits","redeemReset"])if(t[r]!==void 0)z(typeof t[r]==="function",e,`oauth.${r}`,"a function");if(n==="device")z(typeof t.begin==="function",e,"oauth.begin","a function"),z(typeof t.needsDeviceId==="boolean",e,"oauth.needsDeviceId","a boolean");return t}function eE(e,t,n){let r=t.descriptor;if(typeof r!=="object"||r===null)throw Error("provider registration needs a descriptor object");let o=r,i=o.id;if(!$u(i))throw Error(`provider id ${JSON.stringify(i)} is not a usable provider id; expected ${an.source}`);if(i!==e)throw Error(`plugin ${e} registered a provider named ${i}; a plugin may only register its own id`);aL(i,o);let s=t.codec;if(typeof s!=="object"||s===null)throw Error(`provider ${i} registered no codec`);let a=s;for(let d of["buildRequest","decode"])if(typeof a[d]!=="function")throw Error(`provider ${i} codec has no ${d}`);if(a.classifyError!==void 0&&typeof a.classifyError!=="function")throw Error(`provider ${i} codec has a non-callable classifyError`);let u=uL(i,t.oauth),c=r;return{descriptor:c,adapter:de(i,c.capabilities,s,n),...u===void 0?{}:{oauth:Ns(i,u,{...n===void 0?{}:{origins:n}})}}}function tE(e,t,n){let r=n.providers??[];if(r.length===0)return[];if(!t.capabilities.includes("provider"))throw Error(`plugin ${e} declares a provider without the "provider" capability in its manifest`);if(r.length>1)throw Error(`plugin ${e} declares more than one provider`);for(let o of r){let i=o.descriptor?.id;if(typeof i==="string"&&Object.hasOwn(M,i))throw Error(`plugin ${e} declares a provider named ${i}, which is built in`)}return r.map((o)=>eE(e,o,t.origins))}var cL=5000;async function dL(e,t,n){let r;try{return await Promise.race([e,new Promise((o,i)=>{r=setTimeout(()=>i(Error(n)),t)})])}finally{if(r!==void 0)clearTimeout(r)}}async function Ds(e,t,n=cL){let r=Object.create(null),o=Object.create(null),i=[],s=(a,u)=>{let c=a.problems.filter((d)=>d.fatal);return c.length===0?u:`${u}: ${c.map((d)=>d.reason).join("; ")}`};for(let a of e){let u=a.manifest;if(typeof u!=="object"||u===null){i.push({id:a.id,reason:s(a,"manifest could not be read, so whether it supplies a provider is unknown")});continue}let c=u.capabilities;if(!Array.isArray(c)||!c.includes("provider"))continue;if(!a.loadable){i.push({id:a.id,reason:s(a,"declares a provider but will not load")});continue}let d=u.server;if(typeof d!=="string"){i.push({id:a.id,reason:"declares a provider but has no server entry"});continue}try{let l=(await dL(t(sL(a.path,d)),n,`reading its provider took longer than ${n}ms`)).default;if(typeof l!=="object"||l===null||typeof l.setup!=="function"){i.push({id:a.id,reason:"server entry has no default export with a setup"});continue}let m=u.origins;for(let g of tE(a.id,{capabilities:c,...Array.isArray(m)?{origins:m.filter((h)=>typeof h==="string")}:{}},l))if(r[g.descriptor.id]=g.descriptor,g.oauth!==void 0)o[g.descriptor.id]=g.oauth}catch(p){i.push({id:a.id,reason:H(p,String(p))})}}return{descriptors:r,oauth:o,failures:i}}var lL=86400000,pL=3600000,il=50000,nE=il+1;function rE(e){let t=e.length>il;return{page:t?e.slice(0,il):e,truncated:t}}async function sl(e,t,n){let r=e.now(),o=await e.store.config.getSettings(),i=r-o.logRetentionDays*lL,s=n===void 0?i:Math.max(i,r-n);return{since:Math.max(Pt(t.since,s),s),until:Math.min(Pt(t.until,r),r)}}async function mL(e,t){let n=[];for(let r of t){let o=ys(r);if(o===null||r.observedAt<=o){n.push({credentialId:r.credentialId,windowType:r.windowType,gatewayRatePerHour:null});continue}let s=(await e.usage.aggregate({grain:"raw",groupBy:"credential",since:o,until:r.observedAt})).find((u)=>u.key===r.credentialId),a=s===void 0?0:s.inputTokens+s.outputTokens+s.cacheReadTokens+s.cacheWriteTokens;n.push({credentialId:r.credentialId,windowType:r.windowType,gatewayRatePerHour:a/((r.observedAt-o)/pL)})}return n}async function al(e,t){let{since:n,until:r}=await sl(e,t),o=t.credentialId?.trim(),i=o===void 0||o.length===0?void 0:o,[s,a]=await Promise.all([e.store.credentials.listQuotaSamples({since:n,until:r,limit:nE,...i===void 0?{}:{credentialId:i}}),e.store.credentials.listQuota()]),u=i===void 0?a:a.filter((p)=>p.credentialId===i),{page:c,truncated:d}=rE(s);return{samples:c,truncated:d,gatewayRates:await mL(e.store,u)}}async function oE(e,t){let n=await e.store.credentials.get(t.trim());if(n===null)throw new b("BAD_REQUEST","no such credential");let r=e.providers[n.provider],o=r?.resetCredits,i=r?.redeemReset;if(n.authType!=="oauth"||o===void 0||i===void 0)throw new b("BAD_REQUEST","this account's provider has no quota resets");return{credential:n,list:o,redeem:i}}async function iE(e,t){let n=await Jr(e,t.credential),r=await t.list(n,{http:e.http,now:e.now},t.credential.providerData);if(r===null)throw new b("UPSTREAM","provider answered the reset list with nothing usable",{gatewayAuthored:!0});return r}async function ul(e,t){let n=await oE(e,t);return{credentialId:n.credential.id,...await iE(e,n)}}async function cl(e,t){let n=await oE(e,t.credentialId);return e.coord.mutex.withLock(dl+n.credential.id,ll,pl,()=>gL(e,n,t))}async function gL(e,t,n){let r=(await iE(e,t)).credits.filter((u)=>u.status==="available").sort((u,c)=>(u.expiresAt??Number.POSITIVE_INFINITY)-(c.expiresAt??Number.POSITIVE_INFINITY)),o=n.creditId===void 0?r[0]:r.find((u)=>u.id===n.creditId);if(o===void 0)throw new b("CONFLICT",n.creditId===void 0?"no reset credit is available for this account":"that reset credit is not available");let i=await Jr(e,t.credential),{windowsReset:s}=await t.redeem(i,{http:e.http,now:e.now},t.credential.providerData,o.id,crypto.randomUUID()),a=!1;try{a=await Us(e,t.credential)!==null}catch{}return{credentialId:t.credential.id,creditId:o.id,windowsReset:s,quotaRefreshed:a}}var hL=4,ml=180000,sE="quota:cooldown:",dl="quota:probe:",ll=60000,pl=30000;async function Jr(e,t){let n=t.hasRefreshToken&&t.expiresAt!==null&&t.expiresAt-ol<=e.now()?await e.refresh(t):null;return n===null?await t.openForUsage():{accessToken:n.accessToken}}async function Us(e,t){if(t.authType!=="oauth")return null;let n=e.providers[t.provider];if(n?.usage===void 0)return null;let r=await Jr(e,t),o=await n.usage(r,{http:e.http,now:e.now},t.providerData);if(o===null||o.windows.length===0)return null;let i=e.now(),s=o.windows.map((a)=>({credentialId:t.id,windowType:a.windowType,startsAt:i,used:a.used,limit:a.limit,resetsAt:a.resetsAt,observedAt:i,windowMs:a.windowMs}));return await e.store.credentials.saveQuota(s),(e.logger??se).debug("quota snapshot written",{provider:t.provider,credentialId:t.id,count:s.length}),s}async function aE(e,t){let n=Array(e.length).fill(void 0),r=0,o=async()=>{while(r<e.length){let i=r++,s=e[i];if(s===void 0)return;n[i]=await t(s)}};return await Promise.all(Array.from({length:Math.min(hL,e.length)},()=>o())),n}function fl(e){let t=e.logger??se,n=new Map;async function r(u,c,d){try{return await d()}catch(p){return t.warn("quota probe coordination unavailable",{provider:u.provider,credentialId:u.id,coordFallback:!0,reason:H(p,"unknown")}),c}}function o(u,c){let d=c instanceof b&&c.code==="RATE_LIMIT";return t.warn(d?"quota probe rate limited":"quota probe failed",{provider:u.provider,credentialId:u.id,code:c instanceof b?c.code:"INTERNAL",...d?{retryAfterMs:ml}:{},reason:H(c,"unknown")}),c instanceof b?c.code:"INTERNAL"}async function i(u){let c=u.id;try{let d=await Us(e,u);if(d===null)return{outcome:{kind:"noData",credentialId:c},wrote:!1};return{outcome:{kind:"refreshed",credentialId:c,windows:d.length},wrote:!0}}catch(d){if(d instanceof b&&d.code==="RATE_LIMIT")await r(u,void 0,()=>e.coord.kv.set(sE+c,"1",ml));return{outcome:{kind:"failed",credentialId:c,code:o(u,d)},wrote:!1}}}async function s(u,c){let d=u.id,p=!1,l=async()=>{p=!0;let m=(await e.store.credentials.listQuota()).filter((g)=>g.credentialId===d);if(m.some((g)=>g.observedAt>=c))return{outcome:{kind:"coalesced",credentialId:d,windows:m.length},wrote:!1};return i(u)};try{return await e.coord.mutex.withLock(dl+d,ll,pl,l)}catch(m){if(p)return{outcome:{kind:"failed",credentialId:d,code:"INTERNAL"},wrote:!1};return t.warn("quota probe lock unavailable",{provider:u.provider,credentialId:d,coordFallback:!0,reason:H(m,"unknown")}),i(u)}}function a(u){let c=u.id;if(!u.enabled)return Promise.resolve({outcome:{kind:"disabled",credentialId:c},wrote:!1});if(u.authType!=="oauth"||e.providers[u.provider]?.usage===void 0)return Promise.resolve({outcome:{kind:"unsupported",credentialId:c},wrote:!1});let d=n.get(c);if(d!==void 0)return d.then((m)=>m.outcome.kind==="refreshed"?{outcome:{kind:"coalesced",credentialId:c,windows:m.outcome.windows},wrote:!1}:{outcome:m.outcome,wrote:!1});let p=e.now(),l=(async()=>{if(await r(u,null,()=>e.coord.kv.get(sE+c))!==null)return{outcome:{kind:"cooldown",credentialId:c},wrote:!1};return s(u,p)})();return n.set(c,l),l.finally(()=>{n.delete(c)})}return{async poll(){let u=await e.store.credentials.list();return(await aE(u,a)).filter((d)=>d?.wrote===!0).length},async refresh(u){if(u.kind==="one"){let l=u.credentialId.trim();if(l==="")throw new b("BAD_REQUEST","no such credential");let m=await e.store.credentials.get(l);if(m===null)throw new b("BAD_REQUEST","no such credential");return{outcomes:[(await a(m)).outcome]}}let c=await e.store.credentials.list(),d=await aE(c,a),p=[];for(let[l,m]of c.entries()){let g=d[l];p.push(g?.outcome??{kind:"failed",credentialId:m.id,code:"INTERNAL"})}return{outcomes:p}},resetCredits:(u)=>ul(e,u),redeemReset:(u)=>cl(e,u),hasResets:(u)=>{let c=e.providers[u];return c?.resetCredits!==void 0&&c.redeemReset!==void 0}}}async function Wn(e){return e.config.getSettings()}async function gl(e,t){let{bodyRetentionDays:n,snapshotKeepLatest:r,snapshotMaxAgeDays:o,guardrailModel:i,guardrailTimeoutMs:s,guardrailHistoryTurns:a,...u}=Q(Jc,t),c={...u,...n===void 0?{}:{bodyRetentionDays:n},...r===void 0?{}:{snapshotKeepLatest:r},...o===void 0?{}:{snapshotMaxAgeDays:o},...i===void 0?{}:{guardrailModel:i},...s===void 0?{}:{guardrailTimeoutMs:s},...a===void 0?{}:{guardrailHistoryTurns:a}};return e.config.putSettings(c)}var Ms="<your OmniGateway key>";async function yl(e,t){let n=await mn(e),r=(await Qe(e)).map((o)=>({id:o.id,provider:o.provider,authType:o.authType,enabled:o.enabled,providerData:o.providerData}));return n.map((o)=>({model:o,limits:Fd(o,r,t),label:Bd(o,t)}))}var hl={defaultModel:"ANTHROPIC_MODEL",fableModel:"ANTHROPIC_DEFAULT_FABLE_MODEL",opusModel:"ANTHROPIC_DEFAULT_OPUS_MODEL",sonnetModel:"ANTHROPIC_DEFAULT_SONNET_MODEL",haikuModel:"ANTHROPIC_DEFAULT_HAIKU_MODEL"};function yL(e){if(e===void 0)return{};try{let t=JSON.parse(e);if(typeof t!=="object"||t===null||Array.isArray(t))throw Error("settings root is not an object");return t}catch(t){let n=H(t,"invalid JSON");throw Error(`cannot parse existing settings.json: ${n}`)}}function _l(e,t,n,r){if(n.defaultModel==="")throw Error("default model is required");let o=new Set(e.map(({model:c})=>c.id)),i=(c,d)=>{if(!o.has(d))throw Error(`${c} names unknown virtual model "${d}"`);return d},s=yL(r),a=s.env,u=typeof a==="object"&&a!==null&&!Array.isArray(a)?{...a}:{};for(let c of Object.values(hl))delete u[c];delete u.CLAUDE_CODE_MAX_CONTEXT_TOKENS,u.ANTHROPIC_BASE_URL=t.baseUrl,u.ANTHROPIC_AUTH_TOKEN=t.apiKey??Ms,u.CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY="1";for(let[c,d]of Object.entries(hl)){let p=n[c];if(p!==void 0&&p!=="")u[d]=i(c,p)}return{path:"settings.json",contents:`${JSON.stringify({...s,env:u},null,2)}
|
|
1677
|
+
`}}function wl(e,t,n){if(n.defaultModel==="")throw Error("default model is required");let r=new Map(e.map((u)=>[u.model.id,u])),o=[],i=new Set;for(let u of Object.keys(hl)){let c=n[u];if(c===void 0||c==="")continue;let d=r.get(c);if(d===void 0)throw Error(`${u} names unknown virtual model "${c}"`);if(!i.has(c))i.add(c),o.push(d)}let s={};for(let{model:u,limits:c,label:d}of o){let p=c.contextWindow===void 0?void 0:{context:c.contextWindow,...c.maxOutputTokens===void 0?{}:{output:c.maxOutputTokens}};s[u.id]={name:d,...p===void 0?{}:{limit:p}}}return{path:"opencode.json",contents:`${JSON.stringify({$schema:"https://opencode.ai/config.json",model:`omnigateway/${n.defaultModel}`,provider:{omnigateway:{npm:"@ai-sdk/openai-compatible",name:"OmniGateway",options:{baseURL:`${t.baseUrl.replace(/\/+$/,"").replace(/(?:\/v1)+$/i,"")}/v1`,apiKey:t.apiKey??Ms},models:s}}},null,2)}
|
|
1678
|
+
`}}import{closeSync as _L,fstatSync as wL,openSync as bL,readSync as kL,statSync as EL}from"fs";var vL=65536,TL=8388608;function bl(e,t){let n;try{n=bL(e,"r")}catch{return null}try{let r=wL(n).size;if(r===0)return"";let o=Math.min(r,TL),i=0,s=0,a=[];while(i<o&&s<=t){let u=Math.min(vL,o-i),c=Buffer.allocUnsafe(u),d=r-i-u;kL(n,c,0,u,d),a.unshift(c),i+=u;for(let p of c)if(p===10)s++}return Buffer.concat(a).toString("utf8")}catch{return null}finally{_L(n)}}function $s(e){try{return EL(e).isFile()}catch{return!1}}import{parseArgs as RL}from"util";class I extends Error{}var SL={root:{type:"string"},db:{type:"string"},json:{type:"boolean"},"no-color":{type:"boolean"},yes:{type:"boolean",short:"y"},help:{type:"boolean",short:"h"},version:{type:"boolean"}};function uE(e,t={}){try{let n=RL({args:[...e],options:{...SL,...t},allowPositionals:!0,strict:!0});return{positionals:n.positionals,values:n.values}}catch(n){throw new I(H(n,"could not parse arguments"))}}function A(e,t){let n=e[t];return typeof n==="string"?n:void 0}function L(e,t){return e[t]===!0}function Pe(e,t){let n=e[t];if(Array.isArray(n))return n.filter((r)=>typeof r==="string");return typeof n==="string"?[n]:void 0}function yn(e,t){let n=A(e,t);if(n===void 0||n.trim().length===0)return;let r=Number(n);if(!Number.isFinite(r))throw new I(`--${t} must be a number, got "${n}"`);return r}function U(e,t,n){let r=e.positionals[t];if(r===void 0||r.length===0)throw new I(`${n} is required`);return r}var xL={dim:!0,red:!0,green:!0,yellow:!0,blue:!0,magenta:!0,cyan:!0,orange:!0,violet:!0,azure:!0};function AL(e){return Object.hasOwn(xL,e)}function OL(e){let t=M[e]?.presentation.tone;return t!==void 0&&AL(t)?t:"cyan"}function Ie(e,t){return S(e,OL(t),t)}function Z(e,t,n){return S(e,t?"green":"red",n)}import{existsSync as Fs,readFileSync as CL}from"fs";import{homedir as PL}from"os";import{isAbsolute as IL,join as eo,resolve as kl}from"path";class O extends Error{exitCode;constructor(e,t=1){super(e);this.name="CliError",this.exitCode=t}}var LL=eo(PL(),".config","omnigateway");function NL(e){return Fs(eo(e,".env"))||Fs(eo(e,"omnigateway.db"))||Fs(eo(e,"apps","gateway","src","index.ts"))}function DL(e,t,n){let r=(i,s)=>{let a=eo(i,".env");return{root:i,source:s,envFile:Fs(a)?a:null}};if(e.root!==void 0&&e.root.length>0)return r(kl(n,e.root),"flag");let o=t.OMNI_ROOT;if(typeof o==="string"&&o.length>0)return r(kl(n,o),"env");if(NL(n))return r(n,"cwd");return r(LL,"default")}function UL(e){let t={};for(let n of e.split(`
|
|
1679
|
+
`)){let r=n.trim();if(r.length===0||r.startsWith("#"))continue;let o=r.startsWith("export ")?r.slice(7).trim():r,i=o.indexOf("=");if(i<=0)continue;let s=o.slice(0,i).trim(),a=o.slice(i+1).trim(),u=a[0];if((u==='"'||u==="'")&&a.endsWith(u)&&a.length>=2)a=a.slice(1,-1);t[s]=a}return t}function cE(e,t={}){let n=t.env??process.env,r=t.cwd??process.cwd(),o=DL({root:A(e.values,"root")},n,r),i=o.envFile===null?{}:UL(CL(o.envFile,"utf8")),s={...n,...i},a=A(e.values,"db"),u=a===void 0||a.trim().length===0?void 0:a,c=n.OMNI_DB_PATH?.trim(),d=o.source==="flag"&&u===void 0&&i.OMNI_DB_PATH===void 0&&c!==void 0&&c.length>0?c:null;if(d!==null)delete s.OMNI_DB_PATH;let p=null,l=null;try{p=Bu(s)}catch(w){l=H(w,"invalid configuration")}let m=u??p?.databasePath??"omnigateway.db",g=IL(m)?m:kl(o.root,m),h=d===null?[]:[`ignoring OMNI_DB_PATH=${d} from the environment because --root was given; using ${g}`],f=null,y=null,_=L(e.values,"no-color")||typeof n.NO_COLOR==="string"&&n.NO_COLOR.length>0;return{root:o,env:s,warnings:h,json:L(e.values,"json"),color:!_&&(t.isTty??process.stdout.isTTY===!0),assumeYes:L(e.values,"yes"),now:t.now??(()=>Date.now()),configError:l,databasePath:g,config(){if(p===null)throw new O(l??"invalid configuration");return p},store(){if(f===null){let w=p;if(w===null)throw new O(l??"invalid configuration");f=Bo(w.encryptionKey).then((v)=>fi({path:g,encryptionKey:v,dayOffsetMinutes:w.dayOffsetMinutes})).then((v)=>(y=v,v))}return f},close(){y?.close(),y=null,f=null}}}function Bs(){return{fs:Vr(),sdkVersion:As}}function dE(e,t){let r=A(t.values,"registry")??e.env.OMNI_PLUGIN_REGISTRY,o=r===void 0||r.trim().length===0?void 0:r.trim();return{...Bs(),fetchBytes:tl(),now:e.now,...o===void 0?{}:{registry:o}}}function ML(e,t){if(!t.loadable)return Z(e,!1,"will not load");if(t.problems.length>0)return S(e,"yellow","loads, with warnings");return Z(e,!0,"ok")}var lE={usage:"plugin list",summary:"List installed plugins and whether the gateway would load each one",async run(e,{ctx:t,writer:n}){let r=t.root.root,o=Gt(Bs(),r);R(t,n,{pluginsDir:Ce(r),plugins:o},()=>{if(o.length===0)return`no plugins installed; unpack one into ${Ce(r)} with: omni plugin install <path-or-package>`;let i=o.map((u)=>[u.id,u.name??"\u2014",u.version??"\u2014",u.api===null?"\u2014":String(u.api),u.sdk??"\u2014",u.capabilities.length===0?"\u2014":u.capabilities.join(","),ML(t,u)]),s=j([{header:"ID"},{header:"NAME"},{header:"VERSION"},{header:"API"},{header:"SDK"},{header:"CAPABILITIES"},{header:"STATE"}],i),a=o.flatMap((u)=>u.problems.map((c)=>`${u.id}: ${S(t,c.fatal?"red":"yellow",c.reason)}`));return a.length===0?s:`${s}
|
|
1680
1680
|
|
|
1681
1681
|
${a.join(`
|
|
1682
1682
|
`)}`})}},pE={usage:"plugin verify <id>",summary:"Run every load-time check on one plugin without loading it",async run(e,{ctx:t,writer:n}){let r=U(e,0,"plugin id"),o=Xd(Bs(),t.root.root,r);if(R(t,n,o,()=>{let i=o.manifest,s=q([["id",o.id],["path",o.path],["name",i?.name??"\u2014"],["version",i?.version??"\u2014"],["api",i===null?"\u2014":String(i.api)],["sdk",i?.sdk??"\u2014"],["server",i?.server??"\u2014"],["ui",i?.ui??"\u2014"],["capabilities",i===null||i.capabilities.length===0?"\u2014":i.capabilities.join(",")],["origins",i?.origins?.join(",")??"\u2014"]]);if(o.problems.length===0)return`${s}
|
|
1683
1683
|
|
|
1684
|
-
${Z(t,!0,"ok")}: this plugin would load`;let a=o.problems.map((
|
|
1684
|
+
${Z(t,!0,"ok")}: this plugin would load`;let a=o.problems.map((c)=>` ${S(t,c.fatal?"red":"yellow",c.check)} ${c.reason}`),u=o.loadable?S(t,"yellow","this plugin would load, with the warnings above"):Z(t,!1,"this plugin would be skipped at boot");return`${s}
|
|
1685
1685
|
|
|
1686
1686
|
${a.join(`
|
|
1687
1687
|
`)}
|
|
1688
1688
|
|
|
1689
|
-
${
|
|
1689
|
+
${u}`}),!o.loadable)throw new O(`plugin "${r}" would not load`)}},mE={usage:"plugin install <path|tarball|https url|package[@version]> [--registry <url>]",summary:"Unpack a plugin into this installation, running nothing from it",options:{registry:{type:"string"}},async run(e,{ctx:t,writer:n}){let r=U(e,0,"plugin directory, tarball, url, or package name"),o=await Is(dE(t,e),t.root.root,r);R(t,n,o,()=>(X(t,n,S(t,"dim","no code from the package was executed; verify it before restarting")),[`${o.replaced?"replaced":"installed"} ${o.name} ${o.version} at ${o.path}`,S(t,"yellow","restart the gateway for this to take effect: omni restart")].join(`
|
|
1690
1690
|
`)))}},fE={usage:"plugin update <id> [--registry <url>]",summary:"Reinstall a plugin from the source it was installed from",options:{registry:{type:"string"}},async run(e,{ctx:t,writer:n}){let r=U(e,0,"plugin id"),o=await Vd(dE(t,e),t.root.root,r);R(t,n,o,()=>(X(t,n,S(t,"dim",`re-run from ${o.spec}; no code from the package was executed`)),[`reinstalled ${o.name} ${o.version} at ${o.path}`,S(t,"yellow","restart the gateway for this to take effect: omni restart")].join(`
|
|
1691
|
-
`)))}},gE={usage:"plugin remove <id> [--purge]",summary:"Remove a plugin, optionally dropping its stored data too",options:{purge:{type:"boolean"}},async run(e,{ctx:t,writer:n,prompt:r}){let o=U(e,0,"plugin id"),i=L(e.values,"purge"),s=i?`remove plugin "${o}" AND permanently drop its stored data?`:`remove plugin "${o}"? its stored data is kept`;if(!await r.confirm(s))throw new
|
|
1692
|
-
`)})}};function
|
|
1693
|
-
${r}`}function qL(e,t){let n=[Kn(e,"CLIENT REQUEST (pre-RTK)",t.client.request),Kn(e,"CLIENT RESPONSE",t.client.response)];for(let r of t.attempts){let o=`ATTEMPT ${r.attempt} ${
|
|
1691
|
+
`)))}},gE={usage:"plugin remove <id> [--purge]",summary:"Remove a plugin, optionally dropping its stored data too",options:{purge:{type:"boolean"}},async run(e,{ctx:t,writer:n,prompt:r}){let o=U(e,0,"plugin id"),i=L(e.values,"purge"),s=i?`remove plugin "${o}" AND permanently drop its stored data?`:`remove plugin "${o}"? its stored data is kept`;if(!await r.confirm(s))throw new O("cancelled");let a=i?{fs:Vr(),store:await t.store()}:{fs:Vr()},u=await Qd(a,t.root.root,o,{purge:i});R(t,n,u,()=>{let c=[];if(c.push(u.removed?`removed ${o}`:`no directory for ${o} to remove`),i)c.push(u.droppedTables.length===0?"no stored tables to drop":`dropped ${u.droppedTables.length} table(s): ${u.droppedTables.join(", ")}`);else c.push(S(t,"dim","stored tables and migration history kept; --purge drops them"));return c.push(S(t,"yellow","restart the gateway for this to take effect: omni restart")),c.join(`
|
|
1692
|
+
`)})}};function to(){return Bs()}async function Xt(e){let t=await Ds(Gt(to(),e),(r)=>import(r));return{descriptors:Object.assign(Object.create(null),M,t.descriptors),oauth:t.oauth,failures:t.failures}}function $L(e,t){return t.find((n)=>n.id===e&&n.capabilities.includes("provider"))}function El(e,t){return Object.hasOwn(M,e)||$L(e,t)!==void 0}function hE(e,t){return t.map((n)=>{let r=n.version===null?"":` ${n.version}`,o=n.api===null?"api ?":`api ${n.api}`,i=n.sdk===null?"no ui":`sdk ${n.sdk}`,s=n.problems.filter((c)=>c.fatal).map((c)=>c.reason),a=n.problems.length-s.length,u=s.length>0?Z(e,!1,`will not load: ${s.join("; ")}`):a>0?S(e,"yellow",`loads, ${a} warning(s); see omni plugin verify ${n.id}`):Z(e,!0,"ok");return`${n.id}${r} (${o}, ${i}) ${u}`})}async function jn(e){let t=await Ds(Gt(to(),e),(n)=>import(n));return{providers:Object.assign(Object.create(null),bt,t.oauth),descriptors:Object.assign(Object.create(null),M,t.descriptors),failures:t.failures}}var FL={none:["not captured","Body capture was not running for this request. It needs OMNI_BODY_LOGGING_ALLOWED in the environment and bodyLoggingEnabled turned on, and the calling key must not have opted out."],missing:["captured, then lost","This request was captured, but its artifact is no longer on disk. Retention or the row cap has since pruned it, or something removed the file underneath the gateway."],corrupt:["captured, but unreadable","This request was captured and the artifact is still on disk, but it failed its checksum or would not decrypt. Changing OMNI_ENCRYPTION_KEY invalidates every artifact written under the old one."]},BL=new TextEncoder;function zs(e){if(e===null||e===void 0)return 0;return BL.encode(JSON.stringify(e)).length}function yE(e){return q([["STATE",e.detailState],["CAPTURED",oe(e.at)],["SIZE",`${ce(e.sizeBytes)} on disk`],["TRUNCATED",e.truncated?"yes":"no"]])}function zL(e,t){let n=t.attempts.some((o)=>o.streamChunks!==null),r=(o,i)=>i?`${o} (truncated)`:o;return j([{header:"PAIR"},{header:"PROVIDER"},{header:"REQUEST",align:"right"},{header:"RESPONSE",align:"right"},...n?[{header:"FRAMES",align:"right"}]:[],{header:"REQUEST IS"}],[[r("CLIENT",t.client.truncated),"",ce(zs(t.client.request)),ce(zs(t.client.response)),...n?["\u2014"]:[],"pre-RTK"],...t.attempts.map((o)=>[r(`ATTEMPT ${o.attempt}`,o.truncated),Ie(e,o.provider),ce(zs(o.request)),ce(zs(o.response)),...n?[o.streamChunks===null?"\u2014":String(o.streamChunks.length)]:[],"post-RTK"])])}function Kn(e,t,n){let r=n===null||n===void 0?"(nothing recorded for this half \u2014 it never happened, or never completed)":JSON.stringify(n,null,2);return`${S(e,"dim",t)}
|
|
1693
|
+
${r}`}function qL(e,t){let n=[Kn(e,"CLIENT REQUEST (pre-RTK)",t.client.request),Kn(e,"CLIENT RESPONSE",t.client.response)];for(let r of t.attempts){let o=`ATTEMPT ${r.attempt} ${Ie(e,r.provider)}`;if(n.push(Kn(e,`${o} REQUEST (post-RTK)`,r.request)),n.push(Kn(e,`${o} RESPONSE`,r.response)),r.streamChunks!==null)n.push(Kn(e,`${o} STREAM FRAMES (${r.streamChunks.length})`,r.streamChunks))}if(t.error!==null&&t.error!==void 0)n.push(Kn(e,"ERROR",t.error));return n.join(`
|
|
1694
1694
|
|
|
1695
|
-
`)}var _E={usage:"bodies <request-id> [--full]",summary:"Show captured bodies for one request; withheld unless --full",options:{full:{type:"boolean"}},async run(e,{ctx:t,writer:n}){let r=U(e,0,"request id"),o=await Uu(await t.store(),r);R(t,n,o,()=>{let i=o.artifact;if(i===null){let[a,
|
|
1695
|
+
`)}var _E={usage:"bodies <request-id> [--full]",summary:"Show captured bodies for one request; withheld unless --full",options:{full:{type:"boolean"}},async run(e,{ctx:t,writer:n}){let r=U(e,0,"request id"),o=await Uu(await t.store(),r);R(t,n,o,()=>{let i=o.artifact;if(i===null){let[a,u]=FL[o.detailState==="ready"?"corrupt":o.detailState];return[yE(o),"",a,u].join(`
|
|
1696
1696
|
`)}let s=[yE(o),"",zL(t,i),"",S(t,"dim","REQUEST and RESPONSE are the stored payload, after masking and bounding; neither is the size sent over the wire")];if(i.attempts.length>0)s.push("",S(t,"dim","the client request is pre-RTK and every attempt request is post-RTK; they are not the same payload"));if(i.error!==null&&i.error!==void 0)s.push("","an error was recorded for this request");if(L(e.values,"full"))s.push("",qL(t,i));else s.push("","bodies withheld; pass --full to print them, --json for the artifact");return s.join(`
|
|
1697
|
-
`)})}};var HL=600000,wE={usage:"connect <provider> [--label L] [--credential ID]",summary:"Authorize a provider account from the terminal",options:{label:{type:"string"},credential:{type:"string"}},async run(e,{ctx:t,writer:n,prompt:r,connect:o,connectable:i}){let s=U(e,0,"provider"),{ids:a,failures:
|
|
1697
|
+
`)})}};var HL=600000,wE={usage:"connect <provider> [--label L] [--credential ID]",summary:"Authorize a provider account from the terminal",options:{label:{type:"string"},credential:{type:"string"}},async run(e,{ctx:t,writer:n,prompt:r,connect:o,connectable:i}){let s=U(e,0,"provider"),{ids:a,failures:u}=await i();if(!a.includes(s)){let m=u.find((g)=>g.id===s);throw new I(m===void 0?`provider must be one of ${a.join(", ")}`:`provider ${s} comes from a plugin that failed to load: ${m.reason}`)}let c=await o(await t.store()),d=A(e.values,"credential"),p=await c.start(s,A(e.values,"label"),d);if(n.err(""),n.err(`Open this URL to authorize ${s}:`),n.err(` ${p.authorizeUrl}`),p.userCode!==null)n.err(""),n.err(`Then enter the code: ${p.userCode}`);n.err("");let l=p.kind==="device"?await WL(c,p,{sleep:(m)=>Bun.sleep(m),now:t.now,onWait:()=>X(t,n,"waiting for approval\u2026")}):await c.finish(p.flowId,await r.secret("Paste the code or callback URL: "));R(t,n,{id:l.id,provider:s},()=>`connected ${s} as ${l.id}`)}};async function WL(e,t,n){let r=n.now()+HL,o=!1;for(;;){let i=await e.poll(t.flowId);if(i.status==="complete")return{id:i.id};if(!o)n.onWait(),o=!0;if(n.now()>=r)throw new O("authorization timed out");await n.sleep(t.pollIntervalMs)}}import{existsSync as qs,mkdirSync as Tl,readFileSync as jL,rmSync as Rl,writeFileSync as EE}from"fs";import{homedir as vE}from"os";import{dirname as TE,join as _n}from"path";var Vt="omnigateway.service";function RE(e){return e==="system"?_n("/etc/systemd/system",Vt):_n(vE(),".config","systemd","user",Vt)}function Qt(e,t){return e==="system"?["systemctl",...t]:["systemctl","--user",...t]}function Hs(e){return _n(e,"gateway.pid")}function KL(e){return _n(e,"gateway.log")}function Gn(e){let t=e.logFile?.trim();return t!==void 0&&t.length>0?t:KL(e.stateDir)}function SE(e){let t=e.XDG_STATE_HOME,n=typeof t==="string"&&t.length>0?t:_n(vE(),".local","state");return _n(n,"omnigateway")}function GL(e){return`[Unit]
|
|
1698
1698
|
Description=${e.description??"OmniGateway"}
|
|
1699
1699
|
After=network-online.target
|
|
1700
1700
|
Wants=network-online.target
|
|
@@ -1710,49 +1710,49 @@ RestartSec=2
|
|
|
1710
1710
|
[Install]
|
|
1711
1711
|
WantedBy=default.target
|
|
1712
1712
|
`}function wn(e){return qs(e.unitPath)}function ZL(e){let t=Hs(e);if(!qs(t))return null;let n=Number(jL(t,"utf8").trim());return Number.isInteger(n)&&n>0?n:null}function Sl(e){let t=ZL(e.stateDir);if(t===null)return null;if(e.alive(t))return t;return Rl(Hs(e.stateDir),{force:!0}),null}async function bn(e){if(wn(e)){let n=await e.run(Qt(e.scope,["is-active",Vt])),r=n.stdout.trim()||n.stderr.trim()||"unknown",o=await e.run(Qt(e.scope,["show",Vt,"--property=MainPID","--value"])),i=Number(o.stdout.trim());return{supervisor:"systemd",running:r==="active",pid:Number.isInteger(i)&&i>0?i:null,state:r,unitPath:e.unitPath,logFile:null}}let t=Sl(e);return{supervisor:t===null?"none":"pidfile",running:t!==null,pid:t,state:null,unitPath:null,logFile:Gn(e)}}async function xl(e,t){if(wn(e)){let i=await e.run(Qt(e.scope,["start",Vt]));if(i.code!==0)throw Error(i.stderr.trim()||`systemctl start exited ${i.code}`);return{supervisor:"systemd",pid:null,healthy:await vl(e,t.baseUrl)}}let n=Sl(e);if(n!==null)return{supervisor:"pidfile",pid:n,healthy:await vl(e,t.baseUrl)};Tl(e.stateDir,{recursive:!0});let r=Gn(e);Tl(TE(r),{recursive:!0});let o=e.spawn({argv:t.argv,cwd:e.root,env:{...t.env,OMNI_LOG_FILE:r},logFile:r});return EE(Hs(e.stateDir),`${o}
|
|
1713
|
-
`),{supervisor:"pidfile",pid:o,healthy:await vl(e,t.baseUrl)}}var XL=1e4,bE=200;async function vl(e,t){let n=Math.ceil(XL/bE);for(let r=0;r<n;r++){if(await e.probe(t))return!0;await e.sleep(bE)}return!1}var VL=5000,kE=100;async function Al(e){if(wn(e)){let r=await e.run(Qt(e.scope,["stop",Vt]));if(r.code!==0)throw Error(r.stderr.trim()||`systemctl stop exited ${r.code}`);return{supervisor:"systemd",stopped:!0}}let t=Sl(e);if(t===null)return{supervisor:"none",stopped:!1};e.kill(t,"SIGTERM");let n=Math.ceil(VL/kE);for(let r=0;e.alive(t);r++){if(r>=n){e.kill(t,"SIGKILL");break}await e.sleep(kE)}return Rl(Hs(e.stateDir),{force:!0}),{supervisor:"pidfile",stopped:!0}}async function xE(e,t){let n=e.unitPath;if(qs(n)&&!t.force)throw Error(`${n} already exists; pass --force to replace it`);Tl(TE(n),{recursive:!0}),EE(n,GL({root:e.root,bun:t.bun,entrypoint:t.entrypoint}));let r=await e.run(Qt(e.scope,["daemon-reload"])),o=!1;if(t.enable)o=(await e.run(Qt(e.scope,["enable",Vt]))).code===0;return{path:n,reloaded:r.code===0,enabled:o}}async function AE(e){let t=e.unitPath;if(!qs(t))return{path:t,removed:!1};return await e.run(Qt(e.scope,["disable","--now",Vt])),Rl(t,{force:!0}),await e.run(Qt(e.scope,["daemon-reload"])),{path:t,removed:!0}}function
|
|
1714
|
-
`)}var
|
|
1713
|
+
`),{supervisor:"pidfile",pid:o,healthy:await vl(e,t.baseUrl)}}var XL=1e4,bE=200;async function vl(e,t){let n=Math.ceil(XL/bE);for(let r=0;r<n;r++){if(await e.probe(t))return!0;await e.sleep(bE)}return!1}var VL=5000,kE=100;async function Al(e){if(wn(e)){let r=await e.run(Qt(e.scope,["stop",Vt]));if(r.code!==0)throw Error(r.stderr.trim()||`systemctl stop exited ${r.code}`);return{supervisor:"systemd",stopped:!0}}let t=Sl(e);if(t===null)return{supervisor:"none",stopped:!1};e.kill(t,"SIGTERM");let n=Math.ceil(VL/kE);for(let r=0;e.alive(t);r++){if(r>=n){e.kill(t,"SIGKILL");break}await e.sleep(kE)}return Rl(Hs(e.stateDir),{force:!0}),{supervisor:"pidfile",stopped:!0}}async function xE(e,t){let n=e.unitPath;if(qs(n)&&!t.force)throw Error(`${n} already exists; pass --force to replace it`);Tl(TE(n),{recursive:!0}),EE(n,GL({root:e.root,bun:t.bun,entrypoint:t.entrypoint}));let r=await e.run(Qt(e.scope,["daemon-reload"])),o=!1;if(t.enable)o=(await e.run(Qt(e.scope,["enable",Vt]))).code===0;return{path:n,reloaded:r.code===0,enabled:o}}async function AE(e){let t=e.unitPath;if(!qs(t))return{path:t,removed:!1};return await e.run(Qt(e.scope,["disable","--now",Vt])),Rl(t,{force:!0}),await e.run(Qt(e.scope,["daemon-reload"])),{path:t,removed:!0}}function no(e){let t=e.logFile?.trim(),n=t!==void 0&&t.length>0&&$s(t)?t:wn(e)?void 0:$s(Gn(e))?Gn(e):void 0;return{source:od({...n===void 0?{}:{logFile:n},unitInstalled:wn(e),scope:e.scope}),deps:{readFile:(r,o)=>bl(r,o),run:e.run}}}async function OE(e,t){let{source:n,deps:r}=no(e);return(await Mn(r,n,{lines:t})).lines.map((i)=>i.raw).join(`
|
|
1714
|
+
`)}var Ol=2000,QL={debug:"dim",warn:"yellow",error:"red"};function CE(e,t){return t.map((n)=>{let r=n.level===null?void 0:QL[n.level];return r===void 0?n.raw:S(e,r,n.raw)}).join(`
|
|
1715
1715
|
`)}function Ws(e){if(e.kind==="file")return`${e.path} (named by OMNI_LOG_FILE)`;if(e.kind==="journal")return`systemd journal for ${e.unit}`;return"not captured \u2014 run under systemd, or start it with `omni start`"}function YL(e){if(e.kind!=="none")return`no output yet in ${Ws(e)}`;return["this gateway's output is not being captured, so there is nothing to show.","run it in the foreground and its output goes to your terminal instead.","to capture it: `omni service install`, or `omni start`, which redirects","output to a file and points OMNI_LOG_FILE at it."].join(`
|
|
1716
|
-
`)}var PE={usage:"console [-n N] [--follow] [--level debug|info|warn|error]",summary:"Show the gateway process's own output",options:{number:{type:"string",short:"n"},follow:{type:"boolean"},level:{type:"string"},system:{type:"boolean"}},async run(e,{ctx:t,writer:n,service:r}){let o=yn(e.values,"number")??50,i=A(e.values,"level"),s=
|
|
1717
|
-
plugin ${_.id}: ${_.reason}`).join("");throw new
|
|
1716
|
+
`)}var PE={usage:"console [-n N] [--follow] [--level debug|info|warn|error]",summary:"Show the gateway process's own output",options:{number:{type:"string",short:"n"},follow:{type:"boolean"},level:{type:"string"},system:{type:"boolean"}},async run(e,{ctx:t,writer:n,service:r}){let o=yn(e.values,"number")??50,i=A(e.values,"level"),s=Vo(i);if(i!==void 0&&s===null)throw new I(`unknown level "${i}"; use debug, info, warn or error`);let{source:a,deps:u}=no(r()),c={lines:o,...s===null?{}:{level:s}},d=await Mn(u,a,c);if(R(t,n,d,()=>d.lines.length===0?YL(a):CE(t,d.lines)),!t.json&&d.lines.length>0)X(t,n,S(t,"dim",`reading ${Ws(a)}`));if(L(e.values,"follow")!==!0||t.json)return;let p=d.lines.at(-1)?.at??0;for(;;){await Bun.sleep(Ol);let l=await Mn(u,a,{...c,since:p});if(l.lines.length===0)continue;p=l.lines.at(-1)?.at??p,n.out(CE(t,l.lines))}}};function IE(e,t){if(!e.enabled)return{ok:!1,text:e.disabledReason??"disabled"};if(oi(e,t))return{ok:!1,text:"expired"};if(gu(e,t))return{ok:!0,text:"expired (refreshable)"};return{ok:!0,text:"enabled"}}var LE={usage:"credentials list",summary:"List provider accounts and whether the router may use them",async run(e,{ctx:t,writer:n}){let r=await Qe(await t.store());R(t,n,{credentials:r},()=>{if(r.length===0)return"no credentials; add one with: omni connect <provider>";return j([{header:"ID"},{header:"PROVIDER"},{header:"LABEL"},{header:"AUTH"},{header:"TIER",align:"right"},{header:"WEIGHT",align:"right"},{header:"STATE"},{header:"EXPIRES"}],r.map((o)=>{let i=IE(o,t.now());return[o.id,Ie(t,o.provider),o.label,o.authType,String(o.tier),String(o.weight),Z(t,i.ok,i.text),oe(o.expiresAt)]}))})}};async function Cl(e,t){return ws(await e.store(),t)}var NE={usage:"credentials show <id>",summary:"Show one account in full, without its secrets",async run(e,{ctx:t,writer:n}){let r=U(e,0,"credential id"),o=await Cl(t,r),i=IE(o,t.now()),s={id:o.id,provider:o.provider,label:o.label,authType:o.authType,enabled:o.enabled,tier:o.tier,weight:o.weight,expiresAt:o.expiresAt,accountEmail:o.accountEmail,providerData:o.providerData,disabledReason:o.disabledReason,disabledAt:o.disabledAt,hasRefreshToken:o.hasRefreshToken,createdAt:o.createdAt,updatedAt:o.updatedAt};R(t,n,s,()=>q([["id",o.id],["provider",Ie(t,o.provider)],["label",o.label],["auth",o.authType],["state",Z(t,i.ok,i.text)],["tier",String(o.tier)],["weight",String(o.weight)],["account",o.accountEmail??"\u2014"],["expires",oe(o.expiresAt)],["refresh token",o.hasRefreshToken?"yes":"no"],["created",oe(o.createdAt)],["updated",oe(o.updatedAt)]]))}};function DE(e){return{usage:`credentials ${e?"enable":"disable"} <id>`,summary:`${e?"Let":"Stop letting"} the router use an account`,async run(t,{ctx:n,writer:r}){let o=U(t,0,"credential id");await bs({store:await n.store(),now:n.now},o,{enabled:e}),R(n,r,{id:o,enabled:e},()=>`${o} ${e?"enabled":"disabled"}`)}}}var UE=DE(!0),ME=DE(!1),$E={usage:"credentials set <id> [--label L] [--tier N] [--weight W]",summary:"Change an account's label, tier, or weight",options:{label:{type:"string"},tier:{type:"string"},weight:{type:"string"}},async run(e,{ctx:t,writer:n}){let r=U(e,0,"credential id"),o=A(e.values,"label"),i=yn(e.values,"tier"),s=yn(e.values,"weight");if(o===void 0&&i===void 0&&s===void 0)throw new I("nothing to change: pass --label, --tier, or --weight");let a={...o===void 0?{}:{label:o},...i===void 0?{}:{tier:i},...s===void 0?{}:{weight:s}};await bs({store:await t.store(),now:t.now},r,a),R(t,n,{id:r,...a},()=>`${r} updated`)}},FE={usage:"credentials rm <id>",summary:"Delete an account and its stored tokens",async run(e,{ctx:t,writer:n,prompt:r}){let o=U(e,0,"credential id"),i=await Cl(t,o),s=(await mn(await t.store())).filter((u)=>u.targets.some((c)=>c.credentialId===o)).map((u)=>u.id);if(!await r.confirm(`delete ${i.provider} credential "${i.label}" (${o})?`+(s.length===0?"":` ${s.length===1?"model":"models"} ${s.join(", ")} ${s.length===1?"pins a target":"pin targets"} to it, and ${s.length===1?"that target":"those targets"} will fail rather than fall back to another account.`)))throw new O("cancelled");await yd(await t.store(),o),R(t,n,{id:o,removed:!0},()=>`${o} removed`)}},BE={usage:"credentials refresh <id>",summary:"Force an OAuth token refresh now",async run(e,{ctx:t,writer:n}){let r=U(e,0,"credential id"),o=await t.store(),i=await Cl(t,r),s=Qr({store:o,providers:Object.hasOwn(M,i.provider)?bt:(await jn(t.root.root)).providers,http:Dn(),now:t.now});X(t,n,`refreshing ${i.provider} credential ${r}\u2026`);let a=await gd({store:o,refresh:s},r);R(t,n,{id:r,expiresAt:a.expiresAt},()=>`${r} refreshed; expires ${oe(a.expiresAt)}`)}},zE={usage:"credentials add-key <provider> [--label L] [--endpoint-id ID --endpoint-label L --origin URL --protocol P]",summary:"Store a provider API key, read from a prompt or stdin",options:{label:{type:"string"},"endpoint-id":{type:"string"},"endpoint-label":{type:"string"},origin:{type:"string"},protocol:{type:"string"}},async run(e,{ctx:t,writer:n,prompt:r}){let o=U(e,0,"provider"),i=Object.hasOwn(M,o),{descriptors:s,failures:a}=i?{descriptors:M,failures:[]}:await Xt(t.root.root),u=(y)=>Object.hasOwn(s,y);if(!u(o)){let y=a.map((_)=>`
|
|
1717
|
+
plugin ${_.id}: ${_.reason}`).join("");throw new I(`provider must be one of ${Gc.join(", ")}, or a plugin that loads and supplies one; omni plugin list shows which${y}`)}for(let y of a)X(t,n,S(t,"yellow",`plugin ${y.id}: ${y.reason}`));let c=A(e.values,"protocol"),d=c==="chat-completions"?"chat_completions":c==="responses"?"responses":c,p=await r.secret(`${o} API key: `);if(p.length===0)throw new O("no API key given");let l=await t.store(),m=A(e.values,"endpoint-id"),g=o==="custom"&&m!==void 0?(await Qe(l)).find((y)=>y.provider==="custom"&&y.providerData.endpointId===m.trim()):void 0,h=g===void 0?void 0:`${String(g.providerData.origin)}${typeof g.providerData.basePath==="string"?g.providerData.basePath:""}`,f=await fd(l,{provider:o,apiKey:p,label:A(e.values,"label"),endpointId:m,endpointLabel:A(e.values,"endpoint-label")??g?.providerData.endpointLabel,origin:A(e.values,"origin")??h,protocol:d??g?.providerData.protocol},void 0,u);R(t,n,{id:f.id,provider:f.provider,pluginFailures:a},()=>`stored ${f.provider} api key as ${f.id}`)}},qE={usage:"credentials health",summary:"Show breaker state per credential and model",options:{all:{type:"boolean"}},async run(e,{ctx:t,writer:n}){let r=await t.store(),[{health:o,lastUsed:i},s]=await Promise.all([hd({store:r,now:t.now}),Qe(r)]),a=new Map(s.map((c)=>[c.id,c.label])),u=L(e.values,"all")?o:o.filter((c)=>c.breakerState!=="closed"||c.consecutiveFailures>0);R(t,n,{health:o,lastUsed:i},()=>{if(u.length===0)return"every credential is healthy";return j([{header:"CREDENTIAL"},{header:"MODEL"},{header:"BREAKER"},{header:"FAILS",align:"right"},{header:"LAST USED"}],u.map((c)=>[a.get(c.credentialId)??c.credentialId,c.model,Z(t,c.breakerState==="closed",c.breakerState),String(c.consecutiveFailures),S(t,"dim",oe(i[c.credentialId]??null))]))})}};import{existsSync as JL}from"fs";function Pl(e){try{let t=new URL(e);if(t.password!=="")t.password="***";return t.toString()}catch{return e}}async function Zn(e){return{store:await e.ctx.store(),fs:el(),now:e.ctx.now}}var WE={usage:"db migrate [--to <postgres-url>]",summary:"Create or upgrade the database schema, or copy this installation onto Postgres",options:{to:{type:"string"}},async run(e,t){let{ctx:n,writer:r,prompt:o}=t,i=A(e.values,"to");if(i!==void 0){if(!i.startsWith("postgres"))throw new O("--to must be a postgres:// URL");if((await bn(t.service())).running)throw new O("a gateway is running against this installation; run omni stop first, so the copy misses nothing it is writing");if(!await o.confirm(`copy ${n.databasePath} into ${Pl(i)}?`))throw new O("cancelled");let c=await n.store(),d=await pi({url:i,encryptionKey:await Bo(n.config().encryptionKey),dayOffsetMinutes:n.config().dayOffsetMinutes});try{let p=await sd(c,d);R(n,r,{target:Pl(i),...p},()=>[q([["target",Pl(i)],...Object.entries(p.counts).map(([l,m])=>[l,String(m)])]),"","not carried:",...p.notCarried.map((l)=>` - ${l}`),"","next: set OMNI_DATABASE_URL and OMNI_REDIS_URL on every replica and start them."].join(`
|
|
1718
1718
|
`))}finally{d.close()}return}let s=JL(n.databasePath);await(await n.store()).config.getSettings(),R(n,r,{path:n.databasePath,created:!s},()=>q([["database",n.databasePath],["schema",s?"up to date":"created"]]))}},jE={usage:"db stats",summary:"Show database size, free pages, and what snapshots are held",async run(e,t){let{ctx:n,writer:r}=t,o=await Td(await Zn(t)),i=j([{header:"TABLE"},{header:"SIZE",align:"right"},{header:"ROWS",align:"right"}],o.tables.map((a)=>[a.name,ce(a.bytes),String(a.rows)])),s=o.engine==="postgres"?q([["database",o.location],["size",ce(o.logicalBytes)],["captured bodies",`${ce(o.bodiesBytes)} (request_bodies table)`],["schema version",String(o.stats.schemaVersion)]]):q([["database",n.databasePath],["size",ce(o.fileBytes)],["write-ahead log",ce(o.walBytes)],["captured bodies",`${ce(o.bodiesBytes)} (never snapshotted)`],["free pages",`${ce(o.freePageBytes)} \u2014 reclaimed by omni db vacuum`],["schema version",String(o.stats.schemaVersion)],["snapshots",`${o.snapshots.count} (${ce(o.snapshots.totalBytes)}), latest ${oe(o.snapshots.latestAt)}`],["retention",`keep ${o.retention.keepLatest}, up to ${o.retention.maxAgeDays} days`],["free disk",o.freeDiskBytes===null?"unknown":ce(o.freeDiskBytes)]]);R(n,r,o,()=>`${s}
|
|
1719
1719
|
|
|
1720
|
-
${i}`)}},KE={usage:"db snapshots",summary:"List the snapshots held for this installation",async run(e,t){let{ctx:n,writer:r}=t,o=await Zn(t),i=
|
|
1720
|
+
${i}`)}},KE={usage:"db snapshots",summary:"List the snapshots held for this installation",async run(e,t){let{ctx:n,writer:r}=t,o=await Zn(t),i=Kr(o);R(n,r,{snapshots:i},()=>{if(i.length===0)return`no snapshots in ${pn(o)}; take one with omni db backup`;return j([{header:"ID"},{header:"TAKEN"},{header:"SIZE",align:"right"},{header:"REASON"}],i.map((s)=>[s.id,oe(s.createdAt),ce(s.sizeBytes),s.reason]))})}},GE={usage:"db backup",summary:"Take a snapshot of the database, pruning by the retention policy",async run(e,t){let{ctx:n,writer:r}=t,o=await _d(await Zn(t),{reason:"manual"});R(n,r,o,()=>(X(n,r,"a snapshot carries encrypted credentials and key hashes; captured bodies are not in it"),q([["snapshot",o.id],["size",ce(o.sizeBytes)],["taken",oe(o.createdAt)]])))}},ZE={usage:"db vacuum",summary:"Rewrite the database, reclaiming the pages deletion left free",async run(e,t){let{ctx:n,writer:r}=t;X(n,r,"compacting; the gateway's writes will block until this finishes\u2026");let o=await vd(await Zn(t));R(n,r,o,()=>q([["reclaimed",ce(o.reclaimedBytes)],["took",`${o.durationMs} ms`]]))}},XE={usage:"db clear-bodies",summary:"Delete every captured request and response body; the requests stay logged",async run(e,t){let{ctx:n,writer:r,prompt:o}=t;if(!await o.confirm("delete every captured body? there is no snapshot of them"))throw new O("cancelled");let i=await Ed(await Zn(t));R(n,r,i,()=>q([["removed",String(i.removed)],["orphaned files removed",String(i.orphans)]]))}};function HE(e){let t=e.live,n=[...new Set([...Object.keys(e.snapshot),...Object.keys(t??{})])].sort(),r=(i,s)=>{let a=i?.[s];return a===void 0?"\u2014":String(a)},o=j([{header:"TABLE"},{header:"SNAPSHOT",align:"right"},{header:"LIVE",align:"right"}],n.map((i)=>[i,r(e.snapshot,i),r(t,i)]));return t===null?`${o}
|
|
1721
1721
|
|
|
1722
|
-
the live database could not be read, so the LIVE column is unknown`:o}var VE={usage:"db restore <id> [--dry-run]",summary:"Replace the database with a snapshot, keeping a copy of what was there",options:{"dry-run":{type:"boolean"}},async run(e,t){let{ctx:n,writer:r,prompt:o}=t,i=U(e,0,"snapshot id"),s=await bn(t.service());if(s.running){let d=s.pid===null?s.supervisor:`${s.supervisor}, pid ${s.pid}`;throw new
|
|
1722
|
+
the live database could not be read, so the LIVE column is unknown`:o}var VE={usage:"db restore <id> [--dry-run]",summary:"Replace the database with a snapshot, keeping a copy of what was there",options:{"dry-run":{type:"boolean"}},async run(e,t){let{ctx:n,writer:r,prompt:o}=t,i=U(e,0,"snapshot id"),s=await bn(t.service());if(s.running){let d=s.pid===null?s.supervisor:`${s.supervisor}, pid ${s.pid}`;throw new O(`a gateway is running (${d}) against this installation; run omni stop first, or restore from the dashboard, which swaps the file behind its own quiesce latch`)}let a=await Zn(t),u=await bd(a,i);if(L(e.values,"dry-run")){R(n,r,{id:i,...u},()=>HE(u));return}if(r.err(HE(u)),!await o.confirm(`replace ${n.databasePath} with ${i}?`))throw new O("cancelled");let c=await kd(a,i);R(n,r,c,()=>q([["restored",i],["undo",c.preRestoreSnapshot.id],...Object.entries(c.counts).map(([d,p])=>[d,String(p)])]))}};var Ll=new Set(["requests","tokens","spend"]),QE="concurrency",Il="models";function Nl(){return{scope:{},models:Object.create(null)}}function rv(e){let t=Object.keys(e.models);if(t.length===0)return{...e.scope};let n={};for(let r of t){let o=e.models[r];if(o!==void 0)n[r]=o}return{...e.scope,[Il]:n}}var YE="__proto__";function kt(e,t){if(t===YE)throw new I(`${e} cannot name "${YE}"`)}function ov(e,t,n={}){let r=n;for(let o of e){let i=o.indexOf("=");if(i<=0)throw new I(`${t} must be dimension:window=value, got "${o}"`);let s=o.slice(0,i),a=o.slice(i+1),u=Number(a);if(a.trim().length===0||!Number.isFinite(u))throw new I(`${t} ${s} must be a number, got "${a}"`);let c=s.indexOf(":");if(c<0){if(Ll.has(s))throw new I(`${t} ${s} needs a window, e.g. ${t} ${s}:1m=60`);kt(t,s),JE(t,s),r[s]=u;continue}let d=s.slice(0,c),p=s.slice(c+1);if(d.length===0||p.length===0)throw new I(`${t} must be dimension:window=value, got "${o}"`);kt(t,d),kt(t,p),JE(t,d),iv(r,d,p,u)}return r}function JE(e,t){if(t===Il)throw new I(`${e} cannot name "${Il}"; per-model limits use --model-limit`)}function iv(e,t,n,r){let o=e[t],i=typeof o==="object"?o:{};i[n]=r,e[t]=i}function sv(e,t,n){let r=()=>new I(`${t} must be ${n}, got "${e}"`),o=e.lastIndexOf(":");if(o<0)throw r();let i=e.slice(o+1);if(i===QE){let d=e.slice(0,o);if(d.length===0)throw r();return kt(t,d),{model:d,dimension:QE,window:null}}if(Ll.has(i))throw new I(`${t} ${e} needs a window, e.g. ${t} ${e}:1m`);let s=e.slice(0,o),a=s.lastIndexOf(":");if(a<0)throw r();let u=s.slice(0,a),c=s.slice(a+1);if(u.length===0||c.length===0||i.length===0)throw r();return kt(t,u),kt(t,c),kt(t,i),{model:u,dimension:c,window:i}}var ev="model:dimension:window=value or model:concurrency=value";function av(e,t){for(let r of e){let o=r.lastIndexOf("=");if(o<=0)throw new I(`--model-limit must be ${ev}, got "${r}"`);let i=r.slice(0,o),s=r.slice(o+1),a=Number(s);if(s.trim().length===0||!Number.isFinite(a))throw new I(`--model-limit ${i} must be a number, got "${s}"`);let{model:u,dimension:c,window:d}=sv(i,"--model-limit",ev),p=t.models[u]??{};if(d===null)p[c]=a;else iv(p,c,d,a);t.models[u]=p}}function eN(e,t){for(let r of t){if(r.includes("="))throw new I(`--unset-model-limit names a limit to remove, not a value, got "${r}"`);let{model:o,dimension:i,window:s}=sv(r,"--unset-model-limit","model:dimension:window or model:concurrency"),a=e.models[o],u=()=>new I(`this key has no ${r} limit`);if(a===void 0||!Object.hasOwn(a,i))throw u();if(s===null)delete a[i];else{let c=a[i];if(typeof c!=="object"||!Object.hasOwn(c,s))throw u();if(delete c[s],Object.keys(c).length===0)delete a[i]}if(Object.keys(a).length===0)delete e.models[o]}}function tN(e){let t=Nl();t.scope=tv(e);for(let[n,r]of Object.entries(e.models??{})){let o=tv(r);if(Object.keys(o).length>0)t.models[n]=o}return t}function tv(e){let t={};for(let n of["requests","tokens","spend"]){let r=e[n];if(r===void 0)continue;let o={};for(let[i,s]of Object.entries(r)){if(s===null||s===void 0)continue;o[i]=s}if(Object.keys(o).length>0)t[n]=o}if(e.concurrency!==void 0&&e.concurrency!==null)t.concurrency=e.concurrency;return t}function nN(e,t){for(let n of t){if(n.includes("="))throw new I(`--unset names a limit to remove, not a value, got "${n}"`);let r=n.indexOf(":");if(r<0){if(Ll.has(n))throw new I(`--unset ${n} needs a window, e.g. --unset ${n}:1m`);if(kt("--unset",n),e[n]===void 0)throw new I(`this key has no ${n} limit`);delete e[n];continue}let o=n.slice(0,r),i=n.slice(r+1);if(o.length===0||i.length===0)throw new I(`--unset must be dimension:window, got "${n}"`);kt("--unset",o),kt("--unset",i);let s=e[o];if(typeof s!=="object"||s[i]===void 0)throw new I(`this key has no ${n} limit`);if(delete s[i],Object.keys(s).length===0)delete e[o]}}function rN(e){let t=e.dimension==="spend",n=(r)=>t?Xn(r):String(r);return[e.model??"key",e.dimension,e.window??"\u2014",n(e.limit),e.used===null?"\u2014":n(e.used),e.used===null?"\u2014":`${Math.round(e.used/e.limit*100)}%`]}function oN(e){let t=nv(e,"");for(let[n,r]of Object.entries(e.models??{}))t.push(...nv(r,`${n}:`));return t.length===0?"\u2014":t.join(" ")}function nv(e,t){let n=[];for(let r of["requests","tokens","spend"]){let o=e[r];if(o===void 0)continue;for(let[i,s]of Object.entries(o)){if(s===null||s===void 0)continue;n.push(`${t}${r}:${i}=${s}`)}}if(e.concurrency!==void 0&&e.concurrency!==null)n.push(`${t}concurrency=${e.concurrency}`);return n}function uv(e,t){let n=Date.parse(t);if(!Number.isFinite(n))throw new I(`${e} must be a date, e.g. 2030-01-01, got "${t}"`);return n}function cv(e,t){if(e.revokedAt!==null)return"revoked";return wr(e,t)?"active":"expired"}var dv={usage:"keys list",summary:"List gateway API keys",async run(e,{ctx:t,writer:n}){let r=await jt(await t.store()),o=Date.now();R(t,n,{keys:r},()=>{if(r.length===0)return"no api keys; create one with: omni keys create";return j([{header:"ID"},{header:"LABEL"},{header:"PREFIX"},{header:"MODELS"},{header:"LIMITS"},{header:"BODY CAPTURE"},{header:"POLICY"},{header:"STATE"},{header:"EXPIRES"},{header:"CREATED"}],r.map((i)=>[i.id,i.label,i.prefix,i.modelAllowlist===null?"all":i.modelAllowlist.length===0?"none":i.modelAllowlist.join(","),i.limits===null?S(t,"red","unreadable"):oN(i.limits),i.bodyLoggingOptOut?"no bodies":"\u2014",i.guardrailPolicy===null?"no":"yes",((s)=>Z(t,s==="active",s))(cv(i,o)),oe(i.expiresAt),oe(i.createdAt)]))})}},lv={usage:"keys create [--label L] [--allow <model> ...] [--limit <d>:<w>=N ...] [--model-limit <model>:<d>:<w>=N ...] [--expires <when>] [--policy <text>] [--no-bodies]",summary:"Mint a gateway API key, printed once",options:{label:{type:"string"},allow:{type:"string",multiple:!0},limit:{type:"string",multiple:!0},"model-limit":{type:"string",multiple:!0},expires:{type:"string"},policy:{type:"string"},"no-bodies":{type:"boolean"}},async run(e,{ctx:t,writer:n}){let r=Pe(e.values,"allow"),o=A(e.values,"policy"),i=A(e.values,"expires"),s=Nl();ov(Pe(e.values,"limit")??[],"--limit",s.scope),av(Pe(e.values,"model-limit")??[],s);let a=await xd(await t.store(),{...A(e.values,"label")===void 0?{}:{label:A(e.values,"label")},modelAllowlist:r??null,limits:rv(s),bodyLoggingOptOut:L(e.values,"no-bodies"),expiresAt:i===void 0?null:uv("--expires",i),guardrailPolicy:o??null});R(t,n,a,()=>(X(t,n,S(t,"yellow","this key is shown once and stored only as a hash")),`${a.key}`))}},pv={usage:"keys limits <id> [--set <d>:<w>=N ...] [--unset <d>:<w> ...] [--model-limit <model>:<d>:<w>=N ...] [--unset-model-limit <model>:<d>[:<w>] ...]",summary:"Show or edit one key's limits, with what has been used against them",options:{set:{type:"string",multiple:!0},unset:{type:"string",multiple:!0},"model-limit":{type:"string",multiple:!0},"unset-model-limit":{type:"string",multiple:!0}},async run(e,{ctx:t,writer:n}){let r=U(e,0,"key id"),o=[...Pe(e.values,"set")??[],...Pe(e.values,"model-limit")??[]],i=[...Pe(e.values,"unset")??[],...Pe(e.values,"unset-model-limit")??[]],s=await t.store(),a=(await jt(s)).find((d)=>d.id===r);if(a===void 0)throw new O(`no api key "${r}"`);let u=a,c=!1;if(o.length>0||i.length>0){if(a.limits===null){if(i.length>0)throw new O(`the stored limits for "${r}" cannot be read, so there is nothing to unset; replace them with --set instead`);c=!0,X(t,n,S(t,"yellow","the stored limits could not be read and are being replaced"))}let d=a.limits===null?Nl():tN(a.limits);nN(d.scope,Pe(e.values,"unset")??[]),eN(d,Pe(e.values,"unset-model-limit")??[]),ov(Pe(e.values,"set")??[],"--set",d.scope),av(Pe(e.values,"model-limit")??[],d),u=await Ad(s,r,{limits:rv(d)})}R(t,n,c?{...u,limitsReplaced:!0}:u,()=>{let d=q([["id",u.id],["label",u.label],["prefix",`${u.prefix}\u2026`]]);if(u.limits===null)return`${d}
|
|
1723
1723
|
|
|
1724
|
-
${S(t,"red","limits unreadable")}: this key is refused at /v1 until they are replaced with --set`;if(
|
|
1724
|
+
${S(t,"red","limits unreadable")}: this key is refused at /v1 until they are replaced with --set`;if(u.limitUsage.length===0)return`${d}
|
|
1725
1725
|
|
|
1726
1726
|
no limits configured; this key is unlimited`;return`${d}
|
|
1727
1727
|
|
|
1728
|
-
${j([{header:"SCOPE"},{header:"DIMENSION"},{header:"WINDOW"},{header:"LIMIT",align:"right"},{header:"USED",align:"right"},{header:"USE%",align:"right"}],
|
|
1729
|
-
${S(t,"dim","usage is counted from completed requests still inside each window")}`})}},mv={usage:"keys expiry <id> [--at <when>] [--never]",summary:"Show or replace one key's expiry",options:{at:{type:"string"},never:{type:"boolean"}},async run(e,{ctx:t,writer:n}){let r=U(e,0,"key id"),o=A(e.values,"at"),i=L(e.values,"never"),s=await t.store(),a=(await jt(s)).find((
|
|
1730
|
-
expires: never`;let d=cv(
|
|
1731
|
-
expires: ${oe(
|
|
1728
|
+
${j([{header:"SCOPE"},{header:"DIMENSION"},{header:"WINDOW"},{header:"LIMIT",align:"right"},{header:"USED",align:"right"},{header:"USE%",align:"right"}],u.limitUsage.map(rN))}
|
|
1729
|
+
${S(t,"dim","usage is counted from completed requests still inside each window")}`})}},mv={usage:"keys expiry <id> [--at <when>] [--never]",summary:"Show or replace one key's expiry",options:{at:{type:"string"},never:{type:"boolean"}},async run(e,{ctx:t,writer:n}){let r=U(e,0,"key id"),o=A(e.values,"at"),i=L(e.values,"never"),s=await t.store(),a=(await jt(s)).find((c)=>c.id===r);if(a===void 0)throw new O(`no api key "${r}"`);let u=a;if(i||o!==void 0){if(i&&o!==void 0)throw new I("--at and --never cannot be combined");let c=i?null:uv("--at",o);u=await Cd(s,r,{expiresAt:c})}R(t,n,u,()=>{let c=q([["id",u.id],["label",u.label],["prefix",`${u.prefix}\u2026`]]);if(u.expiresAt===null)return`${c}
|
|
1730
|
+
expires: never`;let d=cv(u,Date.now());return`${c}
|
|
1731
|
+
expires: ${oe(u.expiresAt)}${d==="expired"?` ${S(t,"red","(expired)")}`:""}`})}},fv={usage:"keys guardrail <id> [--policy <text> | --policy-file <path> | --clear]",summary:"Show or replace one key's usage policy",options:{policy:{type:"string"},"policy-file":{type:"string"},clear:{type:"boolean"}},async run(e,{ctx:t,writer:n}){let r=U(e,0,"key id"),o=A(e.values,"policy"),i=A(e.values,"policy-file"),s=L(e.values,"clear"),a=[o!==void 0,i!==void 0,s].filter(Boolean).length;if(a>1)throw new I("pass one of --policy, --policy-file or --clear");let u=await t.store(),c=(await jt(u)).find((p)=>p.id===r);if(c===void 0)throw new O(`no api key "${r}"`);let d=c;if(a===1){let p=s?null:i!==void 0?await Bun.file(i).text().catch(()=>{throw new O(`could not read ${i}`)}):o;d=await Pd(u,r,{policy:p})}R(t,n,d,()=>{let p=q([["id",d.id],["label",d.label],["prefix",`${d.prefix}\u2026`]]);if(d.guardrailPolicy===null)return`${p}
|
|
1732
1732
|
policy: none; requests are not judged`;return`${p}
|
|
1733
1733
|
policy:
|
|
1734
|
-
${d.guardrailPolicy}`})}},gv={usage:"keys revoke <id>",summary:"Revoke a gateway API key, keeping its usage history",async run(e,{ctx:t,writer:n,prompt:r}){let o=U(e,0,"key id"),s=(await jt(await t.store())).find((a)=>a.id===o);if(s===void 0)throw new
|
|
1735
|
-
models: ${p}`})}};var yv={usage:"models list",summary:"List virtual models and their targets",async run(e,{ctx:t,writer:n}){let r=await mn(await t.store());R(t,n,{models:r},()=>{if(r.length===0)return"no virtual models configured";return j([{header:"ID"},{header:"STRATEGY"},{header:"ALIAS"},{header:"TARGETS",align:"right"},{header:"PROVIDERS"}],r.map((o)=>[o.id,o.strategy,o.isAlias?"yes":"no",String(o.targets.length),[...new Set(o.targets.map((i)=>i.provider))].map((i)=>
|
|
1736
|
-
`))}};function Yt(e){return e===void 0?"\u2014":e.toFixed(2)}function
|
|
1734
|
+
${d.guardrailPolicy}`})}},gv={usage:"keys revoke <id>",summary:"Revoke a gateway API key, keeping its usage history",async run(e,{ctx:t,writer:n,prompt:r}){let o=U(e,0,"key id"),s=(await jt(await t.store())).find((a)=>a.id===o);if(s===void 0)throw new O(`no api key "${o}"`);if(!await r.confirm(`revoke key "${s.label}" (${s.prefix}\u2026)?`))throw new O("cancelled");await Id(await t.store(),o),R(t,n,{id:o,revoked:!0},()=>`${o} revoked`)}},hv={usage:"keys models <id> [--allow <model> ...] [--all] [--none]",summary:"Show or replace one key's allowed models",options:{allow:{type:"string",multiple:!0},all:{type:"boolean"},none:{type:"boolean"}},async run(e,{ctx:t,writer:n}){let r=U(e,0,"key id"),o=Pe(e.values,"allow"),i=L(e.values,"all"),s=L(e.values,"none"),a=await t.store(),u=(await jt(a)).find((d)=>d.id===r);if(u===void 0)throw new O(`no api key "${r}"`);let c=u;if(i||s||o!==void 0){if([i,s,o!==void 0].filter(Boolean).length>1)throw new I("--all, --none, and --allow cannot be combined");c=await Od(a,r,{modelAllowlist:i?null:s?[]:o??[]})}R(t,n,c,()=>{let d=q([["id",c.id],["label",c.label],["prefix",`${c.prefix}\u2026`]]),p=c.modelAllowlist===null?"every model":c.modelAllowlist.length===0?"no models; every request this key makes is refused":c.modelAllowlist.join(", ");return`${d}
|
|
1735
|
+
models: ${p}`})}};var yv={usage:"models list",summary:"List virtual models and their targets",async run(e,{ctx:t,writer:n}){let r=await mn(await t.store());R(t,n,{models:r},()=>{if(r.length===0)return"no virtual models configured";return j([{header:"ID"},{header:"STRATEGY"},{header:"ALIAS"},{header:"TARGETS",align:"right"},{header:"PROVIDERS"}],r.map((o)=>[o.id,o.strategy,o.isAlias?"yes":"no",String(o.targets.length),[...new Set(o.targets.map((i)=>i.provider))].map((i)=>Ie(t,i)).join(" ")]))})}},_v={usage:"models show <id>",summary:"Show one virtual model's targets and pricing",async run(e,{ctx:t,writer:n}){let r=U(e,0,"model id"),o=await xs(await t.store(),r),i=o.targets.some((s)=>s.credentialId!==void 0);R(t,n,{model:o},()=>[q([["id",o.id],["strategy",o.strategy],["alias",o.isAlias?"yes":"no"]]),"",j([{header:"PROVIDER"},{header:"MODEL"},...i?[{header:"ACCOUNT"}]:[],{header:"TIER",align:"right"},{header:"WEIGHT",align:"right"},{header:"IN $/MTOK",align:"right"},{header:"OUT $/MTOK",align:"right"},{header:"CACHE R",align:"right"},{header:"CACHE W 5M",align:"right"},{header:"CACHE W 1H",align:"right"},{header:"CONTEXT",align:"right"},{header:"MAX OUT",align:"right"},{header:"CAPABILITIES"}],o.targets.map((s)=>[Ie(t,s.provider),s.model,...i?[s.credentialId??"any"]:[],String(s.tier),String(s.weight),s.costPerMTok.input.toFixed(2),s.costPerMTok.output.toFixed(2),Yt(s.costPerMTok.cacheRead),Yt(s.costPerMTok.cacheWrite5m),Yt(s.costPerMTok.cacheWrite1h),ro(s.contextWindow),ro(s.maxOutputTokens),iN(s)]))].join(`
|
|
1736
|
+
`))}};function Yt(e){return e===void 0?"\u2014":e.toFixed(2)}function ro(e){return e===void 0?"\u2014":e.toLocaleString("en-US")}function iN(e){let t=Object.entries(e.capabilities).filter(([,n])=>n).map(([n])=>n);return t.length===0?"\u2014":t.join(",")}function sN(e,t){let n=e.indexOf(":");if(n<=0)throw new I(`--from-catalog expects <provider>:<model>, got "${e}"`);let r=e.slice(0,n),o=e.slice(n+1),i=t[r];if(i===void 0)throw new I(`unknown provider "${r}" in "${e}"`);let s=Bi(i.catalog,o);if(s===null)throw new I(`no catalog entry for "${e}"; see omni models catalog`);return{provider:r,model:o,tier:1,weight:1,costPerMTok:s,capabilities:i.capabilities}}function aN(e){return Object.entries(e).flatMap(([t,n])=>n.catalog.models.map((r)=>({...r,provider:t})))}var wv={usage:"models catalog [--provider P]",summary:"List the built-in model catalog and its list pricing",options:{provider:{type:"string"}},async run(e,{ctx:t,writer:n}){let r=A(e.values,"provider"),{descriptors:o}=await Xt(t.root.root),i=aN(o).filter((s)=>r===void 0||s.provider===r);R(t,n,{models:i},()=>j([{header:"PROVIDER"},{header:"MODEL"},{header:"LABEL"},{header:"IN $/MTOK",align:"right"},{header:"OUT $/MTOK",align:"right"},{header:"CACHE R",align:"right"},{header:"CACHE W 5M",align:"right"},{header:"CACHE W 1H",align:"right"},{header:"CONTEXT",align:"right"},{header:"CONTEXT OAUTH",align:"right"},{header:"MAX OUT",align:"right"}],i.map((s)=>{let a=s.pricing,u=zi(s),c=zi(s,"oauth");return[Ie(t,s.provider),s.id,s.label,Yt(a?.input),Yt(a?.output),Yt(a?.cacheRead),Yt(a?.cacheWrite5m),Yt(a?.cacheWrite1h),ro(u?.contextWindow),c?.contextWindow===u?.contextWindow?"\u2014":ro(c?.contextWindow),ro(u?.maxOutputTokens)]})))}},bv={usage:"models put <id> (-f model.json | --from-catalog <provider>:<model> ...)",summary:"Create or replace a virtual model",options:{file:{type:"string",short:"f"},"from-catalog":{type:"string",multiple:!0},strategy:{type:"string"},alias:{type:"boolean"}},async run(e,{ctx:t,writer:n}){let r=U(e,0,"model id"),o=A(e.values,"file"),i=Pe(e.values,"from-catalog");if(o!==void 0&&i!==void 0)throw new I("pass either -f or --from-catalog, not both");let s;if(o!==void 0){let a=await Bun.file(o).text().catch(()=>{throw new O(`could not read ${o}`)});try{s=JSON.parse(a)}catch{throw new O(`${o} is not valid JSON`)}}else if(i!==void 0){let{descriptors:a}=await Xt(t.root.root);s={id:r,strategy:A(e.values,"strategy")??"score",isAlias:L(e.values,"alias"),targets:i.map((c)=>sN(c,a))}}else throw new I("pass -f <file> or --from-catalog <provider>:<model>");await qd(await t.store(),r,s),R(t,n,{id:r,ok:!0},()=>`${r} saved`)}},kv={usage:"models rm <id>",summary:"Delete a virtual model",async run(e,{ctx:t,writer:n,prompt:r}){let o=U(e,0,"model id");if(await xs(await t.store(),o),!await r.confirm(`delete virtual model "${o}"?`))throw new O("cancelled");await Hd(await t.store(),o),R(t,n,{id:o,removed:!0},()=>`${o} removed`)}},Ev={usage:"models dry-run <id> [--tools] [--images] [--reasoning]",summary:"Show where a request for this model would be sent, and why",options:{tools:{type:"boolean"},images:{type:"boolean"},reasoning:{type:"boolean"}},async run(e,{ctx:t,writer:n}){let r=U(e,0,"model id"),{descriptors:o,failures:i}=await Xt(t.root.root),s=await Rd({store:await t.store(),now:t.now,providers:o},r,{tools:L(e.values,"tools"),images:L(e.values,"images"),reasoning:L(e.values,"reasoning")});for(let a of i)X(t,n,S(t,"yellow",`plugin ${a.id}: ${a.reason}`));R(t,n,{...s,pluginFailures:i},()=>{let a=q([["model",s.modelId],["strategy",s.strategy],["deterministic",s.deterministic?"yes":"no (weighted draw)"]]),u=s.candidates.length===0?Z(t,!1,"no candidate can serve this request"):j([{header:"#",align:"right"},{header:"CREDENTIAL"},{header:"PROVIDER"},{header:"MODEL"},{header:"TIER",align:"right"},{header:"SCORE",align:"right"}],s.candidates.map((d,p)=>[String(p+1),d.credentialLabel,Ie(t,d.provider),d.model,String(d.tier),d.score.toFixed(3)])),c=s.excluded.length===0?"":`
|
|
1737
1737
|
|
|
1738
1738
|
${S(t,"dim","excluded")}
|
|
1739
1739
|
${j([{header:"CREDENTIAL"},{header:"MODEL"},{header:"REASON"}],s.excluded.map((d)=>[d.credentialId,d.model,d.reason]))}`;return`${a}
|
|
1740
1740
|
|
|
1741
|
-
${
|
|
1742
|
-
`)});let p=
|
|
1743
|
-
`))}},
|
|
1744
|
-
${q([["root",`${h.root} ${S(t,"dim",`(from ${h.rootSource})`)}`],["env file",h.envFile??S(t,"dim","none")],["database",`${h.databasePath} ${f(h.databaseExists,h.databaseExists?"exists":"missing")}`],["encryption key",h.encryptionKey],["config",h.configError===null?f(!0,"ok"):f(!1,h.configError)],["entrypoint",h.gatewayEntrypoint??f(!1,"not found")],["usage rollup",h.usageRollup===null?S(t,"dim","not checked"):f(h.usageRollup.startsWith("ok"),h.usageRollup)],["systemd unit",s?o.scope:S(t,"dim","none")],["gateway",f(a.running,a.running?"running":"stopped")],["console log",Ws(h.consoleSource)],...
|
|
1741
|
+
${u}${c}`})}};var vv={fiveHour:0,daily:1,weekly:2},Dl={fiveHour:"5h",daily:"24h",weekly:"7d"};function Ul(e,t){return vv[e.windowType]-vv[t.windowType]}var Tv=(e,t)=>`${e}|${t}`,js=(e,t)=>e.get(Tv(t.credentialId,t.windowType));async function Ml(e,t,n){let r=await Wn(e),o=Wr(n,{now:t(),pollIntervalMs:r.quotaPollIntervalMs});return new Map(o.map((i)=>[Tv(i.credentialId,i.windowType),i]))}function $l(e,t,n){let r=sy(e,t);if(r!=="empty")return{kind:r};return{kind:r,inMs:(t?.exhaustsAt??n)-n}}function Rv(e){if(e.kind==="empty")return`~${io(e.inMs)}`;return e.kind==="ok"?"ok":""}var Jt="\u2014";function uN(e,t){let n=t?.ratePerHour??null;if(n===null)return Jt;return e.limit===null||e.limit<=0?`${n.toFixed(1)}/h`:`${(n/e.limit*100).toFixed(1)}%/h`}var Sv={usage:"quota",summary:"Show provider quota use, burn rate, and when each window runs out",async run(e,{ctx:t,writer:n}){let r=await t.store(),o=t.now(),{credentials:i}=await jr(r,{now:t.now}),s=i.flatMap((d)=>d.quota),a=await Ml(r,t.now,s),u=t.json?await al({store:r,now:t.now},{}):{samples:[],gatewayRates:[]},c={credentials:i.map((d)=>({id:d.id,provider:d.provider,label:d.label,windows:d.quota})),burn:[...a.values()],samples:u.samples,gatewayRates:u.gatewayRates};R(t,n,c,()=>{if(i.length===0)return"no credentials; add one with: omni connect <provider>";let d=i.flatMap((p)=>{let l=`${Ie(t,p.provider)}:${p.label}`,m=[...p.quota].sort(Ul);if(m.length===0){let g=S(t,"dim","unknown");return[[l,Jt,g,Jt,g,Jt]]}return m.map((g)=>{let h=$l(g,js(a,g),o),f=h.kind==="empty"?`empty ~${io(h.inMs)}`:h.kind==="ok"?"ok":S(t,"dim",h.kind);return[l,Dl[g.windowType],`${g.used}/${g.limit??Jt}`,uN(g,js(a,g)),f,g.resetsAt===null?Jt:io(g.resetsAt-o)]})});return j([{header:"ACCOUNT"},{header:"WINDOW"},{header:"USED",align:"right"},{header:"RATE",align:"right"},{header:"ESTIMATE"},{header:"RESETS",align:"right"}],d)})}},cN={refreshed:"refreshed",coalesced:"refreshed by a concurrent probe",noData:"provider reported nothing",cooldown:"cooling down after a rate limit",unsupported:"no usage endpoint",disabled:"disabled",failed:"failed"};function dN(e){return e.kind==="failed"||e.kind==="cooldown"}var xv={usage:"quota refresh <id> | --all",summary:"Read provider quota now, for one account or for every account",options:{all:{type:"boolean"}},async run(e,{ctx:t,writer:n}){let r=e.values.all===!0,o=e.positionals[0];if(r===(o!==void 0))throw new I("give an account id or --all, not both");let i=await t.store(),s=await Qe(i),a=o===void 0?s:s.filter((l)=>l.id===o),u=await Fl(t,a);X(t,n,o===void 0?"refreshing every account\u2026":`refreshing ${o}\u2026`);let c=await u.refresh(o===void 0?{kind:"all"}:{kind:"one",credentialId:o}),d=new Map(s.map((l)=>[l.id,l.label]));R(t,n,c,()=>{let l=c.outcomes.map((f)=>[`${d.get(f.credentialId)??f.credentialId}`,cN[f.kind],f.kind==="refreshed"||f.kind==="coalesced"?`${f.windows} window${f.windows===1?"":"s"}`:f.kind==="failed"?f.code:Jt]),m=c.outcomes.filter((f)=>f.kind==="refreshed"||f.kind==="coalesced").length,g=c.outcomes.filter((f)=>f.kind==="failed").length,h=c.outcomes.length-m-g;return[j([{header:"ACCOUNT"},{header:"OUTCOME"},{header:"DETAIL",align:"right"}],l),"",`refreshed ${m}; failed ${g}; skipped ${h}`].join(`
|
|
1742
|
+
`)});let p=c.outcomes.filter(dN);if(p.length>0)throw new O(p.length===c.outcomes.length?"quota refresh did not run":`quota refresh did not run for ${p.length} of ${c.outcomes.length} accounts`)}};async function Fl(e,t){let n=await e.store(),r=t.every((i)=>Object.hasOwn(M,i.provider))?bt:(await jn(e.root.root)).providers,o=Dn();return fl({store:n,coord:Mt({now:e.now}),providers:r,http:o,refresh:Qr({store:n,providers:r,http:o,now:e.now}),now:e.now})}var Av={usage:"quota resets <id>",summary:"List an account's banked quota resets (Codex, Claude)",async run(e,{ctx:t,writer:n}){let r=U(e,0,"credential id"),o=(await Qe(await t.store())).filter((s)=>s.id===r),i=await(await Fl(t,o)).resetCredits(r);R(t,n,i,()=>[j([{header:"CREDIT"},{header:"STATUS"},{header:"TITLE"},{header:"EXPIRES"}],i.credits.map((s)=>[s.id,s.status,s.title??Jt,oe(s.expiresAt)])),"",`${i.available} available`].join(`
|
|
1743
|
+
`))}},Ov={usage:"quota reset <id> [--credit CREDIT_ID]",summary:"Spend one banked quota reset on an account (irreversible)",options:{credit:{type:"string"}},async run(e,{ctx:t,writer:n,prompt:r}){let o=U(e,0,"credential id"),i=A(e.values,"credit"),s=(await Qe(await t.store())).filter((p)=>p.id===o),a=s[0]?.label??o,u=await Fl(t,s),c=s[0]?.provider;if(c===void 0)throw new O("no such credential");if(!u.hasResets(c))throw new O("this account's provider has no quota resets");if(!await r.confirm(`spend one banked quota reset on "${a}" (${o})?`))throw new O("cancelled");let d=await u.redeemReset({credentialId:o,...i===void 0?{}:{creditId:i}});R(t,n,d,()=>`${a}: reset ${d.creditId} redeemed`+(d.windowsReset===null?"":`, ${d.windowsReset} window(s) reset`)+(d.quotaRefreshed?"; quota re-read":"; quota re-read failed, next poll will update it"))}};import{existsSync as kn}from"fs";import{closeSync as lN,existsSync as pN,openSync as mN}from"fs";import{join as Bl}from"path";var fN=async(e)=>{let t=Bun.spawn([...e],{stdout:"pipe",stderr:"pipe"}),[n,r,o]=await Promise.all([new Response(t.stdout).text(),new Response(t.stderr).text(),t.exited]);return{code:o,stdout:n,stderr:r}},gN=({argv:e,cwd:t,env:n,logFile:r})=>{let o=mN(r,"a");try{let i=Bun.spawn([...e],{cwd:t,env:n,stdin:"ignore",stdout:o,stderr:o});return i.unref(),i.pid}finally{lN(o)}};async function Cv(e){return Bun.spawn([...e.argv],{cwd:e.cwd,env:e.env,stdin:"inherit",stdout:"inherit",stderr:"inherit"}).exited}var hN=1000;async function yN(e){try{return(await fetch(new URL("/health",e),{signal:AbortSignal.timeout(hN)})).ok}catch{return!1}}function _N(e){try{return process.kill(e,0),!0}catch{return!1}}function Ks(e,t=import.meta.dir){return[Bl(e,"apps","gateway","src","index.ts"),Bl(t,"..","gateway.js"),Bl(t,"gateway.js")].find((r)=>pN(r))??null}function Pv(e){let t=e.env.OMNI_LOG_FILE?.trim();return{root:e.root,stateDir:SE(e.env),scope:e.scope,unitPath:RE(e.scope),...t===void 0||t.length===0?{}:{logFile:t},run:fN,spawn:gN,probe:yN,alive:_N,kill:(n,r)=>{process.kill(n,r)},sleep:(n)=>Bun.sleep(n),now:e.now}}var oo="0.15.3";function zl(e){let t=Ks(e);if(t===null)throw new O(`no gateway to run: ${e} is not an OmniGateway checkout, and no bundled server was found beside this CLI`);return[process.execPath,t]}var Iv={usage:"start [--foreground]",summary:"Start the gateway and wait until it is serving",options:{system:{type:"boolean"},foreground:{type:"boolean"}},async run(e,{ctx:t,writer:n,service:r,foreground:o}){let i=r(),s=t.config().baseUrl;if(L(e.values,"foreground")){let u=await o({argv:zl(i.root),cwd:i.root,env:t.env});if(u!==0)throw new O(`gateway exited with code ${u}`,3);return}X(t,n,`starting gateway at ${s}\u2026`);let a=await xl(i,{argv:zl(i.root),env:t.env,baseUrl:s});if(R(t,n,a,()=>{let u=a.supervisor==="systemd"?"systemd":`pid ${a.pid}`;if(!a.healthy){let c=a.supervisor==="systemd"?"journalctl -u omnigateway.service":Gn(i);return`${Z(t,!1,"started but /health never answered")} (${u}); see ${c}`}return`${Z(t,!0,"running")} (${u}) at ${s}`}),!a.healthy)throw new O("gateway did not become healthy",3)}},Lv={usage:"stop",summary:"Stop the gateway",async run(e,{ctx:t,writer:n,service:r}){let o=await Al(r());R(t,n,o,()=>o.stopped?"stopped":"nothing to stop: the gateway is not running")}},Nv={usage:"restart",summary:"Stop the gateway, then start it again",async run(e,{ctx:t,writer:n,service:r}){let o=r();await Al(o);let i=await xl(o,{argv:zl(o.root),env:t.env,baseUrl:t.config().baseUrl});if(R(t,n,i,()=>i.healthy?"restarted":Z(t,!1,"restarted but /health never answered")),!i.healthy)throw new O("gateway did not become healthy",3)}},Dv={usage:"service install [--system] [--enable] [--force]",summary:"Write a systemd unit for this installation",options:{system:{type:"boolean"},enable:{type:"boolean"},force:{type:"boolean"}},async run(e,{ctx:t,writer:n,service:r}){let o=r(),i=Ks(o.root);if(i===null)throw new O(`no gateway to run for ${o.root}`);let s=await xE(o,{bun:process.execPath,entrypoint:i,enable:L(e.values,"enable"),force:L(e.values,"force")});R(t,n,s,()=>q([["unit",s.path],["scope",o.scope],["daemon-reload",s.reloaded?"ok":"failed"],["enabled at boot",s.enabled?"yes":"no"]]))}},Uv={usage:"service uninstall [--system]",summary:"Disable and remove the systemd unit",options:{system:{type:"boolean"}},async run(e,{ctx:t,writer:n,prompt:r,service:o}){let i=o();if(!await r.confirm(`remove the ${i.scope} systemd unit for ${i.root}?`))throw new O("cancelled");let s=await AE(i);R(t,n,s,()=>s.removed?`removed ${s.path}`:`no unit at ${s.path}`)}};async function wN(e){if(e.configError!==null||!kn(e.databasePath))return null;try{let t=await(await e.store()).usage.auditRollup();return t.ok?`ok (${t.buckets} hourly buckets)`:`${t.mismatched} of ${t.buckets} hourly buckets disagree with request_logs`}catch{return null}}async function bN(e){if(e.configError!==null||!kn(e.databasePath))return null;try{return await Yd(to(),e.root.root,await e.store())}catch{return null}}async function kN(e){if(e.configError!==null||!kn(e.databasePath))return null;try{let t=await e.store(),n=await t.credentials.list();return(await t.config.listModels()).flatMap((r)=>r.targets.filter((o)=>o.credentialId!==void 0&&Pn(o,n)===void 0).map((o)=>`${r.id}/${o.model} \u2192 ${o.credentialId}`))}catch{return null}}async function EN(e,t){if(e.configError!==null||!kn(e.databasePath))return null;try{return(await(await e.store()).config.listModels()).flatMap((r)=>r.targets.filter((o)=>!El(o.provider,t)).map((o)=>`${r.id}/${o.model} \u2192 ${o.provider}`))}catch{return null}}async function vN(e,t){if(e.configError!==null||!kn(e.databasePath))return null;try{return(await(await e.store()).credentials.list()).filter((r)=>!El(r.provider,t)).map((r)=>`${r.label} \u2192 ${r.provider}`)}catch{return null}}async function TN(e){if(e.configError!==null||!kn(e.databasePath))return null;try{return await Sd(await e.store(),M)}catch{return null}}function RN(e,t,n){if(t===null)return S(e,"dim","not checked");let{keysWithPolicy:r,model:o,problem:i}=t;if(r===0)return S(e,"dim","no key carries one");let s=`${r} key${r===1?"":"s"}`;if(i==="unconfigured")return S(e,"yellow",`${s} carry a policy and no classifier is set (guardrailModel); their requests are refused`);if(i==="unresolved")return n.length>0?S(e,"yellow",`${s} carry a policy; classifier "${o}" is not a built-in model (plugin providers not checked)`):S(e,"yellow",`${s} carry a policy and classifier "${o}" does not resolve; their requests are refused`);return Z(e,!0,`${s}, judged by ${o}`)}var Mv={usage:"doctor",summary:"Check what this CLI resolved, and whether it can do anything with it",options:{system:{type:"boolean"}},async run(e,{ctx:t,writer:n,service:r}){let o=r(),i=t.env.OMNI_ENCRYPTION_KEY,s=wn(o),a=await bn(o),u=await wN(t),c=Gt(to(),o.root),d=await bN(t),p=await kN(t),l=await EN(t,c),m=await vN(t,c),g=await TN(t),h={version:oo,root:o.root,rootSource:t.root.source,envFile:t.root.envFile,databasePath:t.databasePath,databaseExists:kn(t.databasePath),encryptionKey:typeof i==="string"?`present (${i.length} chars)`:"missing",configError:t.configError,gatewayEntrypoint:Ks(o.root),usageRollup:u,unitInstalled:s,supervisor:a.supervisor,running:a.running,consoleSource:no(o).source,pluginsDir:Ce(o.root),plugins:c,orphanPluginTables:d,danglingPins:p,missingProviders:l,danglingCredentials:m,guardrail:g,warnings:t.warnings};R(t,n,h,()=>{let f=(y,_)=>Z(t,y,_);return`omni ${oo}
|
|
1744
|
+
${q([["root",`${h.root} ${S(t,"dim",`(from ${h.rootSource})`)}`],["env file",h.envFile??S(t,"dim","none")],["database",`${h.databasePath} ${f(h.databaseExists,h.databaseExists?"exists":"missing")}`],["encryption key",h.encryptionKey],["config",h.configError===null?f(!0,"ok"):f(!1,h.configError)],["entrypoint",h.gatewayEntrypoint??f(!1,"not found")],["usage rollup",h.usageRollup===null?S(t,"dim","not checked"):f(h.usageRollup.startsWith("ok"),h.usageRollup)],["systemd unit",s?o.scope:S(t,"dim","none")],["gateway",f(a.running,a.running?"running":"stopped")],["console log",Ws(h.consoleSource)],...c.length===0?[["plugins",S(t,"dim","none")]]:hE(t,c).map((y,_)=>[_===0?"plugins":"",y]),["orphan plugin tables",d===null?S(t,"dim","not checked"):d.length===0?f(!0,"none"):S(t,"yellow",`${d.length}: ${d.join(", ")}`)],["dangling pins",p===null?S(t,"dim","not checked"):p.length===0?f(!0,"none"):S(t,"yellow",`${p.length}: ${p.join(", ")}`)],["missing providers",l===null?S(t,"dim","not checked"):l.length===0?f(!0,"none"):S(t,"yellow",`${l.length}: ${l.join(", ")}`)],["stranded credentials",m===null?S(t,"dim","not checked"):m.length===0?f(!0,"none"):S(t,"yellow",`${m.length}: ${m.join(", ")}`)],["usage policies",RN(t,g,c)],...h.warnings.map((y)=>["ignored",S(t,"yellow",y)])])}`})}};function SN(e){let t=[];for(let[n,r]of Object.entries(e)){if(r!==null&&typeof r==="object"){for(let[o,i]of Object.entries(r))t.push([`${n}.${o}`,String(i)]);continue}t.push([n,String(r)])}return t}var $v={usage:"settings get",summary:"Show routing and retention settings",async run(e,{ctx:t,writer:n}){let r=await Wn(await t.store());R(t,n,{settings:r},()=>q(SN(r)))}};function Gs(e,t){return Object.hasOwn(e,t)}function xN(e,t,n){if(!Gs(e,t))return;let r=e[t];if(n===void 0)return r;if(r===null||typeof r!=="object")return;if(!Gs(r,n))return;return r[n]}function AN(e,t){let n=t.trim().length===0?Number.NaN:Number(t);if(!Number.isFinite(n))throw new I(`${e} must be a number, got "${t}"`);return n}function ON(e,t){let n=t.trim().toLowerCase();if(n==="true")return!0;if(n==="false")return!1;throw new I(`${e} must be true or false, got "${t}"`)}function Fv(e,t){let n=t.trim();if(n.length===0)throw new I(`${e} must not be blank`);return n}function CN(e,t){return t.trim()==="null"?null:Fv(e,t)}function PN(e){return Gs(ye,e)&&ye[e]===null}var Bv={usage:"settings set <path> <value>",summary:"Change one setting, e.g. weights.cost 0.4, rtkEnabled true, or guardrailModel null",async run(e,{ctx:t,writer:n}){let r=U(e,0,"setting path"),o=U(e,1,"value"),i=await t.store(),s=await Wn(i),[a,u]=r.split(".");if(a===void 0||!Gs(s,a))throw new I(`no setting "${r}"`);if(u!==void 0&&a!=="weights")throw new I(`"${a}" has no sub-settings`);let c=xN(s,a,u),d=u===void 0&&PN(a)?CN(r,o):typeof c==="boolean"?ON(r,o):typeof c==="string"?Fv(r,o):AN(r,o),p=u===void 0?{...s,[a]:d}:{...s,weights:{...s.weights,[u]:d}},l=await gl(i,p);R(t,n,{settings:l},()=>`${r} = ${d}`)}};import{join as ql}from"path";var zv={dir:{type:"string"},key:{type:"string"},"dry-run":{type:"boolean"}};async function qv(e,t){let{descriptors:n,failures:r}=await Xt(e.root.root);for(let i of r)X(e,t,S(e,"yellow",`plugin ${i.id}: ${i.reason}`));let o=await yl(await e.store(),n);if(o.length===0)throw new O("no virtual models configured; add one with `omni models put`");return{models:o,failures:r}}function Hv(e){if(e.configError!==null)throw new O(e.configError);return e.config().baseUrl}function Wv(e,t,n,r,o,i,s=[]){if(!r)for(let a of n)i(a.path,a.contents);if(R(e,t,{files:n,pluginFailures:s},()=>r?n.map((a)=>`--- ${a.path}
|
|
1745
1745
|
${a.contents}`).join(`
|
|
1746
1746
|
`):n.map((a)=>a.path).join(`
|
|
1747
|
-
`)),o===void 0)X(e,t,"no --key given: the files carry a placeholder, so paste your key over it")}function jv(e,t){return{path:ql(e,t.path),contents:t.contents}}async function Kv(e,t){let n=e.map(({model:
|
|
1747
|
+
`)),o===void 0)X(e,t,"no --key given: the files carry a placeholder, so paste your key over it")}function jv(e,t){return{path:ql(e,t.path),contents:t.contents}}async function Kv(e,t){let n=e.map(({model:c})=>c.id).join(", ");if(t.input===void 0)throw new O("model mapping requires an interactive terminal");let r=async(c,d)=>{let p=await t.input?.(`${c} model${d?"":" (blank to omit)"} [${n}]: `);if(d&&p==="")throw new O("default model is required");return p===""?void 0:p},o=await r("Default",!0);if(o===void 0)throw new O("default model is required");let i=await r("Fable",!1),s=await r("Opus",!1),a=await r("Sonnet",!1),u=await r("Haiku",!1);return{defaultModel:o,...i===void 0?{}:{fableModel:i},...s===void 0?{}:{opusModel:s},...a===void 0?{}:{sonnetModel:a},...u===void 0?{}:{haikuModel:u}}}var Gv={usage:"setup claude [--dir <path>] [--key <key>] [--dry-run]",summary:"Write Claude Code settings for this gateway",options:zv,async run(e,{ctx:t,writer:n,prompt:r,setupFs:o}){let{models:i,failures:s}=await qv(t,n),a=A(e.values,"dir")??ql(o.homeDir,".claude"),u=A(e.values,"key"),c=L(e.values,"dry-run"),d=await Kv(i,r),p=ql(a,"settings.json"),l=_l(i,{baseUrl:Hv(t),...u===void 0?{}:{apiKey:u}},d,o.read(p)??void 0);Wv(t,n,[jv(a,l)],c,u,o.write,s)}},Zv={usage:"setup opencode [--dir <path>] [--key <key>] [--dry-run]",summary:"Write an opencode.json provider entry for this gateway",options:zv,async run(e,{ctx:t,writer:n,prompt:r,setupFs:o}){let{models:i,failures:s}=await qv(t,n),a=A(e.values,"dir")??o.cwd,u=A(e.values,"key"),c=L(e.values,"dry-run"),d=await Kv(i,r),p=wl(i,{baseUrl:Hv(t),...u===void 0?{}:{apiKey:u}},d);Wv(t,n,[jv(a,p)],c,u,o.write,s)}};function IN(e){return e.filter((t)=>t.limit!==null&&t.limit>0).sort(Ul)}function LN(e,t,n,r){let o=IN(t);if(o.length===0)return S(e,"dim","unknown");let i=o.map((a)=>{let u=Math.round(a.used/a.limit*100),c=Z(e,u<90,`${Dl[a.windowType]} ${u}%`),d=Rv($l(a,js(r,a),n));return d.length===0?c:`${c} ${S(e,"dim",d)}`}),s=Math.min(...o.map((a)=>a.observedAt));return`${i.join(" \xB7 ")} ${S(e,"dim",`(${Gl(s,n)} ago)`)}`}var Xv={usage:"status",summary:"Show the gateway process, its accounts, and their quota",options:{system:{type:"boolean"}},async run(e,{ctx:t,writer:n,service:r}){let o=await bn(r()),i=null,s=null;try{i=await t.store()}catch(l){s=H(l,"could not open the database")}let a=i===null?{adminConfigured:!1,credentials:[]}:await jr(i,{now:t.now}),{adminConfigured:u,credentials:c}=a,d=i===null?new Map:await Ml(i,t.now,c.flatMap((l)=>l.quota)),p={process:o,...a,storeError:s};R(t,n,p,()=>{let l=q([["gateway",Z(t,o.running,o.running?"running":"stopped")+S(t,"dim",` (${o.supervisor})`)],["root",t.root.root],["admin password",u?"set":Z(t,!1,"not set")]]);if(s!==null)return`${l}
|
|
1748
1748
|
|
|
1749
|
-
${Z(t,!1,s)}`;if(
|
|
1749
|
+
${Z(t,!1,s)}`;if(c.length===0)return`${l}
|
|
1750
1750
|
|
|
1751
|
-
no credentials; add one with: omni connect <provider>`;let m=
|
|
1751
|
+
no credentials; add one with: omni connect <provider>`;let m=c.map((g)=>[g.label,Ie(t,g.provider),Z(t,g.enabled,g.enabled?"enabled":"disabled"),LN(t,g.quota,t.now(),d)]);return`${l}
|
|
1752
1752
|
|
|
1753
|
-
${j([{header:"ACCOUNT"},{header:"PROVIDER"},{header:"STATE"},{header:"QUOTA"}],m)}`})}},Vv={usage:"admin set-password",summary:"Set or replace the console password",async run(e,{ctx:t,writer:n,prompt:r}){let o=await t.store(),i=Tr(o,{now:t.now,sessionTtlMs:0}),s=await r.secret("New admin password: ");if(r.isTty){if(await r.secret("Repeat it: ")!==s)throw new
|
|
1754
|
-
${S(t,"dim",`older: --cursor ${
|
|
1753
|
+
${j([{header:"ACCOUNT"},{header:"PROVIDER"},{header:"STATE"},{header:"QUOTA"}],m)}`})}},Vv={usage:"admin set-password",summary:"Set or replace the console password",async run(e,{ctx:t,writer:n,prompt:r}){let o=await t.store(),i=Tr(o,{now:t.now,sessionTtlMs:0}),s=await r.secret("New admin password: ");if(r.isTty){if(await r.secret("Repeat it: ")!==s)throw new O("the two passwords do not match")}try{await i.setPassword(s)}catch(a){throw new O(H(a,"could not set the password"))}X(t,n,"restart the gateway to end sessions signed in with the old password"),R(t,n,{ok:!0},()=>"admin password set")}};function Zs(e,t){if(e===void 0)return t;if(/^\d+$/.test(e))return Number(e);let n=Date.parse(e);if(Number.isNaN(n))throw new I(`could not read "${e}" as a time`);return n}var Yv={usage:"usage [--grain daily|raw] [--by DIMENSION] [--since T] [--until T]",summary:"Aggregate spend and tokens",options:{grain:{type:"string"},by:{type:"string"},split:{type:"string"},since:{type:"string"},until:{type:"string"},account:{type:"string"},key:{type:"string"}},async run(e,{ctx:t,writer:n}){let r=Zs(A(e.values,"until"),t.now()),o=Zs(A(e.values,"since"),0),i=await Ld({store:await t.store(),now:t.now},{grain:A(e.values,"grain"),groupBy:A(e.values,"by"),splitBy:A(e.values,"split"),since:o,until:r,credentialId:A(e.values,"account"),apiKeyId:A(e.values,"key")});R(t,n,{rows:i},()=>{if(i.length===0)return"no usage in this window";let s=i.some((a)=>a.split!==null&&a.split!==void 0);return j([{header:"KEY"},...s?[{header:"SPLIT"}]:[],{header:"REQUESTS",align:"right"},{header:"INPUT",align:"right"},{header:"OUTPUT",align:"right"},{header:"COST",align:"right"}],i.map((a)=>[a.key,...s?[a.split??"\u2014"]:[],String(a.requests),String(a.inputTokens),String(a.outputTokens),Xn(a.costUsd)]))})}},Jv={since:{type:"string"},until:{type:"string"},state:{type:"string"},failed:{type:"boolean"},provider:{type:"string"},model:{type:"string"},"requested-model":{type:"string"},"resolved-model":{type:"string"},account:{type:"string"},key:{type:"string"},"error-code":{type:"string"}};function eT(e){let t=A(e,"since"),n=A(e,"until");return{...t===void 0?{}:{since:Zs(t,0)},...n===void 0?{}:{until:Zs(n,0)},state:A(e,"state"),...L(e,"failed")?{failed:"true"}:{},provider:A(e,"provider"),model:A(e,"model"),requestedModel:A(e,"requested-model"),resolvedModel:A(e,"resolved-model"),credentialId:A(e,"account"),apiKeyId:A(e,"key"),errorCode:A(e,"error-code")}}var tT={usage:"logs [-n N] [--follow] [--cursor C] [filters] [--service]",summary:"Show recent requests (--service is an alias for `omni console`)",options:{...Jv,number:{type:"string",short:"n"},follow:{type:"boolean"},cursor:{type:"string"},service:{type:"boolean"},system:{type:"boolean"}},async run(e,{ctx:t,writer:n,service:r}){let o=yn(e.values,"number")??20;if(L(e.values,"service")){let p=await OE(r(),o);R(t,n,{log:p},()=>p.length===0?"no service output yet":p);return}let i=await t.store(),s=eT(e.values),a=(p)=>j([{header:"AT"},{header:"MODEL"},{header:"RESOLVED"},{header:"STATUS",align:"right"},{header:"TOKENS",align:"right"},{header:"COST",align:"right"},{header:"MS",align:"right"}],p.map((l)=>[S(t,"dim",oe(l.at)),l.requestedModel,`${l.resolvedProvider}/${l.resolvedModel}`,Z(t,l.status<400,String(l.status)),`${l.inputTokens}+${l.outputTokens}`,Xn(l.costUsd),String(l.durationMs)])),u=await Ss(i,{...s,limit:o,cursor:A(e.values,"cursor")}),c=u.logs;if(R(t,n,{logs:c,nextCursor:u.nextCursor},()=>c.length===0?"no requests match":u.nextCursor===null?a(c):`${a(c)}
|
|
1754
|
+
${S(t,"dim",`older: --cursor ${u.nextCursor}`)}`),e.values.follow!==!0||t.json)return;let d=c[0]===void 0?null:Qv(c[0]);for(;;){await Bun.sleep(Ol);let p=d,{rows:l,skipped:m}=await NN((h)=>Ss(i,{...s,limit:o,cursor:h}),p);if(l.length===0)continue;let g=l[0];if(g!==void 0)d=Qv(g);if(m)n.out(S(t,"dim",`more than ${nT*o} requests arrived since the last poll; older ones are not shown`));n.out(a(l.reverse()))}}},Qv=(e)=>({at:e.at,id:e.id}),nT=10;async function NN(e,t){let n=[],r;for(let o=0;o<nT;o++){let i=await e(r);if(t===null)return{rows:i.logs,skipped:!1};let s=i.logs.filter((a)=>DN(a,t));if(n.push(...s),s.length<i.logs.length||i.nextCursor===null)return{rows:n,skipped:!1};r=i.nextCursor}return{rows:n,skipped:!0}}var DN=(e,t)=>e.at>t.at||e.at===t.at&&e.id>t.id,rT={usage:"logs export --since T --until T [--format csv|jsonl] [filters]",summary:"Write matching request metadata to stdout as CSV or JSONL",options:{...Jv,format:{type:"string"}},async run(e,{ctx:t,writer:n}){let r=await t.store();for await(let o of $d(r,{...eT(e.values),format:A(e.values,"format")??"csv"}))n.raw(o)}};var Xs={status:Xv,start:Iv,stop:Lv,restart:Nv,doctor:Mv,logs:tT,bodies:_E,console:PE,usage:Yv,quota:Sv,connect:wE,"logs export":rT,"service install":Dv,"service uninstall":Uv,"credentials list":LE,"credentials show":NE,"credentials enable":UE,"credentials disable":ME,"credentials set":$E,"credentials rm":FE,"credentials refresh":BE,"credentials add-key":zE,"credentials health":qE,"quota refresh":xv,"quota resets":Av,"quota reset":Ov,"models list":yv,"models show":_v,"models put":bv,"models rm":kv,"models dry-run":Ev,"models catalog":wv,"keys list":dv,"keys create":lv,"keys limits":pv,"keys models":hv,"keys expiry":mv,"keys guardrail":fv,"keys revoke":gv,"plugin list":lE,"plugin verify":pE,"plugin install":mE,"plugin update":fE,"plugin remove":gE,"settings get":$v,"settings set":Bv,"setup claude":Gv,"setup opencode":Zv,"admin set-password":Vv,"db migrate":WE,"db stats":jE,"db snapshots":KE,"db backup":GE,"db restore":VE,"db vacuum":ZE,"db clear-bodies":XE},UN=new Set(["--root","--db"]);function oT(e){let t=[],n=0;while(n<e.length){let o=e[n];if(o===void 0||!o.startsWith("-"))break;if(t.push(o),n+=1,UN.has(o)&&e[n]!==void 0)t.push(e[n]),n+=1}let r=[];for(let o of e.slice(n)){if(o.startsWith("-"))break;if(r.push(o),r.length===3)break}for(let o=Math.min(r.length,3);o>0;o--){let i=r.slice(0,o).join(" "),s=Xs[i];if(s!==void 0)return{name:i,command:s,rest:[...t,...e.slice(n+o)]}}return null}var MN=[{title:"Gateway",prefixes:["status","start","stop","restart","doctor","logs","bodies","console"]},{title:"Service",prefixes:["service "]},{title:"Accounts",prefixes:["connect","credentials "]},{title:"Models",prefixes:["models "]},{title:"Keys",prefixes:["keys "]},{title:"Plugins",prefixes:["plugin "]},{title:"Configuration",prefixes:["settings ","admin ","db "]},{title:"Reports",prefixes:["usage","quota"]}];function $N(e,t){return t.some((n)=>n.endsWith(" ")?e.startsWith(n):e===n)}function Hl(){let e=["omni \u2014 manage a local OmniGateway installation","","Usage: omni <command> [options]","","Global options:"," --root <path> installation to manage (default: $OMNI_ROOT, cwd, ~/.config/omnigateway)"," --db <path> database file, overriding OMNI_DB_PATH"," --json emit JSON instead of tables"," --no-color never colourise output"," --yes, -y answer confirmations without asking"," --system act on the system systemd unit rather than the user one"," --help, -h show this help",""];for(let t of MN){let n=Object.entries(Xs).filter(([o])=>$N(o,t.prefixes));if(n.length===0)continue;let r=n.reduce((o,[,i])=>Math.max(o,i.usage.length),0);e.push(`${t.title}:`);for(let[,o]of n)e.push(` ${o.usage.padEnd(r)} ${o.summary}`);e.push("")}return e.join(`
|
|
1755
1755
|
`).trimEnd()}function iT(e){let t=Xs[e];if(t===void 0)return Hl();return[`omni ${t.usage}`,"",t.summary].join(`
|
|
1756
1756
|
`)}async function FN(){let e=[];for await(let t of Bun.stdin.stream())e.push(t);return Buffer.concat(e).toString("utf8")}async function BN(){let e=process.stdin;e.setRawMode?.(!0),e.resume();try{let t=new TextDecoder,n="";for await(let r of e){let o=t.decode(r,{stream:!0});for(let i of o){if(i==="\r"||i===`
|
|
1757
|
-
`)return n;if(i==="\x03")throw new
|
|
1758
|
-
`);if(o>=0)return t+r.slice(0,o);t+=r}return t}function aT(e,t){let n=process.stdin.isTTY===!0;return{isTty:n,async input(r){if(!n)throw new
|
|
1757
|
+
`)return n;if(i==="\x03")throw new O("cancelled",1);if(i==="\x7F"||i==="\b"){n=n.slice(0,-1);continue}n+=i}}return n}finally{e.setRawMode?.(!1),e.pause()}}async function sT(){let e=new TextDecoder,t="";for await(let n of process.stdin){let r=e.decode(n,{stream:!0}),o=r.indexOf(`
|
|
1758
|
+
`);if(o>=0)return t+r.slice(0,o);t+=r}return t}function aT(e,t){let n=process.stdin.isTTY===!0;return{isTty:n,async input(r){if(!n)throw new O(`${r} \u2014 refusing without a terminal`);return t.err(r),(await sT()).trim()},async secret(r){if(!n)return(await FN()).trim();t.err(r);let o=await BN();return t.err(""),o.trim()},async confirm(r){if(e.assumeYes)return!0;if(!n)throw new O(`${r} \u2014 refusing without --yes`);t.err(`${r} [y/N] `);let o=(await sT()).trim().toLowerCase();return o==="y"||o==="yes"}}}import{dirname as zN}from"path";function uT(e,t,n){let r=`${e}.${process.pid}.tmp`;n.mkdir(zN(e));try{n.write(r,t),n.rename(r,e)}catch(o){throw n.remove(r),o}}async function cT(e,t,n={}){let r=(...l)=>e.some((m)=>l.includes(m));if(r("--version"))return t.out(oo),0;let o=oT(e);if(o===null){let l=e.filter((m)=>!m.startsWith("-"));if(l.length>0&&!r("--help","-h"))return t.err(`unknown command: ${l.join(" ")}`),t.err("run omni --help for the command list"),2;return t.out(Hl()),0}if(r("--help","-h"))return t.out(iT(o.name)),0;let i;try{i=uE(o.rest,o.command.options??{})}catch(l){return t.err(H(l,"could not parse arguments")),t.err(`usage: omni ${o.command.usage}`),2}nl();let s=cE(i,n),a,u=()=>(a??=jn(s.root.root),a);for(let l of s.warnings)t.err(l);let c=n.prompt??aT(s,t),d=L(i.values,"system")?"system":"user",p={ctx:s,writer:t,prompt:c,setupFs:n.setupFs??{homeDir:ZN(),cwd:process.cwd(),read:(l)=>qN(l)?WN(l,"utf8"):null,write:(l,m)=>uT(l,m,{mkdir:(g)=>HN(g,{recursive:!0}),write:(g,h)=>GN(g,h),rename:jN,remove:(g)=>KN(g,{force:!0})})},service:()=>n.service?.({root:s.root.root,env:s.env})??Pv({root:s.root.root,env:s.env,scope:d,now:s.now}),foreground:n.foreground??Cv,connect:async(l)=>{if(n.connect!==void 0)return n.connect(l);let m=await u();return Xc({store:l,providers:m.providers,descriptors:m.descriptors,http:Dn(),now:s.now})},connectable:async()=>{let l=await u();return{ids:rl(l.providers),failures:l.failures}}};try{return await o.command.run(i,p),0}catch(l){if(l instanceof I)return t.err(l.message),t.err(`usage: omni ${o.command.usage}`),2;if(l instanceof O)return t.err(l.message),l.exitCode;if(l instanceof b)return t.err(`${l.code}: ${l.message}`),1;return t.err(H(l,"unknown error")),1}finally{s.close()}}process.exitCode=await cT(process.argv.slice(2),Kl);
|