zen-code 4.9.2 → 4.10.1
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/dist/app.js +2606 -182
- package/dist/cli.js +3116 -1
- package/dist/nonInteractive.js +2084 -4
- package/dist/zen-keyboard.js +358 -3
- package/package.json +37 -37
- package/dist/chunk-0pss3s5r.js +0 -88
- package/dist/chunk-0sxrk9sx.js +0 -1
- package/dist/chunk-0zk0m93z.js +0 -26
- package/dist/chunk-178yjjsx.js +0 -1
- package/dist/chunk-1p9xzvpt.js +0 -3
- package/dist/chunk-2eh0sv3s.js +0 -2
- package/dist/chunk-43xrz4wp.js +0 -2
- package/dist/chunk-48ce2wt0.js +0 -1
- package/dist/chunk-48vkm1yn.js +0 -5
- package/dist/chunk-55nx49pj.js +0 -7
- package/dist/chunk-578m1dhj.js +0 -2
- package/dist/chunk-5dsevrtz.js +0 -91
- package/dist/chunk-62zh99t6.js +0 -298
- package/dist/chunk-66890qd3.js +0 -2
- package/dist/chunk-6nfpdtn6.js +0 -1
- package/dist/chunk-738m8242.js +0 -53
- package/dist/chunk-8f2zh5h6.js +0 -2
- package/dist/chunk-8ty2zfve.js +0 -3
- package/dist/chunk-94jawhw7.js +0 -3
- package/dist/chunk-98wjxsna.js +0 -79
- package/dist/chunk-9b7nj74j.js +0 -1
- package/dist/chunk-9k64296h.js +0 -4
- package/dist/chunk-9x562s6p.js +0 -1
- package/dist/chunk-a90fm6gz.js +0 -278
- package/dist/chunk-ac5t2ywn.js +0 -100
- package/dist/chunk-ad2hbq42.js +0 -1
- package/dist/chunk-afhxxkmv.js +0 -16
- package/dist/chunk-b4vvgbav.js +0 -1
- package/dist/chunk-b9pcntkv.js +0 -253
- package/dist/chunk-c7y5efa0.js +0 -1
- package/dist/chunk-cbjnwrt7.js +0 -2
- package/dist/chunk-ce53j63y.js +0 -3
- package/dist/chunk-dcs1r9as.js +0 -2
- package/dist/chunk-dcwnpdtk.js +0 -9
- package/dist/chunk-dxec2q4t.js +0 -23
- package/dist/chunk-e3tyc24s.js +0 -310
- package/dist/chunk-e8hp8d68.js +0 -81
- package/dist/chunk-fkrydbn4.js +0 -18
- package/dist/chunk-frhhpxxy.js +0 -2
- package/dist/chunk-fw3nrwpf.js +0 -1
- package/dist/chunk-gyhxdxb4.js +0 -1
- package/dist/chunk-h1enhch1.js +0 -2
- package/dist/chunk-hcnx1j2z.js +0 -1
- package/dist/chunk-hfegb4pr.js +0 -2
- package/dist/chunk-hfypkhky.js +0 -2
- package/dist/chunk-hmemx3cw.js +0 -2
- package/dist/chunk-hra0748z.js +0 -2
- package/dist/chunk-hsev32dg.js +0 -4
- package/dist/chunk-hyf24r36.js +0 -2
- package/dist/chunk-jb4yt88g.js +0 -6
- package/dist/chunk-jjcmm167.js +0 -1
- package/dist/chunk-jrepjpft.js +0 -2
- package/dist/chunk-k38fjqj7.js +0 -140
- package/dist/chunk-kym9tb01.js +0 -1
- package/dist/chunk-mt1g6g89.js +0 -1
- package/dist/chunk-p0vzbr7s.js +0 -585
- package/dist/chunk-pndhbee8.js +0 -2
- package/dist/chunk-pwrscdkf.js +0 -2
- package/dist/chunk-r019959h.js +0 -2
- package/dist/chunk-r10bn684.js +0 -1
- package/dist/chunk-r3pe49q4.js +0 -8
- package/dist/chunk-r4tq44hr.js +0 -1
- package/dist/chunk-rjrnaka2.js +0 -1
- package/dist/chunk-rt5mpgbg.js +0 -6
- package/dist/chunk-rztre6k0.js +0 -1
- package/dist/chunk-s77qbhtz.js +0 -3
- package/dist/chunk-t7rwtc17.js +0 -1
- package/dist/chunk-v8g52kan.js +0 -1
- package/dist/chunk-vd6c87cm.js +0 -2
- package/dist/chunk-vfwbx331.js +0 -2
- package/dist/chunk-vh9zd1v3.js +0 -5
- package/dist/chunk-w2hbsa9j.js +0 -86
- package/dist/chunk-wabmqprd.js +0 -184
- package/dist/chunk-wpy5r9ma.js +0 -40
- package/dist/chunk-x552nspp.js +0 -6
- package/dist/chunk-x90r4sje.js +0 -1
- package/dist/chunk-yndex7hs.js +0 -1
- package/dist/chunk-yqwxbcc7.js +0 -31
- package/dist/chunk-z8n7y37k.js +0 -1
- package/dist/chunk-zr7sx9hd.js +0 -1
- package/dist/chunk-zxqmghzf.js +0 -1
package/dist/chunk-p0vzbr7s.js
DELETED
|
@@ -1,585 +0,0 @@
|
|
|
1
|
-
import{Ig as Gq,Jg as oR}from"./chunk-x552nspp.js";import{Lg as U$,Mg as j6,Ng as gQ,Og as O0,Pg as X1,Qg as D0,Rg as M8,Sg as jY,Tg as YY,Ug as S$,Vg as mX,Wg as S1,Xg as uQ,Yg as fV,Zg as T8}from"./chunk-afhxxkmv.js";import{_g as i}from"./chunk-43xrz4wp.js";import{$g as jW,ah as N8,fh as l$,ih as EW,jh as RW,kh as EQ,lh as bW,mh as RQ,nh as TW,oh as i$,ph as UW}from"./chunk-ac5t2ywn.js";import{Ah as y$,Jh as dQ,Kh as MW,Lh as C$,Ph as FW,Rh as yQ,Sh as K5,Th as B5,Uh as wY,Vh as R0}from"./chunk-dcwnpdtk.js";import{$h as G0,Wh as GJ,Xh as U5,Yh as N,Zh as bJ,_h as J0,ai as I5,bi as CJ,ci as w0,di as y,ei as k,fi as I0,gi as H0,hi as S5,ii as b5,ji as L0,ki as Y1,li as u,mi as N0,ni as KJ,oi as C5,pi as yJ,qi as kJ,ri as A}from"./chunk-cbjnwrt7.js";import{si as p$,ti as WY}from"./chunk-vh9zd1v3.js";import{$k as $$,Ai as wQ,Ak as NW,Bj as I8,Bk as AW,Cj as B0,Dj as b8,Dk as m1,Gi as NQ,Gj as SW,Hi as AQ,Hk as W$,Ii as jQ,Jk as I$,Kk as F1,Lk as e7,Oj as _,Pj as CW,Rj as G1,Ti as XY,Tj as rz,Tk as i7,Uj as $6,Vj as cQ,Wk as V$,Zi as c$,Zk as a7,dl as IQ,fj as g,fl as e0,gj as lX,jk as o7,mj as F$,mk as K$,nk as hX,pj as f7,pl as dX,qj as xW,qk as H$,ql as M1,tk as MQ,tl as K6,uj as IW,vk as dW,vl as u6,xj as z0,yj as iX,zi as nz,zk as d7}from"./chunk-w2hbsa9j.js";import{Cl as F5,Dl as t,El as U}from"./chunk-rztre6k0.js";import{Dn as aW,Fl as SJ,Tl as UZ,Xl as LZ,cq as fF}from"./chunk-wpy5r9ma.js";import{oq as Sx}from"./chunk-k38fjqj7.js";import{pq as rX,qq as v,tq as HO}from"./chunk-dcs1r9as.js";var V9=v((oJ)=>{Object.defineProperty(oJ,"__esModule",{value:!0});oJ.regexpCode=oJ.getEsmExportName=oJ.getProperty=oJ.safeStringify=oJ.stringify=oJ.strConcat=oJ.addCodeArg=oJ.str=oJ._=oJ.nil=oJ._Code=oJ.Name=oJ.IDENTIFIER=oJ._CodeOrName=void 0;class X4{}oJ._CodeOrName=X4;oJ.IDENTIFIER=/^[a-z$_][a-z$_0-9]*$/i;class t8 extends X4{constructor(X){super();if(!oJ.IDENTIFIER.test(X))throw Error("CodeGen: name must be a valid identifier");this.str=X}toString(){return this.str}emptyStr(){return!1}get names(){return{[this.str]:1}}}oJ.Name=t8;class O1 extends X4{constructor(X){super();this._items=typeof X==="string"?[X]:X}toString(){return this.str}emptyStr(){if(this._items.length>1)return!1;let X=this._items[0];return X===""||X==='""'}get str(){var X;return(X=this._str)!==null&&X!==void 0?X:this._str=this._items.reduce((Y,Q)=>`${Y}${Q}`,"")}get names(){var X;return(X=this._names)!==null&&X!==void 0?X:this._names=this._items.reduce((Y,Q)=>{if(Q instanceof t8)Y[Q.str]=(Y[Q.str]||0)+1;return Y},{})}}oJ._Code=O1;oJ.nil=new O1("");function sJ(X,...Y){let Q=[X[0]],Z=0;while(Z<Y.length)wZ(Q,Y[Z]),Q.push(X[++Z]);return new O1(Q)}oJ._=sJ;var PZ=new O1("+");function tJ(X,...Y){let Q=[H9(X[0])],Z=0;while(Z<Y.length)Q.push(PZ),wZ(Q,Y[Z]),Q.push(PZ,H9(X[++Z]));return uO(Q),new O1(Q)}oJ.str=tJ;function wZ(X,Y){if(Y instanceof O1)X.push(...Y._items);else if(Y instanceof t8)X.push(Y);else X.push(cO(Y))}oJ.addCodeArg=wZ;function uO(X){let Y=1;while(Y<X.length-1){if(X[Y]===PZ){let Q=mO(X[Y-1],X[Y+1]);if(Q!==void 0){X.splice(Y-1,3,Q);continue}X[Y++]="+"}Y++}}function mO(X,Y){if(Y==='""')return X;if(X==='""')return Y;if(typeof X=="string"){if(Y instanceof t8||X[X.length-1]!=='"')return;if(typeof Y!="string")return`${X.slice(0,-1)}${Y}"`;if(Y[0]==='"')return X.slice(0,-1)+Y.slice(1);return}if(typeof Y=="string"&&Y[0]==='"'&&!(X instanceof t8))return`"${X}${Y.slice(1)}`;return}function dO(X,Y){return Y.emptyStr()?X:X.emptyStr()?Y:tJ`${X}${Y}`}oJ.strConcat=dO;function cO(X){return typeof X=="number"||typeof X=="boolean"||X===null?X:H9(Array.isArray(X)?X.join(","):X)}function pO(X){return new O1(H9(X))}oJ.stringify=pO;function H9(X){return JSON.stringify(X).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")}oJ.safeStringify=H9;function lO(X){return typeof X=="string"&&oJ.IDENTIFIER.test(X)?new O1(`.${X}`):sJ`[${X}]`}oJ.getProperty=lO;function iO(X){if(typeof X=="string"&&oJ.IDENTIFIER.test(X))return new O1(`${X}`);throw Error(`CodeGen: invalid export name: ${X}, use explicit $id name mapping`)}oJ.getEsmExportName=iO;function nO(X){return new O1(X.toString())}oJ.regexpCode=nO});var EZ=v((QG)=>{Object.defineProperty(QG,"__esModule",{value:!0});QG.ValueScope=QG.ValueScopeName=QG.Scope=QG.varKinds=QG.UsedValueState=void 0;var a0=V9();class XG extends Error{constructor(X){super(`CodeGen: "code" for ${X} not defined`);this.value=X.value}}var Q4;(function(X){X[X.Started=0]="Started",X[X.Completed=1]="Completed"})(Q4||(QG.UsedValueState=Q4={}));QG.varKinds={const:new a0.Name("const"),let:new a0.Name("let"),var:new a0.Name("var")};class AZ{constructor({prefixes:X,parent:Y}={}){this._names={},this._prefixes=X,this._parent=Y}toName(X){return X instanceof a0.Name?X:this.name(X)}name(X){return new a0.Name(this._newName(X))}_newName(X){let Y=this._names[X]||this._nameGroup(X);return`${X}${Y.index++}`}_nameGroup(X){var Y,Q;if(((Q=(Y=this._parent)===null||Y===void 0?void 0:Y._prefixes)===null||Q===void 0?void 0:Q.has(X))||this._prefixes&&!this._prefixes.has(X))throw Error(`CodeGen: prefix "${X}" is not allowed in this scope`);return this._names[X]={prefix:X,index:0}}}QG.Scope=AZ;class jZ extends a0.Name{constructor(X,Y){super(Y);this.prefix=X}setValue(X,{property:Y,itemIndex:Q}){this.value=X,this.scopePath=a0._`.${new a0.Name(Y)}[${Q}]`}}QG.ValueScopeName=jZ;var JD=a0._`\n`;class YG extends AZ{constructor(X){super(X);this._values={},this._scope=X.scope,this.opts={...X,_n:X.lines?JD:a0.nil}}get(){return this._scope}name(X){return new jZ(X,this._newName(X))}value(X,Y){var Q;if(Y.ref===void 0)throw Error("CodeGen: ref must be passed in value");let Z=this.toName(X),{prefix:W}=Z,$=(Q=Y.key)!==null&&Q!==void 0?Q:Y.ref,J=this._values[W];if(J){let B=J.get($);if(B)return B}else J=this._values[W]=new Map;J.set($,Z);let G=this._scope[W]||(this._scope[W]=[]),K=G.length;return G[K]=Y.ref,Z.setValue(Y,{property:W,itemIndex:K}),Z}getValue(X,Y){let Q=this._values[X];if(!Q)return;return Q.get(Y)}scopeRefs(X,Y=this._values){return this._reduceValues(Y,(Q)=>{if(Q.scopePath===void 0)throw Error(`CodeGen: name "${Q}" has no value`);return a0._`${X}${Q.scopePath}`})}scopeCode(X=this._values,Y,Q){return this._reduceValues(X,(Z)=>{if(Z.value===void 0)throw Error(`CodeGen: name "${Z}" has no value`);return Z.value.code},Y,Q)}_reduceValues(X,Y,Q={},Z){let W=a0.nil;for(let $ in X){let J=X[$];if(!J)continue;let G=Q[$]=Q[$]||new Map;J.forEach((K)=>{if(G.has(K))return;G.set(K,Q4.Started);let B=Y(K);if(B){let H=this.opts.es5?QG.varKinds.var:QG.varKinds.const;W=a0._`${W}${H} ${K} = ${B};${this.opts._n}`}else if(B=Z===null||Z===void 0?void 0:Z(K))W=a0._`${W}${B}${this.opts._n}`;else throw new XG(K);G.set(K,Q4.Completed)})}return W}}QG.ValueScope=YG});var e=v((s0)=>{Object.defineProperty(s0,"__esModule",{value:!0});s0.or=s0.and=s0.not=s0.CodeGen=s0.operators=s0.varKinds=s0.ValueScopeName=s0.ValueScope=s0.Scope=s0.Name=s0.regexpCode=s0.stringify=s0.getProperty=s0.nil=s0.strConcat=s0.str=s0._=void 0;var Q0=V9(),D1=EZ(),q6=V9();Object.defineProperty(s0,"_",{enumerable:!0,get:function(){return q6._}});Object.defineProperty(s0,"str",{enumerable:!0,get:function(){return q6.str}});Object.defineProperty(s0,"strConcat",{enumerable:!0,get:function(){return q6.strConcat}});Object.defineProperty(s0,"nil",{enumerable:!0,get:function(){return q6.nil}});Object.defineProperty(s0,"getProperty",{enumerable:!0,get:function(){return q6.getProperty}});Object.defineProperty(s0,"stringify",{enumerable:!0,get:function(){return q6.stringify}});Object.defineProperty(s0,"regexpCode",{enumerable:!0,get:function(){return q6.regexpCode}});Object.defineProperty(s0,"Name",{enumerable:!0,get:function(){return q6.Name}});var K4=EZ();Object.defineProperty(s0,"Scope",{enumerable:!0,get:function(){return K4.Scope}});Object.defineProperty(s0,"ValueScope",{enumerable:!0,get:function(){return K4.ValueScope}});Object.defineProperty(s0,"ValueScopeName",{enumerable:!0,get:function(){return K4.ValueScopeName}});Object.defineProperty(s0,"varKinds",{enumerable:!0,get:function(){return K4.varKinds}});s0.operators={GT:new Q0._Code(">"),GTE:new Q0._Code(">="),LT:new Q0._Code("<"),LTE:new Q0._Code("<="),EQ:new Q0._Code("==="),NEQ:new Q0._Code("!=="),NOT:new Q0._Code("!"),OR:new Q0._Code("||"),AND:new Q0._Code("&&"),ADD:new Q0._Code("+")};class O6{optimizeNodes(){return this}optimizeNames(X,Y){return this}}class WG extends O6{constructor(X,Y,Q){super();this.varKind=X,this.name=Y,this.rhs=Q}render({es5:X,_n:Y}){let Q=X?D1.varKinds.var:this.varKind,Z=this.rhs===void 0?"":` = ${this.rhs}`;return`${Q} ${this.name}${Z};`+Y}optimizeNames(X,Y){if(!X[this.name.str])return;if(this.rhs)this.rhs=e8(this.rhs,X,Y);return this}get names(){return this.rhs instanceof Q0._CodeOrName?this.rhs.names:{}}}class MZ extends O6{constructor(X,Y,Q){super();this.lhs=X,this.rhs=Y,this.sideEffects=Q}render({_n:X}){return`${this.lhs} = ${this.rhs};`+X}optimizeNames(X,Y){if(this.lhs instanceof Q0.Name&&!X[this.lhs.str]&&!this.sideEffects)return;return this.rhs=e8(this.rhs,X,Y),this}get names(){let X=this.lhs instanceof Q0.Name?{}:{...this.lhs.names};return G4(X,this.rhs)}}class $G extends MZ{constructor(X,Y,Q,Z){super(X,Q,Z);this.op=Y}render({_n:X}){return`${this.lhs} ${this.op}= ${this.rhs};`+X}}class JG extends O6{constructor(X){super();this.label=X,this.names={}}render({_n:X}){return`${this.label}:`+X}}class GG extends O6{constructor(X){super();this.label=X,this.names={}}render({_n:X}){return`break${this.label?` ${this.label}`:""};`+X}}class KG extends O6{constructor(X){super();this.error=X}render({_n:X}){return`throw ${this.error};`+X}get names(){return this.error.names}}class BG extends O6{constructor(X){super();this.code=X}render({_n:X}){return`${this.code};`+X}optimizeNodes(){return`${this.code}`?this:void 0}optimizeNames(X,Y){return this.code=e8(this.code,X,Y),this}get names(){return this.code instanceof Q0._CodeOrName?this.code.names:{}}}class B4 extends O6{constructor(X=[]){super();this.nodes=X}render(X){return this.nodes.reduce((Y,Q)=>Y+Q.render(X),"")}optimizeNodes(){let{nodes:X}=this,Y=X.length;while(Y--){let Q=X[Y].optimizeNodes();if(Array.isArray(Q))X.splice(Y,1,...Q);else if(Q)X[Y]=Q;else X.splice(Y,1)}return X.length>0?this:void 0}optimizeNames(X,Y){let{nodes:Q}=this,Z=Q.length;while(Z--){let W=Q[Z];if(W.optimizeNames(X,Y))continue;HD(X,W.names),Q.splice(Z,1)}return Q.length>0?this:void 0}get names(){return this.nodes.reduce((X,Y)=>t6(X,Y.names),{})}}class D6 extends B4{render(X){return"{"+X._n+super.render(X)+"}"+X._n}}class HG extends B4{}class z9 extends D6{}z9.kind="else";class l1 extends D6{constructor(X,Y){super(Y);this.condition=X}render(X){let Y=`if(${this.condition})`+super.render(X);if(this.else)Y+="else "+this.else.render(X);return Y}optimizeNodes(){super.optimizeNodes();let X=this.condition;if(X===!0)return this.nodes;let Y=this.else;if(Y){let Q=Y.optimizeNodes();Y=this.else=Array.isArray(Q)?new z9(Q):Q}if(Y){if(X===!1)return Y instanceof l1?Y:Y.nodes;if(this.nodes.length)return this;return new l1(LG(X),Y instanceof l1?[Y]:Y.nodes)}if(X===!1||!this.nodes.length)return;return this}optimizeNames(X,Y){var Q;if(this.else=(Q=this.else)===null||Q===void 0?void 0:Q.optimizeNames(X,Y),!(super.optimizeNames(X,Y)||this.else))return;return this.condition=e8(this.condition,X,Y),this}get names(){let X=super.names;if(G4(X,this.condition),this.else)t6(X,this.else.names);return X}}l1.kind="if";class o8 extends D6{}o8.kind="for";class VG extends o8{constructor(X){super();this.iteration=X}render(X){return`for(${this.iteration})`+super.render(X)}optimizeNames(X,Y){if(!super.optimizeNames(X,Y))return;return this.iteration=e8(this.iteration,X,Y),this}get names(){return t6(super.names,this.iteration.names)}}class zG extends o8{constructor(X,Y,Q,Z){super();this.varKind=X,this.name=Y,this.from=Q,this.to=Z}render(X){let Y=X.es5?D1.varKinds.var:this.varKind,{name:Q,from:Z,to:W}=this;return`for(${Y} ${Q}=${Z}; ${Q}<${W}; ${Q}++)`+super.render(X)}get names(){let X=G4(super.names,this.from);return G4(X,this.to)}}class RZ extends o8{constructor(X,Y,Q,Z){super();this.loop=X,this.varKind=Y,this.name=Q,this.iterable=Z}render(X){return`for(${this.varKind} ${this.name} ${this.loop} ${this.iterable})`+super.render(X)}optimizeNames(X,Y){if(!super.optimizeNames(X,Y))return;return this.iterable=e8(this.iterable,X,Y),this}get names(){return t6(super.names,this.iterable.names)}}class Z4 extends D6{constructor(X,Y,Q){super();this.name=X,this.args=Y,this.async=Q}render(X){return`${this.async?"async ":""}function ${this.name}(${this.args})`+super.render(X)}}Z4.kind="func";class W4 extends B4{render(X){return"return "+super.render(X)}}W4.kind="return";class FG extends D6{render(X){let Y="try"+super.render(X);if(this.catch)Y+=this.catch.render(X);if(this.finally)Y+=this.finally.render(X);return Y}optimizeNodes(){var X,Y;return super.optimizeNodes(),(X=this.catch)===null||X===void 0||X.optimizeNodes(),(Y=this.finally)===null||Y===void 0||Y.optimizeNodes(),this}optimizeNames(X,Y){var Q,Z;return super.optimizeNames(X,Y),(Q=this.catch)===null||Q===void 0||Q.optimizeNames(X,Y),(Z=this.finally)===null||Z===void 0||Z.optimizeNames(X,Y),this}get names(){let X=super.names;if(this.catch)t6(X,this.catch.names);if(this.finally)t6(X,this.finally.names);return X}}class $4 extends D6{constructor(X){super();this.error=X}render(X){return`catch(${this.error})`+super.render(X)}}$4.kind="catch";class J4 extends D6{render(X){return"finally"+super.render(X)}}J4.kind="finally";class UG{constructor(X,Y={}){this._values={},this._blockStarts=[],this._constants={},this.opts={...Y,_n:Y.lines?`
|
|
2
|
-
`:""},this._extScope=X,this._scope=new D1.Scope({parent:X}),this._nodes=[new HG]}toString(){return this._root.render(this.opts)}name(X){return this._scope.name(X)}scopeName(X){return this._extScope.name(X)}scopeValue(X,Y){let Q=this._extScope.value(X,Y);return(this._values[Q.prefix]||(this._values[Q.prefix]=new Set)).add(Q),Q}getScopeValue(X,Y){return this._extScope.getValue(X,Y)}scopeRefs(X){return this._extScope.scopeRefs(X,this._values)}scopeCode(){return this._extScope.scopeCode(this._values)}_def(X,Y,Q,Z){let W=this._scope.toName(Y);if(Q!==void 0&&Z)this._constants[W.str]=Q;return this._leafNode(new WG(X,W,Q)),W}const(X,Y,Q){return this._def(D1.varKinds.const,X,Y,Q)}let(X,Y,Q){return this._def(D1.varKinds.let,X,Y,Q)}var(X,Y,Q){return this._def(D1.varKinds.var,X,Y,Q)}assign(X,Y,Q){return this._leafNode(new MZ(X,Y,Q))}add(X,Y){return this._leafNode(new $G(X,s0.operators.ADD,Y))}code(X){if(typeof X=="function")X();else if(X!==Q0.nil)this._leafNode(new BG(X));return this}object(...X){let Y=["{"];for(let[Q,Z]of X){if(Y.length>1)Y.push(",");if(Y.push(Q),Q!==Z||this.opts.es5)Y.push(":"),(0,Q0.addCodeArg)(Y,Z)}return Y.push("}"),new Q0._Code(Y)}if(X,Y,Q){if(this._blockNode(new l1(X)),Y&&Q)this.code(Y).else().code(Q).endIf();else if(Y)this.code(Y).endIf();else if(Q)throw Error('CodeGen: "else" body without "then" body');return this}elseIf(X){return this._elseNode(new l1(X))}else(){return this._elseNode(new z9)}endIf(){return this._endBlockNode(l1,z9)}_for(X,Y){if(this._blockNode(X),Y)this.code(Y).endFor();return this}for(X,Y){return this._for(new VG(X),Y)}forRange(X,Y,Q,Z,W=this.opts.es5?D1.varKinds.var:D1.varKinds.let){let $=this._scope.toName(X);return this._for(new zG(W,$,Y,Q),()=>Z($))}forOf(X,Y,Q,Z=D1.varKinds.const){let W=this._scope.toName(X);if(this.opts.es5){let $=Y instanceof Q0.Name?Y:this.var("_arr",Y);return this.forRange("_i",0,Q0._`${$}.length`,(J)=>{this.var(W,Q0._`${$}[${J}]`),Q(W)})}return this._for(new RZ("of",Z,W,Y),()=>Q(W))}forIn(X,Y,Q,Z=this.opts.es5?D1.varKinds.var:D1.varKinds.const){if(this.opts.ownProperties)return this.forOf(X,Q0._`Object.keys(${Y})`,Q);let W=this._scope.toName(X);return this._for(new RZ("in",Z,W,Y),()=>Q(W))}endFor(){return this._endBlockNode(o8)}label(X){return this._leafNode(new JG(X))}break(X){return this._leafNode(new GG(X))}return(X){let Y=new W4;if(this._blockNode(Y),this.code(X),Y.nodes.length!==1)throw Error('CodeGen: "return" should have one node');return this._endBlockNode(W4)}try(X,Y,Q){if(!Y&&!Q)throw Error('CodeGen: "try" without "catch" and "finally"');let Z=new FG;if(this._blockNode(Z),this.code(X),Y){let W=this.name("e");this._currNode=Z.catch=new $4(W),Y(W)}if(Q)this._currNode=Z.finally=new J4,this.code(Q);return this._endBlockNode($4,J4)}throw(X){return this._leafNode(new KG(X))}block(X,Y){if(this._blockStarts.push(this._nodes.length),X)this.code(X).endBlock(Y);return this}endBlock(X){let Y=this._blockStarts.pop();if(Y===void 0)throw Error("CodeGen: not in self-balancing block");let Q=this._nodes.length-Y;if(Q<0||X!==void 0&&Q!==X)throw Error(`CodeGen: wrong number of nodes: ${Q} vs ${X} expected`);return this._nodes.length=Y,this}func(X,Y=Q0.nil,Q,Z){if(this._blockNode(new Z4(X,Y,Q)),Z)this.code(Z).endFunc();return this}endFunc(){return this._endBlockNode(Z4)}optimize(X=1){while(X-- >0)this._root.optimizeNodes(),this._root.optimizeNames(this._root.names,this._constants)}_leafNode(X){return this._currNode.nodes.push(X),this}_blockNode(X){this._currNode.nodes.push(X),this._nodes.push(X)}_endBlockNode(X,Y){let Q=this._currNode;if(Q instanceof X||Y&&Q instanceof Y)return this._nodes.pop(),this;throw Error(`CodeGen: not in block "${Y?`${X.kind}/${Y.kind}`:X.kind}"`)}_elseNode(X){let Y=this._currNode;if(!(Y instanceof l1))throw Error('CodeGen: "else" without "if"');return this._currNode=Y.else=X,this}get _root(){return this._nodes[0]}get _currNode(){let X=this._nodes;return X[X.length-1]}set _currNode(X){let Y=this._nodes;Y[Y.length-1]=X}}s0.CodeGen=UG;function t6(X,Y){for(let Q in Y)X[Q]=(X[Q]||0)+(Y[Q]||0);return X}function G4(X,Y){return Y instanceof Q0._CodeOrName?t6(X,Y.names):X}function e8(X,Y,Q){if(X instanceof Q0.Name)return Z(X);if(!W(X))return X;return new Q0._Code(X._items.reduce(($,J)=>{if(J instanceof Q0.Name)J=Z(J);if(J instanceof Q0._Code)$.push(...J._items);else $.push(J);return $},[]));function Z($){let J=Q[$.str];if(J===void 0||Y[$.str]!==1)return $;return delete Y[$.str],J}function W($){return $ instanceof Q0._Code&&$._items.some((J)=>J instanceof Q0.Name&&Y[J.str]===1&&Q[J.str]!==void 0)}}function HD(X,Y){for(let Q in Y)X[Q]=(X[Q]||0)-(Y[Q]||0)}function LG(X){return typeof X=="boolean"||typeof X=="number"||X===null?!X:Q0._`!${TZ(X)}`}s0.not=LG;var VD=qG(s0.operators.AND);function zD(...X){return X.reduce(VD)}s0.and=zD;var FD=qG(s0.operators.OR);function UD(...X){return X.reduce(FD)}s0.or=UD;function qG(X){return(Y,Q)=>Y===Q0.nil?Q:Q===Q0.nil?Y:Q0._`${TZ(Y)} ${X} ${TZ(Q)}`}function TZ(X){return X instanceof Q0.Name?X:Q0._`(${X})`}});var W0=v((RG)=>{Object.defineProperty(RG,"__esModule",{value:!0});RG.checkStrictMode=RG.getErrorPath=RG.Type=RG.useFunc=RG.setEvaluated=RG.evaluatedPropsToName=RG.mergeEvaluated=RG.eachItem=RG.unescapeJsonPointer=RG.escapeJsonPointer=RG.escapeFragment=RG.unescapeFragment=RG.schemaRefOrVal=RG.schemaHasRulesButRef=RG.schemaHasRules=RG.checkUnknownRules=RG.alwaysValidSchema=RG.toHash=void 0;var K0=e(),DD=V9();function PD(X){let Y={};for(let Q of X)Y[Q]=!0;return Y}RG.toHash=PD;function wD(X,Y){if(typeof Y=="boolean")return Y;if(Object.keys(Y).length===0)return!0;return wG(X,Y),!NG(Y,X.self.RULES.all)}RG.alwaysValidSchema=wD;function wG(X,Y=X.schema){let{opts:Q,self:Z}=X;if(!Q.strictSchema)return;if(typeof Y==="boolean")return;let W=Z.RULES.keywords;for(let $ in Y)if(!W[$])EG(X,`unknown keyword: "${$}"`)}RG.checkUnknownRules=wG;function NG(X,Y){if(typeof X=="boolean")return!X;for(let Q in X)if(Y[Q])return!0;return!1}RG.schemaHasRules=NG;function ND(X,Y){if(typeof X=="boolean")return!X;for(let Q in X)if(Q!=="$ref"&&Y.all[Q])return!0;return!1}RG.schemaHasRulesButRef=ND;function AD({topSchemaRef:X,schemaPath:Y},Q,Z,W){if(!W){if(typeof Q=="number"||typeof Q=="boolean")return Q;if(typeof Q=="string")return K0._`${Q}`}return K0._`${X}${Y}${(0,K0.getProperty)(Z)}`}RG.schemaRefOrVal=AD;function jD(X){return AG(decodeURIComponent(X))}RG.unescapeFragment=jD;function ED(X){return encodeURIComponent(IZ(X))}RG.escapeFragment=ED;function IZ(X){if(typeof X=="number")return`${X}`;return X.replace(/~/g,"~0").replace(/\//g,"~1")}RG.escapeJsonPointer=IZ;function AG(X){return X.replace(/~1/g,"/").replace(/~0/g,"~")}RG.unescapeJsonPointer=AG;function RD(X,Y){if(Array.isArray(X))for(let Q of X)Y(Q);else Y(X)}RG.eachItem=RD;function DG({mergeNames:X,mergeToName:Y,mergeValues:Q,resultToName:Z}){return(W,$,J,G)=>{let K=J===void 0?$:J instanceof K0.Name?($ instanceof K0.Name?X(W,$,J):Y(W,$,J),J):$ instanceof K0.Name?(Y(W,J,$),$):Q($,J);return G===K0.Name&&!(K instanceof K0.Name)?Z(W,K):K}}RG.mergeEvaluated={props:DG({mergeNames:(X,Y,Q)=>X.if(K0._`${Q} !== true && ${Y} !== undefined`,()=>{X.if(K0._`${Y} === true`,()=>X.assign(Q,!0),()=>X.assign(Q,K0._`${Q} || {}`).code(K0._`Object.assign(${Q}, ${Y})`))}),mergeToName:(X,Y,Q)=>X.if(K0._`${Q} !== true`,()=>{if(Y===!0)X.assign(Q,!0);else X.assign(Q,K0._`${Q} || {}`),SZ(X,Q,Y)}),mergeValues:(X,Y)=>X===!0?!0:{...X,...Y},resultToName:jG}),items:DG({mergeNames:(X,Y,Q)=>X.if(K0._`${Q} !== true && ${Y} !== undefined`,()=>X.assign(Q,K0._`${Y} === true ? true : ${Q} > ${Y} ? ${Q} : ${Y}`)),mergeToName:(X,Y,Q)=>X.if(K0._`${Q} !== true`,()=>X.assign(Q,Y===!0?!0:K0._`${Q} > ${Y} ? ${Q} : ${Y}`)),mergeValues:(X,Y)=>X===!0?!0:Math.max(X,Y),resultToName:(X,Y)=>X.var("items",Y)})};function jG(X,Y){if(Y===!0)return X.var("props",!0);let Q=X.var("props",K0._`{}`);if(Y!==void 0)SZ(X,Q,Y);return Q}RG.evaluatedPropsToName=jG;function SZ(X,Y,Q){Object.keys(Q).forEach((Z)=>X.assign(K0._`${Y}${(0,K0.getProperty)(Z)}`,!0))}RG.setEvaluated=SZ;var PG={};function TD(X,Y){return X.scopeValue("func",{ref:Y,code:PG[Y.code]||(PG[Y.code]=new DD._Code(Y.code))})}RG.useFunc=TD;var xZ;(function(X){X[X.Num=0]="Num",X[X.Str=1]="Str"})(xZ||(RG.Type=xZ={}));function MD(X,Y,Q){if(X instanceof K0.Name){let Z=Y===xZ.Num;return Q?Z?K0._`"[" + ${X} + "]"`:K0._`"['" + ${X} + "']"`:Z?K0._`"/" + ${X}`:K0._`"/" + ${X}.replace(/~/g, "~0").replace(/\\//g, "~1")`}return Q?(0,K0.getProperty)(X).toString():"/"+IZ(X)}RG.getErrorPath=MD;function EG(X,Y,Q=X.opts.strictSchema){if(!Q)return;if(Y=`strict mode: ${Y}`,Q===!0)throw Error(Y);X.self.logger.warn(Y)}RG.checkStrictMode=EG});var i1=v((MG)=>{Object.defineProperty(MG,"__esModule",{value:!0});var g0=e(),lD={data:new g0.Name("data"),valCxt:new g0.Name("valCxt"),instancePath:new g0.Name("instancePath"),parentData:new g0.Name("parentData"),parentDataProperty:new g0.Name("parentDataProperty"),rootData:new g0.Name("rootData"),dynamicAnchors:new g0.Name("dynamicAnchors"),vErrors:new g0.Name("vErrors"),errors:new g0.Name("errors"),this:new g0.Name("this"),self:new g0.Name("self"),scope:new g0.Name("scope"),json:new g0.Name("json"),jsonPos:new g0.Name("jsonPos"),jsonLen:new g0.Name("jsonLen"),jsonPart:new g0.Name("jsonPart")};MG.default=lD});var F9=v((bG)=>{Object.defineProperty(bG,"__esModule",{value:!0});bG.extendErrors=bG.resetErrorsCount=bG.reportExtraError=bG.reportError=bG.keyword$DataError=bG.keywordError=void 0;var $0=e(),V4=W0(),c0=i1();bG.keywordError={message:({keyword:X})=>$0.str`must pass "${X}" keyword validation`};bG.keyword$DataError={message:({keyword:X,schemaType:Y})=>Y?$0.str`"${X}" keyword must be ${Y} ($data)`:$0.str`"${X}" keyword is invalid ($data)`};function nD(X,Y=bG.keywordError,Q,Z){let{it:W}=X,{gen:$,compositeRule:J,allErrors:G}=W,K=SG(X,Y,Q);if(Z!==null&&Z!==void 0?Z:J||G)xG($,K);else IG(W,$0._`[${K}]`)}bG.reportError=nD;function rD(X,Y=bG.keywordError,Q){let{it:Z}=X,{gen:W,compositeRule:$,allErrors:J}=Z,G=SG(X,Y,Q);if(xG(W,G),!($||J))IG(Z,c0.default.vErrors)}bG.reportExtraError=rD;function aD(X,Y){X.assign(c0.default.errors,Y),X.if($0._`${c0.default.vErrors} !== null`,()=>X.if(Y,()=>X.assign($0._`${c0.default.vErrors}.length`,Y),()=>X.assign(c0.default.vErrors,null)))}bG.resetErrorsCount=aD;function sD({gen:X,keyword:Y,schemaValue:Q,data:Z,errsCount:W,it:$}){if(W===void 0)throw Error("ajv implementation error");let J=X.name("err");X.forRange("i",W,c0.default.errors,(G)=>{if(X.const(J,$0._`${c0.default.vErrors}[${G}]`),X.if($0._`${J}.instancePath === undefined`,()=>X.assign($0._`${J}.instancePath`,(0,$0.strConcat)(c0.default.instancePath,$.errorPath))),X.assign($0._`${J}.schemaPath`,$0.str`${$.errSchemaPath}/${Y}`),$.opts.verbose)X.assign($0._`${J}.schema`,Q),X.assign($0._`${J}.data`,Z)})}bG.extendErrors=sD;function xG(X,Y){let Q=X.const("err",Y);X.if($0._`${c0.default.vErrors} === null`,()=>X.assign(c0.default.vErrors,$0._`[${Q}]`),$0._`${c0.default.vErrors}.push(${Q})`),X.code($0._`${c0.default.errors}++`)}function IG(X,Y){let{gen:Q,validateName:Z,schemaEnv:W}=X;if(W.$async)Q.throw($0._`new ${X.ValidationError}(${Y})`);else Q.assign($0._`${Z}.errors`,Y),Q.return(!1)}var o6={keyword:new $0.Name("keyword"),schemaPath:new $0.Name("schemaPath"),params:new $0.Name("params"),propertyName:new $0.Name("propertyName"),message:new $0.Name("message"),schema:new $0.Name("schema"),parentSchema:new $0.Name("parentSchema")};function SG(X,Y,Q){let{createErrors:Z}=X.it;if(Z===!1)return $0._`{}`;return tD(X,Y,Q)}function tD(X,Y,Q={}){let{gen:Z,it:W}=X,$=[oD(W,Q),eD(X,Q)];return XP(X,Y,$),Z.object(...$)}function oD({errorPath:X},{instancePath:Y}){let Q=Y?$0.str`${X}${(0,V4.getErrorPath)(Y,V4.Type.Str)}`:X;return[c0.default.instancePath,(0,$0.strConcat)(c0.default.instancePath,Q)]}function eD({keyword:X,it:{errSchemaPath:Y}},{schemaPath:Q,parentSchema:Z}){let W=Z?Y:$0.str`${Y}/${X}`;if(Q)W=$0.str`${W}${(0,V4.getErrorPath)(Q,V4.Type.Str)}`;return[o6.schemaPath,W]}function XP(X,{params:Y,message:Q},Z){let{keyword:W,data:$,schemaValue:J,it:G}=X,{opts:K,propertyName:B,topSchemaRef:H,schemaPath:V}=G;if(Z.push([o6.keyword,W],[o6.params,typeof Y=="function"?Y(X):Y||$0._`{}`]),K.messages)Z.push([o6.message,typeof Q=="function"?Q(X):Q]);if(K.verbose)Z.push([o6.schema,J],[o6.parentSchema,$0._`${H}${V}`],[c0.default.data,$]);if(B)Z.push([o6.propertyName,B])}});var vG=v((kG)=>{Object.defineProperty(kG,"__esModule",{value:!0});kG.boolOrEmptySchema=kG.topBoolOrEmptySchema=void 0;var $P=F9(),JP=e(),GP=i1(),KP={message:"boolean schema is false"};function BP(X){let{gen:Y,schema:Q,validateName:Z}=X;if(Q===!1)yG(X,!1);else if(typeof Q=="object"&&Q.$async===!0)Y.return(GP.default.data);else Y.assign(JP._`${Z}.errors`,null),Y.return(!0)}kG.topBoolOrEmptySchema=BP;function HP(X,Y){let{gen:Q,schema:Z}=X;if(Z===!1)Q.var(Y,!1),yG(X);else Q.var(Y,!0)}kG.boolOrEmptySchema=HP;function yG(X,Y){let{gen:Q,data:Z}=X,W={gen:Q,keyword:"false schema",data:Z,schema:!1,schemaCode:!1,schemaValue:!1,params:{},it:X};(0,$P.reportError)(W,KP,void 0,Y)}});var CZ=v((fG)=>{Object.defineProperty(fG,"__esModule",{value:!0});fG.getRules=fG.isJSONType=void 0;var zP=["string","number","integer","boolean","null","object","array"],FP=new Set(zP);function UP(X){return typeof X=="string"&&FP.has(X)}fG.isJSONType=UP;function LP(){let X={number:{type:"number",rules:[]},string:{type:"string",rules:[]},array:{type:"array",rules:[]},object:{type:"object",rules:[]}};return{types:{...X,integer:!0,boolean:!0,null:!0},rules:[{rules:[]},X.number,X.string,X.array,X.object],post:{rules:[]},all:{},keywords:{}}}fG.getRules=LP});var yZ=v((mG)=>{Object.defineProperty(mG,"__esModule",{value:!0});mG.shouldUseRule=mG.shouldUseGroup=mG.schemaHasRulesForType=void 0;function OP({schema:X,self:Y},Q){let Z=Y.RULES.types[Q];return Z&&Z!==!0&&gG(X,Z)}mG.schemaHasRulesForType=OP;function gG(X,Y){return Y.rules.some((Q)=>uG(X,Q))}mG.shouldUseGroup=gG;function uG(X,Y){var Q;return X[Y.keyword]!==void 0||((Q=Y.definition.implements)===null||Q===void 0?void 0:Q.some((Z)=>X[Z]!==void 0))}mG.shouldUseRule=uG});var U9=v((iG)=>{Object.defineProperty(iG,"__esModule",{value:!0});iG.reportTypeError=iG.checkDataTypes=iG.checkDataType=iG.coerceAndCheckDataType=iG.getJSONTypes=iG.getSchemaTypes=iG.DataType=void 0;var wP=CZ(),NP=yZ(),AP=F9(),o=e(),cG=W0(),XX;(function(X){X[X.Correct=0]="Correct",X[X.Wrong=1]="Wrong"})(XX||(iG.DataType=XX={}));function jP(X){let Y=pG(X.type);if(Y.includes("null")){if(X.nullable===!1)throw Error("type: null contradicts nullable: false")}else{if(!Y.length&&X.nullable!==void 0)throw Error('"nullable" cannot be used without "type"');if(X.nullable===!0)Y.push("null")}return Y}iG.getSchemaTypes=jP;function pG(X){let Y=Array.isArray(X)?X:X?[X]:[];if(Y.every(wP.isJSONType))return Y;throw Error("type must be JSONType or JSONType[]: "+Y.join(","))}iG.getJSONTypes=pG;function EP(X,Y){let{gen:Q,data:Z,opts:W}=X,$=RP(Y,W.coerceTypes),J=Y.length>0&&!($.length===0&&Y.length===1&&(0,NP.schemaHasRulesForType)(X,Y[0]));if(J){let G=_Z(Y,Z,W.strictNumbers,XX.Wrong);Q.if(G,()=>{if($.length)TP(X,Y,$);else vZ(X)})}return J}iG.coerceAndCheckDataType=EP;var lG=new Set(["string","number","integer","boolean","null"]);function RP(X,Y){return Y?X.filter((Q)=>lG.has(Q)||Y==="array"&&Q==="array"):[]}function TP(X,Y,Q){let{gen:Z,data:W,opts:$}=X,J=Z.let("dataType",o._`typeof ${W}`),G=Z.let("coerced",o._`undefined`);if($.coerceTypes==="array")Z.if(o._`${J} == 'object' && Array.isArray(${W}) && ${W}.length == 1`,()=>Z.assign(W,o._`${W}[0]`).assign(J,o._`typeof ${W}`).if(_Z(Y,W,$.strictNumbers),()=>Z.assign(G,W)));Z.if(o._`${G} !== undefined`);for(let B of Q)if(lG.has(B)||B==="array"&&$.coerceTypes==="array")K(B);Z.else(),vZ(X),Z.endIf(),Z.if(o._`${G} !== undefined`,()=>{Z.assign(W,G),MP(X,G)});function K(B){switch(B){case"string":Z.elseIf(o._`${J} == "number" || ${J} == "boolean"`).assign(G,o._`"" + ${W}`).elseIf(o._`${W} === null`).assign(G,o._`""`);return;case"number":Z.elseIf(o._`${J} == "boolean" || ${W} === null
|
|
3
|
-
|| (${J} == "string" && ${W} && ${W} == +${W})`).assign(G,o._`+${W}`);return;case"integer":Z.elseIf(o._`${J} === "boolean" || ${W} === null
|
|
4
|
-
|| (${J} === "string" && ${W} && ${W} == +${W} && !(${W} % 1))`).assign(G,o._`+${W}`);return;case"boolean":Z.elseIf(o._`${W} === "false" || ${W} === 0 || ${W} === null`).assign(G,!1).elseIf(o._`${W} === "true" || ${W} === 1`).assign(G,!0);return;case"null":Z.elseIf(o._`${W} === "" || ${W} === 0 || ${W} === false`),Z.assign(G,null);return;case"array":Z.elseIf(o._`${J} === "string" || ${J} === "number"
|
|
5
|
-
|| ${J} === "boolean" || ${W} === null`).assign(G,o._`[${W}]`)}}}function MP({gen:X,parentData:Y,parentDataProperty:Q},Z){X.if(o._`${Y} !== undefined`,()=>X.assign(o._`${Y}[${Q}]`,Z))}function kZ(X,Y,Q,Z=XX.Correct){let W=Z===XX.Correct?o.operators.EQ:o.operators.NEQ,$;switch(X){case"null":return o._`${Y} ${W} null`;case"array":$=o._`Array.isArray(${Y})`;break;case"object":$=o._`${Y} && typeof ${Y} == "object" && !Array.isArray(${Y})`;break;case"integer":$=J(o._`!(${Y} % 1) && !isNaN(${Y})`);break;case"number":$=J();break;default:return o._`typeof ${Y} ${W} ${X}`}return Z===XX.Correct?$:(0,o.not)($);function J(G=o.nil){return(0,o.and)(o._`typeof ${Y} == "number"`,G,Q?o._`isFinite(${Y})`:o.nil)}}iG.checkDataType=kZ;function _Z(X,Y,Q,Z){if(X.length===1)return kZ(X[0],Y,Q,Z);let W,$=(0,cG.toHash)(X);if($.array&&$.object){let J=o._`typeof ${Y} != "object"`;W=$.null?J:o._`!${Y} || ${J}`,delete $.null,delete $.array,delete $.object}else W=o.nil;if($.number)delete $.integer;for(let J in $)W=(0,o.and)(W,kZ(J,Y,Q,Z));return W}iG.checkDataTypes=_Z;var xP={message:({schema:X})=>`must be ${X}`,params:({schema:X,schemaValue:Y})=>typeof X=="string"?o._`{type: ${X}}`:o._`{type: ${Y}}`};function vZ(X){let Y=IP(X);(0,AP.reportError)(Y,xP)}iG.reportTypeError=vZ;function IP(X){let{gen:Y,data:Q,schema:Z}=X,W=(0,cG.schemaRefOrVal)(X,Z,"type");return{gen:Y,keyword:"type",data:Q,schema:Z.type,schemaCode:W,schemaValue:W,parentSchema:Z,params:{},it:X}}});var tG=v((aG)=>{Object.defineProperty(aG,"__esModule",{value:!0});aG.assignDefaults=void 0;var YX=e(),vP=W0();function fP(X,Y){let{properties:Q,items:Z}=X.schema;if(Y==="object"&&Q)for(let W in Q)rG(X,W,Q[W].default);else if(Y==="array"&&Array.isArray(Z))Z.forEach((W,$)=>rG(X,$,W.default))}aG.assignDefaults=fP;function rG(X,Y,Q){let{gen:Z,compositeRule:W,data:$,opts:J}=X;if(Q===void 0)return;let G=YX._`${$}${(0,YX.getProperty)(Y)}`;if(W){(0,vP.checkStrictMode)(X,`default is ignored for: ${G}`);return}let K=YX._`${G} === undefined`;if(J.useDefaults==="empty")K=YX._`${K} || ${G} === null || ${G} === ""`;Z.if(K,YX._`${G} = ${(0,YX.stringify)(Q)}`)}});var H1=v((XK)=>{Object.defineProperty(XK,"__esModule",{value:!0});XK.validateUnion=XK.validateArray=XK.usePattern=XK.callValidateCode=XK.schemaProperties=XK.allSchemaProperties=XK.noPropertyInData=XK.propertyInData=XK.isOwnProperty=XK.hasPropFunc=XK.reportMissingProp=XK.checkMissingProp=XK.checkReportMissingProp=void 0;var V0=e(),fZ=W0(),P6=i1(),hP=W0();function gP(X,Y){let{gen:Q,data:Z,it:W}=X;Q.if(gZ(Q,Z,Y,W.opts.ownProperties),()=>{X.setParams({missingProperty:V0._`${Y}`},!0),X.error()})}XK.checkReportMissingProp=gP;function uP({gen:X,data:Y,it:{opts:Q}},Z,W){return(0,V0.or)(...Z.map(($)=>(0,V0.and)(gZ(X,Y,$,Q.ownProperties),V0._`${W} = ${$}`)))}XK.checkMissingProp=uP;function mP(X,Y){X.setParams({missingProperty:Y},!0),X.error()}XK.reportMissingProp=mP;function oG(X){return X.scopeValue("func",{ref:Object.prototype.hasOwnProperty,code:V0._`Object.prototype.hasOwnProperty`})}XK.hasPropFunc=oG;function hZ(X,Y,Q){return V0._`${oG(X)}.call(${Y}, ${Q})`}XK.isOwnProperty=hZ;function dP(X,Y,Q,Z){let W=V0._`${Y}${(0,V0.getProperty)(Q)} !== undefined`;return Z?V0._`${W} && ${hZ(X,Y,Q)}`:W}XK.propertyInData=dP;function gZ(X,Y,Q,Z){let W=V0._`${Y}${(0,V0.getProperty)(Q)} === undefined`;return Z?(0,V0.or)(W,(0,V0.not)(hZ(X,Y,Q))):W}XK.noPropertyInData=gZ;function eG(X){return X?Object.keys(X).filter((Y)=>Y!=="__proto__"):[]}XK.allSchemaProperties=eG;function cP(X,Y){return eG(Y).filter((Q)=>!(0,fZ.alwaysValidSchema)(X,Y[Q]))}XK.schemaProperties=cP;function pP({schemaCode:X,data:Y,it:{gen:Q,topSchemaRef:Z,schemaPath:W,errorPath:$},it:J},G,K,B){let H=B?V0._`${X}, ${Y}, ${Z}${W}`:Y,V=[[P6.default.instancePath,(0,V0.strConcat)(P6.default.instancePath,$)],[P6.default.parentData,J.parentData],[P6.default.parentDataProperty,J.parentDataProperty],[P6.default.rootData,P6.default.rootData]];if(J.opts.dynamicRef)V.push([P6.default.dynamicAnchors,P6.default.dynamicAnchors]);let z=V0._`${H}, ${Q.object(...V)}`;return K!==V0.nil?V0._`${G}.call(${K}, ${z})`:V0._`${G}(${z})`}XK.callValidateCode=pP;var lP=V0._`new RegExp`;function iP({gen:X,it:{opts:Y}},Q){let Z=Y.unicodeRegExp?"u":"",{regExp:W}=Y.code,$=W(Q,Z);return X.scopeValue("pattern",{key:$.toString(),ref:$,code:V0._`${W.code==="new RegExp"?lP:(0,hP.useFunc)(X,W)}(${Q}, ${Z})`})}XK.usePattern=iP;function nP(X){let{gen:Y,data:Q,keyword:Z,it:W}=X,$=Y.name("valid");if(W.allErrors){let G=Y.let("valid",!0);return J(()=>Y.assign(G,!1)),G}return Y.var($,!0),J(()=>Y.break()),$;function J(G){let K=Y.const("len",V0._`${Q}.length`);Y.forRange("i",0,K,(B)=>{X.subschema({keyword:Z,dataProp:B,dataPropType:fZ.Type.Num},$),Y.if((0,V0.not)($),G)})}}XK.validateArray=nP;function rP(X){let{gen:Y,schema:Q,keyword:Z,it:W}=X;if(!Array.isArray(Q))throw Error("ajv implementation error");if(Q.some((K)=>(0,fZ.alwaysValidSchema)(W,K))&&!W.opts.unevaluated)return;let J=Y.let("valid",!1),G=Y.name("_valid");Y.block(()=>Q.forEach((K,B)=>{let H=X.subschema({keyword:Z,schemaProp:B,compositeRule:!0},G);if(Y.assign(J,V0._`${J} || ${G}`),!X.mergeValidEvaluated(H,G))Y.if((0,V0.not)(J))})),X.result(J,()=>X.reset(),()=>X.error(!0))}XK.validateUnion=rP});var JK=v((WK)=>{Object.defineProperty(WK,"__esModule",{value:!0});WK.validateKeywordUsage=WK.validSchemaType=WK.funcKeywordCode=WK.macroKeywordCode=void 0;var p0=e(),e6=i1(),Gw=H1(),Kw=F9();function Bw(X,Y){let{gen:Q,keyword:Z,schema:W,parentSchema:$,it:J}=X,G=Y.macro.call(J.self,W,$,J),K=ZK(Q,Z,G);if(J.opts.validateSchema!==!1)J.self.validateSchema(G,!0);let B=Q.name("valid");X.subschema({schema:G,schemaPath:p0.nil,errSchemaPath:`${J.errSchemaPath}/${Z}`,topSchemaRef:K,compositeRule:!0},B),X.pass(B,()=>X.error(!0))}WK.macroKeywordCode=Bw;function Hw(X,Y){var Q;let{gen:Z,keyword:W,schema:$,parentSchema:J,$data:G,it:K}=X;zw(K,Y);let B=!G&&Y.compile?Y.compile.call(K.self,$,J,K):Y.validate,H=ZK(Z,W,B),V=Z.let("valid");X.block$data(V,z),X.ok((Q=Y.valid)!==null&&Q!==void 0?Q:V);function z(){if(Y.errors===!1){if(q(),Y.modifying)QK(X);w(()=>X.error())}else{let O=Y.async?F():L();if(Y.modifying)QK(X);w(()=>Vw(X,O))}}function F(){let O=Z.let("ruleErrs",null);return Z.try(()=>q(p0._`await `),(R)=>Z.assign(V,!1).if(p0._`${R} instanceof ${K.ValidationError}`,()=>Z.assign(O,p0._`${R}.errors`),()=>Z.throw(R))),O}function L(){let O=p0._`${H}.errors`;return Z.assign(O,null),q(p0.nil),O}function q(O=Y.async?p0._`await `:p0.nil){let R=K.opts.passContext?e6.default.this:e6.default.self,P=!(("compile"in Y)&&!G||Y.schema===!1);Z.assign(V,p0._`${O}${(0,Gw.callValidateCode)(X,H,R,P)}`,Y.modifying)}function w(O){var R;Z.if((0,p0.not)((R=Y.valid)!==null&&R!==void 0?R:V),O)}}WK.funcKeywordCode=Hw;function QK(X){let{gen:Y,data:Q,it:Z}=X;Y.if(Z.parentData,()=>Y.assign(Q,p0._`${Z.parentData}[${Z.parentDataProperty}]`))}function Vw(X,Y){let{gen:Q}=X;Q.if(p0._`Array.isArray(${Y})`,()=>{Q.assign(e6.default.vErrors,p0._`${e6.default.vErrors} === null ? ${Y} : ${e6.default.vErrors}.concat(${Y})`).assign(e6.default.errors,p0._`${e6.default.vErrors}.length`),(0,Kw.extendErrors)(X)},()=>X.error())}function zw({schemaEnv:X},Y){if(Y.async&&!X.$async)throw Error("async keyword in sync schema")}function ZK(X,Y,Q){if(Q===void 0)throw Error(`keyword "${Y}" failed to compile`);return X.scopeValue("keyword",typeof Q=="function"?{ref:Q}:{ref:Q,code:(0,p0.stringify)(Q)})}function Fw(X,Y,Q=!1){return!Y.length||Y.some((Z)=>Z==="array"?Array.isArray(X):Z==="object"?X&&typeof X=="object"&&!Array.isArray(X):typeof X==Z||Q&&typeof X>"u")}WK.validSchemaType=Fw;function Uw({schema:X,opts:Y,self:Q,errSchemaPath:Z},W,$){if(Array.isArray(W.keyword)?!W.keyword.includes($):W.keyword!==$)throw Error("ajv implementation error");let J=W.dependencies;if(J===null||J===void 0?void 0:J.some((G)=>!Object.prototype.hasOwnProperty.call(X,G)))throw Error(`parent schema must have dependencies of ${$}: ${J.join(",")}`);if(W.validateSchema){if(!W.validateSchema(X[$])){let K=`keyword "${$}" value is invalid at path "${Z}": `+Q.errorsText(W.validateSchema.errors);if(Y.validateSchema==="log")Q.logger.error(K);else throw Error(K)}}}WK.validateKeywordUsage=Uw});var HK=v((KK)=>{Object.defineProperty(KK,"__esModule",{value:!0});KK.extendSubschemaMode=KK.extendSubschemaData=KK.getSubschema=void 0;var C1=e(),GK=W0();function Dw(X,{keyword:Y,schemaProp:Q,schema:Z,schemaPath:W,errSchemaPath:$,topSchemaRef:J}){if(Y!==void 0&&Z!==void 0)throw Error('both "keyword" and "schema" passed, only one allowed');if(Y!==void 0){let G=X.schema[Y];return Q===void 0?{schema:G,schemaPath:C1._`${X.schemaPath}${(0,C1.getProperty)(Y)}`,errSchemaPath:`${X.errSchemaPath}/${Y}`}:{schema:G[Q],schemaPath:C1._`${X.schemaPath}${(0,C1.getProperty)(Y)}${(0,C1.getProperty)(Q)}`,errSchemaPath:`${X.errSchemaPath}/${Y}/${(0,GK.escapeFragment)(Q)}`}}if(Z!==void 0){if(W===void 0||$===void 0||J===void 0)throw Error('"schemaPath", "errSchemaPath" and "topSchemaRef" are required with "schema"');return{schema:Z,schemaPath:W,topSchemaRef:J,errSchemaPath:$}}throw Error('either "keyword" or "schema" must be passed')}KK.getSubschema=Dw;function Pw(X,Y,{dataProp:Q,dataPropType:Z,data:W,dataTypes:$,propertyName:J}){if(W!==void 0&&Q!==void 0)throw Error('both "data" and "dataProp" passed, only one allowed');let{gen:G}=Y;if(Q!==void 0){let{errorPath:B,dataPathArr:H,opts:V}=Y,z=G.let("data",C1._`${Y.data}${(0,C1.getProperty)(Q)}`,!0);K(z),X.errorPath=C1.str`${B}${(0,GK.getErrorPath)(Q,Z,V.jsPropertySyntax)}`,X.parentDataProperty=C1._`${Q}`,X.dataPathArr=[...H,X.parentDataProperty]}if(W!==void 0){let B=W instanceof C1.Name?W:G.let("data",W,!0);if(K(B),J!==void 0)X.propertyName=J}if($)X.dataTypes=$;function K(B){X.data=B,X.dataLevel=Y.dataLevel+1,X.dataTypes=[],Y.definedProperties=new Set,X.parentData=Y.data,X.dataNames=[...Y.dataNames,B]}}KK.extendSubschemaData=Pw;function ww(X,{jtdDiscriminator:Y,jtdMetadata:Q,compositeRule:Z,createErrors:W,allErrors:$}){if(Z!==void 0)X.compositeRule=Z;if(W!==void 0)X.createErrors=W;if($!==void 0)X.allErrors=$;X.jtdDiscriminator=Y,X.jtdMetadata=Q}KK.extendSubschemaMode=ww});var uZ=v((Lv,VK)=>{VK.exports=function X(Y,Q){if(Y===Q)return!0;if(Y&&Q&&typeof Y=="object"&&typeof Q=="object"){if(Y.constructor!==Q.constructor)return!1;var Z,W,$;if(Array.isArray(Y)){if(Z=Y.length,Z!=Q.length)return!1;for(W=Z;W--!==0;)if(!X(Y[W],Q[W]))return!1;return!0}if(Y.constructor===RegExp)return Y.source===Q.source&&Y.flags===Q.flags;if(Y.valueOf!==Object.prototype.valueOf)return Y.valueOf()===Q.valueOf();if(Y.toString!==Object.prototype.toString)return Y.toString()===Q.toString();if($=Object.keys(Y),Z=$.length,Z!==Object.keys(Q).length)return!1;for(W=Z;W--!==0;)if(!Object.prototype.hasOwnProperty.call(Q,$[W]))return!1;for(W=Z;W--!==0;){var J=$[W];if(!X(Y[J],Q[J]))return!1}return!0}return Y!==Y&&Q!==Q}});var FK=v((qv,zK)=>{var w6=zK.exports=function(X,Y,Q){if(typeof Y=="function")Q=Y,Y={};Q=Y.cb||Q;var Z=typeof Q=="function"?Q:Q.pre||function(){},W=Q.post||function(){};z4(Y,Z,W,X,"",X)};w6.keywords={additionalItems:!0,items:!0,contains:!0,additionalProperties:!0,propertyNames:!0,not:!0,if:!0,then:!0,else:!0};w6.arrayKeywords={items:!0,allOf:!0,anyOf:!0,oneOf:!0};w6.propsKeywords={$defs:!0,definitions:!0,properties:!0,patternProperties:!0,dependencies:!0};w6.skipKeywords={default:!0,enum:!0,const:!0,required:!0,maximum:!0,minimum:!0,exclusiveMaximum:!0,exclusiveMinimum:!0,multipleOf:!0,maxLength:!0,minLength:!0,pattern:!0,format:!0,maxItems:!0,minItems:!0,uniqueItems:!0,maxProperties:!0,minProperties:!0};function z4(X,Y,Q,Z,W,$,J,G,K,B){if(Z&&typeof Z=="object"&&!Array.isArray(Z)){Y(Z,W,$,J,G,K,B);for(var H in Z){var V=Z[H];if(Array.isArray(V)){if(H in w6.arrayKeywords)for(var z=0;z<V.length;z++)z4(X,Y,Q,V[z],W+"/"+H+"/"+z,$,W,H,Z,z)}else if(H in w6.propsKeywords){if(V&&typeof V=="object")for(var F in V)z4(X,Y,Q,V[F],W+"/"+H+"/"+jw(F),$,W,H,Z,F)}else if(H in w6.keywords||X.allKeys&&!(H in w6.skipKeywords))z4(X,Y,Q,V,W+"/"+H,$,W,H,Z)}Q(Z,W,$,J,G,K,B)}}function jw(X){return X.replace(/~/g,"~0").replace(/\//g,"~1")}});var L9=v((OK)=>{Object.defineProperty(OK,"__esModule",{value:!0});OK.getSchemaRefs=OK.resolveUrl=OK.normalizeId=OK._getFullPath=OK.getFullPath=OK.inlineRef=void 0;var Ew=W0(),Rw=uZ(),Tw=FK(),Mw=new Set(["type","format","pattern","maxLength","minLength","maxProperties","minProperties","maxItems","minItems","maximum","minimum","uniqueItems","multipleOf","required","enum","const"]);function xw(X,Y=!0){if(typeof X=="boolean")return!0;if(Y===!0)return!mZ(X);if(!Y)return!1;return UK(X)<=Y}OK.inlineRef=xw;var Iw=new Set(["$ref","$recursiveRef","$recursiveAnchor","$dynamicRef","$dynamicAnchor"]);function mZ(X){for(let Y in X){if(Iw.has(Y))return!0;let Q=X[Y];if(Array.isArray(Q)&&Q.some(mZ))return!0;if(typeof Q=="object"&&mZ(Q))return!0}return!1}function UK(X){let Y=0;for(let Q in X){if(Q==="$ref")return 1/0;if(Y++,Mw.has(Q))continue;if(typeof X[Q]=="object")(0,Ew.eachItem)(X[Q],(Z)=>Y+=UK(Z));if(Y===1/0)return 1/0}return Y}function LK(X,Y="",Q){if(Q!==!1)Y=QX(Y);let Z=X.parse(Y);return qK(X,Z)}OK.getFullPath=LK;function qK(X,Y){return X.serialize(Y).split("#")[0]+"#"}OK._getFullPath=qK;var Sw=/#\/?$/;function QX(X){return X?X.replace(Sw,""):""}OK.normalizeId=QX;function bw(X,Y,Q){return Q=QX(Q),X.resolve(Y,Q)}OK.resolveUrl=bw;var Cw=/^[a-z_][-a-z0-9._]*$/i;function yw(X,Y){if(typeof X=="boolean")return{};let{schemaId:Q,uriResolver:Z}=this.opts,W=QX(X[Q]||Y),$={"":W},J=LK(Z,W,!1),G={},K=new Set;return Tw(X,{allKeys:!0},(V,z,F,L)=>{if(L===void 0)return;let q=J+z,w=$[L];if(typeof V[Q]=="string")w=O.call(this,V[Q]);R.call(this,V.$anchor),R.call(this,V.$dynamicAnchor),$[z]=w;function O(P){let D=this.opts.uriResolver.resolve;if(P=QX(w?D(w,P):P),K.has(P))throw H(P);K.add(P);let E=this.refs[P];if(typeof E=="string")E=this.refs[E];if(typeof E=="object")B(V,E.schema,P);else if(P!==QX(q))if(P[0]==="#")B(V,G[P],P),G[P]=V;else this.refs[P]=q;return P}function R(P){if(typeof P=="string"){if(!Cw.test(P))throw Error(`invalid anchor "${P}"`);O.call(this,`#${P}`)}}}),G;function B(V,z,F){if(z!==void 0&&!Rw(V,z))throw H(F)}function H(V){return Error(`reference "${V}" resolves to more than one schema`)}}OK.getSchemaRefs=yw});var D9=v((yK)=>{Object.defineProperty(yK,"__esModule",{value:!0});yK.getData=yK.KeywordCxt=yK.validateFunctionCode=void 0;var jK=vG(),PK=U9(),cZ=yZ(),F4=U9(),gw=tG(),O9=JK(),dZ=HK(),m=e(),a=i1(),uw=L9(),n1=W0(),q9=F9();function mw(X){if(TK(X)){if(MK(X),RK(X)){pw(X);return}}EK(X,()=>(0,jK.topBoolOrEmptySchema)(X))}yK.validateFunctionCode=mw;function EK({gen:X,validateName:Y,schema:Q,schemaEnv:Z,opts:W},$){if(W.code.es5)X.func(Y,m._`${a.default.data}, ${a.default.valCxt}`,Z.$async,()=>{X.code(m._`"use strict"; ${wK(Q,W)}`),cw(X,W),X.code($)});else X.func(Y,m._`${a.default.data}, ${dw(W)}`,Z.$async,()=>X.code(wK(Q,W)).code($))}function dw(X){return m._`{${a.default.instancePath}="", ${a.default.parentData}, ${a.default.parentDataProperty}, ${a.default.rootData}=${a.default.data}${X.dynamicRef?m._`, ${a.default.dynamicAnchors}={}`:m.nil}}={}`}function cw(X,Y){X.if(a.default.valCxt,()=>{if(X.var(a.default.instancePath,m._`${a.default.valCxt}.${a.default.instancePath}`),X.var(a.default.parentData,m._`${a.default.valCxt}.${a.default.parentData}`),X.var(a.default.parentDataProperty,m._`${a.default.valCxt}.${a.default.parentDataProperty}`),X.var(a.default.rootData,m._`${a.default.valCxt}.${a.default.rootData}`),Y.dynamicRef)X.var(a.default.dynamicAnchors,m._`${a.default.valCxt}.${a.default.dynamicAnchors}`)},()=>{if(X.var(a.default.instancePath,m._`""`),X.var(a.default.parentData,m._`undefined`),X.var(a.default.parentDataProperty,m._`undefined`),X.var(a.default.rootData,a.default.data),Y.dynamicRef)X.var(a.default.dynamicAnchors,m._`{}`)})}function pw(X){let{schema:Y,opts:Q,gen:Z}=X;EK(X,()=>{if(Q.$comment&&Y.$comment)IK(X);if(aw(X),Z.let(a.default.vErrors,null),Z.let(a.default.errors,0),Q.unevaluated)lw(X);xK(X),ow(X)});return}function lw(X){let{gen:Y,validateName:Q}=X;X.evaluated=Y.const("evaluated",m._`${Q}.evaluated`),Y.if(m._`${X.evaluated}.dynamicProps`,()=>Y.assign(m._`${X.evaluated}.props`,m._`undefined`)),Y.if(m._`${X.evaluated}.dynamicItems`,()=>Y.assign(m._`${X.evaluated}.items`,m._`undefined`))}function wK(X,Y){let Q=typeof X=="object"&&X[Y.schemaId];return Q&&(Y.code.source||Y.code.process)?m._`/*# sourceURL=${Q} */`:m.nil}function iw(X,Y){if(TK(X)){if(MK(X),RK(X)){nw(X,Y);return}}(0,jK.boolOrEmptySchema)(X,Y)}function RK({schema:X,self:Y}){if(typeof X=="boolean")return!X;for(let Q in X)if(Y.RULES.all[Q])return!0;return!1}function TK(X){return typeof X.schema!="boolean"}function nw(X,Y){let{schema:Q,gen:Z,opts:W}=X;if(W.$comment&&Q.$comment)IK(X);sw(X),tw(X);let $=Z.const("_errs",a.default.errors);xK(X,$),Z.var(Y,m._`${$} === ${a.default.errors}`)}function MK(X){(0,n1.checkUnknownRules)(X),rw(X)}function xK(X,Y){if(X.opts.jtd)return NK(X,[],!1,Y);let Q=(0,PK.getSchemaTypes)(X.schema),Z=(0,PK.coerceAndCheckDataType)(X,Q);NK(X,Q,!Z,Y)}function rw(X){let{schema:Y,errSchemaPath:Q,opts:Z,self:W}=X;if(Y.$ref&&Z.ignoreKeywordsWithRef&&(0,n1.schemaHasRulesButRef)(Y,W.RULES))W.logger.warn(`$ref: keywords ignored in schema at path "${Q}"`)}function aw(X){let{schema:Y,opts:Q}=X;if(Y.default!==void 0&&Q.useDefaults&&Q.strictSchema)(0,n1.checkStrictMode)(X,"default is ignored in the schema root")}function sw(X){let Y=X.schema[X.opts.schemaId];if(Y)X.baseId=(0,uw.resolveUrl)(X.opts.uriResolver,X.baseId,Y)}function tw(X){if(X.schema.$async&&!X.schemaEnv.$async)throw Error("async schema in sync schema")}function IK({gen:X,schemaEnv:Y,schema:Q,errSchemaPath:Z,opts:W}){let $=Q.$comment;if(W.$comment===!0)X.code(m._`${a.default.self}.logger.log(${$})`);else if(typeof W.$comment=="function"){let J=m.str`${Z}/$comment`,G=X.scopeValue("root",{ref:Y.root});X.code(m._`${a.default.self}.opts.$comment(${$}, ${J}, ${G}.schema)`)}}function ow(X){let{gen:Y,schemaEnv:Q,validateName:Z,ValidationError:W,opts:$}=X;if(Q.$async)Y.if(m._`${a.default.errors} === 0`,()=>Y.return(a.default.data),()=>Y.throw(m._`new ${W}(${a.default.vErrors})`));else{if(Y.assign(m._`${Z}.errors`,a.default.vErrors),$.unevaluated)ew(X);Y.return(m._`${a.default.errors} === 0`)}}function ew({gen:X,evaluated:Y,props:Q,items:Z}){if(Q instanceof m.Name)X.assign(m._`${Y}.props`,Q);if(Z instanceof m.Name)X.assign(m._`${Y}.items`,Z)}function NK(X,Y,Q,Z){let{gen:W,schema:$,data:J,allErrors:G,opts:K,self:B}=X,{RULES:H}=B;if($.$ref&&(K.ignoreKeywordsWithRef||!(0,n1.schemaHasRulesButRef)($,H))){W.block(()=>bK(X,"$ref",H.all.$ref.definition));return}if(!K.jtd)XN(X,Y);W.block(()=>{for(let z of H.rules)V(z);V(H.post)});function V(z){if(!(0,cZ.shouldUseGroup)($,z))return;if(z.type){if(W.if((0,F4.checkDataType)(z.type,J,K.strictNumbers)),AK(X,z),Y.length===1&&Y[0]===z.type&&Q)W.else(),(0,F4.reportTypeError)(X);W.endIf()}else AK(X,z);if(!G)W.if(m._`${a.default.errors} === ${Z||0}`)}}function AK(X,Y){let{gen:Q,schema:Z,opts:{useDefaults:W}}=X;if(W)(0,gw.assignDefaults)(X,Y.type);Q.block(()=>{for(let $ of Y.rules)if((0,cZ.shouldUseRule)(Z,$))bK(X,$.keyword,$.definition,Y.type)})}function XN(X,Y){if(X.schemaEnv.meta||!X.opts.strictTypes)return;if(YN(X,Y),!X.opts.allowUnionTypes)QN(X,Y);ZN(X,X.dataTypes)}function YN(X,Y){if(!Y.length)return;if(!X.dataTypes.length){X.dataTypes=Y;return}Y.forEach((Q)=>{if(!SK(X.dataTypes,Q))pZ(X,`type "${Q}" not allowed by context "${X.dataTypes.join(",")}"`)}),$N(X,Y)}function QN(X,Y){if(Y.length>1&&!(Y.length===2&&Y.includes("null")))pZ(X,"use allowUnionTypes to allow union type keyword")}function ZN(X,Y){let Q=X.self.RULES.all;for(let Z in Q){let W=Q[Z];if(typeof W=="object"&&(0,cZ.shouldUseRule)(X.schema,W)){let{type:$}=W.definition;if($.length&&!$.some((J)=>WN(Y,J)))pZ(X,`missing type "${$.join(",")}" for keyword "${Z}"`)}}}function WN(X,Y){return X.includes(Y)||Y==="number"&&X.includes("integer")}function SK(X,Y){return X.includes(Y)||Y==="integer"&&X.includes("number")}function $N(X,Y){let Q=[];for(let Z of X.dataTypes)if(SK(Y,Z))Q.push(Z);else if(Y.includes("integer")&&Z==="number")Q.push("integer");X.dataTypes=Q}function pZ(X,Y){let Q=X.schemaEnv.baseId+X.errSchemaPath;Y+=` at "${Q}" (strictTypes)`,(0,n1.checkStrictMode)(X,Y,X.opts.strictTypes)}class lZ{constructor(X,Y,Q){if((0,O9.validateKeywordUsage)(X,Y,Q),this.gen=X.gen,this.allErrors=X.allErrors,this.keyword=Q,this.data=X.data,this.schema=X.schema[Q],this.$data=Y.$data&&X.opts.$data&&this.schema&&this.schema.$data,this.schemaValue=(0,n1.schemaRefOrVal)(X,this.schema,Q,this.$data),this.schemaType=Y.schemaType,this.parentSchema=X.schema,this.params={},this.it=X,this.def=Y,this.$data)this.schemaCode=X.gen.const("vSchema",CK(this.$data,X));else if(this.schemaCode=this.schemaValue,!(0,O9.validSchemaType)(this.schema,Y.schemaType,Y.allowUndefined))throw Error(`${Q} value must be ${JSON.stringify(Y.schemaType)}`);if("code"in Y?Y.trackErrors:Y.errors!==!1)this.errsCount=X.gen.const("_errs",a.default.errors)}result(X,Y,Q){this.failResult((0,m.not)(X),Y,Q)}failResult(X,Y,Q){if(this.gen.if(X),Q)Q();else this.error();if(Y){if(this.gen.else(),Y(),this.allErrors)this.gen.endIf()}else if(this.allErrors)this.gen.endIf();else this.gen.else()}pass(X,Y){this.failResult((0,m.not)(X),void 0,Y)}fail(X){if(X===void 0){if(this.error(),!this.allErrors)this.gen.if(!1);return}if(this.gen.if(X),this.error(),this.allErrors)this.gen.endIf();else this.gen.else()}fail$data(X){if(!this.$data)return this.fail(X);let{schemaCode:Y}=this;this.fail(m._`${Y} !== undefined && (${(0,m.or)(this.invalid$data(),X)})`)}error(X,Y,Q){if(Y){this.setParams(Y),this._error(X,Q),this.setParams({});return}this._error(X,Q)}_error(X,Y){(X?q9.reportExtraError:q9.reportError)(this,this.def.error,Y)}$dataError(){(0,q9.reportError)(this,this.def.$dataError||q9.keyword$DataError)}reset(){if(this.errsCount===void 0)throw Error('add "trackErrors" to keyword definition');(0,q9.resetErrorsCount)(this.gen,this.errsCount)}ok(X){if(!this.allErrors)this.gen.if(X)}setParams(X,Y){if(Y)Object.assign(this.params,X);else this.params=X}block$data(X,Y,Q=m.nil){this.gen.block(()=>{this.check$data(X,Q),Y()})}check$data(X=m.nil,Y=m.nil){if(!this.$data)return;let{gen:Q,schemaCode:Z,schemaType:W,def:$}=this;if(Q.if((0,m.or)(m._`${Z} === undefined`,Y)),X!==m.nil)Q.assign(X,!0);if(W.length||$.validateSchema){if(Q.elseIf(this.invalid$data()),this.$dataError(),X!==m.nil)Q.assign(X,!1)}Q.else()}invalid$data(){let{gen:X,schemaCode:Y,schemaType:Q,def:Z,it:W}=this;return(0,m.or)($(),J());function $(){if(Q.length){if(!(Y instanceof m.Name))throw Error("ajv implementation error");let G=Array.isArray(Q)?Q:[Q];return m._`${(0,F4.checkDataTypes)(G,Y,W.opts.strictNumbers,F4.DataType.Wrong)}`}return m.nil}function J(){if(Z.validateSchema){let G=X.scopeValue("validate$data",{ref:Z.validateSchema});return m._`!${G}(${Y})`}return m.nil}}subschema(X,Y){let Q=(0,dZ.getSubschema)(this.it,X);(0,dZ.extendSubschemaData)(Q,this.it,X),(0,dZ.extendSubschemaMode)(Q,X);let Z={...this.it,...Q,items:void 0,props:void 0};return iw(Z,Y),Z}mergeEvaluated(X,Y){let{it:Q,gen:Z}=this;if(!Q.opts.unevaluated)return;if(Q.props!==!0&&X.props!==void 0)Q.props=n1.mergeEvaluated.props(Z,X.props,Q.props,Y);if(Q.items!==!0&&X.items!==void 0)Q.items=n1.mergeEvaluated.items(Z,X.items,Q.items,Y)}mergeValidEvaluated(X,Y){let{it:Q,gen:Z}=this;if(Q.opts.unevaluated&&(Q.props!==!0||Q.items!==!0))return Z.if(Y,()=>this.mergeEvaluated(X,m.Name)),!0}}yK.KeywordCxt=lZ;function bK(X,Y,Q,Z){let W=new lZ(X,Q,Y);if("code"in Q)Q.code(W,Z);else if(W.$data&&Q.validate)(0,O9.funcKeywordCode)(W,Q);else if("macro"in Q)(0,O9.macroKeywordCode)(W,Q);else if(Q.compile||Q.validate)(0,O9.funcKeywordCode)(W,Q)}var JN=/^\/(?:[^~]|~0|~1)*$/,GN=/^([0-9]+)(#|\/(?:[^~]|~0|~1)*)?$/;function CK(X,{dataLevel:Y,dataNames:Q,dataPathArr:Z}){let W,$;if(X==="")return a.default.rootData;if(X[0]==="/"){if(!JN.test(X))throw Error(`Invalid JSON-pointer: ${X}`);W=X,$=a.default.rootData}else{let B=GN.exec(X);if(!B)throw Error(`Invalid JSON-pointer: ${X}`);let H=+B[1];if(W=B[2],W==="#"){if(H>=Y)throw Error(K("property/index",H));return Z[Y-H]}if(H>Y)throw Error(K("data",H));if($=Q[Y-H],!W)return $}let J=$,G=W.split("/");for(let B of G)if(B)$=m._`${$}${(0,m.getProperty)((0,n1.unescapeJsonPointer)(B))}`,J=m._`${J} && ${$}`;return J;function K(B,H){return`Cannot access ${B} ${H} levels up, current level is ${Y}`}}yK.getData=CK});var U4=v((vK)=>{Object.defineProperty(vK,"__esModule",{value:!0});class _K extends Error{constructor(X){super("validation failed");this.errors=X,this.ajv=this.validation=!0}}vK.default=_K});var P9=v((hK)=>{Object.defineProperty(hK,"__esModule",{value:!0});var iZ=L9();class fK extends Error{constructor(X,Y,Q,Z){super(Z||`can't resolve reference ${Q} from id ${Y}`);this.missingRef=(0,iZ.resolveUrl)(X,Y,Q),this.missingSchema=(0,iZ.normalizeId)((0,iZ.getFullPath)(X,this.missingRef))}}hK.default=fK});var q4=v((mK)=>{Object.defineProperty(mK,"__esModule",{value:!0});mK.resolveSchema=mK.getCompilingSchema=mK.resolveRef=mK.compileSchema=mK.SchemaEnv=void 0;var P1=e(),zN=U4(),X8=i1(),w1=L9(),gK=W0(),FN=D9();class w9{constructor(X){var Y;this.refs={},this.dynamicAnchors={};let Q;if(typeof X.schema=="object")Q=X.schema;this.schema=X.schema,this.schemaId=X.schemaId,this.root=X.root||this,this.baseId=(Y=X.baseId)!==null&&Y!==void 0?Y:(0,w1.normalizeId)(Q===null||Q===void 0?void 0:Q[X.schemaId||"$id"]),this.schemaPath=X.schemaPath,this.localRefs=X.localRefs,this.meta=X.meta,this.$async=Q===null||Q===void 0?void 0:Q.$async,this.refs={}}}mK.SchemaEnv=w9;function rZ(X){let Y=uK.call(this,X);if(Y)return Y;let Q=(0,w1.getFullPath)(this.opts.uriResolver,X.root.baseId),{es5:Z,lines:W}=this.opts.code,{ownProperties:$}=this.opts,J=new P1.CodeGen(this.scope,{es5:Z,lines:W,ownProperties:$}),G;if(X.$async)G=J.scopeValue("Error",{ref:zN.default,code:P1._`require("ajv/dist/runtime/validation_error").default`});let K=J.scopeName("validate");X.validateName=K;let B={gen:J,allErrors:this.opts.allErrors,data:X8.default.data,parentData:X8.default.parentData,parentDataProperty:X8.default.parentDataProperty,dataNames:[X8.default.data],dataPathArr:[P1.nil],dataLevel:0,dataTypes:[],definedProperties:new Set,topSchemaRef:J.scopeValue("schema",this.opts.code.source===!0?{ref:X.schema,code:(0,P1.stringify)(X.schema)}:{ref:X.schema}),validateName:K,ValidationError:G,schema:X.schema,schemaEnv:X,rootId:Q,baseId:X.baseId||Q,schemaPath:P1.nil,errSchemaPath:X.schemaPath||(this.opts.jtd?"":"#"),errorPath:P1._`""`,opts:this.opts,self:this},H;try{this._compilations.add(X),(0,FN.validateFunctionCode)(B),J.optimize(this.opts.code.optimize);let V=J.toString();if(H=`${J.scopeRefs(X8.default.scope)}return ${V}`,this.opts.code.process)H=this.opts.code.process(H,X);let F=Function(`${X8.default.self}`,`${X8.default.scope}`,H)(this,this.scope.get());if(this.scope.value(K,{ref:F}),F.errors=null,F.schema=X.schema,F.schemaEnv=X,X.$async)F.$async=!0;if(this.opts.code.source===!0)F.source={validateName:K,validateCode:V,scopeValues:J._values};if(this.opts.unevaluated){let{props:L,items:q}=B;if(F.evaluated={props:L instanceof P1.Name?void 0:L,items:q instanceof P1.Name?void 0:q,dynamicProps:L instanceof P1.Name,dynamicItems:q instanceof P1.Name},F.source)F.source.evaluated=(0,P1.stringify)(F.evaluated)}return X.validate=F,X}catch(V){if(delete X.validate,delete X.validateName,H)this.logger.error("Error compiling schema, function code:",H);throw V}finally{this._compilations.delete(X)}}mK.compileSchema=rZ;function UN(X,Y,Q){var Z;Q=(0,w1.resolveUrl)(this.opts.uriResolver,Y,Q);let W=X.refs[Q];if(W)return W;let $=ON.call(this,X,Q);if($===void 0){let J=(Z=X.localRefs)===null||Z===void 0?void 0:Z[Q],{schemaId:G}=this.opts;if(J)$=new w9({schema:J,schemaId:G,root:X,baseId:Y})}if($===void 0)return;return X.refs[Q]=LN.call(this,$)}mK.resolveRef=UN;function LN(X){if((0,w1.inlineRef)(X.schema,this.opts.inlineRefs))return X.schema;return X.validate?X:rZ.call(this,X)}function uK(X){for(let Y of this._compilations)if(qN(Y,X))return Y}mK.getCompilingSchema=uK;function qN(X,Y){return X.schema===Y.schema&&X.root===Y.root&&X.baseId===Y.baseId}function ON(X,Y){let Q;while(typeof(Q=this.refs[Y])=="string")Y=Q;return Q||this.schemas[Y]||L4.call(this,X,Y)}function L4(X,Y){let Q=this.opts.uriResolver.parse(Y),Z=(0,w1._getFullPath)(this.opts.uriResolver,Q),W=(0,w1.getFullPath)(this.opts.uriResolver,X.baseId,void 0);if(Object.keys(X.schema).length>0&&Z===W)return nZ.call(this,Q,X);let $=(0,w1.normalizeId)(Z),J=this.refs[$]||this.schemas[$];if(typeof J=="string"){let G=L4.call(this,X,J);if(typeof(G===null||G===void 0?void 0:G.schema)!=="object")return;return nZ.call(this,Q,G)}if(typeof(J===null||J===void 0?void 0:J.schema)!=="object")return;if(!J.validate)rZ.call(this,J);if($===(0,w1.normalizeId)(Y)){let{schema:G}=J,{schemaId:K}=this.opts,B=G[K];if(B)W=(0,w1.resolveUrl)(this.opts.uriResolver,W,B);return new w9({schema:G,schemaId:K,root:X,baseId:W})}return nZ.call(this,Q,J)}mK.resolveSchema=L4;var DN=new Set(["properties","patternProperties","enum","dependencies","definitions"]);function nZ(X,{baseId:Y,schema:Q,root:Z}){var W;if(((W=X.fragment)===null||W===void 0?void 0:W[0])!=="/")return;for(let G of X.fragment.slice(1).split("/")){if(typeof Q==="boolean")return;let K=Q[(0,gK.unescapeFragment)(G)];if(K===void 0)return;Q=K;let B=typeof Q==="object"&&Q[this.opts.schemaId];if(!DN.has(G)&&B)Y=(0,w1.resolveUrl)(this.opts.uriResolver,Y,B)}let $;if(typeof Q!="boolean"&&Q.$ref&&!(0,gK.schemaHasRulesButRef)(Q,this.RULES)){let G=(0,w1.resolveUrl)(this.opts.uriResolver,Y,Q.$ref);$=L4.call(this,Z,G)}let{schemaId:J}=this.opts;if($=$||new w9({schema:Q,schemaId:J,root:Z,baseId:Y}),$.schema!==$.root.schema)return $;return}});var cK=v((Av,jN)=>{jN.exports={$id:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#",description:"Meta-schema for $data reference (JSON AnySchema extension proposal)",type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:!1}});var sZ=v((jv,nK)=>{var EN=RegExp.prototype.test.bind(/^[\da-f]{8}-[\da-f]{4}-[\da-f]{4}-[\da-f]{4}-[\da-f]{12}$/iu),lK=RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);function aZ(X){let Y="",Q=0,Z=0;for(Z=0;Z<X.length;Z++){if(Q=X[Z].charCodeAt(0),Q===48)continue;if(!(Q>=48&&Q<=57||Q>=65&&Q<=70||Q>=97&&Q<=102))return"";Y+=X[Z];break}for(Z+=1;Z<X.length;Z++){if(Q=X[Z].charCodeAt(0),!(Q>=48&&Q<=57||Q>=65&&Q<=70||Q>=97&&Q<=102))return"";Y+=X[Z]}return Y}var RN=RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);function pK(X){return X.length=0,!0}function TN(X,Y,Q){if(X.length){let Z=aZ(X);if(Z!=="")Y.push(Z);else return Q.error=!0,!1;X.length=0}return!0}function MN(X){let Y=0,Q={error:!1,address:"",zone:""},Z=[],W=[],$=!1,J=!1,G=TN;for(let K=0;K<X.length;K++){let B=X[K];if(B==="["||B==="]")continue;if(B===":"){if($===!0)J=!0;if(!G(W,Z,Q))break;if(++Y>7){Q.error=!0;break}if(K>0&&X[K-1]===":")$=!0;Z.push(":");continue}else if(B==="%"){if(!G(W,Z,Q))break;G=pK}else{W.push(B);continue}}if(W.length)if(G===pK)Q.zone=W.join("");else if(J)Z.push(W.join(""));else Z.push(aZ(W));return Q.address=Z.join(""),Q}function iK(X){if(xN(X,":")<2)return{host:X,isIPV6:!1};let Y=MN(X);if(!Y.error){let{address:Q,address:Z}=Y;if(Y.zone)Q+="%"+Y.zone,Z+="%25"+Y.zone;return{host:Q,isIPV6:!0,escapedHost:Z}}else return{host:X,isIPV6:!1}}function xN(X,Y){let Q=0;for(let Z=0;Z<X.length;Z++)if(X[Z]===Y)Q++;return Q}function IN(X){let Y=X,Q=[],Z=-1,W=0;while(W=Y.length){if(W===1)if(Y===".")break;else if(Y==="/"){Q.push("/");break}else{Q.push(Y);break}else if(W===2){if(Y[0]==="."){if(Y[1]===".")break;else if(Y[1]==="/"){Y=Y.slice(2);continue}}else if(Y[0]==="/"){if(Y[1]==="."||Y[1]==="/"){Q.push("/");break}}}else if(W===3){if(Y==="/.."){if(Q.length!==0)Q.pop();Q.push("/");break}}if(Y[0]==="."){if(Y[1]==="."){if(Y[2]==="/"){Y=Y.slice(3);continue}}else if(Y[1]==="/"){Y=Y.slice(2);continue}}else if(Y[0]==="/"){if(Y[1]==="."){if(Y[2]==="/"){Y=Y.slice(2);continue}else if(Y[2]==="."){if(Y[3]==="/"){if(Y=Y.slice(3),Q.length!==0)Q.pop();continue}}}}if((Z=Y.indexOf("/",1))===-1){Q.push(Y);break}else Q.push(Y.slice(0,Z)),Y=Y.slice(Z)}return Q.join("")}function SN(X,Y){let Q=Y!==!0?escape:unescape;if(X.scheme!==void 0)X.scheme=Q(X.scheme);if(X.userinfo!==void 0)X.userinfo=Q(X.userinfo);if(X.host!==void 0)X.host=Q(X.host);if(X.path!==void 0)X.path=Q(X.path);if(X.query!==void 0)X.query=Q(X.query);if(X.fragment!==void 0)X.fragment=Q(X.fragment);return X}function bN(X){let Y=[];if(X.userinfo!==void 0)Y.push(X.userinfo),Y.push("@");if(X.host!==void 0){let Q=unescape(X.host);if(!lK(Q)){let Z=iK(Q);if(Z.isIPV6===!0)Q=`[${Z.escapedHost}]`;else Q=X.host}Y.push(Q)}if(typeof X.port==="number"||typeof X.port==="string")Y.push(":"),Y.push(String(X.port));return Y.length?Y.join(""):void 0}nK.exports={nonSimpleDomain:RN,recomposeAuthority:bN,normalizeComponentEncoding:SN,removeDotSegments:IN,isIPv4:lK,isUUID:EN,normalizeIPv6:iK,stringArrayToHexStripped:aZ}});var oK=v((Ev,tK)=>{var{isUUID:CN}=sZ(),yN=/([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-.:;=@]|%[\da-f]{2})+)/iu,kN=["http","https","ws","wss","urn","urn:uuid"];function _N(X){return kN.indexOf(X)!==-1}function tZ(X){if(X.secure===!0)return!0;else if(X.secure===!1)return!1;else if(X.scheme)return X.scheme.length===3&&(X.scheme[0]==="w"||X.scheme[0]==="W")&&(X.scheme[1]==="s"||X.scheme[1]==="S")&&(X.scheme[2]==="s"||X.scheme[2]==="S");else return!1}function rK(X){if(!X.host)X.error=X.error||"HTTP URIs must have a host.";return X}function aK(X){let Y=String(X.scheme).toLowerCase()==="https";if(X.port===(Y?443:80)||X.port==="")X.port=void 0;if(!X.path)X.path="/";return X}function vN(X){return X.secure=tZ(X),X.resourceName=(X.path||"/")+(X.query?"?"+X.query:""),X.path=void 0,X.query=void 0,X}function fN(X){if(X.port===(tZ(X)?443:80)||X.port==="")X.port=void 0;if(typeof X.secure==="boolean")X.scheme=X.secure?"wss":"ws",X.secure=void 0;if(X.resourceName){let[Y,Q]=X.resourceName.split("?");X.path=Y&&Y!=="/"?Y:void 0,X.query=Q,X.resourceName=void 0}return X.fragment=void 0,X}function hN(X,Y){if(!X.path)return X.error="URN can not be parsed",X;let Q=X.path.match(yN);if(Q){let Z=Y.scheme||X.scheme||"urn";X.nid=Q[1].toLowerCase(),X.nss=Q[2];let W=`${Z}:${Y.nid||X.nid}`,$=oZ(W);if(X.path=void 0,$)X=$.parse(X,Y)}else X.error=X.error||"URN can not be parsed.";return X}function gN(X,Y){if(X.nid===void 0)throw Error("URN without nid cannot be serialized");let Q=Y.scheme||X.scheme||"urn",Z=X.nid.toLowerCase(),W=`${Q}:${Y.nid||Z}`,$=oZ(W);if($)X=$.serialize(X,Y);let J=X,G=X.nss;return J.path=`${Z||Y.nid}:${G}`,Y.skipEscape=!0,J}function uN(X,Y){let Q=X;if(Q.uuid=Q.nss,Q.nss=void 0,!Y.tolerant&&(!Q.uuid||!CN(Q.uuid)))Q.error=Q.error||"UUID is not valid.";return Q}function mN(X){let Y=X;return Y.nss=(X.uuid||"").toLowerCase(),Y}var sK={scheme:"http",domainHost:!0,parse:rK,serialize:aK},dN={scheme:"https",domainHost:sK.domainHost,parse:rK,serialize:aK},O4={scheme:"ws",domainHost:!0,parse:vN,serialize:fN},cN={scheme:"wss",domainHost:O4.domainHost,parse:O4.parse,serialize:O4.serialize},pN={scheme:"urn",parse:hN,serialize:gN,skipNormalize:!0},lN={scheme:"urn:uuid",parse:uN,serialize:mN,skipNormalize:!0},D4={http:sK,https:dN,ws:O4,wss:cN,urn:pN,"urn:uuid":lN};Object.setPrototypeOf(D4,null);function oZ(X){return X&&(D4[X]||D4[X.toLowerCase()])||void 0}tK.exports={wsIsSecure:tZ,SCHEMES:D4,isValidSchemeName:_N,getSchemeHandler:oZ}});var YB=v((Rv,w4)=>{var{normalizeIPv6:iN,removeDotSegments:N9,recomposeAuthority:nN,normalizeComponentEncoding:P4,isIPv4:rN,nonSimpleDomain:aN}=sZ(),{SCHEMES:sN,getSchemeHandler:eK}=oK();function tN(X,Y){if(typeof X==="string")X=y1(r1(X,Y),Y);else if(typeof X==="object")X=r1(y1(X,Y),Y);return X}function oN(X,Y,Q){let Z=Q?Object.assign({scheme:"null"},Q):{scheme:"null"},W=XB(r1(X,Z),r1(Y,Z),Z,!0);return Z.skipEscape=!0,y1(W,Z)}function XB(X,Y,Q,Z){let W={};if(!Z)X=r1(y1(X,Q),Q),Y=r1(y1(Y,Q),Q);if(Q=Q||{},!Q.tolerant&&Y.scheme)W.scheme=Y.scheme,W.userinfo=Y.userinfo,W.host=Y.host,W.port=Y.port,W.path=N9(Y.path||""),W.query=Y.query;else{if(Y.userinfo!==void 0||Y.host!==void 0||Y.port!==void 0)W.userinfo=Y.userinfo,W.host=Y.host,W.port=Y.port,W.path=N9(Y.path||""),W.query=Y.query;else{if(!Y.path)if(W.path=X.path,Y.query!==void 0)W.query=Y.query;else W.query=X.query;else{if(Y.path[0]==="/")W.path=N9(Y.path);else{if((X.userinfo!==void 0||X.host!==void 0||X.port!==void 0)&&!X.path)W.path="/"+Y.path;else if(!X.path)W.path=Y.path;else W.path=X.path.slice(0,X.path.lastIndexOf("/")+1)+Y.path;W.path=N9(W.path)}W.query=Y.query}W.userinfo=X.userinfo,W.host=X.host,W.port=X.port}W.scheme=X.scheme}return W.fragment=Y.fragment,W}function eN(X,Y,Q){if(typeof X==="string")X=unescape(X),X=y1(P4(r1(X,Q),!0),{...Q,skipEscape:!0});else if(typeof X==="object")X=y1(P4(X,!0),{...Q,skipEscape:!0});if(typeof Y==="string")Y=unescape(Y),Y=y1(P4(r1(Y,Q),!0),{...Q,skipEscape:!0});else if(typeof Y==="object")Y=y1(P4(Y,!0),{...Q,skipEscape:!0});return X.toLowerCase()===Y.toLowerCase()}function y1(X,Y){let Q={host:X.host,scheme:X.scheme,userinfo:X.userinfo,port:X.port,path:X.path,query:X.query,nid:X.nid,nss:X.nss,uuid:X.uuid,fragment:X.fragment,reference:X.reference,resourceName:X.resourceName,secure:X.secure,error:""},Z=Object.assign({},Y),W=[],$=eK(Z.scheme||Q.scheme);if($&&$.serialize)$.serialize(Q,Z);if(Q.path!==void 0)if(!Z.skipEscape){if(Q.path=escape(Q.path),Q.scheme!==void 0)Q.path=Q.path.split("%3A").join(":")}else Q.path=unescape(Q.path);if(Z.reference!=="suffix"&&Q.scheme)W.push(Q.scheme,":");let J=nN(Q);if(J!==void 0){if(Z.reference!=="suffix")W.push("//");if(W.push(J),Q.path&&Q.path[0]!=="/")W.push("/")}if(Q.path!==void 0){let G=Q.path;if(!Z.absolutePath&&(!$||!$.absolutePath))G=N9(G);if(J===void 0&&G[0]==="/"&&G[1]==="/")G="/%2F"+G.slice(2);W.push(G)}if(Q.query!==void 0)W.push("?",Q.query);if(Q.fragment!==void 0)W.push("#",Q.fragment);return W.join("")}var XA=/^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;function r1(X,Y){let Q=Object.assign({},Y),Z={scheme:void 0,userinfo:void 0,host:"",port:void 0,path:"",query:void 0,fragment:void 0},W=!1;if(Q.reference==="suffix")if(Q.scheme)X=Q.scheme+":"+X;else X="//"+X;let $=X.match(XA);if($){if(Z.scheme=$[1],Z.userinfo=$[3],Z.host=$[4],Z.port=parseInt($[5],10),Z.path=$[6]||"",Z.query=$[7],Z.fragment=$[8],isNaN(Z.port))Z.port=$[5];if(Z.host)if(rN(Z.host)===!1){let K=iN(Z.host);Z.host=K.host.toLowerCase(),W=K.isIPV6}else W=!0;if(Z.scheme===void 0&&Z.userinfo===void 0&&Z.host===void 0&&Z.port===void 0&&Z.query===void 0&&!Z.path)Z.reference="same-document";else if(Z.scheme===void 0)Z.reference="relative";else if(Z.fragment===void 0)Z.reference="absolute";else Z.reference="uri";if(Q.reference&&Q.reference!=="suffix"&&Q.reference!==Z.reference)Z.error=Z.error||"URI is not a "+Q.reference+" reference.";let J=eK(Q.scheme||Z.scheme);if(!Q.unicodeSupport&&(!J||!J.unicodeSupport)){if(Z.host&&(Q.domainHost||J&&J.domainHost)&&W===!1&&aN(Z.host))try{Z.host=URL.domainToASCII(Z.host.toLowerCase())}catch(G){Z.error=Z.error||"Host's domain name can not be converted to ASCII: "+G}}if(!J||J&&!J.skipNormalize){if(X.indexOf("%")!==-1){if(Z.scheme!==void 0)Z.scheme=unescape(Z.scheme);if(Z.host!==void 0)Z.host=unescape(Z.host)}if(Z.path)Z.path=escape(unescape(Z.path));if(Z.fragment)Z.fragment=encodeURI(decodeURIComponent(Z.fragment))}if(J&&J.parse)J.parse(Z,Q)}else Z.error=Z.error||"URI can not be parsed.";return Z}var eZ={SCHEMES:sN,normalize:tN,resolve:oN,resolveComponent:XB,equal:eN,serialize:y1,parse:r1};w4.exports=eZ;w4.exports.default=eZ;w4.exports.fastUri=eZ});var WB=v((ZB)=>{Object.defineProperty(ZB,"__esModule",{value:!0});var QB=YB();QB.code='require("ajv/dist/runtime/uri").default';ZB.default=QB});var zB=v((a1)=>{Object.defineProperty(a1,"__esModule",{value:!0});a1.CodeGen=a1.Name=a1.nil=a1.stringify=a1.str=a1._=a1.KeywordCxt=void 0;var QA=D9();Object.defineProperty(a1,"KeywordCxt",{enumerable:!0,get:function(){return QA.KeywordCxt}});var ZX=e();Object.defineProperty(a1,"_",{enumerable:!0,get:function(){return ZX._}});Object.defineProperty(a1,"str",{enumerable:!0,get:function(){return ZX.str}});Object.defineProperty(a1,"stringify",{enumerable:!0,get:function(){return ZX.stringify}});Object.defineProperty(a1,"nil",{enumerable:!0,get:function(){return ZX.nil}});Object.defineProperty(a1,"Name",{enumerable:!0,get:function(){return ZX.Name}});Object.defineProperty(a1,"CodeGen",{enumerable:!0,get:function(){return ZX.CodeGen}});var ZA=U4(),BB=P9(),WA=CZ(),A9=q4(),$A=e(),j9=L9(),N4=U9(),Y3=W0(),$B=cK(),JA=WB(),HB=(X,Y)=>new RegExp(X,Y);HB.code="new RegExp";var GA=["removeAdditional","useDefaults","coerceTypes"],KA=new Set(["validate","serialize","parse","wrapper","root","schema","keyword","pattern","formats","validate$data","func","obj","Error"]),BA={errorDataPath:"",format:"`validateFormats: false` can be used instead.",nullable:'"nullable" keyword is supported by default.',jsonPointers:"Deprecated jsPropertySyntax can be used instead.",extendRefs:"Deprecated ignoreKeywordsWithRef can be used instead.",missingRefs:"Pass empty schema with $id that should be ignored to ajv.addSchema.",processCode:"Use option `code: {process: (code, schemaEnv: object) => string}`",sourceCode:"Use option `code: {source: true}`",strictDefaults:"It is default now, see option `strict`.",strictKeywords:"It is default now, see option `strict`.",uniqueItems:'"uniqueItems" keyword is always validated.',unknownFormats:"Disable strict mode or pass `true` to `ajv.addFormat` (or `formats` option).",cache:"Map is used as cache, schema object as key.",serialize:"Map is used as cache, schema object as key.",ajvErrors:"It is default now."},HA={ignoreKeywordsWithRef:"",jsPropertySyntax:"",unicode:'"minLength"/"maxLength" account for unicode characters by default.'},JB=200;function VA(X){var Y,Q,Z,W,$,J,G,K,B,H,V,z,F,L,q,w,O,R,P,D,E,I,S,x,C;let h=X.strict,n=(Y=X.code)===null||Y===void 0?void 0:Y.optimize,m0=n===!0||n===void 0?1:n||0,J6=(Z=(Q=X.code)===null||Q===void 0?void 0:Q.regExp)!==null&&Z!==void 0?Z:HB,TQ=(W=X.uriResolver)!==null&&W!==void 0?W:JA.default;return{strictSchema:(J=($=X.strictSchema)!==null&&$!==void 0?$:h)!==null&&J!==void 0?J:!0,strictNumbers:(K=(G=X.strictNumbers)!==null&&G!==void 0?G:h)!==null&&K!==void 0?K:!0,strictTypes:(H=(B=X.strictTypes)!==null&&B!==void 0?B:h)!==null&&H!==void 0?H:"log",strictTuples:(z=(V=X.strictTuples)!==null&&V!==void 0?V:h)!==null&&z!==void 0?z:"log",strictRequired:(L=(F=X.strictRequired)!==null&&F!==void 0?F:h)!==null&&L!==void 0?L:!1,code:X.code?{...X.code,optimize:m0,regExp:J6}:{optimize:m0,regExp:J6},loopRequired:(q=X.loopRequired)!==null&&q!==void 0?q:JB,loopEnum:(w=X.loopEnum)!==null&&w!==void 0?w:JB,meta:(O=X.meta)!==null&&O!==void 0?O:!0,messages:(R=X.messages)!==null&&R!==void 0?R:!0,inlineRefs:(P=X.inlineRefs)!==null&&P!==void 0?P:!0,schemaId:(D=X.schemaId)!==null&&D!==void 0?D:"$id",addUsedSchema:(E=X.addUsedSchema)!==null&&E!==void 0?E:!0,validateSchema:(I=X.validateSchema)!==null&&I!==void 0?I:!0,validateFormats:(S=X.validateFormats)!==null&&S!==void 0?S:!0,unicodeRegExp:(x=X.unicodeRegExp)!==null&&x!==void 0?x:!0,int32range:(C=X.int32range)!==null&&C!==void 0?C:!0,uriResolver:TQ}}class A4{constructor(X={}){this.schemas={},this.refs={},this.formats={},this._compilations=new Set,this._loading={},this._cache=new Map,X=this.opts={...X,...VA(X)};let{es5:Y,lines:Q}=this.opts.code;this.scope=new $A.ValueScope({scope:{},prefixes:KA,es5:Y,lines:Q}),this.logger=OA(X.logger);let Z=X.validateFormats;if(X.validateFormats=!1,this.RULES=(0,WA.getRules)(),GB.call(this,BA,X,"NOT SUPPORTED"),GB.call(this,HA,X,"DEPRECATED","warn"),this._metaOpts=LA.call(this),X.formats)FA.call(this);if(this._addVocabularies(),this._addDefaultMetaSchema(),X.keywords)UA.call(this,X.keywords);if(typeof X.meta=="object")this.addMetaSchema(X.meta);zA.call(this),X.validateFormats=Z}_addVocabularies(){this.addKeyword("$async")}_addDefaultMetaSchema(){let{$data:X,meta:Y,schemaId:Q}=this.opts,Z=$B;if(Q==="id")Z={...$B},Z.id=Z.$id,delete Z.$id;if(Y&&X)this.addMetaSchema(Z,Z[Q],!1)}defaultMeta(){let{meta:X,schemaId:Y}=this.opts;return this.opts.defaultMeta=typeof X=="object"?X[Y]||X:void 0}validate(X,Y){let Q;if(typeof X=="string"){if(Q=this.getSchema(X),!Q)throw Error(`no schema with key or ref "${X}"`)}else Q=this.compile(X);let Z=Q(Y);if(!("$async"in Q))this.errors=Q.errors;return Z}compile(X,Y){let Q=this._addSchema(X,Y);return Q.validate||this._compileSchemaEnv(Q)}compileAsync(X,Y){if(typeof this.opts.loadSchema!="function")throw Error("options.loadSchema should be a function");let{loadSchema:Q}=this.opts;return Z.call(this,X,Y);async function Z(B,H){await W.call(this,B.$schema);let V=this._addSchema(B,H);return V.validate||$.call(this,V)}async function W(B){if(B&&!this.getSchema(B))await Z.call(this,{$ref:B},!0)}async function $(B){try{return this._compileSchemaEnv(B)}catch(H){if(!(H instanceof BB.default))throw H;return J.call(this,H),await G.call(this,H.missingSchema),$.call(this,B)}}function J({missingSchema:B,missingRef:H}){if(this.refs[B])throw Error(`AnySchema ${B} is loaded but ${H} cannot be resolved`)}async function G(B){let H=await K.call(this,B);if(!this.refs[B])await W.call(this,H.$schema);if(!this.refs[B])this.addSchema(H,B,Y)}async function K(B){let H=this._loading[B];if(H)return H;try{return await(this._loading[B]=Q(B))}finally{delete this._loading[B]}}}addSchema(X,Y,Q,Z=this.opts.validateSchema){if(Array.isArray(X)){for(let $ of X)this.addSchema($,void 0,Q,Z);return this}let W;if(typeof X==="object"){let{schemaId:$}=this.opts;if(W=X[$],W!==void 0&&typeof W!="string")throw Error(`schema ${$} must be string`)}return Y=(0,j9.normalizeId)(Y||W),this._checkUnique(Y),this.schemas[Y]=this._addSchema(X,Q,Y,Z,!0),this}addMetaSchema(X,Y,Q=this.opts.validateSchema){return this.addSchema(X,Y,!0,Q),this}validateSchema(X,Y){if(typeof X=="boolean")return!0;let Q;if(Q=X.$schema,Q!==void 0&&typeof Q!="string")throw Error("$schema must be a string");if(Q=Q||this.opts.defaultMeta||this.defaultMeta(),!Q)return this.logger.warn("meta-schema not available"),this.errors=null,!0;let Z=this.validate(Q,X);if(!Z&&Y){let W="schema is invalid: "+this.errorsText();if(this.opts.validateSchema==="log")this.logger.error(W);else throw Error(W)}return Z}getSchema(X){let Y;while(typeof(Y=KB.call(this,X))=="string")X=Y;if(Y===void 0){let{schemaId:Q}=this.opts,Z=new A9.SchemaEnv({schema:{},schemaId:Q});if(Y=A9.resolveSchema.call(this,Z,X),!Y)return;this.refs[X]=Y}return Y.validate||this._compileSchemaEnv(Y)}removeSchema(X){if(X instanceof RegExp)return this._removeAllSchemas(this.schemas,X),this._removeAllSchemas(this.refs,X),this;switch(typeof X){case"undefined":return this._removeAllSchemas(this.schemas),this._removeAllSchemas(this.refs),this._cache.clear(),this;case"string":{let Y=KB.call(this,X);if(typeof Y=="object")this._cache.delete(Y.schema);return delete this.schemas[X],delete this.refs[X],this}case"object":{let Y=X;this._cache.delete(Y);let Q=X[this.opts.schemaId];if(Q)Q=(0,j9.normalizeId)(Q),delete this.schemas[Q],delete this.refs[Q];return this}default:throw Error("ajv.removeSchema: invalid parameter")}}addVocabulary(X){for(let Y of X)this.addKeyword(Y);return this}addKeyword(X,Y){let Q;if(typeof X=="string"){if(Q=X,typeof Y=="object")this.logger.warn("these parameters are deprecated, see docs for addKeyword"),Y.keyword=Q}else if(typeof X=="object"&&Y===void 0){if(Y=X,Q=Y.keyword,Array.isArray(Q)&&!Q.length)throw Error("addKeywords: keyword must be string or non-empty array")}else throw Error("invalid addKeywords parameters");if(PA.call(this,Q,Y),!Y)return(0,Y3.eachItem)(Q,(W)=>X3.call(this,W)),this;NA.call(this,Y);let Z={...Y,type:(0,N4.getJSONTypes)(Y.type),schemaType:(0,N4.getJSONTypes)(Y.schemaType)};return(0,Y3.eachItem)(Q,Z.type.length===0?(W)=>X3.call(this,W,Z):(W)=>Z.type.forEach(($)=>X3.call(this,W,Z,$))),this}getKeyword(X){let Y=this.RULES.all[X];return typeof Y=="object"?Y.definition:!!Y}removeKeyword(X){let{RULES:Y}=this;delete Y.keywords[X],delete Y.all[X];for(let Q of Y.rules){let Z=Q.rules.findIndex((W)=>W.keyword===X);if(Z>=0)Q.rules.splice(Z,1)}return this}addFormat(X,Y){if(typeof Y=="string")Y=new RegExp(Y);return this.formats[X]=Y,this}errorsText(X=this.errors,{separator:Y=", ",dataVar:Q="data"}={}){if(!X||X.length===0)return"No errors";return X.map((Z)=>`${Q}${Z.instancePath} ${Z.message}`).reduce((Z,W)=>Z+Y+W)}$dataMetaSchema(X,Y){let Q=this.RULES.all;X=JSON.parse(JSON.stringify(X));for(let Z of Y){let W=Z.split("/").slice(1),$=X;for(let J of W)$=$[J];for(let J in Q){let G=Q[J];if(typeof G!="object")continue;let{$data:K}=G.definition,B=$[J];if(K&&B)$[J]=VB(B)}}return X}_removeAllSchemas(X,Y){for(let Q in X){let Z=X[Q];if(!Y||Y.test(Q)){if(typeof Z=="string")delete X[Q];else if(Z&&!Z.meta)this._cache.delete(Z.schema),delete X[Q]}}}_addSchema(X,Y,Q,Z=this.opts.validateSchema,W=this.opts.addUsedSchema){let $,{schemaId:J}=this.opts;if(typeof X=="object")$=X[J];else if(this.opts.jtd)throw Error("schema must be object");else if(typeof X!="boolean")throw Error("schema must be object or boolean");let G=this._cache.get(X);if(G!==void 0)return G;Q=(0,j9.normalizeId)($||Q);let K=j9.getSchemaRefs.call(this,X,Q);if(G=new A9.SchemaEnv({schema:X,schemaId:J,meta:Y,baseId:Q,localRefs:K}),this._cache.set(G.schema,G),W&&!Q.startsWith("#")){if(Q)this._checkUnique(Q);this.refs[Q]=G}if(Z)this.validateSchema(X,!0);return G}_checkUnique(X){if(this.schemas[X]||this.refs[X])throw Error(`schema with key or id "${X}" already exists`)}_compileSchemaEnv(X){if(X.meta)this._compileMetaSchema(X);else A9.compileSchema.call(this,X);if(!X.validate)throw Error("ajv implementation error");return X.validate}_compileMetaSchema(X){let Y=this.opts;this.opts=this._metaOpts;try{A9.compileSchema.call(this,X)}finally{this.opts=Y}}}A4.ValidationError=ZA.default;A4.MissingRefError=BB.default;a1.default=A4;function GB(X,Y,Q,Z="error"){for(let W in X){let $=W;if($ in Y)this.logger[Z](`${Q}: option ${W}. ${X[$]}`)}}function KB(X){return X=(0,j9.normalizeId)(X),this.schemas[X]||this.refs[X]}function zA(){let X=this.opts.schemas;if(!X)return;if(Array.isArray(X))this.addSchema(X);else for(let Y in X)this.addSchema(X[Y],Y)}function FA(){for(let X in this.opts.formats){let Y=this.opts.formats[X];if(Y)this.addFormat(X,Y)}}function UA(X){if(Array.isArray(X)){this.addVocabulary(X);return}this.logger.warn("keywords option as map is deprecated, pass array");for(let Y in X){let Q=X[Y];if(!Q.keyword)Q.keyword=Y;this.addKeyword(Q)}}function LA(){let X={...this.opts};for(let Y of GA)delete X[Y];return X}var qA={log(){},warn(){},error(){}};function OA(X){if(X===!1)return qA;if(X===void 0)return console;if(X.log&&X.warn&&X.error)return X;throw Error("logger must implement log, warn and error methods")}var DA=/^[a-z_$][a-z0-9_$:-]*$/i;function PA(X,Y){let{RULES:Q}=this;if((0,Y3.eachItem)(X,(Z)=>{if(Q.keywords[Z])throw Error(`Keyword ${Z} is already defined`);if(!DA.test(Z))throw Error(`Keyword ${Z} has invalid name`)}),!Y)return;if(Y.$data&&!(("code"in Y)||("validate"in Y)))throw Error('$data keyword must have "code" or "validate" function')}function X3(X,Y,Q){var Z;let W=Y===null||Y===void 0?void 0:Y.post;if(Q&&W)throw Error('keyword with "post" flag cannot have "type"');let{RULES:$}=this,J=W?$.post:$.rules.find(({type:K})=>K===Q);if(!J)J={type:Q,rules:[]},$.rules.push(J);if($.keywords[X]=!0,!Y)return;let G={keyword:X,definition:{...Y,type:(0,N4.getJSONTypes)(Y.type),schemaType:(0,N4.getJSONTypes)(Y.schemaType)}};if(Y.before)wA.call(this,J,G,Y.before);else J.rules.push(G);$.all[X]=G,(Z=Y.implements)===null||Z===void 0||Z.forEach((K)=>this.addKeyword(K))}function wA(X,Y,Q){let Z=X.rules.findIndex((W)=>W.keyword===Q);if(Z>=0)X.rules.splice(Z,0,Y);else X.rules.push(Y),this.logger.warn(`rule ${Q} is not defined`)}function NA(X){let{metaSchema:Y}=X;if(Y===void 0)return;if(X.$data&&this.opts.$data)Y=VB(Y);X.validateSchema=this.compile(Y,!0)}var AA={$ref:"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#"};function VB(X){return{anyOf:[X,AA]}}});var UB=v((FB)=>{Object.defineProperty(FB,"__esModule",{value:!0});var RA={keyword:"id",code(){throw Error('NOT SUPPORTED: keyword "id", use "$id" for schema ID')}};FB.default=RA});var wB=v((DB)=>{Object.defineProperty(DB,"__esModule",{value:!0});DB.callRef=DB.getValidate=void 0;var MA=P9(),LB=H1(),t0=e(),WX=i1(),qB=q4(),j4=W0(),xA={keyword:"$ref",schemaType:"string",code(X){let{gen:Y,schema:Q,it:Z}=X,{baseId:W,schemaEnv:$,validateName:J,opts:G,self:K}=Z,{root:B}=$;if((Q==="#"||Q==="#/")&&W===B.baseId)return V();let H=qB.resolveRef.call(K,B,W,Q);if(H===void 0)throw new MA.default(Z.opts.uriResolver,W,Q);if(H instanceof qB.SchemaEnv)return z(H);return F(H);function V(){if($===B)return E4(X,J,$,$.$async);let L=Y.scopeValue("root",{ref:B});return E4(X,t0._`${L}.validate`,B,B.$async)}function z(L){let q=OB(X,L);E4(X,q,L,L.$async)}function F(L){let q=Y.scopeValue("schema",G.code.source===!0?{ref:L,code:(0,t0.stringify)(L)}:{ref:L}),w=Y.name("valid"),O=X.subschema({schema:L,dataTypes:[],schemaPath:t0.nil,topSchemaRef:q,errSchemaPath:Q},w);X.mergeEvaluated(O),X.ok(w)}}};function OB(X,Y){let{gen:Q}=X;return Y.validate?Q.scopeValue("validate",{ref:Y.validate}):t0._`${Q.scopeValue("wrapper",{ref:Y})}.validate`}DB.getValidate=OB;function E4(X,Y,Q,Z){let{gen:W,it:$}=X,{allErrors:J,schemaEnv:G,opts:K}=$,B=K.passContext?WX.default.this:t0.nil;if(Z)H();else V();function H(){if(!G.$async)throw Error("async schema referenced by sync schema");let L=W.let("valid");W.try(()=>{if(W.code(t0._`await ${(0,LB.callValidateCode)(X,Y,B)}`),F(Y),!J)W.assign(L,!0)},(q)=>{if(W.if(t0._`!(${q} instanceof ${$.ValidationError})`,()=>W.throw(q)),z(q),!J)W.assign(L,!1)}),X.ok(L)}function V(){X.result((0,LB.callValidateCode)(X,Y,B),()=>F(Y),()=>z(Y))}function z(L){let q=t0._`${L}.errors`;W.assign(WX.default.vErrors,t0._`${WX.default.vErrors} === null ? ${q} : ${WX.default.vErrors}.concat(${q})`),W.assign(WX.default.errors,t0._`${WX.default.vErrors}.length`)}function F(L){var q;if(!$.opts.unevaluated)return;let w=(q=Q===null||Q===void 0?void 0:Q.validate)===null||q===void 0?void 0:q.evaluated;if($.props!==!0)if(w&&!w.dynamicProps){if(w.props!==void 0)$.props=j4.mergeEvaluated.props(W,w.props,$.props)}else{let O=W.var("props",t0._`${L}.evaluated.props`);$.props=j4.mergeEvaluated.props(W,O,$.props,t0.Name)}if($.items!==!0)if(w&&!w.dynamicItems){if(w.items!==void 0)$.items=j4.mergeEvaluated.items(W,w.items,$.items)}else{let O=W.var("items",t0._`${L}.evaluated.items`);$.items=j4.mergeEvaluated.items(W,O,$.items,t0.Name)}}}DB.callRef=E4;DB.default=xA});var AB=v((NB)=>{Object.defineProperty(NB,"__esModule",{value:!0});var bA=UB(),CA=wB(),yA=["$schema","$id","$defs","$vocabulary",{keyword:"$comment"},"definitions",bA.default,CA.default];NB.default=yA});var EB=v((jB)=>{Object.defineProperty(jB,"__esModule",{value:!0});var R4=e(),N6=R4.operators,T4={maximum:{okStr:"<=",ok:N6.LTE,fail:N6.GT},minimum:{okStr:">=",ok:N6.GTE,fail:N6.LT},exclusiveMaximum:{okStr:"<",ok:N6.LT,fail:N6.GTE},exclusiveMinimum:{okStr:">",ok:N6.GT,fail:N6.LTE}},_A={message:({keyword:X,schemaCode:Y})=>R4.str`must be ${T4[X].okStr} ${Y}`,params:({keyword:X,schemaCode:Y})=>R4._`{comparison: ${T4[X].okStr}, limit: ${Y}}`},vA={keyword:Object.keys(T4),type:"number",schemaType:"number",$data:!0,error:_A,code(X){let{keyword:Y,data:Q,schemaCode:Z}=X;X.fail$data(R4._`${Q} ${T4[Y].fail} ${Z} || isNaN(${Q})`)}};jB.default=vA});var TB=v((RB)=>{Object.defineProperty(RB,"__esModule",{value:!0});var E9=e(),hA={message:({schemaCode:X})=>E9.str`must be multiple of ${X}`,params:({schemaCode:X})=>E9._`{multipleOf: ${X}}`},gA={keyword:"multipleOf",type:"number",schemaType:"number",$data:!0,error:hA,code(X){let{gen:Y,data:Q,schemaCode:Z,it:W}=X,$=W.opts.multipleOfPrecision,J=Y.let("res"),G=$?E9._`Math.abs(Math.round(${J}) - ${J}) > 1e-${$}`:E9._`${J} !== parseInt(${J})`;X.fail$data(E9._`(${Z} === 0 || (${J} = ${Q}/${Z}, ${G}))`)}};RB.default=gA});var IB=v((xB)=>{Object.defineProperty(xB,"__esModule",{value:!0});function MB(X){let Y=X.length,Q=0,Z=0,W;while(Z<Y)if(Q++,W=X.charCodeAt(Z++),W>=55296&&W<=56319&&Z<Y){if(W=X.charCodeAt(Z),(W&64512)===56320)Z++}return Q}xB.default=MB;MB.code='require("ajv/dist/runtime/ucs2length").default'});var bB=v((SB)=>{Object.defineProperty(SB,"__esModule",{value:!0});var Y8=e(),dA=W0(),cA=IB(),pA={message({keyword:X,schemaCode:Y}){let Q=X==="maxLength"?"more":"fewer";return Y8.str`must NOT have ${Q} than ${Y} characters`},params:({schemaCode:X})=>Y8._`{limit: ${X}}`},lA={keyword:["maxLength","minLength"],type:"string",schemaType:"number",$data:!0,error:pA,code(X){let{keyword:Y,data:Q,schemaCode:Z,it:W}=X,$=Y==="maxLength"?Y8.operators.GT:Y8.operators.LT,J=W.opts.unicode===!1?Y8._`${Q}.length`:Y8._`${(0,dA.useFunc)(X.gen,cA.default)}(${Q})`;X.fail$data(Y8._`${J} ${$} ${Z}`)}};SB.default=lA});var yB=v((CB)=>{Object.defineProperty(CB,"__esModule",{value:!0});var nA=H1(),rA=W0(),$X=e(),aA={message:({schemaCode:X})=>$X.str`must match pattern "${X}"`,params:({schemaCode:X})=>$X._`{pattern: ${X}}`},sA={keyword:"pattern",type:"string",schemaType:"string",$data:!0,error:aA,code(X){let{gen:Y,data:Q,$data:Z,schema:W,schemaCode:$,it:J}=X,G=J.opts.unicodeRegExp?"u":"";if(Z){let{regExp:K}=J.opts.code,B=K.code==="new RegExp"?$X._`new RegExp`:(0,rA.useFunc)(Y,K),H=Y.let("valid");Y.try(()=>Y.assign(H,$X._`${B}(${$}, ${G}).test(${Q})`),()=>Y.assign(H,!1)),X.fail$data($X._`!${H}`)}else{let K=(0,nA.usePattern)(X,W);X.fail$data($X._`!${K}.test(${Q})`)}}};CB.default=sA});var _B=v((kB)=>{Object.defineProperty(kB,"__esModule",{value:!0});var R9=e(),oA={message({keyword:X,schemaCode:Y}){let Q=X==="maxProperties"?"more":"fewer";return R9.str`must NOT have ${Q} than ${Y} properties`},params:({schemaCode:X})=>R9._`{limit: ${X}}`},eA={keyword:["maxProperties","minProperties"],type:"object",schemaType:"number",$data:!0,error:oA,code(X){let{keyword:Y,data:Q,schemaCode:Z}=X,W=Y==="maxProperties"?R9.operators.GT:R9.operators.LT;X.fail$data(R9._`Object.keys(${Q}).length ${W} ${Z}`)}};kB.default=eA});var fB=v((vB)=>{Object.defineProperty(vB,"__esModule",{value:!0});var T9=H1(),M9=e(),Yj=W0(),Qj={message:({params:{missingProperty:X}})=>M9.str`must have required property '${X}'`,params:({params:{missingProperty:X}})=>M9._`{missingProperty: ${X}}`},Zj={keyword:"required",type:"object",schemaType:"array",$data:!0,error:Qj,code(X){let{gen:Y,schema:Q,schemaCode:Z,data:W,$data:$,it:J}=X,{opts:G}=J;if(!$&&Q.length===0)return;let K=Q.length>=G.loopRequired;if(J.allErrors)B();else H();if(G.strictRequired){let F=X.parentSchema.properties,{definedProperties:L}=X.it;for(let q of Q)if((F===null||F===void 0?void 0:F[q])===void 0&&!L.has(q)){let w=J.schemaEnv.baseId+J.errSchemaPath,O=`required property "${q}" is not defined at "${w}" (strictRequired)`;(0,Yj.checkStrictMode)(J,O,J.opts.strictRequired)}}function B(){if(K||$)X.block$data(M9.nil,V);else for(let F of Q)(0,T9.checkReportMissingProp)(X,F)}function H(){let F=Y.let("missing");if(K||$){let L=Y.let("valid",!0);X.block$data(L,()=>z(F,L)),X.ok(L)}else Y.if((0,T9.checkMissingProp)(X,Q,F)),(0,T9.reportMissingProp)(X,F),Y.else()}function V(){Y.forOf("prop",Z,(F)=>{X.setParams({missingProperty:F}),Y.if((0,T9.noPropertyInData)(Y,W,F,G.ownProperties),()=>X.error())})}function z(F,L){X.setParams({missingProperty:F}),Y.forOf(F,Z,()=>{Y.assign(L,(0,T9.propertyInData)(Y,W,F,G.ownProperties)),Y.if((0,M9.not)(L),()=>{X.error(),Y.break()})},M9.nil)}}};vB.default=Zj});var gB=v((hB)=>{Object.defineProperty(hB,"__esModule",{value:!0});var x9=e(),$j={message({keyword:X,schemaCode:Y}){let Q=X==="maxItems"?"more":"fewer";return x9.str`must NOT have ${Q} than ${Y} items`},params:({schemaCode:X})=>x9._`{limit: ${X}}`},Jj={keyword:["maxItems","minItems"],type:"array",schemaType:"number",$data:!0,error:$j,code(X){let{keyword:Y,data:Q,schemaCode:Z}=X,W=Y==="maxItems"?x9.operators.GT:x9.operators.LT;X.fail$data(x9._`${Q}.length ${W} ${Z}`)}};hB.default=Jj});var M4=v((mB)=>{Object.defineProperty(mB,"__esModule",{value:!0});var uB=uZ();uB.code='require("ajv/dist/runtime/equal").default';mB.default=uB});var cB=v((dB)=>{Object.defineProperty(dB,"__esModule",{value:!0});var Q3=U9(),f0=e(),Bj=W0(),Hj=M4(),Vj={message:({params:{i:X,j:Y}})=>f0.str`must NOT have duplicate items (items ## ${Y} and ${X} are identical)`,params:({params:{i:X,j:Y}})=>f0._`{i: ${X}, j: ${Y}}`},zj={keyword:"uniqueItems",type:"array",schemaType:"boolean",$data:!0,error:Vj,code(X){let{gen:Y,data:Q,$data:Z,schema:W,parentSchema:$,schemaCode:J,it:G}=X;if(!Z&&!W)return;let K=Y.let("valid"),B=$.items?(0,Q3.getSchemaTypes)($.items):[];X.block$data(K,H,f0._`${J} === false`),X.ok(K);function H(){let L=Y.let("i",f0._`${Q}.length`),q=Y.let("j");X.setParams({i:L,j:q}),Y.assign(K,!0),Y.if(f0._`${L} > 1`,()=>(V()?z:F)(L,q))}function V(){return B.length>0&&!B.some((L)=>L==="object"||L==="array")}function z(L,q){let w=Y.name("item"),O=(0,Q3.checkDataTypes)(B,w,G.opts.strictNumbers,Q3.DataType.Wrong),R=Y.const("indices",f0._`{}`);Y.for(f0._`;${L}--;`,()=>{if(Y.let(w,f0._`${Q}[${L}]`),Y.if(O,f0._`continue`),B.length>1)Y.if(f0._`typeof ${w} == "string"`,f0._`${w} += "_"`);Y.if(f0._`typeof ${R}[${w}] == "number"`,()=>{Y.assign(q,f0._`${R}[${w}]`),X.error(),Y.assign(K,!1).break()}).code(f0._`${R}[${w}] = ${L}`)})}function F(L,q){let w=(0,Bj.useFunc)(Y,Hj.default),O=Y.name("outer");Y.label(O).for(f0._`;${L}--;`,()=>Y.for(f0._`${q} = ${L}; ${q}--;`,()=>Y.if(f0._`${w}(${Q}[${L}], ${Q}[${q}])`,()=>{X.error(),Y.assign(K,!1).break(O)})))}}};dB.default=zj});var lB=v((pB)=>{Object.defineProperty(pB,"__esModule",{value:!0});var Z3=e(),Uj=W0(),Lj=M4(),qj={message:"must be equal to constant",params:({schemaCode:X})=>Z3._`{allowedValue: ${X}}`},Oj={keyword:"const",$data:!0,error:qj,code(X){let{gen:Y,data:Q,$data:Z,schemaCode:W,schema:$}=X;if(Z||$&&typeof $=="object")X.fail$data(Z3._`!${(0,Uj.useFunc)(Y,Lj.default)}(${Q}, ${W})`);else X.fail(Z3._`${$} !== ${Q}`)}};pB.default=Oj});var nB=v((iB)=>{Object.defineProperty(iB,"__esModule",{value:!0});var I9=e(),Pj=W0(),wj=M4(),Nj={message:"must be equal to one of the allowed values",params:({schemaCode:X})=>I9._`{allowedValues: ${X}}`},Aj={keyword:"enum",schemaType:"array",$data:!0,error:Nj,code(X){let{gen:Y,data:Q,$data:Z,schema:W,schemaCode:$,it:J}=X;if(!Z&&W.length===0)throw Error("enum must have non-empty array");let G=W.length>=J.opts.loopEnum,K,B=()=>K!==null&&K!==void 0?K:K=(0,Pj.useFunc)(Y,wj.default),H;if(G||Z)H=Y.let("valid"),X.block$data(H,V);else{if(!Array.isArray(W))throw Error("ajv implementation error");let F=Y.const("vSchema",$);H=(0,I9.or)(...W.map((L,q)=>z(F,q)))}X.pass(H);function V(){Y.assign(H,!1),Y.forOf("v",$,(F)=>Y.if(I9._`${B()}(${Q}, ${F})`,()=>Y.assign(H,!0).break()))}function z(F,L){let q=W[L];return typeof q==="object"&&q!==null?I9._`${B()}(${Q}, ${F}[${L}])`:I9._`${Q} === ${q}`}}};iB.default=Aj});var aB=v((rB)=>{Object.defineProperty(rB,"__esModule",{value:!0});var Ej=EB(),Rj=TB(),Tj=bB(),Mj=yB(),xj=_B(),Ij=fB(),Sj=gB(),bj=cB(),Cj=lB(),yj=nB(),kj=[Ej.default,Rj.default,Tj.default,Mj.default,xj.default,Ij.default,Sj.default,bj.default,{keyword:"type",schemaType:["string","array"]},{keyword:"nullable",schemaType:"boolean"},Cj.default,yj.default];rB.default=kj});var $3=v((tB)=>{Object.defineProperty(tB,"__esModule",{value:!0});tB.validateAdditionalItems=void 0;var Q8=e(),W3=W0(),vj={message:({params:{len:X}})=>Q8.str`must NOT have more than ${X} items`,params:({params:{len:X}})=>Q8._`{limit: ${X}}`},fj={keyword:"additionalItems",type:"array",schemaType:["boolean","object"],before:"uniqueItems",error:vj,code(X){let{parentSchema:Y,it:Q}=X,{items:Z}=Y;if(!Array.isArray(Z)){(0,W3.checkStrictMode)(Q,'"additionalItems" is ignored when "items" is not an array of schemas');return}sB(X,Z)}};function sB(X,Y){let{gen:Q,schema:Z,data:W,keyword:$,it:J}=X;J.items=!0;let G=Q.const("len",Q8._`${W}.length`);if(Z===!1)X.setParams({len:Y.length}),X.pass(Q8._`${G} <= ${Y.length}`);else if(typeof Z=="object"&&!(0,W3.alwaysValidSchema)(J,Z)){let B=Q.var("valid",Q8._`${G} <= ${Y.length}`);Q.if((0,Q8.not)(B),()=>K(B)),X.ok(B)}function K(B){Q.forRange("i",Y.length,G,(H)=>{if(X.subschema({keyword:$,dataProp:H,dataPropType:W3.Type.Num},B),!J.allErrors)Q.if((0,Q8.not)(B),()=>Q.break())})}}tB.validateAdditionalItems=sB;tB.default=fj});var J3=v((YH)=>{Object.defineProperty(YH,"__esModule",{value:!0});YH.validateTuple=void 0;var eB=e(),x4=W0(),gj=H1(),uj={keyword:"items",type:"array",schemaType:["object","array","boolean"],before:"uniqueItems",code(X){let{schema:Y,it:Q}=X;if(Array.isArray(Y))return XH(X,"additionalItems",Y);if(Q.items=!0,(0,x4.alwaysValidSchema)(Q,Y))return;X.ok((0,gj.validateArray)(X))}};function XH(X,Y,Q=X.schema){let{gen:Z,parentSchema:W,data:$,keyword:J,it:G}=X;if(H(W),G.opts.unevaluated&&Q.length&&G.items!==!0)G.items=x4.mergeEvaluated.items(Z,Q.length,G.items);let K=Z.name("valid"),B=Z.const("len",eB._`${$}.length`);Q.forEach((V,z)=>{if((0,x4.alwaysValidSchema)(G,V))return;Z.if(eB._`${B} > ${z}`,()=>X.subschema({keyword:J,schemaProp:z,dataProp:z},K)),X.ok(K)});function H(V){let{opts:z,errSchemaPath:F}=G,L=Q.length,q=L===V.minItems&&(L===V.maxItems||V[Y]===!1);if(z.strictTuples&&!q){let w=`"${J}" is ${L}-tuple, but minItems or maxItems/${Y} are not specified or different at path "${F}"`;(0,x4.checkStrictMode)(G,w,z.strictTuples)}}}YH.validateTuple=XH;YH.default=uj});var WH=v((ZH)=>{Object.defineProperty(ZH,"__esModule",{value:!0});var dj=J3(),cj={keyword:"prefixItems",type:"array",schemaType:["array"],before:"uniqueItems",code:(X)=>(0,dj.validateTuple)(X,"items")};ZH.default=cj});var GH=v((JH)=>{Object.defineProperty(JH,"__esModule",{value:!0});var $H=e(),lj=W0(),ij=H1(),nj=$3(),rj={message:({params:{len:X}})=>$H.str`must NOT have more than ${X} items`,params:({params:{len:X}})=>$H._`{limit: ${X}}`},aj={keyword:"items",type:"array",schemaType:["object","boolean"],before:"uniqueItems",error:rj,code(X){let{schema:Y,parentSchema:Q,it:Z}=X,{prefixItems:W}=Q;if(Z.items=!0,(0,lj.alwaysValidSchema)(Z,Y))return;if(W)(0,nj.validateAdditionalItems)(X,W);else X.ok((0,ij.validateArray)(X))}};JH.default=aj});var BH=v((KH)=>{Object.defineProperty(KH,"__esModule",{value:!0});var V1=e(),I4=W0(),tj={message:({params:{min:X,max:Y}})=>Y===void 0?V1.str`must contain at least ${X} valid item(s)`:V1.str`must contain at least ${X} and no more than ${Y} valid item(s)`,params:({params:{min:X,max:Y}})=>Y===void 0?V1._`{minContains: ${X}}`:V1._`{minContains: ${X}, maxContains: ${Y}}`},oj={keyword:"contains",type:"array",schemaType:["object","boolean"],before:"uniqueItems",trackErrors:!0,error:tj,code(X){let{gen:Y,schema:Q,parentSchema:Z,data:W,it:$}=X,J,G,{minContains:K,maxContains:B}=Z;if($.opts.next)J=K===void 0?1:K,G=B;else J=1;let H=Y.const("len",V1._`${W}.length`);if(X.setParams({min:J,max:G}),G===void 0&&J===0){(0,I4.checkStrictMode)($,'"minContains" == 0 without "maxContains": "contains" keyword ignored');return}if(G!==void 0&&J>G){(0,I4.checkStrictMode)($,'"minContains" > "maxContains" is always invalid'),X.fail();return}if((0,I4.alwaysValidSchema)($,Q)){let q=V1._`${H} >= ${J}`;if(G!==void 0)q=V1._`${q} && ${H} <= ${G}`;X.pass(q);return}$.items=!0;let V=Y.name("valid");if(G===void 0&&J===1)F(V,()=>Y.if(V,()=>Y.break()));else if(J===0){if(Y.let(V,!0),G!==void 0)Y.if(V1._`${W}.length > 0`,z)}else Y.let(V,!1),z();X.result(V,()=>X.reset());function z(){let q=Y.name("_valid"),w=Y.let("count",0);F(q,()=>Y.if(q,()=>L(w)))}function F(q,w){Y.forRange("i",0,H,(O)=>{X.subschema({keyword:"contains",dataProp:O,dataPropType:I4.Type.Num,compositeRule:!0},q),w()})}function L(q){if(Y.code(V1._`${q}++`),G===void 0)Y.if(V1._`${q} >= ${J}`,()=>Y.assign(V,!0).break());else if(Y.if(V1._`${q} > ${G}`,()=>Y.assign(V,!1).break()),J===1)Y.assign(V,!0);else Y.if(V1._`${q} >= ${J}`,()=>Y.assign(V,!0))}}};KH.default=oj});var LH=v((zH)=>{Object.defineProperty(zH,"__esModule",{value:!0});zH.validateSchemaDeps=zH.validatePropertyDeps=zH.error=void 0;var G3=e(),XE=W0(),S9=H1();zH.error={message:({params:{property:X,depsCount:Y,deps:Q}})=>{let Z=Y===1?"property":"properties";return G3.str`must have ${Z} ${Q} when property ${X} is present`},params:({params:{property:X,depsCount:Y,deps:Q,missingProperty:Z}})=>G3._`{property: ${X},
|
|
6
|
-
missingProperty: ${Z},
|
|
7
|
-
depsCount: ${Y},
|
|
8
|
-
deps: ${Q}}`};var YE={keyword:"dependencies",type:"object",schemaType:"object",error:zH.error,code(X){let[Y,Q]=QE(X);HH(X,Y),VH(X,Q)}};function QE({schema:X}){let Y={},Q={};for(let Z in X){if(Z==="__proto__")continue;let W=Array.isArray(X[Z])?Y:Q;W[Z]=X[Z]}return[Y,Q]}function HH(X,Y=X.schema){let{gen:Q,data:Z,it:W}=X;if(Object.keys(Y).length===0)return;let $=Q.let("missing");for(let J in Y){let G=Y[J];if(G.length===0)continue;let K=(0,S9.propertyInData)(Q,Z,J,W.opts.ownProperties);if(X.setParams({property:J,depsCount:G.length,deps:G.join(", ")}),W.allErrors)Q.if(K,()=>{for(let B of G)(0,S9.checkReportMissingProp)(X,B)});else Q.if(G3._`${K} && (${(0,S9.checkMissingProp)(X,G,$)})`),(0,S9.reportMissingProp)(X,$),Q.else()}}zH.validatePropertyDeps=HH;function VH(X,Y=X.schema){let{gen:Q,data:Z,keyword:W,it:$}=X,J=Q.name("valid");for(let G in Y){if((0,XE.alwaysValidSchema)($,Y[G]))continue;Q.if((0,S9.propertyInData)(Q,Z,G,$.opts.ownProperties),()=>{let K=X.subschema({keyword:W,schemaProp:G},J);X.mergeValidEvaluated(K,J)},()=>Q.var(J,!0)),X.ok(J)}}zH.validateSchemaDeps=VH;zH.default=YE});var DH=v((OH)=>{Object.defineProperty(OH,"__esModule",{value:!0});var qH=e(),$E=W0(),JE={message:"property name must be valid",params:({params:X})=>qH._`{propertyName: ${X.propertyName}}`},GE={keyword:"propertyNames",type:"object",schemaType:["object","boolean"],error:JE,code(X){let{gen:Y,schema:Q,data:Z,it:W}=X;if((0,$E.alwaysValidSchema)(W,Q))return;let $=Y.name("valid");Y.forIn("key",Z,(J)=>{X.setParams({propertyName:J}),X.subschema({keyword:"propertyNames",data:J,dataTypes:["string"],propertyName:J,compositeRule:!0},$),Y.if((0,qH.not)($),()=>{if(X.error(!0),!W.allErrors)Y.break()})}),X.ok($)}};OH.default=GE});var K3=v((PH)=>{Object.defineProperty(PH,"__esModule",{value:!0});var S4=H1(),N1=e(),BE=i1(),b4=W0(),HE={message:"must NOT have additional properties",params:({params:X})=>N1._`{additionalProperty: ${X.additionalProperty}}`},VE={keyword:"additionalProperties",type:["object"],schemaType:["boolean","object"],allowUndefined:!0,trackErrors:!0,error:HE,code(X){let{gen:Y,schema:Q,parentSchema:Z,data:W,errsCount:$,it:J}=X;if(!$)throw Error("ajv implementation error");let{allErrors:G,opts:K}=J;if(J.props=!0,K.removeAdditional!=="all"&&(0,b4.alwaysValidSchema)(J,Q))return;let B=(0,S4.allSchemaProperties)(Z.properties),H=(0,S4.allSchemaProperties)(Z.patternProperties);V(),X.ok(N1._`${$} === ${BE.default.errors}`);function V(){Y.forIn("key",W,(w)=>{if(!B.length&&!H.length)L(w);else Y.if(z(w),()=>L(w))})}function z(w){let O;if(B.length>8){let R=(0,b4.schemaRefOrVal)(J,Z.properties,"properties");O=(0,S4.isOwnProperty)(Y,R,w)}else if(B.length)O=(0,N1.or)(...B.map((R)=>N1._`${w} === ${R}`));else O=N1.nil;if(H.length)O=(0,N1.or)(O,...H.map((R)=>N1._`${(0,S4.usePattern)(X,R)}.test(${w})`));return(0,N1.not)(O)}function F(w){Y.code(N1._`delete ${W}[${w}]`)}function L(w){if(K.removeAdditional==="all"||K.removeAdditional&&Q===!1){F(w);return}if(Q===!1){if(X.setParams({additionalProperty:w}),X.error(),!G)Y.break();return}if(typeof Q=="object"&&!(0,b4.alwaysValidSchema)(J,Q)){let O=Y.name("valid");if(K.removeAdditional==="failing")q(w,O,!1),Y.if((0,N1.not)(O),()=>{X.reset(),F(w)});else if(q(w,O),!G)Y.if((0,N1.not)(O),()=>Y.break())}}function q(w,O,R){let P={keyword:"additionalProperties",dataProp:w,dataPropType:b4.Type.Str};if(R===!1)Object.assign(P,{compositeRule:!0,createErrors:!1,allErrors:!1});X.subschema(P,O)}}};PH.default=VE});var jH=v((AH)=>{Object.defineProperty(AH,"__esModule",{value:!0});var FE=D9(),wH=H1(),B3=W0(),NH=K3(),UE={keyword:"properties",type:"object",schemaType:"object",code(X){let{gen:Y,schema:Q,parentSchema:Z,data:W,it:$}=X;if($.opts.removeAdditional==="all"&&Z.additionalProperties===void 0)NH.default.code(new FE.KeywordCxt($,NH.default,"additionalProperties"));let J=(0,wH.allSchemaProperties)(Q);for(let V of J)$.definedProperties.add(V);if($.opts.unevaluated&&J.length&&$.props!==!0)$.props=B3.mergeEvaluated.props(Y,(0,B3.toHash)(J),$.props);let G=J.filter((V)=>!(0,B3.alwaysValidSchema)($,Q[V]));if(G.length===0)return;let K=Y.name("valid");for(let V of G){if(B(V))H(V);else{if(Y.if((0,wH.propertyInData)(Y,W,V,$.opts.ownProperties)),H(V),!$.allErrors)Y.else().var(K,!0);Y.endIf()}X.it.definedProperties.add(V),X.ok(K)}function B(V){return $.opts.useDefaults&&!$.compositeRule&&Q[V].default!==void 0}function H(V){X.subschema({keyword:"properties",schemaProp:V,dataProp:V},K)}}};AH.default=UE});var xH=v((MH)=>{Object.defineProperty(MH,"__esModule",{value:!0});var EH=H1(),C4=e(),RH=W0(),TH=W0(),qE={keyword:"patternProperties",type:"object",schemaType:"object",code(X){let{gen:Y,schema:Q,data:Z,parentSchema:W,it:$}=X,{opts:J}=$,G=(0,EH.allSchemaProperties)(Q),K=G.filter((q)=>(0,RH.alwaysValidSchema)($,Q[q]));if(G.length===0||K.length===G.length&&(!$.opts.unevaluated||$.props===!0))return;let B=J.strictSchema&&!J.allowMatchingProperties&&W.properties,H=Y.name("valid");if($.props!==!0&&!($.props instanceof C4.Name))$.props=(0,TH.evaluatedPropsToName)(Y,$.props);let{props:V}=$;z();function z(){for(let q of G){if(B)F(q);if($.allErrors)L(q);else Y.var(H,!0),L(q),Y.if(H)}}function F(q){for(let w in B)if(new RegExp(q).test(w))(0,RH.checkStrictMode)($,`property ${w} matches pattern ${q} (use allowMatchingProperties)`)}function L(q){Y.forIn("key",Z,(w)=>{Y.if(C4._`${(0,EH.usePattern)(X,q)}.test(${w})`,()=>{let O=K.includes(q);if(!O)X.subschema({keyword:"patternProperties",schemaProp:q,dataProp:w,dataPropType:TH.Type.Str},H);if($.opts.unevaluated&&V!==!0)Y.assign(C4._`${V}[${w}]`,!0);else if(!O&&!$.allErrors)Y.if((0,C4.not)(H),()=>Y.break())})})}}};MH.default=qE});var SH=v((IH)=>{Object.defineProperty(IH,"__esModule",{value:!0});var DE=W0(),PE={keyword:"not",schemaType:["object","boolean"],trackErrors:!0,code(X){let{gen:Y,schema:Q,it:Z}=X;if((0,DE.alwaysValidSchema)(Z,Q)){X.fail();return}let W=Y.name("valid");X.subschema({keyword:"not",compositeRule:!0,createErrors:!1,allErrors:!1},W),X.failResult(W,()=>X.reset(),()=>X.error())},error:{message:"must NOT be valid"}};IH.default=PE});var CH=v((bH)=>{Object.defineProperty(bH,"__esModule",{value:!0});var NE=H1(),AE={keyword:"anyOf",schemaType:"array",trackErrors:!0,code:NE.validateUnion,error:{message:"must match a schema in anyOf"}};bH.default=AE});var kH=v((yH)=>{Object.defineProperty(yH,"__esModule",{value:!0});var y4=e(),EE=W0(),RE={message:"must match exactly one schema in oneOf",params:({params:X})=>y4._`{passingSchemas: ${X.passing}}`},TE={keyword:"oneOf",schemaType:"array",trackErrors:!0,error:RE,code(X){let{gen:Y,schema:Q,parentSchema:Z,it:W}=X;if(!Array.isArray(Q))throw Error("ajv implementation error");if(W.opts.discriminator&&Z.discriminator)return;let $=Q,J=Y.let("valid",!1),G=Y.let("passing",null),K=Y.name("_valid");X.setParams({passing:G}),Y.block(B),X.result(J,()=>X.reset(),()=>X.error(!0));function B(){$.forEach((H,V)=>{let z;if((0,EE.alwaysValidSchema)(W,H))Y.var(K,!0);else z=X.subschema({keyword:"oneOf",schemaProp:V,compositeRule:!0},K);if(V>0)Y.if(y4._`${K} && ${J}`).assign(J,!1).assign(G,y4._`[${G}, ${V}]`).else();Y.if(K,()=>{if(Y.assign(J,!0),Y.assign(G,V),z)X.mergeEvaluated(z,y4.Name)})})}}};yH.default=TE});var vH=v((_H)=>{Object.defineProperty(_H,"__esModule",{value:!0});var xE=W0(),IE={keyword:"allOf",schemaType:"array",code(X){let{gen:Y,schema:Q,it:Z}=X;if(!Array.isArray(Q))throw Error("ajv implementation error");let W=Y.name("valid");Q.forEach(($,J)=>{if((0,xE.alwaysValidSchema)(Z,$))return;let G=X.subschema({keyword:"allOf",schemaProp:J},W);X.ok(W),X.mergeEvaluated(G)})}};_H.default=IE});var uH=v((gH)=>{Object.defineProperty(gH,"__esModule",{value:!0});var k4=e(),hH=W0(),bE={message:({params:X})=>k4.str`must match "${X.ifClause}" schema`,params:({params:X})=>k4._`{failingKeyword: ${X.ifClause}}`},CE={keyword:"if",schemaType:["object","boolean"],trackErrors:!0,error:bE,code(X){let{gen:Y,parentSchema:Q,it:Z}=X;if(Q.then===void 0&&Q.else===void 0)(0,hH.checkStrictMode)(Z,'"if" without "then" and "else" is ignored');let W=fH(Z,"then"),$=fH(Z,"else");if(!W&&!$)return;let J=Y.let("valid",!0),G=Y.name("_valid");if(K(),X.reset(),W&&$){let H=Y.let("ifClause");X.setParams({ifClause:H}),Y.if(G,B("then",H),B("else",H))}else if(W)Y.if(G,B("then"));else Y.if((0,k4.not)(G),B("else"));X.pass(J,()=>X.error(!0));function K(){let H=X.subschema({keyword:"if",compositeRule:!0,createErrors:!1,allErrors:!1},G);X.mergeEvaluated(H)}function B(H,V){return()=>{let z=X.subschema({keyword:H},G);if(Y.assign(J,G),X.mergeValidEvaluated(z,J),V)Y.assign(V,k4._`${H}`);else X.setParams({ifClause:H})}}}};function fH(X,Y){let Q=X.schema[Y];return Q!==void 0&&!(0,hH.alwaysValidSchema)(X,Q)}gH.default=CE});var dH=v((mH)=>{Object.defineProperty(mH,"__esModule",{value:!0});var kE=W0(),_E={keyword:["then","else"],schemaType:["object","boolean"],code({keyword:X,parentSchema:Y,it:Q}){if(Y.if===void 0)(0,kE.checkStrictMode)(Q,`"${X}" without "if" is ignored`)}};mH.default=_E});var pH=v((cH)=>{Object.defineProperty(cH,"__esModule",{value:!0});var fE=$3(),hE=WH(),gE=J3(),uE=GH(),mE=BH(),dE=LH(),cE=DH(),pE=K3(),lE=jH(),iE=xH(),nE=SH(),rE=CH(),aE=kH(),sE=vH(),tE=uH(),oE=dH();function eE(X=!1){let Y=[nE.default,rE.default,aE.default,sE.default,tE.default,oE.default,cE.default,pE.default,dE.default,lE.default,iE.default];if(X)Y.push(hE.default,uE.default);else Y.push(fE.default,gE.default);return Y.push(mE.default),Y}cH.default=eE});var iH=v((lH)=>{Object.defineProperty(lH,"__esModule",{value:!0});var A0=e(),YR={message:({schemaCode:X})=>A0.str`must match format "${X}"`,params:({schemaCode:X})=>A0._`{format: ${X}}`},QR={keyword:"format",type:["number","string"],schemaType:"string",$data:!0,error:YR,code(X,Y){let{gen:Q,data:Z,$data:W,schema:$,schemaCode:J,it:G}=X,{opts:K,errSchemaPath:B,schemaEnv:H,self:V}=G;if(!K.validateFormats)return;if(W)z();else F();function z(){let L=Q.scopeValue("formats",{ref:V.formats,code:K.code.formats}),q=Q.const("fDef",A0._`${L}[${J}]`),w=Q.let("fType"),O=Q.let("format");Q.if(A0._`typeof ${q} == "object" && !(${q} instanceof RegExp)`,()=>Q.assign(w,A0._`${q}.type || "string"`).assign(O,A0._`${q}.validate`),()=>Q.assign(w,A0._`"string"`).assign(O,q)),X.fail$data((0,A0.or)(R(),P()));function R(){if(K.strictSchema===!1)return A0.nil;return A0._`${J} && !${O}`}function P(){let D=H.$async?A0._`(${q}.async ? await ${O}(${Z}) : ${O}(${Z}))`:A0._`${O}(${Z})`,E=A0._`(typeof ${O} == "function" ? ${D} : ${O}.test(${Z}))`;return A0._`${O} && ${O} !== true && ${w} === ${Y} && !${E}`}}function F(){let L=V.formats[$];if(!L){R();return}if(L===!0)return;let[q,w,O]=P(L);if(q===Y)X.pass(D());function R(){if(K.strictSchema===!1){V.logger.warn(E());return}throw Error(E());function E(){return`unknown format "${$}" ignored in schema at path "${B}"`}}function P(E){let I=E instanceof RegExp?(0,A0.regexpCode)(E):K.code.formats?A0._`${K.code.formats}${(0,A0.getProperty)($)}`:void 0,S=Q.scopeValue("formats",{key:$,ref:E,code:I});if(typeof E=="object"&&!(E instanceof RegExp))return[E.type||"string",E.validate,A0._`${S}.validate`];return["string",E,S]}function D(){if(typeof L=="object"&&!(L instanceof RegExp)&&L.async){if(!H.$async)throw Error("async format in sync schema");return A0._`await ${O}(${Z})`}return typeof w=="function"?A0._`${O}(${Z})`:A0._`${O}.test(${Z})`}}}};lH.default=QR});var rH=v((nH)=>{Object.defineProperty(nH,"__esModule",{value:!0});var WR=iH(),$R=[WR.default];nH.default=$R});var tH=v((aH)=>{Object.defineProperty(aH,"__esModule",{value:!0});aH.contentVocabulary=aH.metadataVocabulary=void 0;aH.metadataVocabulary=["title","description","default","deprecated","readOnly","writeOnly","examples"];aH.contentVocabulary=["contentMediaType","contentEncoding","contentSchema"]});var XV=v((eH)=>{Object.defineProperty(eH,"__esModule",{value:!0});var KR=AB(),BR=aB(),HR=pH(),VR=rH(),oH=tH(),zR=[KR.default,BR.default,(0,HR.default)(),VR.default,oH.metadataVocabulary,oH.contentVocabulary];eH.default=zR});var WV=v((QV)=>{Object.defineProperty(QV,"__esModule",{value:!0});QV.DiscrError=void 0;var YV;(function(X){X.Tag="tag",X.Mapping="mapping"})(YV||(QV.DiscrError=YV={}))});var GV=v((JV)=>{Object.defineProperty(JV,"__esModule",{value:!0});var JX=e(),H3=WV(),$V=q4(),UR=P9(),LR=W0(),qR={message:({params:{discrError:X,tagName:Y}})=>X===H3.DiscrError.Tag?`tag "${Y}" must be string`:`value of tag "${Y}" must be in oneOf`,params:({params:{discrError:X,tag:Y,tagName:Q}})=>JX._`{error: ${X}, tag: ${Q}, tagValue: ${Y}}`},OR={keyword:"discriminator",type:"object",schemaType:"object",error:qR,code(X){let{gen:Y,data:Q,schema:Z,parentSchema:W,it:$}=X,{oneOf:J}=W;if(!$.opts.discriminator)throw Error("discriminator: requires discriminator option");let G=Z.propertyName;if(typeof G!="string")throw Error("discriminator: requires propertyName");if(Z.mapping)throw Error("discriminator: mapping is not supported");if(!J)throw Error("discriminator: requires oneOf keyword");let K=Y.let("valid",!1),B=Y.const("tag",JX._`${Q}${(0,JX.getProperty)(G)}`);Y.if(JX._`typeof ${B} == "string"`,()=>H(),()=>X.error(!1,{discrError:H3.DiscrError.Tag,tag:B,tagName:G})),X.ok(K);function H(){let F=z();Y.if(!1);for(let L in F)Y.elseIf(JX._`${B} === ${L}`),Y.assign(K,V(F[L]));Y.else(),X.error(!1,{discrError:H3.DiscrError.Mapping,tag:B,tagName:G}),Y.endIf()}function V(F){let L=Y.name("valid"),q=X.subschema({keyword:"oneOf",schemaProp:F},L);return X.mergeEvaluated(q,JX.Name),L}function z(){var F;let L={},q=O(W),w=!0;for(let D=0;D<J.length;D++){let E=J[D];if((E===null||E===void 0?void 0:E.$ref)&&!(0,LR.schemaHasRulesButRef)(E,$.self.RULES)){let S=E.$ref;if(E=$V.resolveRef.call($.self,$.schemaEnv.root,$.baseId,S),E instanceof $V.SchemaEnv)E=E.schema;if(E===void 0)throw new UR.default($.opts.uriResolver,$.baseId,S)}let I=(F=E===null||E===void 0?void 0:E.properties)===null||F===void 0?void 0:F[G];if(typeof I!="object")throw Error(`discriminator: oneOf subschemas (or referenced schemas) must have "properties/${G}"`);w=w&&(q||O(E)),R(I,D)}if(!w)throw Error(`discriminator: "${G}" must be required`);return L;function O({required:D}){return Array.isArray(D)&&D.includes(G)}function R(D,E){if(D.const)P(D.const,E);else if(D.enum)for(let I of D.enum)P(I,E);else throw Error(`discriminator: "properties/${G}" must have "const" or "enum"`)}function P(D,E){if(typeof D!="string"||D in L)throw Error(`discriminator: "${G}" values must be unique strings`);L[D]=E}}}};JV.default=OR});var KV=v((Pf,PR)=>{PR.exports={$schema:"http://json-schema.org/draft-07/schema#",$id:"http://json-schema.org/draft-07/schema#",title:"Core schema meta-schema",definitions:{schemaArray:{type:"array",minItems:1,items:{$ref:"#"}},nonNegativeInteger:{type:"integer",minimum:0},nonNegativeIntegerDefault0:{allOf:[{$ref:"#/definitions/nonNegativeInteger"},{default:0}]},simpleTypes:{enum:["array","boolean","integer","null","number","object","string"]},stringArray:{type:"array",items:{type:"string"},uniqueItems:!0,default:[]}},type:["object","boolean"],properties:{$id:{type:"string",format:"uri-reference"},$schema:{type:"string",format:"uri"},$ref:{type:"string",format:"uri-reference"},$comment:{type:"string"},title:{type:"string"},description:{type:"string"},default:!0,readOnly:{type:"boolean",default:!1},examples:{type:"array",items:!0},multipleOf:{type:"number",exclusiveMinimum:0},maximum:{type:"number"},exclusiveMaximum:{type:"number"},minimum:{type:"number"},exclusiveMinimum:{type:"number"},maxLength:{$ref:"#/definitions/nonNegativeInteger"},minLength:{$ref:"#/definitions/nonNegativeIntegerDefault0"},pattern:{type:"string",format:"regex"},additionalItems:{$ref:"#"},items:{anyOf:[{$ref:"#"},{$ref:"#/definitions/schemaArray"}],default:!0},maxItems:{$ref:"#/definitions/nonNegativeInteger"},minItems:{$ref:"#/definitions/nonNegativeIntegerDefault0"},uniqueItems:{type:"boolean",default:!1},contains:{$ref:"#"},maxProperties:{$ref:"#/definitions/nonNegativeInteger"},minProperties:{$ref:"#/definitions/nonNegativeIntegerDefault0"},required:{$ref:"#/definitions/stringArray"},additionalProperties:{$ref:"#"},definitions:{type:"object",additionalProperties:{$ref:"#"},default:{}},properties:{type:"object",additionalProperties:{$ref:"#"},default:{}},patternProperties:{type:"object",additionalProperties:{$ref:"#"},propertyNames:{format:"regex"},default:{}},dependencies:{type:"object",additionalProperties:{anyOf:[{$ref:"#"},{$ref:"#/definitions/stringArray"}]}},propertyNames:{$ref:"#"},const:!0,enum:{type:"array",items:!0,minItems:1,uniqueItems:!0},type:{anyOf:[{$ref:"#/definitions/simpleTypes"},{type:"array",items:{$ref:"#/definitions/simpleTypes"},minItems:1,uniqueItems:!0}]},format:{type:"string"},contentMediaType:{type:"string"},contentEncoding:{type:"string"},if:{$ref:"#"},then:{$ref:"#"},else:{$ref:"#"},allOf:{$ref:"#/definitions/schemaArray"},anyOf:{$ref:"#/definitions/schemaArray"},oneOf:{$ref:"#/definitions/schemaArray"},not:{$ref:"#"}},default:!0}});var z3=v((o0,V3)=>{Object.defineProperty(o0,"__esModule",{value:!0});o0.MissingRefError=o0.ValidationError=o0.CodeGen=o0.Name=o0.nil=o0.stringify=o0.str=o0._=o0.KeywordCxt=o0.Ajv=void 0;var wR=zB(),NR=XV(),AR=GV(),BV=KV(),jR=["/properties"],_4="http://json-schema.org/draft-07/schema";class b9 extends wR.default{_addVocabularies(){if(super._addVocabularies(),NR.default.forEach((X)=>this.addVocabulary(X)),this.opts.discriminator)this.addKeyword(AR.default)}_addDefaultMetaSchema(){if(super._addDefaultMetaSchema(),!this.opts.meta)return;let X=this.opts.$data?this.$dataMetaSchema(BV,jR):BV;this.addMetaSchema(X,_4,!1),this.refs["http://json-schema.org/schema"]=_4}defaultMeta(){return this.opts.defaultMeta=super.defaultMeta()||(this.getSchema(_4)?_4:void 0)}}o0.Ajv=b9;V3.exports=o0=b9;V3.exports.Ajv=b9;Object.defineProperty(o0,"__esModule",{value:!0});o0.default=b9;var ER=D9();Object.defineProperty(o0,"KeywordCxt",{enumerable:!0,get:function(){return ER.KeywordCxt}});var GX=e();Object.defineProperty(o0,"_",{enumerable:!0,get:function(){return GX._}});Object.defineProperty(o0,"str",{enumerable:!0,get:function(){return GX.str}});Object.defineProperty(o0,"stringify",{enumerable:!0,get:function(){return GX.stringify}});Object.defineProperty(o0,"nil",{enumerable:!0,get:function(){return GX.nil}});Object.defineProperty(o0,"Name",{enumerable:!0,get:function(){return GX.Name}});Object.defineProperty(o0,"CodeGen",{enumerable:!0,get:function(){return GX.CodeGen}});var RR=U4();Object.defineProperty(o0,"ValidationError",{enumerable:!0,get:function(){return RR.default}});var TR=P9();Object.defineProperty(o0,"MissingRefError",{enumerable:!0,get:function(){return TR.default}})});var PV=v((OV)=>{Object.defineProperty(OV,"__esModule",{value:!0});OV.formatNames=OV.fastFormats=OV.fullFormats=void 0;function k1(X,Y){return{validate:X,compare:Y}}OV.fullFormats={date:k1(FV,q3),time:k1(U3(!0),O3),"date-time":k1(HV(!0),LV),"iso-time":k1(U3(),UV),"iso-date-time":k1(HV(),qV),duration:/^P(?!$)((\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+S)?)?|(\d+W)?)$/,uri:kR,"uri-reference":/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i,"uri-template":/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i,url:/^(?:https?|ftp):\/\/(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)(?:\.(?:[a-z0-9\u{00a1}-\u{ffff}]+-)*[a-z0-9\u{00a1}-\u{ffff}]+)*(?:\.(?:[a-z\u{00a1}-\u{ffff}]{2,})))(?::\d{2,5})?(?:\/[^\s]*)?$/iu,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)$/,ipv6:/^((([0-9a-f]{1,4}:){7}([0-9a-f]{1,4}|:))|(([0-9a-f]{1,4}:){6}(:[0-9a-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){5}(((:[0-9a-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9a-f]{1,4}:){4}(((:[0-9a-f]{1,4}){1,3})|((:[0-9a-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){3}(((:[0-9a-f]{1,4}){1,4})|((:[0-9a-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){2}(((:[0-9a-f]{1,4}){1,5})|((:[0-9a-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9a-f]{1,4}:){1}(((:[0-9a-f]{1,4}){1,6})|((:[0-9a-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9a-f]{1,4}){1,7})|((:[0-9a-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))$/i,regex:mR,uuid:/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i,"json-pointer":/^(?:\/(?:[^~/]|~0|~1)*)*$/,"json-pointer-uri-fragment":/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i,"relative-json-pointer":/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/,byte:_R,int32:{type:"number",validate:hR},int64:{type:"number",validate:gR},float:{type:"number",validate:zV},double:{type:"number",validate:zV},password:!0,binary:!0};OV.fastFormats={...OV.fullFormats,date:k1(/^\d\d\d\d-[0-1]\d-[0-3]\d$/,q3),time:k1(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,O3),"date-time":k1(/^\d\d\d\d-[0-1]\d-[0-3]\dt(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,LV),"iso-time":k1(/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,UV),"iso-date-time":k1(/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,qV),uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i};OV.formatNames=Object.keys(OV.fullFormats);function IR(X){return X%4===0&&(X%100!==0||X%400===0)}var SR=/^(\d\d\d\d)-(\d\d)-(\d\d)$/,bR=[0,31,28,31,30,31,30,31,31,30,31,30,31];function FV(X){let Y=SR.exec(X);if(!Y)return!1;let Q=+Y[1],Z=+Y[2],W=+Y[3];return Z>=1&&Z<=12&&W>=1&&W<=(Z===2&&IR(Q)?29:bR[Z])}function q3(X,Y){if(!(X&&Y))return;if(X>Y)return 1;if(X<Y)return-1;return 0}var F3=/^(\d\d):(\d\d):(\d\d(?:\.\d+)?)(z|([+-])(\d\d)(?::?(\d\d))?)?$/i;function U3(X){return function(Q){let Z=F3.exec(Q);if(!Z)return!1;let W=+Z[1],$=+Z[2],J=+Z[3],G=Z[4],K=Z[5]==="-"?-1:1,B=+(Z[6]||0),H=+(Z[7]||0);if(B>23||H>59||X&&!G)return!1;if(W<=23&&$<=59&&J<60)return!0;let V=$-H*K,z=W-B*K-(V<0?1:0);return(z===23||z===-1)&&(V===59||V===-1)&&J<61}}function O3(X,Y){if(!(X&&Y))return;let Q=new Date("2020-01-01T"+X).valueOf(),Z=new Date("2020-01-01T"+Y).valueOf();if(!(Q&&Z))return;return Q-Z}function UV(X,Y){if(!(X&&Y))return;let Q=F3.exec(X),Z=F3.exec(Y);if(!(Q&&Z))return;if(X=Q[1]+Q[2]+Q[3],Y=Z[1]+Z[2]+Z[3],X>Y)return 1;if(X<Y)return-1;return 0}var L3=/t|\s/i;function HV(X){let Y=U3(X);return function(Z){let W=Z.split(L3);return W.length===2&&FV(W[0])&&Y(W[1])}}function LV(X,Y){if(!(X&&Y))return;let Q=new Date(X).valueOf(),Z=new Date(Y).valueOf();if(!(Q&&Z))return;return Q-Z}function qV(X,Y){if(!(X&&Y))return;let[Q,Z]=X.split(L3),[W,$]=Y.split(L3),J=q3(Q,W);if(J===void 0)return;return J||O3(Z,$)}var CR=/\/|:/,yR=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;function kR(X){return CR.test(X)&&yR.test(X)}var VV=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/gm;function _R(X){return VV.lastIndex=0,VV.test(X)}var vR=-2147483648,fR=2147483647;function hR(X){return Number.isInteger(X)&&X<=fR&&X>=vR}function gR(X){return Number.isInteger(X)}function zV(){return!0}var uR=/[^\\]\\Z/;function mR(X){if(uR.test(X))return!1;try{return new RegExp(X),!0}catch(Y){return!1}}});var NV=v((wV)=>{Object.defineProperty(wV,"__esModule",{value:!0});wV.formatLimitDefinition=void 0;var cR=z3(),A1=e(),A6=A1.operators,v4={formatMaximum:{okStr:"<=",ok:A6.LTE,fail:A6.GT},formatMinimum:{okStr:">=",ok:A6.GTE,fail:A6.LT},formatExclusiveMaximum:{okStr:"<",ok:A6.LT,fail:A6.GTE},formatExclusiveMinimum:{okStr:">",ok:A6.GT,fail:A6.LTE}},pR={message:({keyword:X,schemaCode:Y})=>A1.str`should be ${v4[X].okStr} ${Y}`,params:({keyword:X,schemaCode:Y})=>A1._`{comparison: ${v4[X].okStr}, limit: ${Y}}`};wV.formatLimitDefinition={keyword:Object.keys(v4),type:"string",schemaType:"string",$data:!0,error:pR,code(X){let{gen:Y,data:Q,schemaCode:Z,keyword:W,it:$}=X,{opts:J,self:G}=$;if(!J.validateFormats)return;let K=new cR.KeywordCxt($,G.RULES.all.format.definition,"format");if(K.$data)B();else H();function B(){let z=Y.scopeValue("formats",{ref:G.formats,code:J.code.formats}),F=Y.const("fmt",A1._`${z}[${K.schemaCode}]`);X.fail$data((0,A1.or)(A1._`typeof ${F} != "object"`,A1._`${F} instanceof RegExp`,A1._`typeof ${F}.compare != "function"`,V(F)))}function H(){let z=K.schema,F=G.formats[z];if(!F||F===!0)return;if(typeof F!="object"||F instanceof RegExp||typeof F.compare!="function")throw Error(`"${W}": format "${z}" does not define "compare" function`);let L=Y.scopeValue("formats",{key:z,ref:F,code:J.code.formats?A1._`${J.code.formats}${(0,A1.getProperty)(z)}`:void 0});X.fail$data(V(L))}function V(z){return A1._`${z}.compare(${Q}, ${Z}) ${v4[W].fail} 0`}},dependencies:["format"]};var lR=(X)=>{return X.addKeyword(wV.formatLimitDefinition),X};wV.default=lR});var RV=v((C9,EV)=>{Object.defineProperty(C9,"__esModule",{value:!0});var KX=PV(),nR=NV(),w3=e(),AV=new w3.Name("fullFormats"),rR=new w3.Name("fastFormats"),N3=(X,Y={keywords:!0})=>{if(Array.isArray(Y))return jV(X,Y,KX.fullFormats,AV),X;let[Q,Z]=Y.mode==="fast"?[KX.fastFormats,rR]:[KX.fullFormats,AV],W=Y.formats||KX.formatNames;if(jV(X,W,Q,Z),Y.keywords)(0,nR.default)(X);return X};N3.get=(X,Y="full")=>{let Z=(Y==="fast"?KX.fastFormats:KX.fullFormats)[X];if(!Z)throw Error(`Unknown format "${X}"`);return Z};function jV(X,Y,Q,Z){var W,$;(W=($=X.opts.code).formats)!==null&&W!==void 0||($.formats=w3._`require("ajv-formats/dist/formats").${Z}`);for(let J of Y)X.addFormat(J,Q[J])}EV.exports=C9=N3;Object.defineProperty(C9,"__esModule",{value:!0});C9.default=N3});var bU=Object.defineProperty;var p7=(X,Y)=>{for(var Q in Y)bU(X,Q,{get:Y[Q],enumerable:!0})};var CU={};p7(CU,{ConfigurableModel:()=>xQ,MODEL_PROVIDER_CONFIG:()=>l7,_inferModelProvider:()=>lW,getChatModelByClassName:()=>pW,initChatModel:()=>d0});var l7={openai:{package:"@langchain/openai",className:"ChatOpenAI"},anthropic:{package:"@langchain/anthropic",className:"ChatAnthropic"},azure_openai:{package:"@langchain/openai",className:"AzureChatOpenAI"},cohere:{package:"@langchain/cohere",className:"ChatCohere"},"google-vertexai":{package:"@langchain/google-vertexai",className:"ChatVertexAI"},"google-vertexai-web":{package:"@langchain/google-vertexai-web",className:"ChatVertexAI"},"google-genai":{package:"@langchain/google-genai",className:"ChatGoogleGenerativeAI"},ollama:{package:"@langchain/ollama",className:"ChatOllama"},mistralai:{package:"@langchain/mistralai",className:"ChatMistralAI"},mistral:{package:"@langchain/mistralai",className:"ChatMistralAI"},groq:{package:"@langchain/groq",className:"ChatGroq"},cerebras:{package:"@langchain/cerebras",className:"ChatCerebras"},bedrock:{package:"@langchain/aws",className:"ChatBedrockConverse"},deepseek:{package:"@langchain/deepseek",className:"ChatDeepSeek"},xai:{package:"@langchain/xai",className:"ChatXAI"},fireworks:{package:"@langchain/community/chat_models/fireworks",className:"ChatFireworks",hasCircularDependency:!0},together:{package:"@langchain/community/chat_models/togetherai",className:"ChatTogetherAI",hasCircularDependency:!0},perplexity:{package:"@langchain/community/chat_models/perplexity",className:"ChatPerplexity",hasCircularDependency:!0}},cW=Object.keys(l7);async function pW(X){let Y=Object.entries(l7).find(([,Z])=>Z.className===X);if(!Y)return;let[,Q]=Y;try{return(await import(Q.package))[Q.className]}catch(Z){let W=Z;if("code"in W&&W.code?.toString().includes("ERR_MODULE_NOT_FOUND")&&"message"in W){let $=W.message.split("Error: Cannot find package '")[1].split("'")[0];throw Error(`Unable to import ${$}. Please install with \`npm install ${$}\` or \`pnpm install ${$}\``)}throw Z}}async function yU(X,Y,Q={}){let Z=Y||lW(X);if(!Z)throw Error(`Unable to infer model provider for { model: ${X} }, please specify modelProvider directly.`);let W=l7[Z];if(!W){let K=cW.join(", ");throw Error(`Unsupported { modelProvider: ${Z} }.
|
|
9
|
-
|
|
10
|
-
Supported model providers are: ${K}`)}let{modelProvider:$,...J}=Q;return new(await pW(W.className))({model:X,...J})}function lW(X){if(X.startsWith("gpt-3")||X.startsWith("gpt-4")||X.startsWith("gpt-5")||X.startsWith("o1")||X.startsWith("o3")||X.startsWith("o4"))return"openai";else if(X.startsWith("claude"))return"anthropic";else if(X.startsWith("command"))return"cohere";else if(X.startsWith("accounts/fireworks"))return"fireworks";else if(X.startsWith("gemini"))return"google-vertexai";else if(X.startsWith("amazon."))return"bedrock";else if(X.startsWith("mistral"))return"mistralai";else if(X.startsWith("sonar")||X.startsWith("pplx"))return"perplexity";else return}var xQ=class X extends N8{_llmType(){return"chat_model"}lc_namespace=["langchain","chat_models"];_defaultConfig={};_configurableFields="any";_configPrefix;_queuedMethodOperations={};_modelInstanceCache=new Map;_profile;constructor(Y){super(Y);if(this._defaultConfig=Y.defaultConfig??{},Y.configurableFields==="any")this._configurableFields="any";else this._configurableFields=Y.configurableFields??["model","modelProvider"];if(Y.configPrefix)this._configPrefix=Y.configPrefix.endsWith("_")?Y.configPrefix:`${Y.configPrefix}_`;else this._configPrefix="";this._queuedMethodOperations=Y.queuedMethodOperations??this._queuedMethodOperations,this._profile=Y.profile??void 0}async _getModelInstance(Y){let Q=JSON.stringify(Y??{}),Z=this._modelInstanceCache.get(Q);if(Z)return Z;let W={...this._defaultConfig,...this._modelParams(Y)},$=await yU(W.model,W.modelProvider,W);for(let[J,G]of Object.entries(this._queuedMethodOperations))if(J in $&&typeof $[J]==="function")$=await $[J](...G);return this._modelInstanceCache.set(Q,$),$}async _generate(Y,Q,Z){return(await this._getModelInstance(Q))._generate(Y,Q??{},Z)}bindTools(Y,Q){let Z={...this._queuedMethodOperations};return Z.bindTools=[Y,Q],new X({defaultConfig:this._defaultConfig,configurableFields:this._configurableFields,configPrefix:this._configPrefix,queuedMethodOperations:Z})}withStructuredOutput=(Y,...Q)=>{let Z={...this._queuedMethodOperations};return Z.withStructuredOutput=[Y,...Q],new X({defaultConfig:this._defaultConfig,configurableFields:this._configurableFields,configPrefix:this._configPrefix,queuedMethodOperations:Z})};_modelParams(Y){let Q=Y?.configurable??{},Z={};for(let[W,$]of Object.entries(Q))if(W.startsWith(this._configPrefix)){let J=this._removePrefix(W,this._configPrefix);Z[J]=$}if(this._configurableFields!=="any")Z=Object.fromEntries(Object.entries(Z).filter(([W])=>this._configurableFields.includes(W)));return Z}_removePrefix(Y,Q){return Y.startsWith(Q)?Y.slice(Q.length):Y}withConfig(Y){let Q={...Y||{}},Z=this._modelParams(Q),W=Object.fromEntries(Object.entries(Q).filter(([J])=>J!=="configurable"));W.configurable=Object.fromEntries(Object.entries(Q.configurable||{}).filter(([J])=>this._configPrefix&&!Object.keys(Z).includes(this._removePrefix(J,this._configPrefix))));let $=new X({defaultConfig:{...this._defaultConfig,...Z},configurableFields:Array.isArray(this._configurableFields)?[...this._configurableFields]:this._configurableFields,configPrefix:this._configPrefix,queuedMethodOperations:this._queuedMethodOperations});return new M1({config:Q,bound:$})}async invoke(Y,Q){let Z=await this._getModelInstance(Q),W=hX(Q);return Z.invoke(Y,W)}async stream(Y,Q){let Z=await this._getModelInstance(Q),W=new dW({generator:await Z.stream(Y,Q),config:Q});return await W.setup,MQ.fromAsyncGenerator(W)}async batch(Y,Q,Z){return super.batch(Y,Q,Z)}async*transform(Y,Q){let Z=await this._getModelInstance(Q),W=hX(Q);yield*Z.transform(Y,W)}async*streamLog(Y,Q,Z){let W=await this._getModelInstance(Q),$=hX(Q);yield*W.streamLog(Y,$,{...Z,_schemaFormat:"original",includeNames:Z?.includeNames,includeTypes:Z?.includeTypes,includeTags:Z?.includeTags,excludeNames:Z?.excludeNames,excludeTypes:Z?.excludeTypes,excludeTags:Z?.excludeTags})}streamEvents(Y,Q,Z){let W=this;async function*$(){let J=await W._getModelInstance(Q),G=hX(Q),K=J.streamEvents(Y,G,Z);for await(let B of K)yield B}return MQ.fromAsyncGenerator($())}get profile(){if(this._profile)return this._profile;let Y=JSON.stringify({});return this._modelInstanceCache.get(Y)?.profile??{}}};async function d0(X,Y){let{configurableFields:Q,configPrefix:Z,modelProvider:W,profile:$,...J}={configPrefix:"",...Y??{}};if(W===void 0&&X?.includes(":")){let[H,...V]=X.split(":"),z=V.length===0?[H]:[H,V.join(":")];if(cW.includes(z[0]))[W,X]=z}let G=Array.isArray(Q)?[...Q]:Q;if(!X&&G===void 0)G=["model","modelProvider"];if(Z&&G===void 0)console.warn(`{ configPrefix: ${Z} } has been set but no fields are configurable. Set { configurableFields: [...] } to specify the model params that are configurable.`);let K={...J},B;if(G===void 0)B=new xQ({defaultConfig:{...K,model:X,modelProvider:W},configPrefix:Z,profile:$});else{if(X)K.model=X;if(W)K.modelProvider=W;B=new xQ({defaultConfig:K,configPrefix:Z,configurableFields:G,profile:$})}return await B._getModelInstance(),B}var A8=class extends Error{constructor(){super("The provided LLM already has bound tools. Please provide an LLM without bound tools to createAgent. The agent will bind the tools provided in the 'tools' parameter.")}},j8=class extends Error{toolNames;constructor(X){super(`The model has called multiple tools: ${X.join(", ")} to return a structured output. This is not supported. Please provide a single structured output.`);this.toolNames=X}},gX=class extends Error{toolName;errors;constructor(X,Y){super(`Failed to parse structured output for tool '${X}':${Y.map((Q)=>`
|
|
11
|
-
- ${Q}`).join("")}.`);this.toolName=X,this.errors=Y}},E8=class extends Error{toolCall;toolError;constructor(X,Y){let Q=X instanceof Error?X:Error(String(X)),Z=JSON.stringify(Y.args);super(`Error invoking tool '${Y.name}' with kwargs ${Z} with error: ${Q.stack}
|
|
12
|
-
Please fix the error and try again.`);this.toolCall=Y,this.toolError=Q}};function uX(X){return"invoke"in X&&typeof X.invoke==="function"&&"_streamResponseChunks"in X}function R8(X){return typeof X==="object"&&X!=null&&"_queuedMethodOperations"in X&&"_model"in X&&typeof X._model==="function"}var kU=0,z1=class X{constructor(Y,Q,Z){this.schema=Y,this.tool=Q,this.options=Z}get name(){return this.tool.function.name}static fromSchema(Y,Q){function Z(G){return G??`extract-${++kU}`}if(m1(Y)){let G=e0(Y),K={type:"function",function:{name:Z(),strict:!1,description:G.description??"Tool for extracting structured output from the model's response.",parameters:G}};return new X(G,K,Q)}let W;if(typeof Y.name==="string"&&typeof Y.parameters==="object"&&Y.parameters!=null)W=Y;else W={name:Z(Y.title),description:Y.description??"",parameters:Y.schema||Y};let $=e0(Y);return new X($,{type:"function",function:W},Q)}parse(Y){let Z=new IQ(this.schema).validate(Y);if(!Z.valid)throw new gX(this.name,Z.errors.map((W)=>W.error));return Y}},x1=class X{_schemaType;constructor(Y){this.schema=Y}static fromSchema(Y){let Q=e0(Y);return new X(Q)}parse(Y){if(typeof Y.content!=="string"||Y.content==="")return;try{let Q=JSON.parse(Y.content);if(!new IQ(this.schema).validate(Q).valid)return;return Q}catch{}}};function SQ(X,Y,Q){if(!X)return[];if(typeof X==="object"&&X!==null&&"__responseFormatUndefined"in X)return[];if(Array.isArray(X)){if(X.every((W)=>W instanceof z1||W instanceof x1))return X;if(X.every((W)=>i7(W)))return X.map((W)=>z1.fromSchema(W,Y));if(X.every((W)=>typeof W==="object"&&W!==null&&!i7(W)))return X.map((W)=>z1.fromSchema(W,Y));throw Error(`Invalid response format: list contains mixed types.
|
|
13
|
-
All items must be either InteropZodObject or plain JSON schema objects.`)}if(X instanceof z1||X instanceof x1)return[X];let Z=nW(Q);if(i7(X))return Z?[x1.fromSchema(X)]:[z1.fromSchema(X,Y)];if(typeof X==="object"&&X!==null&&"properties"in X)return Z?[x1.fromSchema(X)]:[z1.fromSchema(X,Y)];throw Error(`Invalid response format: ${String(X)}`)}function bQ(X,Y){return SQ(X,Y)}function CQ(X){return x1.fromSchema(X)}var _U=["ChatOpenAI","ChatXAI"],iW=["grok","gpt-5","gpt-4.1","gpt-4o","gpt-oss","o3-pro","o3-mini"];function nW(X){if(!X)return!1;if(typeof X==="string"){let Q=X.split(":").pop();return iW.some((Z)=>Q.includes(Z))}if(R8(X))return nW(X._defaultConfig.model);if(!uX(X))return!1;let Y=X.getName();if(Y==="FakeToolCallingChatModel")return!0;if(_U.includes(Y)&&(("model"in X)&&iW.some((Q)=>typeof X.model==="string"&&X.model.includes(Q))||Y==="FakeToolCallingModel"&&("structuredResponse"in X)))return!0;return!1}function g6(X){let Y=0;for(let Q of X){let Z;if(typeof Q.content==="string")Z=Q.content;else if(Array.isArray(Q.content))Z=Q.content.map((W)=>{if(typeof W==="string")return W;if(W.type==="text"&&"text"in W)return W.text;return""}).join("");else Z="";if(_.isInstance(Q)&&Array.isArray(Q.tool_calls)&&Q.tool_calls.length>0)Z+=JSON.stringify(Q.tool_calls);if(g.isInstance(Q))Z+=Q.tool_call_id??"";Y+=Z.length}return Math.ceil(Y/4)}function I1(X){if(!X||typeof X==="function")return;return X.canJumpTo}function G6(X){if(typeof X==="function")return X;return X.hook}function n7(X){return new Promise((Y)=>setTimeout(Y,X))}function r7(X,Y){let{backoffFactor:Q,initialDelayMs:Z,maxDelayMs:W,jitter:$}=X,J;if(Q===0)J=Z;else J=Z*Q**Y;if(J=Math.min(J,W),$&&J>0){let G=J*0.25;J=J+(Math.random()*2-1)*G,J=Math.max(0,J)}return J}function X0(X){return{name:X.name,stateSchema:X.stateSchema,contextSchema:X.contextSchema,wrapToolCall:X.wrapToolCall,wrapModelCall:X.wrapModelCall,beforeAgent:X.beforeAgent,beforeModel:X.beforeModel,afterModel:X.afterModel,afterAgent:X.afterAgent,tools:X.tools??[]}}var kQ=class X extends N8{toolCalls;toolStyle;indexRef;structuredResponse;tools=[];constructor({toolCalls:Y=[],toolStyle:Q="openai",index:Z=0,structuredResponse:W,indexRef:$,...J}={}){super(J);this.toolCalls=Y,this.toolStyle=Q,this.indexRef=$??{current:Z},this.structuredResponse=W}get index(){return this.indexRef.current}set index(Y){this.indexRef.current=Y}_llmType(){return"fake-tool-calling"}_combineLLMOutput(){return[]}bindTools(Y){let Q=new X({toolCalls:this.toolCalls,toolStyle:this.toolStyle,structuredResponse:this.structuredResponse,indexRef:this.indexRef});return Q.tools=[...this.tools,...Y],Q}withStructuredOutput(Y){return new u6({func:async()=>{return this.structuredResponse}})}async _generate(Y,Q,Z){let $=Y[Y.length-1].content;if(Y.length>1)$=Y.map((V)=>V.content).filter(Boolean).map((V)=>{if(typeof V==="string")return V;else if(typeof V==="object"&&"text"in V)return V.text;else if(Array.isArray(V))return V.map((z)=>{if(typeof z==="string")return z;else if(typeof z==="object"&&"text"in z)return z.text;return""}).join("-");else return JSON.stringify(V)}).join("-");if((Y.length===1||Y.length===2&&Y.every(z0.isInstance))&&this.index!==0)this.index=0;let G=this.toolCalls[this.index]||[],K=this.index.toString();this.index=(this.index+1)%Math.max(1,this.toolCalls.length);let B=new _({content:$,id:K,tool_calls:G.length>0?G.map((H)=>({...H,type:"tool_call"})):void 0});return{generations:[{text:$,message:B}],llmOutput:{}}}};var _Q=Symbol.for("langgraph-zod");if(!(_Q in globalThis))globalThis[_Q]=new WeakSet;function rW(X){let Y=globalThis[_Q];if(Y.has(X))return;Object.defineProperty(X,"langgraph",{get(){let Q=this;return{metadata(Z){return S1(Q,{jsonSchemaExtra:Z})},reducer(Z,W){return S1(Q,{default:a7(Q),reducer:{schema:W,fn:Z}})}}}}),Y.add(X)}try{rW(U.ZodType.prototype),rW(A.ZodType.prototype)}catch(X){throw Error("Failed to extend Zod with LangGraph-related methods. This is most likely a bug, consider opening an issue and/or using `withLangGraph` to augment your Zod schema.",{cause:X})}var sW=class extends aW{constructor(X){super();this.parent=X,this._map=this.parent._map}add(X,...Y){let Q=Y[0];if(Q&&!Q?.default){let Z=a7(X);if(Z!=null)Q.default=Z}return super.add(X,...Y)}},vU=new sW(mX);function tW(X=!0,Y,Q=[]){let Z={messages:S1(U.custom(),T8),jumpTo:U.union([U.literal("model_request"),U.literal("tools"),U.literal("end"),U.undefined()]).optional()},W=(G)=>{let{shape:K}=G;for(let[B,H]of Object.entries(K)){if(B.startsWith("_"))continue;if(!(B in Z))Z[B]=H}};if(Y&&"shape"in Y)W(Y);for(let G of Q)if(G.stateSchema)W(G.stateSchema);if(X)Z.structuredResponse=U.any().optional();let $=U.object(Z);return mX.getChannelsForSchema($)}var YS=U.object({llmInputMessages:S1(U.custom(),{reducer:{fn:(X,Y)=>T8.reducer.fn([],Y)},default:()=>[]}),messages:S1(U.custom(),T8)});var vQ=/<name>(.*?)<\/name>/s,fQ=/<content>(.*?)<\/content>/s;function eW(X){if(!_.isInstance(X)||G1.isInstance(X))return X;if(!X.name)return X;let{name:Y}=X;if(typeof X.content==="string")return new _({...X.lc_kwargs,content:`<name>${Y}</name><content>${X.content}</content>`,name:void 0});let Q=[],Z=0;for(let W of X.content)if(typeof W==="string")Z+=1,Q.push(`<name>${Y}</name><content>${W}</content>`);else if(typeof W==="object"&&"type"in W&&W.type==="text")Z+=1,Q.push({...W,text:`<name>${Y}</name><content>${W.text}</content>`});else Q.push(W);if(!Z)Q.unshift({type:"text",text:`<name>${Y}</name><content></content>`});return new _({...X.lc_kwargs,content:Q,name:void 0})}function X$(X){if(!_.isInstance(X)||!X.content)return X;let Y=[],Q;if(Array.isArray(X.content))Y=X.content.filter((Z)=>{if(Z.type==="text"&&typeof Z.text==="string"){let W=Z.text.match(vQ),$=Z.text.match(fQ);if(W&&(!$||$[1]===""))return Q=W[1],!1;return!0}return!0}).map((Z)=>{if(Z.type==="text"&&typeof Z.text==="string"){let W=Z.text.match(vQ),$=Z.text.match(fQ);if(!W||!$)return Z;return Q=W[1],{...Z,text:$[1]}}return Z});else{let Z=X.content,W=Z.match(vQ),$=Z.match(fQ);if(!W||!$)return X;Q=W[1],Y=$[1]}return new _({...Object.keys(X.lc_kwargs??{}).length>0?X.lc_kwargs:X,content:Y,name:Q})}function d1(X){return dX.isRunnable(X)}function oW(X){if(!uX(X))return!1;return"bindTools"in X&&typeof X.bindTools==="function"}var hQ=(X,Y,Q={})=>{if(oW(X))return X.bindTools(Y,Q);if(M1.isRunnableBinding(X)&&oW(X.bound)){let Z=X.bound.bindTools(Y,Q);if(M1.isRunnableBinding(Z))return new M1({bound:Z.bound,config:{...X.config,...Z.config},kwargs:{...X.kwargs,...Z.kwargs},configFactories:Z.configFactories??X.configFactories});return new M1({bound:Z,config:X.config,kwargs:X.kwargs,configFactories:X.configFactories})}return null};function s7(X){if(typeof X==="function")return;let Y=X;if(K6.isRunnableSequence(Y))Y=Y.steps.find((Q)=>M1.isRunnableBinding(Q))||Y;if(R8(Y))return;if(M1.isRunnableBinding(Y)){let Q=Y.kwargs!=null&&typeof Y.kwargs==="object"&&"tools"in Y.kwargs&&Array.isArray(Y.kwargs.tools)&&Y.kwargs.tools.length>0,Z=Y.config!=null&&typeof Y.config==="object"&&"tools"in Y.config&&Array.isArray(Y.config.tools)&&Y.config.tools.length>0;if(Q||Z)throw new A8}if("tools"in Y&&Y.tools!==void 0&&Array.isArray(Y.tools)&&Y.tools.length>0)throw new A8}function cX(X){return Boolean(_.isInstance(X)&&X.tool_calls&&X.tool_calls.length>0)}function Y$(X){if(X==null)return new B0("");if(B0.isInstance(X))return X;if(typeof X==="string")return new B0({content:[{type:"text",text:X}]});throw Error(`Invalid systemPrompt type: expected string or SystemMessage, got ${typeof X}`)}async function Q$(X,Y,Q={}){let Z=hQ(X,Y,Q);if(Z)return Z;if(R8(X)){let W=hQ(await X._model(),Y,Q);if(W)return W}if(K6.isRunnableSequence(X)){let W=X.steps.findIndex(($)=>M1.isRunnableBinding($)||uX($)||R8($));if(W>=0){let $=hQ(X.steps[W],Y,Q);if($){let J=X.steps.slice();return J.splice(W,1,$),K6.from(J)}}}throw Error(`llm ${X} must define bindTools method.`)}function fU(X){if(X.length===0)return;if(X.length===1)return X[0];function Y(Z,W){return async($,J)=>{return Z($,async()=>W($,async()=>J($)))}}let Q=X[X.length-1];for(let Z=X.length-2;Z>=0;Z--)Q=Y(X[Z],Q);return Q}function Z$(X){let Y=X.filter((Q)=>Q.wrapToolCall);if(Y.length===0)return;return fU(Y.map((Q)=>{let Z=Q.wrapToolCall;return async($,J)=>{try{let G=await Z({...$,state:{messages:$.state.messages,...Q.stateSchema?F1(Q.stateSchema,{...$.state}):{}}},J);if(!g.isInstance(G)&&!M8(G))throw Error(`Invalid response from "wrapToolCall" in middleware "${Q.name}": expected ToolMessage or Command, got ${typeof G}`);return G}catch(G){if(G instanceof Error&&!G.message.includes(`middleware "${Q.name}"`))G.message=`Error in middleware "${Q.name}": ${G.message}`;throw G}}}))}async function J$(X,Y){let Q={};for(let Z of X){if(!Z.stateSchema)continue;let W=$$(Z.stateSchema,(G)=>G.startsWith("_")),$=await W$(W,Y);if($.success){Object.assign(Q,$.data);continue}console.log(W);let J=$.error.issues.filter((G)=>G.code==="invalid_type"&&G.message==="Required").map((G)=>` - ${G.path.join(".")}: ${G.message}`).join(`
|
|
14
|
-
`);throw Error(`Middleware "${Z.name}" has required state fields that must be initialized:
|
|
15
|
-
${J}
|
|
16
|
-
|
|
17
|
-
To fix this, either:
|
|
18
|
-
1. Provide default values in your middleware's state schema using .default():
|
|
19
|
-
stateSchema: z.object({
|
|
20
|
-
myField: z.string().default("default value")
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
2. Or make the fields optional using .optional():
|
|
24
|
-
stateSchema: z.object({
|
|
25
|
-
myField: z.string().optional()
|
|
26
|
-
})
|
|
27
|
-
|
|
28
|
-
3. Or ensure you pass these values when invoking the agent:
|
|
29
|
-
agent.invoke({
|
|
30
|
-
messages: [...],
|
|
31
|
-
${$.error.issues[0]?.path.join(".")}: "value"
|
|
32
|
-
})`)}return Q}function G$(X){let Y={messages:U.custom(()=>[]),structuredResponse:U.any().optional()};if(!X)return U.object(Y);let{shape:Q}=X,Z={...Y};for(let[W,$]of Object.entries(Q))if(W.startsWith("_"))Z[W]=$.optional();else Z[W]=$;return U.object(Z)}function b1(X){if(!X)return;if(["model_request","tools",O0].includes(X))return X;if(X==="model")return"model_request";if(X==="tools")return"tools";if(X==="end")return O0;throw Error(`Invalid jump target: ${X}, must be "model", "tools" or "end".`)}function t7(...X){return AbortSignal.any(X.filter((Y)=>Y!==null&&Y!==void 0&&typeof Y==="object"&&("aborted"in Y)&&typeof Y.aborted==="boolean"))}var x8=class extends dX{lc_namespace=["langgraph"];func;tags;config;trace=!0;recurse=!0;#X;constructor(X){super();this.name=X.name??X.func.name,this.func=X.func,this.config=X.tags?{tags:X.tags}:void 0,this.recurse=X.recurse??this.recurse}getState(){return this.#X}setState(X){this.#X={...this.#X,...X}}async invoke(X,Y){let Q=K$(this.config,Y),Z=await o7.runWithConfig(Q,async()=>this.func(X,Q));if(dX.isRunnable(Z)&&this.recurse)return await o7.runWithConfig(Q,async()=>Z.invoke(X,Q));return this.#X=Z,Z}};function B$(X,Y){let Q,Z;if(Y==="inline")Q=eW,Z=X$;else throw Error(`Invalid agent name mode: ${Y}. Needs to be one of: "inline"`);function W($){return $.map(Q)}return K6.from([u6.from(W),X,u6.from(Z)])}var P0="model_request",z$=class extends x8{#X;#Q;#Z;constructor(X){super({name:X.name??"model",func:(Y,Q)=>this.#W(Y,Q)});this.#X=X,this.#Q=X.systemMessage}#Y(X){if(!this.#X.responseFormat)return;let Y=SQ(this.#X.responseFormat,void 0,X);if(!Y.every((Z)=>Z instanceof x1))return{type:"tool",tools:Y.filter((Z)=>Z instanceof z1).reduce((Z,W)=>{return Z[W.name]=W,Z},{})};return{type:"native",strategy:Y[0]}}async#W(X,Y){let Q=X.messages.at(-1);if(Q&&g.isInstance(Q)&&Q.name&&this.#X.shouldReturnDirect.has(Q.name))return{messages:[]};let Z=await this.#J(X,Y);if("structuredResponse"in Z)return{messages:[...X.messages,...Z.messages||[]],structuredResponse:Z.structuredResponse};if(Z instanceof D0)return Z;if(Z.name=this.name,Z.lc_kwargs.name=this.name,this.#V(X,Z))return{messages:[new _({content:"Sorry, need more steps to process this request.",name:this.name,id:Z.id})]};return{messages:[Z]}}#$(){if(typeof this.#X.model==="string")return d0(this.#X.model);if(this.#X.model)return this.#X.model;throw Error("No model option was provided, either via `model` option.")}async#J(X,Y,Q={}){let Z=await this.#$(),W=Y,$=async(B)=>{s7(B.model);let H=this.#Y(B.model),V=await this.#H(B.model,B,H),z=[...this.#Z.text===""?[]:[this.#Z],...B.messages],F=t7(this.#X.signal,Y.signal),L=await H$(V.invoke(z,{...Y,signal:F}),F);if(H?.type==="native"){let R=H.strategy.parse(L);if(R)return{structuredResponse:R,messages:[L]};return L}if(!H||!L.tool_calls)return L;let q=L.tool_calls.filter((R)=>(R.name in H.tools));if(q.length===0)return L;if(q.length>1)return this.#G(L,q,H);let O=H.tools[q[0].name]?.options?.toolMessageContent;return this.#K(L,q[0],H,O??Q.lastMessage)},J=this.#X.wrapModelCallHookMiddleware??[],G=$;for(let B=J.length-1;B>=0;B--){let[H,V]=J[B];if(H.wrapModelCall){let z=G,F=H,L=V;G=async(q)=>{let w=F.contextSchema?F1(F.contextSchema,W?.context||{}):W?.context,O=Object.freeze({context:w,writer:W.writer,interrupt:W.interrupt,signal:W.signal}),R={...q,state:{...H.stateSchema?F1(V$(H.stateSchema),X):{},...L(),messages:X.messages},runtime:O},P=async(D)=>{let E=D.tools??[],I=E.filter((n)=>d1(n)&&!this.#X.toolClasses.some((m0)=>m0.name===n.name));if(I.length>0)throw Error(`You have added a new tool in "wrapModelCall" hook of middleware "${F.name}": ${I.map((n)=>n.name).join(", ")}. This is not supported.`);let S=E.filter((n)=>d1(n)&&this.#X.toolClasses.every((m0)=>m0!==n));if(S.length>0)throw Error(`You have modified a tool in "wrapModelCall" hook of middleware "${F.name}": ${S.map((n)=>n.name).join(", ")}. This is not supported.`);let x=D,C=D.systemPrompt!==this.#Z.text,h=D.systemMessage!==this.#Z;if(C&&h)throw Error("Cannot change both systemPrompt and systemMessage in the same request.");if(C)this.#Z=new B0({content:[{type:"text",text:D.systemPrompt}]}),x={...D,systemPrompt:this.#Z.text,systemMessage:this.#Z};if(h)this.#Z=new B0({...D.systemMessage}),x={...D,systemPrompt:this.#Z.text,systemMessage:this.#Z};return z(x)};if(!F.wrapModelCall)return P(R);try{let D=await F.wrapModelCall(R,P);if(!_.isInstance(D))throw Error(`Invalid response from "wrapModelCall" in middleware "${F.name}": expected AIMessage, got ${typeof D}`);return D}catch(D){if(D instanceof Error&&!D.message.includes(`middleware "${F.name}"`))D.message=`Error in middleware "${F.name}": ${D.message}`;throw D}}}}this.#Z=this.#Q;let K={model:Z,systemPrompt:this.#Z?.text,systemMessage:this.#Z,messages:X.messages,tools:this.#X.toolClasses,state:X,runtime:Object.freeze({context:W?.context,writer:W.writer,interrupt:W.interrupt,signal:W.signal})};return G(K)}#G(X,Y,Q){let Z=new j8(Y.map((W)=>W.name));return this.#B(Z,X,Y[0],Q)}#K(X,Y,Q,Z){let W=Q.tools[Y.name];try{let $=W.parse(Y.args);return{structuredResponse:$,messages:[X,new g({tool_call_id:Y.id??"",content:JSON.stringify($),name:Y.name}),new _(Z??`Returning structured response: ${JSON.stringify($)}`)]}}catch($){return this.#B($,X,Y,Q)}}async#B(X,Y,Q,Z){let W=Object.values(Z.tools).at(0)?.options?.handleError,$=Q.id;if(!$)throw Error("Tool call ID is required to handle tool output errors. Please provide a tool call ID.");if(W===!1)throw X;if(W===void 0||typeof W==="boolean"&&W||Array.isArray(W)&&W.some((J)=>J instanceof j8))return new D0({update:{messages:[Y,new g({content:X.message,tool_call_id:$})]},goto:P0});if(typeof W==="string")return new D0({update:{messages:[Y,new g({content:W,tool_call_id:$})]},goto:P0});if(typeof W==="function"){let J=await W(X);if(typeof J!=="string")throw Error("Error handler must return a string.");return new D0({update:{messages:[Y,new g({content:J,tool_call_id:$})]},goto:P0})}return new D0({update:{messages:[Y,new g({content:X.message,tool_call_id:$})]},goto:P0})}#V(X,Y){let Q=_.isInstance(Y)&&Y.tool_calls?.every((W)=>this.#X.shouldReturnDirect.has(W.name)),Z="remainingSteps"in X?X.remainingSteps:void 0;return Boolean(Z&&(Z<1&&Q||Z<2&&cX(X.messages.at(-1))))}async#H(X,Y,Q){let Z={},W=Object.values(Q&&"tools"in Q?Q.tools:{}),$=[...Y?.tools??this.#X.toolClasses,...W.map((B)=>B.tool)],J=Y?.toolChoice||(W.length>0?"any":void 0);if(Q?.type==="native"){let B={name:Q.strategy.schema?.name??"extract",description:e7(Q.strategy.schema),schema:Q.strategy.schema,strict:!0};Object.assign(Z,{response_format:{type:"json_schema",json_schema:B},ls_structured_output_format:{kwargs:{method:"json_schema"},schema:Q.strategy.schema},strict:!0})}let G=await Q$(X,$,{...Z,...Y?.modelSettings??{},tool_choice:J});return this.#X.includeAgentName==="inline"?B$(G,this.#X.includeAgentName):G}getState(){let X=super.getState(),Y=X&&!(X instanceof D0)?X:{};return{messages:[],...Y}}};var F0="tools",L$=(X)=>Array.isArray(X)&&X.every(XY.isInstance),hU=(X)=>typeof X==="object"&&X!=null&&("messages"in X)&&L$(X.messages),gU=(X)=>typeof X==="object"&&X!=null&&("lg_tool_call"in X);function uU(X,Y){if(X instanceof E8)return new g({content:X.message,tool_call_id:Y.id,name:Y.name});return new g({content:`${X}
|
|
33
|
-
Please fix your mistakes.`,tool_call_id:Y.id,name:Y.name})}var q$=class extends x8{tools;trace=!1;signal;handleToolErrors=uU;wrapToolCall;constructor(X,Y){let{name:Q,tags:Z,handleToolErrors:W,signal:$,wrapToolCall:J}=Y??{};super({name:Q,tags:Z,func:(G,K)=>this.run(G,K)});this.options=Y,this.tools=X,this.handleToolErrors=W??this.handleToolErrors,this.signal=$,this.wrapToolCall=J}#X(X,Y,Q){if(U$(X))throw X;if(this.signal?.aborted)throw X;if(Q&&this.handleToolErrors!==!0)throw X;if(!this.handleToolErrors)throw X;if(typeof this.handleToolErrors==="function"){let Z=this.handleToolErrors(X,Y);if(Z&&g.isInstance(Z))return Z;throw X}else if(this.handleToolErrors)return new g({name:Y.name,content:`${X}
|
|
34
|
-
Please fix your mistakes.`,tool_call_id:Y.id});throw X}async runTool(X,Y,Q){let Z=async(K)=>{let{toolCall:B}=K,H=this.tools.find((V)=>V.name===B.name);if(H===void 0)throw Error(`Tool "${B.name}" not found.`);try{let V=await H.invoke({...B,type:"tool_call"},{...Y,config:Y,toolCallId:B.id,state:Y.configurable?.__pregel_scratchpad?.currentTaskInput,signal:t7(this.signal,Y.signal)});if(g.isInstance(V)||M8(V))return V;return new g({name:H.name,content:typeof V==="string"?V:JSON.stringify(V),tool_call_id:B.id})}catch(V){if(V instanceof F$)throw new E8(V,B);throw V}},W=Y,$={context:W?.context,writer:W?.writer,interrupt:W?.interrupt,signal:W?.signal},J=this.tools.find((K)=>K.name===X.name);if(!J)throw Error(`Tool "${X.name}" not found.`);let G={toolCall:X,tool:J,state:Q,runtime:$};if(this.wrapToolCall)try{return await this.wrapToolCall(G,Z)}catch(K){return this.#X(K,X,!0)}try{return await Z(G)}catch(K){return this.#X(K,X,!1)}}async run(X,Y){let Q;if(gU(X)){let{lg_tool_call:$,jumpTo:J,...G}=X;Q=[await this.runTool(X.lg_tool_call,Y,G)]}else{let $;if(L$(X))$=X;else if(hU(X))$=X.messages;else throw Error("ToolNode only accepts BaseMessage[] or { messages: BaseMessage[] } as input.");let J=new Set($.filter((K)=>K.getType()==="tool").map((K)=>K.tool_call_id)),G;for(let K=$.length-1;K>=0;K-=1){let B=$[K];if(_.isInstance(B)){G=B;break}}if(!_.isInstance(G))throw Error("ToolNode only accepts AIMessages as input.");Q=await Promise.all(G.tool_calls?.filter((K)=>K.id==null||!J.has(K.id)).map((K)=>this.runTool(K,Y,X))??[])}if(!Q.some(M8))return Array.isArray(X)?Q:{messages:Q};let Z=[],W=null;for(let $ of Q)if(M8($))if($.graph===D0.PARENT&&Array.isArray($.goto)&&$.goto.every((J)=>mU(J)))if(W)W.goto.push(...$.goto);else W=new D0({graph:D0.PARENT,goto:$.goto});else Z.push($);else Z.push(Array.isArray(X)?[$]:{messages:[$]});if(W)Z.push(W);return Z}};function mU(X){return X instanceof X1}var dU=class{},cU=class{},B6=class extends x8{#X;constructor(X,Y){super(X);this.#X=Y}async invokeMiddleware(X,Y){let Q={};if(this.middleware.contextSchema){let K=this.middleware.contextSchema?.shape;if(K){let B={},H=Y?.context||{};for(let V of Object.keys(K))if(V in H)B[V]=H[V];Q=F1(this.middleware.contextSchema,B)}}let Z={...this.#X.getState(),...X,messages:X.messages},W={context:Q,writer:Y?.writer,interrupt:Y?.interrupt,signal:Y?.signal},$=await this.runHook(Z,Object.freeze(Object.assign(new cU,{...W,context:Object.freeze(Object.assign(new dU,Q))})));if(!$)return{...Z,jumpTo:void 0};let J,G;if(this.name?.startsWith("BeforeAgentNode_"))J=I1(this.middleware.beforeAgent),G="beforeAgent.canJumpTo";else if(this.name?.startsWith("BeforeModelNode_"))J=I1(this.middleware.beforeModel),G="beforeModel.canJumpTo";else if(this.name?.startsWith("AfterAgentNode_"))J=I1(this.middleware.afterAgent),G="afterAgent.canJumpTo";else if(this.name?.startsWith("AfterModelNode_"))J=I1(this.middleware.afterModel),G="afterModel.canJumpTo";if(typeof $.jumpTo==="string"&&!J?.includes($.jumpTo)){let K=J&&J.length>0?`must be one of: ${J?.join(", ")}.`:G?`no ${G} defined in middleware ${this.middleware.name}`:"";throw Error(`Invalid jump target: ${$.jumpTo}, ${K}.`)}if(typeof $==="object"&&"type"in $){if($.type==="terminate"){if($.error)throw $.error;return{...Z,...$.result||{},jumpTo:$.jumpTo}}throw Error(`Invalid control action: ${JSON.stringify($)}`)}return{...Z,...$,jumpTo:$.jumpTo}}get nodeOptions(){return{input:G$(this.middleware.stateSchema)}}};var O$=class extends B6{lc_namespace=["langchain","agents","beforeAgentNodes"];constructor(X,Y){super({name:`BeforeAgentNode_${X.name}`,func:async(Q,Z)=>this.invokeMiddleware(Q,Z)},Y);this.middleware=X}runHook(X,Y){return G6(this.middleware.beforeAgent)(X,Y)}};var D$=class extends B6{lc_namespace=["langchain","agents","beforeModelNodes"];constructor(X,Y){super({name:`BeforeModelNode_${X.name}`,func:async(Q,Z)=>this.invokeMiddleware(Q,Z)},Y);this.middleware=X}runHook(X,Y){return G6(this.middleware.beforeModel)(X,Y)}};var P$=class extends B6{lc_namespace=["langchain","agents","afterModelNodes"];constructor(X,Y){super({name:`AfterModelNode_${X.name}`,func:async(Q,Z)=>this.invokeMiddleware(Q,Z)},Y);this.middleware=X}runHook(X,Y){return G6(this.middleware.afterModel)(X,Y)}};var w$=class extends B6{lc_namespace=["langchain","agents","afterAgentNodes"];constructor(X,Y){super({name:`AfterAgentNode_${X.name}`,func:async(Q,Z)=>this.invokeMiddleware(Q,Z)},Y);this.middleware=X}runHook(X,Y){return G6(this.middleware.afterAgent)(X,Y)}};var N$=class{#X=new Map;addNode(X,Y){this.#X.set(X.name,[...this.#X.get(X.name)??[],Y])}getState(X){let Q=(this.#X.get(X)??[]).reduce((Z,W)=>{return{...Z,...W.getState()??{}}},{});return delete Q.jumpTo,Q}};var A$=class{#X;#Q="v2";#Z;#Y=new N$;constructor(X){if(this.options=X,this.#Q=X.version??this.#Q,!X.model)throw Error("`model` option is required to create an agent.");if(typeof X.model!=="string")s7(X.model);let Y=this.options.middleware?.filter((P)=>P.tools).flatMap((P)=>P.tools)??[],Q=[...X.tools??[],...Y],Z=new Set(Q.filter(d1).filter((P)=>("returnDirect"in P)&&P.returnDirect).map((P)=>P.name)),W=tW(this.options.responseFormat!==void 0,this.options.stateSchema,this.options.middleware),J=new uQ(W,this.options.contextSchema),G=[],K=[],B=[],H=[],V=[];this.#Z=new z$({model:this.options.model,systemMessage:Y$(this.options.systemPrompt),includeAgentName:this.options.includeAgentName,name:this.options.name,responseFormat:this.options.responseFormat,middleware:this.options.middleware,toolClasses:Q,shouldReturnDirect:Z,signal:this.options.signal,wrapModelCallHookMiddleware:V});let z=new Set,F=this.options.middleware??[];for(let P=0;P<F.length;P++){let D,E,I,S,x=F[P];if(z.has(x.name))throw Error(`Middleware ${x.name} is defined multiple times`);if(z.add(x.name),x.beforeAgent){D=new O$(x,{getState:()=>this.#Y.getState(x.name)}),this.#Y.addNode(x,D);let C=`${x.name}.before_agent`;G.push({index:P,name:C,allowed:I1(x.beforeAgent)}),J.addNode(C,D,D.nodeOptions)}if(x.beforeModel){E=new D$(x,{getState:()=>this.#Y.getState(x.name)}),this.#Y.addNode(x,E);let C=`${x.name}.before_model`;K.push({index:P,name:C,allowed:I1(x.beforeModel)}),J.addNode(C,E,E.nodeOptions)}if(x.afterModel){I=new P$(x,{getState:()=>this.#Y.getState(x.name)}),this.#Y.addNode(x,I);let C=`${x.name}.after_model`;B.push({index:P,name:C,allowed:I1(x.afterModel)}),J.addNode(C,I,I.nodeOptions)}if(x.afterAgent){S=new w$(x,{getState:()=>this.#Y.getState(x.name)}),this.#Y.addNode(x,S);let C=`${x.name}.after_agent`;H.push({index:P,name:C,allowed:I1(x.afterAgent)}),J.addNode(C,S,S.nodeOptions)}if(x.wrapModelCall)V.push([x,()=>this.#Y.getState(x.name)])}if(J.addNode(P0,this.#Z),Q.filter(d1).length>0){let P=new q$(Q.filter(d1),{signal:this.options.signal,wrapToolCall:Z$(F)});J.addNode(F0,P)}let L;if(G.length>0)L=G[0].name;else if(K.length>0)L=K[0].name;else L=P0;let q=K.length>0?K[0].name:P0,w=H.length>0?H[H.length-1].name:O0;J.addEdge(gQ,L);let O=Q.filter(d1);for(let P=0;P<G.length;P++){let D=G[P],E=D.name,S=P===G.length-1?q:G[P+1].name;if(D.allowed&&D.allowed.length>0){let x=O.length>0,C=D.allowed.map((n)=>b1(n)).filter((n)=>n!==F0||x),h=Array.from(new Set([S,...C.map((n)=>n===O0?w:n)]));J.addConditionalEdges(E,this.#B(O,S,w),h)}else J.addEdge(E,S)}for(let P=0;P<K.length;P++){let D=K[P],E=D.name,S=P===K.length-1?P0:K[P+1].name;if(D.allowed&&D.allowed.length>0){let x=O.length>0,C=D.allowed.map((n)=>b1(n)).filter((n)=>n!==F0||x),h=Array.from(new Set([S,...C]));J.addConditionalEdges(E,this.#V(O,S),h)}else J.addEdge(E,S)}let R=B.at(-1);if(B.length>0&&R)J.addEdge(P0,R.name);else{let D=this.#W(O).map((E)=>E===O0?w:E);if(D.length===1)J.addEdge(P0,D[0]);else J.addConditionalEdges(P0,this.#J(w),D)}for(let P=B.length-1;P>0;P--){let D=B[P],E=D.name,I=B[P-1].name;if(D.allowed&&D.allowed.length>0){let S=O.length>0,x=D.allowed.map((h)=>b1(h)).filter((h)=>h!==F0||S),C=Array.from(new Set([I,...x]));J.addConditionalEdges(E,this.#K(O,D.allowed,I),C)}else J.addEdge(E,I)}if(B.length>0){let P=B[0],D=P.name,E=this.#W(O,!0).filter((x)=>x!==F0||Q.filter(d1).length>0),I=Boolean(P.allowed&&P.allowed.length>0),S=E.map((x)=>x===O0?w:x);J.addConditionalEdges(D,this.#G(O,I,w),S)}for(let P=H.length-1;P>0;P--){let D=H[P],E=D.name,I=H[P-1].name;if(D.allowed&&D.allowed.length>0){let S=O.length>0,x=D.allowed.map((h)=>b1(h)).filter((h)=>h!==F0||S),C=Array.from(new Set([I,...x]));J.addConditionalEdges(E,this.#K(O,D.allowed,I),C)}else J.addEdge(E,I)}if(H.length>0){let P=H[0],D=P.name;if(P.allowed&&P.allowed.length>0){let E=O.length>0,I=P.allowed.map((x)=>b1(x)).filter((x)=>x!==F0||E),S=Array.from(new Set([O0,...I]));J.addConditionalEdges(D,this.#K(O,P.allowed,O0),S)}else J.addEdge(D,O0)}if(O.length>0){let P=q;if(Z.size>0)J.addConditionalEdges(F0,this.#$(Z,w),[P,w]);else J.addEdge(F0,P)}this.#X=J.compile({checkpointer:this.options.checkpointer,store:this.options.store,name:this.options.name,description:this.options.description})}get graph(){return this.#X}#W(X,Y=!1){let Q=[];if(X.length>0)Q.push(F0);if(Y)Q.push(P0);return Q.push(O0),Q}#$(X,Y){return(Q)=>{let Z=Q.messages,W=Z[Z.length-1];if(g.isInstance(W)&&W.name&&X.has(W.name))return this.options.responseFormat?P0:Y;return P0}}#J(X=O0){return(Y)=>{let Z=Y.messages.at(-1);if(!_.isInstance(Z)||!Z.tool_calls||Z.tool_calls.length===0)return X;if(Z.tool_calls.every((J)=>J.name.startsWith("extract-")))return X;if(this.#Q==="v1")return F0;let $=Z.tool_calls.filter((J)=>!J.name.startsWith("extract-"));if($.length===0)return X;return $.map((J)=>new X1(F0,{...Y,lg_tool_call:J}))}}#G(X,Y,Q){let Z=Boolean(this.options.responseFormat);return(W)=>{let $=W.messages,J=$.at(-1);if(_.isInstance(J)&&(!J.tool_calls||J.tool_calls.length===0))return Q;if(Y&&W.jumpTo){if(W.jumpTo===O0)return Q;if(W.jumpTo===F0){if(X.length===0)return Q;return new X1(F0,{...W,jumpTo:void 0})}return new X1(P0,{...W,jumpTo:void 0})}let G=$.filter(g.isInstance),K=$.filter(_.isInstance).at(-1),B=K?.tool_calls?.filter((F)=>!G.some((L)=>L.tool_call_id===F.id));if(B&&B.length>0)return B.map((F)=>new X1(F0,{...W,lg_tool_call:F}));let H=K?.tool_calls?.some((F)=>F.name.startsWith("extract-"));if(B&&B.length===0&&!H&&Z)return P0;if(!_.isInstance(J)||!J.tool_calls||J.tool_calls.length===0)return Q;let V=J.tool_calls.every((F)=>F.name.startsWith("extract-")),z=J.tool_calls.some((F)=>!F.name.startsWith("extract-"));if(V||!z)return Q;return F0}}#K(X,Y,Q){let Z=new Set(Y.map((W)=>b1(W)));return(W)=>{if(W.jumpTo){let $=b1(W.jumpTo);if($===O0&&Z.has(O0))return O0;if($===F0&&Z.has(F0)){if(X.length===0)return O0;return new X1(F0,{...W,jumpTo:void 0})}if($===P0&&Z.has(P0))return new X1(P0,{...W,jumpTo:void 0})}return Q}}#B(X,Y,Q){return(Z)=>{if(!Z.jumpTo)return Y;let W=b1(Z.jumpTo);if(W===O0)return Q;if(W===F0){if(X.length===0)return Q;return new X1(F0,{...Z,jumpTo:void 0})}return new X1(P0,{...Z,jumpTo:void 0})}}#V(X,Y){return(Q)=>{if(!Q.jumpTo)return Y;let Z=b1(Q.jumpTo);if(Z===O0)return O0;if(Z===F0){if(X.length===0)return O0;return new X1(F0,{...Q,jumpTo:void 0})}return new X1(P0,{...Q,jumpTo:void 0})}}async#H(X,Y){if(!this.options.middleware||this.options.middleware.length===0||X instanceof D0||!X)return X;let Q=await J$(this.options.middleware,X),W={...(await this.#X.getState(Y).catch(()=>({values:{}}))).values,...X};if(!W)return W;for(let[$,J]of Object.entries(Q))if(!($ in W))W[$]=J;return W}async invoke(X,Y){let Q=await this.#H(X,Y);return this.#X.invoke(Q,Y)}async stream(X,Y){let Q=await this.#H(X,Y);return this.#X.stream(Q,Y)}async drawMermaidPng(X){let Z=await(await(await this.#X.getGraphAsync()).drawMermaidPng(X)).arrayBuffer();return new Uint8Array(Z)}async drawMermaid(X){return(await this.#X.getGraphAsync()).drawMermaid(X)}streamEvents(X,Y,Q){return this.#X.streamEvents(X,{...Y,version:Y?.version??"v2"},Q)}getGraphAsync(X){return this.#X.getGraphAsync(X)}getState(X,Y){return this.#X.getState(X,Y)}getStateHistory(X,Y){return this.#X.getStateHistory(X,Y)}getSubgraphs(X,Y){return this.#X.getSubgraphs(X,Y)}getSubgraphAsync(X,Y){return this.#X.getSubgraphsAsync(X,Y)}updateState(X,Y,Q){return this.#X.updateState(X,Y,Q)}};function j$(X){return new A$(X)}var pU=U.function().args(U.custom(),U.custom(),U.custom()).returns(U.union([U.string(),U.promise(U.string())])),R$=["approve","edit","reject"],lU=U.enum(R$),iU=U.object({allowedDecisions:U.array(lU),description:U.union([U.string(),pU]).optional(),argsSchema:U.record(U.any()).optional()}),E$=U.object({interruptOn:U.record(U.union([U.boolean(),iU])).optional(),descriptionPrefix:U.string().default("Tool execution requires approval")});function mQ(X){let Y=async(Z,W,$,J)=>{let{name:G,args:K}=Z,B=W.description,H;if(typeof B==="function")H=await B(Z,$,J);else if(B!==void 0)H=B;else H=`${X.descriptionPrefix??"Tool execution requires approval"}
|
|
35
|
-
|
|
36
|
-
Tool: ${G}
|
|
37
|
-
Args: ${JSON.stringify(K,null,2)}`;let V={name:G,args:K,description:H},z={actionName:G,allowedDecisions:W.allowedDecisions};if(W.argsSchema)z.argsSchema=W.argsSchema;return{actionRequest:V,reviewConfig:z}},Q=(Z,W,$)=>{let J=$.allowedDecisions;if(Z.type==="approve"&&J.includes("approve"))return{revisedToolCall:W,toolMessage:null};if(Z.type==="edit"&&J.includes("edit")){let K=Z.editedAction;if(!K||typeof K.name!=="string")throw Error(`Invalid edited action for tool "${W.name}": name must be a string`);if(!K.args||typeof K.args!=="object")throw Error(`Invalid edited action for tool "${W.name}": args must be an object`);return{revisedToolCall:{type:"tool_call",name:K.name,args:K.args,id:W.id},toolMessage:null}}if(Z.type==="reject"&&J.includes("reject")){if(Z.message!==void 0&&typeof Z.message!=="string")throw Error(`Tool call response for "${W.name}" must be a string, got ${typeof Z.message}`);let K=Z.message??`User rejected the tool call for \`${W.name}\` with id ${W.id}`,B=new g({content:K,name:W.name,tool_call_id:W.id,status:"error"});return{revisedToolCall:W,toolMessage:B}}let G=`Unexpected human decision: ${JSON.stringify(Z)}. Decision type '${Z.type}' is not allowed for tool '${W.name}'. Expected one of ${JSON.stringify(J)} based on the tool's configuration.`;throw Error(G)};return X0({name:"HumanInTheLoopMiddleware",contextSchema:E$,afterModel:{canJumpTo:["model"],hook:async(Z,W)=>{let $=F1(E$,{...X,...W.context||{}});if(!$)return;let{messages:J}=Z;if(!J.length)return;let G=[...J].reverse().find((D)=>_.isInstance(D));if(!G||!G.tool_calls?.length)return;if(!$.interruptOn)return;let K={};for(let[D,E]of Object.entries($.interruptOn))if(typeof E==="boolean"){if(E===!0)K[D]={allowedDecisions:[...R$]}}else if(E.allowedDecisions)K[D]=E;let B=[],H=[];for(let D of G.tool_calls)if(D.name in K)B.push(D);else H.push(D);if(!B.length)return;let V=[],z=[];for(let D of B){let E=K[D.name],{actionRequest:I,reviewConfig:S}=await Y(D,E,Z,W);V.push(I),z.push(S)}let q=(await YY({actionRequests:V,reviewConfigs:z})).decisions;if(!q||!Array.isArray(q))throw Error("Invalid HITLResponse: decisions must be a non-empty array");if(q.length!==B.length)throw Error(`Number of human decisions (${q.length}) does not match number of hanging tool calls (${B.length}).`);let w=[...H],O=[],R=q.some((D)=>D.type==="reject");for(let D=0;D<q.length;D++){let E=q[D],I=B[D],S=K[I.name],{revisedToolCall:x,toolMessage:C}=Q(E,I,S);if(x&&(!R||E.type==="reject"))w.push(x);if(C)O.push(C)}if(_.isInstance(G))G.tool_calls=w;let P=R?"model":void 0;return{messages:[G,...O],jumpTo:P}}}})}var QY=`<role>
|
|
38
|
-
Context Extraction Assistant
|
|
39
|
-
</role>
|
|
40
|
-
|
|
41
|
-
<primary_objective>
|
|
42
|
-
Your sole objective in this task is to extract the highest quality/most relevant context from the conversation history below.
|
|
43
|
-
</primary_objective>
|
|
44
|
-
|
|
45
|
-
<objective_information>
|
|
46
|
-
You're nearing the total number of input tokens you can accept, so you must extract the highest quality/most relevant pieces of information from your conversation history.
|
|
47
|
-
This context will then overwrite the conversation history presented below. Because of this, ensure the context you extract is only the most important information to your overall goal.
|
|
48
|
-
</objective_information>
|
|
49
|
-
|
|
50
|
-
<instructions>
|
|
51
|
-
The conversation history below will be replaced with the context you extract in this step. Because of this, you must do your very best to extract and record all of the most important context from the conversation history.
|
|
52
|
-
You want to ensure that you don't repeat any actions you've already completed, so the context you extract from the conversation history should be focused on the most important information to your overall goal.
|
|
53
|
-
</instructions>
|
|
54
|
-
|
|
55
|
-
The user will message you with the full message history you'll be extracting context from, to then replace. Carefully read over it all, and think deeply about what information is most important to your overall goal that should be saved:
|
|
56
|
-
|
|
57
|
-
With all of this in mind, please carefully read over the entire conversation history, and extract the most important and relevant context to replace it so that you can free up space in the conversation history.
|
|
58
|
-
Respond ONLY with the extracted context. Do not include any additional information, or text before or after the extracted context.
|
|
59
|
-
|
|
60
|
-
<messages>
|
|
61
|
-
Messages to summarize:
|
|
62
|
-
{messages}
|
|
63
|
-
</messages>`,ZY=20,nU=4000,rU=15,T$=5,aU=U.function().args(U.array(U.custom())).returns(U.union([U.number(),U.promise(U.number())])),m6=U.object({fraction:U.number().gt(0,"Fraction must be greater than 0").max(1,"Fraction must be less than or equal to 1").optional(),tokens:U.number().positive("Tokens must be greater than 0").optional(),messages:U.number().int("Messages must be an integer").positive("Messages must be greater than 0").optional()}).refine((X)=>{return[X.fraction,X.tokens,X.messages].filter((Q)=>Q!==void 0).length>=1},{message:"At least one of fraction, tokens, or messages must be provided"}),$Y=U.object({fraction:U.number().min(0,"Messages must be non-negative").max(1,"Fraction must be less than or equal to 1").optional(),tokens:U.number().min(0,"Tokens must be greater than or equal to 0").optional(),messages:U.number().int("Messages must be an integer").min(0,"Messages must be non-negative").optional()}).refine((X)=>{return[X.fraction,X.tokens,X.messages].filter((Q)=>Q!==void 0).length===1},{message:"Exactly one of fraction, tokens, or messages must be provided"}),M$=U.object({model:U.custom(),trigger:U.union([m6,U.array(m6)]).optional(),keep:$Y.optional(),tokenCounter:aU.optional(),summaryPrompt:U.string().default(QY),trimTokensToSummarize:U.number().optional(),summaryPrefix:U.string().optional(),maxTokensBeforeSummary:U.number().optional(),messagesToKeep:U.number().optional()});function S8(X){if("profile"in X&&typeof X.profile==="object"&&X.profile&&"maxInputTokens"in X.profile&&(typeof X.profile.maxInputTokens==="number"||X.profile.maxInputTokens==null))return X.profile.maxInputTokens??void 0;if("model"in X&&typeof X.model==="string")return dQ(X.model);if("modelName"in X&&typeof X.modelName==="string")return dQ(X.modelName);return}function pQ(X){let{data:Y,error:Q}=I$(M$,X);if(Q)throw Error(`Invalid summarization middleware options: ${A.prettifyError(Q)}`);return X0({name:"SummarizationMiddleware",contextSchema:M$.extend({model:U.custom().optional()}),beforeModel:async(Z,W)=>{let{trigger:$,keep:J}=Y;if(Y.maxTokensBeforeSummary!==void 0){if(console.warn("maxTokensBeforeSummary is deprecated. Use `trigger: { tokens: value }` instead."),$===void 0)$={tokens:Y.maxTokensBeforeSummary}}if(Y.messagesToKeep!==void 0){if(console.warn("messagesToKeep is deprecated. Use `keep: { messages: value }` instead."),!J||J&&"messages"in J&&J.messages===ZY)J={messages:Y.messagesToKeep}}let G=W.context?.trigger!==void 0?W.context.trigger:$,K=W.context?.keep!==void 0?W.context.keep:J??{messages:ZY},B=$Y.parse(K),H=[];if(G===void 0)H=[];else if(Array.isArray(G))H=G.map((C)=>m6.parse(C));else H=[m6.parse(G)];let V=H.some((C)=>("fraction"in C))||"fraction"in B,z=typeof Y.model==="string"?await d0(Y.model):Y.model;if(V&&!S8(z))throw Error("Model profile information is required to use fractional token limits. Use absolute token counts instead.");let F=W.context?.summaryPrompt===QY?Y.summaryPrompt??QY:W.context?.summaryPrompt??Y.summaryPrompt??QY,L=W.context?.trimTokensToSummarize!==void 0?W.context.trimTokensToSummarize:Y.trimTokensToSummarize??nU;sU(Z.messages);let q=W.context?.tokenCounter!==void 0?W.context.tokenCounter:Y.tokenCounter??g6,w=await q(Z.messages);if(!await eU(Z.messages,w,H,z))return;let{systemPrompt:R,conversationMessages:P}=tU(Z.messages),D=await XL(P,B,q,z);if(D<=0)return;let{messagesToSummarize:E,preservedMessages:I}=oU(R,P,D),S=await WL(E,z,F,q,L),x=new z0({content:`Here is a summary of the conversation to date:
|
|
64
|
-
|
|
65
|
-
${S}`,id:cQ()});return{messages:[new I8({id:S$}),x,...I]}}})}function sU(X){for(let Y of X)if(!Y.id)Y.id=cQ()}function tU(X){if(X.length>0&&B0.isInstance(X[0]))return{systemPrompt:X[0],conversationMessages:X.slice(1)};return{conversationMessages:X}}function oU(X,Y,Q){let Z=Y.slice(0,Q),W=Y.slice(Q);if(X)Z.unshift(X);return{messagesToSummarize:Z,preservedMessages:W}}async function eU(X,Y,Q,Z){if(Q.length===0)return!1;for(let W of Q){let $=!0,J=!1;if(W.messages!==void 0){if(J=!0,X.length<W.messages)$=!1}if(W.tokens!==void 0){if(J=!0,Y<W.tokens)$=!1}if(W.fraction!==void 0){J=!0;let G=S8(Z);if(typeof G==="number"){let K=Math.floor(G*W.fraction);if(Y<K)$=!1}else $=!1}if(J&&$)return!0}return!1}async function XL(X,Y,Q,Z){if("tokens"in Y||"fraction"in Y){let W=await YL(X,Y,Q,Z);if(typeof W==="number")return W;return x$(X,ZY)}return x$(X,Y.messages??ZY)}async function YL(X,Y,Q,Z){if(X.length===0)return 0;let W;if("fraction"in Y&&Y.fraction!==void 0){let H=S8(Z);if(typeof H!=="number")return;W=Math.floor(H*Y.fraction)}else if("tokens"in Y&&Y.tokens!==void 0)W=Math.floor(Y.tokens);else return;if(W<=0)W=1;if(await Q(X)<=W)return 0;let J=0,G=X.length,K=X.length,B=Math.floor(Math.log2(X.length))+1;for(let H=0;H<B;H++){if(J>=G)break;let V=Math.floor((J+G)/2);if(await Q(X.slice(V))<=W)K=V,G=V;else J=V+1}if(K===X.length)K=J;if(K>=X.length){if(X.length===1)return 0;K=X.length-1}for(let H=K;H>=0;H--)if(b$(X,H))return H;return 0}function x$(X,Y){if(X.length<=Y)return 0;let Q=X.length-Y;for(let Z=Q;Z>=0;Z--)if(b$(X,Z))return Z;return 0}function b$(X,Y){if(Y>=X.length)return!0;if(Y<X.length&&_.isInstance(X[Y])&&cX(X[Y]))return!1;let Q=Math.max(0,Y-T$),Z=Math.min(X.length,Y+T$);for(let W=Q;W<Z;W++){if(!cX(X[W]))continue;let $=QL(X[W]);if(ZL(X,W,Y,$))return!1}return!0}function QL(X){let Y=new Set;if(X.tool_calls)for(let Q of X.tool_calls){let Z=typeof Q==="object"&&"id"in Q?Q.id:null;if(Z)Y.add(Z)}return Y}function ZL(X,Y,Q,Z){for(let W=Y+1;W<X.length;W++){let $=X[W];if(g.isInstance($)&&Z.has($.tool_call_id)){let J=Y<Q,G=W<Q;if(J!==G)return!0}}return!1}async function WL(X,Y,Q,Z,W){if(!X.length)return"No previous conversation history.";let $=await $L(X,Z,W);if(!$.length)return"Previous conversation was too long to summarize.";try{let J=Q.replace("{messages}",JSON.stringify($,null,2)),K=(await Y.invoke(J)).content;if(typeof K==="string")return K.trim();else if(Array.isArray(K))return K.map((H)=>{if(typeof H==="string")return H;if(typeof H==="object"&&H!==null&&"text"in H)return H.text;return""}).join("").trim();return"Error generating summary: Invalid response format"}catch(J){return`Error generating summary: ${J}`}}async function $L(X,Y,Q){if(Q===void 0)return X;try{return await WY(X,{maxTokens:Q,tokenCounter:async(Z)=>Y(Z),strategy:"last",allowPartial:!0,includeSystem:!0})}catch{return X.slice(-rU)}}function lQ(X){return X0({name:"DynamicSystemPromptMiddleware",wrapModelCall:async(Y,Q)=>{let Z=await X(Y.state,Y.runtime);if(!(typeof Z==="string"||B0.isInstance(Z)))throw Error("dynamicSystemPromptMiddleware function must return a string or SystemMessage");return Q({...Y,systemMessage:Y.systemMessage.concat(Z)})}})}var JL="Your goal is to select the most relevant tools for answering the user's query.";function GL(X){if(!X||X.length===0)throw Error("Invalid usage: tools must be non-empty");let Y=X.map((Z)=>U.literal(Z.name)),Q=U.union(Y);return U.object({tools:U.array(Q).describe("Tools to use. Place the most relevant tools first.")})}var KL=U.object({model:U.string().or(U.instanceof(C$)).optional(),systemPrompt:U.string().optional(),maxTools:U.number().optional(),alwaysInclude:U.array(U.string()).optional()});function iQ(X){return X0({name:"LLMToolSelector",contextSchema:KL,async wrapModelCall(Y,Q){let Z=await BL(Y,X,Y.runtime);if(!Z)return Q(Y);let W=GL(Z.availableTools),J=await(await Z.model.withStructuredOutput?.(W))?.invoke([{role:"system",content:Z.systemMessage},Z.lastUserMessage]);if(!J||typeof J!=="object"||!("tools"in J))throw Error(`Expected object response with tools array, got ${typeof J}`);return Q(HL(J,Z.availableTools,Z.validToolNames,Y,X))}})}async function BL(X,Y,Q){let Z=Q.context.model??Y.model,W=Q.context.maxTools??Y.maxTools,$=Q.context.alwaysInclude??Y.alwaysInclude??[],J=Q.context.systemPrompt??Y.systemPrompt??JL;if(!X.tools||X.tools.length===0)return;let G=X.tools.filter((F)=>typeof F==="object"&&("name"in F)&&("description"in F)&&typeof F.name==="string");if($.length>0){let F=new Set(G.map((q)=>q.name)),L=$.filter((q)=>!F.has(q));if(L.length>0)throw Error(`Tools in alwaysInclude not found in request: ${L.join(", ")}. Available tools: ${Array.from(F).sort().join(", ")}`)}let K=G.filter((F)=>!$.includes(F.name));if(K.length===0)return;let B=J;if(W!==void 0)B+=`
|
|
66
|
-
IMPORTANT: List the tool names in order of relevance, with the most relevant first. If you exceed the maximum number of tools, only the first ${W} will be used.`;let H;for(let F of X.messages)if(z0.isInstance(F))H=F;if(!H)throw Error("No user message found in request messages");let V=!Z?X.model:typeof Z==="string"?await d0(Z):Z,z=K.map((F)=>F.name);return{availableTools:K,systemMessage:B,lastUserMessage:H,model:V,validToolNames:z}}function HL(X,Y,Q,Z,W){let $=W.maxTools,J=W.alwaysInclude??[],G=[],K=[];for(let z of X.tools){if(!Q.includes(z)){K.push(z);continue}if(!G.includes(z)&&($===void 0||G.length<$))G.push(z)}if(K.length>0)throw Error(`Model selected invalid tools: ${K.join(", ")}`);let B=Y.filter((z)=>G.includes(z.name)),H=(Z.tools??[]).filter((z)=>typeof z==="object"&&("name"in z)&&typeof z.name==="string"&&J.includes(z.name));B.push(...H);let V=(Z.tools??[]).filter((z)=>!(typeof z==="object"&&("name"in z)&&("description"in z)&&typeof z.name==="string"));return{...Z,tools:[...B,...V]}}var JY=class extends Error{constructor(X,Y){super(`PII detected: ${X} found ${Y.length} occurrence(s)`);this.piiType=X,this.matches=Y,this.name="PIIDetectionError"}},VL=/\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b/g,zL=/\b(?:\d{4}[-\s]?){3}\d{4}\b/g,FL=/\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b/g,UL=/\b(?:[0-9A-Fa-f]{2}[:-]){5}(?:[0-9A-Fa-f]{2})\b/g,LL=/(?:https?:\/\/|www\.)[^\s<>"{}|\\^`[\]]+/gi;function qL(X){let Y=X.replace(/\D/g,""),Q=0,Z=!1;for(let W=Y.length-1;W>=0;W--){let $=parseInt(Y[W],10);if(Z){if($*=2,$>9)$-=9}Q+=$,Z=!Z}return Q%10===0}function d6(X){return{text:X[0],start:X.index??0,end:(X.index??0)+X[0].length}}function GY(X){let Y=[],Q=new RegExp(VL),Z;while((Z=Q.exec(X))!==null)Y.push(d6(Z));return Y}function KY(X){let Y=[],Q=new RegExp(zL),Z;while((Z=Q.exec(X))!==null){let W=Z[0].replace(/\D/g,"");if(W.length>=13&&W.length<=19&&qL(W))Y.push(d6(Z))}return Y}function BY(X){let Y=[],Q=new RegExp(FL),Z;while((Z=Q.exec(X))!==null){let $=Z[0].split(".");if($.length===4&&$.every((J)=>{let G=parseInt(J,10);return G>=0&&G<=255}))Y.push(d6(Z))}return Y}function HY(X){let Y=[],Q=new RegExp(UL),Z;while((Z=Q.exec(X))!==null)Y.push(d6(Z));return Y}function VY(X){let Y=[],Q=new RegExp(LL),Z;while((Z=Q.exec(X))!==null)Y.push(d6(Z));return Y}var nQ={email:GY,credit_card:KY,ip:BY,mac_address:HY,url:VY};function zY(X){let Y;if(X.detector)if(typeof X.detector==="string"){let Q=new RegExp(X.detector,"g");Y=(Z)=>{let W=[],$,J=new RegExp(Q);while(($=J.exec(Z))!==null)W.push(d6($));return W}}else if(X.detector instanceof RegExp)Y=(Q)=>{if(!(X.detector instanceof RegExp))throw Error("Detector is required");let Z=[],W;while((W=X.detector.exec(Q))!==null)Z.push(d6(W));return Z};else Y=X.detector;else{let Q=X.piiType;if(!nQ[Q])throw Error(`Unknown PII type: ${X.piiType}. Must be one of: ${Object.keys(nQ).join(", ")}, or provide a custom detector.`);Y=nQ[Q]}return{piiType:X.piiType,strategy:X.strategy,detector:Y}}function OL(X,Y,Q){let Z=X;for(let W=Y.length-1;W>=0;W--){let $=Y[W],J=`[REDACTED_${Q.toUpperCase()}]`;Z=Z.slice(0,$.start)+J+Z.slice($.end)}return Z}function DL(X,Y,Q){let Z=X;for(let W=Y.length-1;W>=0;W--){let $=Y[W],J=$.text,G;if(Q==="credit_card")G=`****-****-****-${J.replace(/\D/g,"").slice(-4)}`;else if(Q==="email"){let[K,B]=J.split("@");if(K&&B)G=`${K[0]}***@${B}`;else G="***"}else{let K=Math.min(4,J.length);G=`${"*".repeat(Math.max(0,J.length-K))}${J.slice(-K)}`}Z=Z.slice(0,$.start)+G+Z.slice($.end)}return Z}function PL(X,Y,Q){let Z=X;for(let W=Y.length-1;W>=0;W--){let $=Y[W],J=y$($.text).slice(0,8),G=`<${Q}_hash:${J}>`;Z=Z.slice(0,$.start)+G+Z.slice($.end)}return Z}function FY(X,Y,Q,Z){if(Y.length===0)return X;switch(Q){case"block":throw new JY(Z,Y);case"redact":return OL(X,Y,Z);case"mask":return DL(X,Y,Z);case"hash":return PL(X,Y,Z);default:throw Error(`Unknown strategy: ${Q}`)}}var wL=U.object({applyToInput:U.boolean().optional(),applyToOutput:U.boolean().optional(),applyToToolResults:U.boolean().optional()});function rQ(X,Y){let Q=Y.detector(X);if(Q.length===0)return{content:X,matches:[]};return{content:FY(X,Q,Y.strategy,Y.piiType),matches:Q}}function aQ(X,Y={}){let{strategy:Q="redact",detector:Z}=Y,W=zY({piiType:X,strategy:Q,detector:Z}),$=`PIIMiddleware[${W.piiType}]`;return X0({name:$,contextSchema:wL,beforeModel:async(J,G)=>{let K=G.context.applyToInput??Y.applyToInput??!0,B=G.context.applyToToolResults??Y.applyToToolResults??!1;if(!K&&!B)return;let H=J.messages;if(!H||H.length===0)return;let V=[...H],z=!1;if(K){let F=null;for(let L=H.length-1;L>=0;L--)if(z0.isInstance(H[L])){F=L;break}if(F!==null){let L=H[F];if(L&&L.content){let q=String(L.content),{content:w,matches:O}=rQ(q,W);if(O.length>0)V[F]=new z0({content:w,id:L.id,name:L.name}),z=!0}}}if(B){let F=null;for(let L=H.length-1;L>=0;L--)if(_.isInstance(H[L])){F=L;break}if(F!==null)for(let L=F+1;L<H.length;L++){let q=H[L];if(g.isInstance(q)){if(!q.content)continue;let w=String(q.content),{content:O,matches:R}=rQ(w,W);if(R.length>0)V[L]=new g({content:O,id:q.id,name:q.name,tool_call_id:q.tool_call_id}),z=!0}}}if(z)return{messages:V}},afterModel:async(J,G)=>{if(!(G.context.applyToOutput??Y.applyToOutput??!1))return;let B=J.messages;if(!B||B.length===0)return;let H=null,V=null;for(let O=B.length-1;O>=0;O--)if(_.isInstance(B[O])){V=B[O],H=O;break}if(H===null||!V||!V.content)return;let z=String(V.content),{content:F,matches:L}=rQ(z,W);if(L.length===0)return;let q=new _({content:F,id:V.id,name:V.name,tool_calls:V.tool_calls}),w=[...B];return w[H]=q,{messages:w}}})}var NL=U.object({rules:U.record(U.string(),U.instanceof(RegExp).describe("Regular expression pattern to match PII")).optional()});function AL(){return Math.random().toString(36).substring(2,11)}function sQ(X,Y,Q){let Z=X;for(let[W,$]of Object.entries(Y)){let J=W.toUpperCase().replace(/[^a-zA-Z0-9_-]/g,"");Z=Z.replace($,(G)=>{let K=AL();return Q[K]=G,`[REDACTED_${J}_${K}]`})}return Z}async function jL(X,Y){if(z0.isInstance(X)||g.isInstance(X)||B0.isInstance(X)){let Q=X.content,Z=await sQ(Q,Y.rules,Y.redactionMap);if(Z!==Q)return new(Object.getPrototypeOf(X)).constructor({...X,content:Z});return X}if(_.isInstance(X)){let Q=typeof X.content==="string"?X.content:JSON.stringify(X.content),Z=JSON.stringify(X.tool_calls),W=await sQ(Q,Y.rules,Y.redactionMap),$=await sQ(Z,Y.rules,Y.redactionMap);if(W!==Q||$!==Z)return new _({...X,content:typeof X.content==="string"?W:JSON.parse(W),tool_calls:JSON.parse($)});return X}throw Error(`Unsupported message type: ${X.type}`)}function pX(X,Y){let Q=X,Z=/\[REDACTED_[A-Z_]+_(\w+)\]/g;return Q=Q.replace(Z,(W,$)=>{if(Y[$])return Y[$];return W}),Q}function k$(X,Y){if(z0.isInstance(X)||g.isInstance(X)||B0.isInstance(X)){let Q=X.content,Z=pX(Q,Y);if(Z!==Q)return{message:new(Object.getPrototypeOf(X)).constructor({...X,content:Z}),changed:!0};return{message:X,changed:!1}}if(_.isInstance(X)){let Q=typeof X.content==="string"?X.content:JSON.stringify(X.content),Z=JSON.stringify(X.tool_calls),W=pX(Q,Y),$=pX(Z,Y);if(W!==Q||$!==Z)return{message:new _({...X,content:typeof X.content==="string"?W:JSON.parse(W),tool_calls:JSON.parse($)}),changed:!0};return{message:X,changed:!1}}throw Error(`Unsupported message type: ${X.type}`)}function tQ(X={}){let Y={};return console.warn("DEPRECATED: piiRedactionMiddleware is deprecated. Please use piiMiddleware instead, go to https://docs.langchain.com/oss/javascript/langchain/middleware/built-in#pii-detection for more information."),X0({name:"PIIRedactionMiddleware",contextSchema:NL,wrapModelCall:async(Q,Z)=>{let W=Q.runtime.context.rules??X.rules??{};if(Object.keys(W).length===0)return Z(Q);let $=await Promise.all(Q.state.messages.map((J)=>jL(J,{rules:W,redactionMap:Y})));return Z({...Q,messages:$})},afterModel:async(Q)=>{if(Object.keys(Y).length===0)return;let Z=Q.messages.at(-1);if(!_.isInstance(Z))return;let W=Q.messages.at(-2),{message:$,changed:J}=k$(Z,Y);if(!J)return;let G;if(_.isInstance(Z)&&Z?.tool_calls?.length===0&&typeof Z.content==="string"&&Z.content.startsWith("{")&&Z.content.endsWith("}"))try{G=JSON.parse(pX(Z.content,Y))}catch{}if(_.isInstance(W)&&W?.tool_calls?.length!==0&&W?.tool_calls?.some((B)=>B.name.startsWith("extract-"))){let{message:B,changed:H}=k$(W,Y),V=W.tool_calls?.find((F)=>F.name.startsWith("extract-"))?.args,z=V?JSON.parse(pX(JSON.stringify(V),Y)):void 0;if(J||H)return{...Q,...z?{structuredResponse:z}:{},messages:[new I8({id:W.id}),new I8({id:Z.id}),B,$]}}return{...Q,...G?{structuredResponse:G}:{},messages:[new I8({id:Z.id}),$]}}})}var EL="[cleared]",RL=1e5,UY=3,LY=class{#X;trigger;keep;clearToolInputs;excludeTools;placeholder;model;clearAtLeast;constructor(X={}){let Y=X.trigger;if(X.triggerTokens!==void 0){if(console.warn("triggerTokens is deprecated. Use `trigger: { tokens: value }` instead."),Y===void 0)Y={tokens:X.triggerTokens}}let Q=X.keep;if(X.keepMessages!==void 0){if(console.warn("keepMessages is deprecated. Use `keep: { messages: value }` instead."),Q===void 0)Q={messages:X.keepMessages}}if(Y===void 0)Y={tokens:RL};if(Q===void 0)Q={messages:UY};if(Array.isArray(Y))this.#X=Y.map((W)=>m6.parse(W)),this.trigger=this.#X;else{let W=m6.parse(Y);this.#X=[W],this.trigger=W}let Z=$Y.parse(Q);if(this.keep=Z,X.clearAtLeast!==void 0)console.warn("clearAtLeast is deprecated and will be removed in a future version. It conflicts with the `keep` property. Use `keep: { tokens: value }` or `keep: { messages: value }` instead to control retention.");this.clearAtLeast=X.clearAtLeast??0,this.clearToolInputs=X.clearToolInputs??!1,this.excludeTools=new Set(X.excludeTools??[]),this.placeholder=X.placeholder??EL}async apply(X){let{messages:Y,model:Q,countTokens:Z}=X,W=await Z(Y),$=[];for(let z=0;z<Y.length;z++){let F=Y[z];if(g.isInstance(F)){let L=this.#Y(Y.slice(0,z),F.tool_call_id);if(!L)$.push(z);else if(!L.tool_calls?.find((w)=>w.id===F.tool_call_id))$.push(z)}}for(let z=$.length-1;z>=0;z--)Y.splice($[z],1);let J=W;if($.length>0)J=await Z(Y);if(!this.#Q(Y,J,Q))return;let G=[];for(let z=0;z<Y.length;z++){let F=Y[z];if(g.isInstance(F))G.push({idx:z,msg:F})}if(G.length===0)return;let K=await this.#Z(G,Z,Q),B=K>=G.length?[]:K>0?G.slice(0,-K):G,H=0,V=[...B];for(let{idx:z,msg:F}of V){if(F.response_metadata?.context_editing?.cleared)continue;let q=this.#Y(Y.slice(0,z),F.tool_call_id);if(!q)continue;let w=q.tool_calls?.find((P)=>P.id===F.tool_call_id);if(!w)continue;let O=F.name||w.name;if(this.excludeTools.has(O))continue;if(Y[z]=new g({tool_call_id:F.tool_call_id,content:this.placeholder,name:F.name,artifact:void 0,response_metadata:{...F.response_metadata,context_editing:{cleared:!0,strategy:"clear_tool_uses"}}}),this.clearToolInputs){let P=Y.indexOf(q);if(P>=0)Y[P]=this.#W(q,F.tool_call_id)}let R=await Z(Y);H=Math.max(0,J-R)}if(this.clearAtLeast>0&&H<this.clearAtLeast){let z=K>0&&K<G.length?G.slice(-K):[];for(let F=z.length-1;F>=0;F--){if(H>=this.clearAtLeast)break;let{idx:L,msg:q}=z[F];if(q.response_metadata?.context_editing?.cleared)continue;let O=this.#Y(Y.slice(0,L),q.tool_call_id);if(!O)continue;let R=O.tool_calls?.find((E)=>E.id===q.tool_call_id);if(!R)continue;let P=q.name||R.name;if(this.excludeTools.has(P))continue;if(Y[L]=new g({tool_call_id:q.tool_call_id,content:this.placeholder,name:q.name,artifact:void 0,response_metadata:{...q.response_metadata,context_editing:{cleared:!0,strategy:"clear_tool_uses"}}}),this.clearToolInputs){let E=Y.indexOf(O);if(E>=0)Y[E]=this.#W(O,q.tool_call_id)}let D=await Z(Y);H=Math.max(0,J-D)}}}#Q(X,Y,Q){for(let Z of this.#X){let W=!0,$=!1;if(Z.messages!==void 0){if($=!0,X.length<Z.messages)W=!1}if(Z.tokens!==void 0){if($=!0,Y<Z.tokens)W=!1}if(Z.fraction!==void 0){if($=!0,!Q)continue;let J=S8(Q);if(typeof J==="number"){let G=Math.floor(J*Z.fraction);if(G<=0)continue;if(Y<G)W=!1}else continue}if($&&W)return!0}return!1}async#Z(X,Y,Q){if("messages"in this.keep&&this.keep.messages!==void 0)return this.keep.messages;if("tokens"in this.keep&&this.keep.tokens!==void 0){let Z=this.keep.tokens,W=0,$=0;for(let J=X.length-1;J>=0;J--){let G=X[J],K=await Y([G.msg]);if(W+K<=Z)W+=K,$++;else break}return $}if("fraction"in this.keep&&this.keep.fraction!==void 0){if(!Q)return UY;let Z=S8(Q);if(typeof Z==="number"){let W=Math.floor(Z*this.keep.fraction);if(W<=0)return UY;let $=0,J=0;for(let G=X.length-1;G>=0;G--){let K=X[G],B=await Y([K.msg]);if($+B<=W)$+=B,J++;else break}return J}}return UY}#Y(X,Y){for(let Q=X.length-1;Q>=0;Q--){let Z=X[Q];if(_.isInstance(Z)){if(Z.tool_calls?.some(($)=>$.id===Y))return Z}}return null}#W(X,Y){let Q=X.tool_calls?.map((J)=>{if(J.id===Y)return{...J,args:{}};return J}),Z={...X.response_metadata},W={...Z.context_editing},$=new Set(W.cleared_tool_inputs);return $.add(Y),W.cleared_tool_inputs=Array.from($).sort(),Z.context_editing=W,new _({content:X.content,tool_calls:Q,response_metadata:Z,id:X.id,name:X.name,additional_kwargs:X.additional_kwargs})}};function oQ(X={}){let Y=X.edits??[new LY],Q=X.tokenCountMethod??"approx";return X0({name:"ContextEditingMiddleware",wrapModelCall:async(Z,W)=>{if(!Z.messages||Z.messages.length===0)return W(Z);let $=Z.systemPrompt?[new B0(Z.systemPrompt)]:[],J=Q==="approx"?g6:async(G)=>{let K=[...$,...G];if("getNumTokensFromMessages"in Z.model)return Z.model.getNumTokensFromMessages(K).then(({totalCount:B})=>B);throw Error(`Model "${Z.model.getName()}" does not support token counting`)};for(let G of Y)await G.apply({messages:Z.messages,model:Z.model,countTokens:J});return W(Z)}})}function TL(X){if(X)return`Tool call limit exceeded. Do not call '${X}' again.`;return"Tool call limit exceeded. Do not make additional tool calls."}var ML=["continue","error","end"],_$="continue";function v$(X,Y,Q,Z,W){let $=W?`'${W}' tool`:"Tool",J=[];if(Q!==void 0&&X>Q)J.push(`thread limit exceeded (${X}/${Q} calls)`);if(Z!==void 0&&Y>Z)J.push(`run limit exceeded (${Y}/${Z} calls)`);let G=J.join(" and ");return`${$} call limit reached: ${G}.`}var f$=U.enum(ML).default(_$),qY=class extends Error{threadCount;runCount;threadLimit;runLimit;toolName;constructor(X,Y,Q,Z,W=void 0){let $=v$(X,Y,Q,Z,W);super($);this.name="ToolCallLimitExceededError",this.threadCount=X,this.runCount=Y,this.threadLimit=Q,this.runLimit=Z,this.toolName=W}},xC=U.object({toolName:U.string().optional(),threadLimit:U.number().optional(),runLimit:U.number().optional(),exitBehavior:f$}),xL=U.object({threadToolCallCount:U.record(U.string(),U.number()).default({}),runToolCallCount:U.record(U.string(),U.number()).default({})}),IL="__all__";function eQ(X){if(X.threadLimit===void 0&&X.runLimit===void 0)throw Error("At least one limit must be specified (threadLimit or runLimit)");let Y=X.exitBehavior??_$,Q=f$.safeParse(Y);if(!Q.success)throw Error(A.prettifyError(Q.error).slice(2));if(X.threadLimit!==void 0&&X.runLimit!==void 0&&X.runLimit>X.threadLimit)throw Error(`runLimit (${X.runLimit}) cannot exceed threadLimit (${X.threadLimit}). The run limit should be less than or equal to the thread limit.`);let Z=X.toolName?`ToolCallLimitMiddleware[${X.toolName}]`:"ToolCallLimitMiddleware";return X0({name:Z,stateSchema:xL,afterModel:{canJumpTo:["end"],hook:(W)=>{let $=[...W.messages].reverse().find(_.isInstance);if(!$||!$.tool_calls)return;let J=(D,E)=>{return X.threadLimit!==void 0&&D+1>X.threadLimit||X.runLimit!==void 0&&E+1>X.runLimit},G=(D)=>{return X.toolName===void 0||D.name===X.toolName},K=(D,E,I)=>{let S=[],x=[],C=E,h=I;for(let n of D){if(!G(n))continue;if(J(C,h))x.push(n);else S.push(n),C+=1,h+=1}return{allowed:S,blocked:x,finalThreadCount:C,finalRunCount:h+x.length}},B=X.toolName??IL,H={...W.threadToolCallCount??{}},V={...W.runToolCallCount??{}},z=H[B]??0,F=V[B]??0,{allowed:L,blocked:q,finalThreadCount:w,finalRunCount:O}=K($.tool_calls,z,F);if(H[B]=w,V[B]=O,q.length===0){if(L.length>0)return{threadToolCallCount:H,runToolCallCount:V};return}if(Y==="error"){let D=w+q.length;throw new qY(D,O,X.threadLimit,X.runLimit,X.toolName)}let R=TL(X.toolName),P=q.map((D)=>new g({content:R,tool_call_id:D.id,name:D.name,status:"error"}));if(Y==="end"){let D=[];if(X.toolName!==void 0)D=$.tool_calls.filter((S)=>S.name!==X.toolName);else if(new Set($.tool_calls.map((x)=>x.name).filter(Boolean)).size>1)D=L.length>0?L:$.tool_calls;if(D.length>0){let S=Array.from(new Set(D.map((x)=>x.name).filter(Boolean))).join(", ");throw Error(`Cannot end execution with other tool calls pending. Found calls to: ${S}. Use 'continue' or 'error' behavior instead.`)}let E=w+q.length,I=v$(E,O,X.threadLimit,X.runLimit,X.toolName);return P.push(new _(I)),{threadToolCallCount:H,runToolCallCount:V,jumpTo:"end",messages:P}}return{threadToolCallCount:H,runToolCallCount:V,messages:P}}},afterAgent:()=>({runToolCallCount:{}})})}var SL=`Use this tool to create and manage a structured task list for your current work session. This helps you track progress, organize complex tasks, and demonstrate thoroughness to the user.
|
|
67
|
-
It also helps the user understand the progress of the task and overall progress of their requests.
|
|
68
|
-
Only use this tool if you think it will be helpful in staying organized. If the user's request is trivial and takes less than 3 steps, it is better to NOT use this tool and just do the taks directly.
|
|
69
|
-
|
|
70
|
-
## When to Use This Tool
|
|
71
|
-
Use this tool in these scenarios:
|
|
72
|
-
|
|
73
|
-
1. Complex multi-step tasks - When a task requires 3 or more distinct steps or actions
|
|
74
|
-
2. Non-trivial and complex tasks - Tasks that require careful planning or multiple operations
|
|
75
|
-
3. User explicitly requests todo list - When the user directly asks you to use the todo list
|
|
76
|
-
4. User provides multiple tasks - When users provide a list of things to be done (numbered or comma-separated)
|
|
77
|
-
5. The plan may need future revisions or updates based on results from the first few steps. Keeping track of this in a list is helpful.
|
|
78
|
-
|
|
79
|
-
## How to Use This Tool
|
|
80
|
-
1. When you start working on a task - Mark it as in_progress BEFORE beginning work.
|
|
81
|
-
2. After completing a task - Mark it as completed and add any new follow-up tasks discovered during implementation.
|
|
82
|
-
3. You can also update future tasks, such as deleting them if they are no longer necessary, or adding new tasks that are necessary. Don't change previously completed tasks.
|
|
83
|
-
4. You can make several updates to the todo list at once. For example, when you complete a task, you can mark the next task you need to start as in_progress.
|
|
84
|
-
|
|
85
|
-
## When NOT to Use This Tool
|
|
86
|
-
It is important to skip using this tool when:
|
|
87
|
-
1. There is only a single, straightforward task
|
|
88
|
-
2. The task is trivial and tracking it provides no benefit
|
|
89
|
-
3. The task can be completed in less than 3 trivial steps
|
|
90
|
-
4. The task is purely conversational or informational
|
|
91
|
-
|
|
92
|
-
## Examples of When to Use the Todo List
|
|
93
|
-
|
|
94
|
-
<example>
|
|
95
|
-
User: I want to add a dark mode toggle to the application settings. Make sure you run the tests and build when you're done!
|
|
96
|
-
Assistant: I'll help add a dark mode toggle to your application settings. Let me create a todo list to track this implementation.
|
|
97
|
-
*Creates todo list with the following items:*
|
|
98
|
-
1. Create dark mode toggle component in Settings page
|
|
99
|
-
2. Add dark mode state management (context/store)
|
|
100
|
-
3. Implement CSS-in-JS styles for dark theme
|
|
101
|
-
4. Update existing components to support theme switching
|
|
102
|
-
5. Run tests and build process, addressing any failures or errors that occur
|
|
103
|
-
*Begins working on the first task*
|
|
104
|
-
|
|
105
|
-
<reasoning>
|
|
106
|
-
The assistant used the todo list because:
|
|
107
|
-
1. Adding dark mode in it of itself is a multi-step feature requiring UI, state management, and styling changes
|
|
108
|
-
2. The assistant inferred that tests and build need to pass by adding "Ensure tests and build succeed" as the final task
|
|
109
|
-
3. Both of the user's requests are complex and require multiple steps to complete.
|
|
110
|
-
</reasoning>
|
|
111
|
-
</example>
|
|
112
|
-
|
|
113
|
-
<example>
|
|
114
|
-
User: Help me plan a comprehensive marketing campaign for our new product launch, including social media, email marketing, and press releases.
|
|
115
|
-
Assistant: I'll help you plan a comprehensive marketing campaign for your product launch. Let me create a todo list to organize all the components.
|
|
116
|
-
*Creates todo list with the following items:*
|
|
117
|
-
1. Define target audience and key messaging
|
|
118
|
-
2. Create social media content calendar and posting schedule
|
|
119
|
-
3. Design email marketing sequence and automation flows
|
|
120
|
-
4. Draft press release and identify media contacts
|
|
121
|
-
5. Set up tracking and analytics for campaign performance
|
|
122
|
-
6. Create visual assets and brand materials
|
|
123
|
-
7. Coordinate launch timeline and deliverables
|
|
124
|
-
*Begins working on the first task*
|
|
125
|
-
|
|
126
|
-
<reasoning>
|
|
127
|
-
The assistant used the todo list because:
|
|
128
|
-
1. Marketing campaign planning involves multiple distinct channels and activities
|
|
129
|
-
2. Each component requires careful coordination and planning
|
|
130
|
-
3. The systematic approach ensures all aspects of the launch are covered
|
|
131
|
-
</reasoning>
|
|
132
|
-
</example>
|
|
133
|
-
|
|
134
|
-
<example>
|
|
135
|
-
User: Help me rename the function getCwd to getCurrentWorkingDirectory across my project
|
|
136
|
-
Assistant: Let me first search through your codebase to find all occurrences of 'getCwd'.
|
|
137
|
-
*Uses search tools to locate all instances of getCwd in the codebase*
|
|
138
|
-
Assistant: I've found 15 instances of 'getCwd' across 8 different files. Let me create a todo list to track these changes.
|
|
139
|
-
*Creates todo list with specific items for each file that needs updating*
|
|
140
|
-
|
|
141
|
-
<reasoning>
|
|
142
|
-
The assistant used the todo list because:
|
|
143
|
-
1. The assistant searched to understand the scope of the task
|
|
144
|
-
2. Upon finding multiple occurrences across different files, it determined this was a complex task with multiple steps (>3)
|
|
145
|
-
3. The todo list helps ensure every instance is tracked and updated systematically
|
|
146
|
-
4. This approach prevents missing any occurrences and maintains consistency.
|
|
147
|
-
</reasoning>
|
|
148
|
-
</example>
|
|
149
|
-
|
|
150
|
-
<example>
|
|
151
|
-
User: I need help organizing my home office: decluttering the desk, setting up a filing system, organizing digital files, and creating a daily workflow.
|
|
152
|
-
Assistant: I'll help you organize your home office systematically. Let me create a todo list to track each area of organization.
|
|
153
|
-
*Creates todo list with items like: 1) Sort and declutter desk items, 2) Set up physical filing system for documents, 3) Organize digital files and folders, 4) Create daily workflow and productivity systems, 5) Establish maintenance routines*
|
|
154
|
-
Let's start with decluttering your desk space to create a clean foundation for the other organizational systems.
|
|
155
|
-
|
|
156
|
-
<reasoning>
|
|
157
|
-
The assistant used the todo list because:
|
|
158
|
-
1. The user provided multiple distinct organizational tasks
|
|
159
|
-
2. Each area requires different approaches and careful planning
|
|
160
|
-
3. Home organization benefits from systematic, step-by-step completion
|
|
161
|
-
4. Progress tracking ensures all areas are addressed thoroughly
|
|
162
|
-
</reasoning>
|
|
163
|
-
</example>
|
|
164
|
-
|
|
165
|
-
## Examples of When NOT to Use the Todo List
|
|
166
|
-
|
|
167
|
-
<example>
|
|
168
|
-
User: How do I print 'Hello World' in Python?
|
|
169
|
-
Assistant: In Python, you can print "Hello World" with this simple code:
|
|
170
|
-
|
|
171
|
-
\`\`\`python
|
|
172
|
-
print("Hello World")
|
|
173
|
-
\`\`\`
|
|
174
|
-
|
|
175
|
-
This will output the text "Hello World" to the console when executed.</assistant>
|
|
176
|
-
|
|
177
|
-
<reasoning>
|
|
178
|
-
The assistant did not use the todo list because this is a single, trivial task that can be completed in one step. There's no need to track multiple tasks or steps for such a straightforward request.
|
|
179
|
-
</reasoning>
|
|
180
|
-
</example>
|
|
181
|
-
|
|
182
|
-
<example>
|
|
183
|
-
User: What's the best way to water houseplants?
|
|
184
|
-
Assistant: The best way to water houseplants depends on the specific plant type, but here are some general guidelines:
|
|
185
|
-
|
|
186
|
-
- Check soil moisture by inserting your finger about 1-2 inches into the soil
|
|
187
|
-
- Water thoroughly when the top inch feels dry, allowing water to drain from the bottom
|
|
188
|
-
- Use room temperature water and water in the morning when possible
|
|
189
|
-
- Avoid overwatering, which is more harmful than underwatering for most plants
|
|
190
|
-
|
|
191
|
-
Different plants have different needs, so it's important to research your specific varieties for optimal care.
|
|
192
|
-
|
|
193
|
-
<reasoning>
|
|
194
|
-
The assistant did not use the todo list because this is an informational request with no actual tasks to complete. The user is simply asking for advice and explanation, not for the assistant to perform multiple steps or activities.
|
|
195
|
-
</reasoning>
|
|
196
|
-
</example>
|
|
197
|
-
|
|
198
|
-
<example>
|
|
199
|
-
User: Can you add a comment to the calculateTotal function to explain what it does?
|
|
200
|
-
Assistant: Sure, let me add a comment to the calculateTotal function to explain what it does.
|
|
201
|
-
* Uses the Edit tool to add a comment to the calculateTotal function *
|
|
202
|
-
|
|
203
|
-
<reasoning>
|
|
204
|
-
The assistant did not use the todo list because this is a single, straightforward task confined to one location. Adding a comment doesn't require tracking multiple steps or systematic organization.
|
|
205
|
-
</reasoning>
|
|
206
|
-
</example>
|
|
207
|
-
|
|
208
|
-
<example>
|
|
209
|
-
User: What time is it in Tokyo right now?
|
|
210
|
-
Assistant: I'll check the current time in Tokyo for you.
|
|
211
|
-
|
|
212
|
-
*Searches for current time in Tokyo*
|
|
213
|
-
|
|
214
|
-
The current time in Tokyo, Japan is [current time]. Tokyo is in the Japan Standard Time (JST) zone, which is UTC+9.
|
|
215
|
-
|
|
216
|
-
<reasoning>
|
|
217
|
-
The assistant did not use the todo list because this is a single information lookup with immediate results. There are no multiple steps to track or organize, making the todo list unnecessary for this straightforward request.
|
|
218
|
-
</reasoning>
|
|
219
|
-
</example>
|
|
220
|
-
|
|
221
|
-
<example>
|
|
222
|
-
User: I need to write a function that checks if a number is prime and then test it out.
|
|
223
|
-
Assistant: I'll help you write a function that checks if a number is prime and then test it out.
|
|
224
|
-
*Writes function that checks if a number is prime*
|
|
225
|
-
*Tests the function*
|
|
226
|
-
|
|
227
|
-
<reasoning>
|
|
228
|
-
Even though this is a multi-step task, it is very straightforward and can be completed in two trivial steps (which is less than 3 steps!). Using the todo list here is overkill and wastes time and tokens.
|
|
229
|
-
</reasoning>
|
|
230
|
-
</example>
|
|
231
|
-
|
|
232
|
-
<example>
|
|
233
|
-
User: I want you to order a pizza from Dominos, order a burger from McDonald's, and order a salad from Subway.
|
|
234
|
-
Assistant: I'll help you order a pizza from Dominos, order a burger from McDonald's, and order a salad from Subway.
|
|
235
|
-
*Orders a pizza from Dominos*
|
|
236
|
-
*Orders a burger from McDonald's*
|
|
237
|
-
*Orders a salad from Subway*
|
|
238
|
-
|
|
239
|
-
<reasoning>
|
|
240
|
-
Even though this is a multi-step task, assuming the assistant has the ability to order from these restaurants, it is very straightforward and can be completed in three trivial tool calls.
|
|
241
|
-
Using the todo list here is overkill and wastes time and tokens. These three tool calls should be made in parallel, in fact.
|
|
242
|
-
</reasoning>
|
|
243
|
-
</example>
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
## Task States and Management
|
|
247
|
-
|
|
248
|
-
1. **Task States**: Use these states to track progress:
|
|
249
|
-
- pending: Task not yet started
|
|
250
|
-
- in_progress: Currently working on (you can have multiple tasks in_progress at a time if they are not related to each other and can be run in parallel)
|
|
251
|
-
- completed: Task finished successfully
|
|
252
|
-
|
|
253
|
-
2. **Task Management**:
|
|
254
|
-
- Update task status in real-time as you work
|
|
255
|
-
- Mark tasks complete IMMEDIATELY after finishing (don't batch completions)
|
|
256
|
-
- Complete current tasks before starting new ones
|
|
257
|
-
- Remove tasks that are no longer relevant from the list entirely
|
|
258
|
-
- IMPORTANT: When you write this todo list, you should mark your first task (or tasks) as in_progress immediately!.
|
|
259
|
-
- IMPORTANT: Unless all tasks are completed, you should always have at least one task in_progress to show the user that you are working on something.
|
|
260
|
-
|
|
261
|
-
3. **Task Completion Requirements**:
|
|
262
|
-
- ONLY mark a task as completed when you have FULLY accomplished it
|
|
263
|
-
- If you encounter errors, blockers, or cannot finish, keep the task as in_progress
|
|
264
|
-
- When blocked, create a new task describing what needs to be resolved
|
|
265
|
-
- Never mark a task as completed if:
|
|
266
|
-
- There are unresolved issues or errors
|
|
267
|
-
- Work is partial or incomplete
|
|
268
|
-
- You encountered blockers that prevent completion
|
|
269
|
-
- You couldn't find necessary resources or dependencies
|
|
270
|
-
- Quality standards haven't been met
|
|
271
|
-
|
|
272
|
-
4. **Task Breakdown**:
|
|
273
|
-
- Create specific, actionable items
|
|
274
|
-
- Break complex tasks into smaller, manageable steps
|
|
275
|
-
- Use clear, descriptive task names
|
|
276
|
-
|
|
277
|
-
Being proactive with task management demonstrates attentiveness and ensures you complete all requirements successfully
|
|
278
|
-
Remember: If you only need to make a few tool calls to complete a task, and it is clear what you need to do, it is better to just do the task directly and NOT call this tool at all.`,OY=`## \`write_todos\`
|
|
279
|
-
|
|
280
|
-
You have access to the \`write_todos\` tool to help you manage and plan complex objectives.
|
|
281
|
-
Use this tool for complex objectives to ensure that you are tracking each necessary step and giving the user visibility into your progress.
|
|
282
|
-
This tool is very helpful for planning complex objectives, and for breaking down these larger complex objectives into smaller steps.
|
|
283
|
-
|
|
284
|
-
It is critical that you mark todos as completed as soon as you are done with a step. Do not batch up multiple steps before marking them as completed.
|
|
285
|
-
For simple objectives that only require a few steps, it is better to just complete the objective directly and NOT use this tool.
|
|
286
|
-
Writing todos takes time and tokens, use it when it is helpful for managing complex many-step problems! But not for simple few-step requests.
|
|
287
|
-
|
|
288
|
-
## Important To-Do List Usage Notes to Remember
|
|
289
|
-
- The \`write_todos\` tool should never be called multiple times in parallel.
|
|
290
|
-
- Don't be afraid to revise the To-Do list as you go. New information may reveal new tasks that need to be done, or old tasks that are irrelevant.`,bL=U.enum(["pending","in_progress","completed"]).describe("Status of the todo"),h$=U.object({content:U.string().describe("Content of the todo item"),status:bL}),CL=U.object({todos:U.array(h$).default([])});function X5(X){let Y=R0(({todos:Q},Z)=>{return new D0({update:{todos:Q,messages:[new g({content:`Updated todo list to ${JSON.stringify(Q)}`,tool_call_id:Z.toolCall?.id})]}})},{name:"write_todos",description:X?.toolDescription??SL,schema:U.object({todos:U.array(h$).describe("List of todo items to update")})});return X0({name:"todoListMiddleware",stateSchema:CL,tools:[Y],wrapModelCall:(Q,Z)=>Z({...Q,systemMessage:Q.systemMessage.concat(`
|
|
291
|
-
|
|
292
|
-
${X?.systemPrompt??OY}`)})})}var yL="end",kL=U.object({threadLimit:U.number().optional(),runLimit:U.number().optional(),exitBehavior:U.enum(["error","end"]).optional()}),_L=U.object({threadModelCallCount:U.number().default(0),runModelCallCount:U.number().default(0)}),g$=class extends Error{constructor({threadLimit:X,runLimit:Y,threadCount:Q,runCount:Z}){let W=[];if(typeof X==="number"&&typeof Q==="number")W.push(`thread level call limit reached with ${Q} model calls`);if(typeof Y==="number"&&typeof Z==="number")W.push(`run level call limit reached with ${Z} model calls`);super(`Model call limits exceeded${W.length>0?`: ${W.join(", ")}`:""}`);this.name="ModelCallLimitMiddlewareError"}};function Y5(X){return X0({name:"ModelCallLimitMiddleware",contextSchema:kL,stateSchema:_L,beforeModel:{canJumpTo:["end"],hook:(Y,Q)=>{let Z=Q.context.exitBehavior??X?.exitBehavior??yL;if(Z==="throw")console.warn("The 'throw' exit behavior is deprecated. Please use 'error' instead."),Z="error";let W=Q.context.threadLimit??X?.threadLimit,$=Q.context.runLimit??X?.runLimit,J=Y.threadModelCallCount,G=Y.runModelCallCount;if(typeof W==="number"&&W<=J){let K=new g$({threadLimit:W,threadCount:J});if(Z==="end")return{jumpTo:"end",messages:[new _(K.message)]};throw K}if(typeof $==="number"&&$<=G){let K=new g$({runLimit:$,runCount:G});if(Z==="end")return{jumpTo:"end",messages:[new _(K.message)]};throw K}return Y}},afterModel:(Y)=>({runModelCallCount:Y.runModelCallCount+1,threadModelCallCount:Y.threadModelCallCount+1}),afterAgent:()=>({runModelCallCount:0})})}function Q5(...X){return X0({name:"modelFallbackMiddleware",wrapModelCall:async(Y,Q)=>{try{return await Q(Y)}catch(Z){for(let W=0;W<X.length;W++)try{let $=X[W],J=typeof $==="string"?await d0($):$;return await Q({...Y,model:J})}catch($){if(W===X.length-1)throw $}throw Z}}})}var DY=U.object({maxRetries:U.number().min(0).default(2),retryOn:U.union([U.function().args(U.instanceof(Error)).returns(U.boolean()),U.array(U.custom())]).default(()=>()=>!0),backoffFactor:U.number().min(0).default(2),initialDelayMs:U.number().min(0).default(1000),maxDelayMs:U.number().min(0).default(60000),jitter:U.boolean().default(!0)});var PY=class extends Error{cause;constructor(X){let Y=A.prettifyError(X).slice(2);super(Y);this.name="InvalidRetryConfigError",this.cause=X}};var u$=U.object({onFailure:U.union([U.literal("error"),U.literal("continue"),U.function().args(U.instanceof(Error)).returns(U.string())]).default("continue")}).merge(DY);function Z5(X={}){let{success:Y,error:Q,data:Z}=u$.safeParse(X);if(!Y)throw new PY(Q);let{maxRetries:W,retryOn:$,onFailure:J,backoffFactor:G,initialDelayMs:K,maxDelayMs:B,jitter:H}=Z,V=(q)=>{if(typeof $==="function")return $(q);return $.some((w)=>q.constructor===w)},z={backoffFactor:G,initialDelayMs:K,maxDelayMs:B,jitter:H},F=(q,w)=>{let O=q.constructor.name;return`Model call failed after ${w} ${w===1?"attempt":"attempts"} with ${O}: ${q.message}`},L=(q,w)=>{if(J==="error")throw q;let O;if(typeof J==="function")O=J(q);else O=F(q,w);return new _({content:O})};return X0({name:"modelRetryMiddleware",contextSchema:u$,wrapModelCall:async(q,w)=>{for(let O=0;O<=W;O++)try{return await w(q)}catch(R){let P=O+1,D=R&&typeof R==="object"&&"message"in R?R:Error(String(R));if(!V(D))return L(D,P);if(O<W){let E=r7(z,O);if(E>0)await n7(E)}else return L(D,P)}throw Error("Unexpected: retry loop completed without returning")}})}var m$=U.object({tools:U.array(U.union([U.custom(),U.custom(),U.string()])).optional(),onFailure:U.union([U.literal("error"),U.literal("continue"),U.literal("raise"),U.literal("return_message"),U.function().args(U.instanceof(Error)).returns(U.string())]).default("continue")}).merge(DY);function W5(X={}){let{success:Y,error:Q,data:Z}=m$.safeParse(X);if(!Y)throw new PY(Q);let{maxRetries:W,tools:$,retryOn:J,onFailure:G,backoffFactor:K,initialDelayMs:B,maxDelayMs:H,jitter:V}=Z,z=G;if(G==="raise")console.warn("⚠️ `onFailure: 'raise'` is deprecated. Use `onFailure: 'error'` instead."),z="error";else if(G==="return_message")console.warn("⚠️ `onFailure: 'return_message'` is deprecated. Use `onFailure: 'continue'` instead."),z="continue";let F=[];for(let P of $??[])if(typeof P==="string")F.push(P);else if("name"in P&&typeof P.name==="string")F.push(P.name);else throw TypeError("Expected a tool name string or tool instance to be passed to toolRetryMiddleware");let L=(P)=>{if(F.length===0)return!0;return F.includes(P)},q=(P)=>{if(typeof J==="function")return J(P);return J.some((D)=>{return P instanceof D})},w={backoffFactor:K,initialDelayMs:B,maxDelayMs:H,jitter:V},O=(P,D,E)=>{let I=D.constructor.name;return`Tool '${P}' failed after ${E} ${E===1?"attempt":"attempts"} with ${I}`},R=(P,D,E,I)=>{if(z==="error")throw E;let S;if(typeof z==="function")S=z(E);else S=O(P,E,I);return new g({content:S,tool_call_id:D,name:P,status:"error"})};return X0({name:"toolRetryMiddleware",contextSchema:m$,wrapToolCall:async(P,D)=>{let E=P.tool?.name??P.toolCall.name;if(!L(E))return D(P);let I=P.toolCall.id??"";for(let S=0;S<=W;S++)try{return await D(P)}catch(x){let C=S+1,h=x&&typeof x==="object"&&"message"in x?x:Error(String(x));if(!q(h))return R(E,I,h,C);if(S<W){let n=r7(w,S);if(n>0)await n7(n)}else return R(E,I,h,C)}throw Error("Unexpected: retry loop completed without returning")}})}function $5(X={}){let Y,{tools:Q,model:Z}=X,W=!Q||Q.length===0,$=new Set;if(!W&&Q)for(let K of Q)if(typeof K==="string")$.add(K);else{let B=typeof K.name==="string"?K.name:String(K.name);$.add(B)}let J,G=async()=>{if(typeof Z==="object")return Z;if(typeof Z==="string")return J=J??await d0(Z,{temperature:1}).catch((K)=>{return console.error("Error initializing emulator model, using agent model:",K),Y}),J;return Y};return X0({name:"ToolEmulatorMiddleware",wrapModelCall:async(K,B)=>{return Y=K.model,B(K)},wrapToolCall:async(K,B)=>{let H=K.toolCall.name;if(!(W||$.has(H)))return B(K);let z=K.toolCall.args,F=K.tool.description||"No description available",L=typeof z==="string"?z:JSON.stringify(z),q=`You are emulating a tool call for testing purposes.
|
|
293
|
-
|
|
294
|
-
Tool: ${H}
|
|
295
|
-
Description: ${F}
|
|
296
|
-
Arguments: ${L}
|
|
297
|
-
|
|
298
|
-
Generate a realistic response that this tool would return given these arguments.
|
|
299
|
-
Return ONLY the tool's output, no explanation or preamble. Introduce variation into your responses.`,O=await(await G()).invoke([new z0(q)]),R=typeof O.content==="string"?O.content:JSON.stringify(O.content);return new g({content:R,tool_call_id:K.toolCall.id??"",name:H})}})}function vL(X){if(!X||typeof X!=="object"||X===null||!("client"in X)||!("_getClientOptions"in X)||typeof X._getClientOptions!=="function")return!1;return X._getClientOptions(),typeof X.client==="object"&&X.client!==null&&"moderations"in X.client&&typeof X.client.moderations==="object"&&X.client.moderations!==null&&"create"in X.client.moderations&&typeof X.client.moderations.create==="function"}var fL="I'm sorry, but I can't comply with that request. It was flagged for {categories}.",hL=class extends Error{content;stage;result;originalMessage;constructor({content:X,stage:Y,result:Q,message:Z}){super(Z);this.name="OpenAIModerationError",this.content=X,this.stage=Y,this.result=Q,this.originalMessage=Z}};function J5(X){let{model:Y,moderationModel:Q="omni-moderation-latest",checkInput:Z=!0,checkOutput:W=!0,checkToolResults:$=!1,exitBehavior:J="end",violationMessage:G}=X,K,B=async()=>{if(K)return K;let P=typeof Y==="string"?await d0(Y):Y;if(!P.getName().includes("ChatOpenAI"))throw Error(`Model must be an OpenAI model to use moderation middleware. Got: ${P.getName()}`);if(!vL(P))throw Error("Model must support moderation to use moderation middleware.");return K=P,K},H=(P)=>{if(P.content==null)return null;return P.text||null},V=(P,D)=>{for(let E=P.length-1;E>=0;E--)if(D.isInstance(P[E]))return E;return null},z=(P,D)=>{let E=[],I=D.categories;for(let[h,n]of Object.entries(I))if(n)E.push(h.replace(/_/g," "));let S=E.length>0?E.join(", "):"OpenAI's safety policies",x=G||fL,C=JSON.stringify(D.category_scores,null,2);try{return x.replace("{categories}",S).replace("{category_scores}",C).replace("{original_content}",P)}catch{return x}};function F(P,D){let E=K?._getClientOptions?.(),I=D?.model??"omni-moderation-latest",S={input:P,model:I};return K.client.moderations.create(S,E)}let L=(P,D,E,I,S)=>{let x=z(I,S);if(J==="error")throw new hL({content:I,stage:E,result:S,message:x});if(J==="end")return{jumpTo:"end",messages:[new _({content:x})]};if(D==null)return;let C=[...P],h=C[D],n=Object.getPrototypeOf(h).constructor;return C[D]=new n({...h,content:x}),{messages:C}},q=async(P)=>{let D=V(P,z0);if(D==null)return null;let E=P[D],I=H(E);if(!I)return null;await B();let x=(await F(I,{model:Q})).results.find((C)=>C.flagged);if(!x)return null;return L(P,D,"input",I,x)},w=async(P)=>{let D=V(P,_);if(D==null)return null;let E=[...P],I=!1;for(let S=D+1;S<E.length;S++){let x=E[S];if(!g.isInstance(x))continue;let C=H(x);if(!C)continue;await B();let n=(await F(C,{model:Q})).results.find((J6)=>J6.flagged);if(!n)continue;let m0=L(E,S,"tool",C,n);if(m0){if("jumpTo"in m0)return m0;if("messages"in m0)E.splice(0,E.length,...m0.messages),I=!0}}if(I)return{messages:E};return null},O=async(P)=>{let D=V(P,_);if(D==null)return null;let E=P[D],I=H(E);if(!I)return null;await B();let x=(await F(I,{model:Q})).results.find((C)=>C.flagged);if(!x)return null;return L(P,D,"output",I,x)},R=async(P)=>{let D=[...P],E=!1;if($){let I=await w(D);if(I){if("jumpTo"in I)return I;if("messages"in I)D.splice(0,D.length,...I.messages),E=!0}}if(Z){let I=await q(D);if(I){if("jumpTo"in I)return I;if("messages"in I)D.splice(0,D.length,...I.messages),E=!0}}if(E)return{messages:D};return null};return X0({name:"OpenAIModerationMiddleware",beforeModel:{hook:async(P)=>{if(!Z&&!$)return;let D=P.messages||[];if(D.length===0)return;return await R(D)??void 0},canJumpTo:["end"]},afterModel:{hook:async(P)=>{if(!W)return;let D=P.messages||[];if(D.length===0)return;return await O(D)??void 0},canJumpTo:["end"]}})}var gL=!0,uL="5m",mL=3,dL="warn",cL=U.object({enableCaching:U.boolean().optional(),ttl:U.enum(["5m","1h"]).optional(),minMessagesToCache:U.number().optional(),unsupportedModelBehavior:U.enum(["ignore","warn","raise"]).optional()}),d$=class extends Error{constructor(X){super(X);this.name="PromptCachingMiddlewareError"}};function G5(X){return X0({name:"PromptCachingMiddleware",contextSchema:cL,wrapModelCall:(Y,Q)=>{let Z=Y.runtime.context.enableCaching??X?.enableCaching??gL,W=Y.runtime.context.ttl??X?.ttl??uL,$=Y.runtime.context.minMessagesToCache??X?.minMessagesToCache??mL,J=Y.runtime.context.unsupportedModelBehavior??X?.unsupportedModelBehavior??dL;if(!Z||!Y.model)return Q(Y);if(!(Y.model.getName()==="ChatAnthropic"||Y.model.getName()==="ConfigurableModel"&&Y.model._defaultConfig?.modelProvider==="anthropic")){let V=Y.model.getName(),F=`Unsupported model '${Y.model.getName()==="ConfigurableModel"?`${V} (${Y.model._defaultConfig?.modelProvider})`:V}'. Prompt caching requires an Anthropic model`;if(J==="raise")throw new d$(`${F} (e.g., 'anthropic:claude-4-0-sonnet').`);else if(J==="warn")console.warn(`PromptCachingMiddleware: Skipping caching for ${V}. Consider switching to an Anthropic model for caching benefits.`);return Q(Y)}if(Y.state.messages.length+(Y.systemPrompt?1:0)<$)return Q(Y);let B=Y.messages.at(-1);if(!B)return Q(Y);let H=Object.getPrototypeOf(B).constructor;if(Array.isArray(B.content)){let V=new H({...B,content:[...B.content.slice(0,-1),{...B.content.at(-1),cache_control:{type:"ephemeral",ttl:W}}]});return Q({...Y,messages:[...Y.messages.slice(0,-1),V]})}else if(typeof B.content==="string"){let V=new H({...B,content:[{type:"text",text:B.content,cache_control:{type:"ephemeral",ttl:W}}]});return Q({...Y,messages:[...Y.messages.slice(0,-1),V]})}throw new d$("Last message content is not a string or array")}})}var pL={};p7(pL,{AIMessage:()=>_,AIMessageChunk:()=>G1,BaseMessage:()=>XY,BaseMessageChunk:()=>c$,ClearToolUsesEdit:()=>LY,Document:()=>l$,DynamicStructuredTool:()=>wY,DynamicTool:()=>B5,FakeToolCallingModel:()=>kQ,HumanMessage:()=>z0,HumanMessageChunk:()=>iX,InMemoryStore:()=>i$,MultipleStructuredOutputsError:()=>j8,MultipleToolsBoundError:()=>A8,PIIDetectionError:()=>JY,ProviderStrategy:()=>x1,StructuredOutputParsingError:()=>gX,StructuredTool:()=>yQ,SystemMessage:()=>B0,SystemMessageChunk:()=>b8,TODO_LIST_MIDDLEWARE_SYSTEM_PROMPT:()=>OY,Tool:()=>K5,ToolCallLimitExceededError:()=>qY,ToolInvocationError:()=>E8,ToolMessage:()=>g,ToolMessageChunk:()=>lX,ToolStrategy:()=>z1,anthropicPromptCachingMiddleware:()=>G5,applyStrategy:()=>FY,contextEditingMiddleware:()=>oQ,countTokensApproximately:()=>g6,createAgent:()=>j$,createMiddleware:()=>X0,detectCreditCard:()=>KY,detectEmail:()=>GY,detectIP:()=>BY,detectMacAddress:()=>HY,detectUrl:()=>VY,dynamicSystemPromptMiddleware:()=>lQ,filterMessages:()=>p$,humanInTheLoopMiddleware:()=>mQ,initChatModel:()=>d0,llmToolSelectorMiddleware:()=>iQ,modelCallLimitMiddleware:()=>Y5,modelFallbackMiddleware:()=>Q5,modelRetryMiddleware:()=>Z5,openAIModerationMiddleware:()=>J5,piiMiddleware:()=>aQ,piiRedactionMiddleware:()=>tQ,providerStrategy:()=>CQ,resolveRedactionRule:()=>zY,summarizationMiddleware:()=>pQ,todoListMiddleware:()=>X5,tool:()=>R0,toolCallLimitMiddleware:()=>eQ,toolEmulatorMiddleware:()=>$5,toolRetryMiddleware:()=>W5,toolStrategy:()=>bQ,trimMessages:()=>WY});var LU=rX(Sx(),1);import GU from"node:fs/promises";import{join as hW,resolve as c7,relative as KU,sep as BU,basename as bx,dirname as Cx}from"node:path";import{existsSync as HU,readdirSync as yx,lstatSync as VU,statSync as UU,readFileSync as kx}from"node:fs";import{homedir as _x}from"node:os";var H5=U.object({serverName:U.string(),name:U.string(),args:U.unknown()}),a$=U.tuple([U.custom(),U.array(U.union([U.custom(),U.custom()]))]),lL=U.union([U.string(),U.custom(),a$,U.custom()]),iL=U.object({...H5.shape,result:a$}),n$=U.object({...H5.shape,result:lL}),r$=U.object({headers:U.record(U.string()),args:U.unknown()}).partial(),s$=U.object({beforeToolCall:U.function().args(H5,U.custom(),U.custom()).returns(U.union([U.promise(r$),r$,U.void(),U.promise(U.void())])).optional(),afterToolCall:U.function().args(iL,U.custom(),U.custom()).returns(U.union([U.promise(n$.pick({result:!0})),n$.pick({result:!0}),U.void(),U.promise(U.void())])).optional()});var nX=["audio","image","resource","resource_link","text"],nL=U.enum(["debug","info","notice","warning","error","critical","alert","emergency"]),rL=U.union([U.string(),U.number().int()]),aL=U.union([U.literal("content").describe("Put tool output into the ToolMessage.content array"),U.literal("artifact").describe("Put tool output into the ToolMessage.artifact array")]),sL=U.object(Object.fromEntries(nX.map((X)=>[X,U.union([U.literal("content").describe(`Put all ${X} tool output into the ToolMessage.content array`),U.literal("artifact").describe(`Put all ${X} tool output into the ToolMessage.artifact array`)]).describe(`Where to place ${X} tool output in the LangChain ToolMessage`).optional()]))),tL=U.union([aL,sL]).describe("Defines where to place each tool output type in the LangChain ToolMessage.\n\nItems in the `content` field will be used as input context for the LLM, while the artifact field is\nused for capturing tool output that won't be shown to the model, to be used in some later workflow\nstep.\n\nFor example, imagine that you have a SQL query tool that can return huge result sets. Rather than\nsending these large outputs directly to the model, perhaps you want the model to be able to inspect\nthe output in a code execution environment. In this case, you would set the output handling for the\n`resource` type to `artifact` (it's default value), and then upon initialization of your code\nexecution environment, you would look through your message history for `ToolMessage`s with the\n`artifact` field set to `resource`, and use the `content` field during initialization of the\nenvironment."),oL=U.custom((X)=>{if(!X||typeof X!=="object")return!1;let Y=["redirectUrl","clientMetadata","clientInformation","tokens","saveTokens"];if(!("redirectUrl"in X))return!1;if(!("clientMetadata"in X))return!1;for(let Q of Y)if(!(Q in X))return!1;return!0},{message:"Must be a valid OAuthClientProvider implementation with required properties: redirectUrl, clientMetadata, clientInformation, tokens, saveTokens"}),V5=U.object({outputHandling:tL.optional(),defaultToolTimeout:U.number().min(1).optional()}),eL=U.object({enabled:U.boolean().describe("Whether to automatically restart the process if it exits").optional(),maxAttempts:U.number().describe("The maximum number of restart attempts").optional(),delayMs:U.number().describe("The delay in milliseconds between restart attempts").optional()}).describe("Configuration for stdio transport restart"),Xq=U.object({transport:U.literal("stdio").optional(),type:U.literal("stdio").optional(),command:U.string().describe("The executable to run the server"),args:U.array(U.string()).describe("Command line arguments to pass to the executable"),env:U.record(U.string()).describe("The environment to use when spawning the process").optional(),encoding:U.string().describe("The encoding to use when reading from the process").optional(),stderr:U.union([U.literal("overlapped"),U.literal("pipe"),U.literal("ignore"),U.literal("inherit")]).describe("How to handle stderr of the child process. This matches the semantics of Node's `child_process.spawn`").optional().default("inherit"),cwd:U.string().describe("The working directory to use when spawning the process").optional(),restart:eL.optional()}).and(V5).describe("Configuration for stdio transport connection"),Yq=U.object({enabled:U.boolean().describe("Whether to automatically reconnect if the connection is lost").optional(),maxAttempts:U.number().describe("The maximum number of reconnection attempts").optional(),delayMs:U.number().describe("The delay in milliseconds between reconnection attempts").optional()}).describe("Configuration for streamable HTTP transport reconnection"),Qq=U.object({transport:U.union([U.literal("http"),U.literal("sse")]).optional(),type:U.union([U.literal("http"),U.literal("sse")]).optional(),url:U.string().url(),headers:U.record(U.string()).optional(),authProvider:oL.optional(),reconnect:Yq.optional(),automaticSSEFallback:U.boolean().optional().default(!0)}).and(V5).describe("Configuration for streamable HTTP transport connection"),AY=U.union([Xq,Qq]).describe("Configuration for a single MCP server"),Zq=U.object({type:U.literal("tool"),name:U.string(),args:U.unknown(),server:U.string()}),Wq=U.object({type:U.literal("unknown")}),$q=U.union([Zq,Wq]),H6=U.object({server:U.string(),options:AY}),Jq=U.object({onMessage:U.function().args(U.object({level:nL,logger:U.optional(U.string()),data:U.unknown()}),H6).returns(U.union([U.void(),U.promise(U.void())])).optional(),onProgress:U.function().args(U.object({progress:U.number(),total:U.optional(U.number()),message:U.optional(U.string())}),$q).returns(U.union([U.void(),U.promise(U.void())])).optional(),onCancelled:U.function().args(U.object({requestId:rL,reason:U.string().optional()}),H6).returns(U.union([U.void(),U.promise(U.void())])).optional(),onInitialized:U.function().args(H6).returns(U.union([U.void(),U.promise(U.void())])).optional(),onPromptsListChanged:U.function().args(H6).returns(U.union([U.void(),U.promise(U.void())])).optional(),onResourcesListChanged:U.function().args(H6).returns(U.union([U.void(),U.promise(U.void())])).optional(),onResourcesUpdated:U.function().args(U.object({uri:U.string()}),H6).returns(U.union([U.void(),U.promise(U.void())])).optional(),onRootsListChanged:U.function().args(H6).returns(U.union([U.void(),U.promise(U.void())])).optional(),onToolsListChanged:U.function().args(H6).returns(U.union([U.void(),U.promise(U.void())])).optional()}),t$=U.object({mcpServers:U.record(AY).describe("A map of server names to their configuration"),throwOnLoadError:U.boolean().describe("Whether to throw an error if a tool fails to load").optional().default(!0),prefixToolNameWithServerName:U.boolean().describe("Whether to prefix tool names with the server name").optional().default(!1),additionalToolNamePrefix:U.string().describe("An additional prefix to add to the tool name").optional().default(""),useStandardContentBlocks:U.boolean().describe("If true, the tool will use LangChain's standard multimodal content blocks for tools that output\nimage or audio content. When true, embedded resources will be converted to `StandardFileBlock`\nobjects. When `false`, all artifacts are left in their MCP format, but embedded resources will\nbe converted to `StandardFileBlock` objects if `outputHandling` causes embedded resources to be\ntreated as content, as otherwise ChatModel providers will not be able to interpret them.").optional().default(!1),onConnectionError:U.union([U.enum(["throw","ignore"]),U.function().args(U.object({serverName:U.string(),error:U.unknown()})).returns(U.void())]).describe("Behavior when a server fails to connect: 'throw' to error immediately, 'ignore' to skip failed servers, or a function for custom error handling").optional().default("throw")}).and(V5).and(s$).and(Jq).describe("Configuration for the MCP client");function NY(X,Y=!1){if(X==null)return{};if(typeof X==="string")return Object.fromEntries(nX.map((Z)=>[Z,X]));let Q={};for(let Z of nX)if(X[Z]||Y)Q[Z]=X[Z]??(Z==="resource"?"artifact":"content");return Q}function o$(X,Y){let Q=NY(X),Z=NY(Y);return{...Q,...Z}}var e$=rX(Gq(),1),Kq="@langchain/mcp-adapters",z5={};function C8(X="client"){let Y=`${Kq}:${X}`;if(!z5[Y])z5[Y]=e$.default(Y);return z5[Y]}var U1=C8("tools");function Bq(X){let Y=X.$defs??X.definitions??{};function Q(Z,W=new Set){if(typeof Z!=="object"||Z===null)return Z;if(Z.$ref&&typeof Z.$ref==="string"){let J=Z.$ref,G=J.match(/^#\/\$defs\/(.+)$/),K=J.match(/^#\/definitions\/(.+)$/),B=G||K;if(B){let H=B[1],V=Y[H];if(V){if(W.has(J))return U1(`WARNING: Circular reference detected for ${J}, using empty object`),{type:"object"};let z=new Set(W);z.add(J);let{$ref:F,...L}=Z;return{...Q(V,z),...L}}else U1(`WARNING: Could not resolve $ref: ${J}`)}return Z}let $={};for(let[J,G]of Object.entries(Z)){if(J==="$defs"||J==="definitions")continue;if(Array.isArray(G))$[J]=G.map((K)=>typeof K==="object"&&K!==null?Q(K,W):K);else if(typeof G==="object"&&G!==null)$[J]=Q(G,W);else $[J]=G}return $}return Q(X)}function p6(X,Y){let Q={...X};for(let[Z,W]of Object.entries(Y)){let $=Q[Z];if(Z==="required"&&Array.isArray($))Q[Z]=[...new Set([...$,...W])];else if(Z==="const"){let{const:J,enum:G}=Q,K=new Set;if(G)for(let B of G)K.add(B);if(J!==void 0)K.add(J);K.add(W),delete Q.const,Q.enum=[...K]}else if(Z==="enum"&&Array.isArray(W)){let J=new Set;if(Array.isArray($))for(let G of $)J.add(G);if(Q.const!==void 0)J.add(Q.const),delete Q.const;for(let G of W)J.add(G);Q[Z]=[...J]}else if(Z==="properties"&&typeof $==="object"&&$!==null){let J={...$};for(let[G,K]of Object.entries(W))if(J[G]&&typeof J[G]==="object"&&typeof K==="object")J[G]=p6(J[G],K);else J[G]=K;Q[Z]=J}else if(Array.isArray(W)&&Array.isArray($))Q[Z]=[...$,...W];else if(typeof W==="object"&&W!==null&&!Array.isArray(W)&&typeof $==="object"&&$!==null&&!Array.isArray($))Q[Z]=p6($,W);else Q[Z]=W}return Q}function XJ(X){let Y={};if(X.then&&typeof X.then==="object"){let Q=X.then;if(Q.properties)Y=p6(Y,{properties:Q.properties});if(Q.required)Y.required=[...new Set([...Y.required||[],...Q.required])]}if(X.else&&typeof X.else==="object"){let Q=X.else;if(Q.properties)Y=p6(Y,{properties:Q.properties});if(Q.required)Y.required=[...new Set([...Y.required||[],...Q.required])]}return Y}function c6(X){if(typeof X!=="object"||X===null)return X;let{allOf:Y,anyOf:Q,oneOf:Z,not:W,if:$,then:J,else:G,$schema:K,unevaluatedProperties:B,...H}=X,V={...H};if($||J||G){let F=XJ({if:$,then:J,else:G});V=p6(V,F),U1("INFO: Extracted properties from if/then/else conditional")}if(Array.isArray(Y)){for(let F of Y){if(F.if||F.then||F.else){let q=XJ(F);V=p6(V,q)}let L=c6(F);V=p6(V,L)}U1(`INFO: Flattened allOf with ${Y.length} schemas into base schema`)}let z=Q||Z;if(Array.isArray(z)&&z.length>0){let F=z.every((O)=>typeof O==="object"&&O!==null&&(O.type==="object"||O.properties)),L={},q=[],w=F?z:z.filter((O)=>typeof O==="object"&&O!==null&&(O.type==="object"||O.properties));for(let O of w){let R=c6(O);if(R.properties)Object.assign(L,R.properties);if(R.required&&Array.isArray(R.required))q.push(new Set(R.required));if(R.type&&!V.type)V.type=R.type}if(Object.keys(L).length>0)V.properties={...V.properties,...L};if(q.length>0){let O=q.reduce((R,P)=>{return new Set([...R].filter((D)=>P.has(D)))});if(O.size>0)V.required=[...new Set([...V.required||[],...O])]}U1(`INFO: Merged ${w.length} object schemas from ${Q?"anyOf":"oneOf"}`)}if(V.properties&&!V.type)V.type="object";if(V.properties){let F={};for(let[L,q]of Object.entries(V.properties))if(typeof q==="object"&&q!==null)F[L]=c6(q);else F[L]=q;V.properties=F}if(V.items){if(Array.isArray(V.items))V.items=V.items.map((F)=>typeof F==="object"&&F!==null?c6(F):F);else if(typeof V.items==="object")V.items=c6(V.items)}if(typeof V.additionalProperties==="object"&&V.additionalProperties!==null)V.additionalProperties=c6(V.additionalProperties);return V}var l6=class extends Error{constructor(X,Y){super(X);if(this.name="ToolException",Y&&(Y instanceof U5||Y instanceof F5)){let Q=Error(A.prettifyError(Y)),Z=Y.stack?.split(`
|
|
300
|
-
`)||[];Q.stack=Y.stack?.split(`
|
|
301
|
-
`).slice(Z.findIndex((W)=>W.includes(" at"))).join(`
|
|
302
|
-
`),this.cause=Q}else if(Y)this.cause=Y}};function Hq(X){return typeof X==="object"&&X!==null&&"name"in X&&X.name==="ToolException"}function Vq(X){return typeof X==="object"&&X!==null&&"uri"in X&&typeof X.uri==="string"&&(!("blob"in X)||X.blob==null)&&(!("text"in X)||X.text==null)}async function*QJ(X,Y){if(Vq(X)){let Q=await Y.readResource({uri:X.uri});for(let Z of Q.contents)yield*QJ(Z,Y);return}if("blob"in X&&X.blob!=null)yield{type:"file",source_type:"base64",data:X.blob,mime_type:X.mimeType,...X.uri!=null?{metadata:{uri:X.uri}}:{}};if("text"in X&&X.text!=null)yield{type:"file",source_type:"text",mime_type:X.mimeType,text:X.text,...X.uri!=null?{metadata:{uri:X.uri}}:{}}}async function ZJ(X,Y,Q,Z,W){let $=[];switch(X.type){case"text":return[{type:"text",...Y?{source_type:"text"}:{},text:X.text}];case"image":if(Y)return[{type:"image",source_type:"base64",data:X.data,mime_type:X.mimeType}];return[{type:"image_url",image_url:{url:`data:${X.mimeType};base64,${X.data}`}}];case"audio":return[{type:"audio",source_type:"base64",data:X.data,mime_type:X.mimeType}];case"resource":for await(let J of QJ(X.resource,Q))$.push(J);return $;case"resource_link":return[{type:"file",source_type:"url",url:X.uri,mime_type:X.mimeType}];default:throw new l6(`MCP tool '${Z}' on server '${W}' returned a content block with unexpected type "${X.type}." Expected one of ${nX.map((J)=>`"${J}"`).join(", ")}.`)}}async function zq(X,Y,Q,Z,W){if(Y)return ZJ(X,Y,Q,Z,W);if((!("blob"in X)||X.blob==null)&&(!("text"in X)||X.text==null)&&"uri"in X&&typeof X.uri==="string")return(await Q.readResource({uri:X.uri})).contents.map((J)=>({type:"resource",resource:{...J}}));return[X]}function YJ(X,Y){if(Y==="content"||Y==="artifact")return Y;return NY(Y)[X]??(X==="resource"?"artifact":"content")}async function Fq({serverName:X,toolName:Y,result:Q,client:Z,useStandardContentBlocks:W,outputHandling:$}){if(!Q)throw new l6(`MCP tool '${Y}' on server '${X}' returned an invalid result - tool call response was undefined`);if(!Array.isArray(Q.content))throw new l6(`MCP tool '${Y}' on server '${X}' returned an invalid result - expected an array of content, but was ${typeof Q.content}`);if(Q.isError)throw new l6(`MCP tool '${Y}' on server '${X}' returned an error: ${Q.content.map((V)=>V.type==="text"?V.text:"").join(`
|
|
303
|
-
`)}`);let J=(await Promise.all(Q.content.filter((V)=>YJ(V.type,$)==="content").map((V)=>ZJ(V,W,Z,Y,X)))).flat(),G=(await Promise.all(Q.content.filter((V)=>YJ(V.type,$)==="artifact").map((V)=>{return zq(V,W,Z,Y,X)}))).flat(),K=Q.structuredContent,B=Q._meta,H=[...G];if(K)H.push({type:"mcp_structured_content",data:K});if(B)H.push({type:"mcp_meta",data:B});if(J.length===1&&J[0].type==="text"){let V=J[0],z=V.text;if(K||B)return[{...V,...K?{structuredContent:K}:{},...B?{meta:B}:{}},H];return[z,H]}return[J,H]}async function Uq({serverName:X,toolName:Y,client:Q,args:Z,config:W,useStandardContentBlocks:$,outputHandling:J,onProgress:G,beforeToolCall:K,afterToolCall:B}){try{U1(`INFO: Calling tool ${Y}(${JSON.stringify(Z)})`);let H=W?.metadata?.timeoutMs??W?.timeout,V={...H?{timeout:H}:{},...W?.signal?{signal:W.signal}:{},...G?{onprogress:(C)=>{G?.(C,{type:"tool",name:Y,args:Z,server:X})}}:{}},z={};try{z=jY(W)}catch(C){U1(`State can't be derrived as LangGraph is not used: ${String(C)}`)}let F=await K?.({name:Y,args:Z,serverName:X},z,W??{}),L=Object.assign(Z,F?.args||{}),q=F?.headers||{},w=Object.entries(q).length>0;if(w&&typeof Q.fork!=="function")throw new l6(`MCP client for server "${X}" does not support header changes`);let O=w&&typeof Q.fork==="function"?await Q.fork(q):Q,R=[{name:Y,arguments:L}];if(Object.keys(V).length>0)R.push(void 0),R.push(V);let P=await O.callTool(...R),[D,E]=await Fq({serverName:X,toolName:Y,result:P,client:O,useStandardContentBlocks:$,outputHandling:J}),I=typeof D==="string"?D:Array.isArray(D)?D:[D],S=E.filter((C)=>C.type==="resource"||C.type!=="mcp_structured_content"&&C.type!=="mcp_meta"&&typeof C==="object"&&C!==null&&("source_type"in C)),x=await B?.({name:Y,args:L,result:[I,S],serverName:X},z,W??{});if(!x)return[D,E];if(typeof x.result==="string")return[x.result,[]];if(Array.isArray(x.result))return x.result;if(g.isInstance(x.result))return[x.result.contentBlocks,[]];if(x?.result instanceof D0)return x.result;throw Error(`Unexpected result value type from afterToolCall: expected either a Command, a ToolMessage or a tuple of ContentBlock and Artifact, but got ${x.result}`)}catch(H){if(H instanceof U5||H instanceof F5)throw new l6(A.prettifyError(H),H);if(U1(`Error calling tool ${Y}: ${String(H)}`),Hq(H))throw H;throw new l6(`Error calling tool ${Y}: ${String(H)}`)}}var Lq={throwOnLoadError:!0,prefixToolNameWithServerName:!1,additionalToolNamePrefix:"",useStandardContentBlocks:!1};async function L5(X,Y,Q){let{throwOnLoadError:Z,prefixToolNameWithServerName:W,additionalToolNamePrefix:$,useStandardContentBlocks:J,outputHandling:G,defaultToolTimeout:K}={...Lq,...Q??{}},B=[],H;do H=await Y.listTools({...H?.nextCursor?{cursor:H.nextCursor}:{}}),B.push(...H.tools||[]);while(H.nextCursor);U1(`INFO: Found ${B.length} MCP tools`);let V=$?`${$}__`:"",z=W?`${X}__`:"",F=`${V}${z}`;return(await Promise.all(B.filter((L)=>!!L.name).map(async(L)=>{try{if(!L.inputSchema.properties)L.inputSchema.properties={};let q=Bq(L.inputSchema),w=c6(q),O=new wY({name:`${F}${L.name}`,description:L.description||"",schema:w,responseFormat:"content_and_artifact",metadata:{annotations:L.annotations},defaultConfig:K?{timeout:K}:void 0,func:async(R,P,D)=>{return Uq({serverName:X,toolName:L.name,client:Y,args:R,config:D,useStandardContentBlocks:J,outputHandling:G,onProgress:Q?.onProgress,beforeToolCall:Q?.beforeToolCall,afterToolCall:Q?.afterToolCall})}});return U1(`INFO: Successfully loaded tool: ${O.name}`),O}catch(q){if(U1(`ERROR: Failed to load tool "${L.name}":`,q),Z)throw q;return null}}))).filter(Boolean)}var qq="@langchain/mcp-adapters",Oq="1.1.3",Dq="LangChain.js adapters for Model Context Protocol (MCP)",Pq="LangChain",wq="MIT",Nq="module",Aq="pnpm@10.14.0",jq={type:"git",url:"git@github.com:langchain-ai/langchainjs.git"},Eq="https://github.com/langchain-ai/langchainjs/tree/main/libs/langchain-mcp-adapters/",Rq={url:"https://github.com/langchain-ai/langchainjs/issues"},Tq={build:"turbo build:compile build:examples --filter @langchain/core --output-logs new-only","build:compile":"tsdown","build:examples":"tsc -p ./examples/tsconfig.json",clean:"rm -rf dist/ dist-cjs/ .turbo/",format:'prettier --write "src/**/*.ts" "examples/**/*.ts"',"format:check":'prettier --check "src" "examples/**/*.ts"',lint:"run-s lint:eslint lint:dpdm","lint:dpdm":"dpdm --skip-dynamic-imports circular --exit-code circular:1 --no-warning --no-tree src/**/*.ts examples/**/*.ts","lint:eslint":"eslint --cache src/ examples/","lint:fix":"pnpm lint:eslint --fix && pnpm lint:dpdm",test:"vitest run","test:coverage":"vitest run --coverage","test:watch":"vitest"},Mq=["langchain","mcp","model-context-protocol","ai","tools"],xq={"@modelcontextprotocol/sdk":"^1.26.0",debug:"^4.4.3",zod:"^3.25.76 || ^4"},Iq={"@langchain/core":"^1.0.0","@langchain/langgraph":"^1.0.0"},Sq={"@langchain/core":{optional:!1},"@langchain/langgraph":{optional:!1}},bq={"extended-eventsource":"^1.7.0"},Cq={"@eslint/js":"^9.36.0","@langchain/core":"workspace:^","@langchain/eslint":"workspace:*","@langchain/langgraph":"^1.0.0","@langchain/openai":"workspace:*","@langchain/tsconfig":"workspace:*","@tsconfig/recommended":"^1.0.10","@types/debug":"^4.1.12","@types/express":"^5.0.6","@types/node":"^22.18.8","@vitest/coverage-v8":"^3.2.4",dotenv:"^16.6.1",dpdm:"^3.14.0",eslint:"^9.36.0",eventsource:"^4.1.0",express:"^5.2.1",langchain:"workspace:*","npm-run-all2":"^8.0.4",prettier:"^3.6.2","ts-node":"^10.9.2",typescript:"~5.8.3","typescript-eslint":"^8.45.0",vitest:"^3.2.4"},yq={node:">=20.10.0"},kq={example:"examples"},_q="./dist/index.cjs",vq="./dist/index.d.cts",fq={".":{input:"./src/index.ts",require:{types:"./dist/index.d.cts",default:"./dist/index.cjs"},import:{types:"./dist/index.d.ts",default:"./dist/index.js"}},"./package.json":"./package.json"},hq=["dist/","CHANGELOG.md","README.md","LICENSE"],gq="./dist/index.js",q5={name:qq,version:Oq,description:Dq,author:Pq,license:wq,type:Nq,packageManager:Aq,repository:jq,homepage:Eq,bugs:Rq,scripts:Tq,keywords:Mq,dependencies:xq,peerDependencies:Iq,peerDependenciesMeta:Sq,optionalDependencies:bq,devDependencies:Cq,engines:yq,directories:kq,main:_q,types:vq,exports:fq,files:hq,module:gq};class D5 extends Error{constructor(X,Y){super(X),this.name="ParseError",this.type=Y.type,this.field=Y.field,this.value=Y.value,this.line=Y.line}}function O5(X){}function EY(X){if(typeof X=="function")throw TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");let{onEvent:Y=O5,onError:Q=O5,onRetry:Z=O5,onComment:W}=X,$="",J=!0,G,K="",B="";function H(q){let w=J?q.replace(/^\xEF\xBB\xBF/,""):q,[O,R]=uq(`${$}${w}`);for(let P of O)V(P);$=R,J=!1}function V(q){if(q===""){F();return}if(q.startsWith(":")){W&&W(q.slice(q.startsWith(": ")?2:1));return}let w=q.indexOf(":");if(w!==-1){let O=q.slice(0,w),R=q[w+1]===" "?2:1,P=q.slice(w+R);z(O,P,q);return}z(q,"",q)}function z(q,w,O){switch(q){case"event":B=w;break;case"data":K=`${K}${w}
|
|
304
|
-
`;break;case"id":G=w.includes("\x00")?void 0:w;break;case"retry":/^\d+$/.test(w)?Z(parseInt(w,10)):Q(new D5(`Invalid \`retry\` value: "${w}"`,{type:"invalid-retry",value:w,line:O}));break;default:Q(new D5(`Unknown field "${q.length>20?`${q.slice(0,20)}…`:q}"`,{type:"unknown-field",field:q,value:w,line:O}));break}}function F(){K.length>0&&Y({id:G,event:B||void 0,data:K.endsWith(`
|
|
305
|
-
`)?K.slice(0,-1):K}),G=void 0,K="",B=""}function L(q={}){$&&q.consume&&V($),J=!0,G=void 0,K="",B="",$=""}return{feed:H,reset:L}}function uq(X){let Y=[],Q="",Z=0;for(;Z<X.length;){let W=X.indexOf("\r",Z),$=X.indexOf(`
|
|
306
|
-
`,Z),J=-1;if(W!==-1&&$!==-1?J=Math.min(W,$):W!==-1?W===X.length-1?J=-1:J=W:$!==-1&&(J=$),J===-1){Q=X.slice(Z);break}else{let G=X.slice(Z,J);Y.push(G),Z=J+1,X[Z-1]==="\r"&&X[Z]===`
|
|
307
|
-
`&&Z++}}return[Y,Q]}class P5 extends Event{constructor(X,Y){var Q,Z;super(X),this.code=(Q=Y==null?void 0:Y.code)!=null?Q:void 0,this.message=(Z=Y==null?void 0:Y.message)!=null?Z:void 0}[Symbol.for("nodejs.util.inspect.custom")](X,Y,Q){return Q(WJ(this),Y)}[Symbol.for("Deno.customInspect")](X,Y){return X(WJ(this),Y)}}function mq(X){let Y=globalThis.DOMException;return typeof Y=="function"?new Y(X,"SyntaxError"):SyntaxError(X)}function w5(X){return X instanceof Error?"errors"in X&&Array.isArray(X.errors)?X.errors.map(w5).join(", "):("cause"in X)&&X.cause instanceof Error?`${X}: ${w5(X.cause)}`:X.message:`${X}`}function WJ(X){return{type:X.type,message:X.message,code:X.code,defaultPrevented:X.defaultPrevented,cancelable:X.cancelable,timeStamp:X.timeStamp}}var JJ=(X)=>{throw TypeError(X)},x5=(X,Y,Q)=>Y.has(X)||JJ("Cannot "+Q),Y0=(X,Y,Q)=>(x5(X,Y,"read from private field"),Q?Q.call(X):Y.get(X)),x0=(X,Y,Q)=>Y.has(X)?JJ("Cannot add the same private member more than once"):Y instanceof WeakSet?Y.add(X):Y.set(X,Q),U0=(X,Y,Q,Z)=>(x5(X,Y,"write to private field"),Y.set(X,Q),Q),c1=(X,Y,Q)=>(x5(X,Y,"access private method"),Q),n0,i6,y8,RY,TY,tX,v8,oX,V6,k8,f8,_8,aX,L1,N5,A5,j5,$J,E5,R5,sX,T5,M5;class h8 extends EventTarget{constructor(X,Y){var Q,Z;super(),x0(this,L1),this.CONNECTING=0,this.OPEN=1,this.CLOSED=2,x0(this,n0),x0(this,i6),x0(this,y8),x0(this,RY),x0(this,TY),x0(this,tX),x0(this,v8),x0(this,oX,null),x0(this,V6),x0(this,k8),x0(this,f8,null),x0(this,_8,null),x0(this,aX,null),x0(this,A5,async(W)=>{var $;Y0(this,k8).reset();let{body:J,redirected:G,status:K,headers:B}=W;if(K===204){c1(this,L1,sX).call(this,"Server sent HTTP 204, not reconnecting",204),this.close();return}if(G?U0(this,y8,new URL(W.url)):U0(this,y8,void 0),K!==200){c1(this,L1,sX).call(this,`Non-200 status code (${K})`,K);return}if(!(B.get("content-type")||"").startsWith("text/event-stream")){c1(this,L1,sX).call(this,'Invalid content type, expected "text/event-stream"',K);return}if(Y0(this,n0)===this.CLOSED)return;U0(this,n0,this.OPEN);let H=new Event("open");if(($=Y0(this,aX))==null||$.call(this,H),this.dispatchEvent(H),typeof J!="object"||!J||!("getReader"in J)){c1(this,L1,sX).call(this,"Invalid response body, expected a web ReadableStream",K),this.close();return}let V=new TextDecoder,z=J.getReader(),F=!0;do{let{done:L,value:q}=await z.read();q&&Y0(this,k8).feed(V.decode(q,{stream:!L})),L&&(F=!1,Y0(this,k8).reset(),c1(this,L1,T5).call(this))}while(F)}),x0(this,j5,(W)=>{U0(this,V6,void 0),!(W.name==="AbortError"||W.type==="aborted")&&c1(this,L1,T5).call(this,w5(W))}),x0(this,E5,(W)=>{typeof W.id=="string"&&U0(this,oX,W.id);let $=new MessageEvent(W.event||"message",{data:W.data,origin:Y0(this,y8)?Y0(this,y8).origin:Y0(this,i6).origin,lastEventId:W.id||""});Y0(this,_8)&&(!W.event||W.event==="message")&&Y0(this,_8).call(this,$),this.dispatchEvent($)}),x0(this,R5,(W)=>{U0(this,tX,W)}),x0(this,M5,()=>{U0(this,v8,void 0),Y0(this,n0)===this.CONNECTING&&c1(this,L1,N5).call(this)});try{if(X instanceof URL)U0(this,i6,X);else if(typeof X=="string")U0(this,i6,new URL(X,dq()));else throw Error("Invalid URL")}catch{throw mq("An invalid or illegal string was specified")}U0(this,k8,EY({onEvent:Y0(this,E5),onRetry:Y0(this,R5)})),U0(this,n0,this.CONNECTING),U0(this,tX,3000),U0(this,TY,(Q=Y==null?void 0:Y.fetch)!=null?Q:globalThis.fetch),U0(this,RY,(Z=Y==null?void 0:Y.withCredentials)!=null?Z:!1),c1(this,L1,N5).call(this)}get readyState(){return Y0(this,n0)}get url(){return Y0(this,i6).href}get withCredentials(){return Y0(this,RY)}get onerror(){return Y0(this,f8)}set onerror(X){U0(this,f8,X)}get onmessage(){return Y0(this,_8)}set onmessage(X){U0(this,_8,X)}get onopen(){return Y0(this,aX)}set onopen(X){U0(this,aX,X)}addEventListener(X,Y,Q){let Z=Y;super.addEventListener(X,Z,Q)}removeEventListener(X,Y,Q){let Z=Y;super.removeEventListener(X,Z,Q)}close(){Y0(this,v8)&&clearTimeout(Y0(this,v8)),Y0(this,n0)!==this.CLOSED&&(Y0(this,V6)&&Y0(this,V6).abort(),U0(this,n0,this.CLOSED),U0(this,V6,void 0))}}n0=new WeakMap,i6=new WeakMap,y8=new WeakMap,RY=new WeakMap,TY=new WeakMap,tX=new WeakMap,v8=new WeakMap,oX=new WeakMap,V6=new WeakMap,k8=new WeakMap,f8=new WeakMap,_8=new WeakMap,aX=new WeakMap,L1=new WeakSet,N5=function(){U0(this,n0,this.CONNECTING),U0(this,V6,new AbortController),Y0(this,TY)(Y0(this,i6),c1(this,L1,$J).call(this)).then(Y0(this,A5)).catch(Y0(this,j5))},A5=new WeakMap,j5=new WeakMap,$J=function(){var X;let Y={mode:"cors",redirect:"follow",headers:{Accept:"text/event-stream",...Y0(this,oX)?{"Last-Event-ID":Y0(this,oX)}:void 0},cache:"no-store",signal:(X=Y0(this,V6))==null?void 0:X.signal};return"window"in globalThis&&(Y.credentials=this.withCredentials?"include":"same-origin"),Y},E5=new WeakMap,R5=new WeakMap,sX=function(X,Y){var Q;Y0(this,n0)!==this.CLOSED&&U0(this,n0,this.CLOSED);let Z=new P5("error",{code:Y,message:X});(Q=Y0(this,f8))==null||Q.call(this,Z),this.dispatchEvent(Z)},T5=function(X,Y){var Q;if(Y0(this,n0)===this.CLOSED)return;U0(this,n0,this.CONNECTING);let Z=new P5("error",{code:Y,message:X});(Q=Y0(this,f8))==null||Q.call(this,Z),this.dispatchEvent(Z),U0(this,v8,setTimeout(Y0(this,M5),Y0(this,tX)))},M5=new WeakMap,h8.CONNECTING=0,h8.OPEN=1,h8.CLOSED=2;function dq(){let X="document"in globalThis?globalThis.document:void 0;return X&&typeof X=="object"&&"baseURI"in X&&typeof X.baseURI=="string"?X.baseURI:void 0}function g8(X){if(!X)return{};if(X instanceof Headers)return Object.fromEntries(X.entries());if(Array.isArray(X))return Object.fromEntries(X);return{...X}}function MY(X=fetch,Y){if(!Y)return X;return async(Q,Z)=>{let W={...Y,...Z,headers:Z?.headers?{...g8(Y.headers),...g8(Z.headers)}:Y.headers};return X(Q,W)}}var m8="2025-11-25";var HJ=[m8,"2025-06-18","2025-03-26","2024-11-05","2024-10-07"],z6="io.modelcontextprotocol/related-task",IY="2.0",y0=KJ((X)=>X!==null&&(typeof X==="object"||typeof X==="function")),VJ=H0([N(),J0().int()]),zJ=N(),fk=I0({ttl:H0([J0(),I5()]).optional(),pollInterval:J0().optional()}),cq=k({ttl:J0().optional()}),pq=k({taskId:N()}),y5=I0({progressToken:VJ.optional(),[z6]:pq.optional()}),Q1=k({_meta:y5.optional()}),eX=Q1.extend({task:cq.optional()}),FJ=(X)=>eX.safeParse(X).success,k0=k({method:N(),params:Q1.loose().optional()}),K1=k({_meta:y5.optional()}),B1=k({method:N(),params:K1.loose().optional()}),_0=I0({_meta:y5.optional()}),SY=H0([N(),J0().int()]),UJ=k({jsonrpc:u(IY),id:SY,...k0.shape}).strict(),X9=(X)=>UJ.safeParse(X).success,LJ=k({jsonrpc:u(IY),...B1.shape}).strict(),qJ=(X)=>LJ.safeParse(X).success,k5=k({jsonrpc:u(IY),id:SY,result:_0}).strict(),n6=(X)=>k5.safeParse(X).success;var r;(function(X){X[X.ConnectionClosed=-32000]="ConnectionClosed",X[X.RequestTimeout=-32001]="RequestTimeout",X[X.ParseError=-32700]="ParseError",X[X.InvalidRequest=-32600]="InvalidRequest",X[X.MethodNotFound=-32601]="MethodNotFound",X[X.InvalidParams=-32602]="InvalidParams",X[X.InternalError=-32603]="InternalError",X[X.UrlElicitationRequired=-32042]="UrlElicitationRequired"})(r||(r={}));var _5=k({jsonrpc:u(IY),id:SY.optional(),error:k({code:J0().int(),message:N(),data:w0().optional()})}).strict();var OJ=(X)=>_5.safeParse(X).success;var F6=H0([UJ,LJ,k5,_5]),hk=H0([k5,_5]),r6=_0.strict(),lq=K1.extend({requestId:SY.optional(),reason:N().optional()}),d8=B1.extend({method:u("notifications/cancelled"),params:lq}),iq=k({src:N(),mimeType:N().optional(),sizes:y(N()).optional(),theme:Y1(["light","dark"]).optional()}),Y9=k({icons:y(iq).optional()}),u8=k({name:N(),title:N().optional()}),DJ=u8.extend({...u8.shape,...Y9.shape,version:N(),websiteUrl:N().optional(),description:N().optional()}),nq=b5(k({applyDefaults:G0().optional()}),L0(N(),w0())),rq=C5((X)=>{if(X&&typeof X==="object"&&!Array.isArray(X)){if(Object.keys(X).length===0)return{form:{}}}return X},b5(k({form:nq.optional(),url:y0.optional()}),L0(N(),w0()).optional())),aq=I0({list:y0.optional(),cancel:y0.optional(),requests:I0({sampling:I0({createMessage:y0.optional()}).optional(),elicitation:I0({create:y0.optional()}).optional()}).optional()}),sq=I0({list:y0.optional(),cancel:y0.optional(),requests:I0({tools:I0({call:y0.optional()}).optional()}).optional()}),tq=k({experimental:L0(N(),y0).optional(),sampling:k({context:y0.optional(),tools:y0.optional()}).optional(),elicitation:rq.optional(),roots:k({listChanged:G0().optional()}).optional(),tasks:aq.optional()}),oq=Q1.extend({protocolVersion:N(),capabilities:tq,clientInfo:DJ}),eq=k0.extend({method:u("initialize"),params:oq});var X2=k({experimental:L0(N(),y0).optional(),logging:y0.optional(),completions:y0.optional(),prompts:k({listChanged:G0().optional()}).optional(),resources:k({subscribe:G0().optional(),listChanged:G0().optional()}).optional(),tools:k({listChanged:G0().optional()}).optional(),tasks:sq.optional()}),v5=_0.extend({protocolVersion:N(),capabilities:X2,serverInfo:DJ,instructions:N().optional()}),bY=B1.extend({method:u("notifications/initialized"),params:K1.optional()}),PJ=(X)=>bY.safeParse(X).success,CY=k0.extend({method:u("ping"),params:Q1.optional()}),Y2=k({progress:J0(),total:N0(J0()),message:N0(N())}),Q2=k({...K1.shape,...Y2.shape,progressToken:VJ}),yY=B1.extend({method:u("notifications/progress"),params:Q2}),Z2=Q1.extend({cursor:zJ.optional()}),Q9=k0.extend({params:Z2.optional()}),Z9=_0.extend({nextCursor:zJ.optional()}),W2=Y1(["working","input_required","completed","failed","cancelled"]),W9=k({taskId:N(),status:W2,ttl:H0([J0(),I5()]),createdAt:N(),lastUpdatedAt:N(),pollInterval:N0(J0()),statusMessage:N0(N())}),a6=_0.extend({task:W9}),$2=K1.merge(W9),$9=B1.extend({method:u("notifications/tasks/status"),params:$2}),kY=k0.extend({method:u("tasks/get"),params:Q1.extend({taskId:N()})}),_Y=_0.merge(W9),vY=k0.extend({method:u("tasks/result"),params:Q1.extend({taskId:N()})}),gk=_0.loose(),fY=Q9.extend({method:u("tasks/list")}),hY=Z9.extend({tasks:y(W9)}),gY=k0.extend({method:u("tasks/cancel"),params:Q1.extend({taskId:N()})}),wJ=_0.merge(W9),NJ=k({uri:N(),mimeType:N0(N()),_meta:L0(N(),w0()).optional()}),AJ=NJ.extend({text:N()}),f5=N().refine((X)=>{try{return atob(X),!0}catch{return!1}},{message:"Invalid Base64 string"}),jJ=NJ.extend({blob:f5}),J9=Y1(["user","assistant"]),c8=k({audience:y(J9).optional(),priority:J0().min(0).max(1).optional(),lastModified:GJ.datetime({offset:!0}).optional()}),EJ=k({...u8.shape,...Y9.shape,uri:N(),description:N0(N()),mimeType:N0(N()),annotations:c8.optional(),_meta:N0(I0({}))}),J2=k({...u8.shape,...Y9.shape,uriTemplate:N(),description:N0(N()),mimeType:N0(N()),annotations:c8.optional(),_meta:N0(I0({}))}),G2=Q9.extend({method:u("resources/list")}),h5=Z9.extend({resources:y(EJ)}),K2=Q9.extend({method:u("resources/templates/list")}),g5=Z9.extend({resourceTemplates:y(J2)}),u5=Q1.extend({uri:N()}),B2=u5,H2=k0.extend({method:u("resources/read"),params:B2}),m5=_0.extend({contents:y(H0([AJ,jJ]))}),G9=B1.extend({method:u("notifications/resources/list_changed"),params:K1.optional()}),V2=u5,z2=k0.extend({method:u("resources/subscribe"),params:V2}),F2=u5,U2=k0.extend({method:u("resources/unsubscribe"),params:F2}),L2=K1.extend({uri:N()}),d5=B1.extend({method:u("notifications/resources/updated"),params:L2}),q2=k({name:N(),description:N0(N()),required:N0(G0())}),O2=k({...u8.shape,...Y9.shape,description:N0(N()),arguments:N0(y(q2)),_meta:N0(I0({}))}),D2=Q9.extend({method:u("prompts/list")}),c5=Z9.extend({prompts:y(O2)}),P2=Q1.extend({name:N(),arguments:L0(N(),N()).optional()}),w2=k0.extend({method:u("prompts/get"),params:P2}),p5=k({type:u("text"),text:N(),annotations:c8.optional(),_meta:L0(N(),w0()).optional()}),l5=k({type:u("image"),data:f5,mimeType:N(),annotations:c8.optional(),_meta:L0(N(),w0()).optional()}),i5=k({type:u("audio"),data:f5,mimeType:N(),annotations:c8.optional(),_meta:L0(N(),w0()).optional()}),N2=k({type:u("tool_use"),name:N(),id:N(),input:L0(N(),w0()),_meta:L0(N(),w0()).optional()}),A2=k({type:u("resource"),resource:H0([AJ,jJ]),annotations:c8.optional(),_meta:L0(N(),w0()).optional()}),j2=EJ.extend({type:u("resource_link")}),n5=H0([p5,l5,i5,j2,A2]),E2=k({role:J9,content:n5}),r5=_0.extend({description:N().optional(),messages:y(E2)}),K9=B1.extend({method:u("notifications/prompts/list_changed"),params:K1.optional()}),R2=k({title:N().optional(),readOnlyHint:G0().optional(),destructiveHint:G0().optional(),idempotentHint:G0().optional(),openWorldHint:G0().optional()}),T2=k({taskSupport:Y1(["required","optional","forbidden"]).optional()}),RJ=k({...u8.shape,...Y9.shape,description:N().optional(),inputSchema:k({type:u("object"),properties:L0(N(),y0).optional(),required:y(N()).optional()}).catchall(w0()),outputSchema:k({type:u("object"),properties:L0(N(),y0).optional(),required:y(N()).optional()}).catchall(w0()).optional(),annotations:R2.optional(),execution:T2.optional(),_meta:L0(N(),w0()).optional()}),M2=Q9.extend({method:u("tools/list")}),a5=Z9.extend({tools:y(RJ)}),p8=_0.extend({content:y(n5).default([]),structuredContent:L0(N(),w0()).optional(),isError:G0().optional()}),uk=p8.or(_0.extend({toolResult:w0()})),x2=eX.extend({name:N(),arguments:L0(N(),w0()).optional()}),I2=k0.extend({method:u("tools/call"),params:x2}),B9=B1.extend({method:u("notifications/tools/list_changed"),params:K1.optional()}),TJ=k({autoRefresh:G0().default(!0),debounceMs:J0().int().nonnegative().default(300)}),MJ=Y1(["debug","info","notice","warning","error","critical","alert","emergency"]),S2=Q1.extend({level:MJ}),b2=k0.extend({method:u("logging/setLevel"),params:S2}),C2=K1.extend({level:MJ,logger:N().optional(),data:w0()}),s5=B1.extend({method:u("notifications/message"),params:C2}),y2=k({name:N().optional()}),k2=k({hints:y(y2).optional(),costPriority:J0().min(0).max(1).optional(),speedPriority:J0().min(0).max(1).optional(),intelligencePriority:J0().min(0).max(1).optional()}),_2=k({mode:Y1(["auto","required","none"]).optional()}),v2=k({type:u("tool_result"),toolUseId:N().describe("The unique identifier for the corresponding tool call."),content:y(n5).default([]),structuredContent:k({}).loose().optional(),isError:G0().optional(),_meta:L0(N(),w0()).optional()}),f2=S5("type",[p5,l5,i5]),xY=S5("type",[p5,l5,i5,N2,v2]),h2=k({role:J9,content:H0([xY,y(xY)]),_meta:L0(N(),w0()).optional()}),g2=eX.extend({messages:y(h2),modelPreferences:k2.optional(),systemPrompt:N().optional(),includeContext:Y1(["none","thisServer","allServers"]).optional(),temperature:J0().optional(),maxTokens:J0().int(),stopSequences:y(N()).optional(),metadata:y0.optional(),tools:y(RJ).optional(),toolChoice:_2.optional()}),t5=k0.extend({method:u("sampling/createMessage"),params:g2}),o5=_0.extend({model:N(),stopReason:N0(Y1(["endTurn","stopSequence","maxTokens"]).or(N())),role:J9,content:f2}),e5=_0.extend({model:N(),stopReason:N0(Y1(["endTurn","stopSequence","maxTokens","toolUse"]).or(N())),role:J9,content:H0([xY,y(xY)])}),u2=k({type:u("boolean"),title:N().optional(),description:N().optional(),default:G0().optional()}),m2=k({type:u("string"),title:N().optional(),description:N().optional(),minLength:J0().optional(),maxLength:J0().optional(),format:Y1(["email","uri","date","date-time"]).optional(),default:N().optional()}),d2=k({type:Y1(["number","integer"]),title:N().optional(),description:N().optional(),minimum:J0().optional(),maximum:J0().optional(),default:J0().optional()}),c2=k({type:u("string"),title:N().optional(),description:N().optional(),enum:y(N()),default:N().optional()}),p2=k({type:u("string"),title:N().optional(),description:N().optional(),oneOf:y(k({const:N(),title:N()})),default:N().optional()}),l2=k({type:u("string"),title:N().optional(),description:N().optional(),enum:y(N()),enumNames:y(N()).optional(),default:N().optional()}),i2=H0([c2,p2]),n2=k({type:u("array"),title:N().optional(),description:N().optional(),minItems:J0().optional(),maxItems:J0().optional(),items:k({type:u("string"),enum:y(N())}),default:y(N()).optional()}),r2=k({type:u("array"),title:N().optional(),description:N().optional(),minItems:J0().optional(),maxItems:J0().optional(),items:k({anyOf:y(k({const:N(),title:N()}))}),default:y(N()).optional()}),a2=H0([n2,r2]),s2=H0([l2,i2,a2]),t2=H0([s2,u2,m2,d2]),o2=eX.extend({mode:u("form").optional(),message:N(),requestedSchema:k({type:u("object"),properties:L0(N(),t2),required:y(N()).optional()})}),e2=eX.extend({mode:u("url"),message:N(),elicitationId:N(),url:N().url()}),XO=H0([o2,e2]),XZ=k0.extend({method:u("elicitation/create"),params:XO}),YO=K1.extend({elicitationId:N()}),QO=B1.extend({method:u("notifications/elicitation/complete"),params:YO}),YZ=_0.extend({action:Y1(["accept","decline","cancel"]),content:C5((X)=>X===null?void 0:X,L0(N(),H0([N(),J0(),G0(),y(N())])).optional())}),ZO=k({type:u("ref/resource"),uri:N()});var WO=k({type:u("ref/prompt"),name:N()}),$O=Q1.extend({ref:H0([WO,ZO]),argument:k({name:N(),value:N()}),context:k({arguments:L0(N(),N()).optional()}).optional()}),JO=k0.extend({method:u("completion/complete"),params:$O});var QZ=_0.extend({completion:I0({values:y(N()).max(100),total:N0(J0().int()),hasMore:N0(G0())})}),GO=k({uri:N().startsWith("file://"),name:N().optional(),_meta:L0(N(),w0()).optional()}),KO=k0.extend({method:u("roots/list"),params:Q1.optional()}),BO=_0.extend({roots:y(GO)}),ZZ=B1.extend({method:u("notifications/roots/list_changed"),params:K1.optional()}),mk=H0([CY,eq,JO,b2,w2,D2,G2,K2,H2,z2,U2,I2,M2,kY,vY,fY,gY]),dk=H0([d8,yY,bY,ZZ,$9]),ck=H0([r6,o5,e5,YZ,BO,_Y,hY,a6]),pk=H0([CY,t5,XZ,KO,kY,vY,fY,gY]),lk=H0([d8,yY,s5,d5,G9,B9,K9,$9,QO]),ik=H0([r6,v5,QZ,r5,c5,h5,g5,m5,p8,a5,_Y,hY,a6]);class c extends Error{constructor(X,Y,Q){super(`MCP error ${X}: ${Y}`);this.code=X,this.data=Q,this.name="McpError"}static fromError(X,Y,Q){if(X===r.UrlElicitationRequired&&Q){let Z=Q;if(Z.elicitations)return new xJ(Z.elicitations,Y)}return new c(X,Y,Q)}}class xJ extends c{constructor(X,Y=`URL elicitation${X.length>1?"s":""} required`){super(r.UrlElicitationRequired,Y,{elicitations:X})}get elicitations(){return this.data?.elicitations??[]}}var WZ;WZ=globalThis.crypto?.webcrypto??globalThis.crypto??import("node:crypto").then((X)=>X.webcrypto);async function VO(X){return(await WZ).getRandomValues(new Uint8Array(X))}async function zO(X){let Q=Math.pow(2,8)-Math.pow(2,8)%66,Z="";while(Z.length<X){let W=await VO(X-Z.length);for(let $ of W)if($<Q)Z+="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._~"[$%66]}return Z}async function FO(X){return await zO(X)}async function UO(X){let Y=await(await WZ).subtle.digest("SHA-256",new TextEncoder().encode(X));return btoa(String.fromCharCode(...new Uint8Array(Y))).replace(/\//g,"_").replace(/\+/g,"-").replace(/=/g,"")}async function $Z(X){if(!X)X=43;if(X<43||X>128)throw`Expected a length between 43 and 128. Received ${X}.`;let Y=await FO(X),Q=await UO(Y);return{code_verifier:Y,code_challenge:Q}}var v0=bJ().superRefine((X,Y)=>{if(!URL.canParse(X))return Y.addIssue({code:yJ.custom,message:"URL must be parseable",fatal:!0}),SJ}).refine((X)=>{let Y=new URL(X);return Y.protocol!=="javascript:"&&Y.protocol!=="data:"&&Y.protocol!=="vbscript:"},{message:"URL cannot use javascript:, data:, or vbscript: scheme"}),_J=I0({resource:N().url(),authorization_servers:y(v0).optional(),jwks_uri:N().url().optional(),scopes_supported:y(N()).optional(),bearer_methods_supported:y(N()).optional(),resource_signing_alg_values_supported:y(N()).optional(),resource_name:N().optional(),resource_documentation:N().optional(),resource_policy_uri:N().url().optional(),resource_tos_uri:N().url().optional(),tls_client_certificate_bound_access_tokens:G0().optional(),authorization_details_types_supported:y(N()).optional(),dpop_signing_alg_values_supported:y(N()).optional(),dpop_bound_access_tokens_required:G0().optional()}),JZ=I0({issuer:N(),authorization_endpoint:v0,token_endpoint:v0,registration_endpoint:v0.optional(),scopes_supported:y(N()).optional(),response_types_supported:y(N()),response_modes_supported:y(N()).optional(),grant_types_supported:y(N()).optional(),token_endpoint_auth_methods_supported:y(N()).optional(),token_endpoint_auth_signing_alg_values_supported:y(N()).optional(),service_documentation:v0.optional(),revocation_endpoint:v0.optional(),revocation_endpoint_auth_methods_supported:y(N()).optional(),revocation_endpoint_auth_signing_alg_values_supported:y(N()).optional(),introspection_endpoint:N().optional(),introspection_endpoint_auth_methods_supported:y(N()).optional(),introspection_endpoint_auth_signing_alg_values_supported:y(N()).optional(),code_challenge_methods_supported:y(N()).optional(),client_id_metadata_document_supported:G0().optional()}),LO=I0({issuer:N(),authorization_endpoint:v0,token_endpoint:v0,userinfo_endpoint:v0.optional(),jwks_uri:v0,registration_endpoint:v0.optional(),scopes_supported:y(N()).optional(),response_types_supported:y(N()),response_modes_supported:y(N()).optional(),grant_types_supported:y(N()).optional(),acr_values_supported:y(N()).optional(),subject_types_supported:y(N()),id_token_signing_alg_values_supported:y(N()),id_token_encryption_alg_values_supported:y(N()).optional(),id_token_encryption_enc_values_supported:y(N()).optional(),userinfo_signing_alg_values_supported:y(N()).optional(),userinfo_encryption_alg_values_supported:y(N()).optional(),userinfo_encryption_enc_values_supported:y(N()).optional(),request_object_signing_alg_values_supported:y(N()).optional(),request_object_encryption_alg_values_supported:y(N()).optional(),request_object_encryption_enc_values_supported:y(N()).optional(),token_endpoint_auth_methods_supported:y(N()).optional(),token_endpoint_auth_signing_alg_values_supported:y(N()).optional(),display_values_supported:y(N()).optional(),claim_types_supported:y(N()).optional(),claims_supported:y(N()).optional(),service_documentation:N().optional(),claims_locales_supported:y(N()).optional(),ui_locales_supported:y(N()).optional(),claims_parameter_supported:G0().optional(),request_parameter_supported:G0().optional(),request_uri_parameter_supported:G0().optional(),require_request_uri_registration:G0().optional(),op_policy_uri:v0.optional(),op_tos_uri:v0.optional(),client_id_metadata_document_supported:G0().optional()}),vJ=k({...LO.shape,...JZ.pick({code_challenge_methods_supported:!0}).shape}),fJ=k({access_token:N(),id_token:N().optional(),token_type:N(),expires_in:kJ.number().optional(),scope:N().optional(),refresh_token:N().optional()}).strip(),hJ=k({error:N(),error_description:N().optional(),error_uri:N().optional()}),IJ=v0.optional().or(u("").transform(()=>{return})),qO=k({redirect_uris:y(v0),token_endpoint_auth_method:N().optional(),grant_types:y(N()).optional(),response_types:y(N()).optional(),client_name:N().optional(),client_uri:v0.optional(),logo_uri:IJ,scope:N().optional(),contacts:y(N()).optional(),tos_uri:IJ,policy_uri:N().optional(),jwks_uri:v0.optional(),jwks:CJ().optional(),software_id:N().optional(),software_version:N().optional(),software_statement:N().optional()}).strip(),OO=k({client_id:N(),client_secret:N().optional(),client_id_issued_at:J0().optional(),client_secret_expires_at:J0().optional()}).strip(),gJ=qO.merge(OO),ak=k({error:N(),error_description:N().optional()}).strip(),sk=k({token:N(),token_type_hint:N().optional()}).strip();function uJ(X){let Y=typeof X==="string"?new URL(X):new URL(X.href);return Y.hash="",Y}function mJ({requestedResource:X,configuredResource:Y}){let Q=typeof X==="string"?new URL(X):new URL(X.href),Z=typeof Y==="string"?new URL(Y):new URL(Y.href);if(Q.origin!==Z.origin)return!1;if(Q.pathname.length<Z.pathname.length)return!1;let W=Q.pathname.endsWith("/")?Q.pathname:Q.pathname+"/",$=Z.pathname.endsWith("/")?Z.pathname:Z.pathname+"/";return W.startsWith($)}class T0 extends Error{constructor(X,Y){super(X);this.errorUri=Y,this.name=this.constructor.name}toResponseObject(){let X={error:this.errorCode,error_description:this.message};if(this.errorUri)X.error_uri=this.errorUri;return X}get errorCode(){return this.constructor.errorCode}}class uY extends T0{}uY.errorCode="invalid_request";class l8 extends T0{}l8.errorCode="invalid_client";class i8 extends T0{}i8.errorCode="invalid_grant";class n8 extends T0{}n8.errorCode="unauthorized_client";class mY extends T0{}mY.errorCode="unsupported_grant_type";class dY extends T0{}dY.errorCode="invalid_scope";class cY extends T0{}cY.errorCode="access_denied";class U6 extends T0{}U6.errorCode="server_error";class pY extends T0{}pY.errorCode="temporarily_unavailable";class lY extends T0{}lY.errorCode="unsupported_response_type";class iY extends T0{}iY.errorCode="unsupported_token_type";class nY extends T0{}nY.errorCode="invalid_token";class rY extends T0{}rY.errorCode="method_not_allowed";class aY extends T0{}aY.errorCode="too_many_requests";class r8 extends T0{}r8.errorCode="invalid_client_metadata";class sY extends T0{}sY.errorCode="insufficient_scope";class tY extends T0{}tY.errorCode="invalid_target";var dJ={[uY.errorCode]:uY,[l8.errorCode]:l8,[i8.errorCode]:i8,[n8.errorCode]:n8,[mY.errorCode]:mY,[dY.errorCode]:dY,[cY.errorCode]:cY,[U6.errorCode]:U6,[pY.errorCode]:pY,[lY.errorCode]:lY,[iY.errorCode]:iY,[nY.errorCode]:nY,[rY.errorCode]:rY,[aY.errorCode]:aY,[r8.errorCode]:r8,[sY.errorCode]:sY,[tY.errorCode]:tY};class r0 extends Error{constructor(X){super(X??"Unauthorized")}}function DO(X){return["client_secret_basic","client_secret_post","none"].includes(X)}var GZ="code",KZ="S256";function PO(X,Y){let Q=X.client_secret!==void 0;if(Y.length===0)return Q?"client_secret_post":"none";if("token_endpoint_auth_method"in X&&X.token_endpoint_auth_method&&DO(X.token_endpoint_auth_method)&&Y.includes(X.token_endpoint_auth_method))return X.token_endpoint_auth_method;if(Q&&Y.includes("client_secret_basic"))return"client_secret_basic";if(Q&&Y.includes("client_secret_post"))return"client_secret_post";if(Y.includes("none"))return"none";return Q?"client_secret_post":"none"}function wO(X,Y,Q,Z){let{client_id:W,client_secret:$}=Y;switch(X){case"client_secret_basic":NO(W,$,Q);return;case"client_secret_post":AO(W,$,Z);return;case"none":jO(W,Z);return;default:throw Error(`Unsupported client authentication method: ${X}`)}}function NO(X,Y,Q){if(!Y)throw Error("client_secret_basic authentication requires a client_secret");let Z=btoa(`${X}:${Y}`);Q.set("Authorization",`Basic ${Z}`)}function AO(X,Y,Q){if(Q.set("client_id",X),Y)Q.set("client_secret",Y)}function jO(X,Y){Y.set("client_id",X)}async function pJ(X){let Y=X instanceof Response?X.status:void 0,Q=X instanceof Response?await X.text():X;try{let Z=hJ.parse(JSON.parse(Q)),{error:W,error_description:$,error_uri:J}=Z;return new(dJ[W]||U6)($||"",J)}catch(Z){let W=`${Y?`HTTP ${Y}: `:""}Invalid OAuth error response: ${Z}. Raw body: ${Q}`;return new U6(W)}}async function p1(X,Y){try{return await BZ(X,Y)}catch(Q){if(Q instanceof l8||Q instanceof n8)return await X.invalidateCredentials?.("all"),await BZ(X,Y);else if(Q instanceof i8)return await X.invalidateCredentials?.("tokens"),await BZ(X,Y);throw Q}}async function BZ(X,{serverUrl:Y,authorizationCode:Q,scope:Z,resourceMetadataUrl:W,fetchFn:$}){let J,G;try{if(J=await TO(Y,{resourceMetadataUrl:W},$),J.authorization_servers&&J.authorization_servers.length>0)G=J.authorization_servers[0]}catch{}if(!G)G=new URL("/",Y);let K=await RO(Y,X,J),B=await bO(G,{fetchFn:$}),H=await Promise.resolve(X.clientInformation());if(!H){if(Q!==void 0)throw Error("Existing OAuth client information is required when exchanging an authorization code");let w=B?.client_id_metadata_document_supported===!0,O=X.clientMetadataUrl;if(O&&!EO(O))throw new r8(`clientMetadataUrl must be a valid HTTPS URL with a non-root pathname, got: ${O}`);if(w&&O)H={client_id:O},await X.saveClientInformation?.(H);else{if(!X.saveClientInformation)throw Error("OAuth client information must be saveable for dynamic registration");let P=await vO(G,{metadata:B,clientMetadata:X.clientMetadata,fetchFn:$});await X.saveClientInformation(P),H=P}}let V=!X.redirectUrl;if(Q!==void 0||V){let w=await _O(X,G,{metadata:B,resource:K,authorizationCode:Q,fetchFn:$});return await X.saveTokens(w),"AUTHORIZED"}let z=await X.tokens();if(z?.refresh_token)try{let w=await kO(G,{metadata:B,clientInformation:H,refreshToken:z.refresh_token,resource:K,addClientAuthentication:X.addClientAuthentication,fetchFn:$});return await X.saveTokens(w),"AUTHORIZED"}catch(w){if(!(w instanceof T0)||w instanceof U6);else throw w}let F=X.state?await X.state():void 0,{authorizationUrl:L,codeVerifier:q}=await CO(G,{metadata:B,clientInformation:H,state:F,redirectUrl:X.redirectUrl,scope:Z||J?.scopes_supported?.join(" ")||X.clientMetadata.scope,resource:K});return await X.saveCodeVerifier(q),await X.redirectToAuthorization(L),"REDIRECT"}function EO(X){if(!X)return!1;try{let Y=new URL(X);return Y.protocol==="https:"&&Y.pathname!=="/"}catch{return!1}}async function RO(X,Y,Q){let Z=uJ(X);if(Y.validateResourceURL)return await Y.validateResourceURL(Z,Q?.resource);if(!Q)return;if(!mJ({requestedResource:Z,configuredResource:Q.resource}))throw Error(`Protected resource ${Q.resource} does not match expected ${Z} (or origin)`);return new URL(Q.resource)}function a8(X){let Y=X.headers.get("WWW-Authenticate");if(!Y)return{};let[Q,Z]=Y.split(" ");if(Q.toLowerCase()!=="bearer"||!Z)return{};let W=HZ(X,"resource_metadata")||void 0,$;if(W)try{$=new URL(W)}catch{}let J=HZ(X,"scope")||void 0,G=HZ(X,"error")||void 0;return{resourceMetadataUrl:$,scope:J,error:G}}function HZ(X,Y){let Q=X.headers.get("WWW-Authenticate");if(!Q)return null;let Z=new RegExp(`${Y}=(?:"([^"]+)"|([^\\s,]+))`),W=Q.match(Z);if(W)return W[1]||W[2];return null}async function TO(X,Y,Q=fetch){let Z=await IO(X,"oauth-protected-resource",Q,{protocolVersion:Y?.protocolVersion,metadataUrl:Y?.resourceMetadataUrl});if(!Z||Z.status===404)throw await Z?.body?.cancel(),Error("Resource server does not implement OAuth 2.0 Protected Resource Metadata.");if(!Z.ok)throw await Z.body?.cancel(),Error(`HTTP ${Z.status} trying to load well-known OAuth protected resource metadata.`);return _J.parse(await Z.json())}async function VZ(X,Y,Q=fetch){try{return await Q(X,{headers:Y})}catch(Z){if(Z instanceof TypeError)if(Y)return VZ(X,void 0,Q);else return;throw Z}}function MO(X,Y="",Q={}){if(Y.endsWith("/"))Y=Y.slice(0,-1);return Q.prependPathname?`${Y}/.well-known/${X}`:`/.well-known/${X}${Y}`}async function cJ(X,Y,Q=fetch){return await VZ(X,{"MCP-Protocol-Version":Y},Q)}function xO(X,Y){return!X||X.status>=400&&X.status<500&&Y!=="/"}async function IO(X,Y,Q,Z){let W=new URL(X),$=Z?.protocolVersion??m8,J;if(Z?.metadataUrl)J=new URL(Z.metadataUrl);else{let K=MO(Y,W.pathname);J=new URL(K,Z?.metadataServerUrl??W),J.search=W.search}let G=await cJ(J,$,Q);if(!Z?.metadataUrl&&xO(G,W.pathname)){let K=new URL(`/.well-known/${Y}`,W);G=await cJ(K,$,Q)}return G}function SO(X){let Y=typeof X==="string"?new URL(X):X,Q=Y.pathname!=="/",Z=[];if(!Q)return Z.push({url:new URL("/.well-known/oauth-authorization-server",Y.origin),type:"oauth"}),Z.push({url:new URL("/.well-known/openid-configuration",Y.origin),type:"oidc"}),Z;let W=Y.pathname;if(W.endsWith("/"))W=W.slice(0,-1);return Z.push({url:new URL(`/.well-known/oauth-authorization-server${W}`,Y.origin),type:"oauth"}),Z.push({url:new URL(`/.well-known/openid-configuration${W}`,Y.origin),type:"oidc"}),Z.push({url:new URL(`${W}/.well-known/openid-configuration`,Y.origin),type:"oidc"}),Z}async function bO(X,{fetchFn:Y=fetch,protocolVersion:Q=m8}={}){let Z={"MCP-Protocol-Version":Q,Accept:"application/json"},W=SO(X);for(let{url:$,type:J}of W){let G=await VZ($,Z,Y);if(!G)continue;if(!G.ok){if(await G.body?.cancel(),G.status>=400&&G.status<500)continue;throw Error(`HTTP ${G.status} trying to load ${J==="oauth"?"OAuth":"OpenID provider"} metadata from ${$}`)}if(J==="oauth")return JZ.parse(await G.json());else return vJ.parse(await G.json())}return}async function CO(X,{metadata:Y,clientInformation:Q,redirectUrl:Z,scope:W,state:$,resource:J}){let G;if(Y){if(G=new URL(Y.authorization_endpoint),!Y.response_types_supported.includes(GZ))throw Error(`Incompatible auth server: does not support response type ${GZ}`);if(Y.code_challenge_methods_supported&&!Y.code_challenge_methods_supported.includes(KZ))throw Error(`Incompatible auth server: does not support code challenge method ${KZ}`)}else G=new URL("/authorize",X);let K=await $Z(),B=K.code_verifier,H=K.code_challenge;if(G.searchParams.set("response_type",GZ),G.searchParams.set("client_id",Q.client_id),G.searchParams.set("code_challenge",H),G.searchParams.set("code_challenge_method",KZ),G.searchParams.set("redirect_uri",String(Z)),$)G.searchParams.set("state",$);if(W)G.searchParams.set("scope",W);if(W?.includes("offline_access"))G.searchParams.append("prompt","consent");if(J)G.searchParams.set("resource",J.href);return{authorizationUrl:G,codeVerifier:B}}function yO(X,Y,Q){return new URLSearchParams({grant_type:"authorization_code",code:X,code_verifier:Y,redirect_uri:String(Q)})}async function lJ(X,{metadata:Y,tokenRequestParams:Q,clientInformation:Z,addClientAuthentication:W,resource:$,fetchFn:J}){let G=Y?.token_endpoint?new URL(Y.token_endpoint):new URL("/token",X),K=new Headers({"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"});if($)Q.set("resource",$.href);if(W)await W(K,Q,G,Y);else if(Z){let H=Y?.token_endpoint_auth_methods_supported??[],V=PO(Z,H);wO(V,Z,K,Q)}let B=await(J??fetch)(G,{method:"POST",headers:K,body:Q});if(!B.ok)throw await pJ(B);return fJ.parse(await B.json())}async function kO(X,{metadata:Y,clientInformation:Q,refreshToken:Z,resource:W,addClientAuthentication:$,fetchFn:J}){let G=new URLSearchParams({grant_type:"refresh_token",refresh_token:Z}),K=await lJ(X,{metadata:Y,tokenRequestParams:G,clientInformation:Q,addClientAuthentication:$,resource:W,fetchFn:J});return{refresh_token:Z,...K}}async function _O(X,Y,{metadata:Q,resource:Z,authorizationCode:W,fetchFn:$}={}){let J=X.clientMetadata.scope,G;if(X.prepareTokenRequest)G=await X.prepareTokenRequest(J);if(!G){if(!W)throw Error("Either provider.prepareTokenRequest() or authorizationCode is required");if(!X.redirectUrl)throw Error("redirectUrl is required for authorization_code flow");let B=await X.codeVerifier();G=yO(W,B,X.redirectUrl)}let K=await X.clientInformation();return lJ(Y,{metadata:Q,tokenRequestParams:G,clientInformation:K??void 0,addClientAuthentication:X.addClientAuthentication,resource:Z,fetchFn:$})}async function vO(X,{metadata:Y,clientMetadata:Q,fetchFn:Z}){let W;if(Y){if(!Y.registration_endpoint)throw Error("Incompatible auth server: does not support dynamic client registration");W=new URL(Y.registration_endpoint)}else W=new URL("/register",X);let $=await(Z??fetch)(W,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Q)});if(!$.ok)throw await pJ($);return gJ.parse(await $.json())}class iJ extends Error{constructor(X,Y,Q){super(`SSE error: ${Y}`);this.code=X,this.event=Q}}class zZ{constructor(X,Y){this._url=X,this._resourceMetadataUrl=void 0,this._scope=void 0,this._eventSourceInit=Y?.eventSourceInit,this._requestInit=Y?.requestInit,this._authProvider=Y?.authProvider,this._fetch=Y?.fetch,this._fetchWithInit=MY(Y?.fetch,Y?.requestInit)}async _authThenStart(){if(!this._authProvider)throw new r0("No auth provider");let X;try{X=await p1(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(Y){throw this.onerror?.(Y),Y}if(X!=="AUTHORIZED")throw new r0;return await this._startOrAuth()}async _commonHeaders(){let X={};if(this._authProvider){let Q=await this._authProvider.tokens();if(Q)X.Authorization=`Bearer ${Q.access_token}`}if(this._protocolVersion)X["mcp-protocol-version"]=this._protocolVersion;let Y=g8(this._requestInit?.headers);return new Headers({...X,...Y})}_startOrAuth(){let X=this?._eventSourceInit?.fetch??this._fetch??fetch;return new Promise((Y,Q)=>{this._eventSource=new h8(this._url.href,{...this._eventSourceInit,fetch:async(Z,W)=>{let $=await this._commonHeaders();$.set("Accept","text/event-stream");let J=await X(Z,{...W,headers:$});if(J.status===401&&J.headers.has("www-authenticate")){let{resourceMetadataUrl:G,scope:K}=a8(J);this._resourceMetadataUrl=G,this._scope=K}return J}}),this._abortController=new AbortController,this._eventSource.onerror=(Z)=>{if(Z.code===401&&this._authProvider){this._authThenStart().then(Y,Q);return}let W=new iJ(Z.code,Z.message,Z);Q(W),this.onerror?.(W)},this._eventSource.onopen=()=>{},this._eventSource.addEventListener("endpoint",(Z)=>{let W=Z;try{if(this._endpoint=new URL(W.data,this._url),this._endpoint.origin!==this._url.origin)throw Error(`Endpoint origin does not match connection origin: ${this._endpoint.origin}`)}catch($){Q($),this.onerror?.($),this.close();return}Y()}),this._eventSource.onmessage=(Z)=>{let W=Z,$;try{$=F6.parse(JSON.parse(W.data))}catch(J){this.onerror?.(J);return}this.onmessage?.($)}})}async start(){if(this._eventSource)throw Error("SSEClientTransport already started! If using Client class, note that connect() calls start() automatically.");return await this._startOrAuth()}async finishAuth(X){if(!this._authProvider)throw new r0("No auth provider");if(await p1(this._authProvider,{serverUrl:this._url,authorizationCode:X,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new r0("Failed to authorize")}async close(){this._abortController?.abort(),this._eventSource?.close(),this.onclose?.()}async send(X){if(!this._endpoint)throw Error("Not connected");try{let Y=await this._commonHeaders();Y.set("content-type","application/json");let Q={...this._requestInit,method:"POST",headers:Y,body:JSON.stringify(X),signal:this._abortController?.signal},Z=await(this._fetch??fetch)(this._endpoint,Q);if(!Z.ok){let W=await Z.text().catch(()=>null);if(Z.status===401&&this._authProvider){let{resourceMetadataUrl:$,scope:J}=a8(Z);if(this._resourceMetadataUrl=$,this._scope=J,await p1(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new r0;return this.send(X)}throw Error(`Error POSTing to endpoint (HTTP ${Z.status}): ${W}`)}await Z.body?.cancel()}catch(Y){throw this.onerror?.(Y),Y}}setProtocolVersion(X){this._protocolVersion=X}}class FZ extends TransformStream{constructor({onError:X,onRetry:Y,onComment:Q}={}){let Z;super({start(W){Z=EY({onEvent:($)=>{W.enqueue($)},onError($){X==="terminate"?W.error($):typeof X=="function"&&X($)},onRetry:Y,onComment:Q})},transform(W){Z.feed(W)}})}}var fO={initialReconnectionDelay:1000,maxReconnectionDelay:30000,reconnectionDelayGrowFactor:1.5,maxRetries:2};class s6 extends Error{constructor(X,Y){super(`Streamable HTTP error: ${Y}`);this.code=X}}class oY{constructor(X,Y){this._hasCompletedAuthFlow=!1,this._url=X,this._resourceMetadataUrl=void 0,this._scope=void 0,this._requestInit=Y?.requestInit,this._authProvider=Y?.authProvider,this._fetch=Y?.fetch,this._fetchWithInit=MY(Y?.fetch,Y?.requestInit),this._sessionId=Y?.sessionId,this._reconnectionOptions=Y?.reconnectionOptions??fO}async _authThenStart(){if(!this._authProvider)throw new r0("No auth provider");let X;try{X=await p1(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})}catch(Y){throw this.onerror?.(Y),Y}if(X!=="AUTHORIZED")throw new r0;return await this._startOrAuthSse({resumptionToken:void 0})}async _commonHeaders(){let X={};if(this._authProvider){let Q=await this._authProvider.tokens();if(Q)X.Authorization=`Bearer ${Q.access_token}`}if(this._sessionId)X["mcp-session-id"]=this._sessionId;if(this._protocolVersion)X["mcp-protocol-version"]=this._protocolVersion;let Y=g8(this._requestInit?.headers);return new Headers({...X,...Y})}async _startOrAuthSse(X){let{resumptionToken:Y}=X;try{let Q=await this._commonHeaders();if(Q.set("Accept","text/event-stream"),Y)Q.set("last-event-id",Y);let Z=await(this._fetch??fetch)(this._url,{method:"GET",headers:Q,signal:this._abortController?.signal});if(!Z.ok){if(await Z.body?.cancel(),Z.status===401&&this._authProvider)return await this._authThenStart();if(Z.status===405)return;throw new s6(Z.status,`Failed to open SSE stream: ${Z.statusText}`)}this._handleSseStream(Z.body,X,!0)}catch(Q){throw this.onerror?.(Q),Q}}_getNextReconnectionDelay(X){if(this._serverRetryMs!==void 0)return this._serverRetryMs;let Y=this._reconnectionOptions.initialReconnectionDelay,Q=this._reconnectionOptions.reconnectionDelayGrowFactor,Z=this._reconnectionOptions.maxReconnectionDelay;return Math.min(Y*Math.pow(Q,X),Z)}_scheduleReconnection(X,Y=0){let Q=this._reconnectionOptions.maxRetries;if(Y>=Q){this.onerror?.(Error(`Maximum reconnection attempts (${Q}) exceeded.`));return}let Z=this._getNextReconnectionDelay(Y);this._reconnectionTimeout=setTimeout(()=>{this._startOrAuthSse(X).catch((W)=>{this.onerror?.(Error(`Failed to reconnect SSE stream: ${W instanceof Error?W.message:String(W)}`)),this._scheduleReconnection(X,Y+1)})},Z)}_handleSseStream(X,Y,Q){if(!X)return;let{onresumptiontoken:Z,replayMessageId:W}=Y,$,J=!1,G=!1;(async()=>{try{let B=X.pipeThrough(new TextDecoderStream).pipeThrough(new FZ({onRetry:(z)=>{this._serverRetryMs=z}})).getReader();while(!0){let{value:z,done:F}=await B.read();if(F)break;if(z.id)$=z.id,J=!0,Z?.(z.id);if(!z.data)continue;if(!z.event||z.event==="message")try{let L=F6.parse(JSON.parse(z.data));if(n6(L)){if(G=!0,W!==void 0)L.id=W}this.onmessage?.(L)}catch(L){this.onerror?.(L)}}if((Q||J)&&!G&&this._abortController&&!this._abortController.signal.aborted)this._scheduleReconnection({resumptionToken:$,onresumptiontoken:Z,replayMessageId:W},0)}catch(B){if(this.onerror?.(Error(`SSE stream disconnected: ${B}`)),(Q||J)&&!G&&this._abortController&&!this._abortController.signal.aborted)try{this._scheduleReconnection({resumptionToken:$,onresumptiontoken:Z,replayMessageId:W},0)}catch(z){this.onerror?.(Error(`Failed to reconnect: ${z instanceof Error?z.message:String(z)}`))}}})()}async start(){if(this._abortController)throw Error("StreamableHTTPClientTransport already started! If using Client class, note that connect() calls start() automatically.");this._abortController=new AbortController}async finishAuth(X){if(!this._authProvider)throw new r0("No auth provider");if(await p1(this._authProvider,{serverUrl:this._url,authorizationCode:X,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new r0("Failed to authorize")}async close(){if(this._reconnectionTimeout)clearTimeout(this._reconnectionTimeout),this._reconnectionTimeout=void 0;this._abortController?.abort(),this.onclose?.()}async send(X,Y){try{let{resumptionToken:Q,onresumptiontoken:Z}=Y||{};if(Q){this._startOrAuthSse({resumptionToken:Q,replayMessageId:X9(X)?X.id:void 0}).catch((V)=>this.onerror?.(V));return}let W=await this._commonHeaders();W.set("content-type","application/json"),W.set("accept","application/json, text/event-stream");let $={...this._requestInit,method:"POST",headers:W,body:JSON.stringify(X),signal:this._abortController?.signal},J=await(this._fetch??fetch)(this._url,$),G=J.headers.get("mcp-session-id");if(G)this._sessionId=G;if(!J.ok){let V=await J.text().catch(()=>null);if(J.status===401&&this._authProvider){if(this._hasCompletedAuthFlow)throw new s6(401,"Server returned 401 after successful authentication");let{resourceMetadataUrl:z,scope:F}=a8(J);if(this._resourceMetadataUrl=z,this._scope=F,await p1(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetchWithInit})!=="AUTHORIZED")throw new r0;return this._hasCompletedAuthFlow=!0,this.send(X)}if(J.status===403&&this._authProvider){let{resourceMetadataUrl:z,scope:F,error:L}=a8(J);if(L==="insufficient_scope"){let q=J.headers.get("WWW-Authenticate");if(this._lastUpscopingHeader===q)throw new s6(403,"Server returned 403 after trying upscoping");if(F)this._scope=F;if(z)this._resourceMetadataUrl=z;if(this._lastUpscopingHeader=q??void 0,await p1(this._authProvider,{serverUrl:this._url,resourceMetadataUrl:this._resourceMetadataUrl,scope:this._scope,fetchFn:this._fetch})!=="AUTHORIZED")throw new r0;return this.send(X)}}throw new s6(J.status,`Error POSTing to endpoint: ${V}`)}if(this._hasCompletedAuthFlow=!1,this._lastUpscopingHeader=void 0,J.status===202){if(await J.body?.cancel(),PJ(X))this._startOrAuthSse({resumptionToken:void 0}).catch((V)=>this.onerror?.(V));return}let B=(Array.isArray(X)?X:[X]).filter((V)=>("method"in V)&&("id"in V)&&V.id!==void 0).length>0,H=J.headers.get("content-type");if(B)if(H?.includes("text/event-stream"))this._handleSseStream(J.body,{onresumptiontoken:Z},!1);else if(H?.includes("application/json")){let V=await J.json(),z=Array.isArray(V)?V.map((F)=>F6.parse(F)):[F6.parse(V)];for(let F of z)this.onmessage?.(F)}else throw await J.body?.cancel(),new s6(-1,`Unexpected content type: ${H}`);else await J.body?.cancel()}catch(Q){throw this.onerror?.(Q),Q}}get sessionId(){return this._sessionId}async terminateSession(){if(!this._sessionId)return;try{let X=await this._commonHeaders(),Y={...this._requestInit,method:"DELETE",headers:X,signal:this._abortController?.signal},Q=await(this._fetch??fetch)(this._url,Y);if(await Q.body?.cancel(),!Q.ok&&Q.status!==405)throw new s6(Q.status,`Failed to terminate session: ${Q.statusText}`);this._sessionId=void 0}catch(X){throw this.onerror?.(X),X}}setProtocolVersion(X){this._protocolVersion=X}get protocolVersion(){return this._protocolVersion}async resumeStream(X,Y){await this._startOrAuthSse({resumptionToken:X,onresumptiontoken:Y?.onresumptiontoken})}}function s8(X){return!!X._zod}function q1(X,Y){if(s8(X))return LZ(X,Y);return X.safeParse(Y)}function eY(X){if(!X)return;let Y;if(s8(X))Y=X._zod?.def?.shape;else Y=X.shape;if(!Y)return;if(typeof Y==="function")try{return Y()}catch{return}return Y}function nJ(X){if(s8(X)){let $=X._zod?.def;if($){if($.value!==void 0)return $.value;if(Array.isArray($.values)&&$.values.length>0)return $.values[0]}}let Q=X._def;if(Q){if(Q.value!==void 0)return Q.value;if(Array.isArray(Q.values)&&Q.values.length>0)return Q.values[0]}let Z=X.value;if(Z!==void 0)return Z;return}function L6(X){return X==="completed"||X==="failed"||X==="cancelled"}function qZ(X){let Q=eY(X)?.method;if(!Q)throw Error("Schema is missing a method literal");let Z=nJ(Q);if(typeof Z!=="string")throw Error("Schema method literal must be a string");return Z}function OZ(X,Y){let Q=q1(X,Y);if(!Q.success)throw Q.error;return Q.data}var gO=60000;class DZ{constructor(X){if(this._options=X,this._requestMessageId=0,this._requestHandlers=new Map,this._requestHandlerAbortControllers=new Map,this._notificationHandlers=new Map,this._responseHandlers=new Map,this._progressHandlers=new Map,this._timeoutInfo=new Map,this._pendingDebouncedNotifications=new Set,this._taskProgressTokens=new Map,this._requestResolvers=new Map,this.setNotificationHandler(d8,(Y)=>{this._oncancel(Y)}),this.setNotificationHandler(yY,(Y)=>{this._onprogress(Y)}),this.setRequestHandler(CY,(Y)=>({})),this._taskStore=X?.taskStore,this._taskMessageQueue=X?.taskMessageQueue,this._taskStore)this.setRequestHandler(kY,async(Y,Q)=>{let Z=await this._taskStore.getTask(Y.params.taskId,Q.sessionId);if(!Z)throw new c(r.InvalidParams,"Failed to retrieve task: Task not found");return{...Z}}),this.setRequestHandler(vY,async(Y,Q)=>{let Z=async()=>{let W=Y.params.taskId;if(this._taskMessageQueue){let J;while(J=await this._taskMessageQueue.dequeue(W,Q.sessionId)){if(J.type==="response"||J.type==="error"){let G=J.message,K=G.id,B=this._requestResolvers.get(K);if(B)if(this._requestResolvers.delete(K),J.type==="response")B(G);else{let H=G,V=new c(H.error.code,H.error.message,H.error.data);B(V)}else{let H=J.type==="response"?"Response":"Error";this._onerror(Error(`${H} handler missing for request ${K}`))}continue}await this._transport?.send(J.message,{relatedRequestId:Q.requestId})}}let $=await this._taskStore.getTask(W,Q.sessionId);if(!$)throw new c(r.InvalidParams,`Task not found: ${W}`);if(!L6($.status))return await this._waitForTaskUpdate(W,Q.signal),await Z();if(L6($.status)){let J=await this._taskStore.getTaskResult(W,Q.sessionId);return this._clearTaskQueue(W),{...J,_meta:{...J._meta,[z6]:{taskId:W}}}}return await Z()};return await Z()}),this.setRequestHandler(fY,async(Y,Q)=>{try{let{tasks:Z,nextCursor:W}=await this._taskStore.listTasks(Y.params?.cursor,Q.sessionId);return{tasks:Z,nextCursor:W,_meta:{}}}catch(Z){throw new c(r.InvalidParams,`Failed to list tasks: ${Z instanceof Error?Z.message:String(Z)}`)}}),this.setRequestHandler(gY,async(Y,Q)=>{try{let Z=await this._taskStore.getTask(Y.params.taskId,Q.sessionId);if(!Z)throw new c(r.InvalidParams,`Task not found: ${Y.params.taskId}`);if(L6(Z.status))throw new c(r.InvalidParams,`Cannot cancel task in terminal status: ${Z.status}`);await this._taskStore.updateTaskStatus(Y.params.taskId,"cancelled","Client cancelled task execution.",Q.sessionId),this._clearTaskQueue(Y.params.taskId);let W=await this._taskStore.getTask(Y.params.taskId,Q.sessionId);if(!W)throw new c(r.InvalidParams,`Task not found after cancellation: ${Y.params.taskId}`);return{_meta:{},...W}}catch(Z){if(Z instanceof c)throw Z;throw new c(r.InvalidRequest,`Failed to cancel task: ${Z instanceof Error?Z.message:String(Z)}`)}})}async _oncancel(X){if(!X.params.requestId)return;this._requestHandlerAbortControllers.get(X.params.requestId)?.abort(X.params.reason)}_setupTimeout(X,Y,Q,Z,W=!1){this._timeoutInfo.set(X,{timeoutId:setTimeout(Z,Y),startTime:Date.now(),timeout:Y,maxTotalTimeout:Q,resetTimeoutOnProgress:W,onTimeout:Z})}_resetTimeout(X){let Y=this._timeoutInfo.get(X);if(!Y)return!1;let Q=Date.now()-Y.startTime;if(Y.maxTotalTimeout&&Q>=Y.maxTotalTimeout)throw this._timeoutInfo.delete(X),c.fromError(r.RequestTimeout,"Maximum total timeout exceeded",{maxTotalTimeout:Y.maxTotalTimeout,totalElapsed:Q});return clearTimeout(Y.timeoutId),Y.timeoutId=setTimeout(Y.onTimeout,Y.timeout),!0}_cleanupTimeout(X){let Y=this._timeoutInfo.get(X);if(Y)clearTimeout(Y.timeoutId),this._timeoutInfo.delete(X)}async connect(X){if(this._transport)throw Error("Already connected to a transport. Call close() before connecting to a new transport, or use a separate Protocol instance per connection.");this._transport=X;let Y=this.transport?.onclose;this._transport.onclose=()=>{Y?.(),this._onclose()};let Q=this.transport?.onerror;this._transport.onerror=(W)=>{Q?.(W),this._onerror(W)};let Z=this._transport?.onmessage;this._transport.onmessage=(W,$)=>{if(Z?.(W,$),n6(W)||OJ(W))this._onresponse(W);else if(X9(W))this._onrequest(W,$);else if(qJ(W))this._onnotification(W);else this._onerror(Error(`Unknown message type: ${JSON.stringify(W)}`))},await this._transport.start()}_onclose(){let X=this._responseHandlers;this._responseHandlers=new Map,this._progressHandlers.clear(),this._taskProgressTokens.clear(),this._pendingDebouncedNotifications.clear();for(let Q of this._requestHandlerAbortControllers.values())Q.abort();this._requestHandlerAbortControllers.clear();let Y=c.fromError(r.ConnectionClosed,"Connection closed");this._transport=void 0,this.onclose?.();for(let Q of X.values())Q(Y)}_onerror(X){this.onerror?.(X)}_onnotification(X){let Y=this._notificationHandlers.get(X.method)??this.fallbackNotificationHandler;if(Y===void 0)return;Promise.resolve().then(()=>Y(X)).catch((Q)=>this._onerror(Error(`Uncaught error in notification handler: ${Q}`)))}_onrequest(X,Y){let Q=this._requestHandlers.get(X.method)??this.fallbackRequestHandler,Z=this._transport,W=X.params?._meta?.[z6]?.taskId;if(Q===void 0){let B={jsonrpc:"2.0",id:X.id,error:{code:r.MethodNotFound,message:"Method not found"}};if(W&&this._taskMessageQueue)this._enqueueTaskMessage(W,{type:"error",message:B,timestamp:Date.now()},Z?.sessionId).catch((H)=>this._onerror(Error(`Failed to enqueue error response: ${H}`)));else Z?.send(B).catch((H)=>this._onerror(Error(`Failed to send an error response: ${H}`)));return}let $=new AbortController;this._requestHandlerAbortControllers.set(X.id,$);let J=FJ(X.params)?X.params.task:void 0,G=this._taskStore?this.requestTaskStore(X,Z?.sessionId):void 0,K={signal:$.signal,sessionId:Z?.sessionId,_meta:X.params?._meta,sendNotification:async(B)=>{if($.signal.aborted)return;let H={relatedRequestId:X.id};if(W)H.relatedTask={taskId:W};await this.notification(B,H)},sendRequest:async(B,H,V)=>{if($.signal.aborted)throw new c(r.ConnectionClosed,"Request was cancelled");let z={...V,relatedRequestId:X.id};if(W&&!z.relatedTask)z.relatedTask={taskId:W};let F=z.relatedTask?.taskId??W;if(F&&G)await G.updateTaskStatus(F,"input_required");return await this.request(B,H,z)},authInfo:Y?.authInfo,requestId:X.id,requestInfo:Y?.requestInfo,taskId:W,taskStore:G,taskRequestedTtl:J?.ttl,closeSSEStream:Y?.closeSSEStream,closeStandaloneSSEStream:Y?.closeStandaloneSSEStream};Promise.resolve().then(()=>{if(J)this.assertTaskHandlerCapability(X.method)}).then(()=>Q(X,K)).then(async(B)=>{if($.signal.aborted)return;let H={result:B,jsonrpc:"2.0",id:X.id};if(W&&this._taskMessageQueue)await this._enqueueTaskMessage(W,{type:"response",message:H,timestamp:Date.now()},Z?.sessionId);else await Z?.send(H)},async(B)=>{if($.signal.aborted)return;let H={jsonrpc:"2.0",id:X.id,error:{code:Number.isSafeInteger(B.code)?B.code:r.InternalError,message:B.message??"Internal error",...B.data!==void 0&&{data:B.data}}};if(W&&this._taskMessageQueue)await this._enqueueTaskMessage(W,{type:"error",message:H,timestamp:Date.now()},Z?.sessionId);else await Z?.send(H)}).catch((B)=>this._onerror(Error(`Failed to send response: ${B}`))).finally(()=>{this._requestHandlerAbortControllers.delete(X.id)})}_onprogress(X){let{progressToken:Y,...Q}=X.params,Z=Number(Y),W=this._progressHandlers.get(Z);if(!W){this._onerror(Error(`Received a progress notification for an unknown token: ${JSON.stringify(X)}`));return}let $=this._responseHandlers.get(Z),J=this._timeoutInfo.get(Z);if(J&&$&&J.resetTimeoutOnProgress)try{this._resetTimeout(Z)}catch(G){this._responseHandlers.delete(Z),this._progressHandlers.delete(Z),this._cleanupTimeout(Z),$(G);return}W(Q)}_onresponse(X){let Y=Number(X.id),Q=this._requestResolvers.get(Y);if(Q){if(this._requestResolvers.delete(Y),n6(X))Q(X);else{let $=new c(X.error.code,X.error.message,X.error.data);Q($)}return}let Z=this._responseHandlers.get(Y);if(Z===void 0){this._onerror(Error(`Received a response for an unknown message ID: ${JSON.stringify(X)}`));return}this._responseHandlers.delete(Y),this._cleanupTimeout(Y);let W=!1;if(n6(X)&&X.result&&typeof X.result==="object"){let $=X.result;if($.task&&typeof $.task==="object"){let J=$.task;if(typeof J.taskId==="string")W=!0,this._taskProgressTokens.set(J.taskId,Y)}}if(!W)this._progressHandlers.delete(Y);if(n6(X))Z(X);else{let $=c.fromError(X.error.code,X.error.message,X.error.data);Z($)}}get transport(){return this._transport}async close(){await this._transport?.close()}async*requestStream(X,Y,Q){let{task:Z}=Q??{};if(!Z){try{yield{type:"result",result:await this.request(X,Y,Q)}}catch($){yield{type:"error",error:$ instanceof c?$:new c(r.InternalError,String($))}}return}let W;try{let $=await this.request(X,a6,Q);if($.task)W=$.task.taskId,yield{type:"taskCreated",task:$.task};else throw new c(r.InternalError,"Task creation did not return a task");while(!0){let J=await this.getTask({taskId:W},Q);if(yield{type:"taskStatus",task:J},L6(J.status)){if(J.status==="completed")yield{type:"result",result:await this.getTaskResult({taskId:W},Y,Q)};else if(J.status==="failed")yield{type:"error",error:new c(r.InternalError,`Task ${W} failed`)};else if(J.status==="cancelled")yield{type:"error",error:new c(r.InternalError,`Task ${W} was cancelled`)};return}if(J.status==="input_required"){yield{type:"result",result:await this.getTaskResult({taskId:W},Y,Q)};return}let G=J.pollInterval??this._options?.defaultTaskPollInterval??1000;await new Promise((K)=>setTimeout(K,G)),Q?.signal?.throwIfAborted()}}catch($){yield{type:"error",error:$ instanceof c?$:new c(r.InternalError,String($))}}}request(X,Y,Q){let{relatedRequestId:Z,resumptionToken:W,onresumptiontoken:$,task:J,relatedTask:G}=Q??{};return new Promise((K,B)=>{let H=(O)=>{B(O)};if(!this._transport){H(Error("Not connected"));return}if(this._options?.enforceStrictCapabilities===!0)try{if(this.assertCapabilityForMethod(X.method),J)this.assertTaskCapability(X.method)}catch(O){H(O);return}Q?.signal?.throwIfAborted();let V=this._requestMessageId++,z={...X,jsonrpc:"2.0",id:V};if(Q?.onprogress)this._progressHandlers.set(V,Q.onprogress),z.params={...X.params,_meta:{...X.params?._meta||{},progressToken:V}};if(J)z.params={...z.params,task:J};if(G)z.params={...z.params,_meta:{...z.params?._meta||{},[z6]:G}};let F=(O)=>{this._responseHandlers.delete(V),this._progressHandlers.delete(V),this._cleanupTimeout(V),this._transport?.send({jsonrpc:"2.0",method:"notifications/cancelled",params:{requestId:V,reason:String(O)}},{relatedRequestId:Z,resumptionToken:W,onresumptiontoken:$}).catch((P)=>this._onerror(Error(`Failed to send cancellation: ${P}`)));let R=O instanceof c?O:new c(r.RequestTimeout,String(O));B(R)};this._responseHandlers.set(V,(O)=>{if(Q?.signal?.aborted)return;if(O instanceof Error)return B(O);try{let R=q1(Y,O.result);if(!R.success)B(R.error);else K(R.data)}catch(R){B(R)}}),Q?.signal?.addEventListener("abort",()=>{F(Q?.signal?.reason)});let L=Q?.timeout??gO,q=()=>F(c.fromError(r.RequestTimeout,"Request timed out",{timeout:L}));this._setupTimeout(V,L,Q?.maxTotalTimeout,q,Q?.resetTimeoutOnProgress??!1);let w=G?.taskId;if(w){let O=(R)=>{let P=this._responseHandlers.get(V);if(P)P(R);else this._onerror(Error(`Response handler missing for side-channeled request ${V}`))};this._requestResolvers.set(V,O),this._enqueueTaskMessage(w,{type:"request",message:z,timestamp:Date.now()}).catch((R)=>{this._cleanupTimeout(V),B(R)})}else this._transport.send(z,{relatedRequestId:Z,resumptionToken:W,onresumptiontoken:$}).catch((O)=>{this._cleanupTimeout(V),B(O)})})}async getTask(X,Y){return this.request({method:"tasks/get",params:X},_Y,Y)}async getTaskResult(X,Y,Q){return this.request({method:"tasks/result",params:X},Y,Q)}async listTasks(X,Y){return this.request({method:"tasks/list",params:X},hY,Y)}async cancelTask(X,Y){return this.request({method:"tasks/cancel",params:X},wJ,Y)}async notification(X,Y){if(!this._transport)throw Error("Not connected");this.assertNotificationCapability(X.method);let Q=Y?.relatedTask?.taskId;if(Q){let J={...X,jsonrpc:"2.0",params:{...X.params,_meta:{...X.params?._meta||{},[z6]:Y.relatedTask}}};await this._enqueueTaskMessage(Q,{type:"notification",message:J,timestamp:Date.now()});return}if((this._options?.debouncedNotificationMethods??[]).includes(X.method)&&!X.params&&!Y?.relatedRequestId&&!Y?.relatedTask){if(this._pendingDebouncedNotifications.has(X.method))return;this._pendingDebouncedNotifications.add(X.method),Promise.resolve().then(()=>{if(this._pendingDebouncedNotifications.delete(X.method),!this._transport)return;let J={...X,jsonrpc:"2.0"};if(Y?.relatedTask)J={...J,params:{...J.params,_meta:{...J.params?._meta||{},[z6]:Y.relatedTask}}};this._transport?.send(J,Y).catch((G)=>this._onerror(G))});return}let $={...X,jsonrpc:"2.0"};if(Y?.relatedTask)$={...$,params:{...$.params,_meta:{...$.params?._meta||{},[z6]:Y.relatedTask}}};await this._transport.send($,Y)}setRequestHandler(X,Y){let Q=qZ(X);this.assertRequestHandlerCapability(Q),this._requestHandlers.set(Q,(Z,W)=>{let $=OZ(X,Z);return Promise.resolve(Y($,W))})}removeRequestHandler(X){this._requestHandlers.delete(X)}assertCanSetRequestHandler(X){if(this._requestHandlers.has(X))throw Error(`A request handler for ${X} already exists, which would be overridden`)}setNotificationHandler(X,Y){let Q=qZ(X);this._notificationHandlers.set(Q,(Z)=>{let W=OZ(X,Z);return Promise.resolve(Y(W))})}removeNotificationHandler(X){this._notificationHandlers.delete(X)}_cleanupTaskProgressHandler(X){let Y=this._taskProgressTokens.get(X);if(Y!==void 0)this._progressHandlers.delete(Y),this._taskProgressTokens.delete(X)}async _enqueueTaskMessage(X,Y,Q){if(!this._taskStore||!this._taskMessageQueue)throw Error("Cannot enqueue task message: taskStore and taskMessageQueue are not configured");let Z=this._options?.maxTaskQueueSize;await this._taskMessageQueue.enqueue(X,Y,Q,Z)}async _clearTaskQueue(X,Y){if(this._taskMessageQueue){let Q=await this._taskMessageQueue.dequeueAll(X,Y);for(let Z of Q)if(Z.type==="request"&&X9(Z.message)){let W=Z.message.id,$=this._requestResolvers.get(W);if($)$(new c(r.InternalError,"Task cancelled or completed")),this._requestResolvers.delete(W);else this._onerror(Error(`Resolver missing for request ${W} during task ${X} cleanup`))}}}async _waitForTaskUpdate(X,Y){let Q=this._options?.defaultTaskPollInterval??1000;try{let Z=await this._taskStore?.getTask(X);if(Z?.pollInterval)Q=Z.pollInterval}catch{}return new Promise((Z,W)=>{if(Y.aborted){W(new c(r.InvalidRequest,"Request cancelled"));return}let $=setTimeout(Z,Q);Y.addEventListener("abort",()=>{clearTimeout($),W(new c(r.InvalidRequest,"Request cancelled"))},{once:!0})})}requestTaskStore(X,Y){let Q=this._taskStore;if(!Q)throw Error("No task store configured");return{createTask:async(Z)=>{if(!X)throw Error("No request provided");return await Q.createTask(Z,X.id,{method:X.method,params:X.params},Y)},getTask:async(Z)=>{let W=await Q.getTask(Z,Y);if(!W)throw new c(r.InvalidParams,"Failed to retrieve task: Task not found");return W},storeTaskResult:async(Z,W,$)=>{await Q.storeTaskResult(Z,W,$,Y);let J=await Q.getTask(Z,Y);if(J){let G=$9.parse({method:"notifications/tasks/status",params:J});if(await this.notification(G),L6(J.status))this._cleanupTaskProgressHandler(Z)}},getTaskResult:(Z)=>{return Q.getTaskResult(Z,Y)},updateTaskStatus:async(Z,W,$)=>{let J=await Q.getTask(Z,Y);if(!J)throw new c(r.InvalidParams,`Task "${Z}" not found - it may have been cleaned up`);if(L6(J.status))throw new c(r.InvalidParams,`Cannot update task "${Z}" from terminal status "${J.status}" to "${W}". Terminal states (completed, failed, cancelled) cannot transition to other states.`);await Q.updateTaskStatus(Z,W,$,Y);let G=await Q.getTask(Z,Y);if(G){let K=$9.parse({method:"notifications/tasks/status",params:G});if(await this.notification(K),L6(G.status))this._cleanupTaskProgressHandler(Z)}},listTasks:(Z)=>{return Q.listTasks(Z,Y)}}}}function rJ(X){return X!==null&&typeof X==="object"&&!Array.isArray(X)}function aJ(X,Y){let Q={...X};for(let Z in Y){let W=Z,$=Y[W];if($===void 0)continue;let J=Q[W];if(rJ(J)&&rJ($))Q[W]={...J,...$};else Q[W]=$}return Q}var TV=rX(z3(),1),MV=rX(RV(),1);function aR(){let X=new TV.default({strict:!1,validateFormats:!0,validateSchema:!1,allErrors:!0});return MV.default(X),X}class A3{constructor(X){this._ajv=X??aR()}getValidator(X){let Y="$id"in X&&typeof X.$id==="string"?this._ajv.getSchema(X.$id)??this._ajv.compile(X):this._ajv.compile(X);return(Q)=>{if(Y(Q))return{valid:!0,data:Q,errorMessage:void 0};else return{valid:!1,data:void 0,errorMessage:this._ajv.errorsText(Y.errors)}}}}class j3{constructor(X){this._client=X}async*callToolStream(X,Y=p8,Q){let Z=this._client,W={...Q,task:Q?.task??(Z.isToolTask(X.name)?{}:void 0)},$=Z.requestStream({method:"tools/call",params:X},Y,W),J=Z.getToolOutputValidator(X.name);for await(let G of $){if(G.type==="result"&&J){let K=G.result;if(!K.structuredContent&&!K.isError){yield{type:"error",error:new c(r.InvalidRequest,`Tool ${X.name} has an output schema but did not return structured content`)};return}if(K.structuredContent)try{let B=J(K.structuredContent);if(!B.valid){yield{type:"error",error:new c(r.InvalidParams,`Structured content does not match the tool's output schema: ${B.errorMessage}`)};return}}catch(B){if(B instanceof c){yield{type:"error",error:B};return}yield{type:"error",error:new c(r.InvalidParams,`Failed to validate structured content: ${B instanceof Error?B.message:String(B)}`)};return}}yield G}}async getTask(X,Y){return this._client.getTask({taskId:X},Y)}async getTaskResult(X,Y,Q){return this._client.getTaskResult({taskId:X},Y,Q)}async listTasks(X,Y){return this._client.listTasks(X?{cursor:X}:void 0,Y)}async cancelTask(X,Y){return this._client.cancelTask({taskId:X},Y)}requestStream(X,Y,Q){return this._client.requestStream(X,Y,Q)}}function xV(X,Y,Q){if(!X)throw Error(`${Q} does not support task creation (required for ${Y})`);switch(Y){case"tools/call":if(!X.tools?.call)throw Error(`${Q} does not support task creation for tools/call (required for ${Y})`);break;default:break}}function IV(X,Y,Q){if(!X)throw Error(`${Q} does not support task creation (required for ${Y})`);switch(Y){case"sampling/createMessage":if(!X.sampling?.createMessage)throw Error(`${Q} does not support task creation for sampling/createMessage (required for ${Y})`);break;case"elicitation/create":if(!X.elicitation?.create)throw Error(`${Q} does not support task creation for elicitation/create (required for ${Y})`);break;default:break}}function f4(X,Y){if(!X||Y===null||typeof Y!=="object")return;if(X.type==="object"&&X.properties&&typeof X.properties==="object"){let Q=Y,Z=X.properties;for(let W of Object.keys(Z)){let $=Z[W];if(Q[W]===void 0&&Object.prototype.hasOwnProperty.call($,"default"))Q[W]=$.default;if(Q[W]!==void 0)f4($,Q[W])}}if(Array.isArray(X.anyOf)){for(let Q of X.anyOf)if(typeof Q!=="boolean")f4(Q,Y)}if(Array.isArray(X.oneOf)){for(let Q of X.oneOf)if(typeof Q!=="boolean")f4(Q,Y)}}function sR(X){if(!X)return{supportsFormMode:!1,supportsUrlMode:!1};let Y=X.form!==void 0,Q=X.url!==void 0;return{supportsFormMode:Y||!Y&&!Q,supportsUrlMode:Q}}class E3 extends DZ{constructor(X,Y){super(Y);if(this._clientInfo=X,this._cachedToolOutputValidators=new Map,this._cachedKnownTaskTools=new Set,this._cachedRequiredTaskTools=new Set,this._listChangedDebounceTimers=new Map,this._capabilities=Y?.capabilities??{},this._jsonSchemaValidator=Y?.jsonSchemaValidator??new A3,Y?.listChanged)this._pendingListChangedConfig=Y.listChanged}_setupListChangedHandlers(X){if(X.tools&&this._serverCapabilities?.tools?.listChanged)this._setupListChangedHandler("tools",B9,X.tools,async()=>{return(await this.listTools()).tools});if(X.prompts&&this._serverCapabilities?.prompts?.listChanged)this._setupListChangedHandler("prompts",K9,X.prompts,async()=>{return(await this.listPrompts()).prompts});if(X.resources&&this._serverCapabilities?.resources?.listChanged)this._setupListChangedHandler("resources",G9,X.resources,async()=>{return(await this.listResources()).resources})}get experimental(){if(!this._experimental)this._experimental={tasks:new j3(this)};return this._experimental}registerCapabilities(X){if(this.transport)throw Error("Cannot register capabilities after connecting to transport");this._capabilities=aJ(this._capabilities,X)}setRequestHandler(X,Y){let Z=eY(X)?.method;if(!Z)throw Error("Schema is missing a method literal");let W;if(s8(Z)){let J=Z;W=J._zod?.def?.value??J.value}else{let J=Z;W=J._def?.value??J.value}if(typeof W!=="string")throw Error("Schema method literal must be a string");let $=W;if($==="elicitation/create"){let J=async(G,K)=>{let B=q1(XZ,G);if(!B.success){let O=B.error instanceof Error?B.error.message:String(B.error);throw new c(r.InvalidParams,`Invalid elicitation request: ${O}`)}let{params:H}=B.data;H.mode=H.mode??"form";let{supportsFormMode:V,supportsUrlMode:z}=sR(this._capabilities.elicitation);if(H.mode==="form"&&!V)throw new c(r.InvalidParams,"Client does not support form-mode elicitation requests");if(H.mode==="url"&&!z)throw new c(r.InvalidParams,"Client does not support URL-mode elicitation requests");let F=await Promise.resolve(Y(G,K));if(H.task){let O=q1(a6,F);if(!O.success){let R=O.error instanceof Error?O.error.message:String(O.error);throw new c(r.InvalidParams,`Invalid task creation result: ${R}`)}return O.data}let L=q1(YZ,F);if(!L.success){let O=L.error instanceof Error?L.error.message:String(L.error);throw new c(r.InvalidParams,`Invalid elicitation result: ${O}`)}let q=L.data,w=H.mode==="form"?H.requestedSchema:void 0;if(H.mode==="form"&&q.action==="accept"&&q.content&&w){if(this._capabilities.elicitation?.form?.applyDefaults)try{f4(w,q.content)}catch{}}return q};return super.setRequestHandler(X,J)}if($==="sampling/createMessage"){let J=async(G,K)=>{let B=q1(t5,G);if(!B.success){let q=B.error instanceof Error?B.error.message:String(B.error);throw new c(r.InvalidParams,`Invalid sampling request: ${q}`)}let{params:H}=B.data,V=await Promise.resolve(Y(G,K));if(H.task){let q=q1(a6,V);if(!q.success){let w=q.error instanceof Error?q.error.message:String(q.error);throw new c(r.InvalidParams,`Invalid task creation result: ${w}`)}return q.data}let F=H.tools||H.toolChoice?e5:o5,L=q1(F,V);if(!L.success){let q=L.error instanceof Error?L.error.message:String(L.error);throw new c(r.InvalidParams,`Invalid sampling result: ${q}`)}return L.data};return super.setRequestHandler(X,J)}return super.setRequestHandler(X,Y)}assertCapability(X,Y){if(!this._serverCapabilities?.[X])throw Error(`Server does not support ${X} (required for ${Y})`)}async connect(X,Y){if(await super.connect(X),X.sessionId!==void 0)return;try{let Q=await this.request({method:"initialize",params:{protocolVersion:m8,capabilities:this._capabilities,clientInfo:this._clientInfo}},v5,Y);if(Q===void 0)throw Error(`Server sent invalid initialize result: ${Q}`);if(!HJ.includes(Q.protocolVersion))throw Error(`Server's protocol version is not supported: ${Q.protocolVersion}`);if(this._serverCapabilities=Q.capabilities,this._serverVersion=Q.serverInfo,X.setProtocolVersion)X.setProtocolVersion(Q.protocolVersion);if(this._instructions=Q.instructions,await this.notification({method:"notifications/initialized"}),this._pendingListChangedConfig)this._setupListChangedHandlers(this._pendingListChangedConfig),this._pendingListChangedConfig=void 0}catch(Q){throw this.close(),Q}}getServerCapabilities(){return this._serverCapabilities}getServerVersion(){return this._serverVersion}getInstructions(){return this._instructions}assertCapabilityForMethod(X){switch(X){case"logging/setLevel":if(!this._serverCapabilities?.logging)throw Error(`Server does not support logging (required for ${X})`);break;case"prompts/get":case"prompts/list":if(!this._serverCapabilities?.prompts)throw Error(`Server does not support prompts (required for ${X})`);break;case"resources/list":case"resources/templates/list":case"resources/read":case"resources/subscribe":case"resources/unsubscribe":if(!this._serverCapabilities?.resources)throw Error(`Server does not support resources (required for ${X})`);if(X==="resources/subscribe"&&!this._serverCapabilities.resources.subscribe)throw Error(`Server does not support resource subscriptions (required for ${X})`);break;case"tools/call":case"tools/list":if(!this._serverCapabilities?.tools)throw Error(`Server does not support tools (required for ${X})`);break;case"completion/complete":if(!this._serverCapabilities?.completions)throw Error(`Server does not support completions (required for ${X})`);break;case"initialize":break;case"ping":break}}assertNotificationCapability(X){switch(X){case"notifications/roots/list_changed":if(!this._capabilities.roots?.listChanged)throw Error(`Client does not support roots list changed notifications (required for ${X})`);break;case"notifications/initialized":break;case"notifications/cancelled":break;case"notifications/progress":break}}assertRequestHandlerCapability(X){if(!this._capabilities)return;switch(X){case"sampling/createMessage":if(!this._capabilities.sampling)throw Error(`Client does not support sampling capability (required for ${X})`);break;case"elicitation/create":if(!this._capabilities.elicitation)throw Error(`Client does not support elicitation capability (required for ${X})`);break;case"roots/list":if(!this._capabilities.roots)throw Error(`Client does not support roots capability (required for ${X})`);break;case"tasks/get":case"tasks/list":case"tasks/result":case"tasks/cancel":if(!this._capabilities.tasks)throw Error(`Client does not support tasks capability (required for ${X})`);break;case"ping":break}}assertTaskCapability(X){xV(this._serverCapabilities?.tasks?.requests,X,"Server")}assertTaskHandlerCapability(X){if(!this._capabilities)return;IV(this._capabilities.tasks?.requests,X,"Client")}async ping(X){return this.request({method:"ping"},r6,X)}async complete(X,Y){return this.request({method:"completion/complete",params:X},QZ,Y)}async setLoggingLevel(X,Y){return this.request({method:"logging/setLevel",params:{level:X}},r6,Y)}async getPrompt(X,Y){return this.request({method:"prompts/get",params:X},r5,Y)}async listPrompts(X,Y){return this.request({method:"prompts/list",params:X},c5,Y)}async listResources(X,Y){return this.request({method:"resources/list",params:X},h5,Y)}async listResourceTemplates(X,Y){return this.request({method:"resources/templates/list",params:X},g5,Y)}async readResource(X,Y){return this.request({method:"resources/read",params:X},m5,Y)}async subscribeResource(X,Y){return this.request({method:"resources/subscribe",params:X},r6,Y)}async unsubscribeResource(X,Y){return this.request({method:"resources/unsubscribe",params:X},r6,Y)}async callTool(X,Y=p8,Q){if(this.isToolTaskRequired(X.name))throw new c(r.InvalidRequest,`Tool "${X.name}" requires task-based execution. Use client.experimental.tasks.callToolStream() instead.`);let Z=await this.request({method:"tools/call",params:X},Y,Q),W=this.getToolOutputValidator(X.name);if(W){if(!Z.structuredContent&&!Z.isError)throw new c(r.InvalidRequest,`Tool ${X.name} has an output schema but did not return structured content`);if(Z.structuredContent)try{let $=W(Z.structuredContent);if(!$.valid)throw new c(r.InvalidParams,`Structured content does not match the tool's output schema: ${$.errorMessage}`)}catch($){if($ instanceof c)throw $;throw new c(r.InvalidParams,`Failed to validate structured content: ${$ instanceof Error?$.message:String($)}`)}}return Z}isToolTask(X){if(!this._serverCapabilities?.tasks?.requests?.tools?.call)return!1;return this._cachedKnownTaskTools.has(X)}isToolTaskRequired(X){return this._cachedRequiredTaskTools.has(X)}cacheToolMetadata(X){this._cachedToolOutputValidators.clear(),this._cachedKnownTaskTools.clear(),this._cachedRequiredTaskTools.clear();for(let Y of X){if(Y.outputSchema){let Z=this._jsonSchemaValidator.getValidator(Y.outputSchema);this._cachedToolOutputValidators.set(Y.name,Z)}let Q=Y.execution?.taskSupport;if(Q==="required"||Q==="optional")this._cachedKnownTaskTools.add(Y.name);if(Q==="required")this._cachedRequiredTaskTools.add(Y.name)}}getToolOutputValidator(X){return this._cachedToolOutputValidators.get(X)}async listTools(X,Y){let Q=await this.request({method:"tools/list",params:X},a5,Y);return this.cacheToolMetadata(Q.tools),Q}_setupListChangedHandler(X,Y,Q,Z){let W=TJ.safeParse(Q);if(!W.success)throw Error(`Invalid ${X} listChanged options: ${W.error.message}`);if(typeof Q.onChanged!=="function")throw Error(`Invalid ${X} listChanged options: onChanged must be a function`);let{autoRefresh:$,debounceMs:J}=W.data,{onChanged:G}=Q,K=async()=>{if(!$){G(null,null);return}try{let H=await Z();G(null,H)}catch(H){let V=H instanceof Error?H:Error(String(H));G(V,null)}},B=()=>{if(J){let H=this._listChangedDebounceTimers.get(X);if(H)clearTimeout(H);let V=setTimeout(K,J);this._listChangedDebounceTimers.set(X,V)}else K()};this.setNotificationHandler(Y,B)}async sendRootsListChanged(){return this.notification({method:"notifications/roots/list_changed"})}}var bV=rX(oR(),1);import h4 from"node:process";import{PassThrough as eR}from"node:stream";class R3{append(X){this._buffer=this._buffer?Buffer.concat([this._buffer,X]):X}readMessage(){if(!this._buffer)return null;let X=this._buffer.indexOf(`
|
|
308
|
-
`);if(X===-1)return null;let Y=this._buffer.toString("utf8",0,X).replace(/\r$/,"");return this._buffer=this._buffer.subarray(X+1),tR(Y)}clear(){this._buffer=void 0}}function tR(X){return F6.parse(JSON.parse(X))}function SV(X){return JSON.stringify(X)+`
|
|
309
|
-
`}var XT=h4.platform==="win32"?["APPDATA","HOMEDRIVE","HOMEPATH","LOCALAPPDATA","PATH","PROCESSOR_ARCHITECTURE","SYSTEMDRIVE","SYSTEMROOT","TEMP","USERNAME","USERPROFILE","PROGRAMFILES"]:["HOME","LOGNAME","PATH","SHELL","TERM","USER"];function YT(){let X={};for(let Y of XT){let Q=h4.env[Y];if(Q===void 0)continue;if(Q.startsWith("()"))continue;X[Y]=Q}return X}class T3{constructor(X){if(this._readBuffer=new R3,this._stderrStream=null,this._serverParams=X,X.stderr==="pipe"||X.stderr==="overlapped")this._stderrStream=new eR}async start(){if(this._process)throw Error("StdioClientTransport already started! If using Client class, note that connect() calls start() automatically.");return new Promise((X,Y)=>{if(this._process=bV.default(this._serverParams.command,this._serverParams.args??[],{env:{...YT(),...this._serverParams.env},stdio:["pipe","pipe",this._serverParams.stderr??"inherit"],shell:!1,windowsHide:h4.platform==="win32"&&QT(),cwd:this._serverParams.cwd}),this._process.on("error",(Q)=>{Y(Q),this.onerror?.(Q)}),this._process.on("spawn",()=>{X()}),this._process.on("close",(Q)=>{this._process=void 0,this.onclose?.()}),this._process.stdin?.on("error",(Q)=>{this.onerror?.(Q)}),this._process.stdout?.on("data",(Q)=>{this._readBuffer.append(Q),this.processReadBuffer()}),this._process.stdout?.on("error",(Q)=>{this.onerror?.(Q)}),this._stderrStream&&this._process.stderr)this._process.stderr.pipe(this._stderrStream)})}get stderr(){if(this._stderrStream)return this._stderrStream;return this._process?.stderr??null}get pid(){return this._process?.pid??null}processReadBuffer(){while(!0)try{let X=this._readBuffer.readMessage();if(X===null)break;this.onmessage?.(X)}catch(X){this.onerror?.(X)}}async close(){if(this._process){let X=this._process;this._process=void 0;let Y=new Promise((Q)=>{X.once("close",()=>{Q()})});try{X.stdin?.end()}catch{}if(await Promise.race([Y,new Promise((Q)=>setTimeout(Q,2000).unref())]),X.exitCode===null){try{X.kill("SIGTERM")}catch{}await Promise.race([Y,new Promise((Q)=>setTimeout(Q,2000).unref())])}if(X.exitCode===null)try{X.kill("SIGKILL")}catch{}}this._readBuffer.clear()}send(X){return new Promise((Y)=>{if(!this._process?.stdin)throw Error("Not connected");let Q=SV(X);if(this._process.stdin.write(Q))Y();else this._process.stdin.once("drain",Y)})}}function QT(){return"type"in h4}var BX=C8("connection"),ZT=["http","sse","stdio"],yV=class{#X=new Map;#Q;constructor(X={}){this.#Q=X}async createClient(...X){let[Y,Q,Z]=X;if(!ZT.includes(Y))throw Error(`Invalid transport type: ${Y}`);let W=Y==="http"?await this.#W(Q,Z):Y==="sse"?await this.#$(Q,Z):await this.#J(Z),$=new E3({name:q5.name,version:q5.version});if(await $.connect(W),this.#Q.onMessage)$.setNotificationHandler(s5,(B)=>this.#Q.onMessage?.(B.params,{server:Q,options:Z}));if(this.#Q.onInitialized)$.setNotificationHandler(bY,()=>this.#Q.onInitialized?.({server:Q,options:Z}));if(this.#Q.onCancelled)$.setNotificationHandler(d8,(B)=>{let{requestId:H,reason:V}=B.params;if(H==null)return;let z=this.#Q.onCancelled?.({requestId:H,reason:V},{server:Q,options:Z});if(z&&typeof z.catch==="function")z.catch(()=>{})});if(this.#Q.onPromptsListChanged)$.setNotificationHandler(K9,()=>this.#Q.onPromptsListChanged?.({server:Q,options:Z}));if(this.#Q.onResourcesListChanged)$.setNotificationHandler(G9,()=>this.#Q.onResourcesListChanged?.({server:Q,options:Z}));if(this.#Q.onResourcesUpdated)$.setNotificationHandler(d5,(B)=>this.#Q.onResourcesUpdated?.(B.params,{server:Q,options:Z}));if(this.#Q.onRootsListChanged)$.setNotificationHandler(ZZ,()=>this.#Q.onRootsListChanged?.({server:Q,options:Z}));if(this.#Q.onToolsListChanged)$.setNotificationHandler(B9,()=>this.#Q.onToolsListChanged?.({server:Q,options:Z}));let J=Y==="stdio"?{serverName:Q}:{serverName:Q,headers:CV(Z.headers),authProvider:Z.authProvider},G=(B)=>{return this.#Z(J,B)},K=new Proxy($,{get(B,H){if(H==="fork")return G.bind(this);return B[H]}});return this.#X.set(J,{transport:W,client:K,transportOptions:Z,closeCallback:async()=>K.close()}),K}#Z(X,Y){let[,Q]=[...this.#X.entries()].find(([W])=>X===W)??[];if(!Q)throw Error("Transport not found");let Z=Q.transportOptions.type??Q.transportOptions.transport;if(Z==="stdio")throw Error("Forking stdio transport is not supported");return this.createClient(Z,X.serverName,{...Q.transportOptions,headers:Y})}get(X){if(typeof X==="string")return this.#Y({serverName:X})?.connection.client;return this.#Y(X)?.connection.client}getAllClients(){return Array.from(this.#X.values()).map((X)=>X.client)}#Y(X){let Y=CV(X.headers),[Q,Z]=[...this.#X.entries()].find(([W])=>{if(X.headers&&X.authProvider)return W.serverName===X.serverName&&W.headers===Y&&W.authProvider===X.authProvider;if(X.headers&&!X.authProvider)return W.serverName===X.serverName&&W.headers===Y;if(X.authProvider&&!X.headers)return W.serverName===X.serverName&&W.authProvider===X.authProvider;return W.serverName===X.serverName})??[];if(Q&&Z)return{key:Q,connection:Z};return}has(X){return Boolean(typeof X==="string"?this.get(X):this.get(X))}async delete(X){if(!X){await Promise.all(Array.from(this.#X.values()).map((Q)=>Q.closeCallback())),this.#X.clear();return}let Y=this.#Y(X);if(Y)await Y.connection.closeCallback(),this.#X.delete(Y.key)}getTransport(X){if("listTools"in X)return[...this.#X.values()].find((Z)=>Z.client===X)?.transport;let Y=this.#Y(X);if(Y)return Y.connection.transport;return}async#W(X,Y){let{url:Q,headers:Z,reconnect:W,authProvider:$}=Y,J={...$?{authProvider:$}:{},...Z?{requestInit:{headers:Z}}:{}};if(W!=null){let G={initialReconnectionDelay:W?.delayMs??1000,maxReconnectionDelay:W?.delayMs??30000,maxRetries:W?.maxAttempts??2,reconnectionDelayGrowFactor:1.5};if(W.enabled===!1)G.maxRetries=0;J.reconnectionOptions=G}if(J.requestInit?.headers)BX(`DEBUG: Using custom headers for SSE transport to server "${X}"`);if(J.authProvider)BX(`DEBUG: Using OAuth authentication for Streamable HTTP transport to server "${X}"`);if(J.reconnectionOptions)if(J.reconnectionOptions.maxRetries===0)BX(`DEBUG: Disabling reconnection for Streamable HTTP transport to server "${X}"`);else BX(`DEBUG: Using custom reconnection options for Streamable HTTP transport to server "${X}"`);return Object.keys(J).length>0?new oY(new URL(Q),J):new oY(new URL(Q))}async#$(X,Y){let{url:Q,headers:Z,authProvider:W}=Y,$={};if(W)$.authProvider=W,BX(`DEBUG: Using OAuth authentication for SSE transport to server "${X}"`);if(Z)$.eventSourceInit={fetch:async(J,G)=>{let K=new Headers(G?.headers);if(W){let B=await W.tokens();if(B)K.set("Authorization",`Bearer ${B.access_token}`)}return Object.entries(Z).forEach(([B,H])=>{K.set(B,H)}),K.set("Accept","text/event-stream"),fetch(J,{...G,headers:K})}},$.requestInit={headers:Z},BX(`DEBUG: Using custom headers for SSE transport to server "${X}"`);return new zZ(new URL(Q),$)}#J(X){let{command:Y,args:Q,env:Z,stderr:W,cwd:$}=X;return new T3({command:Y,args:Q,stderr:W,cwd:$,...Z?{env:{PATH:process.env.PATH,...Z}}:{}})}};function CV(X){if(!X)return;return Object.entries(X).sort(([Y],[Q])=>Y.localeCompare(Q)).map(([Y,Q])=>`${Y}: ${Q}`).join(`
|
|
310
|
-
`)}var q0=C8(),l0=class extends Error{constructor(X,Y){super(X);this.serverName=Y,this.name="MCPClientError"}};function kV(X){if(typeof X!=="object"||X===null||Array.isArray(X))return!1;if("transport"in X&&X.transport==="stdio")return!0;if("type"in X&&X.type==="stdio")return!0;if("command"in X&&typeof X.command==="string")return!0;return!1}function _V(X){if(typeof X!=="object"||X===null||Array.isArray(X))return!1;if("transport"in X&&typeof X.transport==="string"&&["http","sse"].includes(X.transport)||"type"in X&&typeof X.type==="string"&&["http","sse"].includes(X.type))return!0;if("url"in X&&typeof X.url==="string")try{return new URL(X.url),!0}catch{return!1}return!1}var M3=class{#X={};#Q;#Z={};#Y;#W;#$;#J=new Set;get config(){return JSON.parse(JSON.stringify(this.#W))}constructor(X){let Y,Q=t$;if("mcpServers"in X)Y=Q.parse(X);else{let Z=U.record(AY).parse(X);Y=Q.parse({mcpServers:Z})}if(Object.keys(Y.mcpServers).length===0)throw new l0("No MCP servers provided");for(let[Z,W]of Object.entries(Y.mcpServers)){let $=o$(Y.outputHandling,W.outputHandling),J=Y.defaultToolTimeout??W.defaultToolTimeout;this.#Z[Z]={throwOnLoadError:Y.throwOnLoadError,prefixToolNameWithServerName:Y.prefixToolNameWithServerName,additionalToolNamePrefix:Y.additionalToolNamePrefix,useStandardContentBlocks:Y.useStandardContentBlocks,...Object.keys($).length>0?{outputHandling:$}:{},...J?{defaultToolTimeout:J}:{},onProgress:Y.onProgress,beforeToolCall:Y.beforeToolCall,afterToolCall:Y.afterToolCall}}this.#W=Y,this.#Q=Y.mcpServers,this.#Y=new yV(Y),this.#$=Y.onConnectionError}async initializeConnections(X){if(!this.#Q||Object.keys(this.#Q).length===0)throw new l0("No connections to initialize");for(let[Y,Q]of Object.entries(this.#Q)){if((this.#$==="ignore"||typeof this.#$==="function")&&this.#J.has(Y))continue;try{await this._initializeConnection(Y,Q,X),this.#J.delete(Y)}catch(Z){if(this.#$==="throw")throw Z;if(typeof this.#$==="function"){this.#$({serverName:Y,error:Z}),this.#J.add(Y),q0(`WARN: Failed to initialize connection to server "${Y}": ${String(Z)}`);continue}this.#J.add(Y),q0(`WARN: Failed to initialize connection to server "${Y}": ${String(Z)}`);continue}}if(this.#$==="ignore"&&Object.keys(this.#X).length===0)q0("WARN: No servers successfully connected. All connection attempts failed.");return this.#X}async getTools(...X){if(X.length===0||X.every((Z)=>typeof Z==="string")){await this.initializeConnections();let Z=X;return Z.length===0?this._getAllToolsAsFlatArray():this._getToolsFromServers(Z)}let[Y,Q]=X;return await this.initializeConnections(Q),Y.length===0?this._getAllToolsAsFlatArray():this._getToolsFromServers(Y)}async setLoggingLevel(...X){if(X.length===1&&typeof X[0]==="string"){let Z=X[0];await Promise.all(this.#Y.getAllClients().map((W)=>W.setLoggingLevel(Z)));return}let[Y,Q]=X;await this.#Y.get(Y)?.setLoggingLevel(Q)}async getClient(X,Y){return await this.initializeConnections(Y),this.#Y.get({serverName:X,headers:Y?.headers,authProvider:Y?.authProvider})}async listResources(...X){let Y,Q;if(X.length===0||X.every(($)=>typeof $==="string"))Y=X,await this.initializeConnections();else[Y,Q]=X,await this.initializeConnections(Q);let Z=Y.length>0?Y:Object.keys(this.#W.mcpServers),W={};for(let $ of Z){let J=await this.getClient($,Q);if(!J){q0(`WARN: Server "${$}" not found or not connected`);continue}try{let G=await J.listResources();W[$]=G.resources.map((K)=>({uri:K.uri,name:K.title??K.name,description:K.description,mimeType:K.mimeType})),q0(`INFO: Listed ${W[$].length} resources from server "${$}"`)}catch(G){q0(`ERROR: Failed to list resources from server "${$}": ${G}`),W[$]=[]}}return W}async listResourceTemplates(...X){let Y,Q;if(X.length===0||X.every(($)=>typeof $==="string"))Y=X,await this.initializeConnections();else[Y,Q]=X,await this.initializeConnections(Q);let Z=Y.length>0?Y:Object.keys(this.#W.mcpServers),W={};for(let $ of Z){let J=await this.getClient($,Q);if(!J){q0(`WARN: Server "${$}" not found or not connected`);continue}try{let G=await J.listResourceTemplates();W[$]=G.resourceTemplates.map((K)=>({uriTemplate:K.uriTemplate,name:K.title??K.name,description:K.description,mimeType:K.mimeType})),q0(`INFO: Listed ${W[$].length} resource templates from server "${$}"`)}catch(G){q0(`ERROR: Failed to list resource templates from server "${$}": ${G}`),W[$]=[]}}return W}async readResource(X,Y,Q){await this.initializeConnections(Q);let Z=await this.getClient(X,Q);if(!Z)throw new l0(`Server "${X}" not found or not connected`,X);try{return q0(`INFO: Reading resource "${Y}" from server "${X}"`),(await Z.readResource({uri:Y})).contents.map(($)=>({uri:$.uri,mimeType:$.mimeType,text:"text"in $?$.text:void 0,blob:"blob"in $?$.blob:void 0}))}catch(W){throw new l0(`Failed to read resource "${Y}" from server "${X}": ${W}`,X)}}async close(){q0("INFO: Closing all MCP connections..."),this.#X={},this.#J.clear(),await this.#Y.delete(),q0("INFO: All MCP connections closed")}async _initializeConnection(X,Y,Q){if(kV(Y)){if(q0(`INFO: Initializing stdio connection to server "${X}"...`),this.#Y.has(X))return;await this._initializeStdioConnection(X,Y)}else if(_V(Y)){let{authProvider:Z,headers:W}=Q??{},$={...Y,authProvider:Z??Y.authProvider,headers:{...W,...Y.headers}},J={serverName:X,headers:$.headers,authProvider:$.authProvider};if(this.#Y.has(J))return;if(Y.type==="sse"||Y.transport==="sse")await this._initializeSSEConnection(X,$);else await this._initializeStreamableHTTPConnection(X,$)}else throw new l0(`Unsupported transport type for server "${X}"`,X)}async _initializeStdioConnection(X,Y){let{command:Q,args:Z,restart:W}=Y;q0(`DEBUG: Creating stdio transport for server "${X}" with command: ${Q} ${Z.join(" ")}`);try{let $=await this.#Y.createClient("stdio",X,Y),J=this.#Y.getTransport({serverName:X});if(W?.enabled)this._setupStdioRestart(X,J,Y,W);await this._loadToolsForServer(X,$)}catch($){throw new l0(`Failed to connect to stdio server "${X}": ${$}`,X)}}_setupStdioRestart(X,Y,Q,Z){let W=Y.onclose;Y.onclose=async()=>{if(W)await W();if(this.#Y.get(X))q0(`INFO: Process for server "${X}" exited, attempting to restart...`),await this._attemptReconnect(X,Q,Z.maxAttempts,Z.delayMs)}}_getHttpErrorCode(X){let Y=X,{code:Q}=Y;if(Q==null){let Z=Y.message.match(/\(HTTP (\d\d\d)\)/);if(Z&&Z.length>1)Q=parseInt(Z[1],10)}return Q}_createAuthenticationErrorMessage(X,Y,Q,Z){return`Authentication failed for ${Q} server "${X}" at ${Y}. Please check your credentials, authorization headers, or OAuth configuration. Original error: ${Z}`}_toSSEConnectionURL(X){let Y=new URL(X),Q=Y.pathname.split("/"),Z=Q.at(-1);if(Z&&Z==="mcp")Q[Q.length-1]="sse";return Y.pathname=Q.join("/"),Y.toString()}async _initializeStreamableHTTPConnection(X,Y){let{url:Q,type:Z,transport:W}=Y,$=Y.automaticSSEFallback??!0,J=Z||W;if(q0(`DEBUG: Creating Streamable HTTP transport for server "${X}" with URL: ${Q}`),J==="http"||J==null)try{let G=await this.#Y.createClient("http",X,Y);await this._loadToolsForServer(X,G)}catch(G){let K=this._getHttpErrorCode(G);if($&&K!=null&&K>=400&&K<500)try{await this._initializeSSEConnection(X,Y)}catch(B){let H=this._toSSEConnectionURL(Q);if(H!==Q)try{await this._initializeSSEConnection(X,{...Y,url:H})}catch(V){if(K===401)throw new l0(this._createAuthenticationErrorMessage(X,Q,"HTTP",`${G}. Also tried SSE fallback at ${Q} and ${H}, but both failed with authentication errors.`),X);throw new l0(`Failed to connect to streamable HTTP server "${X}, url: ${Q}": ${G}. Additionally, tried falling back to SSE at ${Q} and ${H}, but this also failed: ${V}`,X)}else{if(K===401)throw new l0(this._createAuthenticationErrorMessage(X,Q,"HTTP",`${G}. Also tried SSE fallback at ${Q}, but it failed with authentication error: ${B}`),X);throw new l0(`Failed to connect to streamable HTTP server after trying to fall back to SSE: "${X}, url: ${Q}": ${G} (SSE fallback failed with error ${B})`,X)}}else{if(K===401)throw new l0(this._createAuthenticationErrorMessage(X,Q,"HTTP",`${G}`),X);throw new l0(`Failed to connect to streamable HTTP server "${X}, url: ${Q}": ${G}`,X)}}}async _initializeSSEConnection(X,Y){let{url:Q,headers:Z,reconnect:W,authProvider:$}=Y;try{let J=await this.#Y.createClient("sse",X,Y),G=this.#Y.getTransport({serverName:X,headers:Z,authProvider:$});if(W?.enabled)this._setupSSEReconnect(X,G,Y,W);await this._loadToolsForServer(X,J)}catch(J){if(J&&J.name==="MCPClientError")throw J;if(J&&this._getHttpErrorCode(J)===401)throw new l0(this._createAuthenticationErrorMessage(X,Q,"SSE",`${J}`),X);throw new l0(`Failed to create SSE transport for server "${X}, url: ${Q}": ${J}`,X)}}_setupSSEReconnect(X,Y,Q,Z){let W=Y.onclose;Y.onclose=async()=>{if(W)await W();if(this.#Y.get({serverName:X,headers:Q.headers,authProvider:Q.authProvider}))q0(`INFO: HTTP connection for server "${X}" closed, attempting to reconnect...`),await this._attemptReconnect(X,Q,Z.maxAttempts,Z.delayMs)}}async _loadToolsForServer(X,Y){try{q0(`DEBUG: Loading tools for server "${X}"...`);let Q=await L5(X,Y,this.#Z[X]);this.#X[X]=Q,q0(`INFO: Successfully loaded ${Q.length} tools from server "${X}"`)}catch(Q){throw new l0(`Failed to load tools from server "${X}": ${Q}`)}}async _attemptReconnect(X,Y,Q=3,Z=1000){let W=!1,$=0;if("headers"in Y||"authProvider"in Y){let{headers:J,authProvider:G}=Y;await this.#G({serverName:X,authProvider:G,headers:J})}else await this.#G({serverName:X});while(!W&&(Q===void 0||$<Q)){$+=1,q0(`INFO: Reconnection attempt ${$}${Q?`/${Q}`:""} for server "${X}"`);try{if(Z)await new Promise((G)=>{setTimeout(G,Z)});if(kV(Y))await this._initializeStdioConnection(X,Y);else if(_V(Y))if(Y.type==="sse"||Y.transport==="sse")await this._initializeSSEConnection(X,Y);else await this._initializeStreamableHTTPConnection(X,Y);let J="headers"in Y?{serverName:X,headers:Y.headers,authProvider:Y.authProvider}:{serverName:X};if(this.#Y.has(J))W=!0,q0(`INFO: Successfully reconnected to server "${X}"`)}catch(J){q0(`ERROR: Failed to reconnect to server "${X}" (attempt ${$}): ${J}`)}}if(!W)q0(`ERROR: Failed to reconnect to server "${X}" after ${$} attempts`)}async#G(X){let{serverName:Y,authProvider:Q,headers:Z}=X;delete this.#X[Y],await this.#Y.delete({serverName:Y,authProvider:Q,headers:Z})}_getAllToolsAsFlatArray(){let X=[];for(let Y of Object.values(this.#X))X.push(...Y);return X}_getToolsFromServers(X){let Y=[];for(let Q of X){let Z=this.#X[Q];if(Z)Y.push(...Z)}return Y}};var x3=(...X)=>{return{build:(Y={})=>{return j6.Root(Object.assign({},...X.map((Q)=>Q.spec),Y))}}},WT=(X)=>j6({reducer:(Y,Q)=>Q,default:X});var $T=A.object({thought:A.string().describe("Your current thinking step"),nextThoughtNeeded:A.boolean().describe("Whether another thought step is needed"),thoughtNumber:A.number().min(1).describe("Current thought number"),totalThoughts:A.number().min(1).describe("Estimated total thoughts needed"),isRevision:A.boolean().optional().describe("Whether this revises previous thinking"),revisesThought:A.number().min(1).optional().describe("Which thought is being reconsidered"),branchFromThought:A.number().min(1).optional().describe("Branching point thought number"),branchId:A.string().optional().describe("Branch identifier"),needsMoreThoughts:A.boolean().optional().describe("If more thoughts are needed")}),vV=[],g4={},Dh=R0(async(X)=>{try{if(X.thoughtNumber>X.totalThoughts)X.totalThoughts=X.thoughtNumber;if(vV.push(X),X.branchFromThought&&X.branchId){if(!g4[X.branchId])g4[X.branchId]=[];g4[X.branchId].push(X)}return JSON.stringify({thoughtNumber:X.thoughtNumber,totalThoughts:X.totalThoughts,nextThoughtNeeded:X.nextThoughtNeeded,branches:Object.keys(g4),thoughtHistoryLength:vV.length},null,2)}catch(Y){return JSON.stringify({error:Y instanceof Error?Y.message:String(Y),status:"failed"},null,2)}},{name:"sequential-thinking",description:`A detailed tool for dynamic and reflective problem-solving through thoughts.
|
|
311
|
-
This tool helps analyze problems through a flexible thinking process that can adapt and evolve.
|
|
312
|
-
Each thought can build on, question, or revise previous insights as understanding deepens.
|
|
313
|
-
|
|
314
|
-
When to use this tool:
|
|
315
|
-
- Breaking down complex problems into steps
|
|
316
|
-
- Planning and design with room for revision
|
|
317
|
-
- Analysis that might need course correction
|
|
318
|
-
- Problems where the full scope might not be clear initially
|
|
319
|
-
- Problems that require a multi-step solution
|
|
320
|
-
- Tasks that need to maintain context over multiple steps
|
|
321
|
-
- Situations where irrelevant information needs to be filtered out
|
|
322
|
-
|
|
323
|
-
Key features:
|
|
324
|
-
- You can adjust total_thoughts up or down as you progress
|
|
325
|
-
- You can question or revise previous thoughts
|
|
326
|
-
- You can add more thoughts even after reaching what seemed like the end
|
|
327
|
-
- You can express uncertainty and explore alternative approaches
|
|
328
|
-
- Not every thought needs to build linearly - you can branch or backtrack
|
|
329
|
-
- Generates a solution hypothesis
|
|
330
|
-
- Verifies the hypothesis based on the Chain of Thought steps
|
|
331
|
-
- Repeats the process until satisfied
|
|
332
|
-
- Provides a correct answer`,schema:$T});var JT=A.object({url:A.string().url().describe("the url to crawl"),raw:A.boolean().optional().default(!1).describe("return raw html")}),GT=A.object({query:A.string().describe("the query to search"),engines:A.array(A.enum(["basic","npm","juejin","anthropic","github"])).default(["basic"]).describe("the engines to use"),returnType:A.enum(["json","markdown"]).default("json").describe("the content type to return"),withMetadata:A.boolean().default(!0).describe("whether to include metadata in the search results")}),Ah=R0(async({url:X})=>{if(!X)return{status:"error",error:"URL is required"};let Y=await fetch(`${process.env.SEARCH_SERVER_URL||"http://localhost:8123"}/website-to-md/extract`,{method:"POST",body:JSON.stringify({url:X})});if(!Y.ok)throw Error(`HTTP error! status: ${Y.status}`);return await Y.text()},{name:"read_web_page",description:"A powerful web content extraction tool that retrieves and processes raw content from specified URLs, ideal for data collection, content analysis, and research tasks.",schema:A.object(JT.shape)}),jh=R0(async({query:X,engines:Y})=>{let Q=await fetch(`${process.env.SEARCH_SERVER_URL||"http://localhost:8123"}/website-to-md/search`,{method:"POST",body:JSON.stringify({query:X,engines:Y,returnType:"json",withMetadata:!0})});if(!Q.ok)throw Error(`HTTP error! status: ${Q.status}`);return await Q.text()},{name:"web_search",description:"A powerful web search tool that provides comprehensive, real-time results using search engine. Returns relevant web content with customizable parameters for result count, content type, and domain filtering. Ideal for gathering current information, news, and detailed web content analysis.",schema:A.object(GT.shape)});var yh=(X)=>{return X?.configurable?.thread_id};var hV=j6.Root({...fV.spec,activeAgent:j6});function y9(X,Y){return X.lc_error_code=Y,X.message=`${X.message}
|
|
333
|
-
|
|
334
|
-
Troubleshooting URL: https://docs.langchain.com/oss/javascript/langchain/errors/${Y}/
|
|
335
|
-
`,X}function d(X,Y,Q,Z,W){if(Z==="m")throw TypeError("Private method is not writable");if(Z==="a"&&!W)throw TypeError("Private accessor was defined without a setter");if(typeof Y==="function"?X!==Y||!W:!Y.has(X))throw TypeError("Cannot write private member to an object whose class did not declare it");return Z==="a"?W.call(X,Q):W?W.value=Q:Y.set(X,Q),Q}function j(X,Y,Q,Z){if(Q==="a"&&!Z)throw TypeError("Private accessor was defined without a getter");if(typeof Y==="function"?X!==Y||!Z:!Y.has(X))throw TypeError("Cannot read private member from an object whose class did not declare it");return Q==="m"?Z:Q==="a"?Z.call(X):Z?Z.value:Y.get(X)}var I3=function(){let{crypto:X}=globalThis;if(X?.randomUUID)return I3=X.randomUUID.bind(X),X.randomUUID();let Y=new Uint8Array(1),Q=X?()=>X.getRandomValues(Y)[0]:()=>Math.random()*255&255;return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(Z)=>(+Z^Q()&15>>+Z/4).toString(16))};function k9(X){return typeof X==="object"&&X!==null&&(("name"in X)&&X.name==="AbortError"||("message"in X)&&String(X.message).includes("FetchRequestCanceledException"))}var _9=(X)=>{if(X instanceof Error)return X;if(typeof X==="object"&&X!==null){try{if(Object.prototype.toString.call(X)==="[object Error]"){let Y=Error(X.message,X.cause?{cause:X.cause}:{});if(X.stack)Y.stack=X.stack;if(X.cause&&!Y.cause)Y.cause=X.cause;if(X.name)Y.name=X.name;return Y}}catch{}try{return Error(JSON.stringify(X))}catch{}}return Error(X)};class f extends Error{}class M0 extends f{constructor(X,Y,Q,Z){super(`${M0.makeMessage(X,Y,Q)}`);this.status=X,this.headers=Z,this.requestID=Z?.get("x-request-id"),this.error=Y;let W=Y;this.code=W?.code,this.param=W?.param,this.type=W?.type}static makeMessage(X,Y,Q){let Z=Y?.message?typeof Y.message==="string"?Y.message:JSON.stringify(Y.message):Y?JSON.stringify(Y):Q;if(X&&Z)return`${X} ${Z}`;if(X)return`${X} status code (no body)`;if(Z)return Z;return"(no status code or body)"}static generate(X,Y,Q,Z){if(!X||!Z)return new Z8({message:Q,cause:_9(Y)});let W=Y?.error;if(X===400)return new v9(X,W,Q,Z);if(X===401)return new f9(X,W,Q,Z);if(X===403)return new h9(X,W,Q,Z);if(X===404)return new g9(X,W,Q,Z);if(X===409)return new u9(X,W,Q,Z);if(X===422)return new m9(X,W,Q,Z);if(X===429)return new d9(X,W,Q,Z);if(X>=500)return new c9(X,W,Q,Z);return new M0(X,W,Q,Z)}}class j0 extends M0{constructor({message:X}={}){super(void 0,void 0,X||"Request was aborted.",void 0)}}class Z8 extends M0{constructor({message:X,cause:Y}){super(void 0,void 0,X||"Connection error.",void 0);if(Y)this.cause=Y}}class s1 extends Z8{constructor({message:X}={}){super({message:X??"Request timed out."})}}class v9 extends M0{}class f9 extends M0{}class h9 extends M0{}class g9 extends M0{}class u9 extends M0{}class m9 extends M0{}class d9 extends M0{}class c9 extends M0{}class p9 extends f{constructor(){super("Could not parse response content as the length limit was reached")}}class l9 extends f{constructor(){super("Could not parse response content as the request was rejected by the content filter")}}class t1 extends Error{constructor(X){super(X)}}var zT=/^[a-z][a-z0-9+.-]*:/i,gV=(X)=>{return zT.test(X)},u0=(X)=>(u0=Array.isArray,u0(X)),S3=u0;function b3(X){if(typeof X!=="object")return{};return X??{}}function uV(X){if(!X)return!0;for(let Y in X)return!1;return!0}function mV(X,Y){return Object.prototype.hasOwnProperty.call(X,Y)}function i9(X){return X!=null&&typeof X==="object"&&!Array.isArray(X)}var dV=(X,Y)=>{if(typeof Y!=="number"||!Number.isInteger(Y))throw new f(`${X} must be an integer`);if(Y<0)throw new f(`${X} must be a positive integer`);return Y};var cV=(X)=>{try{return JSON.parse(X)}catch(Y){return}};var _1=(X)=>new Promise((Y)=>setTimeout(Y,X));var E6="6.22.0";var nV=()=>{return typeof window<"u"&&typeof window.document<"u"&&typeof navigator<"u"};function FT(){if(typeof Deno<"u"&&Deno.build!=null)return"deno";if(typeof EdgeRuntime<"u")return"edge";if(Object.prototype.toString.call(typeof globalThis.process<"u"?globalThis.process:0)==="[object process]")return"node";return"unknown"}var UT=()=>{let X=FT();if(X==="deno")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":E6,"X-Stainless-OS":lV(Deno.build.os),"X-Stainless-Arch":pV(Deno.build.arch),"X-Stainless-Runtime":"deno","X-Stainless-Runtime-Version":typeof Deno.version==="string"?Deno.version:Deno.version?.deno??"unknown"};if(typeof EdgeRuntime<"u")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":E6,"X-Stainless-OS":"Unknown","X-Stainless-Arch":`other:${EdgeRuntime}`,"X-Stainless-Runtime":"edge","X-Stainless-Runtime-Version":globalThis.process.version};if(X==="node")return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":E6,"X-Stainless-OS":lV(globalThis.process.platform??"unknown"),"X-Stainless-Arch":pV(globalThis.process.arch??"unknown"),"X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":globalThis.process.version??"unknown"};let Y=LT();if(Y)return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":E6,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":`browser:${Y.browser}`,"X-Stainless-Runtime-Version":Y.version};return{"X-Stainless-Lang":"js","X-Stainless-Package-Version":E6,"X-Stainless-OS":"Unknown","X-Stainless-Arch":"unknown","X-Stainless-Runtime":"unknown","X-Stainless-Runtime-Version":"unknown"}};function LT(){if(typeof navigator>"u"||!navigator)return null;let X=[{key:"edge",pattern:/Edge(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/MSIE(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"ie",pattern:/Trident(?:.*rv\:(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"chrome",pattern:/Chrome(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"firefox",pattern:/Firefox(?:\W+(\d+)\.(\d+)(?:\.(\d+))?)?/},{key:"safari",pattern:/(?:Version\W+(\d+)\.(\d+)(?:\.(\d+))?)?(?:\W+Mobile\S*)?\W+Safari/}];for(let{key:Y,pattern:Q}of X){let Z=Q.exec(navigator.userAgent);if(Z){let W=Z[1]||0,$=Z[2]||0,J=Z[3]||0;return{browser:Y,version:`${W}.${$}.${J}`}}}return null}var pV=(X)=>{if(X==="x32")return"x32";if(X==="x86_64"||X==="x64")return"x64";if(X==="arm")return"arm";if(X==="aarch64"||X==="arm64")return"arm64";if(X)return`other:${X}`;return"unknown"},lV=(X)=>{if(X=X.toLowerCase(),X.includes("ios"))return"iOS";if(X==="android")return"Android";if(X==="darwin")return"MacOS";if(X==="win32")return"Windows";if(X==="freebsd")return"FreeBSD";if(X==="openbsd")return"OpenBSD";if(X==="linux")return"Linux";if(X)return`Other:${X}`;return"Unknown"},iV,rV=()=>{return iV??(iV=UT())};function aV(){if(typeof fetch<"u")return fetch;throw Error("`fetch` is not defined as a global; Either pass `fetch` to the client, `new OpenAI({ fetch })` or polyfill the global, `globalThis.fetch = fetch`")}function C3(...X){let Y=globalThis.ReadableStream;if(typeof Y>"u")throw Error("`ReadableStream` is not defined as a global; You will need to polyfill it, `globalThis.ReadableStream = ReadableStream`");return new Y(...X)}function u4(X){let Y=Symbol.asyncIterator in X?X[Symbol.asyncIterator]():X[Symbol.iterator]();return C3({start(){},async pull(Q){let{done:Z,value:W}=await Y.next();if(Z)Q.close();else Q.enqueue(W)},async cancel(){await Y.return?.()}})}function y3(X){if(X[Symbol.asyncIterator])return X;let Y=X.getReader();return{async next(){try{let Q=await Y.read();if(Q?.done)Y.releaseLock();return Q}catch(Q){throw Y.releaseLock(),Q}},async return(){let Q=Y.cancel();return Y.releaseLock(),await Q,{done:!0,value:void 0}},[Symbol.asyncIterator](){return this}}}async function sV(X){if(X===null||typeof X!=="object")return;if(X[Symbol.asyncIterator]){await X[Symbol.asyncIterator]().return?.();return}let Y=X.getReader(),Q=Y.cancel();Y.releaseLock(),await Q}var tV=({headers:X,body:Y})=>{return{bodyHeaders:{"content-type":"application/json"},body:JSON.stringify(Y)}};var m4="RFC3986",k3=(X)=>String(X),d4={RFC1738:(X)=>String(X).replace(/%20/g,"+"),RFC3986:k3},_3="RFC1738";var c4=(X,Y)=>(c4=Object.hasOwn??Function.prototype.call.bind(Object.prototype.hasOwnProperty),c4(X,Y)),v1=(()=>{let X=[];for(let Y=0;Y<256;++Y)X.push("%"+((Y<16?"0":"")+Y.toString(16)).toUpperCase());return X})();var v3=1024,oV=(X,Y,Q,Z,W)=>{if(X.length===0)return X;let $=X;if(typeof X==="symbol")$=Symbol.prototype.toString.call(X);else if(typeof X!=="string")$=String(X);if(Q==="iso-8859-1")return escape($).replace(/%u[0-9a-f]{4}/gi,function(G){return"%26%23"+parseInt(G.slice(2),16)+"%3B"});let J="";for(let G=0;G<$.length;G+=v3){let K=$.length>=v3?$.slice(G,G+v3):$,B=[];for(let H=0;H<K.length;++H){let V=K.charCodeAt(H);if(V===45||V===46||V===95||V===126||V>=48&&V<=57||V>=65&&V<=90||V>=97&&V<=122||W===_3&&(V===40||V===41)){B[B.length]=K.charAt(H);continue}if(V<128){B[B.length]=v1[V];continue}if(V<2048){B[B.length]=v1[192|V>>6]+v1[128|V&63];continue}if(V<55296||V>=57344){B[B.length]=v1[224|V>>12]+v1[128|V>>6&63]+v1[128|V&63];continue}H+=1,V=65536+((V&1023)<<10|K.charCodeAt(H)&1023),B[B.length]=v1[240|V>>18]+v1[128|V>>12&63]+v1[128|V>>6&63]+v1[128|V&63]}J+=B.join("")}return J};function eV(X){if(!X||typeof X!=="object")return!1;return!!(X.constructor&&X.constructor.isBuffer&&X.constructor.isBuffer(X))}function f3(X,Y){if(u0(X)){let Q=[];for(let Z=0;Z<X.length;Z+=1)Q.push(Y(X[Z]));return Q}return Y(X)}var Yz={brackets(X){return String(X)+"[]"},comma:"comma",indices(X,Y){return String(X)+"["+Y+"]"},repeat(X){return String(X)}},Qz=function(X,Y){Array.prototype.push.apply(X,u0(Y)?Y:[Y])},Xz,S0={addQueryPrefix:!1,allowDots:!1,allowEmptyArrays:!1,arrayFormat:"indices",charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encodeDotInKeys:!1,encoder:oV,encodeValuesOnly:!1,format:m4,formatter:k3,indices:!1,serializeDate(X){return(Xz??(Xz=Function.prototype.call.bind(Date.prototype.toISOString)))(X)},skipNulls:!1,strictNullHandling:!1};function DT(X){return typeof X==="string"||typeof X==="number"||typeof X==="boolean"||typeof X==="symbol"||typeof X==="bigint"}var h3={};function Zz(X,Y,Q,Z,W,$,J,G,K,B,H,V,z,F,L,q,w,O){let R=X,P=O,D=0,E=!1;while((P=P.get(h3))!==void 0&&!E){let h=P.get(X);if(D+=1,typeof h<"u")if(h===D)throw RangeError("Cyclic object value");else E=!0;if(typeof P.get(h3)>"u")D=0}if(typeof B==="function")R=B(Y,R);else if(R instanceof Date)R=z?.(R);else if(Q==="comma"&&u0(R))R=f3(R,function(h){if(h instanceof Date)return z?.(h);return h});if(R===null){if($)return K&&!q?K(Y,S0.encoder,w,"key",F):Y;R=""}if(DT(R)||eV(R)){if(K){let h=q?Y:K(Y,S0.encoder,w,"key",F);return[L?.(h)+"="+L?.(K(R,S0.encoder,w,"value",F))]}return[L?.(Y)+"="+L?.(String(R))]}let I=[];if(typeof R>"u")return I;let S;if(Q==="comma"&&u0(R)){if(q&&K)R=f3(R,K);S=[{value:R.length>0?R.join(",")||null:void 0}]}else if(u0(B))S=B;else{let h=Object.keys(R);S=H?h.sort(H):h}let x=G?String(Y).replace(/\./g,"%2E"):String(Y),C=Z&&u0(R)&&R.length===1?x+"[]":x;if(W&&u0(R)&&R.length===0)return C+"[]";for(let h=0;h<S.length;++h){let n=S[h],m0=typeof n==="object"&&typeof n.value<"u"?n.value:R[n];if(J&&m0===null)continue;let J6=V&&G?n.replace(/\./g,"%2E"):n,TQ=u0(R)?typeof Q==="function"?Q(C,J6):C:C+(V?"."+J6:"["+J6+"]");O.set(X,D);let mW=new WeakMap;mW.set(h3,O),Qz(I,Zz(m0,TQ,Q,Z,W,$,J,G,Q==="comma"&&q&&u0(R)?null:K,B,H,V,z,F,L,q,w,mW))}return I}function PT(X=S0){if(typeof X.allowEmptyArrays<"u"&&typeof X.allowEmptyArrays!=="boolean")throw TypeError("`allowEmptyArrays` option can only be `true` or `false`, when provided");if(typeof X.encodeDotInKeys<"u"&&typeof X.encodeDotInKeys!=="boolean")throw TypeError("`encodeDotInKeys` option can only be `true` or `false`, when provided");if(X.encoder!==null&&typeof X.encoder<"u"&&typeof X.encoder!=="function")throw TypeError("Encoder has to be a function.");let Y=X.charset||S0.charset;if(typeof X.charset<"u"&&X.charset!=="utf-8"&&X.charset!=="iso-8859-1")throw TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");let Q=m4;if(typeof X.format<"u"){if(!c4(d4,X.format))throw TypeError("Unknown format option provided.");Q=X.format}let Z=d4[Q],W=S0.filter;if(typeof X.filter==="function"||u0(X.filter))W=X.filter;let $;if(X.arrayFormat&&X.arrayFormat in Yz)$=X.arrayFormat;else if("indices"in X)$=X.indices?"indices":"repeat";else $=S0.arrayFormat;if("commaRoundTrip"in X&&typeof X.commaRoundTrip!=="boolean")throw TypeError("`commaRoundTrip` must be a boolean, or absent");let J=typeof X.allowDots>"u"?!!X.encodeDotInKeys===!0?!0:S0.allowDots:!!X.allowDots;return{addQueryPrefix:typeof X.addQueryPrefix==="boolean"?X.addQueryPrefix:S0.addQueryPrefix,allowDots:J,allowEmptyArrays:typeof X.allowEmptyArrays==="boolean"?!!X.allowEmptyArrays:S0.allowEmptyArrays,arrayFormat:$,charset:Y,charsetSentinel:typeof X.charsetSentinel==="boolean"?X.charsetSentinel:S0.charsetSentinel,commaRoundTrip:!!X.commaRoundTrip,delimiter:typeof X.delimiter>"u"?S0.delimiter:X.delimiter,encode:typeof X.encode==="boolean"?X.encode:S0.encode,encodeDotInKeys:typeof X.encodeDotInKeys==="boolean"?X.encodeDotInKeys:S0.encodeDotInKeys,encoder:typeof X.encoder==="function"?X.encoder:S0.encoder,encodeValuesOnly:typeof X.encodeValuesOnly==="boolean"?X.encodeValuesOnly:S0.encodeValuesOnly,filter:W,format:Q,formatter:Z,serializeDate:typeof X.serializeDate==="function"?X.serializeDate:S0.serializeDate,skipNulls:typeof X.skipNulls==="boolean"?X.skipNulls:S0.skipNulls,sort:typeof X.sort==="function"?X.sort:null,strictNullHandling:typeof X.strictNullHandling==="boolean"?X.strictNullHandling:S0.strictNullHandling}}function g3(X,Y={}){let Q=X,Z=PT(Y),W,$;if(typeof Z.filter==="function")$=Z.filter,Q=$("",Q);else if(u0(Z.filter))$=Z.filter,W=$;let J=[];if(typeof Q!=="object"||Q===null)return"";let G=Yz[Z.arrayFormat],K=G==="comma"&&Z.commaRoundTrip;if(!W)W=Object.keys(Q);if(Z.sort)W.sort(Z.sort);let B=new WeakMap;for(let z=0;z<W.length;++z){let F=W[z];if(Z.skipNulls&&Q[F]===null)continue;Qz(J,Zz(Q[F],F,G,K,Z.allowEmptyArrays,Z.strictNullHandling,Z.skipNulls,Z.encodeDotInKeys,Z.encode?Z.encoder:null,Z.filter,Z.sort,Z.allowDots,Z.serializeDate,Z.format,Z.formatter,Z.encodeValuesOnly,Z.charset,B))}let H=J.join(Z.delimiter),V=Z.addQueryPrefix===!0?"?":"";if(Z.charsetSentinel)if(Z.charset==="iso-8859-1")V+="utf8=%26%2310003%3B&";else V+="utf8=%E2%9C%93&";return H.length>0?V+H:""}function Jz(X){let Y=0;for(let W of X)Y+=W.length;let Q=new Uint8Array(Y),Z=0;for(let W of X)Q.set(W,Z),Z+=W.length;return Q}var Wz;function HX(X){let Y;return(Wz??(Y=new globalThis.TextEncoder,Wz=Y.encode.bind(Y)))(X)}var $z;function u3(X){let Y;return($z??(Y=new globalThis.TextDecoder,$z=Y.decode.bind(Y)))(X)}var Z1,W1;class VX{constructor(){Z1.set(this,void 0),W1.set(this,void 0),d(this,Z1,new Uint8Array,"f"),d(this,W1,null,"f")}decode(X){if(X==null)return[];let Y=X instanceof ArrayBuffer?new Uint8Array(X):typeof X==="string"?HX(X):X;d(this,Z1,Jz([j(this,Z1,"f"),Y]),"f");let Q=[],Z;while((Z=NT(j(this,Z1,"f"),j(this,W1,"f")))!=null){if(Z.carriage&&j(this,W1,"f")==null){d(this,W1,Z.index,"f");continue}if(j(this,W1,"f")!=null&&(Z.index!==j(this,W1,"f")+1||Z.carriage)){Q.push(u3(j(this,Z1,"f").subarray(0,j(this,W1,"f")-1))),d(this,Z1,j(this,Z1,"f").subarray(j(this,W1,"f")),"f"),d(this,W1,null,"f");continue}let W=j(this,W1,"f")!==null?Z.preceding-1:Z.preceding,$=u3(j(this,Z1,"f").subarray(0,W));Q.push($),d(this,Z1,j(this,Z1,"f").subarray(Z.index),"f"),d(this,W1,null,"f")}return Q}flush(){if(!j(this,Z1,"f").length)return[];return this.decode(`
|
|
336
|
-
`)}}Z1=new WeakMap,W1=new WeakMap;VX.NEWLINE_CHARS=new Set([`
|
|
337
|
-
`,"\r"]);VX.NEWLINE_REGEXP=/\r\n|[\n\r]/g;function NT(X,Y){for(let W=Y??0;W<X.length;W++){if(X[W]===10)return{preceding:W,index:W+1,carriage:!1};if(X[W]===13)return{preceding:W,index:W+1,carriage:!0}}return null}function Gz(X){for(let Z=0;Z<X.length-1;Z++){if(X[Z]===10&&X[Z+1]===10)return Z+2;if(X[Z]===13&&X[Z+1]===13)return Z+2;if(X[Z]===13&&X[Z+1]===10&&Z+3<X.length&&X[Z+2]===13&&X[Z+3]===10)return Z+4}return-1}var l4={off:0,error:200,warn:300,info:400,debug:500},m3=(X,Y,Q)=>{if(!X)return;if(mV(l4,X))return X;E0(Q).warn(`${Y} was set to ${JSON.stringify(X)}, expected one of ${JSON.stringify(Object.keys(l4))}`);return};function n9(){}function p4(X,Y,Q){if(!Y||l4[X]>l4[Q])return n9;else return Y[X].bind(Y)}var AT={error:n9,warn:n9,info:n9,debug:n9},Kz=new WeakMap;function E0(X){let Y=X.logger,Q=X.logLevel??"off";if(!Y)return AT;let Z=Kz.get(Y);if(Z&&Z[0]===Q)return Z[1];let W={error:p4("error",Y,Q),warn:p4("warn",Y,Q),info:p4("info",Y,Q),debug:p4("debug",Y,Q)};return Kz.set(Y,[Q,W]),W}var o1=(X)=>{if(X.options)X.options={...X.options},delete X.options.headers;if(X.headers)X.headers=Object.fromEntries((X.headers instanceof Headers?[...X.headers]:Object.entries(X.headers)).map(([Y,Q])=>[Y,Y.toLowerCase()==="authorization"||Y.toLowerCase()==="cookie"||Y.toLowerCase()==="set-cookie"?"***":Q]));if("retryOfRequestLogID"in X){if(X.retryOfRequestLogID)X.retryOf=X.retryOfRequestLogID;delete X.retryOfRequestLogID}return X};var r9;class $1{constructor(X,Y,Q){this.iterator=X,r9.set(this,void 0),this.controller=Y,d(this,r9,Q,"f")}static fromSSEResponse(X,Y,Q){let Z=!1,W=Q?E0(Q):console;async function*$(){if(Z)throw new f("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");Z=!0;let J=!1;try{for await(let G of jT(X,Y)){if(J)continue;if(G.data.startsWith("[DONE]")){J=!0;continue}if(G.event===null||!G.event.startsWith("thread.")){let K;try{K=JSON.parse(G.data)}catch(B){throw W.error("Could not parse message into JSON:",G.data),W.error("From chunk:",G.raw),B}if(K&&K.error)throw new M0(void 0,K.error,void 0,X.headers);yield K}else{let K;try{K=JSON.parse(G.data)}catch(B){throw console.error("Could not parse message into JSON:",G.data),console.error("From chunk:",G.raw),B}if(G.event=="error")throw new M0(void 0,K.error,K.message,void 0);yield{event:G.event,data:K}}}J=!0}catch(G){if(k9(G))return;throw G}finally{if(!J)Y.abort()}}return new $1($,Y,Q)}static fromReadableStream(X,Y,Q){let Z=!1;async function*W(){let J=new VX,G=y3(X);for await(let K of G)for(let B of J.decode(K))yield B;for(let K of J.flush())yield K}async function*$(){if(Z)throw new f("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");Z=!0;let J=!1;try{for await(let G of W()){if(J)continue;if(G)yield JSON.parse(G)}J=!0}catch(G){if(k9(G))return;throw G}finally{if(!J)Y.abort()}}return new $1($,Y,Q)}[(r9=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let X=[],Y=[],Q=this.iterator(),Z=(W)=>{return{next:()=>{if(W.length===0){let $=Q.next();X.push($),Y.push($)}return W.shift()}}};return[new $1(()=>Z(X),this.controller,j(this,r9,"f")),new $1(()=>Z(Y),this.controller,j(this,r9,"f"))]}toReadableStream(){let X=this,Y;return C3({async start(){Y=X[Symbol.asyncIterator]()},async pull(Q){try{let{value:Z,done:W}=await Y.next();if(W)return Q.close();let $=HX(JSON.stringify(Z)+`
|
|
338
|
-
`);Q.enqueue($)}catch(Z){Q.error(Z)}},async cancel(){await Y.return?.()}})}}async function*jT(X,Y){if(!X.body){if(Y.abort(),typeof globalThis.navigator<"u"&&globalThis.navigator.product==="ReactNative")throw new f("The default react-native fetch implementation does not support streaming. Please use expo/fetch: https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api");throw new f("Attempted to iterate over a response with no body")}let Q=new Bz,Z=new VX,W=y3(X.body);for await(let $ of ET(W))for(let J of Z.decode($)){let G=Q.decode(J);if(G)yield G}for(let $ of Z.flush()){let J=Q.decode($);if(J)yield J}}async function*ET(X){let Y=new Uint8Array;for await(let Q of X){if(Q==null)continue;let Z=Q instanceof ArrayBuffer?new Uint8Array(Q):typeof Q==="string"?HX(Q):Q,W=new Uint8Array(Y.length+Z.length);W.set(Y),W.set(Z,Y.length),Y=W;let $;while(($=Gz(Y))!==-1)yield Y.slice(0,$),Y=Y.slice($)}if(Y.length>0)yield Y}class Bz{constructor(){this.event=null,this.data=[],this.chunks=[]}decode(X){if(X.endsWith("\r"))X=X.substring(0,X.length-1);if(!X){if(!this.event&&!this.data.length)return null;let W={event:this.event,data:this.data.join(`
|
|
339
|
-
`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],W}if(this.chunks.push(X),X.startsWith(":"))return null;let[Y,Q,Z]=RT(X,":");if(Z.startsWith(" "))Z=Z.substring(1);if(Y==="event")this.event=Z;else if(Y==="data")this.data.push(Z);return null}}function RT(X,Y){let Q=X.indexOf(Y);if(Q!==-1)return[X.substring(0,Q),Y,X.substring(Q+Y.length)];return[X,"",""]}async function i4(X,Y){let{response:Q,requestLogID:Z,retryOfRequestLogID:W,startTime:$}=Y,J=await(async()=>{if(Y.options.stream){if(E0(X).debug("response",Q.status,Q.url,Q.headers,Q.body),Y.options.__streamClass)return Y.options.__streamClass.fromSSEResponse(Q,Y.controller,X);return $1.fromSSEResponse(Q,Y.controller,X)}if(Q.status===204)return null;if(Y.options.__binaryResponse)return Q;let K=Q.headers.get("content-type")?.split(";")[0]?.trim();if(K?.includes("application/json")||K?.endsWith("+json")){if(Q.headers.get("content-length")==="0")return;let z=await Q.json();return d3(z,Q)}return await Q.text()})();return E0(X).debug(`[${Z}] response parsed`,o1({retryOfRequestLogID:W,url:Q.url,status:Q.status,body:J,durationMs:Date.now()-$})),J}function d3(X,Y){if(!X||typeof X!=="object"||Array.isArray(X))return X;return Object.defineProperty(X,"_request_id",{value:Y.headers.get("x-request-id"),enumerable:!1})}var a9;class W8 extends Promise{constructor(X,Y,Q=i4){super((Z)=>{Z(null)});this.responsePromise=Y,this.parseResponse=Q,a9.set(this,void 0),d(this,a9,X,"f")}_thenUnwrap(X){return new W8(j(this,a9,"f"),this.responsePromise,async(Y,Q)=>d3(X(await this.parseResponse(Y,Q),Q),Q.response))}asResponse(){return this.responsePromise.then((X)=>X.response)}async withResponse(){let[X,Y]=await Promise.all([this.parse(),this.asResponse()]);return{data:X,response:Y,request_id:Y.headers.get("x-request-id")}}parse(){if(!this.parsedPromise)this.parsedPromise=this.responsePromise.then((X)=>this.parseResponse(j(this,a9,"f"),X));return this.parsedPromise}then(X,Y){return this.parse().then(X,Y)}catch(X){return this.parse().catch(X)}finally(X){return this.parse().finally(X)}}a9=new WeakMap;var n4;class r4{constructor(X,Y,Q,Z){n4.set(this,void 0),d(this,n4,X,"f"),this.options=Z,this.response=Y,this.body=Q}hasNextPage(){if(!this.getPaginatedItems().length)return!1;return this.nextPageRequestOptions()!=null}async getNextPage(){let X=this.nextPageRequestOptions();if(!X)throw new f("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await j(this,n4,"f").requestAPIList(this.constructor,X)}async*iterPages(){let X=this;yield X;while(X.hasNextPage())X=await X.getNextPage(),yield X}async*[(n4=new WeakMap,Symbol.asyncIterator)](){for await(let X of this.iterPages())for(let Y of X.getPaginatedItems())yield Y}}class a4 extends W8{constructor(X,Y,Q){super(X,Y,async(Z,W)=>new Q(Z,W.response,await i4(Z,W),W.options))}async*[Symbol.asyncIterator](){let X=await this;for await(let Y of X)yield Y}}class e1 extends r4{constructor(X,Y,Q,Z){super(X,Y,Q,Z);this.data=Q.data||[],this.object=Q.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}}class s extends r4{constructor(X,Y,Q,Z){super(X,Y,Q,Z);this.data=Q.data||[],this.has_more=Q.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){let X=this.getPaginatedItems(),Y=X[X.length-1]?.id;if(!Y)return null;return{...this.options,query:{...b3(this.options.query),after:Y}}}}class R6 extends r4{constructor(X,Y,Q,Z){super(X,Y,Q,Z);this.data=Q.data||[],this.has_more=Q.has_more||!1,this.last_id=Q.last_id||""}getPaginatedItems(){return this.data??[]}hasNextPage(){if(this.has_more===!1)return!1;return super.hasNextPage()}nextPageRequestOptions(){let X=this.last_id;if(!X)return null;return{...this.options,query:{...b3(this.options.query),after:X}}}}var l3=()=>{if(typeof File>"u"){let{process:X}=globalThis,Y=typeof X?.versions?.node==="string"&&parseInt(X.versions.node.split("."))<20;throw Error("`File` is not defined as a global, which is required for file uploads."+(Y?" Update to Node 20 LTS or newer, or set `globalThis.File` to `import('node:buffer').File`.":""))}};function zX(X,Y,Q){return l3(),new File(X,Y??"unknown_file",Q)}function s9(X){return(typeof X==="object"&&X!==null&&(("name"in X)&&X.name&&String(X.name)||("url"in X)&&X.url&&String(X.url)||("filename"in X)&&X.filename&&String(X.filename)||("path"in X)&&X.path&&String(X.path))||"").split(/[\\/]/).pop()||void 0}var s4=(X)=>X!=null&&typeof X==="object"&&typeof X[Symbol.asyncIterator]==="function",X6=async(X,Y)=>{if(!c3(X.body))return X;return{...X,body:await Vz(X.body,Y)}},j1=async(X,Y)=>{return{...X,body:await Vz(X.body,Y)}},Hz=new WeakMap;function MT(X){let Y=typeof X==="function"?X:X.fetch,Q=Hz.get(Y);if(Q)return Q;let Z=(async()=>{try{let W="Response"in Y?Y.Response:(await Y("data:,")).constructor,$=new FormData;if($.toString()===await new W($).text())return!1;return!0}catch{return!0}})();return Hz.set(Y,Z),Z}var Vz=async(X,Y)=>{if(!await MT(Y))throw TypeError("The provided fetch function does not support file uploads with the current global FormData class.");let Q=new FormData;return await Promise.all(Object.entries(X||{}).map(([Z,W])=>p3(Q,Z,W))),Q},zz=(X)=>X instanceof Blob&&("name"in X),xT=(X)=>typeof X==="object"&&X!==null&&(X instanceof Response||s4(X)||zz(X)),c3=(X)=>{if(xT(X))return!0;if(Array.isArray(X))return X.some(c3);if(X&&typeof X==="object"){for(let Y in X)if(c3(X[Y]))return!0}return!1},p3=async(X,Y,Q)=>{if(Q===void 0)return;if(Q==null)throw TypeError(`Received null for "${Y}"; to pass null in FormData, you must use the string 'null'`);if(typeof Q==="string"||typeof Q==="number"||typeof Q==="boolean")X.append(Y,String(Q));else if(Q instanceof Response)X.append(Y,zX([await Q.blob()],s9(Q)));else if(s4(Q))X.append(Y,zX([await new Response(u4(Q)).blob()],s9(Q)));else if(zz(Q))X.append(Y,Q,s9(Q));else if(Array.isArray(Q))await Promise.all(Q.map((Z)=>p3(X,Y+"[]",Z)));else if(typeof Q==="object")await Promise.all(Object.entries(Q).map(([Z,W])=>p3(X,`${Y}[${Z}]`,W)));else throw TypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${Q} instead`)};var Fz=(X)=>X!=null&&typeof X==="object"&&typeof X.size==="number"&&typeof X.type==="string"&&typeof X.text==="function"&&typeof X.slice==="function"&&typeof X.arrayBuffer==="function",IT=(X)=>X!=null&&typeof X==="object"&&typeof X.name==="string"&&typeof X.lastModified==="number"&&Fz(X),ST=(X)=>X!=null&&typeof X==="object"&&typeof X.url==="string"&&typeof X.blob==="function";async function t9(X,Y,Q){if(l3(),X=await X,IT(X)){if(X instanceof File)return X;return zX([await X.arrayBuffer()],X.name)}if(ST(X)){let W=await X.blob();return Y||(Y=new URL(X.url).pathname.split(/[\\/]/).pop()),zX(await i3(W),Y,Q)}let Z=await i3(X);if(Y||(Y=s9(X)),!Q?.type){let W=Z.find(($)=>typeof $==="object"&&("type"in $)&&$.type);if(typeof W==="string")Q={...Q,type:W}}return zX(Z,Y,Q)}async function i3(X){let Y=[];if(typeof X==="string"||ArrayBuffer.isView(X)||X instanceof ArrayBuffer)Y.push(X);else if(Fz(X))Y.push(X instanceof Blob?X:await X.arrayBuffer());else if(s4(X))for await(let Q of X)Y.push(...await i3(Q));else{let Q=X?.constructor?.name;throw Error(`Unexpected data type: ${typeof X}${Q?`; constructor: ${Q}`:""}${bT(X)}`)}return Y}function bT(X){if(typeof X!=="object"||X===null)return"";return`; props: [${Object.getOwnPropertyNames(X).map((Q)=>`"${Q}"`).join(", ")}]`}class M{constructor(X){this._client=X}}function Lz(X){return X.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g,encodeURIComponent)}var Uz=Object.freeze(Object.create(null)),yT=(X=Lz)=>function(Q,...Z){if(Q.length===1)return Q[0];let W=!1,$=[],J=Q.reduce((H,V,z)=>{if(/[?#]/.test(V))W=!0;let F=Z[z],L=(W?encodeURIComponent:X)(""+F);if(z!==Z.length&&(F==null||typeof F==="object"&&F.toString===Object.getPrototypeOf(Object.getPrototypeOf(F.hasOwnProperty??Uz)??Uz)?.toString))L=F+"",$.push({start:H.length+V.length,length:L.length,error:`Value of type ${Object.prototype.toString.call(F).slice(8,-1)} is not a valid path parameter`});return H+V+(z===Z.length?"":L)},""),G=J.split(/[?#]/,1)[0],K=/(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi,B;while((B=K.exec(G))!==null)$.push({start:B.index,length:B[0].length,error:`Value "${B[0]}" can't be safely passed as a path parameter`});if($.sort((H,V)=>H.start-V.start),$.length>0){let H=0,V=$.reduce((z,F)=>{let L=" ".repeat(F.start-H),q="^".repeat(F.length);return H=F.start+F.length,z+L+q},"");throw new f(`Path parameters result in path with invalid segments:
|
|
340
|
-
${$.map((z)=>z.error).join(`
|
|
341
|
-
`)}
|
|
342
|
-
${J}
|
|
343
|
-
${V}`)}return J},T=yT(Lz);class FX extends M{list(X,Y={},Q){return this._client.getAPIList(T`/chat/completions/${X}/messages`,s,{query:Y,...Q})}}function o9(X){return X!==void 0&&"function"in X&&X.function!==void 0}function qz(X,Y){let Q={...X};return Object.defineProperties(Q,{$brand:{value:"auto-parseable-response-format",enumerable:!1},$parseRaw:{value:Y,enumerable:!1}}),Q}function e9(X){return X?.$brand==="auto-parseable-response-format"}function $8(X){return X?.$brand==="auto-parseable-tool"}function Oz(X,Y){if(!Y||!n3(Y))return{...X,choices:X.choices.map((Q)=>{return Pz(Q.message.tool_calls),{...Q,message:{...Q.message,parsed:null,...Q.message.tool_calls?{tool_calls:Q.message.tool_calls}:void 0}}})};return X7(X,Y)}function X7(X,Y){let Q=X.choices.map((Z)=>{if(Z.finish_reason==="length")throw new p9;if(Z.finish_reason==="content_filter")throw new l9;return Pz(Z.message.tool_calls),{...Z,message:{...Z.message,...Z.message.tool_calls?{tool_calls:Z.message.tool_calls?.map((W)=>fT(Y,W))??void 0}:void 0,parsed:Z.message.content&&!Z.message.refusal?vT(Y,Z.message.content):null}}});return{...X,choices:Q}}function vT(X,Y){if(X.response_format?.type!=="json_schema")return null;if(X.response_format?.type==="json_schema"){if("$parseRaw"in X.response_format)return X.response_format.$parseRaw(Y);return JSON.parse(Y)}return null}function fT(X,Y){let Q=X.tools?.find((Z)=>o9(Z)&&Z.function?.name===Y.function.name);return{...Y,function:{...Y.function,parsed_arguments:$8(Q)?Q.$parseRaw(Y.function.arguments):Q?.function.strict?JSON.parse(Y.function.arguments):null}}}function Dz(X,Y){if(!X||!("tools"in X)||!X.tools)return!1;let Q=X.tools?.find((Z)=>o9(Z)&&Z.function?.name===Y.function.name);return o9(Q)&&($8(Q)||Q?.function.strict||!1)}function n3(X){if(e9(X.response_format))return!0;return X.tools?.some((Y)=>$8(Y)||Y.type==="function"&&Y.function.strict===!0)??!1}function Pz(X){for(let Y of X||[])if(Y.type!=="function")throw new f(`Currently only \`function\` tool calls are supported; Received \`${Y.type}\``)}function wz(X){for(let Y of X??[]){if(Y.type!=="function")throw new f(`Currently only \`function\` tool types support auto-parsing; Received \`${Y.type}\``);if(Y.function.strict!==!0)throw new f(`The \`${Y.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}var UX=(X)=>{return X?.role==="assistant"},r3=(X)=>{return X?.role==="tool"};var a3,t4,o4,Y7,Q7,e4,Z7,Y6,W7,XQ,YQ,LX,Nz;class J8{constructor(){a3.add(this),this.controller=new AbortController,t4.set(this,void 0),o4.set(this,()=>{}),Y7.set(this,()=>{}),Q7.set(this,void 0),e4.set(this,()=>{}),Z7.set(this,()=>{}),Y6.set(this,{}),W7.set(this,!1),XQ.set(this,!1),YQ.set(this,!1),LX.set(this,!1),d(this,t4,new Promise((X,Y)=>{d(this,o4,X,"f"),d(this,Y7,Y,"f")}),"f"),d(this,Q7,new Promise((X,Y)=>{d(this,e4,X,"f"),d(this,Z7,Y,"f")}),"f"),j(this,t4,"f").catch(()=>{}),j(this,Q7,"f").catch(()=>{})}_run(X){setTimeout(()=>{X().then(()=>{this._emitFinal(),this._emit("end")},j(this,a3,"m",Nz).bind(this))},0)}_connected(){if(this.ended)return;j(this,o4,"f").call(this),this._emit("connect")}get ended(){return j(this,W7,"f")}get errored(){return j(this,XQ,"f")}get aborted(){return j(this,YQ,"f")}abort(){this.controller.abort()}on(X,Y){return(j(this,Y6,"f")[X]||(j(this,Y6,"f")[X]=[])).push({listener:Y}),this}off(X,Y){let Q=j(this,Y6,"f")[X];if(!Q)return this;let Z=Q.findIndex((W)=>W.listener===Y);if(Z>=0)Q.splice(Z,1);return this}once(X,Y){return(j(this,Y6,"f")[X]||(j(this,Y6,"f")[X]=[])).push({listener:Y,once:!0}),this}emitted(X){return new Promise((Y,Q)=>{if(d(this,LX,!0,"f"),X!=="error")this.once("error",Q);this.once(X,Y)})}async done(){d(this,LX,!0,"f"),await j(this,Q7,"f")}_emit(X,...Y){if(j(this,W7,"f"))return;if(X==="end")d(this,W7,!0,"f"),j(this,e4,"f").call(this);let Q=j(this,Y6,"f")[X];if(Q)j(this,Y6,"f")[X]=Q.filter((Z)=>!Z.once),Q.forEach(({listener:Z})=>Z(...Y));if(X==="abort"){let Z=Y[0];if(!j(this,LX,"f")&&!Q?.length)Promise.reject(Z);j(this,Y7,"f").call(this,Z),j(this,Z7,"f").call(this,Z),this._emit("end");return}if(X==="error"){let Z=Y[0];if(!j(this,LX,"f")&&!Q?.length)Promise.reject(Z);j(this,Y7,"f").call(this,Z),j(this,Z7,"f").call(this,Z),this._emit("end")}}_emitFinal(){}}t4=new WeakMap,o4=new WeakMap,Y7=new WeakMap,Q7=new WeakMap,e4=new WeakMap,Z7=new WeakMap,Y6=new WeakMap,W7=new WeakMap,XQ=new WeakMap,YQ=new WeakMap,LX=new WeakMap,a3=new WeakSet,Nz=function(Y){if(d(this,XQ,!0,"f"),Y instanceof Error&&Y.name==="AbortError")Y=new j0;if(Y instanceof j0)return d(this,YQ,!0,"f"),this._emit("abort",Y);if(Y instanceof f)return this._emit("error",Y);if(Y instanceof Error){let Q=new f(Y.message);return Q.cause=Y,this._emit("error",Q)}return this._emit("error",new f(String(Y)))};function Az(X){return typeof X.parse==="function"}var i0,s3,QQ,t3,o3,e3,jz,Ez,hT=10;class $7 extends J8{constructor(){super(...arguments);i0.add(this),this._chatCompletions=[],this.messages=[]}_addChatCompletion(X){this._chatCompletions.push(X),this._emit("chatCompletion",X);let Y=X.choices[0]?.message;if(Y)this._addMessage(Y);return X}_addMessage(X,Y=!0){if(!("content"in X))X.content=null;if(this.messages.push(X),Y){if(this._emit("message",X),r3(X)&&X.content)this._emit("functionToolCallResult",X.content);else if(UX(X)&&X.tool_calls){for(let Q of X.tool_calls)if(Q.type==="function")this._emit("functionToolCall",Q.function)}}}async finalChatCompletion(){await this.done();let X=this._chatCompletions[this._chatCompletions.length-1];if(!X)throw new f("stream ended without producing a ChatCompletion");return X}async finalContent(){return await this.done(),j(this,i0,"m",s3).call(this)}async finalMessage(){return await this.done(),j(this,i0,"m",QQ).call(this)}async finalFunctionToolCall(){return await this.done(),j(this,i0,"m",t3).call(this)}async finalFunctionToolCallResult(){return await this.done(),j(this,i0,"m",o3).call(this)}async totalUsage(){return await this.done(),j(this,i0,"m",e3).call(this)}allChatCompletions(){return[...this._chatCompletions]}_emitFinal(){let X=this._chatCompletions[this._chatCompletions.length-1];if(X)this._emit("finalChatCompletion",X);let Y=j(this,i0,"m",QQ).call(this);if(Y)this._emit("finalMessage",Y);let Q=j(this,i0,"m",s3).call(this);if(Q)this._emit("finalContent",Q);let Z=j(this,i0,"m",t3).call(this);if(Z)this._emit("finalFunctionToolCall",Z);let W=j(this,i0,"m",o3).call(this);if(W!=null)this._emit("finalFunctionToolCallResult",W);if(this._chatCompletions.some(($)=>$.usage))this._emit("totalUsage",j(this,i0,"m",e3).call(this))}async _createChatCompletion(X,Y,Q){let Z=Q?.signal;if(Z){if(Z.aborted)this.controller.abort();Z.addEventListener("abort",()=>this.controller.abort())}j(this,i0,"m",jz).call(this,Y);let W=await X.chat.completions.create({...Y,stream:!1},{...Q,signal:this.controller.signal});return this._connected(),this._addChatCompletion(X7(W,Y))}async _runChatCompletion(X,Y,Q){for(let Z of Y.messages)this._addMessage(Z,!1);return await this._createChatCompletion(X,Y,Q)}async _runTools(X,Y,Q){let{tool_choice:W="auto",stream:$,...J}=Y,G=typeof W!=="string"&&W.type==="function"&&W?.function?.name,{maxChatCompletions:K=hT}=Q||{},B=Y.tools.map((z)=>{if($8(z)){if(!z.$callback)throw new f("Tool given to `.runTools()` that does not have an associated function");return{type:"function",function:{function:z.$callback,name:z.function.name,description:z.function.description||"",parameters:z.function.parameters,parse:z.$parseRaw,strict:!0}}}return z}),H={};for(let z of B)if(z.type==="function")H[z.function.name||z.function.function.name]=z.function;let V="tools"in Y?B.map((z)=>z.type==="function"?{type:"function",function:{name:z.function.name||z.function.function.name,parameters:z.function.parameters,description:z.function.description,strict:z.function.strict}}:z):void 0;for(let z of Y.messages)this._addMessage(z,!1);for(let z=0;z<K;++z){let L=(await this._createChatCompletion(X,{...J,tool_choice:W,tools:V,messages:[...this.messages]},Q)).choices[0]?.message;if(!L)throw new f("missing message in ChatCompletion response");if(!L.tool_calls?.length)return;for(let q of L.tool_calls){if(q.type!=="function")continue;let w=q.id,{name:O,arguments:R}=q.function,P=H[O];if(!P){let S=`Invalid tool_call: ${JSON.stringify(O)}. Available options are: ${Object.keys(H).map((x)=>JSON.stringify(x)).join(", ")}. Please try again`;this._addMessage({role:"tool",tool_call_id:w,content:S});continue}else if(G&&G!==O){let S=`Invalid tool_call: ${JSON.stringify(O)}. ${JSON.stringify(G)} requested. Please try again`;this._addMessage({role:"tool",tool_call_id:w,content:S});continue}let D;try{D=Az(P)?await P.parse(R):R}catch(S){let x=S instanceof Error?S.message:String(S);this._addMessage({role:"tool",tool_call_id:w,content:x});continue}let E=await P.function(D,this),I=j(this,i0,"m",Ez).call(this,E);if(this._addMessage({role:"tool",tool_call_id:w,content:I}),G)return}}return}}i0=new WeakSet,s3=function(){return j(this,i0,"m",QQ).call(this).content??null},QQ=function(){let Y=this.messages.length;while(Y-- >0){let Q=this.messages[Y];if(UX(Q))return{...Q,content:Q.content??null,refusal:Q.refusal??null}}throw new f("stream ended without producing a ChatCompletionMessage with role=assistant")},t3=function(){for(let Y=this.messages.length-1;Y>=0;Y--){let Q=this.messages[Y];if(UX(Q)&&Q?.tool_calls?.length)return Q.tool_calls.filter((Z)=>Z.type==="function").at(-1)?.function}return},o3=function(){for(let Y=this.messages.length-1;Y>=0;Y--){let Q=this.messages[Y];if(r3(Q)&&Q.content!=null&&typeof Q.content==="string"&&this.messages.some((Z)=>Z.role==="assistant"&&Z.tool_calls?.some((W)=>W.type==="function"&&W.id===Q.tool_call_id)))return Q.content}return},e3=function(){let Y={completion_tokens:0,prompt_tokens:0,total_tokens:0};for(let{usage:Q}of this._chatCompletions)if(Q)Y.completion_tokens+=Q.completion_tokens,Y.prompt_tokens+=Q.prompt_tokens,Y.total_tokens+=Q.total_tokens;return Y},jz=function(Y){if(Y.n!=null&&Y.n>1)throw new f("ChatCompletion convenience helpers only support n=1 at this time. To use n>1, please use chat.completions.create() directly.")},Ez=function(Y){return typeof Y==="string"?Y:Y===void 0?"undefined":JSON.stringify(Y)};class J7 extends $7{static runTools(X,Y,Q){let Z=new J7,W={...Q,headers:{...Q?.headers,"X-Stainless-Helper-Method":"runTools"}};return Z._run(()=>Z._runTools(X,Y,W)),Z}_addMessage(X,Y=!0){if(super._addMessage(X,Y),UX(X)&&X.content)this._emit("content",X.content)}}var C0={STR:1,NUM:2,ARR:4,OBJ:8,NULL:16,BOOL:32,NAN:64,INFINITY:128,MINUS_INFINITY:256,INF:384,SPECIAL:496,ATOM:499,COLLECTION:12,ALL:511};class Rz extends Error{}class Tz extends Error{}function gT(X,Y=C0.ALL){if(typeof X!=="string")throw TypeError(`expecting str, got ${typeof X}`);if(!X.trim())throw Error(`${X} is empty`);return uT(X.trim(),Y)}var uT=(X,Y)=>{let Q=X.length,Z=0,W=(z)=>{throw new Rz(`${z} at position ${Z}`)},$=(z)=>{throw new Tz(`${z} at position ${Z}`)},J=()=>{if(V(),Z>=Q)W("Unexpected end of input");if(X[Z]==='"')return G();if(X[Z]==="{")return K();if(X[Z]==="[")return B();if(X.substring(Z,Z+4)==="null"||C0.NULL&Y&&Q-Z<4&&"null".startsWith(X.substring(Z)))return Z+=4,null;if(X.substring(Z,Z+4)==="true"||C0.BOOL&Y&&Q-Z<4&&"true".startsWith(X.substring(Z)))return Z+=4,!0;if(X.substring(Z,Z+5)==="false"||C0.BOOL&Y&&Q-Z<5&&"false".startsWith(X.substring(Z)))return Z+=5,!1;if(X.substring(Z,Z+8)==="Infinity"||C0.INFINITY&Y&&Q-Z<8&&"Infinity".startsWith(X.substring(Z)))return Z+=8,1/0;if(X.substring(Z,Z+9)==="-Infinity"||C0.MINUS_INFINITY&Y&&1<Q-Z&&Q-Z<9&&"-Infinity".startsWith(X.substring(Z)))return Z+=9,-1/0;if(X.substring(Z,Z+3)==="NaN"||C0.NAN&Y&&Q-Z<3&&"NaN".startsWith(X.substring(Z)))return Z+=3,NaN;return H()},G=()=>{let z=Z,F=!1;Z++;while(Z<Q&&(X[Z]!=='"'||F&&X[Z-1]==="\\"))F=X[Z]==="\\"?!F:!1,Z++;if(X.charAt(Z)=='"')try{return JSON.parse(X.substring(z,++Z-Number(F)))}catch(L){$(String(L))}else if(C0.STR&Y)try{return JSON.parse(X.substring(z,Z-Number(F))+'"')}catch(L){return JSON.parse(X.substring(z,X.lastIndexOf("\\"))+'"')}W("Unterminated string literal")},K=()=>{Z++,V();let z={};try{while(X[Z]!=="}"){if(V(),Z>=Q&&C0.OBJ&Y)return z;let F=G();V(),Z++;try{let L=J();Object.defineProperty(z,F,{value:L,writable:!0,enumerable:!0,configurable:!0})}catch(L){if(C0.OBJ&Y)return z;else throw L}if(V(),X[Z]===",")Z++}}catch(F){if(C0.OBJ&Y)return z;else W("Expected '}' at end of object")}return Z++,z},B=()=>{Z++;let z=[];try{while(X[Z]!=="]")if(z.push(J()),V(),X[Z]===",")Z++}catch(F){if(C0.ARR&Y)return z;W("Expected ']' at end of array")}return Z++,z},H=()=>{if(Z===0){if(X==="-"&&C0.NUM&Y)W("Not sure what '-' is");try{return JSON.parse(X)}catch(F){if(C0.NUM&Y)try{if(X[X.length-1]===".")return JSON.parse(X.substring(0,X.lastIndexOf(".")));return JSON.parse(X.substring(0,X.lastIndexOf("e")))}catch(L){}$(String(F))}}let z=Z;if(X[Z]==="-")Z++;while(X[Z]&&!",]}".includes(X[Z]))Z++;if(Z==Q&&!(C0.NUM&Y))W("Unterminated number literal");try{return JSON.parse(X.substring(z,Z))}catch(F){if(X.substring(z,Z)==="-"&&C0.NUM&Y)W("Not sure what '-' is");try{return JSON.parse(X.substring(z,X.lastIndexOf("e")))}catch(L){$(String(L))}}},V=()=>{while(Z<Q&&`
|
|
344
|
-
\r `.includes(X[Z]))Z++};return J()},XW=(X)=>gT(X,C0.ALL^C0.NUM);var b0,Q6,qX,T6,YW,ZQ,QW,ZW,WW,WQ,$W,Mz;class M6 extends $7{constructor(X){super();b0.add(this),Q6.set(this,void 0),qX.set(this,void 0),T6.set(this,void 0),d(this,Q6,X,"f"),d(this,qX,[],"f")}get currentChatCompletionSnapshot(){return j(this,T6,"f")}static fromReadableStream(X){let Y=new M6(null);return Y._run(()=>Y._fromReadableStream(X)),Y}static createChatCompletion(X,Y,Q){let Z=new M6(Y);return Z._run(()=>Z._runChatCompletion(X,{...Y,stream:!0},{...Q,headers:{...Q?.headers,"X-Stainless-Helper-Method":"stream"}})),Z}async _createChatCompletion(X,Y,Q){super._createChatCompletion;let Z=Q?.signal;if(Z){if(Z.aborted)this.controller.abort();Z.addEventListener("abort",()=>this.controller.abort())}j(this,b0,"m",YW).call(this);let W=await X.chat.completions.create({...Y,stream:!0},{...Q,signal:this.controller.signal});this._connected();for await(let $ of W)j(this,b0,"m",QW).call(this,$);if(W.controller.signal?.aborted)throw new j0;return this._addChatCompletion(j(this,b0,"m",WQ).call(this))}async _fromReadableStream(X,Y){let Q=Y?.signal;if(Q){if(Q.aborted)this.controller.abort();Q.addEventListener("abort",()=>this.controller.abort())}j(this,b0,"m",YW).call(this),this._connected();let Z=$1.fromReadableStream(X,this.controller),W;for await(let $ of Z){if(W&&W!==$.id)this._addChatCompletion(j(this,b0,"m",WQ).call(this));j(this,b0,"m",QW).call(this,$),W=$.id}if(Z.controller.signal?.aborted)throw new j0;return this._addChatCompletion(j(this,b0,"m",WQ).call(this))}[(Q6=new WeakMap,qX=new WeakMap,T6=new WeakMap,b0=new WeakSet,YW=function(){if(this.ended)return;d(this,T6,void 0,"f")},ZQ=function(Y){let Q=j(this,qX,"f")[Y.index];if(Q)return Q;return Q={content_done:!1,refusal_done:!1,logprobs_content_done:!1,logprobs_refusal_done:!1,done_tool_calls:new Set,current_tool_call_index:null},j(this,qX,"f")[Y.index]=Q,Q},QW=function(Y){if(this.ended)return;let Q=j(this,b0,"m",Mz).call(this,Y);this._emit("chunk",Y,Q);for(let Z of Y.choices){let W=Q.choices[Z.index];if(Z.delta.content!=null&&W.message?.role==="assistant"&&W.message?.content)this._emit("content",Z.delta.content,W.message.content),this._emit("content.delta",{delta:Z.delta.content,snapshot:W.message.content,parsed:W.message.parsed});if(Z.delta.refusal!=null&&W.message?.role==="assistant"&&W.message?.refusal)this._emit("refusal.delta",{delta:Z.delta.refusal,snapshot:W.message.refusal});if(Z.logprobs?.content!=null&&W.message?.role==="assistant")this._emit("logprobs.content.delta",{content:Z.logprobs?.content,snapshot:W.logprobs?.content??[]});if(Z.logprobs?.refusal!=null&&W.message?.role==="assistant")this._emit("logprobs.refusal.delta",{refusal:Z.logprobs?.refusal,snapshot:W.logprobs?.refusal??[]});let $=j(this,b0,"m",ZQ).call(this,W);if(W.finish_reason){if(j(this,b0,"m",WW).call(this,W),$.current_tool_call_index!=null)j(this,b0,"m",ZW).call(this,W,$.current_tool_call_index)}for(let J of Z.delta.tool_calls??[]){if($.current_tool_call_index!==J.index){if(j(this,b0,"m",WW).call(this,W),$.current_tool_call_index!=null)j(this,b0,"m",ZW).call(this,W,$.current_tool_call_index)}$.current_tool_call_index=J.index}for(let J of Z.delta.tool_calls??[]){let G=W.message.tool_calls?.[J.index];if(!G?.type)continue;if(G?.type==="function")this._emit("tool_calls.function.arguments.delta",{name:G.function?.name,index:J.index,arguments:G.function.arguments,parsed_arguments:G.function.parsed_arguments,arguments_delta:J.function?.arguments??""});else Iz(G?.type)}}},ZW=function(Y,Q){if(j(this,b0,"m",ZQ).call(this,Y).done_tool_calls.has(Q))return;let W=Y.message.tool_calls?.[Q];if(!W)throw Error("no tool call snapshot");if(!W.type)throw Error("tool call snapshot missing `type`");if(W.type==="function"){let $=j(this,Q6,"f")?.tools?.find((J)=>o9(J)&&J.function.name===W.function.name);this._emit("tool_calls.function.arguments.done",{name:W.function.name,index:Q,arguments:W.function.arguments,parsed_arguments:$8($)?$.$parseRaw(W.function.arguments):$?.function.strict?JSON.parse(W.function.arguments):null})}else Iz(W.type)},WW=function(Y){let Q=j(this,b0,"m",ZQ).call(this,Y);if(Y.message.content&&!Q.content_done){Q.content_done=!0;let Z=j(this,b0,"m",$W).call(this);this._emit("content.done",{content:Y.message.content,parsed:Z?Z.$parseRaw(Y.message.content):null})}if(Y.message.refusal&&!Q.refusal_done)Q.refusal_done=!0,this._emit("refusal.done",{refusal:Y.message.refusal});if(Y.logprobs?.content&&!Q.logprobs_content_done)Q.logprobs_content_done=!0,this._emit("logprobs.content.done",{content:Y.logprobs.content});if(Y.logprobs?.refusal&&!Q.logprobs_refusal_done)Q.logprobs_refusal_done=!0,this._emit("logprobs.refusal.done",{refusal:Y.logprobs.refusal})},WQ=function(){if(this.ended)throw new f("stream has ended, this shouldn't happen");let Y=j(this,T6,"f");if(!Y)throw new f("request ended without sending any chunks");return d(this,T6,void 0,"f"),d(this,qX,[],"f"),mT(Y,j(this,Q6,"f"))},$W=function(){let Y=j(this,Q6,"f")?.response_format;if(e9(Y))return Y;return null},Mz=function(Y){var Q,Z,W,$;let J=j(this,T6,"f"),{choices:G,...K}=Y;if(!J)J=d(this,T6,{...K,choices:[]},"f");else Object.assign(J,K);for(let{delta:B,finish_reason:H,index:V,logprobs:z=null,...F}of Y.choices){let L=J.choices[V];if(!L)L=J.choices[V]={finish_reason:H,index:V,message:{},logprobs:z,...F};if(z)if(!L.logprobs)L.logprobs=Object.assign({},z);else{let{content:E,refusal:I,...S}=z;if(xz(S),Object.assign(L.logprobs,S),E)(Q=L.logprobs).content??(Q.content=[]),L.logprobs.content.push(...E);if(I)(Z=L.logprobs).refusal??(Z.refusal=[]),L.logprobs.refusal.push(...I)}if(H){if(L.finish_reason=H,j(this,Q6,"f")&&n3(j(this,Q6,"f"))){if(H==="length")throw new p9;if(H==="content_filter")throw new l9}}if(Object.assign(L,F),!B)continue;let{content:q,refusal:w,function_call:O,role:R,tool_calls:P,...D}=B;if(xz(D),Object.assign(L.message,D),w)L.message.refusal=(L.message.refusal||"")+w;if(R)L.message.role=R;if(O)if(!L.message.function_call)L.message.function_call=O;else{if(O.name)L.message.function_call.name=O.name;if(O.arguments)(W=L.message.function_call).arguments??(W.arguments=""),L.message.function_call.arguments+=O.arguments}if(q){if(L.message.content=(L.message.content||"")+q,!L.message.refusal&&j(this,b0,"m",$W).call(this))L.message.parsed=XW(L.message.content)}if(P){if(!L.message.tool_calls)L.message.tool_calls=[];for(let{index:E,id:I,type:S,function:x,...C}of P){let h=($=L.message.tool_calls)[E]??($[E]={});if(Object.assign(h,C),I)h.id=I;if(S)h.type=S;if(x)h.function??(h.function={name:x.name??"",arguments:""});if(x?.name)h.function.name=x.name;if(x?.arguments){if(h.function.arguments+=x.arguments,Dz(j(this,Q6,"f"),h))h.function.parsed_arguments=XW(h.function.arguments)}}}}return J},Symbol.asyncIterator)](){let X=[],Y=[],Q=!1;return this.on("chunk",(Z)=>{let W=Y.shift();if(W)W.resolve(Z);else X.push(Z)}),this.on("end",()=>{Q=!0;for(let Z of Y)Z.resolve(void 0);Y.length=0}),this.on("abort",(Z)=>{Q=!0;for(let W of Y)W.reject(Z);Y.length=0}),this.on("error",(Z)=>{Q=!0;for(let W of Y)W.reject(Z);Y.length=0}),{next:async()=>{if(!X.length){if(Q)return{value:void 0,done:!0};return new Promise((W,$)=>Y.push({resolve:W,reject:$})).then((W)=>W?{value:W,done:!1}:{value:void 0,done:!0})}return{value:X.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}toReadableStream(){return new $1(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}}function mT(X,Y){let{id:Q,choices:Z,created:W,model:$,system_fingerprint:J,...G}=X,K={...G,id:Q,choices:Z.map(({message:B,finish_reason:H,index:V,logprobs:z,...F})=>{if(!H)throw new f(`missing finish_reason for choice ${V}`);let{content:L=null,function_call:q,tool_calls:w,...O}=B,R=B.role;if(!R)throw new f(`missing role for choice ${V}`);if(q){let{arguments:P,name:D}=q;if(P==null)throw new f(`missing function_call.arguments for choice ${V}`);if(!D)throw new f(`missing function_call.name for choice ${V}`);return{...F,message:{content:L,function_call:{arguments:P,name:D},role:R,refusal:B.refusal??null},finish_reason:H,index:V,logprobs:z}}if(w)return{...F,index:V,finish_reason:H,logprobs:z,message:{...O,role:R,content:L,refusal:B.refusal??null,tool_calls:w.map((P,D)=>{let{function:E,type:I,id:S,...x}=P,{arguments:C,name:h,...n}=E||{};if(S==null)throw new f(`missing choices[${V}].tool_calls[${D}].id
|
|
345
|
-
${$Q(X)}`);if(I==null)throw new f(`missing choices[${V}].tool_calls[${D}].type
|
|
346
|
-
${$Q(X)}`);if(h==null)throw new f(`missing choices[${V}].tool_calls[${D}].function.name
|
|
347
|
-
${$Q(X)}`);if(C==null)throw new f(`missing choices[${V}].tool_calls[${D}].function.arguments
|
|
348
|
-
${$Q(X)}`);return{...x,id:S,type:I,function:{...n,name:h,arguments:C}}})}};return{...F,message:{...O,content:L,role:R,refusal:B.refusal??null},finish_reason:H,index:V,logprobs:z}}),created:W,model:$,object:"chat.completion",...J?{system_fingerprint:J}:{}};return Oz(K,Y)}function $Q(X){return JSON.stringify(X)}function xz(X){return}function Iz(X){}class OX extends M6{static fromReadableStream(X){let Y=new OX(null);return Y._run(()=>Y._fromReadableStream(X)),Y}static runTools(X,Y,Q){let Z=new OX(Y),W={...Q,headers:{...Q?.headers,"X-Stainless-Helper-Method":"runTools"}};return Z._run(()=>Z._runTools(X,Y,W)),Z}}class x6 extends M{constructor(){super(...arguments);this.messages=new FX(this._client)}create(X,Y){return this._client.post("/chat/completions",{body:X,...Y,stream:X.stream??!1})}retrieve(X,Y){return this._client.get(T`/chat/completions/${X}`,Y)}update(X,Y,Q){return this._client.post(T`/chat/completions/${X}`,{body:Y,...Q})}list(X={},Y){return this._client.getAPIList("/chat/completions",s,{query:X,...Y})}delete(X,Y){return this._client.delete(T`/chat/completions/${X}`,Y)}parse(X,Y){return wz(X.tools),this._client.chat.completions.create(X,{...Y,headers:{...Y?.headers,"X-Stainless-Helper-Method":"chat.completions.parse"}})._thenUnwrap((Q)=>X7(Q,X))}runTools(X,Y){if(X.stream)return OX.runTools(this._client,X,Y);return J7.runTools(this._client,X,Y)}stream(X,Y){return M6.createChatCompletion(this._client,X,Y)}}x6.Messages=FX;class G8 extends M{constructor(){super(...arguments);this.completions=new x6(this._client)}}G8.Completions=x6;var Sz=Symbol("brand.privateNullableHeaders");function*cT(X){if(!X)return;if(Sz in X){let{values:Z,nulls:W}=X;yield*Z.entries();for(let $ of W)yield[$,null];return}let Y=!1,Q;if(X instanceof Headers)Q=X.entries();else if(S3(X))Q=X;else Y=!0,Q=Object.entries(X??{});for(let Z of Q){let W=Z[0];if(typeof W!=="string")throw TypeError("expected header name to be a string");let $=S3(Z[1])?Z[1]:[Z[1]],J=!1;for(let G of $){if(G===void 0)continue;if(Y&&!J)J=!0,yield[W,null];yield[W,G]}}}var b=(X)=>{let Y=new Headers,Q=new Set;for(let Z of X){let W=new Set;for(let[$,J]of cT(Z)){let G=$.toLowerCase();if(!W.has(G))Y.delete($),W.add(G);if(J===null)Y.delete($),Q.add(G);else Y.append($,J),Q.delete(G)}}return{[Sz]:!0,values:Y,nulls:Q}};class G7 extends M{create(X,Y){return this._client.post("/audio/speech",{body:X,...Y,headers:b([{Accept:"application/octet-stream"},Y?.headers]),__binaryResponse:!0})}}class K7 extends M{create(X,Y){return this._client.post("/audio/transcriptions",j1({body:X,...Y,stream:X.stream??!1,__metadata:{model:X.model}},this._client))}}class B7 extends M{create(X,Y){return this._client.post("/audio/translations",j1({body:X,...Y,__metadata:{model:X.model}},this._client))}}class Z6 extends M{constructor(){super(...arguments);this.transcriptions=new K7(this._client),this.translations=new B7(this._client),this.speech=new G7(this._client)}}Z6.Transcriptions=K7;Z6.Translations=B7;Z6.Speech=G7;class DX extends M{create(X,Y){return this._client.post("/batches",{body:X,...Y})}retrieve(X,Y){return this._client.get(T`/batches/${X}`,Y)}list(X={},Y){return this._client.getAPIList("/batches",s,{query:X,...Y})}cancel(X,Y){return this._client.post(T`/batches/${X}/cancel`,Y)}}class H7 extends M{create(X,Y){return this._client.post("/assistants",{body:X,...Y,headers:b([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}retrieve(X,Y){return this._client.get(T`/assistants/${X}`,{...Y,headers:b([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}update(X,Y,Q){return this._client.post(T`/assistants/${X}`,{body:Y,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}list(X={},Y){return this._client.getAPIList("/assistants",s,{query:X,...Y,headers:b([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}delete(X,Y){return this._client.delete(T`/assistants/${X}`,{...Y,headers:b([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}}class V7 extends M{create(X,Y){return this._client.post("/realtime/sessions",{body:X,...Y,headers:b([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}}class z7 extends M{create(X,Y){return this._client.post("/realtime/transcription_sessions",{body:X,...Y,headers:b([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}}class K8 extends M{constructor(){super(...arguments);this.sessions=new V7(this._client),this.transcriptionSessions=new z7(this._client)}}K8.Sessions=V7;K8.TranscriptionSessions=z7;class F7 extends M{create(X,Y){return this._client.post("/chatkit/sessions",{body:X,...Y,headers:b([{"OpenAI-Beta":"chatkit_beta=v1"},Y?.headers])})}cancel(X,Y){return this._client.post(T`/chatkit/sessions/${X}/cancel`,{...Y,headers:b([{"OpenAI-Beta":"chatkit_beta=v1"},Y?.headers])})}}class U7 extends M{retrieve(X,Y){return this._client.get(T`/chatkit/threads/${X}`,{...Y,headers:b([{"OpenAI-Beta":"chatkit_beta=v1"},Y?.headers])})}list(X={},Y){return this._client.getAPIList("/chatkit/threads",R6,{query:X,...Y,headers:b([{"OpenAI-Beta":"chatkit_beta=v1"},Y?.headers])})}delete(X,Y){return this._client.delete(T`/chatkit/threads/${X}`,{...Y,headers:b([{"OpenAI-Beta":"chatkit_beta=v1"},Y?.headers])})}listItems(X,Y={},Q){return this._client.getAPIList(T`/chatkit/threads/${X}/items`,R6,{query:Y,...Q,headers:b([{"OpenAI-Beta":"chatkit_beta=v1"},Q?.headers])})}}class B8 extends M{constructor(){super(...arguments);this.sessions=new F7(this._client),this.threads=new U7(this._client)}}B8.Sessions=F7;B8.Threads=U7;class L7 extends M{create(X,Y,Q){return this._client.post(T`/threads/${X}/messages`,{body:Y,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}retrieve(X,Y,Q){let{thread_id:Z}=Y;return this._client.get(T`/threads/${Z}/messages/${X}`,{...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}update(X,Y,Q){let{thread_id:Z,...W}=Y;return this._client.post(T`/threads/${Z}/messages/${X}`,{body:W,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}list(X,Y={},Q){return this._client.getAPIList(T`/threads/${X}/messages`,s,{query:Y,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}delete(X,Y,Q){let{thread_id:Z}=Y;return this._client.delete(T`/threads/${Z}/messages/${X}`,{...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}}class q7 extends M{retrieve(X,Y,Q){let{thread_id:Z,run_id:W,...$}=Y;return this._client.get(T`/threads/${Z}/runs/${W}/steps/${X}`,{query:$,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}list(X,Y,Q){let{thread_id:Z,...W}=Y;return this._client.getAPIList(T`/threads/${Z}/runs/${X}/steps`,s,{query:W,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}}var bz=(X)=>{if(typeof Buffer<"u"){let Y=Buffer.from(X,"base64");return Array.from(new Float32Array(Y.buffer,Y.byteOffset,Y.length/Float32Array.BYTES_PER_ELEMENT))}else{let Y=atob(X),Q=Y.length,Z=new Uint8Array(Q);for(let W=0;W<Q;W++)Z[W]=Y.charCodeAt(W);return Array.from(new Float32Array(Z.buffer))}};var I6=(X)=>{if(typeof globalThis.process<"u")return globalThis.process.env?.[X]?.trim()??void 0;if(typeof globalThis.Deno<"u")return globalThis.Deno.env?.get?.(X)?.trim();return};var h0,V8,JW,f1,JQ,E1,z8,PX,H8,BQ,J1,GQ,KQ,P7,O7,D7,Cz,yz,kz,_z,vz,fz,hz;class S6 extends J8{constructor(){super(...arguments);h0.add(this),JW.set(this,[]),f1.set(this,{}),JQ.set(this,{}),E1.set(this,void 0),z8.set(this,void 0),PX.set(this,void 0),H8.set(this,void 0),BQ.set(this,void 0),J1.set(this,void 0),GQ.set(this,void 0),KQ.set(this,void 0),P7.set(this,void 0)}[(JW=new WeakMap,f1=new WeakMap,JQ=new WeakMap,E1=new WeakMap,z8=new WeakMap,PX=new WeakMap,H8=new WeakMap,BQ=new WeakMap,J1=new WeakMap,GQ=new WeakMap,KQ=new WeakMap,P7=new WeakMap,h0=new WeakSet,Symbol.asyncIterator)](){let X=[],Y=[],Q=!1;return this.on("event",(Z)=>{let W=Y.shift();if(W)W.resolve(Z);else X.push(Z)}),this.on("end",()=>{Q=!0;for(let Z of Y)Z.resolve(void 0);Y.length=0}),this.on("abort",(Z)=>{Q=!0;for(let W of Y)W.reject(Z);Y.length=0}),this.on("error",(Z)=>{Q=!0;for(let W of Y)W.reject(Z);Y.length=0}),{next:async()=>{if(!X.length){if(Q)return{value:void 0,done:!0};return new Promise((W,$)=>Y.push({resolve:W,reject:$})).then((W)=>W?{value:W,done:!1}:{value:void 0,done:!0})}return{value:X.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}static fromReadableStream(X){let Y=new V8;return Y._run(()=>Y._fromReadableStream(X)),Y}async _fromReadableStream(X,Y){let Q=Y?.signal;if(Q){if(Q.aborted)this.controller.abort();Q.addEventListener("abort",()=>this.controller.abort())}this._connected();let Z=$1.fromReadableStream(X,this.controller);for await(let W of Z)j(this,h0,"m",O7).call(this,W);if(Z.controller.signal?.aborted)throw new j0;return this._addRun(j(this,h0,"m",D7).call(this))}toReadableStream(){return new $1(this[Symbol.asyncIterator].bind(this),this.controller).toReadableStream()}static createToolAssistantStream(X,Y,Q,Z){let W=new V8;return W._run(()=>W._runToolAssistantStream(X,Y,Q,{...Z,headers:{...Z?.headers,"X-Stainless-Helper-Method":"stream"}})),W}async _createToolAssistantStream(X,Y,Q,Z){let W=Z?.signal;if(W){if(W.aborted)this.controller.abort();W.addEventListener("abort",()=>this.controller.abort())}let $={...Q,stream:!0},J=await X.submitToolOutputs(Y,$,{...Z,signal:this.controller.signal});this._connected();for await(let G of J)j(this,h0,"m",O7).call(this,G);if(J.controller.signal?.aborted)throw new j0;return this._addRun(j(this,h0,"m",D7).call(this))}static createThreadAssistantStream(X,Y,Q){let Z=new V8;return Z._run(()=>Z._threadAssistantStream(X,Y,{...Q,headers:{...Q?.headers,"X-Stainless-Helper-Method":"stream"}})),Z}static createAssistantStream(X,Y,Q,Z){let W=new V8;return W._run(()=>W._runAssistantStream(X,Y,Q,{...Z,headers:{...Z?.headers,"X-Stainless-Helper-Method":"stream"}})),W}currentEvent(){return j(this,GQ,"f")}currentRun(){return j(this,KQ,"f")}currentMessageSnapshot(){return j(this,E1,"f")}currentRunStepSnapshot(){return j(this,P7,"f")}async finalRunSteps(){return await this.done(),Object.values(j(this,f1,"f"))}async finalMessages(){return await this.done(),Object.values(j(this,JQ,"f"))}async finalRun(){if(await this.done(),!j(this,z8,"f"))throw Error("Final run was not received.");return j(this,z8,"f")}async _createThreadAssistantStream(X,Y,Q){let Z=Q?.signal;if(Z){if(Z.aborted)this.controller.abort();Z.addEventListener("abort",()=>this.controller.abort())}let W={...Y,stream:!0},$=await X.createAndRun(W,{...Q,signal:this.controller.signal});this._connected();for await(let J of $)j(this,h0,"m",O7).call(this,J);if($.controller.signal?.aborted)throw new j0;return this._addRun(j(this,h0,"m",D7).call(this))}async _createAssistantStream(X,Y,Q,Z){let W=Z?.signal;if(W){if(W.aborted)this.controller.abort();W.addEventListener("abort",()=>this.controller.abort())}let $={...Q,stream:!0},J=await X.create(Y,$,{...Z,signal:this.controller.signal});this._connected();for await(let G of J)j(this,h0,"m",O7).call(this,G);if(J.controller.signal?.aborted)throw new j0;return this._addRun(j(this,h0,"m",D7).call(this))}static accumulateDelta(X,Y){for(let[Q,Z]of Object.entries(Y)){if(!X.hasOwnProperty(Q)){X[Q]=Z;continue}let W=X[Q];if(W===null||W===void 0){X[Q]=Z;continue}if(Q==="index"||Q==="type"){X[Q]=Z;continue}if(typeof W==="string"&&typeof Z==="string")W+=Z;else if(typeof W==="number"&&typeof Z==="number")W+=Z;else if(i9(W)&&i9(Z))W=this.accumulateDelta(W,Z);else if(Array.isArray(W)&&Array.isArray(Z)){if(W.every(($)=>typeof $==="string"||typeof $==="number")){W.push(...Z);continue}for(let $ of Z){if(!i9($))throw Error(`Expected array delta entry to be an object but got: ${$}`);let J=$.index;if(J==null)throw console.error($),Error("Expected array delta entry to have an `index` property");if(typeof J!=="number")throw Error(`Expected array delta entry \`index\` property to be a number but got ${J}`);let G=W[J];if(G==null)W.push($);else W[J]=this.accumulateDelta(G,$)}continue}else throw Error(`Unhandled record type: ${Q}, deltaValue: ${Z}, accValue: ${W}`);X[Q]=W}return X}_addRun(X){return X}async _threadAssistantStream(X,Y,Q){return await this._createThreadAssistantStream(Y,X,Q)}async _runAssistantStream(X,Y,Q,Z){return await this._createAssistantStream(Y,X,Q,Z)}async _runToolAssistantStream(X,Y,Q,Z){return await this._createToolAssistantStream(Y,X,Q,Z)}}V8=S6,O7=function(Y){if(this.ended)return;switch(d(this,GQ,Y,"f"),j(this,h0,"m",kz).call(this,Y),Y.event){case"thread.created":break;case"thread.run.created":case"thread.run.queued":case"thread.run.in_progress":case"thread.run.requires_action":case"thread.run.completed":case"thread.run.incomplete":case"thread.run.failed":case"thread.run.cancelling":case"thread.run.cancelled":case"thread.run.expired":j(this,h0,"m",hz).call(this,Y);break;case"thread.run.step.created":case"thread.run.step.in_progress":case"thread.run.step.delta":case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":j(this,h0,"m",yz).call(this,Y);break;case"thread.message.created":case"thread.message.in_progress":case"thread.message.delta":case"thread.message.completed":case"thread.message.incomplete":j(this,h0,"m",Cz).call(this,Y);break;case"error":throw Error("Encountered an error event in event processing - errors should be processed earlier");default:QM(Y)}},D7=function(){if(this.ended)throw new f("stream has ended, this shouldn't happen");if(!j(this,z8,"f"))throw Error("Final run has not been received");return j(this,z8,"f")},Cz=function(Y){let[Q,Z]=j(this,h0,"m",vz).call(this,Y,j(this,E1,"f"));d(this,E1,Q,"f"),j(this,JQ,"f")[Q.id]=Q;for(let W of Z){let $=Q.content[W.index];if($?.type=="text")this._emit("textCreated",$.text)}switch(Y.event){case"thread.message.created":this._emit("messageCreated",Y.data);break;case"thread.message.in_progress":break;case"thread.message.delta":if(this._emit("messageDelta",Y.data.delta,Q),Y.data.delta.content)for(let W of Y.data.delta.content){if(W.type=="text"&&W.text){let $=W.text,J=Q.content[W.index];if(J&&J.type=="text")this._emit("textDelta",$,J.text);else throw Error("The snapshot associated with this text delta is not text or missing")}if(W.index!=j(this,PX,"f")){if(j(this,H8,"f"))switch(j(this,H8,"f").type){case"text":this._emit("textDone",j(this,H8,"f").text,j(this,E1,"f"));break;case"image_file":this._emit("imageFileDone",j(this,H8,"f").image_file,j(this,E1,"f"));break}d(this,PX,W.index,"f")}d(this,H8,Q.content[W.index],"f")}break;case"thread.message.completed":case"thread.message.incomplete":if(j(this,PX,"f")!==void 0){let W=Y.data.content[j(this,PX,"f")];if(W)switch(W.type){case"image_file":this._emit("imageFileDone",W.image_file,j(this,E1,"f"));break;case"text":this._emit("textDone",W.text,j(this,E1,"f"));break}}if(j(this,E1,"f"))this._emit("messageDone",Y.data);d(this,E1,void 0,"f")}},yz=function(Y){let Q=j(this,h0,"m",_z).call(this,Y);switch(d(this,P7,Q,"f"),Y.event){case"thread.run.step.created":this._emit("runStepCreated",Y.data);break;case"thread.run.step.delta":let Z=Y.data.delta;if(Z.step_details&&Z.step_details.type=="tool_calls"&&Z.step_details.tool_calls&&Q.step_details.type=="tool_calls")for(let $ of Z.step_details.tool_calls)if($.index==j(this,BQ,"f"))this._emit("toolCallDelta",$,Q.step_details.tool_calls[$.index]);else{if(j(this,J1,"f"))this._emit("toolCallDone",j(this,J1,"f"));if(d(this,BQ,$.index,"f"),d(this,J1,Q.step_details.tool_calls[$.index],"f"),j(this,J1,"f"))this._emit("toolCallCreated",j(this,J1,"f"))}this._emit("runStepDelta",Y.data.delta,Q);break;case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":if(d(this,P7,void 0,"f"),Y.data.step_details.type=="tool_calls"){if(j(this,J1,"f"))this._emit("toolCallDone",j(this,J1,"f")),d(this,J1,void 0,"f")}this._emit("runStepDone",Y.data,Q);break;case"thread.run.step.in_progress":break}},kz=function(Y){j(this,JW,"f").push(Y),this._emit("event",Y)},_z=function(Y){switch(Y.event){case"thread.run.step.created":return j(this,f1,"f")[Y.data.id]=Y.data,Y.data;case"thread.run.step.delta":let Q=j(this,f1,"f")[Y.data.id];if(!Q)throw Error("Received a RunStepDelta before creation of a snapshot");let Z=Y.data;if(Z.delta){let W=V8.accumulateDelta(Q,Z.delta);j(this,f1,"f")[Y.data.id]=W}return j(this,f1,"f")[Y.data.id];case"thread.run.step.completed":case"thread.run.step.failed":case"thread.run.step.cancelled":case"thread.run.step.expired":case"thread.run.step.in_progress":j(this,f1,"f")[Y.data.id]=Y.data;break}if(j(this,f1,"f")[Y.data.id])return j(this,f1,"f")[Y.data.id];throw Error("No snapshot available")},vz=function(Y,Q){let Z=[];switch(Y.event){case"thread.message.created":return[Y.data,Z];case"thread.message.delta":if(!Q)throw Error("Received a delta with no existing snapshot (there should be one from message creation)");let W=Y.data;if(W.delta.content)for(let $ of W.delta.content)if($.index in Q.content){let J=Q.content[$.index];Q.content[$.index]=j(this,h0,"m",fz).call(this,$,J)}else Q.content[$.index]=$,Z.push($);return[Q,Z];case"thread.message.in_progress":case"thread.message.completed":case"thread.message.incomplete":if(Q)return[Q,Z];else throw Error("Received thread message event with no existing snapshot")}throw Error("Tried to accumulate a non-message event")},fz=function(Y,Q){return V8.accumulateDelta(Q,Y)},hz=function(Y){switch(d(this,KQ,Y.data,"f"),Y.event){case"thread.run.created":break;case"thread.run.queued":break;case"thread.run.in_progress":break;case"thread.run.requires_action":case"thread.run.cancelled":case"thread.run.failed":case"thread.run.completed":case"thread.run.expired":case"thread.run.incomplete":if(d(this,z8,Y.data,"f"),j(this,J1,"f"))this._emit("toolCallDone",j(this,J1,"f")),d(this,J1,void 0,"f");break;case"thread.run.cancelling":break}};function QM(X){}class wX extends M{constructor(){super(...arguments);this.steps=new q7(this._client)}create(X,Y,Q){let{include:Z,...W}=Y;return this._client.post(T`/threads/${X}/runs`,{query:{include:Z},body:W,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers]),stream:Y.stream??!1})}retrieve(X,Y,Q){let{thread_id:Z}=Y;return this._client.get(T`/threads/${Z}/runs/${X}`,{...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}update(X,Y,Q){let{thread_id:Z,...W}=Y;return this._client.post(T`/threads/${Z}/runs/${X}`,{body:W,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}list(X,Y={},Q){return this._client.getAPIList(T`/threads/${X}/runs`,s,{query:Y,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}cancel(X,Y,Q){let{thread_id:Z}=Y;return this._client.post(T`/threads/${Z}/runs/${X}/cancel`,{...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}async createAndPoll(X,Y,Q){let Z=await this.create(X,Y,Q);return await this.poll(Z.id,{thread_id:X},Q)}createAndStream(X,Y,Q){return S6.createAssistantStream(X,this._client.beta.threads.runs,Y,Q)}async poll(X,Y,Q){let Z=b([Q?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":Q?.pollIntervalMs?.toString()??void 0}]);while(!0){let{data:W,response:$}=await this.retrieve(X,Y,{...Q,headers:{...Q?.headers,...Z}}).withResponse();switch(W.status){case"queued":case"in_progress":case"cancelling":let J=5000;if(Q?.pollIntervalMs)J=Q.pollIntervalMs;else{let G=$.headers.get("openai-poll-after-ms");if(G){let K=parseInt(G);if(!isNaN(K))J=K}}await _1(J);break;case"requires_action":case"incomplete":case"cancelled":case"completed":case"failed":case"expired":return W}}}stream(X,Y,Q){return S6.createAssistantStream(X,this._client.beta.threads.runs,Y,Q)}submitToolOutputs(X,Y,Q){let{thread_id:Z,...W}=Y;return this._client.post(T`/threads/${Z}/runs/${X}/submit_tool_outputs`,{body:W,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers]),stream:Y.stream??!1})}async submitToolOutputsAndPoll(X,Y,Q){let Z=await this.submitToolOutputs(X,Y,Q);return await this.poll(Z.id,Y,Q)}submitToolOutputsStream(X,Y,Q){return S6.createToolAssistantStream(X,this._client.beta.threads.runs,Y,Q)}}wX.Steps=q7;class F8 extends M{constructor(){super(...arguments);this.runs=new wX(this._client),this.messages=new L7(this._client)}create(X={},Y){return this._client.post("/threads",{body:X,...Y,headers:b([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}retrieve(X,Y){return this._client.get(T`/threads/${X}`,{...Y,headers:b([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}update(X,Y,Q){return this._client.post(T`/threads/${X}`,{body:Y,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}delete(X,Y){return this._client.delete(T`/threads/${X}`,{...Y,headers:b([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}createAndRun(X,Y){return this._client.post("/threads/runs",{body:X,...Y,headers:b([{"OpenAI-Beta":"assistants=v2"},Y?.headers]),stream:X.stream??!1})}async createAndRunPoll(X,Y){let Q=await this.createAndRun(X,Y);return await this.runs.poll(Q.id,{thread_id:Q.thread_id},Y)}createAndRunStream(X,Y){return S6.createThreadAssistantStream(X,this._client.beta.threads,Y)}}F8.Runs=wX;F8.Messages=L7;class h1 extends M{constructor(){super(...arguments);this.realtime=new K8(this._client),this.chatkit=new B8(this._client),this.assistants=new H7(this._client),this.threads=new F8(this._client)}}h1.Realtime=K8;h1.ChatKit=B8;h1.Assistants=H7;h1.Threads=F8;class NX extends M{create(X,Y){return this._client.post("/completions",{body:X,...Y,stream:X.stream??!1})}}class w7 extends M{retrieve(X,Y,Q){let{container_id:Z}=Y;return this._client.get(T`/containers/${Z}/files/${X}/content`,{...Q,headers:b([{Accept:"application/binary"},Q?.headers]),__binaryResponse:!0})}}class AX extends M{constructor(){super(...arguments);this.content=new w7(this._client)}create(X,Y,Q){return this._client.post(T`/containers/${X}/files`,X6({body:Y,...Q},this._client))}retrieve(X,Y,Q){let{container_id:Z}=Y;return this._client.get(T`/containers/${Z}/files/${X}`,Q)}list(X,Y={},Q){return this._client.getAPIList(T`/containers/${X}/files`,s,{query:Y,...Q})}delete(X,Y,Q){let{container_id:Z}=Y;return this._client.delete(T`/containers/${Z}/files/${X}`,{...Q,headers:b([{Accept:"*/*"},Q?.headers])})}}AX.Content=w7;class U8 extends M{constructor(){super(...arguments);this.files=new AX(this._client)}create(X,Y){return this._client.post("/containers",{body:X,...Y})}retrieve(X,Y){return this._client.get(T`/containers/${X}`,Y)}list(X={},Y){return this._client.getAPIList("/containers",s,{query:X,...Y})}delete(X,Y){return this._client.delete(T`/containers/${X}`,{...Y,headers:b([{Accept:"*/*"},Y?.headers])})}}U8.Files=AX;class N7 extends M{create(X,Y,Q){let{include:Z,...W}=Y;return this._client.post(T`/conversations/${X}/items`,{query:{include:Z},body:W,...Q})}retrieve(X,Y,Q){let{conversation_id:Z,...W}=Y;return this._client.get(T`/conversations/${Z}/items/${X}`,{query:W,...Q})}list(X,Y={},Q){return this._client.getAPIList(T`/conversations/${X}/items`,R6,{query:Y,...Q})}delete(X,Y,Q){let{conversation_id:Z}=Y;return this._client.delete(T`/conversations/${Z}/items/${X}`,Q)}}class L8 extends M{constructor(){super(...arguments);this.items=new N7(this._client)}create(X={},Y){return this._client.post("/conversations",{body:X,...Y})}retrieve(X,Y){return this._client.get(T`/conversations/${X}`,Y)}update(X,Y,Q){return this._client.post(T`/conversations/${X}`,{body:Y,...Q})}delete(X,Y){return this._client.delete(T`/conversations/${X}`,Y)}}L8.Items=N7;class jX extends M{create(X,Y){let Q=!!X.encoding_format,Z=Q?X.encoding_format:"base64";if(Q)E0(this._client).debug("embeddings/user defined encoding_format:",X.encoding_format);let W=this._client.post("/embeddings",{body:{...X,encoding_format:Z},...Y});if(Q)return W;return E0(this._client).debug("embeddings/decoding base64 embeddings from base64"),W._thenUnwrap(($)=>{if($&&$.data)$.data.forEach((J)=>{let G=J.embedding;J.embedding=bz(G)});return $})}}class A7 extends M{retrieve(X,Y,Q){let{eval_id:Z,run_id:W}=Y;return this._client.get(T`/evals/${Z}/runs/${W}/output_items/${X}`,Q)}list(X,Y,Q){let{eval_id:Z,...W}=Y;return this._client.getAPIList(T`/evals/${Z}/runs/${X}/output_items`,s,{query:W,...Q})}}class EX extends M{constructor(){super(...arguments);this.outputItems=new A7(this._client)}create(X,Y,Q){return this._client.post(T`/evals/${X}/runs`,{body:Y,...Q})}retrieve(X,Y,Q){let{eval_id:Z}=Y;return this._client.get(T`/evals/${Z}/runs/${X}`,Q)}list(X,Y={},Q){return this._client.getAPIList(T`/evals/${X}/runs`,s,{query:Y,...Q})}delete(X,Y,Q){let{eval_id:Z}=Y;return this._client.delete(T`/evals/${Z}/runs/${X}`,Q)}cancel(X,Y,Q){let{eval_id:Z}=Y;return this._client.post(T`/evals/${Z}/runs/${X}`,Q)}}EX.OutputItems=A7;class q8 extends M{constructor(){super(...arguments);this.runs=new EX(this._client)}create(X,Y){return this._client.post("/evals",{body:X,...Y})}retrieve(X,Y){return this._client.get(T`/evals/${X}`,Y)}update(X,Y,Q){return this._client.post(T`/evals/${X}`,{body:Y,...Q})}list(X={},Y){return this._client.getAPIList("/evals",s,{query:X,...Y})}delete(X,Y){return this._client.delete(T`/evals/${X}`,Y)}}q8.Runs=EX;class RX extends M{create(X,Y){return this._client.post("/files",j1({body:X,...Y},this._client))}retrieve(X,Y){return this._client.get(T`/files/${X}`,Y)}list(X={},Y){return this._client.getAPIList("/files",s,{query:X,...Y})}delete(X,Y){return this._client.delete(T`/files/${X}`,Y)}content(X,Y){return this._client.get(T`/files/${X}/content`,{...Y,headers:b([{Accept:"application/binary"},Y?.headers]),__binaryResponse:!0})}async waitForProcessing(X,{pollInterval:Y=5000,maxWait:Q=1800000}={}){let Z=new Set(["processed","error","deleted"]),W=Date.now(),$=await this.retrieve(X);while(!$.status||!Z.has($.status))if(await _1(Y),$=await this.retrieve(X),Date.now()-W>Q)throw new s1({message:`Giving up on waiting for file ${X} to finish processing after ${Q} milliseconds.`});return $}}class j7 extends M{}class E7 extends M{run(X,Y){return this._client.post("/fine_tuning/alpha/graders/run",{body:X,...Y})}validate(X,Y){return this._client.post("/fine_tuning/alpha/graders/validate",{body:X,...Y})}}class TX extends M{constructor(){super(...arguments);this.graders=new E7(this._client)}}TX.Graders=E7;class R7 extends M{create(X,Y,Q){return this._client.getAPIList(T`/fine_tuning/checkpoints/${X}/permissions`,e1,{body:Y,method:"post",...Q})}retrieve(X,Y={},Q){return this._client.get(T`/fine_tuning/checkpoints/${X}/permissions`,{query:Y,...Q})}delete(X,Y,Q){let{fine_tuned_model_checkpoint:Z}=Y;return this._client.delete(T`/fine_tuning/checkpoints/${Z}/permissions/${X}`,Q)}}class MX extends M{constructor(){super(...arguments);this.permissions=new R7(this._client)}}MX.Permissions=R7;class T7 extends M{list(X,Y={},Q){return this._client.getAPIList(T`/fine_tuning/jobs/${X}/checkpoints`,s,{query:Y,...Q})}}class xX extends M{constructor(){super(...arguments);this.checkpoints=new T7(this._client)}create(X,Y){return this._client.post("/fine_tuning/jobs",{body:X,...Y})}retrieve(X,Y){return this._client.get(T`/fine_tuning/jobs/${X}`,Y)}list(X={},Y){return this._client.getAPIList("/fine_tuning/jobs",s,{query:X,...Y})}cancel(X,Y){return this._client.post(T`/fine_tuning/jobs/${X}/cancel`,Y)}listEvents(X,Y={},Q){return this._client.getAPIList(T`/fine_tuning/jobs/${X}/events`,s,{query:Y,...Q})}pause(X,Y){return this._client.post(T`/fine_tuning/jobs/${X}/pause`,Y)}resume(X,Y){return this._client.post(T`/fine_tuning/jobs/${X}/resume`,Y)}}xX.Checkpoints=T7;class g1 extends M{constructor(){super(...arguments);this.methods=new j7(this._client),this.jobs=new xX(this._client),this.checkpoints=new MX(this._client),this.alpha=new TX(this._client)}}g1.Methods=j7;g1.Jobs=xX;g1.Checkpoints=MX;g1.Alpha=TX;class M7 extends M{}class O8 extends M{constructor(){super(...arguments);this.graderModels=new M7(this._client)}}O8.GraderModels=M7;class IX extends M{createVariation(X,Y){return this._client.post("/images/variations",j1({body:X,...Y},this._client))}edit(X,Y){return this._client.post("/images/edits",j1({body:X,...Y,stream:X.stream??!1},this._client))}generate(X,Y){return this._client.post("/images/generations",{body:X,...Y,stream:X.stream??!1})}}class SX extends M{retrieve(X,Y){return this._client.get(T`/models/${X}`,Y)}list(X){return this._client.getAPIList("/models",e1,X)}delete(X,Y){return this._client.delete(T`/models/${X}`,Y)}}class bX extends M{create(X,Y){return this._client.post("/moderations",{body:X,...Y})}}class x7 extends M{accept(X,Y,Q){return this._client.post(T`/realtime/calls/${X}/accept`,{body:Y,...Q,headers:b([{Accept:"*/*"},Q?.headers])})}hangup(X,Y){return this._client.post(T`/realtime/calls/${X}/hangup`,{...Y,headers:b([{Accept:"*/*"},Y?.headers])})}refer(X,Y,Q){return this._client.post(T`/realtime/calls/${X}/refer`,{body:Y,...Q,headers:b([{Accept:"*/*"},Q?.headers])})}reject(X,Y={},Q){return this._client.post(T`/realtime/calls/${X}/reject`,{body:Y,...Q,headers:b([{Accept:"*/*"},Q?.headers])})}}class I7 extends M{create(X,Y){return this._client.post("/realtime/client_secrets",{body:X,...Y})}}class b6 extends M{constructor(){super(...arguments);this.clientSecrets=new I7(this._client),this.calls=new x7(this._client)}}b6.ClientSecrets=I7;b6.Calls=x7;function gz(X,Y){if(!Y||!NM(Y))return{...X,output_parsed:null,output:X.output.map((Q)=>{if(Q.type==="function_call")return{...Q,parsed_arguments:null};if(Q.type==="message")return{...Q,content:Q.content.map((Z)=>({...Z,parsed:null}))};else return Q})};return GW(X,Y)}function GW(X,Y){let Q=X.output.map((W)=>{if(W.type==="function_call")return{...W,parsed_arguments:EM(Y,W)};if(W.type==="message"){let $=W.content.map((J)=>{if(J.type==="output_text")return{...J,parsed:wM(Y,J.text)};return J});return{...W,content:$}}return W}),Z=Object.assign({},X,{output:Q});if(!Object.getOwnPropertyDescriptor(X,"output_text"))HQ(Z);return Object.defineProperty(Z,"output_parsed",{enumerable:!0,get(){for(let W of Z.output){if(W.type!=="message")continue;for(let $ of W.content)if($.type==="output_text"&&$.parsed!==null)return $.parsed}return null}}),Z}function wM(X,Y){if(X.text?.format?.type!=="json_schema")return null;if("$parseRaw"in X.text?.format)return(X.text?.format).$parseRaw(Y);return JSON.parse(Y)}function NM(X){if(e9(X.text?.format))return!0;return!1}function AM(X){return X?.$brand==="auto-parseable-tool"}function jM(X,Y){return X.find((Q)=>Q.type==="function"&&Q.name===Y)}function EM(X,Y){let Q=jM(X.tools??[],Y.name);return{...Y,...Y,parsed_arguments:AM(Q)?Q.$parseRaw(Y.arguments):Q?.strict?JSON.parse(Y.arguments):null}}function HQ(X){let Y=[];for(let Q of X.output){if(Q.type!=="message")continue;for(let Z of Q.content)if(Z.type==="output_text")Y.push(Z.text)}X.output_text=Y.join("")}var CX,VQ,C6,zQ,uz,mz,dz,cz;class FQ extends J8{constructor(X){super();CX.add(this),VQ.set(this,void 0),C6.set(this,void 0),zQ.set(this,void 0),d(this,VQ,X,"f")}static createResponse(X,Y,Q){let Z=new FQ(Y);return Z._run(()=>Z._createOrRetrieveResponse(X,Y,{...Q,headers:{...Q?.headers,"X-Stainless-Helper-Method":"stream"}})),Z}async _createOrRetrieveResponse(X,Y,Q){let Z=Q?.signal;if(Z){if(Z.aborted)this.controller.abort();Z.addEventListener("abort",()=>this.controller.abort())}j(this,CX,"m",uz).call(this);let W,$=null;if("response_id"in Y)W=await X.responses.retrieve(Y.response_id,{stream:!0},{...Q,signal:this.controller.signal,stream:!0}),$=Y.starting_after??null;else W=await X.responses.create({...Y,stream:!0},{...Q,signal:this.controller.signal});this._connected();for await(let J of W)j(this,CX,"m",mz).call(this,J,$);if(W.controller.signal?.aborted)throw new j0;return j(this,CX,"m",dz).call(this)}[(VQ=new WeakMap,C6=new WeakMap,zQ=new WeakMap,CX=new WeakSet,uz=function(){if(this.ended)return;d(this,C6,void 0,"f")},mz=function(Y,Q){if(this.ended)return;let Z=($,J)=>{if(Q==null||J.sequence_number>Q)this._emit($,J)},W=j(this,CX,"m",cz).call(this,Y);switch(Z("event",Y),Y.type){case"response.output_text.delta":{let $=W.output[Y.output_index];if(!$)throw new f(`missing output at index ${Y.output_index}`);if($.type==="message"){let J=$.content[Y.content_index];if(!J)throw new f(`missing content at index ${Y.content_index}`);if(J.type!=="output_text")throw new f(`expected content to be 'output_text', got ${J.type}`);Z("response.output_text.delta",{...Y,snapshot:J.text})}break}case"response.function_call_arguments.delta":{let $=W.output[Y.output_index];if(!$)throw new f(`missing output at index ${Y.output_index}`);if($.type==="function_call")Z("response.function_call_arguments.delta",{...Y,snapshot:$.arguments});break}default:Z(Y.type,Y);break}},dz=function(){if(this.ended)throw new f("stream has ended, this shouldn't happen");let Y=j(this,C6,"f");if(!Y)throw new f("request ended without sending any events");d(this,C6,void 0,"f");let Q=RM(Y,j(this,VQ,"f"));return d(this,zQ,Q,"f"),Q},cz=function(Y){let Q=j(this,C6,"f");if(!Q){if(Y.type!=="response.created")throw new f(`When snapshot hasn't been set yet, expected 'response.created' event, got ${Y.type}`);return Q=d(this,C6,Y.response,"f"),Q}switch(Y.type){case"response.output_item.added":{Q.output.push(Y.item);break}case"response.content_part.added":{let Z=Q.output[Y.output_index];if(!Z)throw new f(`missing output at index ${Y.output_index}`);let W=Z.type,$=Y.part;if(W==="message"&&$.type!=="reasoning_text")Z.content.push($);else if(W==="reasoning"&&$.type==="reasoning_text"){if(!Z.content)Z.content=[];Z.content.push($)}break}case"response.output_text.delta":{let Z=Q.output[Y.output_index];if(!Z)throw new f(`missing output at index ${Y.output_index}`);if(Z.type==="message"){let W=Z.content[Y.content_index];if(!W)throw new f(`missing content at index ${Y.content_index}`);if(W.type!=="output_text")throw new f(`expected content to be 'output_text', got ${W.type}`);W.text+=Y.delta}break}case"response.function_call_arguments.delta":{let Z=Q.output[Y.output_index];if(!Z)throw new f(`missing output at index ${Y.output_index}`);if(Z.type==="function_call")Z.arguments+=Y.delta;break}case"response.reasoning_text.delta":{let Z=Q.output[Y.output_index];if(!Z)throw new f(`missing output at index ${Y.output_index}`);if(Z.type==="reasoning"){let W=Z.content?.[Y.content_index];if(!W)throw new f(`missing content at index ${Y.content_index}`);if(W.type!=="reasoning_text")throw new f(`expected content to be 'reasoning_text', got ${W.type}`);W.text+=Y.delta}break}case"response.completed":{d(this,C6,Y.response,"f");break}}return Q},Symbol.asyncIterator)](){let X=[],Y=[],Q=!1;return this.on("event",(Z)=>{let W=Y.shift();if(W)W.resolve(Z);else X.push(Z)}),this.on("end",()=>{Q=!0;for(let Z of Y)Z.resolve(void 0);Y.length=0}),this.on("abort",(Z)=>{Q=!0;for(let W of Y)W.reject(Z);Y.length=0}),this.on("error",(Z)=>{Q=!0;for(let W of Y)W.reject(Z);Y.length=0}),{next:async()=>{if(!X.length){if(Q)return{value:void 0,done:!0};return new Promise((W,$)=>Y.push({resolve:W,reject:$})).then((W)=>W?{value:W,done:!1}:{value:void 0,done:!0})}return{value:X.shift(),done:!1}},return:async()=>{return this.abort(),{value:void 0,done:!0}}}}async finalResponse(){await this.done();let X=j(this,zQ,"f");if(!X)throw new f("stream ended without producing a ChatCompletion");return X}}function RM(X,Y){return gz(X,Y)}class S7 extends M{list(X,Y={},Q){return this._client.getAPIList(T`/responses/${X}/input_items`,s,{query:Y,...Q})}}class b7 extends M{count(X={},Y){return this._client.post("/responses/input_tokens",{body:X,...Y})}}class y6 extends M{constructor(){super(...arguments);this.inputItems=new S7(this._client),this.inputTokens=new b7(this._client)}create(X,Y){return this._client.post("/responses",{body:X,...Y,stream:X.stream??!1})._thenUnwrap((Q)=>{if("object"in Q&&Q.object==="response")HQ(Q);return Q})}retrieve(X,Y={},Q){return this._client.get(T`/responses/${X}`,{query:Y,...Q,stream:Y?.stream??!1})._thenUnwrap((Z)=>{if("object"in Z&&Z.object==="response")HQ(Z);return Z})}delete(X,Y){return this._client.delete(T`/responses/${X}`,{...Y,headers:b([{Accept:"*/*"},Y?.headers])})}parse(X,Y){return this._client.responses.create(X,Y)._thenUnwrap((Q)=>GW(Q,X))}stream(X,Y){return FQ.createResponse(this._client,X,Y)}cancel(X,Y){return this._client.post(T`/responses/${X}/cancel`,Y)}compact(X,Y){return this._client.post("/responses/compact",{body:X,...Y})}}y6.InputItems=S7;y6.InputTokens=b7;class C7 extends M{retrieve(X,Y){return this._client.get(T`/skills/${X}/content`,{...Y,headers:b([{Accept:"application/binary"},Y?.headers]),__binaryResponse:!0})}}class y7 extends M{retrieve(X,Y,Q){let{skill_id:Z}=Y;return this._client.get(T`/skills/${Z}/versions/${X}/content`,{...Q,headers:b([{Accept:"application/binary"},Q?.headers]),__binaryResponse:!0})}}class yX extends M{constructor(){super(...arguments);this.content=new y7(this._client)}create(X,Y={},Q){return this._client.post(T`/skills/${X}/versions`,X6({body:Y,...Q},this._client))}retrieve(X,Y,Q){let{skill_id:Z}=Y;return this._client.get(T`/skills/${Z}/versions/${X}`,Q)}list(X,Y={},Q){return this._client.getAPIList(T`/skills/${X}/versions`,s,{query:Y,...Q})}delete(X,Y,Q){let{skill_id:Z}=Y;return this._client.delete(T`/skills/${Z}/versions/${X}`,Q)}}yX.Content=y7;class k6 extends M{constructor(){super(...arguments);this.content=new C7(this._client),this.versions=new yX(this._client)}create(X={},Y){return this._client.post("/skills",X6({body:X,...Y},this._client))}retrieve(X,Y){return this._client.get(T`/skills/${X}`,Y)}update(X,Y,Q){return this._client.post(T`/skills/${X}`,{body:Y,...Q})}list(X={},Y){return this._client.getAPIList("/skills",s,{query:X,...Y})}delete(X,Y){return this._client.delete(T`/skills/${X}`,Y)}}k6.Content=C7;k6.Versions=yX;class k7 extends M{create(X,Y,Q){return this._client.post(T`/uploads/${X}/parts`,j1({body:Y,...Q},this._client))}}class D8 extends M{constructor(){super(...arguments);this.parts=new k7(this._client)}create(X,Y){return this._client.post("/uploads",{body:X,...Y})}cancel(X,Y){return this._client.post(T`/uploads/${X}/cancel`,Y)}complete(X,Y,Q){return this._client.post(T`/uploads/${X}/complete`,{body:Y,...Q})}}D8.Parts=k7;var pz=async(X)=>{let Y=await Promise.allSettled(X),Q=Y.filter((W)=>W.status==="rejected");if(Q.length){for(let W of Q)console.error(W.reason);throw Error(`${Q.length} promise(s) failed - see the above errors`)}let Z=[];for(let W of Y)if(W.status==="fulfilled")Z.push(W.value);return Z};class _7 extends M{create(X,Y,Q){return this._client.post(T`/vector_stores/${X}/file_batches`,{body:Y,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}retrieve(X,Y,Q){let{vector_store_id:Z}=Y;return this._client.get(T`/vector_stores/${Z}/file_batches/${X}`,{...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}cancel(X,Y,Q){let{vector_store_id:Z}=Y;return this._client.post(T`/vector_stores/${Z}/file_batches/${X}/cancel`,{...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}async createAndPoll(X,Y,Q){let Z=await this.create(X,Y);return await this.poll(X,Z.id,Q)}listFiles(X,Y,Q){let{vector_store_id:Z,...W}=Y;return this._client.getAPIList(T`/vector_stores/${Z}/file_batches/${X}/files`,s,{query:W,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}async poll(X,Y,Q){let Z=b([Q?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":Q?.pollIntervalMs?.toString()??void 0}]);while(!0){let{data:W,response:$}=await this.retrieve(Y,{vector_store_id:X},{...Q,headers:Z}).withResponse();switch(W.status){case"in_progress":let J=5000;if(Q?.pollIntervalMs)J=Q.pollIntervalMs;else{let G=$.headers.get("openai-poll-after-ms");if(G){let K=parseInt(G);if(!isNaN(K))J=K}}await _1(J);break;case"failed":case"cancelled":case"completed":return W}}}async uploadAndPoll(X,{files:Y,fileIds:Q=[]},Z){if(Y==null||Y.length==0)throw Error("No `files` provided to process. If you've already uploaded files you should use `.createAndPoll()` instead");let W=Z?.maxConcurrency??5,$=Math.min(W,Y.length),J=this._client,G=Y.values(),K=[...Q];async function B(V){for(let z of V){let F=await J.files.create({file:z,purpose:"assistants"},Z);K.push(F.id)}}let H=Array($).fill(G).map(B);return await pz(H),await this.createAndPoll(X,{file_ids:K})}}class v7 extends M{create(X,Y,Q){return this._client.post(T`/vector_stores/${X}/files`,{body:Y,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}retrieve(X,Y,Q){let{vector_store_id:Z}=Y;return this._client.get(T`/vector_stores/${Z}/files/${X}`,{...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}update(X,Y,Q){let{vector_store_id:Z,...W}=Y;return this._client.post(T`/vector_stores/${Z}/files/${X}`,{body:W,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}list(X,Y={},Q){return this._client.getAPIList(T`/vector_stores/${X}/files`,s,{query:Y,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}delete(X,Y,Q){let{vector_store_id:Z}=Y;return this._client.delete(T`/vector_stores/${Z}/files/${X}`,{...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}async createAndPoll(X,Y,Q){let Z=await this.create(X,Y,Q);return await this.poll(X,Z.id,Q)}async poll(X,Y,Q){let Z=b([Q?.headers,{"X-Stainless-Poll-Helper":"true","X-Stainless-Custom-Poll-Interval":Q?.pollIntervalMs?.toString()??void 0}]);while(!0){let W=await this.retrieve(Y,{vector_store_id:X},{...Q,headers:Z}).withResponse(),$=W.data;switch($.status){case"in_progress":let J=5000;if(Q?.pollIntervalMs)J=Q.pollIntervalMs;else{let G=W.response.headers.get("openai-poll-after-ms");if(G){let K=parseInt(G);if(!isNaN(K))J=K}}await _1(J);break;case"failed":case"completed":return $}}}async upload(X,Y,Q){let Z=await this._client.files.create({file:Y,purpose:"assistants"},Q);return this.create(X,{file_id:Z.id},Q)}async uploadAndPoll(X,Y,Q){let Z=await this.upload(X,Y,Q);return await this.poll(X,Z.id,Q)}content(X,Y,Q){let{vector_store_id:Z}=Y;return this._client.getAPIList(T`/vector_stores/${Z}/files/${X}/content`,e1,{...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}}class _6 extends M{constructor(){super(...arguments);this.files=new v7(this._client),this.fileBatches=new _7(this._client)}create(X,Y){return this._client.post("/vector_stores",{body:X,...Y,headers:b([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}retrieve(X,Y){return this._client.get(T`/vector_stores/${X}`,{...Y,headers:b([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}update(X,Y,Q){return this._client.post(T`/vector_stores/${X}`,{body:Y,...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}list(X={},Y){return this._client.getAPIList("/vector_stores",s,{query:X,...Y,headers:b([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}delete(X,Y){return this._client.delete(T`/vector_stores/${X}`,{...Y,headers:b([{"OpenAI-Beta":"assistants=v2"},Y?.headers])})}search(X,Y,Q){return this._client.getAPIList(T`/vector_stores/${X}/search`,e1,{body:Y,method:"post",...Q,headers:b([{"OpenAI-Beta":"assistants=v2"},Q?.headers])})}}_6.Files=v7;_6.FileBatches=_7;class kX extends M{create(X,Y){return this._client.post("/videos",X6({body:X,...Y},this._client))}retrieve(X,Y){return this._client.get(T`/videos/${X}`,Y)}list(X={},Y){return this._client.getAPIList("/videos",R6,{query:X,...Y})}delete(X,Y){return this._client.delete(T`/videos/${X}`,Y)}downloadContent(X,Y={},Q){return this._client.get(T`/videos/${X}/content`,{query:Y,...Q,headers:b([{Accept:"application/binary"},Q?.headers]),__binaryResponse:!0})}remix(X,Y,Q){return this._client.post(T`/videos/${X}/remix`,X6({body:Y,...Q},this._client))}}var _X,lz,UQ;class vX extends M{constructor(){super(...arguments);_X.add(this)}async unwrap(X,Y,Q=this._client.webhookSecret,Z=300){return await this.verifySignature(X,Y,Q,Z),JSON.parse(X)}async verifySignature(X,Y,Q=this._client.webhookSecret,Z=300){if(typeof crypto>"u"||typeof crypto.subtle.importKey!=="function"||typeof crypto.subtle.verify!=="function")throw Error("Webhook signature verification is only supported when the `crypto` global is defined");j(this,_X,"m",lz).call(this,Q);let W=b([Y]).values,$=j(this,_X,"m",UQ).call(this,W,"webhook-signature"),J=j(this,_X,"m",UQ).call(this,W,"webhook-timestamp"),G=j(this,_X,"m",UQ).call(this,W,"webhook-id"),K=parseInt(J,10);if(isNaN(K))throw new t1("Invalid webhook timestamp format");let B=Math.floor(Date.now()/1000);if(B-K>Z)throw new t1("Webhook timestamp is too old");if(K>B+Z)throw new t1("Webhook timestamp is too new");let H=$.split(" ").map((L)=>L.startsWith("v1,")?L.substring(3):L),V=Q.startsWith("whsec_")?Buffer.from(Q.replace("whsec_",""),"base64"):Buffer.from(Q,"utf-8"),z=G?`${G}.${J}.${X}`:`${J}.${X}`,F=await crypto.subtle.importKey("raw",V,{name:"HMAC",hash:"SHA-256"},!1,["verify"]);for(let L of H)try{let q=Buffer.from(L,"base64");if(await crypto.subtle.verify("HMAC",F,q,new TextEncoder().encode(z)))return}catch{continue}throw new t1("The given webhook signature does not match the expected signature")}}_X=new WeakSet,lz=function(Y){if(typeof Y!=="string"||Y.length===0)throw Error("The webhook secret must either be set using the env var, OPENAI_WEBHOOK_SECRET, on the client class, OpenAI({ webhookSecret: '123' }), or passed to this function")},UQ=function(Y,Q){if(!Y)throw Error("Headers are required");let Z=Y.get(Q);if(Z===null||Z===void 0)throw Error(`Missing required header: ${Q}`);return Z};var KW,BW,LQ,iz;class p{constructor({baseURL:X=I6("OPENAI_BASE_URL"),apiKey:Y=I6("OPENAI_API_KEY"),organization:Q=I6("OPENAI_ORG_ID")??null,project:Z=I6("OPENAI_PROJECT_ID")??null,webhookSecret:W=I6("OPENAI_WEBHOOK_SECRET")??null,...$}={}){if(KW.add(this),LQ.set(this,void 0),this.completions=new NX(this),this.chat=new G8(this),this.embeddings=new jX(this),this.files=new RX(this),this.images=new IX(this),this.audio=new Z6(this),this.moderations=new bX(this),this.models=new SX(this),this.fineTuning=new g1(this),this.graders=new O8(this),this.vectorStores=new _6(this),this.webhooks=new vX(this),this.beta=new h1(this),this.batches=new DX(this),this.uploads=new D8(this),this.responses=new y6(this),this.realtime=new b6(this),this.conversations=new L8(this),this.evals=new q8(this),this.containers=new U8(this),this.skills=new k6(this),this.videos=new kX(this),Y===void 0)throw new f("Missing credentials. Please pass an `apiKey`, or set the `OPENAI_API_KEY` environment variable.");let J={apiKey:Y,organization:Q,project:Z,webhookSecret:W,...$,baseURL:X||"https://api.openai.com/v1"};if(!J.dangerouslyAllowBrowser&&nV())throw new f(`It looks like you're running in a browser-like environment.
|
|
349
|
-
|
|
350
|
-
This is disabled by default, as it risks exposing your secret API credentials to attackers.
|
|
351
|
-
If you understand the risks and have appropriate mitigations in place,
|
|
352
|
-
you can set the \`dangerouslyAllowBrowser\` option to \`true\`, e.g.,
|
|
353
|
-
|
|
354
|
-
new OpenAI({ apiKey, dangerouslyAllowBrowser: true });
|
|
355
|
-
|
|
356
|
-
https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety
|
|
357
|
-
`);this.baseURL=J.baseURL,this.timeout=J.timeout??BW.DEFAULT_TIMEOUT,this.logger=J.logger??console;let G="warn";this.logLevel=G,this.logLevel=m3(J.logLevel,"ClientOptions.logLevel",this)??m3(I6("OPENAI_LOG"),"process.env['OPENAI_LOG']",this)??G,this.fetchOptions=J.fetchOptions,this.maxRetries=J.maxRetries??2,this.fetch=J.fetch??aV(),d(this,LQ,tV,"f"),this._options=J,this.apiKey=typeof Y==="string"?Y:"Missing Key",this.organization=Q,this.project=Z,this.webhookSecret=W}withOptions(X){return new this.constructor({...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this.apiKey,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret,...X})}defaultQuery(){return this._options.defaultQuery}validateHeaders({values:X,nulls:Y}){return}async authHeaders(X){return b([{Authorization:`Bearer ${this.apiKey}`}])}stringifyQuery(X){return g3(X,{arrayFormat:"brackets"})}getUserAgent(){return`${this.constructor.name}/JS ${E6}`}defaultIdempotencyKey(){return`stainless-node-retry-${I3()}`}makeStatusError(X,Y,Q,Z){return M0.generate(X,Y,Q,Z)}async _callApiKey(){let X=this._options.apiKey;if(typeof X!=="function")return!1;let Y;try{Y=await X()}catch(Q){if(Q instanceof f)throw Q;throw new f(`Failed to get token from 'apiKey' function: ${Q.message}`,{cause:Q})}if(typeof Y!=="string"||!Y)throw new f(`Expected 'apiKey' function argument to return a string but it returned ${Y}`);return this.apiKey=Y,!0}buildURL(X,Y,Q){let Z=!j(this,KW,"m",iz).call(this)&&Q||this.baseURL,W=gV(X)?new URL(X):new URL(Z+(Z.endsWith("/")&&X.startsWith("/")?X.slice(1):X)),$=this.defaultQuery();if(!uV($))Y={...$,...Y};if(typeof Y==="object"&&Y&&!Array.isArray(Y))W.search=this.stringifyQuery(Y);return W.toString()}async prepareOptions(X){await this._callApiKey()}async prepareRequest(X,{url:Y,options:Q}){}get(X,Y){return this.methodRequest("get",X,Y)}post(X,Y){return this.methodRequest("post",X,Y)}patch(X,Y){return this.methodRequest("patch",X,Y)}put(X,Y){return this.methodRequest("put",X,Y)}delete(X,Y){return this.methodRequest("delete",X,Y)}methodRequest(X,Y,Q){return this.request(Promise.resolve(Q).then((Z)=>{return{method:X,path:Y,...Z}}))}request(X,Y=null){return new W8(this,this.makeRequest(X,Y,void 0))}async makeRequest(X,Y,Q){let Z=await X,W=Z.maxRetries??this.maxRetries;if(Y==null)Y=W;await this.prepareOptions(Z);let{req:$,url:J,timeout:G}=await this.buildRequest(Z,{retryCount:W-Y});await this.prepareRequest($,{url:J,options:Z});let K="log_"+(Math.random()*16777216|0).toString(16).padStart(6,"0"),B=Q===void 0?"":`, retryOf: ${Q}`,H=Date.now();if(E0(this).debug(`[${K}] sending request`,o1({retryOfRequestLogID:Q,method:Z.method,url:J,options:Z,headers:$.headers})),Z.signal?.aborted)throw new j0;let V=new AbortController,z=await this.fetchWithTimeout(J,$,G,V).catch(_9),F=Date.now();if(z instanceof globalThis.Error){let w=`retrying, ${Y} attempts remaining`;if(Z.signal?.aborted)throw new j0;let O=k9(z)||/timed? ?out/i.test(String(z)+("cause"in z?String(z.cause):""));if(Y)return E0(this).info(`[${K}] connection ${O?"timed out":"failed"} - ${w}`),E0(this).debug(`[${K}] connection ${O?"timed out":"failed"} (${w})`,o1({retryOfRequestLogID:Q,url:J,durationMs:F-H,message:z.message})),this.retryRequest(Z,Y,Q??K);if(E0(this).info(`[${K}] connection ${O?"timed out":"failed"} - error; no more retries left`),E0(this).debug(`[${K}] connection ${O?"timed out":"failed"} (error; no more retries left)`,o1({retryOfRequestLogID:Q,url:J,durationMs:F-H,message:z.message})),O)throw new s1;throw new Z8({cause:z})}let L=[...z.headers.entries()].filter(([w])=>w==="x-request-id").map(([w,O])=>", "+w+": "+JSON.stringify(O)).join(""),q=`[${K}${B}${L}] ${$.method} ${J} ${z.ok?"succeeded":"failed"} with status ${z.status} in ${F-H}ms`;if(!z.ok){let w=await this.shouldRetry(z);if(Y&&w){let I=`retrying, ${Y} attempts remaining`;return await sV(z.body),E0(this).info(`${q} - ${I}`),E0(this).debug(`[${K}] response error (${I})`,o1({retryOfRequestLogID:Q,url:z.url,status:z.status,headers:z.headers,durationMs:F-H})),this.retryRequest(Z,Y,Q??K,z.headers)}let O=w?"error; no more retries left":"error; not retryable";E0(this).info(`${q} - ${O}`);let R=await z.text().catch((I)=>_9(I).message),P=cV(R),D=P?void 0:R;throw E0(this).debug(`[${K}] response error (${O})`,o1({retryOfRequestLogID:Q,url:z.url,status:z.status,headers:z.headers,message:D,durationMs:Date.now()-H})),this.makeStatusError(z.status,P,D,z.headers)}return E0(this).info(q),E0(this).debug(`[${K}] response start`,o1({retryOfRequestLogID:Q,url:z.url,status:z.status,headers:z.headers,durationMs:F-H})),{response:z,options:Z,controller:V,requestLogID:K,retryOfRequestLogID:Q,startTime:H}}getAPIList(X,Y,Q){return this.requestAPIList(Y,Q&&"then"in Q?Q.then((Z)=>({method:"get",path:X,...Z})):{method:"get",path:X,...Q})}requestAPIList(X,Y){let Q=this.makeRequest(Y,null,void 0);return new a4(this,Q,X)}async fetchWithTimeout(X,Y,Q,Z){let{signal:W,method:$,...J}=Y||{},G=this._makeAbort(Z);if(W)W.addEventListener("abort",G,{once:!0});let K=setTimeout(G,Q),B=globalThis.ReadableStream&&J.body instanceof globalThis.ReadableStream||typeof J.body==="object"&&J.body!==null&&Symbol.asyncIterator in J.body,H={signal:Z.signal,...B?{duplex:"half"}:{},method:"GET",...J};if($)H.method=$.toUpperCase();try{return await this.fetch.call(void 0,X,H)}finally{clearTimeout(K)}}async shouldRetry(X){let Y=X.headers.get("x-should-retry");if(Y==="true")return!0;if(Y==="false")return!1;if(X.status===408)return!0;if(X.status===409)return!0;if(X.status===429)return!0;if(X.status>=500)return!0;return!1}async retryRequest(X,Y,Q,Z){let W,$=Z?.get("retry-after-ms");if($){let G=parseFloat($);if(!Number.isNaN(G))W=G}let J=Z?.get("retry-after");if(J&&!W){let G=parseFloat(J);if(!Number.isNaN(G))W=G*1000;else W=Date.parse(J)-Date.now()}if(!(W&&0<=W&&W<60000)){let G=X.maxRetries??this.maxRetries;W=this.calculateDefaultRetryTimeoutMillis(Y,G)}return await _1(W),this.makeRequest(X,Y-1,Q)}calculateDefaultRetryTimeoutMillis(X,Y){let W=Y-X,$=Math.min(0.5*Math.pow(2,W),8),J=1-Math.random()*0.25;return $*J*1000}async buildRequest(X,{retryCount:Y=0}={}){let Q={...X},{method:Z,path:W,query:$,defaultBaseURL:J}=Q,G=this.buildURL(W,$,J);if("timeout"in Q)dV("timeout",Q.timeout);Q.timeout=Q.timeout??this.timeout;let{bodyHeaders:K,body:B}=this.buildBody({options:Q}),H=await this.buildHeaders({options:X,method:Z,bodyHeaders:K,retryCount:Y});return{req:{method:Z,headers:H,...Q.signal&&{signal:Q.signal},...globalThis.ReadableStream&&B instanceof globalThis.ReadableStream&&{duplex:"half"},...B&&{body:B},...this.fetchOptions??{},...Q.fetchOptions??{}},url:G,timeout:Q.timeout}}async buildHeaders({options:X,method:Y,bodyHeaders:Q,retryCount:Z}){let W={};if(this.idempotencyHeader&&Y!=="get"){if(!X.idempotencyKey)X.idempotencyKey=this.defaultIdempotencyKey();W[this.idempotencyHeader]=X.idempotencyKey}let $=b([W,{Accept:"application/json","User-Agent":this.getUserAgent(),"X-Stainless-Retry-Count":String(Z),...X.timeout?{"X-Stainless-Timeout":String(Math.trunc(X.timeout/1000))}:{},...rV(),"OpenAI-Organization":this.organization,"OpenAI-Project":this.project},await this.authHeaders(X),this._options.defaultHeaders,Q,X.headers]);return this.validateHeaders($),$.values}_makeAbort(X){return()=>X.abort()}buildBody({options:{body:X,headers:Y}}){if(!X)return{bodyHeaders:void 0,body:void 0};let Q=b([Y]);if(ArrayBuffer.isView(X)||X instanceof ArrayBuffer||X instanceof DataView||typeof X==="string"&&Q.values.has("content-type")||globalThis.Blob&&X instanceof globalThis.Blob||X instanceof FormData||X instanceof URLSearchParams||globalThis.ReadableStream&&X instanceof globalThis.ReadableStream)return{bodyHeaders:void 0,body:X};else if(typeof X==="object"&&((Symbol.asyncIterator in X)||(Symbol.iterator in X)&&("next"in X)&&typeof X.next==="function"))return{bodyHeaders:void 0,body:u4(X)};else return j(this,LQ,"f").call(this,{body:X,headers:Q})}}BW=p,LQ=new WeakMap,KW=new WeakSet,iz=function(){return this.baseURL!=="https://api.openai.com/v1"};p.OpenAI=BW;p.DEFAULT_TIMEOUT=600000;p.OpenAIError=f;p.APIError=M0;p.APIConnectionError=Z8;p.APIConnectionTimeoutError=s1;p.APIUserAbortError=j0;p.NotFoundError=g9;p.ConflictError=u9;p.RateLimitError=d9;p.BadRequestError=v9;p.AuthenticationError=f9;p.InternalServerError=c9;p.PermissionDeniedError=h9;p.UnprocessableEntityError=m9;p.InvalidWebhookSignatureError=t1;p.toFile=t9;p.Completions=NX;p.Chat=G8;p.Embeddings=jX;p.Files=RX;p.Images=IX;p.Audio=Z6;p.Moderations=bX;p.Models=SX;p.FineTuning=g1;p.Graders=O8;p.VectorStores=_6;p.Webhooks=vX;p.Beta=h1;p.Batches=DX;p.Uploads=D8;p.Responses=y6;p.Realtime=b6;p.Conversations=L8;p.Evals=q8;p.Containers=U8;p.Skills=k6;p.Videos=kX;function _M(X){if(String(X).includes("context_length_exceeded"))return!0;if("message"in X&&typeof X.message==="string"&&(X.message.includes("Input tokens exceed the configured limit")||X.message.includes("exceeds the context window")))return!0;return!1}function u1(X){if(!X||typeof X!=="object")return X;let Y;if(X.constructor.name===s1.name&&"message"in X&&typeof X.message==="string")Y=Error(X.message),Y.name="TimeoutError";else if(X.constructor.name===j0.name&&"message"in X&&typeof X.message==="string")Y=Error(X.message),Y.name="AbortError";else if(_M(X))Y=nz.fromError(X);else if("status"in X&&X.status===400&&"message"in X&&typeof X.message==="string"&&X.message.includes("tool_calls"))Y=y9(X,"INVALID_TOOL_RESULTS");else if("status"in X&&X.status===401)Y=y9(X,"MODEL_AUTHENTICATION");else if("status"in X&&X.status===429)Y=y9(X,"MODEL_RATE_LIMIT");else if("status"in X&&X.status===404)Y=y9(X,"MODEL_NOT_FOUND");else Y=X;return Y}var VW=(X)=>X();function h7(X){if(!X)return!1;if(/^o\d/.test(X??""))return!0;if(X.startsWith("gpt-5")&&!X.startsWith("gpt-5-chat"))return!0;return!1}function vM(X){if(X.role!=="system"&&X.role!=="developer"&&X.role!=="assistant"&&X.role!=="user"&&X.role!=="function"&&X.role!=="tool")console.warn(`Unknown message role: ${X.role}`);return X.role}function v6(X){let Y=X._getType();switch(Y){case"system":return"system";case"ai":return"assistant";case"human":return"user";case"function":return"function";case"tool":return"tool";case"generic":if(!f7.isInstance(X))throw Error("Invalid generic chat message");return vM(X);default:throw Error(`Unknown message type: ${Y}`)}}function f6(X){let{azureOpenAIApiDeploymentName:Y,azureOpenAIApiInstanceName:Q,azureOpenAIApiKey:Z,azureOpenAIBasePath:W,baseURL:$,azureADTokenProvider:J,azureOpenAIEndpoint:G}=X;if((Z||J)&&W&&Y)return`${W}/${Y}`;if((Z||J)&&G&&Y)return`${G}/openai/deployments/${Y}`;if(Z||J){if(!Q)throw Error("azureOpenAIApiInstanceName is required when using azureOpenAIApiKey");if(!Y)throw Error("azureOpenAIApiDeploymentName is a required parameter when using azureOpenAIApiKey");return`https://${Q}.openai.azure.com/openai/deployments/${Y}`}return $}function zW(X){return typeof Headers<"u"&&X!==null&&typeof X==="object"&&Object.prototype.toString.call(X)==="[object Headers]"}function az(X){let Y=VW(()=>{if(zW(X))return X;else if(Array.isArray(X))return new Headers(X);else if(typeof X==="object"&&X!==null&&"values"in X&&zW(X.values))return X.values;else if(typeof X==="object"&&X!==null){let Q=Object.entries(X).filter(([,Z])=>typeof Z==="string").map(([Z,W])=>[Z,W]);return new Headers(Q)}return new Headers});return Object.fromEntries(Y.entries())}function sz(){let X=rz();if(X==="node"||X==="deno")X=`(${X}/${process.version}; ${process.platform}; ${process.arch})`;return X}function h6(X,Y=!1,Q="1.0.0"){let Z=az(X),W=sz(),$=`langchainjs${Y?"-azure":""}-openai`;return{...Z,"User-Agent":Z["User-Agent"]?`${$}/${Q} (${W})${Z["User-Agent"]}`:`${$}/${Q} (${W})`}}function tz(X,Y){let Q;if(FW(X))Q=UW(X);else Q=X;if(Y?.strict!==void 0)Q.function.strict=Y.strict;return Q}function fM(X){return X.anyOf!==void 0&&Array.isArray(X.anyOf)}function oz(X){let Y=["namespace functions {",""];for(let Q of X){if(Q.description)Y.push(`// ${Q.description}`);if(Object.keys(Q.parameters.properties??{}).length>0)Y.push(`type ${Q.name} = (_: {`),Y.push(ez(Q.parameters,0)),Y.push("}) => any;");else Y.push(`type ${Q.name} = () => any;`);Y.push("")}return Y.push("} // namespace functions"),Y.join(`
|
|
358
|
-
`)}function ez(X,Y){let Q=[];for(let[Z,W]of Object.entries(X.properties??{})){if(W.description&&Y<2)Q.push(`// ${W.description}`);if(X.required?.includes(Z))Q.push(`${Z}: ${qQ(W,Y)},`);else Q.push(`${Z}?: ${qQ(W,Y)},`)}return Q.map((Z)=>" ".repeat(Y)+Z).join(`
|
|
359
|
-
`)}function qQ(X,Y){if(fM(X))return X.anyOf.map((Q)=>qQ(Q,Y)).join(" | ");switch(X.type){case"string":if(X.enum)return X.enum.map((Q)=>`"${Q}"`).join(" | ");return"string";case"number":if(X.enum)return X.enum.map((Q)=>`${Q}`).join(" | ");return"number";case"integer":if(X.enum)return X.enum.map((Q)=>`${Q}`).join(" | ");return"number";case"boolean":return"boolean";case"null":return"null";case"object":return["{",ez(X,Y+2),"}"].join(`
|
|
360
|
-
`);case"array":if(X.items)return`${qQ(X.items,Y)}[]`;return"any[]";default:return""}}function OQ(X){return"type"in X&&X.type!=="function"}function XF(X){return typeof X==="object"&&X!==null&&"extras"in X&&typeof X.extras==="object"&&X.extras!==null&&"providerToolDefinition"in X.extras&&typeof X.extras.providerToolDefinition==="object"&&X.extras.providerToolDefinition!==null}function g7(X){return typeof X==="object"&&X!==null&&"metadata"in X&&typeof X.metadata==="object"&&X.metadata!==null&&"customTool"in X.metadata&&typeof X.metadata.customTool==="object"&&X.metadata.customTool!==null}function YF(X){let Y=()=>{if(!X.format)return;if(X.format.type==="grammar")return{type:"grammar",grammar:{definition:X.format.definition,syntax:X.format.syntax}};if(X.format.type==="text")return{type:"text"}};return{type:"custom",custom:{name:X.name,description:X.description,format:Y()}}}var ZF=Symbol("Let zodToJsonSchema decide on which parser to use"),QF={name:void 0,$refStrategy:"root",effectStrategy:"input",pipeStrategy:"all",dateStrategy:"format:date-time",mapStrategy:"entries",nullableStrategy:"from-target",removeAdditionalStrategy:"passthrough",definitionPath:"definitions",target:"jsonSchema7",strictUnions:!1,errorMessages:!1,markdownDescription:!1,patternStrategy:"escape",applyRegexFlags:!1,emailStrategy:"format:email",base64Strategy:"contentEncoding:base64",nameStrategy:"ref"},WF=(X)=>{return typeof X==="string"?{...QF,basePath:["#"],definitions:{},name:X}:{...QF,basePath:["#"],definitions:{},...X}};var u7=(X)=>{return"_def"in X?X._def:X};function $F(X){if(!X)return!0;for(let Y in X)return!1;return!0}var JF=(X)=>{let Y=WF(X),Q=Y.name!==void 0?[...Y.basePath,Y.definitionPath,Y.name]:Y.basePath;return{...Y,currentPath:Q,propertyPath:void 0,seenRefs:new Set,seen:new Map(Object.entries(Y.definitions).map(([Z,W])=>[u7(W),{def:u7(W),path:[...Y.basePath,Y.definitionPath,Z],jsonSchema:void 0}]))}};function LW(X,Y,Q,Z){if(!Z?.errorMessages)return;if(Q)X.errorMessage={...X.errorMessage,[Y]:Q}}function Z0(X,Y,Q,Z,W){X[Y]=Q,LW(X,Y,Z,W)}function GF(){return{}}function KF(X,Y){let Q={type:"array"};if(X.type?._def?.typeName!==t.ZodAny)Q.items=l(X.type._def,{...Y,currentPath:[...Y.currentPath,"items"]});if(X.minLength)Z0(Q,"minItems",X.minLength.value,X.minLength.message,Y);if(X.maxLength)Z0(Q,"maxItems",X.maxLength.value,X.maxLength.message,Y);if(X.exactLength)Z0(Q,"minItems",X.exactLength.value,X.exactLength.message,Y),Z0(Q,"maxItems",X.exactLength.value,X.exactLength.message,Y);return Q}function BF(X,Y){let Q={type:"integer",format:"int64"};if(!X.checks)return Q;for(let Z of X.checks)switch(Z.kind){case"min":if(Y.target==="jsonSchema7")if(Z.inclusive)Z0(Q,"minimum",Z.value,Z.message,Y);else Z0(Q,"exclusiveMinimum",Z.value,Z.message,Y);else{if(!Z.inclusive)Q.exclusiveMinimum=!0;Z0(Q,"minimum",Z.value,Z.message,Y)}break;case"max":if(Y.target==="jsonSchema7")if(Z.inclusive)Z0(Q,"maximum",Z.value,Z.message,Y);else Z0(Q,"exclusiveMaximum",Z.value,Z.message,Y);else{if(!Z.inclusive)Q.exclusiveMaximum=!0;Z0(Q,"maximum",Z.value,Z.message,Y)}break;case"multipleOf":Z0(Q,"multipleOf",Z.value,Z.message,Y);break}return Q}function HF(){return{type:"boolean"}}function VF(X,Y){return l(X.type._def,Y)}var zF=(X,Y)=>{return l(X.innerType._def,Y)};function qW(X,Y,Q){let Z=Q??Y.dateStrategy;if(Array.isArray(Z))return{anyOf:Z.map((W,$)=>qW(X,Y,W))};switch(Z){case"string":case"format:date-time":return{type:"string",format:"date-time"};case"format:date":return{type:"string",format:"date"};case"integer":return hM(X,Y)}}var hM=(X,Y)=>{let Q={type:"integer",format:"unix-time"};if(Y.target==="openApi3")return Q;for(let Z of X.checks)switch(Z.kind){case"min":Z0(Q,"minimum",Z.value,Z.message,Y);break;case"max":Z0(Q,"maximum",Z.value,Z.message,Y);break}return Q};function FF(X,Y){return{...l(X.innerType._def,Y),default:X.defaultValue()}}function UF(X,Y,Q){return Y.effectStrategy==="input"?l(X.schema._def,Y,Q):{}}function LF(X){return{type:"string",enum:[...X.values]}}var gM=(X)=>{if("type"in X&&X.type==="string")return!1;return"allOf"in X};function qF(X,Y){let Q=[l(X.left._def,{...Y,currentPath:[...Y.currentPath,"allOf","0"]}),l(X.right._def,{...Y,currentPath:[...Y.currentPath,"allOf","1"]})].filter(($)=>!!$),Z=Y.target==="jsonSchema2019-09"?{unevaluatedProperties:!1}:void 0,W=[];return Q.forEach(($)=>{if(gM($)){if(W.push(...$.allOf),$.unevaluatedProperties===void 0)Z=void 0}else{let J=$;if("additionalProperties"in $&&$.additionalProperties===!1){let{additionalProperties:G,...K}=$;J=K}else Z=void 0;W.push(J)}}),W.length?{allOf:W,...Z}:void 0}function OF(X,Y){let Q=typeof X.value;if(Q!=="bigint"&&Q!=="number"&&Q!=="boolean"&&Q!=="string")return{type:Array.isArray(X.value)?"array":"object"};if(Y.target==="openApi3")return{type:Q==="bigint"?"integer":Q,enum:[X.value]};return{type:Q==="bigint"?"integer":Q,const:X.value}}var OW,P8={cuid:/^[cC][^\s-]{8,}$/,cuid2:/^[0-9a-z]+$/,ulid:/^[0-9A-HJKMNP-TV-Z]{26}$/,email:/^(?!\.)(?!.*\.\.)([a-zA-Z0-9_'+\-\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\-]*\.)+[a-zA-Z]{2,}$/,emoji:()=>{if(OW===void 0)OW=RegExp("^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$","u");return OW},uuid:/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/,ipv4:/^(?:(?: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])$/,ipv6:/^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,base64:/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,nanoid:/^[a-zA-Z0-9_-]{21}$/};function DQ(X,Y){let Q={type:"string"};function Z(W){return Y.patternStrategy==="escape"?uM(W):W}if(X.checks)for(let W of X.checks)switch(W.kind){case"min":Z0(Q,"minLength",typeof Q.minLength==="number"?Math.max(Q.minLength,W.value):W.value,W.message,Y);break;case"max":Z0(Q,"maxLength",typeof Q.maxLength==="number"?Math.min(Q.maxLength,W.value):W.value,W.message,Y);break;case"email":switch(Y.emailStrategy){case"format:email":R1(Q,"email",W.message,Y);break;case"format:idn-email":R1(Q,"idn-email",W.message,Y);break;case"pattern:zod":T1(Q,P8.email,W.message,Y);break}break;case"url":R1(Q,"uri",W.message,Y);break;case"uuid":R1(Q,"uuid",W.message,Y);break;case"regex":T1(Q,W.regex,W.message,Y);break;case"cuid":T1(Q,P8.cuid,W.message,Y);break;case"cuid2":T1(Q,P8.cuid2,W.message,Y);break;case"startsWith":T1(Q,RegExp(`^${Z(W.value)}`),W.message,Y);break;case"endsWith":T1(Q,RegExp(`${Z(W.value)}$`),W.message,Y);break;case"datetime":R1(Q,"date-time",W.message,Y);break;case"date":R1(Q,"date",W.message,Y);break;case"time":R1(Q,"time",W.message,Y);break;case"duration":R1(Q,"duration",W.message,Y);break;case"length":Z0(Q,"minLength",typeof Q.minLength==="number"?Math.max(Q.minLength,W.value):W.value,W.message,Y),Z0(Q,"maxLength",typeof Q.maxLength==="number"?Math.min(Q.maxLength,W.value):W.value,W.message,Y);break;case"includes":{T1(Q,RegExp(Z(W.value)),W.message,Y);break}case"ip":{if(W.version!=="v6")R1(Q,"ipv4",W.message,Y);if(W.version!=="v4")R1(Q,"ipv6",W.message,Y);break}case"emoji":T1(Q,P8.emoji,W.message,Y);break;case"ulid":{T1(Q,P8.ulid,W.message,Y);break}case"base64":{switch(Y.base64Strategy){case"format:binary":{R1(Q,"binary",W.message,Y);break}case"contentEncoding:base64":{Z0(Q,"contentEncoding","base64",W.message,Y);break}case"pattern:zod":{T1(Q,P8.base64,W.message,Y);break}}break}case"nanoid":T1(Q,P8.nanoid,W.message,Y);case"toLowerCase":case"toUpperCase":case"trim":break;default:(($)=>{})(W)}return Q}var uM=(X)=>Array.from(X).map((Y)=>/[a-zA-Z0-9]/.test(Y)?Y:`\\${Y}`).join(""),R1=(X,Y,Q,Z)=>{if(X.format||X.anyOf?.some((W)=>W.format)){if(!X.anyOf)X.anyOf=[];if(X.format){if(X.anyOf.push({format:X.format,...X.errorMessage&&Z.errorMessages&&{errorMessage:{format:X.errorMessage.format}}}),delete X.format,X.errorMessage){if(delete X.errorMessage.format,Object.keys(X.errorMessage).length===0)delete X.errorMessage}}X.anyOf.push({format:Y,...Q&&Z.errorMessages&&{errorMessage:{format:Q}}})}else Z0(X,"format",Y,Q,Z)},T1=(X,Y,Q,Z)=>{if(X.pattern||X.allOf?.some((W)=>W.pattern)){if(!X.allOf)X.allOf=[];if(X.pattern){if(X.allOf.push({pattern:X.pattern,...X.errorMessage&&Z.errorMessages&&{errorMessage:{pattern:X.errorMessage.pattern}}}),delete X.pattern,X.errorMessage){if(delete X.errorMessage.pattern,Object.keys(X.errorMessage).length===0)delete X.errorMessage}}X.allOf.push({pattern:DF(Y,Z),...Q&&Z.errorMessages&&{errorMessage:{pattern:Q}}})}else Z0(X,"pattern",DF(Y,Z),Q,Z)},DF=(X,Y)=>{let Q=typeof X==="function"?X():X;if(!Y.applyRegexFlags||!Q.flags)return Q.source;let Z={i:Q.flags.includes("i"),m:Q.flags.includes("m"),s:Q.flags.includes("s")},W=Z.i?Q.source.toLowerCase():Q.source,$="",J=!1,G=!1,K=!1;for(let B=0;B<W.length;B++){if(J){$+=W[B],J=!1;continue}if(Z.i){if(G){if(W[B].match(/[a-z]/)){if(K)$+=W[B],$+=`${W[B-2]}-${W[B]}`.toUpperCase(),K=!1;else if(W[B+1]==="-"&&W[B+2]?.match(/[a-z]/))$+=W[B],K=!0;else $+=`${W[B]}${W[B].toUpperCase()}`;continue}}else if(W[B].match(/[a-z]/)){$+=`[${W[B]}${W[B].toUpperCase()}]`;continue}}if(Z.m){if(W[B]==="^"){$+=`(^|(?<=[\r
|
|
361
|
-
]))`;continue}else if(W[B]==="$"){$+=`($|(?=[\r
|
|
362
|
-
]))`;continue}}if(Z.s&&W[B]==="."){$+=G?`${W[B]}\r
|
|
363
|
-
`:`[${W[B]}\r
|
|
364
|
-
]`;continue}if($+=W[B],W[B]==="\\")J=!0;else if(G&&W[B]==="]")G=!1;else if(!G&&W[B]==="[")G=!0}try{let B=new RegExp($)}catch{return console.warn(`Could not convert regex pattern at ${Y.currentPath.join("/")} to a flag-independent form! Falling back to the flag-ignorant source`),Q.source}return $};function PQ(X,Y){if(Y.target==="openApi3"&&X.keyType?._def.typeName===t.ZodEnum)return{type:"object",required:X.keyType._def.values,properties:X.keyType._def.values.reduce((Z,W)=>({...Z,[W]:l(X.valueType._def,{...Y,currentPath:[...Y.currentPath,"properties",W]})??{}}),{}),additionalProperties:!1};let Q={type:"object",additionalProperties:l(X.valueType._def,{...Y,currentPath:[...Y.currentPath,"additionalProperties"]})??{}};if(Y.target==="openApi3")return Q;if(X.keyType?._def.typeName===t.ZodString&&X.keyType._def.checks?.length){let Z=Object.entries(DQ(X.keyType._def,Y)).reduce((W,[$,J])=>$==="type"?W:{...W,[$]:J},{});return{...Q,propertyNames:Z}}else if(X.keyType?._def.typeName===t.ZodEnum)return{...Q,propertyNames:{enum:X.keyType._def.values}};return Q}function PF(X,Y){if(Y.mapStrategy==="record")return PQ(X,Y);let Q=l(X.keyType._def,{...Y,currentPath:[...Y.currentPath,"items","items","0"]})||{},Z=l(X.valueType._def,{...Y,currentPath:[...Y.currentPath,"items","items","1"]})||{};return{type:"array",maxItems:125,items:{type:"array",items:[Q,Z],minItems:2,maxItems:2}}}function wF(X){let Y=X.values,Z=Object.keys(X.values).filter(($)=>{return typeof Y[Y[$]]!=="number"}).map(($)=>Y[$]),W=Array.from(new Set(Z.map(($)=>typeof $)));return{type:W.length===1?W[0]==="string"?"string":"number":["string","number"],enum:Z}}function NF(){return{not:{}}}function AF(X){return X.target==="openApi3"?{enum:["null"],nullable:!0}:{type:"null"}}var m7={ZodString:"string",ZodNumber:"number",ZodBigInt:"integer",ZodBoolean:"boolean",ZodNull:"null"};function EF(X,Y){if(Y.target==="openApi3")return jF(X,Y);let Q=X.options instanceof Map?Array.from(X.options.values()):X.options;if(Q.every((Z)=>(Z._def.typeName in m7)&&(!Z._def.checks||!Z._def.checks.length))){let Z=Q.reduce((W,$)=>{let J=m7[$._def.typeName];return J&&!W.includes(J)?[...W,J]:W},[]);return{type:Z.length>1?Z:Z[0]}}else if(Q.every((Z)=>Z._def.typeName==="ZodLiteral"&&!Z.description)){let Z=Q.reduce((W,$)=>{let J=typeof $._def.value;switch(J){case"string":case"number":case"boolean":return[...W,J];case"bigint":return[...W,"integer"];case"object":if($._def.value===null)return[...W,"null"];case"symbol":case"undefined":case"function":default:return W}},[]);if(Z.length===Q.length){let W=Z.filter(($,J,G)=>G.indexOf($)===J);return{type:W.length>1?W:W[0],enum:Q.reduce(($,J)=>{return $.includes(J._def.value)?$:[...$,J._def.value]},[])}}}else if(Q.every((Z)=>Z._def.typeName==="ZodEnum"))return{type:"string",enum:Q.reduce((Z,W)=>[...Z,...W._def.values.filter(($)=>!Z.includes($))],[])};return jF(X,Y)}var jF=(X,Y)=>{let Q=(X.options instanceof Map?Array.from(X.options.values()):X.options).map((Z,W)=>l(Z._def,{...Y,currentPath:[...Y.currentPath,"anyOf",`${W}`]})).filter((Z)=>!!Z&&(!Y.strictUnions||typeof Z==="object"&&Object.keys(Z).length>0));return Q.length?{anyOf:Q}:void 0};function RF(X,Y){if(["ZodString","ZodNumber","ZodBigInt","ZodBoolean","ZodNull"].includes(X.innerType._def.typeName)&&(!X.innerType._def.checks||!X.innerType._def.checks.length)){if(Y.target==="openApi3"||Y.nullableStrategy==="property")return{type:m7[X.innerType._def.typeName],nullable:!0};return{type:[m7[X.innerType._def.typeName],"null"]}}if(Y.target==="openApi3"){let Z=l(X.innerType._def,{...Y,currentPath:[...Y.currentPath]});if(Z&&"$ref"in Z)return{allOf:[Z],nullable:!0};return Z&&{...Z,nullable:!0}}let Q=l(X.innerType._def,{...Y,currentPath:[...Y.currentPath,"anyOf","0"]});return Q&&{anyOf:[Q,{type:"null"}]}}function TF(X,Y){let Q={type:"number"};if(!X.checks)return Q;for(let Z of X.checks)switch(Z.kind){case"int":Q.type="integer",LW(Q,"type",Z.message,Y);break;case"min":if(Y.target==="jsonSchema7")if(Z.inclusive)Z0(Q,"minimum",Z.value,Z.message,Y);else Z0(Q,"exclusiveMinimum",Z.value,Z.message,Y);else{if(!Z.inclusive)Q.exclusiveMinimum=!0;Z0(Q,"minimum",Z.value,Z.message,Y)}break;case"max":if(Y.target==="jsonSchema7")if(Z.inclusive)Z0(Q,"maximum",Z.value,Z.message,Y);else Z0(Q,"exclusiveMaximum",Z.value,Z.message,Y);else{if(!Z.inclusive)Q.exclusiveMaximum=!0;Z0(Q,"maximum",Z.value,Z.message,Y)}break;case"multipleOf":Z0(Q,"multipleOf",Z.value,Z.message,Y);break}return Q}function mM(X,Y){if(Y.removeAdditionalStrategy==="strict")return X.catchall._def.typeName==="ZodNever"?X.unknownKeys!=="strict":l(X.catchall._def,{...Y,currentPath:[...Y.currentPath,"additionalProperties"]})??!0;else return X.catchall._def.typeName==="ZodNever"?X.unknownKeys==="passthrough":l(X.catchall._def,{...Y,currentPath:[...Y.currentPath,"additionalProperties"]})??!0}function MF(X,Y){let Q={type:"object",...Object.entries(X.shape()).reduce((Z,[W,$])=>{if($===void 0||$._def===void 0)return Z;let J=[...Y.currentPath,"properties",W],G=l($._def,{...Y,currentPath:J,propertyPath:J});if(G===void 0)return Z;if(Y.openaiStrictMode&&$.isOptional()&&!$.isNullable()&&typeof $._def?.defaultValue>"u")throw Error(`Zod field at \`${J.join("/")}\` uses \`.optional()\` without \`.nullable()\` which is not supported by the API. See: https://platform.openai.com/docs/guides/structured-outputs?api-mode=responses#all-fields-must-be-required`);return{properties:{...Z.properties,[W]:G},required:$.isOptional()&&!Y.openaiStrictMode?Z.required:[...Z.required,W]}},{properties:{},required:[]}),additionalProperties:mM(X,Y)};if(!Q.required.length)delete Q.required;return Q}var xF=(X,Y)=>{if(Y.propertyPath&&Y.currentPath.slice(0,Y.propertyPath.length).toString()===Y.propertyPath.toString())return l(X.innerType._def,{...Y,currentPath:Y.currentPath});let Q=l(X.innerType._def,{...Y,currentPath:[...Y.currentPath,"anyOf","1"]});return Q?{anyOf:[{not:{}},Q]}:{}};var IF=(X,Y)=>{if(Y.pipeStrategy==="input")return l(X.in._def,Y);else if(Y.pipeStrategy==="output")return l(X.out._def,Y);let Q=l(X.in._def,{...Y,currentPath:[...Y.currentPath,"allOf","0"]}),Z=l(X.out._def,{...Y,currentPath:[...Y.currentPath,"allOf",Q?"1":"0"]});return{allOf:[Q,Z].filter((W)=>W!==void 0)}};function SF(X,Y){return l(X.type._def,Y)}function bF(X,Y){let Z={type:"array",uniqueItems:!0,items:l(X.valueType._def,{...Y,currentPath:[...Y.currentPath,"items"]})};if(X.minSize)Z0(Z,"minItems",X.minSize.value,X.minSize.message,Y);if(X.maxSize)Z0(Z,"maxItems",X.maxSize.value,X.maxSize.message,Y);return Z}function CF(X,Y){if(X.rest)return{type:"array",minItems:X.items.length,items:X.items.map((Q,Z)=>l(Q._def,{...Y,currentPath:[...Y.currentPath,"items",`${Z}`]})).reduce((Q,Z)=>Z===void 0?Q:[...Q,Z],[]),additionalItems:l(X.rest._def,{...Y,currentPath:[...Y.currentPath,"additionalItems"]})};else return{type:"array",minItems:X.items.length,maxItems:X.items.length,items:X.items.map((Q,Z)=>l(Q._def,{...Y,currentPath:[...Y.currentPath,"items",`${Z}`]})).reduce((Q,Z)=>Z===void 0?Q:[...Q,Z],[])}}function yF(){return{not:{}}}function kF(){return{}}var _F=(X,Y)=>{return l(X.innerType._def,Y)};function l(X,Y,Q=!1){let Z=Y.seen.get(X);if(Y.override){let J=Y.override?.(X,Y,Z,Q);if(J!==ZF)return J}if(Z&&!Q){let J=dM(Z,Y);if(J!==void 0){if("$ref"in J)Y.seenRefs.add(J.$ref);return J}}let W={def:X,path:Y.currentPath,jsonSchema:void 0};Y.seen.set(X,W);let $=pM(X,X.typeName,Y,Q);if($)lM(X,Y,$);return W.jsonSchema=$,$}var dM=(X,Y)=>{switch(Y.$refStrategy){case"root":return{$ref:X.path.join("/")};case"extract-to-root":let Q=X.path.slice(Y.basePath.length+1).join("_");if(Q!==Y.name&&Y.nameStrategy==="duplicate-ref")Y.definitions[Q]=X.def;return{$ref:[...Y.basePath,Y.definitionPath,Q].join("/")};case"relative":return{$ref:cM(Y.currentPath,X.path)};case"none":case"seen":{if(X.path.length<Y.currentPath.length&&X.path.every((Z,W)=>Y.currentPath[W]===Z))return console.warn(`Recursive reference detected at ${Y.currentPath.join("/")}! Defaulting to any`),{};return Y.$refStrategy==="seen"?{}:void 0}}},cM=(X,Y)=>{let Q=0;for(;Q<X.length&&Q<Y.length;Q++)if(X[Q]!==Y[Q])break;return[(X.length-Q).toString(),...Y.slice(Q)].join("/")},pM=(X,Y,Q,Z)=>{switch(Y){case t.ZodString:return DQ(X,Q);case t.ZodNumber:return TF(X,Q);case t.ZodObject:return MF(X,Q);case t.ZodBigInt:return BF(X,Q);case t.ZodBoolean:return HF();case t.ZodDate:return qW(X,Q);case t.ZodUndefined:return yF();case t.ZodNull:return AF(Q);case t.ZodArray:return KF(X,Q);case t.ZodUnion:case t.ZodDiscriminatedUnion:return EF(X,Q);case t.ZodIntersection:return qF(X,Q);case t.ZodTuple:return CF(X,Q);case t.ZodRecord:return PQ(X,Q);case t.ZodLiteral:return OF(X,Q);case t.ZodEnum:return LF(X);case t.ZodNativeEnum:return wF(X);case t.ZodNullable:return RF(X,Q);case t.ZodOptional:return xF(X,Q);case t.ZodMap:return PF(X,Q);case t.ZodSet:return bF(X,Q);case t.ZodLazy:return l(X.getter()._def,Q);case t.ZodPromise:return SF(X,Q);case t.ZodNaN:case t.ZodNever:return NF();case t.ZodEffects:return UF(X,Q,Z);case t.ZodAny:return GF();case t.ZodUnknown:return kF();case t.ZodDefault:return FF(X,Q);case t.ZodBranded:return VF(X,Q);case t.ZodReadonly:return _F(X,Q);case t.ZodCatch:return zF(X,Q);case t.ZodPipeline:return IF(X,Q);case t.ZodFunction:case t.ZodVoid:case t.ZodSymbol:return;default:return((W)=>{return})(Y)}},lM=(X,Y,Q)=>{if(X.description){if(Q.description=X.description,Y.markdownDescription)Q.markdownDescription=X.description}return Q};var DW=(X,Y)=>{let Q=JF(Y),Z=typeof Y==="string"?Y:Y?.nameStrategy==="title"?void 0:Y?.name,W=l(X._def,Z===void 0?Q:{...Q,currentPath:[...Q.basePath,Q.definitionPath,Z]},!1)??{},$=typeof Y==="object"&&Y.name!==void 0&&Y.nameStrategy==="title"?Y.name:void 0;if($!==void 0)W.title=$;let J=(()=>{if($F(Q.definitions))return;let K={},B=new Set;for(let H=0;H<500;H++){let V=Object.entries(Q.definitions).filter(([z])=>!B.has(z));if(V.length===0)break;for(let[z,F]of V)K[z]=l(u7(F),{...Q,currentPath:[...Q.basePath,Q.definitionPath,z]},!0)??{},B.add(z)}return K})(),G=Z===void 0?J?{...W,[Q.definitionPath]:J}:W:Q.nameStrategy==="duplicate-ref"?{...W,...J||Q.seenRefs.size?{[Q.definitionPath]:{...J,...Q.seenRefs.size?{[Z]:W}:void 0}}:void 0}:{$ref:[...Q.$refStrategy==="relative"?[]:Q.basePath,Q.definitionPath,Z].join("/"),[Q.definitionPath]:{...J,[Z]:W}};if(Q.target==="jsonSchema7")G.$schema="http://json-schema.org/draft-07/schema#";else if(Q.target==="jsonSchema2019-09")G.$schema="https://json-schema.org/draft/2019-09/schema#";return G};function vF(X){if(X.type!=="object")throw Error(`Root schema must have type: 'object' but got type: ${X.type?`'${X.type}'`:"undefined"}`);let Y=structuredClone(X);return W6(Y,[],Y)}function PW(X){if(typeof X==="boolean")return!1;if(X.type==="null")return!0;for(let Y of X.oneOf??[])if(PW(Y))return!0;for(let Y of X.anyOf??[])if(PW(Y))return!0;return!1}function W6(X,Y,Q){if(typeof X==="boolean")throw TypeError(`Expected object schema but got boolean; path=${Y.join("/")}`);if(!w8(X))throw TypeError(`Expected ${JSON.stringify(X)} to be an object; path=${Y.join("/")}`);let Z=X.$defs;if(w8(Z))for(let[z,F]of Object.entries(Z))W6(F,[...Y,"$defs",z],Q);let W=X.definitions;if(w8(W))for(let[z,F]of Object.entries(W))W6(F,[...Y,"definitions",z],Q);if(X.type==="object"&&!("additionalProperties"in X))X.additionalProperties=!1;let J=X.required??[],G=X.properties;if(w8(G)){for(let[z,F]of Object.entries(G))if(!PW(F)&&!J.includes(z))throw Error(`Zod field at \`${[...Y,"properties",z].join("/")}\` uses \`.optional()\` without \`.nullable()\` which is not supported by the API. See: https://platform.openai.com/docs/guides/structured-outputs?api-mode=responses#all-fields-must-be-required`);X.required=Object.keys(G),X.properties=Object.fromEntries(Object.entries(G).map(([z,F])=>[z,W6(F,[...Y,"properties",z],Q)]))}let K=X.items;if(w8(K))X.items=W6(K,[...Y,"items"],Q);let B=X.anyOf;if(Array.isArray(B))X.anyOf=B.map((z,F)=>W6(z,[...Y,"anyOf",String(F)],Q));let H=X.allOf;if(Array.isArray(H))if(H.length===1){let z=W6(H[0],[...Y,"allOf","0"],Q);Object.assign(X,z),delete X.allOf}else X.allOf=H.map((z,F)=>W6(z,[...Y,"allOf",String(F)],Q));if(X.default===null)delete X.default;let V=X.$ref;if(V&&nM(X,1)){if(typeof V!=="string")throw TypeError(`Received non-string $ref - ${V}; path=${Y.join("/")}`);let z=iM(Q,V);if(typeof z==="boolean")throw Error(`Expected \`$ref: ${V}\` to resolve to an object schema but got boolean`);if(!w8(z))throw Error(`Expected \`$ref: ${V}\` to resolve to an object but got ${JSON.stringify(z)}`);return Object.assign(X,{...z,...X}),delete X.$ref,W6(X,Y,Q)}return X}function iM(X,Y){if(!Y.startsWith("#/"))throw Error(`Unexpected $ref format ${JSON.stringify(Y)}; Does not start with #/`);let Q=Y.slice(2).split("/"),Z=X;for(let W of Q){if(!w8(Z))throw Error(`encountered non-object entry while resolving ${Y} - ${JSON.stringify(Z)}`);let $=Z[W];if($===void 0)throw Error(`Key ${W} not found while resolving ${Y}`);Z=$}return Z}function w8(X){return typeof X==="object"&&X!==null&&!Array.isArray(X)}function nM(X,Y){let Q=0;for(let Z in X)if(Q++,Q>Y)return!0;return!1}function rM(X,Y){return DW(X,{openaiStrictMode:!0,name:Y.name,nameStrategy:"duplicate-ref",$refStrategy:"extract-to-root",nullableStrategy:"property"})}function aM(X){return vF(fF(X,{target:"draft-7"}))}function sM(X){return"_zod"in X}function wW(X,Y,Q){return qz({type:"json_schema",json_schema:{...Q,name:Y,strict:!0,schema:sM(X)?aM(X):rM(X,{name:Y})}},(Z)=>X.parse(JSON.parse(Z)))}var hF=["jsonSchema","functionCalling","jsonMode"];function gF(X,Y){if(typeof Y<"u"&&!hF.includes(Y))throw Error(`Invalid method: ${Y}. Supported methods are: ${hF.join(", ")}`);let Q=!X.startsWith("gpt-3")&&!X.startsWith("gpt-4-")&&X!=="gpt-4";if(Q&&!Y)return"jsonSchema";if(!Q&&Y==="jsonSchema")throw Error(`JSON Schema is not supported for model "${X}". Please use a different method, e.g. "functionCalling" or "jsonMode".`);return Y??"functionCalling"}function tM(X,Y){let Q={...X};return Object.defineProperties(Q,{$brand:{value:"auto-parseable-response-format",enumerable:!1},$parseRaw:{value:Y,enumerable:!1}}),Q}function uF(X,Y,Q){if(AW(X))return wW(X,Y,Q);if(NW(X))return tM({type:"json_schema",json_schema:{...Q,name:Y,strict:!0,schema:e0(X,{cycles:"ref",reused:"ref",override(Z){Z.jsonSchema.title=Y}})}},(Z)=>UZ(X,JSON.parse(Z)));throw Error("Unsupported schema response format")}var mF={"gpt-4o-2024-11-20":{maxInputTokens:128000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:16384,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.3-codex":{maxInputTokens:400000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128000,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5-codex":{maxInputTokens:400000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128000,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5-pro":{maxInputTokens:400000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:272000,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4o-mini":{maxInputTokens:128000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:16384,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"text-embedding-ada-002":{maxInputTokens:8192,imageInputs:!1,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1536,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5-chat-latest":{maxInputTokens:400000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128000,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"codex-mini-latest":{maxInputTokens:200000,imageInputs:!1,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.1-codex-max":{maxInputTokens:400000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128000,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4o-2024-05-13":{maxInputTokens:128000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:4096,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.2-chat-latest":{maxInputTokens:128000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:16384,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.2-codex":{maxInputTokens:400000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128000,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"o3-deep-research":{maxInputTokens:200000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},o1:{maxInputTokens:200000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.1":{maxInputTokens:400000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128000,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"o4-mini-deep-research":{maxInputTokens:200000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.3-codex-spark":{maxInputTokens:128000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:32000,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},o3:{maxInputTokens:200000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"text-embedding-3-small":{maxInputTokens:8191,imageInputs:!1,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1536,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4.1-nano":{maxInputTokens:1047576,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:32768,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"text-embedding-3-large":{maxInputTokens:8191,imageInputs:!1,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:3072,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-3.5-turbo":{maxInputTokens:16385,imageInputs:!1,audioInputs:!1,pdfInputs:!1,videoInputs:!1,maxOutputTokens:4096,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!1,imageUrlInputs:!1,pdfToolMessage:!1,imageToolMessage:!1,toolChoice:!0},"gpt-5.1-codex-mini":{maxInputTokens:400000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128000,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.2":{maxInputTokens:400000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128000,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4.1":{maxInputTokens:1047576,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:32768,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"o3-pro":{maxInputTokens:200000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4-turbo":{maxInputTokens:128000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:4096,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5":{maxInputTokens:400000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128000,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"o4-mini":{maxInputTokens:200000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4.1-mini":{maxInputTokens:1047576,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:32768,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"o1-preview":{maxInputTokens:128000,imageInputs:!1,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:32768,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"o1-pro":{maxInputTokens:200000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.1-codex":{maxInputTokens:400000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128000,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.2-pro":{maxInputTokens:400000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128000,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"o3-mini":{maxInputTokens:200000,imageInputs:!1,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:1e5,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4o-2024-08-06":{maxInputTokens:128000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:16384,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5-mini":{maxInputTokens:400000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128000,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5.1-chat-latest":{maxInputTokens:128000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:16384,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4":{maxInputTokens:8192,imageInputs:!1,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:8192,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-5-nano":{maxInputTokens:400000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:128000,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"o1-mini":{maxInputTokens:128000,imageInputs:!1,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:65536,reasoningOutput:!0,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!1,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0},"gpt-4o":{maxInputTokens:128000,imageInputs:!0,audioInputs:!1,pdfInputs:!0,videoInputs:!1,maxOutputTokens:16384,reasoningOutput:!1,imageOutputs:!1,audioOutputs:!1,videoOutputs:!1,toolCalling:!0,structuredOutput:!0,imageUrlInputs:!0,pdfToolMessage:!0,imageToolMessage:!0,toolChoice:!0}};var fX=class extends N8{temperature;topP;frequencyPenalty;presencePenalty;n;logitBias;model="gpt-3.5-turbo";modelKwargs;stop;stopSequences;user;timeout;streaming=!1;streamUsage=!0;maxTokens;logprobs;topLogprobs;apiKey;organization;__includeRawResponse;client;clientConfig;supportsStrictToolCalling;audio;modalities;reasoning;zdrEnabled;service_tier;promptCacheKey;promptCacheRetention;verbosity;defaultOptions;_llmType(){return"openai"}static lc_name(){return"ChatOpenAI"}get callKeys(){return[...super.callKeys,"options","function_call","functions","tools","tool_choice","promptIndex","response_format","seed","reasoning","reasoning_effort","service_tier"]}lc_serializable=!0;get lc_secrets(){return{apiKey:"OPENAI_API_KEY",organization:"OPENAI_ORGANIZATION"}}get lc_aliases(){return{apiKey:"openai_api_key",modelName:"model"}}get lc_serializable_keys(){return["configuration","logprobs","topLogprobs","prefixMessages","supportsStrictToolCalling","modalities","audio","temperature","maxTokens","topP","frequencyPenalty","presencePenalty","n","logitBias","user","streaming","streamUsage","model","modelName","modelKwargs","stop","stopSequences","timeout","apiKey","cache","maxConcurrency","maxRetries","verbose","callbacks","tags","metadata","disableStreaming","zdrEnabled","reasoning","promptCacheKey","promptCacheRetention","verbosity"]}getLsParams(X){let Y=this.invocationParams(X);return{ls_provider:"openai",ls_model_name:this.model,ls_model_type:"chat",ls_temperature:Y.temperature??void 0,ls_max_tokens:Y.max_tokens??void 0,ls_stop:X.stop}}_identifyingParams(){return{model_name:this.model,...this.invocationParams(),...this.clientConfig}}identifyingParams(){return this._identifyingParams()}constructor(X){super(X??{});let Y=typeof X?.configuration?.apiKey==="string"||typeof X?.configuration?.apiKey==="function"?X?.configuration?.apiKey:void 0;if(this.apiKey=X?.apiKey??Y??$6("OPENAI_API_KEY"),this.organization=X?.configuration?.organization??$6("OPENAI_ORGANIZATION"),this.model=X?.model??X?.modelName??this.model,this.modelKwargs=X?.modelKwargs??{},this.timeout=X?.timeout,this.temperature=X?.temperature??this.temperature,this.topP=X?.topP??this.topP,this.frequencyPenalty=X?.frequencyPenalty??this.frequencyPenalty,this.presencePenalty=X?.presencePenalty??this.presencePenalty,this.logprobs=X?.logprobs,this.topLogprobs=X?.topLogprobs,this.n=X?.n??this.n,this.logitBias=X?.logitBias,this.stop=X?.stopSequences??X?.stop,this.stopSequences=this.stop,this.user=X?.user,this.__includeRawResponse=X?.__includeRawResponse,this.audio=X?.audio,this.modalities=X?.modalities,this.reasoning=X?.reasoning,this.maxTokens=X?.maxCompletionTokens??X?.maxTokens,this.promptCacheKey=X?.promptCacheKey??this.promptCacheKey,this.promptCacheRetention=X?.promptCacheRetention??this.promptCacheRetention,this.verbosity=X?.verbosity??this.verbosity,this.disableStreaming=X?.disableStreaming===!0,this.streaming=X?.streaming===!0,this.disableStreaming)this.streaming=!1;if(X?.streaming===!1)this.disableStreaming=!0;if(this.streamUsage=X?.streamUsage??this.streamUsage,this.disableStreaming)this.streamUsage=!1;if(this.clientConfig={apiKey:this.apiKey,organization:this.organization,dangerouslyAllowBrowser:!0,...X?.configuration},X?.supportsStrictToolCalling!==void 0)this.supportsStrictToolCalling=X.supportsStrictToolCalling;if(X?.service_tier!==void 0)this.service_tier=X.service_tier;this.zdrEnabled=X?.zdrEnabled??!1}_getReasoningParams(X){if(!h7(this.model))return;let Y;if(this.reasoning!==void 0)Y={...Y,...this.reasoning};if(X?.reasoning!==void 0)Y={...Y,...X.reasoning};if(X?.reasoningEffort!==void 0&&Y?.effort===void 0)Y={...Y,effort:X.reasoningEffort};return Y}_getResponseFormat(X){if(X&&X.type==="json_schema"&&X.json_schema.schema&&m1(X.json_schema.schema))return uF(X.json_schema.schema,X.json_schema.name,{description:X.json_schema.description});return X}_combineCallOptions(X){return{...this.defaultOptions,...X??{}}}_getClientOptions(X){if(!this.client){let Y=f6({baseURL:this.clientConfig.baseURL}),Q={...this.clientConfig,baseURL:Y,timeout:this.timeout,maxRetries:0};if(!Q.baseURL)delete Q.baseURL;Q.defaultHeaders=h6(Q.defaultHeaders),this.client=new p(Q)}return{...this.clientConfig,...X}}_convertChatOpenAIToolToCompletionsTool(X,Y){if(g7(X))return YF(X.metadata.customTool);if(MW(X)){if(Y?.strict!==void 0)return{...X,function:{...X.function,strict:Y.strict}};return X}return tz(X,Y)}bindTools(X,Y){let Q;if(Y?.strict!==void 0)Q=Y.strict;else if(this.supportsStrictToolCalling!==void 0)Q=this.supportsStrictToolCalling;return this.withConfig({tools:X.map((Z)=>{if(OQ(Z)||g7(Z))return Z;if(XF(Z))return Z.extras.providerToolDefinition;return this._convertChatOpenAIToolToCompletionsTool(Z,{strict:Q})}),...Y})}async stream(X,Y){return super.stream(X,this._combineCallOptions(Y))}async invoke(X,Y){return super.invoke(X,this._combineCallOptions(Y))}_combineLLMOutput(...X){return X.reduce((Y,Q)=>{if(Q&&Q.tokenUsage)Y.tokenUsage.completionTokens+=Q.tokenUsage.completionTokens??0,Y.tokenUsage.promptTokens+=Q.tokenUsage.promptTokens??0,Y.tokenUsage.totalTokens+=Q.tokenUsage.totalTokens??0;return Y},{tokenUsage:{completionTokens:0,promptTokens:0,totalTokens:0}})}async getNumTokensFromMessages(X){let Y=0,Q=0,Z=0;if(this.model==="gpt-3.5-turbo-0301")Q=4,Z=-1;else Q=3,Z=1;let W=await Promise.all(X.map(async($)=>{let[J,G]=await Promise.all([this.getNumTokens($.content),this.getNumTokens(v6($))]),K=$.name!==void 0?Z+await this.getNumTokens($.name):0,B=J+Q+G+K,H=$;if(H._getType()==="function")B-=2;if(H.additional_kwargs?.function_call)B+=3;if(H?.additional_kwargs.function_call?.name)B+=await this.getNumTokens(H.additional_kwargs.function_call?.name);if(H.additional_kwargs.function_call?.arguments)try{B+=await this.getNumTokens(JSON.stringify(JSON.parse(H.additional_kwargs.function_call?.arguments)))}catch(V){console.error("Error parsing function arguments",V,JSON.stringify(H.additional_kwargs.function_call)),B+=await this.getNumTokens(H.additional_kwargs.function_call?.arguments)}return Y+=B,B}));return Y+=3,{totalCount:Y,countPerMessage:W}}async _getNumTokensFromGenerations(X){return(await Promise.all(X.map(async(Y)=>{if(Y.message.additional_kwargs?.function_call)return(await this.getNumTokensFromMessages([Y.message])).countPerMessage[0];else return await this.getNumTokens(Y.message.content)}))).reduce((Y,Q)=>Y+Q,0)}async _getEstimatedTokenCountFromPrompt(X,Y,Q){let Z=(await this.getNumTokensFromMessages(X)).totalCount;if(Y&&Q!=="auto"){let W=oz(Y);Z+=await this.getNumTokens(W),Z+=9}if(Y&&X.find((W)=>W._getType()==="system"))Z-=4;if(Q==="none")Z+=1;else if(typeof Q==="object")Z+=await this.getNumTokens(Q.name)+4;return Z}async moderateContent(X,Y){let Q=this._getClientOptions(Y?.options),Z={input:X,model:Y?.model??"omni-moderation-latest"};return this.caller.call(async()=>{try{return await this.client.moderations.create(Z,Q)}catch(W){throw u1(W)}})}get profile(){return mF[this.model]??{}}_getStructuredOutputMethod(X){let Y={...X};if(!this.model.startsWith("gpt-3")&&!this.model.startsWith("gpt-4-")&&this.model!=="gpt-4"){if(Y?.method===void 0)return"jsonSchema"}else if(Y.method==="jsonSchema")console.warn(`[WARNING]: JSON Schema is not supported for model "${this.model}". Falling back to tool calling.`);return Y.method}withStructuredOutput(X,Y){let Q,Z,{schema:W,name:$,includeRaw:J}={...Y,schema:X};if(Y?.strict!==void 0&&Y.method==="jsonMode")throw Error("Argument `strict` is only supported for `method` = 'function_calling'");let G=gF(this.model,Y?.method);if(G==="jsonMode"){if(m1(W))Z=EW.fromZodSchema(W);else Z=new RW;let V=e0(W);Q=this.withConfig({outputVersion:"v0",response_format:{type:"json_object"},ls_structured_output_format:{kwargs:{method:"json_mode"},schema:{title:$??"extract",...V}}})}else if(G==="jsonSchema"){let V={name:$??"extract",description:e7(W),schema:W,strict:Y?.strict},z=e0(V.schema);if(Q=this.withConfig({outputVersion:"v0",response_format:{type:"json_schema",json_schema:V},ls_structured_output_format:{kwargs:{method:"json_schema"},schema:{title:V.name,description:V.description,...z}}}),m1(W)){let F=EW.fromZodSchema(W);Z=u6.from((L)=>{if("parsed"in L.additional_kwargs)return L.additional_kwargs.parsed;return F})}else Z=new RW}else{let V=$??"extract";if(m1(W)){let z=e0(W);Q=this.withConfig({outputVersion:"v0",tools:[{type:"function",function:{name:V,description:z.description,parameters:z}}],tool_choice:{type:"function",function:{name:V}},ls_structured_output_format:{kwargs:{method:"function_calling"},schema:{title:V,...z}},...Y?.strict!==void 0?{strict:Y.strict}:{}}),Z=new TW({returnSingle:!0,keyName:V,zodSchema:W})}else{let z;if(typeof W.name==="string"&&typeof W.parameters==="object"&&W.parameters!=null)z=W,V=W.name;else V=W.title??V,z={name:V,description:W.description??"",parameters:W};let F=e0(W);Q=this.withConfig({outputVersion:"v0",tools:[{type:"function",function:z}],tool_choice:{type:"function",function:{name:V}},ls_structured_output_format:{kwargs:{method:"function_calling"},schema:{title:V,...F}},...Y?.strict!==void 0?{strict:Y.strict}:{}}),Z=new TW({returnSingle:!0,keyName:V})}}if(!J)return Q.pipe(Z);let K=jW.assign({parsed:(V,z)=>Z.invoke(V.raw,z)}),B=jW.assign({parsed:()=>null}),H=K.withFallbacks({fallbacks:[B]});return K6.from([{raw:Q},H])}};var Gx=A.object({type:A.literal("screenshot")}),Kx=A.object({type:A.literal("click"),x:A.number(),y:A.number(),button:A.enum(["left","right","wheel","back","forward"]).default("left")}),Bx=A.object({type:A.literal("double_click"),x:A.number(),y:A.number(),button:A.enum(["left","right","wheel","back","forward"]).default("left")}),Hx=A.object({type:A.literal("drag"),path:A.array(A.object({x:A.number(),y:A.number()}))}),Vx=A.object({type:A.literal("keypress"),keys:A.array(A.string())}),zx=A.object({type:A.literal("move"),x:A.number(),y:A.number()}),Fx=A.object({type:A.literal("scroll"),x:A.number(),y:A.number(),scroll_x:A.number(),scroll_y:A.number()}),Ux=A.object({type:A.literal("type"),text:A.string()}),Lx=A.object({type:A.literal("wait"),duration:A.number().optional()}),qx=A.union([Gx,Kx,Bx,Hx,Vx,zx,Fx,Ux,Lx]),No=A.object({action:qx});var Ox=A.object({type:A.literal("exec"),command:A.array(A.string()),env:A.record(A.string(),A.string()).optional(),working_directory:A.string().optional(),timeout_ms:A.number().optional(),user:A.string().optional()}),Ro=A.union([Ox]);var Io=A.object({commands:A.array(A.string()).describe("Array of shell commands to execute"),timeout_ms:A.number().optional().describe("Optional timeout in milliseconds for the commands"),max_output_length:A.number().optional().describe("Optional maximum number of characters to return from each command")});var Dx=A.object({type:A.literal("create_file"),path:A.string(),diff:A.string()}),Px=A.object({type:A.literal("update_file"),path:A.string(),diff:A.string()}),wx=A.object({type:A.literal("delete_file"),path:A.string()}),yo=A.union([Dx,Px,wx]);var ae=A.object({messages:S1(A.custom(),T8).default([])});function QU(X){if(!X)return;else if(X==="any"||X==="required")return"required";else if(X==="auto")return"auto";else if(X==="none")return"none";else if(typeof X==="string")return{type:"function",function:{name:X}};else return X}function ZU(X,Y){if(Y&&typeof Y==="object"&&"images"in Y&&Array.isArray(Y.images)){let Q=Y.images.filter((Z)=>typeof Z?.image_url?.url==="string").map((Z)=>({type:"image",url:Z.image_url.url}));return[{type:"text",text:X},...Q]}return X}var Mx={providerName:"ChatOpenAI",fromStandardTextBlock(X){return{type:"text",text:X.text}},fromStandardImageBlock(X){if(X.source_type==="url")return{type:"image_url",image_url:{url:X.url,...X.metadata?.detail?{detail:X.metadata.detail}:{}}};if(X.source_type==="base64")return{type:"image_url",image_url:{url:`data:${X.mime_type??""};base64,${X.data}`,...X.metadata?.detail?{detail:X.metadata.detail}:{}}};throw Error(`Image content blocks with source_type ${X.source_type} are not supported for ChatOpenAI`)},fromStandardAudioBlock(X){if(X.source_type==="url"){let Y=AQ({dataUrl:X.url});if(!Y)throw Error(`URL audio blocks with source_type ${X.source_type} must be formatted as a data URL for ChatOpenAI`);let Q=Y.mime_type||X.mime_type||"",Z;try{Z=NQ(Q)}catch{throw Error(`Audio blocks with source_type ${X.source_type} must have mime type of audio/wav or audio/mp3`)}if(Z.type!=="audio"||Z.subtype!=="wav"&&Z.subtype!=="mp3")throw Error(`Audio blocks with source_type ${X.source_type} must have mime type of audio/wav or audio/mp3`);return{type:"input_audio",input_audio:{format:Z.subtype,data:Y.data}}}if(X.source_type==="base64"){let Y;try{Y=NQ(X.mime_type??"")}catch{throw Error(`Audio blocks with source_type ${X.source_type} must have mime type of audio/wav or audio/mp3`)}if(Y.type!=="audio"||Y.subtype!=="wav"&&Y.subtype!=="mp3")throw Error(`Audio blocks with source_type ${X.source_type} must have mime type of audio/wav or audio/mp3`);return{type:"input_audio",input_audio:{format:Y.subtype,data:X.data}}}throw Error(`Audio content blocks with source_type ${X.source_type} are not supported for ChatOpenAI`)},fromStandardFileBlock(X){if(X.source_type==="url"){if(!AQ({dataUrl:X.url}))throw Error(`URL file blocks with source_type ${X.source_type} must be formatted as a data URL for ChatOpenAI`);return{type:"file",file:{file_data:X.url,...X.metadata?.filename||X.metadata?.name?{filename:X.metadata?.filename||X.metadata?.name}:{}}}}if(X.source_type==="base64")return{type:"file",file:{file_data:`data:${X.mime_type??""};base64,${X.data}`,...X.metadata?.filename||X.metadata?.name||X.metadata?.title?{filename:X.metadata?.filename||X.metadata?.name||X.metadata?.title}:{}}};if(X.source_type==="id")return{type:"file",file:{file_id:X.id}};throw Error(`File content blocks with source_type ${X.source_type} are not supported for ChatOpenAI`)}},WU=({message:X,rawResponse:Y,includeRawResponse:Q})=>{let Z=X.tool_calls;switch(X.role){case"assistant":{let W=[],$=[];for(let B of Z??[])try{W.push(EQ(B,{returnId:!0}))}catch(H){$.push(RQ(B,H.message))}let J={function_call:X.function_call,tool_calls:Z};if(Q!==void 0)J.__raw_response=Y;let G={model_provider:"openai",model_name:Y.model,...Y.system_fingerprint?{usage:{...Y.usage},system_fingerprint:Y.system_fingerprint}:{}};if(X.audio)J.audio=X.audio;let K=ZU(X.content||"",Y.choices?.[0]?.message);return new _({content:K,tool_calls:W,invalid_tool_calls:$,additional_kwargs:J,response_metadata:G,id:Y.id})}default:return new f7(X.content||"",X.role??"unknown")}},$U=({delta:X,rawResponse:Y,includeRawResponse:Q,defaultRole:Z})=>{let W=X.role??Z,$=X.content??"",J;if(X.function_call)J={function_call:X.function_call};else if(X.tool_calls)J={tool_calls:X.tool_calls};else J={};if(Q)J.__raw_response=Y;if(X.audio)J.audio={...X.audio,index:Y.choices[0].index};let G={model_provider:"openai",usage:{...Y.usage}};if(W==="user")return new iX({content:$,response_metadata:G});else if(W==="assistant"){let K=[];if(Array.isArray(X.tool_calls))for(let B of X.tool_calls)K.push({name:B.function?.name,args:B.function?.arguments,id:B.id,index:B.index,type:"tool_call_chunk"});return new G1({content:$,tool_call_chunks:K,additional_kwargs:J,id:Y.id,response_metadata:G})}else if(W==="system")return new b8({content:$,response_metadata:G});else if(W==="developer")return new b8({content:$,response_metadata:G,additional_kwargs:{__openai_role__:"developer"}});else if(W==="function")return new IW({content:$,additional_kwargs:J,name:X.name,response_metadata:G});else if(W==="tool")return new lX({content:$,additional_kwargs:J,tool_call_id:X.tool_call_id,response_metadata:G});else return new xW({content:$,role:W,response_metadata:G})},xx=(X)=>{if(X.type==="image"){if(X.url)return{type:"image_url",image_url:{url:X.url}};else if(X.data)return{type:"image_url",image_url:{url:`data:${X.mimeType};base64,${X.data}`}}}if(X.type==="audio"){if(X.data){let Y=SW(()=>{let[,Q]=X.mimeType.split("/");if(Q==="wav"||Q==="mp3")return Q;return"wav"});return{type:"input_audio",input_audio:{data:X.data.toString(),format:Y}}}}if(X.type==="file"){if(X.data)return{type:"file",file:{file_data:X.data.toString()}};if(X.fileId)return{type:"file",file:{file_id:X.fileId}}}return};function JU(X){if(!X)return!1;if(/^o\d/.test(X??""))return!0;if(X.startsWith("gpt-5")&&!X.startsWith("gpt-5-chat"))return!0;return!1}var Ix=({message:X,model:Y})=>{let Q=v6(X);if(Q==="system"&&JU(Y))Q="developer";if(Q==="developer")return{role:"developer",content:X.contentBlocks.filter((W)=>W.type==="text")};else if(Q==="system")return{role:"system",content:X.contentBlocks.filter((W)=>W.type==="text")};else if(Q==="assistant")return{role:"assistant",content:X.contentBlocks.filter((W)=>W.type==="text")};else if(Q==="tool"&&g.isInstance(X))return{role:"tool",tool_call_id:X.tool_call_id,content:X.contentBlocks.filter((W)=>W.type==="text")};else if(Q==="function")return{role:"function",name:X.name??"",content:X.contentBlocks.filter((W)=>W.type==="text").join("")};function*Z(W){for(let $ of W){if($.type==="text")yield{type:"text",text:$.text};let J=xx($);if(J)yield J}}return{role:"user",content:Array.from(Z(X.contentBlocks))}},kW=({messages:X,model:Y})=>{return X.flatMap((Q)=>{if("output_version"in Q.response_metadata&&Q.response_metadata?.output_version==="v1")return Ix({message:Q});let Z=v6(Q);if(Z==="system"&&JU(Y))Z="developer";let W=typeof Q.content==="string"?Q.content:Q.content.map((J)=>{if(wQ(J))return jQ(J,Mx);return J}),$={role:Z,content:W};if(Q.name!=null)$.name=Q.name;if(Q.additional_kwargs.function_call!=null)$.function_call=Q.additional_kwargs.function_call,$.content="";if(Q.additional_kwargs?.reasoning_content&&Y?.includes("deepseek"))$.reasoning_content=Q.additional_kwargs.reasoning_content;if(_.isInstance(Q)&&!!Q.tool_calls?.length)$.tool_calls=Q.tool_calls.map(bW),$.content="";else{if(Q.additional_kwargs.tool_calls!=null)$.tool_calls=Q.additional_kwargs.tool_calls;if(g.isInstance(Q)&&Q.tool_call_id!=null)$.tool_call_id=Q.tool_call_id}if(Q.additional_kwargs.audio&&typeof Q.additional_kwargs.audio==="object"&&"id"in Q.additional_kwargs.audio){let J={role:"assistant",audio:{id:Q.additional_kwargs.audio.id}};return[$,J]}return $})};class _W extends fX{invocationParams(X,Y){let Q;if(X?.strict!==void 0)Q=X.strict;else if(this.supportsStrictToolCalling!==void 0)Q=this.supportsStrictToolCalling;let Z={};if(X?.stream_options!==void 0)Z={stream_options:X.stream_options};else if(this.streamUsage&&(this.streaming||Y?.streaming))Z={stream_options:{include_usage:!0}};let W={model:this.model,temperature:this.temperature,top_p:this.topP,frequency_penalty:this.frequencyPenalty,presence_penalty:this.presencePenalty,logprobs:this.logprobs,top_logprobs:this.topLogprobs,n:this.n,logit_bias:this.logitBias,stop:X?.stop??this.stopSequences,user:this.user,stream:this.streaming,functions:X?.functions,function_call:X?.function_call,tools:X?.tools?.length?X.tools.map((J)=>this._convertChatOpenAIToolToCompletionsTool(J,{strict:Q})):void 0,tool_choice:QU(X?.tool_choice),response_format:this._getResponseFormat(X?.response_format),seed:X?.seed,...Z,parallel_tool_calls:X?.parallel_tool_calls,...this.audio||X?.audio?{audio:this.audio||X?.audio}:{},...this.modalities||X?.modalities?{modalities:this.modalities||X?.modalities}:{},...this.modelKwargs,prompt_cache_key:X?.promptCacheKey??this.promptCacheKey,verbosity:X?.verbosity??this.verbosity};if(X?.prediction!==void 0)W.prediction=X.prediction;if(this.service_tier!==void 0)W.service_tier=this.service_tier;if(X?.service_tier!==void 0)W.service_tier=X.service_tier;let $=this._getReasoningParams(X);if($!==void 0&&$.effort!==void 0)W.reasoning_effort=$.effort;if(this.reasoning)W.max_completion_tokens=this.maxTokens===-1?void 0:this.maxTokens;else W.max_tokens=this.maxTokens===-1?void 0:this.maxTokens;return W}async _generate(X,Y,Q){let Z={},W=this.invocationParams(Y),$=kW({messages:X,model:this.model});if(W.stream){let J=this._streamResponseChunks(X,Y,Q),G={};for await(let F of J){F.message.response_metadata={...F.generationInfo,...F.message.response_metadata};let L=F.generationInfo?.completion??0;if(G[L]===void 0)G[L]=F;else G[L]=G[L].concat(F)}let K=Object.entries(G).sort(([F],[L])=>parseInt(F,10)-parseInt(L,10)).map(([F,L])=>L),{functions:B,function_call:H}=this.invocationParams(Y),V=await this._getEstimatedTokenCountFromPrompt(X,B,H),z=await this._getNumTokensFromGenerations(K);return Z.input_tokens=V,Z.output_tokens=z,Z.total_tokens=V+z,{generations:K,llmOutput:{estimatedTokenUsage:{promptTokens:Z.input_tokens,completionTokens:Z.output_tokens,totalTokens:Z.total_tokens}}}}else{let J=await this.completionWithRetry({...W,stream:!1,messages:$},{signal:Y?.signal,...Y?.options}),{completion_tokens:G,prompt_tokens:K,total_tokens:B,prompt_tokens_details:H,completion_tokens_details:V}=J?.usage??{};if(G)Z.output_tokens=(Z.output_tokens??0)+G;if(K)Z.input_tokens=(Z.input_tokens??0)+K;if(B)Z.total_tokens=(Z.total_tokens??0)+B;if(H?.audio_tokens!==null||H?.cached_tokens!==null)Z.input_token_details={...H?.audio_tokens!==null&&{audio:H?.audio_tokens},...H?.cached_tokens!==null&&{cache_read:H?.cached_tokens}};if(V?.audio_tokens!==null||V?.reasoning_tokens!==null)Z.output_token_details={...V?.audio_tokens!==null&&{audio:V?.audio_tokens},...V?.reasoning_tokens!==null&&{reasoning:V?.reasoning_tokens}};let z=[];for(let F of J?.choices??[]){let L=F.message?.content??"",q=F.message?.reasoning_content??F.message?.reasoning??"",w={text:L,message:this._convertCompletionsMessageToBaseMessage(F.message??{role:"assistant"},J)};if(w.message.additional_kwargs={...w.message.additional_kwargs,reasoning_content:q},w.generationInfo={...F.finish_reason?{finish_reason:F.finish_reason}:{},...F.logprobs?{logprobs:F.logprobs}:{}},CW(w.message))w.message.usage_metadata=Z;w.message=new _(Object.fromEntries(Object.entries(w.message).filter(([O])=>!O.startsWith("lc_")))),z.push(w)}return{generations:z,llmOutput:{tokenUsage:{promptTokens:Z.input_tokens,completionTokens:Z.output_tokens,totalTokens:Z.total_tokens}}}}}async*_streamResponseChunks(X,Y,Q){let Z=kW({messages:X,model:this.model}),W={...this.invocationParams(Y,{streaming:!0}),messages:Z,stream:!0},$,J=await this.completionWithRetry(W,Y),G;for await(let K of J){let B=K?.choices?.[0];if(K.usage)G=K.usage;if(!B)continue;let{delta:H}=B;if(!H)continue;let V=this._convertCompletionsDeltaToBaseMessageChunk(H,K,$),z=H.reasoning_content??H.reasoning??"";if(z)V.additional_kwargs={...V.additional_kwargs,reasoning_content:z};$=H.role??$;let F={prompt:Y.promptIndex??0,completion:B.index??0};if(typeof V.content!=="string"){console.log("[WARNING]: Received non-string content from OpenAI. This is currently not supported.");continue}let L={...F};if(B.finish_reason!=null)L.finish_reason=B.finish_reason,L.system_fingerprint=K.system_fingerprint,L.model_name=K.model,L.service_tier=K.service_tier;if(this.logprobs)L.logprobs=B.logprobs;let q=new d7({message:V,text:V.content,generationInfo:L});yield q,await Q?.handleLLMNewToken(q.text??"",F,void 0,void 0,void 0,{chunk:q})}if(G){let K={...G.prompt_tokens_details?.audio_tokens!==null&&{audio:G.prompt_tokens_details?.audio_tokens},...G.prompt_tokens_details?.cached_tokens!==null&&{cache_read:G.prompt_tokens_details?.cached_tokens}},B={...G.completion_tokens_details?.audio_tokens!==null&&{audio:G.completion_tokens_details?.audio_tokens},...G.completion_tokens_details?.reasoning_tokens!==null&&{reasoning:G.completion_tokens_details?.reasoning_tokens}};yield new d7({message:new G1({content:"",response_metadata:{usage:{...G}},usage_metadata:{input_tokens:G.prompt_tokens,output_tokens:G.completion_tokens,total_tokens:G.total_tokens,...Object.keys(K).length>0&&{input_token_details:K},...Object.keys(B).length>0&&{output_token_details:B}}}),text:""})}if(Y.signal?.aborted)throw Error("AbortError")}async completionWithRetry(X,Y){let Q=this._getClientOptions(Y),Z=X.response_format&&X.response_format.type==="json_schema";return this.caller.call(async()=>{try{if(Z&&!X.stream)return await this.client.chat.completions.parse(X,Q);else return await this.client.chat.completions.create(X,Q)}catch(W){throw u1(W)}})}_convertCompletionsDeltaToBaseMessageChunk(X,Y,Q){return $U({delta:X,rawResponse:Y,includeRawResponse:this.__includeRawResponse,defaultRole:Q})}_convertCompletionsMessageToBaseMessage(X,Y){return WU({message:X,rawResponse:Y,includeRawResponse:this.__includeRawResponse})}}var c00=i.enum(["openai","anthropic","gemini","deepseek","moonshot","zhipu","custom"]),qU=i.object({id:i.string(),name:i.string().optional().describe("Display name for the model"),provider_id:i.string().describe("Foreign key reference to provider"),model_name:i.string().describe("Actual model ID to use (e.g., gpt-4o, claude-3-5-sonnet)"),stream_usage:i.boolean().default(!1),enable_thinking:i.boolean().default(!1),temperature:i.number().default(0.7),max_tokens:i.number().default(4096),top_p:i.number().default(1),frequency_penalty:i.number().default(0),presence_penalty:i.number().default(0)}),OU=i.object({id:i.string(),name:i.string().describe("prompt name, must be unique")}),p00=i.object({id:i.string(),prompt_id:i.string().describe("reference to prompt"),version:i.number().int().positive().describe("version number, starts from 1"),content:i.string().describe("prompt content for this version"),metadata:i.any().optional().describe("version-specific metadata"),change_note:i.string().optional().describe("description of changes in this version")}),DU=i.object({id:i.string().describe("tool id, must be unique, folder/tool/subtool_name"),name:i.string(),description:i.string()}),vx=i.any().describe("tool custom params, must be a valid JSON object"),fx=i.any().describe("middleware custom params, must be a valid JSON object"),PU=i.object({id:i.string().describe("middleware id, must be unique, folder/middleware/middleware_name"),name:i.string(),description:i.string()}),wU=i.object({id:i.string(),name:i.string(),description:i.string(),system_prompt:OU.shape.id,tools:i.record(DU.shape.id,i.union([i.boolean(),vx])),middleware:i.record(PU.shape.id,i.union([i.boolean(),fx])),model:qU.shape.id}),l00=i.object({agents:i.array(wU),prompts:i.array(OU),models:i.array(qU)});class NU{_schemas=new Map;_implementations=new Map;registerSchema(X){let Y=DU.safeParse(X);if(!Y.success)throw Error(`Invalid Tool schema: ${Y.error.message}`);this._schemas.set(Y.data.id,Y.data)}registerImplementation(X){if(this._implementations.set(X.id,X),!this._schemas.has(X.id))this.registerSchema({id:X.id,name:X.name,description:X.description})}getSchema(X){return this._schemas.get(X)}getImplementation(X){return this._implementations.get(X)}hasImplementation(X){return this._implementations.has(X)}listSchemas(){return Array.from(this._schemas.values())}listImplementations(){return Array.from(this._implementations.values())}async execute(X,Y,Q){let Z=this._implementations.get(X);if(!Z)throw Error(`Tool implementation not found: ${X}`);if(Z.paramsSchema){let W=Z.paramsSchema.safeParse(Y);if(!W.success)throw Error(`Invalid params for tool ${X}: ${W.error.message}`);Y=W.data}return await Z.execute(Y,Q)}}class AU{_schemas=new Map;_implementations=new Map;registerSchema(X){let Y=PU.safeParse(X);if(!Y.success)throw Error(`Invalid Middleware schema: ${Y.error.message}`);this._schemas.set(Y.data.id,Y.data)}registerImplementation(X){if(this._implementations.set(X.id,X),!this._schemas.has(X.id))this.registerSchema({id:X.id,name:X.name,description:X.description})}getSchema(X){return this._schemas.get(X)}getImplementation(X){return this._implementations.get(X)}hasImplementation(X){return this._implementations.has(X)}listSchemas(){return Array.from(this._schemas.values())}listImplementations(){return Array.from(this._implementations.values())}async execute(X,Y){let Q=this._implementations.get(X);if(!Q)throw Error(`Middleware implementation not found: ${X}`);if(Q.paramsSchema){let Z=Q.paramsSchema.safeParse(Y);if(!Z.success)throw Error(`Invalid context for middleware ${X}: ${Z.error.message}`);Y=Z.data}return await Q.execute(Y)}}class gW{_data;constructor(X){let Y=wU.safeParse(X);if(!Y.success)throw Error(`Invalid Agent data: ${Y.error.message}`);this._data=Y.data}get id(){return this._data.id}get name(){return this._data.name}get description(){return this._data.description}get systemPromptId(){return this._data.system_prompt}get modelId(){return this._data.model}get tools(){let X={};for(let[Y,Q]of Object.entries(this._data.tools))X[Y]=typeof Q==="boolean"?{enabled:Q}:{enabled:!0,customParams:Q};return X}get middleware(){let X={};for(let[Y,Q]of Object.entries(this._data.middleware))X[Y]=typeof Q==="boolean"?{enabled:Q}:{enabled:!0,customParams:Q};return X}getToolConfig(X){let Y=this._data.tools[X];if(Y===void 0)return;return typeof Y==="boolean"?{enabled:Y}:{enabled:!0,customParams:Y}}getMiddlewareConfig(X){let Y=this._data.middleware[X];if(Y===void 0)return;return typeof Y==="boolean"?{enabled:Y}:{enabled:!0,customParams:Y}}toJSON(){return JSON.parse(JSON.stringify(this._data))}}class jU{constructor(X){this.storage=X}async addModel(X){await this.storage.insertModel(X)}async getModel(X){let Y=await this.storage.getModel(X);if(!Y)return;return this.rowToModel(Y)}async listModels(){return(await this.storage.getAllModels()).map((Y)=>this.rowToModel(Y))}async updateModel(X){await this.storage.updateModel(X)}async deleteModel(X){await this.storage.deleteModel(X)}async addPrompt(X,Y,Q){await this.storage.insertPrompt(X,Y,Q)}async getPrompt(X){let Y=await this.storage.getPrompt(X);if(!Y)return;return{id:Y.id,name:Y.name}}async getPromptWithContent(X){let Y=await this.storage.getPromptWithCurrentVersion(X);if(!Y)return;return{id:Y.id,name:Y.name,current_version:Y.current_version,content:Y.content,change_note:Y.change_note,created_at:Y.created_at,updated_at:Y.updated_at}}async getPromptByName(X){let Y=await this.storage.getPromptByName(X);if(!Y)return;return{id:Y.id,name:Y.name}}async getPromptByNameWithContent(X){let Y=await this.storage.getPromptWithCurrentVersionByName(X);if(!Y)return;return{id:Y.id,name:Y.name,current_version:Y.current_version,content:Y.content,change_note:Y.change_note,created_at:Y.created_at,updated_at:Y.updated_at}}async listPrompts(){return(await this.storage.getAllPrompts()).map((Y)=>({id:Y.id,name:Y.name}))}async listPromptsWithContent(){return(await this.storage.getAllPromptsWithCurrentVersion()).map((Y)=>({id:Y.id,name:Y.name,current_version:Y.current_version,content:Y.content,change_note:Y.change_note,created_at:Y.created_at,updated_at:Y.updated_at}))}async updatePrompt(X){await this.storage.updatePrompt(X)}async deletePrompt(X){await this.storage.deletePrompt(X)}async createPromptVersion(X,Y,Q){return this.storage.createPromptVersion(X,Y,Q)}async getPromptVersion(X,Y){return this.storage.getPromptVersion(X,Y)}async getPromptVersions(X){return this.storage.getPromptVersions(X)}async rollbackPromptVersion(X,Y){return this.storage.rollbackPromptVersion(X,Y)}async addTool(X){await this.storage.insertTool(X)}async getTool(X){let Y=await this.storage.getTool(X);if(!Y)return;return{id:Y.id,name:Y.name,description:Y.description}}async listTools(){return(await this.storage.getAllTools()).map((Y)=>({id:Y.id,name:Y.name,description:Y.description}))}async updateTool(X){await this.storage.updateTool(X)}async deleteTool(X){await this.storage.deleteTool(X)}async addMiddleware(X){await this.storage.insertMiddleware(X)}async getMiddleware(X){let Y=await this.storage.getMiddleware(X);if(!Y)return;return{id:Y.id,name:Y.name,description:Y.description}}async listMiddlewares(){return(await this.storage.getAllMiddlewares()).map((Y)=>({id:Y.id,name:Y.name,description:Y.description}))}async updateMiddleware(X){await this.storage.updateMiddleware(X)}async deleteMiddleware(X){await this.storage.deleteMiddleware(X)}async addAgent(X){await this.storage.insertAgent(X)}async getAgent(X){let Y=await this.storage.getAgent(X);if(!Y)return;return new gW({id:Y.id,name:Y.name,description:Y.description,system_prompt:Y.system_prompt_id,model:Y.model_id,tools:Y.tools,middleware:Y.middlewares})}async listAgents(){return(await this.storage.getAllAgents()).map((Y)=>new gW({id:Y.id,name:Y.name,description:Y.description,system_prompt:Y.system_prompt_id,model:Y.model_id,tools:Y.tools,middleware:Y.middlewares}))}async updateAgent(X){await this.storage.updateAgent(X)}async deleteAgent(X){await this.storage.deleteAgent(X)}async getAgentWithDependencies(X){return this.storage.getAgentWithDependencies(X)}rowToModel(X){return{id:X.id,name:X.name??void 0,provider_id:X.provider_id,model_name:X.model_name,stream_usage:Boolean(X.stream_usage),enable_thinking:Boolean(X.enable_thinking),temperature:X.temperature,max_tokens:X.max_tokens,top_p:X.top_p,frequency_penalty:X.frequency_penalty,presence_penalty:X.presence_penalty}}}class EU{constructor(X){this.storage=X}async validateAgent(X){let Y=[],Q=await this.storage.getAgent(X);if(!Q)return Y.push(`Agent ${X} not found`),{valid:!1,errors:Y};if(!await this.storage.getModel(Q.model_id))Y.push(`Model ${Q.model_id} not found`);if(!await this.storage.getPrompt(Q.system_prompt_id))Y.push(`Prompt ${Q.system_prompt_id} not found`);for(let $ of Object.keys(Q.tools))if(!await this.storage.getTool($))Y.push(`Tool ${$} not found`);for(let $ of Object.keys(Q.middlewares))if(!await this.storage.getMiddleware($))Y.push(`Middleware ${$} not found`);return{valid:Y.length===0,errors:Y}}async validateAll(){let X=new Map,Y=await this.storage.getAllAgents();for(let Q of Y)X.set(Q.id,await this.validateAgent(Q.id));return X}}var hx=A.object({id:A.string(),name:A.string(),content:A.string(),change_note:A.string().optional()}),gx=A.object({models:A.array(A.object({id:A.string(),model_name:A.string(),model_provider:A.string(),stream_usage:A.boolean(),enable_thinking:A.boolean(),temperature:A.number(),max_tokens:A.number(),top_p:A.number(),frequency_penalty:A.number(),presence_penalty:A.number()})),prompts:A.array(hx),agents:A.array(A.object({id:A.string(),name:A.string(),description:A.string(),system_prompt:A.string(),model:A.string(),tools:A.record(A.string(),A.unknown()),middleware:A.record(A.string(),A.unknown())}))});class RU{constructor(X){this.storage=X}async toJSON(){let[X,Y,Q]=await Promise.all([this.storage.getAllModels(),this.storage.getAllPromptsWithCurrentVersion(),this.storage.getAllAgents()]);return{models:X.map((Z)=>({id:Z.id,model_name:Z.model_name,model_provider:Z.model_provider,stream_usage:Boolean(Z.stream_usage),enable_thinking:Boolean(Z.enable_thinking),temperature:Z.temperature,max_tokens:Z.max_tokens,top_p:Z.top_p,frequency_penalty:Z.frequency_penalty,presence_penalty:Z.presence_penalty})),prompts:Y.map((Z)=>({id:Z.id,name:Z.name,content:Z.content,change_note:Z.change_note||void 0})),agents:Q.map((Z)=>({id:Z.id,name:Z.name,description:Z.description,system_prompt:Z.system_prompt_id,model:Z.model_id,tools:Z.tools,middleware:Z.middlewares}))}}async fromJSON(X){let Y=gx.safeParse(X);if(!Y.success)throw Error(`Invalid AgentPackage data: ${Y.error.message}`);await this.storage.transaction(async()=>{for(let Q of Y.data.models)await this.storage.insertModel(Q);for(let Q of Y.data.prompts)await this.storage.insertPrompt({id:Q.id,name:Q.name},Q.content,Q.change_note);for(let Q of Y.data.agents)await this.storage.insertAgent(Q)})}}class uW{storage;repository;validator;serializer;tools=new NU;middlewares=new AU;getModel;getPrompt;getPromptByName;getPromptWithContent;getPromptByNameWithContent;getTool;getMiddleware;getAgent;listModels;listPrompts;listPromptsWithContent;listTools;listMiddlewares;listAgents;validateAgent;validateAll;toJSON;constructor(X){this.storage=X,this.repository=new jU(X),this.validator=new EU(X),this.serializer=new RU(X),this.getModel=this.repository.getModel.bind(this.repository),this.getPrompt=this.repository.getPrompt.bind(this.repository),this.getPromptByName=this.repository.getPromptByName.bind(this.repository),this.getPromptWithContent=this.repository.getPromptWithContent.bind(this.repository),this.getPromptByNameWithContent=this.repository.getPromptByNameWithContent.bind(this.repository),this.getTool=this.repository.getTool.bind(this.repository),this.getMiddleware=this.repository.getMiddleware.bind(this.repository),this.getAgent=this.repository.getAgent.bind(this.repository),this.listModels=this.repository.listModels.bind(this.repository),this.listPrompts=this.repository.listPrompts.bind(this.repository),this.listPromptsWithContent=this.repository.listPromptsWithContent.bind(this.repository),this.listTools=this.repository.listTools.bind(this.repository),this.listMiddlewares=this.repository.listMiddlewares.bind(this.repository),this.listAgents=this.repository.listAgents.bind(this.repository),this.validateAgent=this.validator.validateAgent.bind(this.validator),this.validateAll=this.validator.validateAll.bind(this.validator),this.toJSON=this.serializer.toJSON.bind(this.serializer)}async addModel(X){await this.repository.addModel(X),this.tools.registerSchema({id:X.id,name:X.model_name,description:`Model: ${X.provider_id}/${X.model_name}`})}async addPrompt(X,Y,Q){await this.repository.addPrompt(X,Y,Q)}async addTool(X){await this.repository.addTool(X),this.tools.registerSchema(X)}async addMiddleware(X){await this.repository.addMiddleware(X),this.middlewares.registerSchema(X)}async addAgent(X){await this.repository.addAgent(X)}static async fromStorage(X){let Y=new uW(X);return(await X.getAllTools()).forEach(($)=>{Y.tools.registerSchema({id:$.id,name:$.name,description:$.description})}),(await X.getAllMiddlewares()).forEach(($)=>{Y.middlewares.registerSchema({id:$.id,name:$.name,description:$.description})}),(await X.getAllModels()).forEach(($)=>{Y.tools.registerSchema({id:$.id,name:$.model_name,description:`Model: ${$.provider_id}/${$.model_name}`})}),Y}static async loadFromJSON(X,Y){let Q=new uW(X);return await Q.serializer.fromJSON(Y),Q}}class TU{now(){return new Date().toISOString()}boolToInt(X){return X?1:0}intToBool(X){return X===1}safeStringify(X){if(X===null||X===void 0)return null;return JSON.stringify(X)}safeParse(X){if(!X)return null;try{return JSON.parse(X)}catch{return null}}}class ux extends TU{initialize(){}models=new Map;prompts=new Map;promptVersions=new Map;promptsByName=new Map;tools=new Map;middlewares=new Map;agents=new Map;agentTools=new Map;agentMiddlewares=new Map;constructor(){super()}close(){return Promise.resolve().then(()=>{this.models.clear(),this.prompts.clear(),this.promptVersions.clear(),this.promptsByName.clear(),this.tools.clear(),this.middlewares.clear(),this.agents.clear(),this.agentTools.clear(),this.agentMiddlewares.clear()})}async transaction(X){let Y={models:new Map(this.models),prompts:new Map(this.prompts),promptVersions:new Map(this.promptVersions),promptsByName:new Map(this.promptsByName),tools:new Map(this.tools),middlewares:new Map(this.middlewares),agents:new Map(this.agents),agentTools:new Map(this.agentTools),agentMiddlewares:new Map(this.agentMiddlewares)};try{return await X()}catch(Q){throw this.models=Y.models,this.prompts=Y.prompts,this.promptVersions=Y.promptVersions,this.promptsByName=Y.promptsByName,this.tools=Y.tools,this.middlewares=Y.middlewares,this.agents=Y.agents,this.agentTools=Y.agentTools,this.agentMiddlewares=Y.agentMiddlewares,Q}}insertModel(X){return Promise.resolve().then(()=>{if(this.models.has(X.id))throw Error(`Model with id ${X.id} already exists`);let Y={id:X.id,model_name:X.model_name,model_provider:X.model_provider,stream_usage:this.boolToInt(X.stream_usage),enable_thinking:this.boolToInt(X.enable_thinking),temperature:X.temperature,max_tokens:X.max_tokens,top_p:X.top_p,frequency_penalty:X.frequency_penalty,presence_penalty:X.presence_penalty,created_at:this.now(),updated_at:this.now()};this.models.set(X.id,Y)})}getModel(X){return Promise.resolve(this.models.get(X))}getAllModels(){return Promise.resolve(Array.from(this.models.values()))}updateModel(X){return Promise.resolve().then(()=>{let Y=this.models.get(X.id);if(!Y)throw Error(`Model with id ${X.id} not found`);let Q={...Y,model_name:X.model_name,model_provider:X.model_provider,stream_usage:this.boolToInt(X.stream_usage),enable_thinking:this.boolToInt(X.enable_thinking),temperature:X.temperature,max_tokens:X.max_tokens,top_p:X.top_p,frequency_penalty:X.frequency_penalty,presence_penalty:X.presence_penalty,updated_at:this.now()};this.models.set(X.id,Q)})}deleteModel(X){return Promise.resolve().then(()=>{for(let Y of this.agents.values())if(Y.model_id===X)throw Error(`Cannot delete model ${X}: it is referenced by agent ${Y.id}`);this.models.delete(X)})}insertPrompt(X,Y,Q){return Promise.resolve().then(()=>{if(this.prompts.has(X.id))throw Error(`Prompt with id ${X.id} already exists`);if(this.promptsByName.has(X.name))throw Error(`Prompt with name ${X.name} already exists`);let Z=this.now(),W={id:X.id,name:X.name,current_version:1,created_at:Z,updated_at:Z},$={id:`${X.id}-v1`,prompt_id:X.id,version:1,content:Y,metadata:null,change_note:Q||null,created_at:Z};this.prompts.set(X.id,W),this.promptsByName.set(X.name,W),this.promptVersions.set(X.id,[$])})}getPrompt(X){return Promise.resolve(this.prompts.get(X))}getPromptByName(X){return Promise.resolve(this.promptsByName.get(X))}getPromptWithCurrentVersion(X){let Y=this.prompts.get(X);if(!Y)return Promise.resolve(void 0);let Z=(this.promptVersions.get(X)||[]).find((W)=>W.version===Y.current_version);if(!Z)return Promise.resolve(void 0);return Promise.resolve({...Y,content:Z.content,metadata:Z.metadata,change_note:Z.change_note})}getPromptWithCurrentVersionByName(X){let Y=this.promptsByName.get(X);if(!Y)return Promise.resolve(void 0);return this.getPromptWithCurrentVersion(Y.id)}getAllPrompts(){return Promise.resolve(Array.from(this.prompts.values()))}getAllPromptsWithCurrentVersion(){let X=[];for(let Y of this.prompts.values()){let Z=(this.promptVersions.get(Y.id)||[]).find((W)=>W.version===Y.current_version);if(Z)X.push({...Y,content:Z.content,metadata:Z.metadata,change_note:Z.change_note})}return Promise.resolve(X)}updatePrompt(X){return Promise.resolve().then(()=>{let Y=this.prompts.get(X.id);if(!Y)throw Error(`Prompt with id ${X.id} not found`);let Q={...Y,name:X.name,updated_at:this.now()};if(this.prompts.set(X.id,Q),Y.name!==X.name)this.promptsByName.delete(Y.name);this.promptsByName.set(X.name,Q)})}deletePrompt(X){return Promise.resolve().then(()=>{let Y=this.prompts.get(X);if(!Y)throw Error(`Prompt with id ${X} not found`);for(let Q of this.agents.values())if(Q.system_prompt_id===X)throw Error(`Cannot delete prompt ${X}: it is referenced by agent ${Q.id}`);this.prompts.delete(X),this.promptsByName.delete(Y.name),this.promptVersions.delete(X)})}createPromptVersion(X,Y,Q){return this.transaction(()=>{let Z=this.prompts.get(X);if(!Z)throw Error(`Prompt with id ${X} not found`);let W=Z.current_version+1,$=this.now(),J={id:`${X}-v${W}`,prompt_id:X,version:W,content:Y,metadata:null,change_note:Q||null,created_at:$},G=this.promptVersions.get(X)||[];G.push(J),this.promptVersions.set(X,G);let K={...Z,current_version:W,updated_at:$};return this.prompts.set(X,K),this.promptsByName.set(K.name,K),J})}getPromptVersion(X,Y){let Q=this.promptVersions.get(X)||[];return Promise.resolve(Q.find((Z)=>Z.version===Y))}getPromptVersions(X){let Y=this.promptVersions.get(X)||[];return Promise.resolve([...Y].sort((Q,Z)=>Z.version-Q.version))}rollbackPromptVersion(X,Y){return this.transaction(()=>{let Q=this.prompts.get(X);if(!Q)throw Error(`Prompt with id ${X} not found`);if(!(this.promptVersions.get(X)||[]).some((J)=>J.version===Y))throw Error(`Version ${Y} not found for prompt ${X}`);let $={...Q,current_version:Y,updated_at:this.now()};this.prompts.set(X,$),this.promptsByName.set($.name,$)})}insertTool(X){return Promise.resolve().then(()=>{if(this.tools.has(X.id))throw Error(`Tool with id ${X.id} already exists`);let Y={id:X.id,name:X.name,description:X.description,created_at:this.now(),updated_at:this.now(),parameters:null};this.tools.set(X.id,Y)})}getTool(X){return Promise.resolve(this.tools.get(X))}getAllTools(){return Promise.resolve(Array.from(this.tools.values()))}updateTool(X){return Promise.resolve().then(()=>{let Y=this.tools.get(X.id);if(!Y)throw Error(`Tool with id ${X.id} not found`);let Q={...Y,name:X.name,description:X.description,updated_at:this.now()};this.tools.set(X.id,Q)})}deleteTool(X){return Promise.resolve().then(()=>{this.tools.delete(X)})}insertMiddleware(X){return Promise.resolve().then(()=>{if(this.middlewares.has(X.id))throw Error(`Middleware with id ${X.id} already exists`);let Y={id:X.id,name:X.name,description:X.description,created_at:this.now(),updated_at:this.now(),parameters:null};this.middlewares.set(X.id,Y)})}getMiddleware(X){return Promise.resolve(this.middlewares.get(X))}getAllMiddlewares(){return Promise.resolve(Array.from(this.middlewares.values()))}updateMiddleware(X){return Promise.resolve().then(()=>{let Y=this.middlewares.get(X.id);if(!Y)throw Error(`Middleware with id ${X.id} not found`);let Q={...Y,name:X.name,description:X.description,updated_at:this.now()};this.middlewares.set(X.id,Q)})}deleteMiddleware(X){return Promise.resolve().then(()=>{this.middlewares.delete(X)})}insertAgent(X){return Promise.resolve().then(()=>{if(this.agents.has(X.id))throw Error(`Agent with id ${X.id} already exists`);if(!this.models.has(X.model))throw Error(`Model ${X.model} not found`);if(!this.prompts.has(X.system_prompt))throw Error(`Prompt ${X.system_prompt} not found`);let Y={id:X.id,name:X.name,description:X.description,system_prompt_id:X.system_prompt,model_id:X.model,created_at:this.now(),updated_at:this.now()};this.agents.set(X.id,Y);let Q=[];for(let[W,$]of Object.entries(X.tools)){if(!this.tools.has(W))throw Error(`Tool ${W} not found`);Q.push({agent_id:X.id,tool_id:W,enabled:typeof $==="boolean"?this.boolToInt($):1,custom_params:typeof $==="boolean"?null:this.safeStringify($)})}this.agentTools.set(X.id,Q);let Z=[];for(let[W,$]of Object.entries(X.middleware)){if(!this.middlewares.has(W))throw Error(`Middleware ${W} not found`);Z.push({agent_id:X.id,middleware_id:W,enabled:typeof $==="boolean"?this.boolToInt($):1,custom_params:typeof $==="boolean"?null:this.safeStringify($)})}this.agentMiddlewares.set(X.id,Z)})}async getAgent(X){let Y=this.agents.get(X);if(!Y)return;let Q={},Z=(this.agentTools.get(X)||[]).filter((J)=>J.enabled===1);for(let J of Z)if(J.custom_params)Q[J.tool_id]=this.safeParse(J.custom_params);else Q[J.tool_id]=!0;let W={},$=(this.agentMiddlewares.get(X)||[]).filter((J)=>J.enabled===1);for(let J of $)if(J.custom_params)W[J.middleware_id]=this.safeParse(J.custom_params);else W[J.middleware_id]=!0;return{...Y,tools:Q,middlewares:W}}async getAllAgents(){let X=[];for(let Y of this.agents.values()){let Q={},Z=this.agentTools.get(Y.id)||[];for(let J of Z)if(J.custom_params)Q[J.tool_id]=this.safeParse(J.custom_params);else Q[J.tool_id]=this.intToBool(J.enabled);let W={},$=this.agentMiddlewares.get(Y.id)||[];for(let J of $)if(J.custom_params)W[J.middleware_id]=this.safeParse(J.custom_params);else W[J.middleware_id]=this.intToBool(J.enabled);X.push({...Y,tools:Q,middlewares:W})}return X}updateAgent(X){return Promise.resolve().then(()=>{let Y=this.agents.get(X.id);if(!Y)throw Error(`Agent with id ${X.id} not found`);if(!this.models.has(X.model))throw Error(`Model ${X.model} not found`);if(!this.prompts.has(X.system_prompt))throw Error(`Prompt ${X.system_prompt} not found`);let Q={...Y,name:X.name,description:X.description,system_prompt_id:X.system_prompt,model_id:X.model,updated_at:this.now()};this.agents.set(X.id,Q);let Z=[];for(let[$,J]of Object.entries(X.tools)){if(!this.tools.has($))throw Error(`Tool ${$} not found`);Z.push({agent_id:X.id,tool_id:$,enabled:typeof J==="boolean"?this.boolToInt(J):1,custom_params:typeof J==="boolean"?null:this.safeStringify(J)})}this.agentTools.set(X.id,Z);let W=[];for(let[$,J]of Object.entries(X.middleware)){if(!this.middlewares.has($))throw Error(`Middleware ${$} not found`);W.push({agent_id:X.id,middleware_id:$,enabled:typeof J==="boolean"?this.boolToInt(J):1,custom_params:typeof J==="boolean"?null:this.safeStringify(J)})}this.agentMiddlewares.set(X.id,W)})}deleteAgent(X){return Promise.resolve().then(()=>{this.agents.delete(X),this.agentTools.delete(X),this.agentMiddlewares.delete(X)})}async getAgentWithDependencies(X){let Y=this.agents.get(X);if(!Y)return;let Q=this.models.get(Y.model_id);if(!Q)throw Error(`Model ${Y.model_id} not found`);let Z=await this.getPromptWithCurrentVersion(Y.system_prompt_id);if(!Z)throw Error(`Prompt ${Y.system_prompt_id} not found`);return{agent:Y,model:Q,systemPrompt:Z}}}function mx(X,Y,Q){return{id:Q?.id??Y.name,name:Y.name,description:Y.description,paramsSchema:Y.schema,execute:X}}var i00=mx,dx=!0,cx="5m",px=3,lx=A.object({enableCaching:A.boolean().optional(),ttl:A.enum(["5m","1h"]).optional(),minMessagesToCache:A.number().optional(),unsupportedModelBehavior:A.enum(["ignore","warn","raise"]).optional()});class MU extends Error{constructor(X){super(X);this.name="PromptCachingMiddlewareError"}}function n00(X){return X0({name:"PromptCachingMiddleware",contextSchema:lx,wrapModelCall:(Y,Q)=>{let Z=Y.runtime.context.enableCaching??X?.enableCaching??dx,W=Y.runtime.context.ttl??X?.ttl??cx,$=Y.runtime.context.minMessagesToCache??X?.minMessagesToCache??px;if(!Z||!Y.model)return Q(Y);if(Y.state.messages.length+(Y.systemPrompt?1:0)<$)return Q(Y);let G=Y.messages.at(-1);if(!G)return Q(Y);let K=Object.getPrototypeOf(G).constructor;if(Array.isArray(G.content)){let B=G.content.at(-1);if(!B)return Q(Y);if(typeof B==="object"&&"type"in B&&B.type==="text"&&"text"in B){let V=B.text;if(V===""||V==null||typeof V==="object"&&Object.keys(V).length===0)return Q(Y)}let H=new K({...G,content:[...G.content.slice(0,-1),{...B,cache_control:{type:"ephemeral",ttl:W}}]});return Q({...Y,messages:[...Y.messages.slice(0,-1),H]})}else if(typeof G.content==="string"){if(!G.content||G.content.trim()==="")return Q(Y);let B=new K({...G,content:[{type:"text",text:G.content,cache_control:{type:"ephemeral",ttl:W}}]});return Q({...Y,messages:[...Y.messages.slice(0,-1),B]})}throw new MU("Last message content is not a string or array")}})}var ix=`
|
|
365
|
-
|
|
366
|
-
## Project Documentation
|
|
367
|
-
|
|
368
|
-
{docs_content}`;class nx{name="AgentsMdMiddleware";stateSchema=void 0;contextSchema=void 0;tools=[];projectRoot;systemPromptTemplate;constructor(X={}){this.projectRoot=X.projectRoot||process.cwd(),this.systemPromptTemplate=ix}async findDocumentationFile(){let X=["CLAUDE.md","AGENTS.md"];for(let Y of X){let Q=hW(this.projectRoot,Y);try{return await GU.access(Q),{content:await GU.readFile(Q,"utf-8"),filename:Y}}catch{continue}}return null}async wrapModelCall(X,Y){let Q=await this.findDocumentationFile();if(!Q)return await Y(X);let Z=this.systemPromptTemplate.replace("{docs_content}",Q.content),W;if(X.systemPrompt)W=X.systemPrompt+`
|
|
369
|
-
|
|
370
|
-
`+Z;else W=Z;let $=new B0(W),J={...X,systemMessage:$};return await Y(J)}}var rx=10485760,ax=64,vW=1024;function fW(X,Y){try{let Q=c7(X),Z=c7(Y),W=KU(Z,Q);if(!W)return!0;if(W.startsWith("..")||W.includes(":")){let $=`${BU}.claude${BU}skills`;if(Y.includes($)){let J=_x(),G=KU(J,Q);if(!G||!G.startsWith("..")&&!G.includes(":"))return!0}return!1}return!0}catch(Q){return!1}}function sx(X,Y){if(!X)return[!1,"name is required"];if(X.length>ax)return[!1,"name exceeds 64 characters"];if(!/^[a-z0-9]+(-[a-z0-9]+)*$/.test(X))return[!1,"name must be lowercase alphanumeric with single hyphens only"];if(X!==Y)return[!1,`name '${X}' must match directory name '${Y}'`];return[!0,""]}function tx(X,Y){try{let Q=UU(X);if(Q.size>rx)return console.warn(`Skipping ${X}: file too large (${Q.size} bytes)`),null;let Z=kx(X,"utf-8"),W=/^---\s*\n([\s\S]*?)\n---\s*\n/,$=Z.match(W);if(!$)return console.warn(`Skipping ${X}: no valid YAML frontmatter found`),null;let J=$[1],G;try{G=LU.parse(J)}catch(L){return console.warn(`Invalid YAML in ${X}: ${L}`),null}if(typeof G!=="object"||G===null)return console.warn(`Skipping ${X}: frontmatter is not a mapping`),null;let{name:K,description:B}=G;if(!K||!B)return console.warn(`Skipping ${X}: missing required 'name' or 'description'`),null;let H=bx(Cx(X)),[V,z]=sx(String(K),H);if(!V)console.warn(`Skill '${K}' in ${X} does not follow Agent Skills spec: ${z}. Consider renaming to be spec-compliant.`);let F=String(B);if(F.length>vW)console.warn(`Description exceeds ${vW} chars in ${X}, truncating`),F=F.substring(0,vW);return{name:String(K),description:F,path:X,source:Y,license:G.license,compatibility:G.compatibility,metadata:G.metadata,allowed_tools:G["allowed-tools"]}}catch(Q){return console.warn(`Error reading ${X}: ${Q.message}`),null}}function zU(X,Y){if(!HU(X))return[];let Q;try{Q=c7(X)}catch($){return[]}let Z=[],W;try{W=yx(X)}catch($){return[]}for(let $ of W){let J=hW(X,$),G,K;try{G=VU(J),K=UU(J)}catch(z){continue}if(!K.isDirectory())continue;if(G.isSymbolicLink()){let z=c7(J);if(!fW(z,Q))continue}let B=hW(J,"SKILL.md");if(!HU(B))continue;if(VU(B).isSymbolicLink()){let z=c7(B);if(!fW(z,Q))continue}else if(!fW(B,Q))continue;let V=tx(B,Y);if(V)Z.push(V)}return Z}function ox(X,Y){let Q=new Map;if(X){let Z=zU(X,"user");for(let W of Z)Q.set(W.name,W)}if(Y){let Z=zU(Y,"project");for(let W of Z)Q.set(W.name,W)}return Array.from(Q.values())}var ex=`
|
|
371
|
-
|
|
372
|
-
## Skills System
|
|
373
|
-
|
|
374
|
-
You have access to a skills library that provides specialized capabilities and domain knowledge.
|
|
375
|
-
|
|
376
|
-
{skills_locations}
|
|
377
|
-
|
|
378
|
-
**Available Skills:**
|
|
379
|
-
|
|
380
|
-
{skills_list}
|
|
381
|
-
|
|
382
|
-
**How to Use Skills (Progressive Disclosure):**
|
|
383
|
-
|
|
384
|
-
Skills follow a **progressive disclosure** pattern - you know they exist (name + description above), but you only read the full instructions when needed:
|
|
385
|
-
|
|
386
|
-
1. **Recognize when a skill applies**: Check if the user's task matches any skill's description
|
|
387
|
-
2. **Read the skill's full instructions**: The skill list above shows the exact path to use with read_file
|
|
388
|
-
3. **Follow the skill's instructions**: SKILL.md contains step-by-step workflows, best practices, and examples
|
|
389
|
-
4. **Access supporting files**: Skills may include Python scripts, configs, or reference docs - use absolute paths
|
|
390
|
-
|
|
391
|
-
**When to Use Skills:**
|
|
392
|
-
- When the user's request matches a skill's domain (e.g., "research X" → web-research skill)
|
|
393
|
-
- When you need specialized knowledge or structured workflows
|
|
394
|
-
- When a skill provides proven patterns for complex tasks
|
|
395
|
-
|
|
396
|
-
**Skills are Self-Documenting:**
|
|
397
|
-
- Each SKILL.md tells you exactly what the skill does and how to use it
|
|
398
|
-
- The skill list above shows the full path for each skill's SKILL.md file
|
|
399
|
-
|
|
400
|
-
**Executing Skill Scripts:**
|
|
401
|
-
Skills may contain Python scripts or other executable files. Always use absolute paths from the skill list.
|
|
402
|
-
|
|
403
|
-
**Example Workflow:**
|
|
404
|
-
|
|
405
|
-
User: "Can you research the latest developments in quantum computing?"
|
|
406
|
-
|
|
407
|
-
1. Check available skills above → See "web-research" skill with its full path
|
|
408
|
-
2. Read the skill using the path shown in the list
|
|
409
|
-
3. Follow the skill's research workflow (search → organize → synthesize)
|
|
410
|
-
4. Use any helper scripts with absolute paths
|
|
411
|
-
|
|
412
|
-
Remember: Skills are tools to make you more capable and consistent. When in doubt, check if a skill exists for the task!
|
|
413
|
-
`;class XI{name="SkillsMiddleware";stateSchema=void 0;contextSchema=void 0;tools=[];skillsDir;projectSkillsDir;userSkillsDisplay;systemPromptTemplate;constructor(X={}){this.skillsDir=X.skillsDir,this.projectSkillsDir=X.projectSkillsDir||"./.claude/skills",this.userSkillsDisplay=this.skillsDir||"~/.claude/skills",this.systemPromptTemplate=ex}formatSkillsLocations(){let X=[];if(this.userSkillsDisplay)X.push(`**User Skills**: \`${this.userSkillsDisplay}\``);if(this.projectSkillsDir)X.push(`**Project Skills**: \`${this.projectSkillsDir}\` (overrides user skills)`);return X.join(`
|
|
414
|
-
`)}formatSkillsList(X){if(!X.length){let W=[`${this.userSkillsDisplay}/`];if(this.projectSkillsDir)W.push(`${this.projectSkillsDir}/`);return`(No skills available yet. You can create skills in ${W.join(" or ")})`}let Y=X.filter((W)=>W.source==="user"),Q=X.filter((W)=>W.source==="project"),Z=[];if(Y.length){Z.push("**User Skills:**");for(let W of Y)Z.push(`- **${W.name}**: ${W.description}`),Z.push(` → Read \`${W.path}\` for full instructions`);Z.push("")}if(Q.length){Z.push("**Project Skills:**");for(let W of Q)Z.push(`- **${W.name}**: ${W.description}`),Z.push(` → Read \`${W.path}\` for full instructions`)}return Z.join(`
|
|
415
|
-
`)}async wrapModelCall(X,Y){let Q=ox(this.skillsDir,this.projectSkillsDir),Z=this.formatSkillsLocations(),W=this.formatSkillsList(Q),$=this.systemPromptTemplate.replace("{skills_locations}",Z).replace("{skills_list}",W),J;if(X.systemPrompt)J=X.systemPrompt+`
|
|
416
|
-
|
|
417
|
-
`+$;else J=$;let G=new B0(J),K={...X,systemMessage:G};return await Y(K)}}var YI=A.object({}),QI=A.object({commands:A.array(A.object({name:A.string().describe("MCP tool name"),args:A.record(A.string(),A.any()).describe("Tool parameters in JSON object format")})).describe("List of MCP tools to execute")});class xU{name="MCPMiddleware";stateSchema=void 0;contextSchema=void 0;mcpClient=null;cacheTools=[];configProvider;lastRefresh=null;serverStatuses=new Map;initializing=!1;initializationPromise=null;loadMcpToolsTool;executeMcpToolTool;constructor(X){this.configProvider=X.configProvider,this.initialize().catch((Y)=>{console.error("Failed to initialize MCPMiddleware:",Y)}),this.createTools()}async getConfig(){return await this.configProvider()}async initialize(){if(this.initializing)return this.initializationPromise;return this.initializing=!0,this.initializationPromise=(async()=>{try{let X=await this.getConfig();if(!X||!X.servers||Object.keys(X.servers).length===0){this.mcpClient=null,this.serverStatuses.clear(),this.cacheTools=[];return}this.mcpClient=new M3({throwOnLoadError:!0,prefixToolNameWithServerName:!1,additionalToolNamePrefix:"",useStandardContentBlocks:!0,onConnectionError:"ignore",mcpServers:X.servers});try{await this.mcpClient.initializeConnections(),this.cacheTools=await this.mcpClient.getTools()}catch(Y){console.warn("MCP server connection failed:",Y),this.cacheTools=[]}this.lastRefresh=Date.now()}finally{this.initializing=!1}})(),this.initializationPromise}async getAllTools(){if(this.initializing&&this.initializationPromise)await this.initializationPromise;if(!this.mcpClient)await this.initialize();if(!this.mcpClient)return[];if(this.cacheTools.length===0)this.cacheTools=await this.mcpClient.getTools();return this.cacheTools}async cleanup(){if(this.mcpClient){try{await this.mcpClient.close()}catch(X){console.warn("Failed to close MCP client during cleanup:",X)}this.mcpClient=null}this.lastRefresh=null,this.serverStatuses.clear(),this.cacheTools=[]}async getStatus(){let X=this.cacheTools,Y=await this.getConfig(),Q=Y?.servers?Object.keys(Y.servers):[];return{isInitialized:this.mcpClient!==null,toolCount:X.length,lastRefresh:this.lastRefresh,servers:Q}}async executeTool(X,Y){if(this.initializing&&this.initializationPromise)await this.initializationPromise;if(!this.mcpClient)await this.initialize();if(!this.mcpClient)throw Error("MCP client not initialized. No MCP configuration found.");let Q=await this.getAllTools(),Z=Q.find((W)=>W.name===X);if(!Z){let W=Q.map(($)=>$.name).join(", ");throw Error(`Tool not found: ${X}. Available: ${W||"none"}`)}try{return await Z.invoke(Y)}catch(W){throw Error(`Failed to execute MCP tool '${X}': ${W.message||String(W)}`)}}createTools(){this.loadMcpToolsTool=R0(async()=>{let X=await this.getStatus(),Y=await this.getAllTools();return JSON.stringify({tools:Y.map((Q)=>({name:Q.name,description:Q.description,schema:Q.schema})),status:X},null,2)},{name:"load_mcp_tools",description:`Load and query all available MCP tools.
|
|
418
|
-
|
|
419
|
-
Returns:
|
|
420
|
-
- tools: List of MCP tools, each containing name, description, schema
|
|
421
|
-
- status: MCP connection status, including toolCount, servers, etc.
|
|
422
|
-
|
|
423
|
-
Use cases:
|
|
424
|
-
- Query which MCP tools are available
|
|
425
|
-
- Get tool parameter formats
|
|
426
|
-
- Check MCP connection status
|
|
427
|
-
|
|
428
|
-
Important: The tool list is dynamic. Call this command when needed to get the latest information.`,schema:YI}),this.executeMcpToolTool=R0(async({commands:X})=>{let Y=[];for(let Q of X){let{name:Z,args:W}=Q;try{let $=await this.executeTool(Z,W);Y.push({tool:Z,result:$})}catch($){Y.push({tool:Z,result:null,error:$.message||String($)})}}return JSON.stringify({results:Y},null,2)},{name:"execute_mcp_tool",description:`Execute one or more MCP tools.
|
|
429
|
-
|
|
430
|
-
Usage format:
|
|
431
|
-
- commands: Array of MCP tools, each containing name and args
|
|
432
|
-
|
|
433
|
-
Examples:
|
|
434
|
-
- Single tool: {commands: [{name: "filesystem.read_file", args: {path: "/path/to/file"}}]}
|
|
435
|
-
- Multiple tools: {commands: [{name: "tool1", args: {...}}, {name: "tool2", args: {...}}]}
|
|
436
|
-
|
|
437
|
-
Important:
|
|
438
|
-
- All tools execute independently; failure of one does not affect others
|
|
439
|
-
- Results are returned in command order
|
|
440
|
-
- Suitable for batch execution of MCP-related operations`,schema:QI})}get tools(){return[this.loadMcpToolsTool,this.executeMcpToolTool]}async wrapModelCall(X,Y){let Z;if(X.systemPrompt)Z=X.systemPrompt+`
|
|
441
|
-
## MCP Tools
|
|
442
|
-
|
|
443
|
-
Using MCP tools requires two steps:
|
|
444
|
-
|
|
445
|
-
1. **load_mcp_tools** - Query available MCP tools
|
|
446
|
-
- Returns list of all MCP tools and their parameter formats
|
|
447
|
-
- Includes MCP connection status
|
|
448
|
-
|
|
449
|
-
2. **execute_mcp_tool** - Execute MCP tools
|
|
450
|
-
- Supports single or multiple batch execution
|
|
451
|
-
- Format: {commands: [{name, args}, ...]}
|
|
452
|
-
|
|
453
|
-
**Important**:
|
|
454
|
-
- Standard tools (read_file, glob_files) are called directly, no MCP commands needed
|
|
455
|
-
- MCP tools require first calling load_mcp_tools to query
|
|
456
|
-
- Then call execute_mcp_tool to execute
|
|
457
|
-
`;else Z=`
|
|
458
|
-
## MCP Tools
|
|
459
|
-
|
|
460
|
-
Using MCP tools requires two steps:
|
|
461
|
-
|
|
462
|
-
1. **load_mcp_tools** - Query available MCP tools
|
|
463
|
-
- Returns list of all MCP tools and their parameter formats
|
|
464
|
-
- Includes MCP connection status
|
|
465
|
-
|
|
466
|
-
2. **execute_mcp_tool** - Execute MCP tools
|
|
467
|
-
- Supports single or multiple batch execution
|
|
468
|
-
- Format: {commands: [{name, args}, ...]}
|
|
469
|
-
|
|
470
|
-
**Important**:
|
|
471
|
-
- Standard tools (read_file, glob_files) are called directly, no MCP commands needed
|
|
472
|
-
- MCP tools require first calling load_mcp_tools to query
|
|
473
|
-
- Then call execute_mcp_tool to execute
|
|
474
|
-
`;let W={...X,systemPrompt:Z};return await Y(W)}}function r00(X){return new xU(X)}var a00=A.object({task_store:A.record(A.string(),A.any()).default({})}),s00=x3().build({task_store:j6({reducer:(X,Y)=>({...X,...Y}),default:()=>({})})}),ZI=A.object({task_id:A.string().optional().describe("The task id to ask the subagent, if not provided, will use the tool call id"),subagent_id:A.string().describe('REQUIRED. The specific ID of the subagent to invoke (e.g., "agents/default", "agents/manager"). Must match exactly one of the available subagents listed in the system prompt.'),subagent_type:A.string().describe('REQUIRED. The type/category of subagent (e.g., "general-purpose", "statusline-setup"). Must be one of the available agent types listed in the tool description.'),task_description:A.string().describe("Describe the user state and what you want the subagent to do."),data_transfer:A.any().optional().describe("Data to transfer to the subagent.")}),WI=`Launch a new agent to handle complex, multi-step tasks autonomously.
|
|
475
|
-
|
|
476
|
-
Available agent types and the tools they have access to:
|
|
477
|
-
{agent_types}
|
|
478
|
-
|
|
479
|
-
**IMPORTANT: Both subagent_id AND subagent_type are REQUIRED parameters. You must provide BOTH.**
|
|
480
|
-
|
|
481
|
-
- subagent_id: The specific ID of the subagent (e.g., "agents/default", "agents/manager")
|
|
482
|
-
- subagent_type: The type category of the subagent (e.g., "general-purpose", "statusline-setup")
|
|
483
|
-
|
|
484
|
-
When NOT to use the Agent tool:
|
|
485
|
-
- If you want to read a specific file path, use the Read or Glob tool instead of the Agent tool, to find the match more quickly
|
|
486
|
-
- If you are searching for a specific class definition like "class Foo", use the Glob tool instead, to find the match more quickly
|
|
487
|
-
- If you are searching for code within a specific file or set of 2-3 files, use the Read tool instead of the Agent tool, to find the match more quickly
|
|
488
|
-
- Other tasks that are not related to the agent descriptions above
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
Usage notes:
|
|
492
|
-
1. Launch multiple agents concurrently whenever possible, to maximize performance; to do that, use a single message with multiple tool uses
|
|
493
|
-
2. When the agent is done, it will return a single message back to you. The result returned by the agent is not visible to the user. To show the user the result, you should send a text message back to the user with a concise summary of the result.
|
|
494
|
-
3. Each agent invocation is stateless. You will not be able to send additional messages to the agent, nor will the agent be able to communicate with you outside of its final report. Therefore, your prompt should contain a highly detailed task description for the agent to perform autonomously and you should specify exactly what information the agent should return back to you in its final and only message to you.
|
|
495
|
-
4. The agent's outputs should generally be trusted
|
|
496
|
-
5. Clearly tell the agent whether you expect it to write code or just to do research (search, file reads, web fetches, etc.), since it is not aware of the user's intent
|
|
497
|
-
6. If the agent description mentions that it should be used proactively, then you should try your best to use it without the user having to ask for it first. Use your judgement.
|
|
498
|
-
|
|
499
|
-
Example usage:
|
|
500
|
-
|
|
501
|
-
<example_agent_descriptions>
|
|
502
|
-
"code-reviewer": use this agent after you are done writing a significant piece of code
|
|
503
|
-
"greeting-responder": use this agent when to respond to user greetings with a friendly joke
|
|
504
|
-
</example_agent_description>
|
|
505
|
-
|
|
506
|
-
<example>
|
|
507
|
-
user: "Please write a function that checks if a number is prime"
|
|
508
|
-
assistant: Sure let me write a function that checks if a number is prime
|
|
509
|
-
assistant: First let me use the Write tool to write a function that checks if a number is prime
|
|
510
|
-
assistant: I'm going to use the Write tool to write the following code:
|
|
511
|
-
<code>
|
|
512
|
-
function isPrime(n) {
|
|
513
|
-
if (n <= 1) return false
|
|
514
|
-
for (let i = 2; i * i <= n; i++) {
|
|
515
|
-
if (n % i === 0) return false
|
|
516
|
-
}
|
|
517
|
-
return true
|
|
518
|
-
}
|
|
519
|
-
</code>
|
|
520
|
-
<commentary>
|
|
521
|
-
Since a signficant piece of code was written and the task was completed, now use the code-reviewer agent to review the code
|
|
522
|
-
</commentary>
|
|
523
|
-
assistant: Now let me use the code-reviewer agent to review the code
|
|
524
|
-
assistant: Uses the Task tool to launch the with the code-reviewer agent
|
|
525
|
-
</example>
|
|
526
|
-
|
|
527
|
-
<example>
|
|
528
|
-
user: "Hello"
|
|
529
|
-
<commentary>
|
|
530
|
-
Since the user is greeting, use the greeting-responder agent to respond with a friendly joke
|
|
531
|
-
</commentary>
|
|
532
|
-
assistant: "I'm going to use the Task tool to launch the with the greeting-responder agent"
|
|
533
|
-
</example>
|
|
534
|
-
`,IU=(X,Y)=>R0(async(Q,Z)=>{let W=Z.state,$=Q.task_id||Z.toolCall.id,J={messages:[]};if($&&W?.task_store?.[$])J=W?.task_store[$];else J=JSON.parse(JSON.stringify(W)),J.messages=[],J.task_store={};let G=await X($,Q,W);if(J.messages.push(new z0({content:Q.task_description})),Q.data_transfer)J.messages.push(new z0({content:`Here is the data to help you complete the task: ${JSON.stringify(Q.data_transfer,null,2)}`}));let K=await G.invoke(J),B=K.messages.at(-1),H={task_store:{...W?.task_store||{},[$]:K},messages:[{role:"tool",content:`task_id: ${$}
|
|
535
|
-
---
|
|
536
|
-
`+(B?.text||""),tool_call_id:Z.toolCall.id}]};return Y?.pass_through_keys?.forEach((V)=>{if(V in K)H[V]=K[V]}),new D0({update:H})},{name:Y?.name||"task",description:Y?.description||WI,schema:ZI}),t00=IU;async function o00(X){return(await X.listAgents()).map((Q)=>({id:Q.id,name:Q.name||Q.id,description:Q.description||"",tools:Q.tools?Object.keys(Q.tools):[]}))}var $I=`
|
|
537
|
-
## SubAgents System
|
|
538
|
-
|
|
539
|
-
You have access to a subagent system that can delegate specialized tasks to other agents.
|
|
540
|
-
|
|
541
|
-
**Available SubAgents:**
|
|
542
|
-
|
|
543
|
-
{subagents_list}
|
|
544
|
-
|
|
545
|
-
**How to Use SubAgents (Progressive Disclosure):**
|
|
546
|
-
|
|
547
|
-
SubAgents follow a **progressive disclosure** pattern - you know they exist (name + description above), but you only delegate tasks when needed:
|
|
548
|
-
|
|
549
|
-
1. **Recognize when to delegate**: Check if the user's task matches a subagent's specialization
|
|
550
|
-
2. **Use the task tool**: Call the tool with the subagent's ID and a clear task description
|
|
551
|
-
3. **Provide context**: Use the \`data_transfer\` parameter to pass relevant information
|
|
552
|
-
4. **Get results**: The subagent will process the task and return results
|
|
553
|
-
|
|
554
|
-
**When to Use SubAgents:**
|
|
555
|
-
- When the user's request requires specialized knowledge or workflows
|
|
556
|
-
- When a task is complex and can be broken down into subtasks
|
|
557
|
-
- When you need parallel processing or different expertise areas
|
|
558
|
-
- When a subagent provides proven patterns for specific domains
|
|
559
|
-
|
|
560
|
-
**SubAgent Tool Usage:**
|
|
561
|
-
|
|
562
|
-
The \`task\` tool is available for delegation:
|
|
563
|
-
|
|
564
|
-
- **subagent_id**: The ID of the subagent to delegate to
|
|
565
|
-
- **task_description**: Clear description of what needs to be done
|
|
566
|
-
- **task_id** (optional): Identifier for tracking, it will automatically be generated after you run a subagent.
|
|
567
|
-
- **data_transfer** (optional): Context/data to pass to the subagent
|
|
568
|
-
|
|
569
|
-
**Example Workflow:**
|
|
570
|
-
|
|
571
|
-
User: "Can you have the research agent look into quantum computing developments?"
|
|
572
|
-
|
|
573
|
-
1. Check available subagents above → See "research" subagent with ID
|
|
574
|
-
2. Use task tool with appropriate parameters
|
|
575
|
-
3. Provide clear task description and any necessary context
|
|
576
|
-
4. Process the results from the subagent
|
|
577
|
-
|
|
578
|
-
Remember: SubAgents are tools to distribute work and leverage specialized capabilities. When in doubt, check if a subagent exists for the task!
|
|
579
|
-
`;function JI(X){let Y=[];for(let Q of X)Y.push(`- **${Q.id}**: ${Q.description}`),Y.push(` → Use task with subagent_id: "${Q.id}"`);return Y.join(`
|
|
580
|
-
`)}class GI{name="SubAgentsMiddleware";stateSchema;contextSchema;tools=[];agents;formatAgentListFn;agentListString;constructor(X){if(this.agents=X.agents,this.formatAgentListFn=X.formatAgentList||JI,X.stateSchema)this.stateSchema=X.stateSchema;if(X.contextSchema)this.contextSchema=X.contextSchema;this.agentListString=this.formatAgentListFn(this.agents);let Y=IU(async(Q,Z,W)=>{return await X.createAgent(Q,Z,W)},{name:X.toolName,description:X.toolDescription,pass_through_keys:X.passThroughKeys});this.tools.push(Y)}async wrapModelCall(X,Y){let Q=$I.replace("{subagents_list}",this.agentListString),Z;if(X.systemPrompt)Z=X.systemPrompt+`
|
|
581
|
-
|
|
582
|
-
`+Q;else Z=Q;let W={...X,systemMessage:new B0(Z)};return await Y(W)}}var KI=A.function({input:A.tuple([A.custom(),A.custom(),A.custom()]),output:A.union([A.string(),A.promise(A.string())])}),SU=["approve","edit","reject","respond"],BI=A.enum(SU),HI=A.object({allowedDecisions:A.array(BI),description:A.union([A.string(),KI]).optional(),argsSchema:A.record(A.string(),A.any()).optional()}),FU=A.object({interruptOn:A.record(A.string(),A.union([A.boolean(),HI])).optional(),descriptionPrefix:A.string().default("Tool execution requires approval")});function e00(X){let Y=async(Z,W,$,J)=>{let{name:G,args:K}=Z,B=W.description,H;if(typeof B==="function")H=await B(Z,$,J);else if(B!==void 0)H=B;else H=`${X.descriptionPrefix??"Tool execution requires approval"}
|
|
583
|
-
|
|
584
|
-
Tool: ${G}
|
|
585
|
-
Args: ${JSON.stringify(K,null,2)}`;let V={name:G,args:K,description:H},z={actionName:G,allowedDecisions:W.allowedDecisions};if(W.argsSchema)z.argsSchema=W.argsSchema;return{actionRequest:V,reviewConfig:z}},Q=(Z,W,$)=>{let J=$.allowedDecisions;if(Z.type==="approve"&&J.includes("approve"))return{revisedToolCall:W,toolMessage:null};if(Z.type==="edit"&&J.includes("edit")){let K=Z.editedAction;if(!K||typeof K.name!=="string")throw Error(`Invalid edited action for tool "${W.name}": name must be a string`);if(!K.args||typeof K.args!=="object")throw Error(`Invalid edited action for tool "${W.name}": args must be an object`);return{revisedToolCall:{type:"tool_call",name:K.name,args:K.args,id:W.id},toolMessage:null}}if(Z.type==="reject"&&J.includes("reject")){if(Z.message!==void 0&&typeof Z.message!=="string")throw Error(`Tool call response for "${W.name}" must be a string, got ${typeof Z.message}`);let K=Z.message??`User rejected the tool call for \`${W.name}\` with id ${W.id}`,B=new g({content:K,name:W.name,tool_call_id:W.id,status:"error"});return{revisedToolCall:W,toolMessage:B}}if(Z.type==="respond"&&J.includes("respond")){if(typeof Z.message!=="string")throw Error(`Tool call response for "${W.name}" must be a string, got ${typeof Z.message}`);let K=new g({content:Z.message,name:W.name,tool_call_id:W.id,status:"success"});return{revisedToolCall:W,toolMessage:K}}let G=`Unexpected human decision: ${JSON.stringify(Z)}. Decision type '${Z.type}' is not allowed for tool '${W.name}'. Expected one of ${JSON.stringify(J)} based on the tool's configuration.`;throw Error(G)};return X0({name:"HumanInTheLoopMiddleware",contextSchema:FU,afterModel:{canJumpTo:["model"],hook:async(Z,W)=>{let $=F1(FU,{...X,...W.context||{}});if(!$)return;let{messages:J}=Z;if(!J.length)return;let G=[...J].reverse().find((D)=>_.isInstance(D));if(!G||!_.isInstance(G)||!G.tool_calls?.length)return;if(!$.interruptOn)return;let K={};for(let[D,E]of Object.entries($.interruptOn))if(typeof E==="boolean"){if(E===!0)K[D]={allowedDecisions:[...SU]}}else if(E.allowedDecisions)K[D]=E;let B=[],H=[];for(let D of G.tool_calls)if(D.name in K)B.push(D);else H.push(D);if(!B.length)return;let V=[],z=[];for(let D of B){let E=K[D.name],{actionRequest:I,reviewConfig:S}=await Y(D,E,Z,W);V.push(I),z.push(S)}let q=(await YY({actionRequests:V,reviewConfigs:z})).decisions;if(!q||!Array.isArray(q))throw Error("Invalid HITLResponse: decisions must be a non-empty array");if(q.length!==B.length)throw Error(`Number of human decisions (${q.length}) does not match number of hanging tool calls (${B.length}).`);let w=[...H],O=[],R=q.some((D)=>D.type==="reject"||D.type==="respond");for(let D=0;D<q.length;D++){let E=q[D],I=B[D],S=K[I.name],{revisedToolCall:x,toolMessage:C}=Q(E,I,S);if(x&&(!R||E.type==="reject"||E.type==="respond"))w.push(x);if(C)O.push(C)}if(_.isInstance(G))G.tool_calls=w;let P=R?"model":void 0;return{messages:[G,...O],jumpTo:P}}}})}export{bQ as Rf,j$ as Sf,x3 as Tf,WT as Uf,yh as Vf,p as Wf,ae as Xf,_W as Yf,c00 as Zf,qU as _f,OU as $f,p00 as ag,DU as bg,vx as cg,fx as dg,PU as eg,wU as fg,l00 as gg,NU as hg,AU as ig,gW as jg,jU as kg,EU as lg,RU as mg,uW as ng,TU as og,ux as pg,mx as qg,i00 as rg,n00 as sg,nx as tg,ox as ug,XI as vg,YI as wg,QI as xg,xU as yg,r00 as zg,a00 as Ag,s00 as Bg,ZI as Cg,IU as Dg,t00 as Eg,o00 as Fg,GI as Gg,e00 as Hg};
|